commit:     74f319a5680c75332277a7061709f505f1ccbd92
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 14 23:25:55 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Sep 14 23:29:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74f319a5

net-misc/ipv6calc: fix underlinking

Closes: https://bugs.gentoo.org/661536
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/ipv6calc-4.0.1-underlinking.patch        | 79 +++++++++++++++++++++
 net-misc/ipv6calc/ipv6calc-4.0.1-r1.ebuild         | 80 ++++++++++++++++++++++
 2 files changed, 159 insertions(+)

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 <[email protected]>
+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 <[email protected]>
+--- 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
+}

Reply via email to