diff options
author | Sam James <sam@gentoo.org> | 2022-09-15 00:25:55 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-09-15 00:29:17 +0100 |
commit | 74f319a5680c75332277a7061709f505f1ccbd92 (patch) | |
tree | 84dd809a61d0c367dbe9602745b1c05c0fd5f635 /net-misc/ipv6calc | |
parent | sys-fs/fscrypt: update SRC_URI (diff) | |
download | gentoo-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.patch | 79 | ||||
-rw-r--r-- | net-misc/ipv6calc/ipv6calc-4.0.1-r1.ebuild | 80 |
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 +} |