diff options
author | 2012-08-28 18:30:45 -0400 | |
---|---|---|
committer | 2012-08-28 18:31:44 -0400 | |
commit | 4e3a5ad7c59dd3e0b276ea50bc4cf60f3289d023 (patch) | |
tree | 457834d72add4571c002ecc34c6edb28c8284f49 | |
parent | systemd-units: don't install gdm.service if USE=-ingnome3 (diff) | |
download | systemd-4e3a5ad7c59dd3e0b276ea50bc4cf60f3289d023.tar.gz systemd-4e3a5ad7c59dd3e0b276ea50bc4cf60f3289d023.tar.bz2 systemd-4e3a5ad7c59dd3e0b276ea50bc4cf60f3289d023.zip |
net-dns/dnsmasq: removed
dnsmasq-2.63 provides unit files, and is in the main tree
https://bugs.gentoo.org/show_bug.cgi?id=371871
-rw-r--r-- | net-dns/dnsmasq/Manifest | 11 | ||||
-rw-r--r-- | net-dns/dnsmasq/dnsmasq-2.57-r1.ebuild | 95 | ||||
-rw-r--r-- | net-dns/dnsmasq/files/dnsmasq-2.47-fbsd-config.patch | 16 | ||||
-rw-r--r-- | net-dns/dnsmasq/files/dnsmasq-2.57-systemd.patch | 838 | ||||
-rw-r--r-- | net-dns/dnsmasq/files/dnsmasq-dhcp.socket | 15 | ||||
-rw-r--r-- | net-dns/dnsmasq/files/dnsmasq-init | 39 | ||||
-rw-r--r-- | net-dns/dnsmasq/files/dnsmasq-tftp.socket | 16 | ||||
-rw-r--r-- | net-dns/dnsmasq/files/dnsmasq.confd | 4 | ||||
-rw-r--r-- | net-dns/dnsmasq/files/dnsmasq.service | 11 | ||||
-rw-r--r-- | net-dns/dnsmasq/files/dnsmasq.socket | 15 | ||||
-rw-r--r-- | net-dns/dnsmasq/metadata.xml | 14 |
11 files changed, 0 insertions, 1074 deletions
diff --git a/net-dns/dnsmasq/Manifest b/net-dns/dnsmasq/Manifest deleted file mode 100644 index b3f573e..0000000 --- a/net-dns/dnsmasq/Manifest +++ /dev/null @@ -1,11 +0,0 @@ -AUX dnsmasq-2.47-fbsd-config.patch 505 RMD160 a19a17e94d924a21f79d50420faa4c2ed3ec40d0 SHA1 723580b460c93e2f7829627dee15bb758730b848 SHA256 4e05e46b59254e718550cda505986b9b572a0716636fb6a5405a54df25cfa84a -AUX dnsmasq-2.57-systemd.patch 26460 RMD160 44ac8963dc13ff8759993204200310d6a9fd92bc SHA1 acd3ade339c134802e5774c8b84a89ec13c89252 SHA256 2fe4e37f883415953612bbf69b8956691beb61096c4bec28def3ae608dae2c08 -AUX dnsmasq-dhcp.socket 257 RMD160 c3594a46bac58ca3bfdd16b5f95afea2d3b80bc3 SHA1 e833065f718e2cd7180c7b972f75428def7847f7 SHA256 de538cbcf672d1ed2ac090b21af4520d1365fe29ed79277bf24f33e968657428 -AUX dnsmasq-init 935 RMD160 8f6278946311abdc4c7ae8034ca8571cb24bb53b SHA1 7c34f475dc3c6afdc14fffdaf24f866e056c334f SHA256 30da83047c1a30e008e38bc398b3ac2a50d78f23d559b5c8ff7a22145786e05b -AUX dnsmasq-tftp.socket 300 RMD160 822ec5456536b2b7a965f8ce58542f1ac8b12103 SHA1 4e9498139a4cad33cec9a0c0ada82ead2421ac95 SHA256 8ed8d40860e75aa749ac259d9eb25fa1e2a013d52c75c257d37951f856b28bed -AUX dnsmasq.confd 140 RMD160 33f6370377b38bf33acab72d8de86cba5e197d79 SHA1 83461d2964dc3f0db777fc26141b07f6f3f5a762 SHA256 8bbc2634ab537ed3a17ee98be9c2667013a2b048f6981138017414e54fe90746 -AUX dnsmasq.service 188 RMD160 5deb27b6689d96f914942296730b47c3eaff94ba SHA1 2a284fe2a939fca4c021a4f5a6c14e032eeb2388 SHA256 5c6c6bc97af572fa19a624564c5c5cdf60c7b9e82e6f380fc1f9f6bab088413c -AUX dnsmasq.socket 280 RMD160 79e1d90f9eac33d4a3a3cecc36d9f0c1de51dab1 SHA1 ee7ebefe32a531eb288ff7ead3698ab4836b625c SHA256 6901546602aedc0c0391ab4b914d83a2f7b860462b66f2eaf269dcac22986361 -DIST dnsmasq-2.57.tar.lzma 333348 RMD160 e78d2f87804e88b2021da3c593191338d0deaed4 SHA1 cbf0c22a7b856746b23f2d894070c60d32c4a97e SHA256 b35c5a31afce2b7c4bd62566d5dc87e1ce62d0d2ebd9c2baf15b5ea16bcc279d -EBUILD dnsmasq-2.57-r1.ebuild 2463 RMD160 25e5591e7b130d625ede852d382c6daa58452035 SHA1 39cce34b23e31c12dac965ed99de305477cf14a2 SHA256 549490bbd1fcd2d5b71d3270ee494c936de5121a994c757f21b40e33f3e12e21 -MISC metadata.xml 409 RMD160 059cae7fc03f12c391df3954a25b50b98f8fd616 SHA1 3b262afb2f3281150f03de7e7ee5019d1ddf3a32 SHA256 b8cb70c6cedee588056993ffa8a720fcb3248dc8d10bf6397910cf8fed07b4e2 diff --git a/net-dns/dnsmasq/dnsmasq-2.57-r1.ebuild b/net-dns/dnsmasq/dnsmasq-2.57-r1.ebuild deleted file mode 100644 index 3929f65..0000000 --- a/net-dns/dnsmasq/dnsmasq-2.57-r1.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-dns/dnsmasq/dnsmasq-2.57.ebuild,v 1.6 2011/04/16 18:23:07 armin76 Exp $ - -EAPI=2 - -inherit eutils toolchain-funcs flag-o-matic systemd - -MY_P="${P/_/}" -MY_PV="${PV/_/}" -DESCRIPTION="Small forwarding DNS server" -HOMEPAGE="http://www.thekelleys.org.uk/dnsmasq/" -SRC_URI="http://www.thekelleys.org.uk/dnsmasq/${MY_P}.tar.lzma" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" -IUSE="dbus +dhcp idn ipv6 nls tftp" - -RDEPEND="dbus? ( sys-apps/dbus ) - idn? ( net-dns/libidn ) - nls? ( - sys-devel/gettext - net-dns/libidn - )" - -DEPEND="${RDEPEND} - dev-util/pkgconfig - || ( app-arch/xz-utils app-arch/lzma-utils )" - -S="${WORKDIR}/${PN}-${MY_PV}" - -src_prepare() { - # dnsmasq on FreeBSD wants the config file in a silly location, this fixes - epatch "${FILESDIR}/${PN}-2.47-fbsd-config.patch" - - # apply systemd patch - epatch "${FILESDIR}/${P}-systemd.patch" -} - -src_configure() { - COPTS="" - use tftp || COPTS+=" -DNO_TFTP" - use dhcp || COPTS+=" -DNO_DHCP" - use ipv6 || COPTS+=" -DNO_IPV6" - use dbus && COPTS+=" -DHAVE_DBUS" - use idn && COPTS+=" -DHAVE_IDN" -} - -src_compile() { - emake \ - PREFIX=/usr \ - CC="$(tc-getCC)" \ - CFLAGS="${CFLAGS}" \ - COPTS="${COPTS}" \ - all$(use nls && echo "-i18n") || die -} - -src_install() { - emake \ - PREFIX=/usr \ - MANDIR=/usr/share/man \ - DESTDIR="${D}" \ - install$(use nls && echo "-i18n") || die - - dodoc CHANGELOG FAQ - dohtml *.html - - newinitd "${FILESDIR}"/dnsmasq-init dnsmasq - newconfd "${FILESDIR}"/dnsmasq.confd dnsmasq - insinto /etc - newins dnsmasq.conf.example dnsmasq.conf - - if use dbus ; then - insinto /etc/dbus-1/system.d - doins dbus/dnsmasq.conf - fi - - systemd_dounit "${FILESDIR}/dnsmasq.service" - systemd_dounit "${FILESDIR}/dnsmasq.socket" - use dhcp && systemd_dounit "${FILESDIR}/dnsmasq-dhcp.socket" - use tftp && systemd_dounit "${FILESDIR}/dnsmasq-tftp.socket" -} - -pkg_postinst(){ - einfo "We have installed systemd unit files.If you're using systemd, enable dnsmasq with" - einfo "systemctl enable ${PN}.socket" - if use dhcp || use tftp ; then - einfo "If you want to enable dhcp and ftp support in ${PN}, don't forget to run " - einfo "systemctl enable ${PN}-dhcp.socket " - einfo "and" - einfo "systemctl enable ${PN}-tftp.socket" - einfo "when you enable it in the ${PN} configure file" - fi -} diff --git a/net-dns/dnsmasq/files/dnsmasq-2.47-fbsd-config.patch b/net-dns/dnsmasq/files/dnsmasq-2.47-fbsd-config.patch deleted file mode 100644 index 38a3679..0000000 --- a/net-dns/dnsmasq/files/dnsmasq-2.47-fbsd-config.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -ur dnsmasq-2.47.orig/src/config.h dnsmasq-2.47/src/config.h ---- dnsmasq-2.47.orig/src/config.h 2009-02-05 07:14:24.000000000 -0500 -+++ dnsmasq-2.47/src/config.h 2009-03-30 00:04:52.000000000 -0400 -@@ -50,11 +50,7 @@ - #endif - - #ifndef CONFFILE --# if defined(__FreeBSD__) --# define CONFFILE "/usr/local/etc/dnsmasq.conf" --# else --# define CONFFILE "/etc/dnsmasq.conf" --# endif -+# define CONFFILE "/etc/dnsmasq.conf" - #endif - - #define DEFLEASE 3600 /* default lease time, 1 hour */ diff --git a/net-dns/dnsmasq/files/dnsmasq-2.57-systemd.patch b/net-dns/dnsmasq/files/dnsmasq-2.57-systemd.patch deleted file mode 100644 index e12330e..0000000 --- a/net-dns/dnsmasq/files/dnsmasq-2.57-systemd.patch +++ /dev/null @@ -1,838 +0,0 @@ -From d3e08d94f1ede6c3a0bab2e48b3291426c999d36 Mon Sep 17 00:00:00 2001 -From: microcai <microcai@fedoraproject.org> -Date: Thu, 19 May 2011 01:04:16 +0800 -Subject: [PATCH] systemd socket patch - ---- - Makefile | 2 +- - src/dhcp.c | 10 ++ - src/dnsmasq.c | 10 +- - src/dnsmasq.h | 2 + - src/network.c | 16 ++ - src/sd-daemon.c | 439 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/sd-daemon.h | 265 +++++++++++++++++++++++++++++++++ - 7 files changed, 738 insertions(+), 6 deletions(-) - create mode 100644 src/sd-daemon.c - create mode 100644 src/sd-daemon.h - -diff --git a/Makefile b/Makefile -index 16c69e4..4cf9181 100644 ---- a/Makefile -+++ b/Makefile -@@ -40,7 +40,7 @@ SUNOS_LIBS= `if uname | grep SunOS 2>&1 >/dev/null; then echo -lsocket -lnsl -lp - - OBJS = cache.o rfc1035.o util.o option.o forward.o network.o \ - dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o \ -- helper.o tftp.o log.o -+ helper.o tftp.o log.o sd-daemon.o - - all : - @cd $(SRC) && $(MAKE) \ -diff --git a/src/dhcp.c b/src/dhcp.c -index 29ddf24..df5edd1 100644 ---- a/src/dhcp.c -+++ b/src/dhcp.c -@@ -29,6 +29,16 @@ static int complete_context(struct in_addr local, int if_index, - - static int make_fd(int port) - { -+ int fd_base, listen_fds = sd_listen_fds(0); -+ // first check if systemd already did that for us -+ for( fd_base = 0 ; fd_base < listen_fds ; fd_base ++) -+ { -+ if (sd_is_socket_inet(fd_base + SD_LISTEN_FDS_START, PF_INET, SOCK_DGRAM,0, port)) -+ { -+ return fd_base + SD_LISTEN_FDS_START; -+ } -+ } -+ - int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); - struct sockaddr_in saddr; - int oneopt = 1; -diff --git a/src/dnsmasq.c b/src/dnsmasq.c -index 827b0dc..cd38cfe 100644 ---- a/src/dnsmasq.c -+++ b/src/dnsmasq.c -@@ -126,11 +126,11 @@ int main (int argc, char **argv) - } - #endif - -- /* Close any file descriptors we inherited apart from std{in|out|err} */ -- for (i = 0; i < max_fd; i++) -- if (i != STDOUT_FILENO && i != STDERR_FILENO && i != STDIN_FILENO) -- close(i); -- -+ if( sd_listen_fds(0) < 0){ -+ /* Close any file descriptors we inherited apart from std{in|out|err} */ -+ for (i = 3 ; i < max_fd; i++) -+ close(i); -+ } - #ifdef HAVE_LINUX_NETWORK - netlink_init(); - #elif !(defined(IP_RECVDSTADDR) && \ -diff --git a/src/dnsmasq.h b/src/dnsmasq.h -index a386a31..8d1b87f 100644 ---- a/src/dnsmasq.h -+++ b/src/dnsmasq.h -@@ -122,6 +122,8 @@ extern int capget(cap_user_header_t header, cap_user_data_t data); - #include <priv.h> - #endif - -+#include "sd-daemon.h" -+ - /* daemon is function in the C library.... */ - #define daemon dnsmasq_daemon - -diff --git a/src/network.c b/src/network.c -index 7b2e905..0b84b2d 100644 ---- a/src/network.c -+++ b/src/network.c -@@ -362,6 +362,21 @@ static int make_sock(union mysockaddr *addr, int type) - #ifdef HAVE_IPV6 - static int dad_count = 0; - #endif -+ int fd_base, listen_fds = sd_listen_fds(0); -+ // first check if systemd already did that for us -+ for( fd_base = 0 ; fd_base < listen_fds ; fd_base ++) -+ { -+ int port = prettyprint_addr(addr, daemon->namebuff); -+ -+ if (sd_is_socket_inet(fd_base + SD_LISTEN_FDS_START, family, type, type==SOCK_STREAM? 1:0, port)) -+ { -+ fd = fd_base + SD_LISTEN_FDS_START; -+ -+ if (type != SOCK_STREAM) -+ goto setup; -+ return fd; -+ } -+ } - - if ((fd = socket(family, type, 0)) == -1) - { -@@ -412,6 +427,7 @@ static int make_sock(union mysockaddr *addr, int type) - if (rc == -1) - goto err; - -+setup: - if (type == SOCK_STREAM) - { - if (listen(fd, 5) == -1) -diff --git a/src/sd-daemon.c b/src/sd-daemon.c -new file mode 100644 -index 0000000..47da2fd ---- /dev/null -+++ b/src/sd-daemon.c -@@ -0,0 +1,439 @@ -+#ifndef _WIN32 -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+/*** -+ Copyright 2010 Lennart Poettering -+ -+ Permission is hereby granted, free of charge, to any person -+ obtaining a copy of this software and associated documentation files -+ (the "Software"), to deal in the Software without restriction, -+ including without limitation the rights to use, copy, modify, merge, -+ publish, distribute, sublicense, and/or sell copies of the Software, -+ and to permit persons to whom the Software is furnished to do so, -+ subject to the following conditions: -+ -+ The above copyright notice and this permission notice shall be -+ included in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ SOFTWARE. -+***/ -+ -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE -+#endif -+ -+#include <sys/types.h> -+#include <sys/stat.h> -+#include <sys/socket.h> -+#include <sys/un.h> -+#include <sys/fcntl.h> -+#include <netinet/in.h> -+#include <stdlib.h> -+#include <errno.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdarg.h> -+#include <stdio.h> -+#include <stddef.h> -+ -+#include "sd-daemon.h" -+ -+int sd_listen_fds(int unset_environment) { -+ -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ int r, fd; -+ const char *e; -+ char *p = NULL; -+ unsigned long l; -+ -+ if (!(e = getenv("LISTEN_PID"))) { -+ r = 0; -+ goto finish; -+ } -+ -+ errno = 0; -+ l = strtoul(e, &p, 10); -+ -+ if (errno != 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (!p || *p || l <= 0) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ /* Is this for us? */ -+ if (getpid() != (pid_t) l) { -+ r = 0; -+ goto finish; -+ } -+ -+ if (!(e = getenv("LISTEN_FDS"))) { -+ r = 0; -+ goto finish; -+ } -+ -+ errno = 0; -+ l = strtoul(e, &p, 10); -+ -+ if (errno != 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (!p || *p) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + (int) l; fd ++) { -+ int flags; -+ -+ if ((flags = fcntl(fd, F_GETFD)) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (flags & FD_CLOEXEC) -+ continue; -+ -+ if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ } -+ -+ r = (int) l; -+ -+finish: -+ if (unset_environment) { -+ unsetenv("LISTEN_PID"); -+ unsetenv("LISTEN_FDS"); -+ } -+ -+ return r; -+#endif -+} -+ -+int sd_is_fifo(int fd, const char *path) { -+ struct stat st_fd; -+ -+ if (fd < 0) -+ return -EINVAL; -+ -+ memset(&st_fd, 0, sizeof(st_fd)); -+ if (fstat(fd, &st_fd) < 0) -+ return -errno; -+ -+ if (!S_ISFIFO(st_fd.st_mode)) -+ return 0; -+ -+ if (path) { -+ struct stat st_path; -+ -+ memset(&st_path, 0, sizeof(st_path)); -+ if (stat(path, &st_path) < 0) { -+ -+ if (errno == ENOENT || errno == ENOTDIR) -+ return 0; -+ -+ return -errno; -+ } -+ -+ return -+ st_path.st_dev == st_fd.st_dev && -+ st_path.st_ino == st_fd.st_ino; -+ } -+ -+ return 1; -+} -+ -+static int sd_is_socket_internal(int fd, int type, int listening) { -+ struct stat st_fd; -+ -+ if (fd < 0 || type < 0) -+ return -EINVAL; -+ -+ if (fstat(fd, &st_fd) < 0) -+ return -errno; -+ -+ if (!S_ISSOCK(st_fd.st_mode)) -+ return 0; -+ -+ if (type != 0) { -+ int other_type = 0; -+ socklen_t l = sizeof(other_type); -+ -+ if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &other_type, &l) < 0) -+ return -errno; -+ -+ if (l != sizeof(other_type)) -+ return -EINVAL; -+ -+ if (other_type != type) -+ return 0; -+ } -+ -+ if (listening >= 0) { -+ int accepting = 0; -+ socklen_t l = sizeof(accepting); -+ -+ if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &accepting, &l) < 0) -+ return -errno; -+ -+ if (l != sizeof(accepting)) -+ return -EINVAL; -+ -+ if (!accepting != !listening) -+ return 0; -+ } -+ -+ return 1; -+} -+ -+union sockaddr_union { -+ struct sockaddr sa; -+ struct sockaddr_in in4; -+ struct sockaddr_in6 in6; -+ struct sockaddr_un un; -+ struct sockaddr_storage storage; -+}; -+ -+int sd_is_socket(int fd, int family, int type, int listening) { -+ int r; -+ -+ if (family < 0) -+ return -EINVAL; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ if (family > 0) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ return sockaddr.sa.sa_family == family; -+ } -+ -+ return 1; -+} -+ -+int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ int r; -+ -+ if (family != 0 && family != AF_INET && family != AF_INET6) -+ return -EINVAL; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ if (sockaddr.sa.sa_family != AF_INET && -+ sockaddr.sa.sa_family != AF_INET6) -+ return 0; -+ -+ if (family > 0) -+ if (sockaddr.sa.sa_family != family) -+ return 0; -+ -+ if (port > 0) { -+ if (sockaddr.sa.sa_family == AF_INET) { -+ if (l < sizeof(struct sockaddr_in)) -+ return -EINVAL; -+ -+ return htons(port) == sockaddr.in4.sin_port; -+ } else { -+ if (l < sizeof(struct sockaddr_in6)) -+ return -EINVAL; -+ -+ return htons(port) == sockaddr.in6.sin6_port; -+ } -+ } -+ -+ return 1; -+} -+ -+int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ int r; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ if (sockaddr.sa.sa_family != AF_UNIX) -+ return 0; -+ -+ if (path) { -+ if (length <= 0) -+ length = strlen(path); -+ -+ if (length <= 0) -+ /* Unnamed socket */ -+ return l == offsetof(struct sockaddr_un, sun_path); -+ -+ if (path[0]) -+ /* Normal path socket */ -+ return -+ (l >= offsetof(struct sockaddr_un, sun_path) + length + 1) && -+ memcmp(path, sockaddr.un.sun_path, length+1) == 0; -+ else -+ /* Abstract namespace socket */ -+ return -+ (l == offsetof(struct sockaddr_un, sun_path) + length) && -+ memcmp(path, sockaddr.un.sun_path, length) == 0; -+ } -+ -+ return 1; -+} -+ -+int sd_notify(int unset_environment, const char *state) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) || !defined(SOCK_CLOEXEC) -+ return 0; -+#else -+ int fd = -1, r; -+ struct msghdr msghdr; -+ struct iovec iovec; -+ union sockaddr_union sockaddr; -+ const char *e; -+ -+ if (!state) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ if (!(e = getenv("NOTIFY_SOCKET"))) -+ return 0; -+ -+ /* Must be an abstract socket, or an absolute path */ -+ if ((e[0] != '@' && e[0] != '/') || e[1] == 0) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ sockaddr.sa.sa_family = AF_UNIX; -+ strncpy(sockaddr.un.sun_path, e, sizeof(sockaddr.un.sun_path)); -+ -+ if (sockaddr.un.sun_path[0] == '@') -+ sockaddr.un.sun_path[0] = 0; -+ -+ memset(&iovec, 0, sizeof(iovec)); -+ iovec.iov_base = (char*) state; -+ iovec.iov_len = strlen(state); -+ -+ memset(&msghdr, 0, sizeof(msghdr)); -+ msghdr.msg_name = &sockaddr; -+ msghdr.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(e); -+ -+ if (msghdr.msg_namelen > sizeof(struct sockaddr_un)) -+ msghdr.msg_namelen = sizeof(struct sockaddr_un); -+ -+ msghdr.msg_iov = &iovec; -+ msghdr.msg_iovlen = 1; -+ -+ if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ r = 1; -+ -+finish: -+ if (unset_environment) -+ unsetenv("NOTIFY_SOCKET"); -+ -+ if (fd >= 0) -+ close(fd); -+ -+ return r; -+#endif -+} -+ -+int sd_notifyf(int unset_environment, const char *format, ...) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ va_list ap; -+ char *p = NULL; -+ int r; -+ -+ va_start(ap, format); -+ r = vasprintf(&p, format, ap); -+ va_end(ap); -+ -+ if (r < 0 || !p) -+ return -ENOMEM; -+ -+ r = sd_notify(unset_environment, p); -+ free(p); -+ -+ return r; -+#endif -+} -+ -+int sd_booted(void) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ -+ struct stat a, b; -+ -+ /* We simply test whether the systemd cgroup hierarchy is -+ * mounted */ -+ -+ if (lstat("/sys/fs/cgroup", &a) < 0) -+ return 0; -+ -+ if (lstat("/sys/fs/cgroup/systemd", &b) < 0) -+ return 0; -+ -+ return a.st_dev != b.st_dev; -+#endif -+} -+ -+#endif // _WIN32 -diff --git a/src/sd-daemon.h b/src/sd-daemon.h -new file mode 100644 -index 0000000..4b853a1 ---- /dev/null -+++ b/src/sd-daemon.h -@@ -0,0 +1,265 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+#ifndef foosddaemonhfoo -+#define foosddaemonhfoo -+ -+/*** -+ Copyright 2010 Lennart Poettering -+ -+ Permission is hereby granted, free of charge, to any person -+ obtaining a copy of this software and associated documentation files -+ (the "Software"), to deal in the Software without restriction, -+ including without limitation the rights to use, copy, modify, merge, -+ publish, distribute, sublicense, and/or sell copies of the Software, -+ and to permit persons to whom the Software is furnished to do so, -+ subject to the following conditions: -+ -+ The above copyright notice and this permission notice shall be -+ included in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ SOFTWARE. -+***/ -+ -+#include <sys/types.h> -+#include <inttypes.h> -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/* -+ Reference implementation of a few systemd related interfaces for -+ writing daemons. These interfaces are trivial to implement. To -+ simplify porting we provide this reference implementation. -+ Applications are welcome to reimplement the algorithms described -+ here if they do not want to include these two source files. -+ -+ The following functionality is provided: -+ -+ - Support for logging with log levels on stderr -+ - File descriptor passing for socket-based activation -+ - Daemon startup and status notification -+ - Detection of systemd boots -+ -+ You may compile this with -DDISABLE_SYSTEMD to disable systemd -+ support. This makes all those calls NOPs that are directly related to -+ systemd (i.e. only sd_is_xxx() will stay useful). -+ -+ Since this is drop-in code we don't want any of our symbols to be -+ exported in any case. Hence we declare hidden visibility for all of -+ them. -+ -+ You may find an up-to-date version of these source files online: -+ -+ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.h -+ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.c -+ -+ This should compile on non-Linux systems, too, but with the -+ exception of the sd_is_xxx() calls all functions will become NOPs. -+ -+ See sd-daemon(7) for more information. -+*/ -+ -+#ifndef _sd_printf_attr_ -+#if __GNUC__ >= 4 -+#define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b))) -+#else -+#define _sd_printf_attr_(a,b) -+#endif -+#endif -+ -+#ifndef _sd_hidden_ -+#if (__GNUC__ >= 4) && !defined(SD_EXPORT_SYMBOLS) -+#define _sd_hidden_ __attribute__ ((visibility("hidden"))) -+#else -+#define _sd_hidden_ -+#endif -+#endif -+ -+/* -+ Log levels for usage on stderr: -+ -+ fprintf(stderr, SD_NOTICE "Hello World!\n"); -+ -+ This is similar to printk() usage in the kernel. -+*/ -+#define SD_EMERG "<0>" /* system is unusable */ -+#define SD_ALERT "<1>" /* action must be taken immediately */ -+#define SD_CRIT "<2>" /* critical conditions */ -+#define SD_ERR "<3>" /* error conditions */ -+#define SD_WARNING "<4>" /* warning conditions */ -+#define SD_NOTICE "<5>" /* normal but significant condition */ -+#define SD_INFO "<6>" /* informational */ -+#define SD_DEBUG "<7>" /* debug-level messages */ -+ -+/* The first passed file descriptor is fd 3 */ -+#define SD_LISTEN_FDS_START 3 -+ -+/* -+ Returns how many file descriptors have been passed, or a negative -+ errno code on failure. Optionally, removes the $LISTEN_FDS and -+ $LISTEN_PID file descriptors from the environment (recommended, but -+ problematic in threaded environments). If r is the return value of -+ this function you'll find the file descriptors passed as fds -+ SD_LISTEN_FDS_START to SD_LISTEN_FDS_START+r-1. Returns a negative -+ errno style error code on failure. This function call ensures that -+ the FD_CLOEXEC flag is set for the passed file descriptors, to make -+ sure they are not passed on to child processes. If FD_CLOEXEC shall -+ not be set, the caller needs to unset it after this call for all file -+ descriptors that are used. -+ -+ See sd_listen_fds(3) for more information. -+*/ -+int sd_listen_fds(int unset_environment) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is a FIFO in the file system stored under the -+ specified path, 0 otherwise. If path is NULL a path name check will -+ not be done and the call only verifies if the file descriptor -+ refers to a FIFO. Returns a negative errno style error code on -+ failure. -+ -+ See sd_is_fifo(3) for more information. -+*/ -+int sd_is_fifo(int fd, const char *path) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is a socket of the specified family (AF_INET, -+ ...) and type (SOCK_DGRAM, SOCK_STREAM, ...), 0 otherwise. If -+ family is 0 a socket family check will not be done. If type is 0 a -+ socket type check will not be done and the call only verifies if -+ the file descriptor refers to a socket. If listening is > 0 it is -+ verified that the socket is in listening mode. (i.e. listen() has -+ been called) If listening is == 0 it is verified that the socket is -+ not in listening mode. If listening is < 0 no listening mode check -+ is done. Returns a negative errno style error code on failure. -+ -+ See sd_is_socket(3) for more information. -+*/ -+int sd_is_socket(int fd, int family, int type, int listening) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is an Internet socket, of the specified family -+ (either AF_INET or AF_INET6) and the specified type (SOCK_DGRAM, -+ SOCK_STREAM, ...), 0 otherwise. If version is 0 a protocol version -+ check is not done. If type is 0 a socket type check will not be -+ done. If port is 0 a socket port check will not be done. The -+ listening flag is used the same way as in sd_is_socket(). Returns a -+ negative errno style error code on failure. -+ -+ See sd_is_socket_inet(3) for more information. -+*/ -+int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is an AF_UNIX socket of the specified type -+ (SOCK_DGRAM, SOCK_STREAM, ...) and path, 0 otherwise. If type is 0 -+ a socket type check will not be done. If path is NULL a socket path -+ check will not be done. For normal AF_UNIX sockets set length to -+ 0. For abstract namespace sockets set length to the length of the -+ socket name (including the initial 0 byte), and pass the full -+ socket path in path (including the initial 0 byte). The listening -+ flag is used the same way as in sd_is_socket(). Returns a negative -+ errno style error code on failure. -+ -+ See sd_is_socket_unix(3) for more information. -+*/ -+int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) _sd_hidden_; -+ -+/* -+ Informs systemd about changed daemon state. This takes a number of -+ newline separated environment-style variable assignments in a -+ string. The following variables are known: -+ -+ READY=1 Tells systemd that daemon startup is finished (only -+ relevant for services of Type=notify). The passed -+ argument is a boolean "1" or "0". Since there is -+ little value in signaling non-readiness the only -+ value daemons should send is "READY=1". -+ -+ STATUS=... Passes a single-line status string back to systemd -+ that describes the daemon state. This is free-from -+ and can be used for various purposes: general state -+ feedback, fsck-like programs could pass completion -+ percentages and failing programs could pass a human -+ readable error message. Example: "STATUS=Completed -+ 66% of file system check..." -+ -+ ERRNO=... If a daemon fails, the errno-style error code, -+ formatted as string. Example: "ERRNO=2" for ENOENT. -+ -+ BUSERROR=... If a daemon fails, the D-Bus error-style error -+ code. Example: "BUSERROR=org.freedesktop.DBus.Error.TimedOut" -+ -+ MAINPID=... The main pid of a daemon, in case systemd did not -+ fork off the process itself. Example: "MAINPID=4711" -+ -+ Daemons can choose to send additional variables. However, it is -+ recommended to prefix variable names not listed above with X_. -+ -+ Returns a negative errno-style error code on failure. Returns > 0 -+ if systemd could be notified, 0 if it couldn't possibly because -+ systemd is not running. -+ -+ Example: When a daemon finished starting up, it could issue this -+ call to notify systemd about it: -+ -+ sd_notify(0, "READY=1"); -+ -+ See sd_notifyf() for more complete examples. -+ -+ See sd_notify(3) for more information. -+*/ -+int sd_notify(int unset_environment, const char *state) _sd_hidden_; -+ -+/* -+ Similar to sd_notify() but takes a format string. -+ -+ Example 1: A daemon could send the following after initialization: -+ -+ sd_notifyf(0, "READY=1\n" -+ "STATUS=Processing requests...\n" -+ "MAINPID=%lu", -+ (unsigned long) getpid()); -+ -+ Example 2: A daemon could send the following shortly before -+ exiting, on failure: -+ -+ sd_notifyf(0, "STATUS=Failed to start up: %s\n" -+ "ERRNO=%i", -+ strerror(errno), -+ errno); -+ -+ See sd_notifyf(3) for more information. -+*/ -+int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3) _sd_hidden_; -+ -+/* -+ Returns > 0 if the system was booted with systemd. Returns < 0 on -+ error. Returns 0 if the system was not booted with systemd. Note -+ that all of the functions above handle non-systemd boots just -+ fine. You should NOT protect them with a call to this function. Also -+ note that this function checks whether the system, not the user -+ session is controlled by systemd. However the functions above work -+ for both user and system services. -+ -+ See sd_booted(3) for more information. -+*/ -+int sd_booted(void) _sd_hidden_; -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif --- -1.7.5.rc3 - diff --git a/net-dns/dnsmasq/files/dnsmasq-dhcp.socket b/net-dns/dnsmasq/files/dnsmasq-dhcp.socket deleted file mode 100644 index 7c4a626..0000000 --- a/net-dns/dnsmasq/files/dnsmasq-dhcp.socket +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=DHCP Socket activation for dnsmasq - Small forwarding DNS server with DHCP and tftp support. - -[Socket] - -BindIPv6Only=ipv6-only - - -ListenDatagram=0.0.0.0:67 -ListenDatagram=[::]:67 - -Service=dnsmasq.service - -[Install] -WantedBy=sockets.target diff --git a/net-dns/dnsmasq/files/dnsmasq-init b/net-dns/dnsmasq/files/dnsmasq-init deleted file mode 100644 index b3d19c1..0000000 --- a/net-dns/dnsmasq/files/dnsmasq-init +++ /dev/null @@ -1,39 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2010 Gentoo Foundation -# Distributed under the terms of the GNU General Public License, v2 or later -# $Header: /var/cvsroot/gentoo-x86/net-dns/dnsmasq/files/dnsmasq-init,v 1.14 2010/11/19 16:04:20 chutzpah Exp $ - -opts="reload" - -depend() { - provide dns - need localmount net - after bootmisc - use logger -} - -start() { - ebegin "Starting ${SVCNAME}" - start-stop-daemon --start --exec /usr/sbin/dnsmasq \ - --pidfile /var/run/dnsmasq.pid \ - -- -x /var/run/dnsmasq.pid ${DNSMASQ_OPTS} - eend $? -} - -stop() { - ebegin "Stopping ${SVCNAME}" - start-stop-daemon --stop --exec /usr/sbin/dnsmasq \ - --pidfile /var/run/dnsmasq.pid - eend $? -} - -reload() { - ebegin "Reloading ${SVCNAME}" - if ! service_started "${SVCNAME}" ; then - eend 1 "${SVCNAME} is not started" - return 1 - fi - start-stop-daemon --stop --oknodo --signal HUP \ - --exec /usr/sbin/dnsmasq --pidfile /var/run/dnsmasq.pid - eend $? -} diff --git a/net-dns/dnsmasq/files/dnsmasq-tftp.socket b/net-dns/dnsmasq/files/dnsmasq-tftp.socket deleted file mode 100644 index 9995558..0000000 --- a/net-dns/dnsmasq/files/dnsmasq-tftp.socket +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=TFTP Socket activation for dnsmasq - Small forwarding DNS server with DHCP and tftp support. - -[Socket] - -BindIPv6Only=ipv6-only - - -#TFTP, uncomment this to have tftp support -ListenDatagram=[::]:69 -ListenDatagram=0.0.0.0:69 - -Service=dnsmasq.service - -[Install] -WantedBy=sockets.target diff --git a/net-dns/dnsmasq/files/dnsmasq.confd b/net-dns/dnsmasq/files/dnsmasq.confd deleted file mode 100644 index 47826dd..0000000 --- a/net-dns/dnsmasq/files/dnsmasq.confd +++ /dev/null @@ -1,4 +0,0 @@ -# /etc/conf.d/dnsmasq: config file for /etc/init.d/dnsmasq - -# See the dnsmasq(8) man page for possible options to put here. -DNSMASQ_OPTS="" diff --git a/net-dns/dnsmasq/files/dnsmasq.service b/net-dns/dnsmasq/files/dnsmasq.service deleted file mode 100644 index cdfcd0e..0000000 --- a/net-dns/dnsmasq/files/dnsmasq.service +++ /dev/null @@ -1,11 +0,0 @@ - -[Unit] -Description=Small forwarding DNS server with DHCP and tftp support. -After=network.target - -[Service] -StandardOutput=syslog -StandardError=syslog - -ExecStart=/usr/sbin/dnsmasq -d -k - diff --git a/net-dns/dnsmasq/files/dnsmasq.socket b/net-dns/dnsmasq/files/dnsmasq.socket deleted file mode 100644 index 2314f75..0000000 --- a/net-dns/dnsmasq/files/dnsmasq.socket +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=DNS Socket activation for dnsmasq - Small forwarding DNS server with DHCP and tftp support. - -[Socket] - -BindIPv6Only=ipv6-only - -#DNS -ListenDatagram=0.0.0.0:53 -ListenStream=0.0.0.0:53 -ListenDatagram=[::]:53 -ListenStream=[::]:53 - -[Install] -WantedBy=sockets.target diff --git a/net-dns/dnsmasq/metadata.xml b/net-dns/dnsmasq/metadata.xml deleted file mode 100644 index d8739e6..0000000 --- a/net-dns/dnsmasq/metadata.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> -<herd>no-herd</herd> -<maintainer> -<email>chutzpah@gentoo.org</email> -<name>Patrick McLean</name> -</maintainer> -<use> - <flag name='dhcp'>Enable support for reading ISC DHCPd lease files</flag> - <flag name='tftp'>Enables built in TFTP server for netbooting</flag> -</use> -</pkgmetadata> - |