summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-dns/noip-updater/Manifest1
-rw-r--r--net-dns/noip-updater/files/noip-2.1.9-daemon.patch21
-rw-r--r--net-dns/noip-updater/files/noip-2.1.9-flags.patch11
-rw-r--r--net-dns/noip-updater/files/noip.service12
-rw-r--r--net-dns/noip-updater/files/noip2.start34
-rw-r--r--net-dns/noip-updater/metadata.xml15
-rw-r--r--net-dns/noip-updater/noip-updater-2.1.9-r2.ebuild76
-rw-r--r--profiles/package.mask5
-rw-r--r--profiles/use.local.desc1
9 files changed, 176 insertions, 0 deletions
diff --git a/net-dns/noip-updater/Manifest b/net-dns/noip-updater/Manifest
new file mode 100644
index 00000000..226b2e15
--- /dev/null
+++ b/net-dns/noip-updater/Manifest
@@ -0,0 +1 @@
+DIST noip-2.1.9.tar.gz 152995 SHA256 86ad0a6362263a33f59a658d1b1ce428e255556ddad0d062aa0ee4b7f412f98a
diff --git a/net-dns/noip-updater/files/noip-2.1.9-daemon.patch b/net-dns/noip-updater/files/noip-2.1.9-daemon.patch
new file mode 100644
index 00000000..b2fb4e66
--- /dev/null
+++ b/net-dns/noip-updater/files/noip-2.1.9-daemon.patch
@@ -0,0 +1,21 @@
+diff -ur a/noip2.c b/noip2.c
+--- a/noip2.c 2004-01-09 14:18:39.000000000 +0000
++++ b/noip2.c 2007-07-20 14:02:41.100377515 +0100
+@@ -895,16 +895,13 @@
+ char *err_string;
+ static int startup = 1;
+
+- x = fork();
++ x = daemon (0, 0);
+ switch (x) {
+ case -1: // error
+ err_string = strerror(errno);
+ Msg( "Can't fork!! (%s) Ending!\n", err_string);
+ return FATALERR;
+- default: // parent
+- exit(0);
+ case 0: //child
+- setsid();
+ if (get_shm_info() == FATALERR)
+ return FATALERR;
+ log2syslog++;
diff --git a/net-dns/noip-updater/files/noip-2.1.9-flags.patch b/net-dns/noip-updater/files/noip-2.1.9-flags.patch
new file mode 100644
index 00000000..9fe05f36
--- /dev/null
+++ b/net-dns/noip-updater/files/noip-2.1.9-flags.patch
@@ -0,0 +1,11 @@
+--- a/Makefile 2006-09-07 09:52:55.000000000 +0200
++++ b/Makefile 2006-09-07 09:54:54.000000000 +0200
+@@ -21,7 +21,7 @@
+ # ARCH=sun
+
+ ${TGT}: Makefile ${TGT}.c
+- ${CC} -Wall -g -D${ARCH} -DPREFIX=\"${PREFIX}\" ${TGT}.c -o ${TGT} ${LIBS}
++ ${CC} ${CFLAGS} -D${ARCH} -DPREFIX=\"${PREFIX}\" ${TGT}.c -o ${TGT} ${LIBS} ${LDFLAGS}
+
+ install: ${TGT}
+ if [ ! -d ${BINDIR} ]; then mkdir -p ${BINDIR};fi
diff --git a/net-dns/noip-updater/files/noip.service b/net-dns/noip-updater/files/noip.service
new file mode 100644
index 00000000..b4834e84
--- /dev/null
+++ b/net-dns/noip-updater/files/noip.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=No-IP Dynamic DNS Update Client
+Require=network-online.target
+After=network-online.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/noip2 -c /etc/no-ip2.conf
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/net-dns/noip-updater/files/noip2.start b/net-dns/noip-updater/files/noip2.start
new file mode 100644
index 00000000..20723ab2
--- /dev/null
+++ b/net-dns/noip-updater/files/noip2.start
@@ -0,0 +1,34 @@
+#!/sbin/openrc-run
+
+depend() {
+ need localmount
+ need net
+ use dns
+}
+
+checkconfig() {
+ if [ ! -f /etc/no-ip2.conf ]
+ then
+ einfo "Answer the following questions about your no-ip account."
+ noip2 -C || return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting noip"
+ start-stop-daemon --quiet --start -x /usr/sbin/noip2 -- -c /etc/no-ip2.conf
+ eend $? "noip did not start, error code $?"
+}
+
+stop() {
+ ebegin "Stopping noip"
+ start-stop-daemon --quiet --stop -x /usr/sbin/noip2
+ noip_ecode=$?
+ eend $noip_ecode "Error stopping the noip daemon, error $noip_ecode"
+ checkconfig || return 1
+ ebegin "Setting noip addresses to 0.0.0.0"
+ noip2 -c /etc/no-ip2.conf -i 0.0.0.0 >/dev/null 2>&1
+ eend $? "Failed to set noip addresses to 0.0.0.0, error $?"
+ return $noip_ecode
+}
diff --git a/net-dns/noip-updater/metadata.xml b/net-dns/noip-updater/metadata.xml
new file mode 100644
index 00000000..6ac11ba8
--- /dev/null
+++ b/net-dns/noip-updater/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>martin@mvath.de</email>
+ <name>Martin Väth</name>
+ </maintainer>
+ <longdescription lang="en">
+ no-ip.com dynamic DNS updater
+ </longdescription>
+ <use>
+ <flag name="ezipupd">Use user/group ezipupd instead of nobody: Useful if you restrict outgoing network traffic for user nobody</flag>
+ </use>
+</pkgmetadata>
diff --git a/net-dns/noip-updater/noip-updater-2.1.9-r2.ebuild b/net-dns/noip-updater/noip-updater-2.1.9-r2.ebuild
new file mode 100644
index 00000000..ea3fe35e
--- /dev/null
+++ b/net-dns/noip-updater/noip-updater-2.1.9-r2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit eutils readme.gentoo-r1 systemd toolchain-funcs user
+
+MY_P=${P/-updater/}
+DESCRIPTION="no-ip.com dynamic DNS updater"
+HOMEPAGE="http://www.no-ip.com"
+SRC_URI="http://www.no-ip.com/client/linux/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ~hppa ia64 ~mips ~ppc ppc64 sparc x86"
+IUSE="ezipupd"
+
+RDEPEND=""
+DEPEND="sys-devel/gcc"
+
+S=${WORKDIR}/${MY_P}
+
+DOC_CONTENTS="
+ Configuration can be done manually via /usr/sbin/noip2 -C or
+ by using this ebuild's config option.
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/noip-2.1.9-flags.patch
+ eapply "${FILESDIR}"/noip-2.1.9-daemon.patch
+ local sedarg
+ sedarg=(
+ -e "s:\(#define CONFIG_FILEPATH\).*:\1 \"/etc\":"
+ -e "s:\(#define CONFIG_FILENAME\).*:\1 \"/etc/no-ip2.conf\":"
+ )
+ ! use ezipupd || sedarg+=(
+ -e "s:\"nobodoy\":\"ez-ipupd\":g"
+ )
+ sed -i "${sedarg[@]}" noip2.c || die "sed failed"
+ eapply_user
+}
+
+src_compile() {
+ emake \
+ CC=$(tc-getCC) \
+ PREFIX=/usr \
+ CONFDIR=/etc
+}
+
+src_install() {
+ dosbin noip2
+ dodoc README.FIRST
+ newinitd "${FILESDIR}"/noip2.start noip
+ systemd_dounit "${FILESDIR}"/noip.service
+ readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+ use ezipupd && ! use prefix || return 0
+ enewgroup ez-ipupd
+ enewuser ez-ipupd -1 -1 /var/cache/ez-ipupdate ez-ipupd
+ if test -d /var/cache/ez-ipupdate
+ then chmod 750 /var/cache/ez-ipupdate
+ chown ez-ipupd:ez-ipupd /var/cache/ez-ipupdate
+ fi
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
+
+pkg_config() {
+ cd /tmp
+ einfo "Answer the following questions."
+ noip2 -C || die
+}
diff --git a/profiles/package.mask b/profiles/package.mask
index 90901425..0adb0ac6 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -2,3 +2,8 @@
# sys-fs/squash_dir is no longer maintained. Use instead the successor project
# sys-fs/squashmount (or sys-apps/openrc-wrapper for the openrc-wrapper script)
sys-fs/squash_dir
+
+# Martin Väth <martin@mvath.de> (03 Jan 2016)
+# net-dns/noip-updater does not use https for transferring user sensitive data,
+# see bug #261194. So install only if you are aware about the security risk.
+~net-dns/noip-updater-2.1.9
diff --git a/profiles/use.local.desc b/profiles/use.local.desc
index a4779202..9c41a9e0 100644
--- a/profiles/use.local.desc
+++ b/profiles/use.local.desc
@@ -66,6 +66,7 @@ media-gfx/pqiv:gtk2 - Use gtk:2 instead of gtk:3
media-tv/sundtek-tv:ld-preload-env - Install LD_PRELOAD in /etc/env.d/50sundtek-tv
media-tv/sundtek-tv:ld-preload-file - Install /etc/ld.so.preload
media-tv/sundtek-tv:pax_kernel - Mark package which is necessary if you use a PAX kernel
+net-dns/noip-updater:ezipupd - Use user/group ezipupd instead of nobody: Useful if you restrict outgoing network traffic for user nobody
net-misc/sshstart:keychain - Pull in keychain as dependency. Not required, but recommended for smoother operation.
sys-apps/less:less-select - Add the less-select feature (additional options and a binary helper).
sys-apps/less:lesspipe - Use sys-apps/lesspipe instead of Gentoo's default lesspipe.sh.