summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-09-15 00:25:55 +0100
committerSam James <sam@gentoo.org>2022-09-15 00:29:17 +0100
commit74f319a5680c75332277a7061709f505f1ccbd92 (patch)
tree84dd809a61d0c367dbe9602745b1c05c0fd5f635 /net-misc/ipv6calc
parentsys-fs/fscrypt: update SRC_URI (diff)
downloadgentoo-74f319a5680c75332277a7061709f505f1ccbd92.tar.gz
gentoo-74f319a5680c75332277a7061709f505f1ccbd92.tar.bz2
gentoo-74f319a5680c75332277a7061709f505f1ccbd92.zip
net-misc/ipv6calc: fix underlinking
Closes: https://bugs.gentoo.org/661536 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-misc/ipv6calc')
-rw-r--r--net-misc/ipv6calc/files/ipv6calc-4.0.1-underlinking.patch79
-rw-r--r--net-misc/ipv6calc/ipv6calc-4.0.1-r1.ebuild80
2 files changed, 159 insertions, 0 deletions
diff --git a/net-misc/ipv6calc/files/ipv6calc-4.0.1-underlinking.patch b/net-misc/ipv6calc/files/ipv6calc-4.0.1-underlinking.patch
new file mode 100644
index 000000000000..787ef1a3180c
--- /dev/null
+++ b/net-misc/ipv6calc/files/ipv6calc-4.0.1-underlinking.patch
@@ -0,0 +1,79 @@
+https://github.com/pbiering/ipv6calc/pull/35
+
+From e73dfa578b2af3f75b86e7584cfffcad79d75764 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Thu, 15 Sep 2022 00:23:37 +0100
+Subject: [PATCH] Fix underlinking with -lm (LDFLAGS order)
+
+LDFLAGS must come _before_ any libraries,
+as some take effect based on arguments afterwards.
+
+For example, -Wl,--as-needed (which some distributions
+set by default, even) will discard (or not know about)
+any objects listed before it.
+
+See also e.g.
+https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Importance_of_linking_order.
+
+Bug: https://bugs.gentoo.org/661536
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/ipv6calc/Makefile.in
++++ b/ipv6calc/Makefile.in
+@@ -49,10 +49,10 @@ libipv6calc_db_wrapper:
+ cd ../ && ${MAKE} lib-make
+
+ ipv6calc: $(OBJS) libipv6calc libipv6calc_db_wrapper
+- $(CC) -o ipv6calc $(OBJS) $(GETOBJS) $(LIBS) -lm $(LDFLAGS) $(LDFLAGS_EXTRA)
++ $(CC) -o ipv6calc $(OBJS) $(GETOBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) -lm
+
+ static: ipv6calc
+- $(CC) -o ipv6calc-static $(OBJS) $(GETOBJS) $(LIBS) -lm $(LDFLAGS) $(LDFLAGS_EXTRA_STATIC) -static
++ $(CC) -o ipv6calc-static $(OBJS) $(GETOBJS) $(LDFLAGS) $(LDFLAGS_EXTRA_STATIC) $(LIBS) -lm -static
+
+ distclean:
+ ${MAKE} clean
+--- a/ipv6loganon/Makefile.in
++++ b/ipv6loganon/Makefile.in
+@@ -49,10 +49,10 @@ libipv6calc_db_wrapper:
+ cd ../ && ${MAKE} lib-make
+
+ ipv6loganon: $(OBJS) libipv6calc libipv6calc_db_wrapper
+- $(CC) -o ipv6loganon $(OBJS) $(GETOBJS) $(LIBS) -lm $(LDFLAGS) $(LDFLAGS_EXTRA)
++ $(CC) -o ipv6loganon $(OBJS) $(GETOBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) -lm
+
+ static: ipv6loganon
+- $(CC) -o ipv6loganon-static $(OBJS) $(GETOBJS) $(LIBS) -lm $(LDFLAGS) $(LDFLAGS_EXTRA_STATIC) -static
++ $(CC) -o ipv6loganon-static $(OBJS) $(GETOBJS) $(LDFLAGS) $(LDFLAGS_EXTRA_STATIC) $(LIBS) -lm -static
+
+ distclean:
+ ${MAKE} clean
+--- a/ipv6logconv/Makefile.in
++++ b/ipv6logconv/Makefile.in
+@@ -49,10 +49,10 @@ libipv6calc_db_wrapper:
+ cd ../ && ${MAKE} lib-make
+
+ ipv6logconv: $(OBJS) libipv6calc libipv6calc_db_wrapper
+- $(CC) -o ipv6logconv $(OBJS) $(GETOBJS) $(LIBS) -lm $(LDFLAGS) $(LDFLAGS_EXTRA)
++ $(CC) -o ipv6logconv $(OBJS) $(GETOBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) -lm
+
+ static: ipv6logconv
+- $(CC) -o ipv6logconv-static $(OBJS) $(GETOBJS) $(LIBS) -lm $(LDFLAGS) $(LDFLAGS_EXTRA_STATIC) -static
++ $(CC) -o ipv6logconv-static $(OBJS) $(GETOBJS) $(LDFLAGS) $(LDFLAGS_EXTRA_STATIC) $(LIBS) -lm -static
+
+ distclean:
+ ${MAKE} clean
+--- a/ipv6logstats/Makefile.in
++++ b/ipv6logstats/Makefile.in
+@@ -49,10 +49,10 @@ libipv6calc_db_wrapper.a:
+ $(OBJS): ipv6logstatsoptions.h ipv6logstatshelp.h ipv6logstats.h
+
+ ipv6logstats: $(OBJS) libipv6calc.a libipv6calc_db_wrapper.a
+- $(CC) -o ipv6logstats $(OBJS) $(GETOBJS) $(LIBS) -lm $(LDFLAGS) $(LDFLAGS_EXTRA)
++ $(CC) -o ipv6logstats $(OBJS) $(GETOBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) -lm
+
+ static: ipv6logstats
+- $(CC) -o ipv6logstats-static $(OBJS) $(GETOBJS) $(LIBS) -lm $(LDFLAGS) $(LDFLAGS_EXTRA_STATIC) -static
++ $(CC) -o ipv6logstats-static $(OBJS) $(GETOBJS) $(LDFLAGS) $(LDFLAGS_EXTRA_STATIC) $(LIBS) -lm -static
+
+ distclean:
+ ${MAKE} clean
diff --git a/net-misc/ipv6calc/ipv6calc-4.0.1-r1.ebuild b/net-misc/ipv6calc/ipv6calc-4.0.1-r1.ebuild
new file mode 100644
index 000000000000..e784349e1260
--- /dev/null
+++ b/net-misc/ipv6calc/ipv6calc-4.0.1-r1.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+DESCRIPTION="IPv6 address calculator"
+HOMEPAGE="https://www.deepspace6.net/projects/ipv6calc.html"
+SRC_URI="https://github.com/pbiering/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="cgi geoip test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ cgi? (
+ dev-perl/URI
+ dev-perl/Digest-SHA1
+ )
+ dev-libs/openssl:=
+ geoip? ( >=dev-libs/geoip-1.4.7 )
+"
+DEPEND="${RDEPEND}
+ test? ( dev-perl/Digest-SHA1 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.0.1-underlinking.patch
+)
+
+src_configure() {
+ # These options are broken. You can't disable them. That's
+ # okay because we want then force enabled.
+ # --disable-db-as-registry
+ # --disable-db-cc-registry
+ local myeconfargs=(
+ --disable-compiler-warning-to-error
+ --disable-bundled-getopt
+ --disable-bundled-md5
+ --enable-shared
+ --enable-dynamic-load
+ --enable-db-ieee
+ --enable-db-ipv4
+ --enable-db-ipv6
+ --disable-dbip
+ --disable-dbip2
+ --disable-external
+ --disable-ip2location
+ --enable-openssl-evp-md5
+ --enable-openssl-md5
+ $(use_enable geoip)
+ $(use_enable cgi mod_ipv6calc )
+ )
+
+ if use geoip; then
+ myeconfargs+=( "--with-geoip-db=${EPREFIX}/usr/share/GeoIP" )
+ fi
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake distclean
+ # Disable default CFLAGS (-O2 and -g)
+ emake DEFAULT_CFLAGS=""
+}
+
+src_test() {
+ if [[ ${EUID} -eq 0 ]]; then
+ # Disable tests that fail as root
+ echo true > ipv6logstats/test_ipv6logstats.sh
+ fi
+ default
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc ChangeLog CREDITS README TODO USAGE
+}