summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-12-02 02:50:52 +0000
committerSam James <sam@gentoo.org>2022-12-02 02:51:40 +0000
commit4ab69c8447b50953c90c7524d09cd836f57355ef (patch)
tree374d705c8cff06ab3035e023663713e03751cc54 /net-analyzer/net-snmp
parentsys-fs/zfs-kmod: add 2.1.7 (diff)
downloadgentoo-4ab69c8447b50953c90c7524d09cd836f57355ef.tar.gz
gentoo-4ab69c8447b50953c90c7524d09cd836f57355ef.tar.bz2
gentoo-4ab69c8447b50953c90c7524d09cd836f57355ef.zip
net-analyzer/net-snmp: fix LDFLAGS ordering; rebase patches
No guarantee this fixes the reported bug but it needed doing anyway and I've sent the rebased patches upstream. It'll make the situation easier to deal with now these are tidied up, anyway. Unfortunately couldn't reproduce the bug yet w/ -Os. Bug: https://bugs.gentoo.org/883945 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-analyzer/net-snmp')
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch231
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9.3-0002-Tidy-up-net-snmp-config-output.patch51
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch30
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch24
-rw-r--r--net-analyzer/net-snmp/net-snmp-5.9.3-r2.ebuild233
-rw-r--r--net-analyzer/net-snmp/net-snmp-9999.ebuild13
6 files changed, 576 insertions, 6 deletions
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch
new file mode 100644
index 000000000000..785f5ee57d1c
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch
@@ -0,0 +1,231 @@
+https://github.com/net-snmp/net-snmp/pull/493
+
+From 1151979ecfba1ef10627175549d052cb76ef9d21 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Dec 2022 02:26:29 +0000
+Subject: [PATCH 1/4] Fix LDFLAGS vs LIBS ordering
+
+LDFLAGS must come before both LIBS & any listed objects in order
+for certain valid LDFLAGS, like '-Wl,--as-needed' to work correctly
+(otherwise it'll either take no effect or discard libraries when
+they're needed).
+
+Gentoo has been carrying this patch for a while.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Makefile.top
++++ b/Makefile.top
+@@ -86,11 +86,11 @@ LIBCURRENT = 40
+ LIBAGE = 0
+ LIBREVISION = 0
+
+-LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) @LD_NO_UNDEFINED@ -o
++LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) $(LDFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) @LD_NO_UNDEFINED@ -o
+ LIB_EXTENSION = la
+ LIB_VERSION =
+ LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(INSTALL_PREFIX)$(libdir)
+-LINK = $(LIBTOOL) --mode=link $(LINKCC)
++LINK = $(LIBTOOL) --mode=link $(LINKCC) $(LDFLAGS)
+ # RANLIB = @RANLIB@
+ RANLIB = :
+
+--- a/agent/Makefile.in
++++ b/agent/Makefile.in
+@@ -288,26 +288,26 @@ all: agentlib subdirs miblib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
+ # build stuff targets
+ #
+ getkstat: getkstat.o
+- $(CC) $(CFLAGS) -o $@ $? $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $? $(LIBS)
+
+ getkstat.o: mibgroup/kernel_sunos5.c
+- $(CC) $(CFLAGS) -o $@ -D_GETKSTAT_TEST -DDODEBUG -c $?
++ $(CC) $(CFLAGS) -o $@ -D_GETKSTAT_TEST -DDODEBUG -c $?
+
+ getmibstat: getmibstat.o
+- $(CC) $(CFLAGS) -o $@ $? $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $? $(LIBS)
+
+ getmibstat.o: mibgroup/kernel_sunos5.c
+- $(CC) $(CFLAGS) -o $@ -D_GETMIBSTAT_TEST -DDODEBUG -c $?
++ $(CC) $(CFLAGS) -o $@ -D_GETMIBSTAT_TEST -DDODEBUG -c $?
+
+-snmpd$(EXEEXT): ${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG)
+- $(LINK) $(CFLAGS) -o $@ ${LAGENTOBJS} ${LDFLAGS} ${OUR_AGENT_LIBS}
++snmpd$(EXEEXT): ${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG)
++ $(LINK) $(CFLAGS) $(LDFLAGS) -o $@ ${LAGENTOBJS} ${OUR_AGENT_LIBS}
+
+ libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION): ${LLIBAGENTOBJS} $(USELIBS)
+- $(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
++ $(LIB_LD_CMD) $(AGENTLIB) $(LDFLAGS) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
+ $(RANLIB) $(AGENTLIB)
+
+ libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(AGENTLIB) $(USELIBS) subdirs
+- $(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(AGENTLIB) $(USELIBS) $(LDFLAGS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
++ $(LIB_LD_CMD) $(MIBLIB) $(LDFLAGS) ${LMIBOBJS} $(AGENTLIB) $(USELIBS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
+ $(RANLIB) $(MIBLIB)
+
+ agentlib: $(AGENTLIB)
+--- a/agent/helpers/Makefile.in
++++ b/agent/helpers/Makefile.in
+@@ -32,5 +32,5 @@ LOBJS = dummy.lo
+ all: standardall
+
+ libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION): $(LOBJS)
+- $(LIB_LD_CMD) $@ $(LOBJS) $(LDFLAGS)
++ $(LIB_LD_CMD) $@ $(LDFLAGS) $(LOBJS)
+ $(RANLIB) $@
+--- a/apps/Makefile.in
++++ b/apps/Makefile.in
+@@ -163,37 +163,37 @@ OTHERUNINSTALL=snmpinformuninstall snmptrapdperluninstall \
+ # build rules
+ #
+ snmpwalk$(EXEEXT): snmpwalk.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpwalk.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpwalk.$(OSUFFIX) ${LIBS}
+
+ snmpbulkwalk$(EXEEXT): snmpbulkwalk.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpbulkwalk.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpbulkwalk.$(OSUFFIX) ${LIBS}
+
+ snmpbulkget$(EXEEXT): snmpbulkget.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpbulkget.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpbulkget.$(OSUFFIX) ${LIBS}
+
+ snmptranslate$(EXEEXT): snmptranslate.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptranslate.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptranslate.$(OSUFFIX) ${LIBS}
+
+ snmpstatus$(EXEEXT): snmpstatus.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpstatus.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpstatus.$(OSUFFIX) ${LIBS}
+
+ snmpget$(EXEEXT): snmpget.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpget.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpget.$(OSUFFIX) ${LIBS}
+
+ snmpdelta$(EXEEXT): snmpdelta.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpdelta.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpdelta.$(OSUFFIX) ${LIBS}
+
+ snmptable$(EXEEXT): snmptable.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptable.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptable.$(OSUFFIX) ${LIBS}
+
+ snmptest$(EXEEXT): snmptest.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptest.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptest.$(OSUFFIX) ${LIBS}
+
+ snmptrapd$(EXEEXT): $(TRAPD_OBJECTS) $(USETRAPLIBS) $(INSTALLLIBS)
+- $(LINK) ${CFLAGS} -o $@ $(TRAPD_OBJECTS) $(INSTALLLIBS) ${LDFLAGS} ${TRAPLIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ $(TRAPD_OBJECTS) $(INSTALLLIBS) ${TRAPLIBS}
+
+ snmptrap$(EXEEXT): snmptrap.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptrap.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptrap.$(OSUFFIX) ${LIBS}
+
+ snmpinform$(EXEEXT): snmptrap$(EXEEXT)
+ rm -f snmpinform
+@@ -204,40 +204,40 @@ snmptop$(EXEEXT): snmpps$(EXEEXT)
+ $(LN_S) snmpps$(EXEEXT) snmptop$(EXEEXT)
+
+ snmpset$(EXEEXT): snmpset.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpset.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpset.$(OSUFFIX) ${LIBS}
+
+ snmpusm$(EXEEXT): snmpusm.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpusm.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpusm.$(OSUFFIX) ${LIBS}
+
+ snmpvacm$(EXEEXT): snmpvacm.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpvacm.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpvacm.$(OSUFFIX) ${LIBS}
+
+ snmptls$(EXEEXT): snmptls.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptls.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptls.$(OSUFFIX) ${LIBS}
+
+ agentxtrap$(EXEEXT): agentxtrap.$(OSUFFIX) $(USEAGENTLIBS)
+- $(LINK) ${CFLAGS} -o $@ agentxtrap.$(OSUFFIX) ${LDFLAGS} $(USEAGENTLIBS) $(PERLLDOPTS_FOR_APPS) ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ agentxtrap.$(OSUFFIX) $(USEAGENTLIBS) $(PERLLDOPTS_FOR_APPS) ${LIBS}
+
+ snmpgetnext$(EXEEXT): snmpgetnext.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpgetnext.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpgetnext.$(OSUFFIX) ${LIBS}
+
+ encode_keychange$(EXEEXT): encode_keychange.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ encode_keychange.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ encode_keychange.$(OSUFFIX) ${LIBS}
+
+ snmpdf$(EXEEXT): snmpdf.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpdf.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpdf.$(OSUFFIX) ${LIBS}
+
+ snmpps$(EXEEXT): snmpps.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpps.$(OSUFFIX) ${LDFLAGS} @LIBCURSES@ ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpps.$(OSUFFIX) @LIBCURSES@ ${LIBS}
+
+ snmpping$(EXEEXT): snmpping.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpping.$(OSUFFIX) ${LDFLAGS} ${LIBS} -lm
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpping.$(OSUFFIX) ${LIBS} -lm
+
+ snmppcap$(EXEEXT): snmppcap.$(OSUFFIX) $(USEAGENTLIBS)
+- $(LINK) ${CFLAGS} -o $@ snmppcap.$(OSUFFIX) ${LDFLAGS} ${USEAGENTLIBS} ${LIBS} -lpcap
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmppcap.$(OSUFFIX) ${USEAGENTLIBS} ${LIBS} -lpcap
+
+ libnetsnmptrapd.$(LIB_EXTENSION)$(LIB_VERSION): $(LLIBTRAPD_OBJS)
+- $(LIB_LD_CMD) $@ ${LLIBTRAPD_OBJS} $(MIBLIB) $(MYSQL_LIBS) $(USELIBS) $(PERLLDOPTS_FOR_LIBS) $(LDFLAGS)
++ $(LIB_LD_CMD) $@ $(LDFLAGS) ${LLIBTRAPD_OBJS} $(MIBLIB) $(MYSQL_LIBS) $(USELIBS) $(PERLLDOPTS_FOR_LIBS)
+ $(RANLIB) $@
+
+ snmpinforminstall:
+--- a/apps/snmpnetstat/Makefile.in
++++ b/apps/snmpnetstat/Makefile.in
+@@ -34,4 +34,4 @@ LIBS= ../../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) $(VAL_LIBS) @LIBS
+ all: standardall
+
+ snmpnetstat$(EXEEXT): ${LOBJS} ${USELIBS}
+- ${LINK} ${CFLAGS} -o $@ ${LOBJS} ${LOCAL_LIBS} ${LDFLAGS} ${LIBS}
++ ${LINK} ${CFLAGS} ${LDFLAGS} -o $@ ${LOBJS} ${LOCAL_LIBS} ${LIBS}
+--- a/snmplib/Makefile.in
++++ b/snmplib/Makefile.in
+@@ -229,11 +229,11 @@ all: standardall
+
+ # how to build the libraries.
+ libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION): $(TOBJS)
+- $(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
++ $(LIB_LD_CMD) $@ $(LDFLAGS) $(TOBJS) @LNETSNMPLIBS@
+ $(RANLIB) $@
+
+ libsnmp.$(LIB_EXTENSION)$(LIB_VERSION): $(TOBJS)
+- $(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
++ $(LIB_LD_CMD) $@ $(LDFLAGS) $(TOBJS) @LNETSNMPLIBS@
+ $(RANLIB) $@
+
+ #
+--- a/testing/Makefile.in
++++ b/testing/Makefile.in
+@@ -64,16 +64,16 @@ test-mibs:
+ cd $(srcdir)/rfc1213 ; ./run
+
+ etest: etimetest.o $(PARSEOBJS) $(USELIBS)
+- ${CC} -o $@ etimetest.o $(PARSEOBJS) ${LDFLAGS} ${LIBS}
++ ${CC} ${LDFLAGS} -o $@ etimetest.o $(PARSEOBJS) ${LIBS}
+
+ ktest: keymanagetest.o $(PARSEOBJS) $(USELIBS)
+- ${CC} -o $@ keymanagetest.o $(PARSEOBJS) ${LDFLAGS} ${LIBS}
++ ${CC} ${LDFLAGS} -o $@ keymanagetest.o $(PARSEOBJS) ${LIBS}
+
+ misctest: misctest.o $(PARSEOBJS) $(USELIBS)
+- ${CC} -o $@ misctest.o $(PARSEOBJS) ${LDFLAGS} ${LIBS}
++ ${CC} ${LDFLAGS} -o $@ misctest.o $(PARSEOBJS) ${LIBS}
+
+ stest: scapitest.o $(PARSEOBJS) $(USELIBS)
+- ${CC} -o $@ scapitest.o $(PARSEOBJS) ${LDFLAGS} ${LIBS}
++ ${CC} ${LDFLAGS} -o $@ scapitest.o $(PARSEOBJS) ${LIBS}
+
+ clean: testclean
+ rm -f *.o core *.core $(TARG)
+--
+2.38.1
+
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9.3-0002-Tidy-up-net-snmp-config-output.patch b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0002-Tidy-up-net-snmp-config-output.patch
new file mode 100644
index 000000000000..83d05a86f0ac
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0002-Tidy-up-net-snmp-config-output.patch
@@ -0,0 +1,51 @@
+https://github.com/net-snmp/net-snmp/pull/493
+
+From a73bda5ca7afbeaf3cf3b73101f7541cf92147ef Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Dec 2022 02:27:21 +0000
+Subject: [PATCH 2/4] Tidy up net-snmp-config output
+
+`net-snmp-config --libs` should return only the needed libraries linked to
+libraries which external consumers should use.
+
+Gentoo has been carrying this patch for a while, as has Fedora.
+
+Bug: https://bugs.gentoo.org/693970
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/net-snmp-config.in
++++ b/net-snmp-config.in
+@@ -193,13 +193,13 @@ else
+ #################################################### client lib
+ --libs)
+ # use this one == --netsnmp-libs + --external-libs
+- echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_SNMPLIBS $NSC_LIBS
++ echo $NSC_LIBDIR $NSC_SNMPLIBS $NSC_LIBS
+ ;;
+ --netsnmp-libs)
+ echo $NSC_LIBDIR $NSC_BASE_SNMP_LIBS
+ ;;
+ --external-libs)
+- echo $NSC_LDFLAGS $NSC_LNETSNMPLIBS $NSC_LIBS @PERLLDOPTS_FOR_APPS@
++ echo $NSC_LNETSNMPLIBS $NSC_LIBS @PERLLDOPTS_FOR_APPS@
+ ;;
+ #################################################### agent lib
+ --base-agent-libs)
+@@ -210,13 +210,13 @@ else
+ ;;
+ --agent-libs)
+ # use this one == --netsnmp-agent-libs + --external-libs
+- echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_AGENTLIBS $NSC_LIBS
++ echo $NSC_LIBDIR $NSC_AGENTLIBS $NSC_LIBS
+ ;;
+ --netsnmp-agent-libs)
+ echo $NSC_LIBDIR $NSC_BASE_AGENT_LIBS
+ ;;
+ --external-agent-libs)
+- echo $NSC_LDFLAGS $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS
++ echo $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS
+ ;;
+ ####################################################
+ --version|--ver*)
+--
+2.38.1
+
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch
new file mode 100644
index 000000000000..8b825ae8cf5d
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch
@@ -0,0 +1,30 @@
+https://github.com/net-snmp/net-snmp/pull/493
+
+From 7261ea344004ac42b6099acfba49c0ea731d049c Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Dec 2022 02:29:45 +0000
+Subject: [PATCH 3/4] Prune Libs.private entries in netsnmp*.pc.in
+
+Gentoo has been carrying this patch for a while, as has Fedora.
+
+Bug: https://bugs.gentoo.org/693970
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/netsnmp-agent.pc.in
++++ b/netsnmp-agent.pc.in
+@@ -9,4 +9,4 @@ URL: http://www.net-snmp.org
+ Version: @PACKAGE_VERSION@
+ Cflags: -I${includedir}
+ Libs: -L${libdir} -lnetsnmpmibs -lnetsnmpagent -lnetsnmp
+-Libs.private: @LDFLAGS@ @LMIBLIBS@ @LAGENTLIBS@ @PERLLDOPTS_FOR_APPS@ @LNETSNMPLIBS@ @LIBS@
++Libs.private: @LMIBLIBS@ @LAGENTLIBS@ @LNETSNMPLIBS@ @LIBS@
+--- a/netsnmp.pc.in
++++ b/netsnmp.pc.in
+@@ -9,4 +9,4 @@ URL: http://www.net-snmp.org
+ Version: @PACKAGE_VERSION@
+ Cflags: -I${includedir}
+ Libs: -L${libdir} -lnetsnmp
+-Libs.private: @LDFLAGS@ @LNETSNMPLIBS@ @LIBS@ @PERLLDOPTS_FOR_APPS@
++Libs.private: @LNETSNMPLIBS@ @LIBS@
+--
+2.38.1
+
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch
new file mode 100644
index 000000000000..c92c88cfbb2f
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch
@@ -0,0 +1,24 @@
+https://github.com/net-snmp/net-snmp/pull/493
+
+From 6b70bd4ffa7a905700807eecd3e07a472e2eda55 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Dec 2022 02:31:15 +0000
+Subject: [PATCH 4/4] Search for -ltinfo in configure if needed
+
+Gentoo has been carrying this patch for a while.
+
+Bug: https://bugs.gentoo.org/883945
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure.d/config_os_libs2
++++ b/configure.d/config_os_libs2
+@@ -774,6 +774,7 @@ NETSNMP_SEARCH_LIBS([endwin], [curses ncurses], [
+ [HAVE_LIBCURSES=FALSE],,
+ [LIBCURSES])
+ AC_SUBST([HAVE_LIBCURSES])
++NETSNMP_SEARCH_LIBS([cbreak], [tinfo],[LIBCURSES="$LIBCURSES -ltinfo"],,,)
+ AC_SUBST([LIBCURSES])
+
+ # libm for ceil
+--
+2.38.1
+
diff --git a/net-analyzer/net-snmp/net-snmp-5.9.3-r2.ebuild b/net-analyzer/net-snmp/net-snmp-5.9.3-r2.ebuild
new file mode 100644
index 000000000000..b6009335d250
--- /dev/null
+++ b/net-analyzer/net-snmp/net-snmp-5.9.3-r2.ebuild
@@ -0,0 +1,233 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_OPTIONAL=yes
+DISTUTILS_SINGLE_IMPL=yes
+GENTOO_DEPEND_ON_PERL=no
+PYTHON_COMPAT=( python3_{8..10} )
+WANT_AUTOMAKE=none
+
+inherit autotools distutils-r1 perl-module systemd
+
+DESCRIPTION="Software for generating and retrieving SNMP data"
+HOMEPAGE="https://www.net-snmp.org/"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/net-snmp/net-snmp"
+ inherit git-r3
+else
+ # https://github.com/net-snmp/net-snmp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.gz"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~jsmolic/distfiles/${PN}-5.7.3-patches-3.tar.xz"
+
+# GPL-2 for the init scripts
+LICENSE="HPND BSD GPL-2"
+SLOT="0/40"
+IUSE="
+ X bzip2 doc elf kmem ipv6 lm-sensors mfd-rewrites minimal mysql
+ netlink pcap pci perl python rpm selinux smux ssl tcpd ucd-compat zlib
+"
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ rpm? ( bzip2 zlib )
+"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ virtual/libcrypt:=
+ bzip2? ( app-arch/bzip2 )
+ elf? ( dev-libs/elfutils )
+ lm-sensors? ( sys-apps/lm-sensors )
+ mysql? ( dev-db/mysql-connector-c:0= )
+ netlink? ( dev-libs/libnl:3 )
+ pcap? ( net-libs/libpcap )
+ pci? ( sys-apps/pciutils )
+ perl? ( dev-lang/perl:= )
+ python? (
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ ${PYTHON_DEPS}
+ )
+ rpm? (
+ app-arch/rpm
+ dev-libs/popt
+ )
+ ssl? (
+ >=dev-libs/openssl-0.9.6d:0=
+ )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+ zlib? ( >=sys-libs/zlib-1.1.4 )
+"
+BDEPEND="doc? ( app-doc/doxygen )"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="
+ ${COMMON_DEPEND}
+ perl? (
+ X? ( dev-perl/Tk )
+ !minimal? (
+ virtual/perl-Carp
+ virtual/perl-Data-Dumper
+ virtual/perl-Getopt-Long
+ dev-perl/JSON
+ dev-perl/Mail-Sender
+ dev-perl/TermReadKey
+ virtual/perl-Term-ReadLine
+ )
+ )
+ selinux? ( sec-policy/selinux-snmp )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.8-pcap.patch
+ "${FILESDIR}"/${PN}-5.8.1-mysqlclient.patch
+ "${FILESDIR}"/${PN}-5.9-MakeMaker.patch
+ "${FILESDIR}"/${P}-configure-clang16.patch
+ # https://github.com/net-snmp/net-snmp/pull/493
+ "${FILESDIR}"/${PN}-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch
+ "${FILESDIR}"/${PN}-5.9.3-0002-Tidy-up-net-snmp-config-output.patch
+ "${FILESDIR}"/${PN}-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch
+ "${FILESDIR}"/${PN}-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ default
+
+ [[ ${PV} == 9999 ]] && git-r3_src_unpack
+}
+
+src_prepare() {
+ # snmpconf generates config files with proper selinux context
+ use selinux && eapply "${FILESDIR}"/${PN}-5.1.2-snmpconf-selinux.patch
+
+ mv "${WORKDIR}"/patches/0001-Fix-toolchain-quadruplet-detection-Gentoo-bug-432004.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0002-Respect-DESTDIR-for-pythoninstall.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0004-Don-t-report-CFLAGS-and-LDFLAGS-in-net-snmp-config.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0005-Respect-LDFLAGS-properly.patch{,.disabled} || die
+ eapply "${WORKDIR}"/patches/*.patch
+
+ default
+
+ eautoconf
+}
+
+src_configure() {
+ # keep this in the same line, configure.ac arguments are passed down to config.h
+ local mibs="host ucd-snmp/dlmod ucd-snmp/diskio ucd-snmp/extensible mibII/mta_sendmail etherlike-mib/dot3StatsTable"
+ use lm-sensors && mibs="${mibs} ucd-snmp/lmsensorsMib"
+ use smux && mibs="${mibs} smux"
+
+ # Assume /etc/mtab is not present with a recent baselayout/openrc (bug #565136)
+ use kernel_linux && export ac_cv_ETC_MNTTAB=/etc/mtab
+
+ econf \
+ $(use_enable !ssl internal-md5) \
+ $(use_enable ipv6) \
+ $(use_enable mfd-rewrites) \
+ $(use_enable perl embedded-perl) \
+ $(use_enable ucd-compat ucd-snmp-compatibility) \
+ $(use_with bzip2) \
+ $(use_with elf) \
+ $(use_with kmem kmem-usage) \
+ $(use_with mysql) \
+ $(use_with netlink nl) \
+ $(use_with pcap) \
+ $(use_with pci) \
+ $(use_with perl perl-modules INSTALLDIRS=vendor) \
+ $(use_with python python-modules) \
+ $(use_with rpm) \
+ $(use_with ssl openssl) \
+ $(use_with tcpd libwrap) \
+ $(use_with zlib) \
+ --enable-shared \
+ --with-default-snmp-version="3" \
+ --with-ldflags="${LDFLAGS}" \
+ --with-logfile="/var/log/net-snmpd.log" \
+ --with-mib-modules="${mibs}" \
+ --with-persistent-directory="/var/lib/net-snmp" \
+ --with-sys-contact="root@unknown" \
+ --with-sys-location="Unknown"
+}
+
+src_compile() {
+ emake sedscript
+
+ local subdir
+ for subdir in snmplib agent/mibgroup agent apps .; do
+ emake OTHERLDFLAGS="${LDFLAGS}" -C ${subdir} all
+ done
+
+ use doc && emake docsdox
+}
+
+src_install() {
+ # bug #317965
+ emake -j1 DESTDIR="${D}" install
+
+ use python && python_optimize
+
+ if use perl ; then
+ perl_delete_localpod
+ if ! use X; then
+ rm "${D}"/usr/bin/tkmib || die
+ fi
+ else
+ rm -f \
+ "${D}"/usr/bin/fixproc \
+ "${D}"/usr/bin/ipf-mod.pl \
+ "${D}"/usr/bin/mib2c \
+ "${D}"/usr/bin/net-snmp-cert \
+ "${D}"/usr/bin/snmp-bridge-mib \
+ "${D}"/usr/bin/snmpcheck \
+ "${D}"/usr/bin/snmpconf \
+ "${D}"/usr/bin/tkmib \
+ "${D}"/usr/bin/traptoemail \
+ "${D}"/usr/share/snmp/mib2c.perl.conf \
+ "${D}"/usr/share/snmp/snmp_perl_trapd.pl \
+ || die
+ fi
+
+ dodoc AGENT.txt ChangeLog FAQ INSTALL NEWS PORTING README* TODO
+ newdoc EXAMPLE.conf.def EXAMPLE.conf
+
+ if use doc; then
+ docinto html
+ dodoc -r docs/html/*
+ fi
+
+ keepdir /var/lib/net-snmp
+
+ newinitd "${FILESDIR}"/snmpd.init.2 snmpd
+ newconfd "${FILESDIR}"/snmpd.conf snmpd
+
+ newinitd "${FILESDIR}"/snmptrapd.init.2 snmptrapd
+ newconfd "${FILESDIR}"/snmptrapd.conf snmptrapd
+
+ systemd_dounit "${FILESDIR}"/snmpd.service
+ systemd_dounit "${FILESDIR}"/snmptrapd.service
+
+ insinto /etc/snmp
+ newins "${S}"/EXAMPLE.conf snmpd.conf.example
+
+ # Remove everything not required for an agent.
+ # Keep only the snmpd, snmptrapd, MIBs, headers and libraries.
+ if use minimal; then
+ rm -rf \
+ "${D}"/**/*.pl \
+ "${D}"/usr/bin/{encode_keychange,snmp{get,getnext,set,usm,walk,bulkwalk,table,trap,bulkget,translate,status,delta,test,df,vacm,netstat,inform,check,conf},fixproc,traptoemail} \
+ "${D}"/usr/share/snmp/*.conf \
+ "${D}"/usr/share/snmp/snmpconf-data \
+ || die
+ fi
+
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/net-analyzer/net-snmp/net-snmp-9999.ebuild b/net-analyzer/net-snmp/net-snmp-9999.ebuild
index 1aed4861943b..b6009335d250 100644
--- a/net-analyzer/net-snmp/net-snmp-9999.ebuild
+++ b/net-analyzer/net-snmp/net-snmp-9999.ebuild
@@ -20,7 +20,7 @@ else
# https://github.com/net-snmp/net-snmp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~mips ~ppc ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
SRC_URI+=" https://dev.gentoo.org/~jsmolic/distfiles/${PN}-5.7.3-patches-3.tar.xz"
@@ -84,14 +84,15 @@ RDEPEND="
"
PATCHES=(
- "${FILESDIR}"/${PN}-5.8-do-not-conflate-LDFLAGS-and-LIBS.patch
"${FILESDIR}"/${PN}-5.8-pcap.patch
- "${FILESDIR}"/${PN}-5.8.1-pkg-config.patch
- "${FILESDIR}"/${PN}-5.8.1-net-snmp-config-libdir.patch
"${FILESDIR}"/${PN}-5.8.1-mysqlclient.patch
"${FILESDIR}"/${PN}-5.9-MakeMaker.patch
- "${FILESDIR}"/${PN}-5.9.2-fix-LDFLAGS.patch
- "${FILESDIR}"/${PN}-99999999-tinfo.patch
+ "${FILESDIR}"/${P}-configure-clang16.patch
+ # https://github.com/net-snmp/net-snmp/pull/493
+ "${FILESDIR}"/${PN}-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch
+ "${FILESDIR}"/${PN}-5.9.3-0002-Tidy-up-net-snmp-config-output.patch
+ "${FILESDIR}"/${PN}-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch
+ "${FILESDIR}"/${PN}-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch
)
pkg_setup() {