summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Roovers <jer@gentoo.org>2020-05-31 10:39:43 +0200
committerJeroen Roovers <jer@gentoo.org>2020-05-31 10:44:21 +0200
commitfd39764e29352cda5c48f49c4f1aaa7046e274d9 (patch)
tree8788db07c65aaebef88d76c1d1baac1c0b33f1bd /net-misc/ip-sentinel
parentsys-apps/sandbox: Force -j1 for emake check (diff)
downloadgentoo-fd39764e29352cda5c48f49c4f1aaa7046e274d9.tar.gz
gentoo-fd39764e29352cda5c48f49c4f1aaa7046e274d9.tar.bz2
gentoo-fd39764e29352cda5c48f49c4f1aaa7046e274d9.zip
net-misc/ip-sentinel: Fix compile error when non-dietlibc is used
(Add upstream patch) Also: - EAPI=7 - Shorten DESCRIPTION - Use HTTPS in HOMEPAGE - Fix bashism in init.d script (echo -n => printf) - Disable failing src/testsuite/prioqueue-check.sh based tests Package-Manager: Portage-2.3.100, Repoman-2.3.22 Closes: https://bugs.gentoo.org/725176 Signed-off-by: Jeroen Roovers <jer@gentoo.org>
Diffstat (limited to 'net-misc/ip-sentinel')
-rw-r--r--net-misc/ip-sentinel/files/ip-sentinel-0.12-fixed-dietlibc-compat-stuff.patch100
-rw-r--r--net-misc/ip-sentinel/files/ip-sentinel.init4
-rw-r--r--net-misc/ip-sentinel/ip-sentinel-0.12-r1.ebuild77
3 files changed, 179 insertions, 2 deletions
diff --git a/net-misc/ip-sentinel/files/ip-sentinel-0.12-fixed-dietlibc-compat-stuff.patch b/net-misc/ip-sentinel/files/ip-sentinel-0.12-fixed-dietlibc-compat-stuff.patch
new file mode 100644
index 000000000000..051956366fe0
--- /dev/null
+++ b/net-misc/ip-sentinel/files/ip-sentinel-0.12-fixed-dietlibc-compat-stuff.patch
@@ -0,0 +1,100 @@
+From ecf89e635de8778ebbf901279f7672e2c15e4ecb Mon Sep 17 00:00:00 2001
+From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+Date: Fri, 1 Aug 2008 09:20:46 +0200
+Subject: fixed dietlibc compatibility stuff
+
+removed lot of compatibility stuff which was needed for ancient
+dietlibc version.
+---
+ src/compat.h | 31 ++-----------------------------
+ src/util.h | 2 +-
+ src/wrappers.h | 1 +
+ 3 files changed, 4 insertions(+), 30 deletions(-)
+
+diff --git a/src/compat.h b/src/compat.h
+index c180185..c6fb409 100644
+--- a/src/compat.h
++++ b/src/compat.h
+@@ -19,22 +19,8 @@
+ #ifndef H_ENSC_IPSENTINEL_SRC_COMPAT_H
+ #define H_ENSC_IPSENTINEL_SRC_COMPAT_H
+
+-#if defined(__dietlibc__) && !defined(ENSC_DIETLIBC_C99) && defined(__STRICT_ANSI__) && defined(__STDC_VERSION__)
+- // fixed in 0.25+
+-# include <sys/cdefs.h>
+-# undef inline
+-
+-# undef __STRICT_ANSI__
+-# include <stdint.h>
+-# define __STRICT_ANSI__
+-#endif
+-
+ #ifdef __dietlibc__
+- // fixed in 0.27+
+-# define ethhdr ethhdrX
+-# include <net/ethernet.h>
+-# undef ethhdr
+-
++struct ether_addr;
+ # ifndef HAVE_DIET_ETHER_NTOA
+ char * ether_ntoa(struct ether_addr const *addr);
+ # endif
+@@ -44,22 +30,9 @@ struct ether_addr * ether_aton_r(const char *asc, struct ether_addr *addr);
+ # endif
+ #endif
+
+-
+-#ifndef __dietlibc__
+-# include <stropts.h>
+-#else
+-# include <sys/ioctl.h>
+-#endif
+-
+-#ifdef __dietlibc__
+-# define sin XsinX
+-#endif
+-#include <netinet/in.h>
+-#undef sin
+-
+-
+ #ifdef __dietlibc__
+ #include <net/if_arp.h>
++#include <net/ethernet.h>
+ #include <stdint.h>
+
+ struct ether_arp {
+diff --git a/src/util.h b/src/util.h
+index 20381e3..adfe3a6 100644
+--- a/src/util.h
++++ b/src/util.h
+@@ -25,7 +25,6 @@
+ #include <unistd.h>
+ #include <net/ethernet.h>
+
+-
+ /*@-namechecks@*/
+ #ifndef __cplusplus
+ # define cAsT_(X) (X))
+@@ -77,6 +76,7 @@ xstrcat(char **dst, size_t *cnt, char const *src)
+ xstrcatn(dst, cnt, src, strlen(src));
+ }
+
++struct in_addr;
+ void writeUInt(int fd, unsigned int nr);
+ void writeMsgTimestamp(int fd);
+ void writeIP(int fd, struct in_addr);
+diff --git a/src/wrappers.h b/src/wrappers.h
+index e1be0ad..5548702 100644
+--- a/src/wrappers.h
++++ b/src/wrappers.h
+@@ -24,6 +24,7 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/stat.h>
++#include <sys/ioctl.h>
+ #include <fcntl.h>
+ #include <pwd.h>
+ #include <errno.h>
+--
+cgit v1.2.1
+
diff --git a/net-misc/ip-sentinel/files/ip-sentinel.init b/net-misc/ip-sentinel/files/ip-sentinel.init
index 923cedeac13c..c839ca61d69b 100644
--- a/net-misc/ip-sentinel/files/ip-sentinel.init
+++ b/net-misc/ip-sentinel/files/ip-sentinel.init
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
-# Copyright 1999-2006 Gentoo Foundation
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
CFG_FILE="/etc/ip-sentinel.cfg"
@@ -40,7 +40,7 @@ restart () {
echo "Please, wait while child process quit..."
while `ps aux | grep -v 'init.d' | grep [i]p-sentinel >/dev/null`
do
- echo -n ". "
+ printf ". "
sleep 1
done
echo "[Done]"
diff --git a/net-misc/ip-sentinel/ip-sentinel-0.12-r1.ebuild b/net-misc/ip-sentinel/ip-sentinel-0.12-r1.ebuild
new file mode 100644
index 000000000000..76e2d1db7e7f
--- /dev/null
+++ b/net-misc/ip-sentinel/ip-sentinel-0.12-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit user
+
+DESCRIPTION="Prevent unauthorized usage of IP addresses"
+HOMEPAGE="https://www.nongnu.org/ip-sentinel/"
+LICENSE="GPL-2"
+SRC_URI="https://savannah.nongnu.org/download/ip-sentinel/${P}.tar.bz2"
+SLOT="0"
+KEYWORDS="~x86"
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS )
+PATCHES=(
+ "${FILESDIR}"/${P}-fixed-dietlibc-compat-stuff.patch
+)
+
+pkg_setup() {
+ enewgroup ipsentinel
+ enewuser ipsentinel -1 -1 -1 ipsentinel
+}
+
+src_prepare() {
+ default
+
+ # disable failing tests
+ echo true > src/testsuite/prioqueue-check.sh
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/ip-sentinel.init ip-sentinel
+ newconfd "${FILESDIR}"/ip-sentinel.conf.d ip-sentinel
+
+ insinto /etc
+ newins "${FILESDIR}"/ip-sentinel.cfg ip-sentinel.cfg
+}
+
+pkg_config() {
+ CHROOT=`sed -n 's/^[[:blank:]]\?CHROOT="\([^"]\+\)"/\1/p' /etc/conf.d/ip-sentinel 2>/dev/null`
+
+ if [ ! -d "${CHROOT:=/chroot/ip-sentinel}" ] ; then
+ ebegin "Setting up the chroot directory"
+ mkdir -m 0755 -p "${CHROOT}/etc"
+ cp -R /etc/ip-sentinel.cfg "${CHROOT}/etc"
+ eend
+
+ if [ "`grep '^#[[:blank:]]\?CHROOT' /etc/conf.d/ip-sentinel`" ] ; then
+ sed -e '/^#[[:blank:]]\?CHROOT/s/^#[[:blank:]]\?//' \
+ -i /etc/conf.d/ip-sentinel
+ fi
+ else
+ eerror
+ eerror "${CHROOT} already exists. Quitting."
+ eerror
+ fi
+}
+
+pkg_postinst() {
+ elog "You can edit /etc/conf.d/ip-sentinel to customize startup daemon"
+ elog "settings."
+ elog
+ elog "Default ip-sentinel config is in /etc/ip-sentinel.cfg"
+ elog
+ elog "The ip-sentinel ebuild has chroot support."
+ elog "If you like to run ip-sentinel in chroot AND this is a new install OR"
+ elog "your ip-sentinel doesn't already run in chroot, simply run:"
+ elog "emerge --config =${CATEGORY}/${PF}"
+ elog "Before running the above command you might want to change the chroot"
+ elog "dir in /etc/conf.d/ip-sentinel, otherwise /chroot/ip-sentinel will be used."
+ echo
+ ewarn "And please! DO NOT START THIS DAEMON thoughtlessly."
+ ewarn "If you DO this will BLOCK ALL communication inside your ethernet"
+ ewarn "segment!!! If you have any doubts do not start ip-sentinel."
+}