summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc')
-rw-r--r--net-misc/olsrd/files/olsrd-0.9.8-clang16-buildfix.patch53
-rw-r--r--net-misc/olsrd/olsrd-0.9.8_p20210612-r1.ebuild124
2 files changed, 177 insertions, 0 deletions
diff --git a/net-misc/olsrd/files/olsrd-0.9.8-clang16-buildfix.patch b/net-misc/olsrd/files/olsrd-0.9.8-clang16-buildfix.patch
new file mode 100644
index 000000000000..0194b17362ba
--- /dev/null
+++ b/net-misc/olsrd/files/olsrd-0.9.8-clang16-buildfix.patch
@@ -0,0 +1,53 @@
+https://github.com/OLSR/olsrd/pull/124
+--- a/lib/filtergw/src/olsrd_filtergw.c
++++ b/lib/filtergw/src/olsrd_filtergw.c
+@@ -54,6 +54,7 @@
+ #include "log.h"
+ #include "routing_table.h"
+ #include "olsr_cfg.h"
++#include "parser.h"
+
+ #include <stdio.h>
+ #include <string.h>
+@@ -75,11 +76,19 @@ struct originator_list {
+
+ struct filter_group {
+ struct originator_list * originator_list;
+- struct hna_group * next;
++ struct filter_group * next;
+ };
+
+ static struct filter_group * filter_groups = NULL;
+
++/*
++ * Delcaring function prototype here, fixes build error with clang-16.
++ * Clang 16 enables -Wimplicit-function-declaration by default, hence the
++ * error.
++ * Refer: https://bugs.gentoo.org/898090
++ */
++int should_filter(union olsr_ip_addr * originator);
++
+ /* -------------------------------------------------------------------------
+ * Function : add_to_originator_list
+ * Description: Add a new ip to originator list
+@@ -304,4 +313,4 @@ int should_filter(union olsr_ip_addr * originator)
+ }
+ }
+ return is_allowlist ? !found : found;
+-}
+\ No newline at end of file
++}
+--- a/src/linux/kernel_routes_nl.c
++++ b/src/linux/kernel_routes_nl.c
+@@ -161,7 +161,11 @@ static void rtnetlink_read(int sock, void *data __attribute__ ((unused)), unsign
+ sizeof(nladdr),
+ &iov,
+ 1,
++#ifndef __GLIBC__
++ 0,
++#else
+ NULL,
++#endif
+ 0,
+ 0
+ };
diff --git a/net-misc/olsrd/olsrd-0.9.8_p20210612-r1.ebuild b/net-misc/olsrd/olsrd-0.9.8_p20210612-r1.ebuild
new file mode 100644
index 000000000000..1ba8d428f242
--- /dev/null
+++ b/net-misc/olsrd/olsrd-0.9.8_p20210612-r1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+# Snapshot to fix build failure with >= bison 3.7
+# bug #735572
+MY_COMMIT="4973feb538b5b98b9d8ac2f8f474202f6d73de78"
+DESCRIPTION="An implementation of the Optimized Link State Routing protocol"
+HOMEPAGE="http://www.olsr.org/"
+SRC_URI="https://github.com/OLSR/olsrd/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+#SRC_URI="https://github.com/OLSR/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${MY_COMMIT}"
+
+LICENSE="BSD LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gtk pud"
+
+DEPEND="
+ gtk? (
+ dev-libs/glib:2
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:2
+ )
+ pud? ( sci-geosciences/gpsd )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.0.2-gtk.patch
+ "${FILESDIR}"/${PN}-0.9.8-clang16-buildfix.patch
+)
+
+src_prepare() {
+ default
+
+ # fix parallel make
+ # respect AR
+ # verbose build
+ # fix default prefix, bug #453440
+ sed -i \
+ -e '/@echo "\[/d' \
+ -e 's|$(MAKECMD)|$(MAKE)|g' \
+ -e 's|@$(CC)|$(CC)|g' \
+ -e 's|@ar |$(AR) |g' \
+ -e '/^prefix/s:/usr/local:/usr:' \
+ $( find -name 'Makefile*' ) || die
+
+ # respect LDFLAGS
+ sed -i \
+ -e 's|$(CC)|& $(OLSRD_LDFLAGS)|g' \
+ lib/pud/nmealib/Makefile lib/pud/wireformat/Makefile || die
+}
+
+src_configure() {
+ if ! use pud; then
+ sed -i -e '/^SUBDIRS/ s|pud||g' Makefile || die
+ fi
+}
+
+src_compile() {
+ tc-export PKG_CONFIG
+
+ emake \
+ CC="$(tc-getCC)" \
+ LIBDIR="/usr/$(get_libdir)/${PN}" \
+ OLSRD_LDFLAGS="${LDFLAGS}" \
+ OS=linux \
+ VERBOSE=1 \
+ build_all
+
+ if use gtk; then
+ emake -C gui/linux-gtk LIBDIR="/usr/$(get_libdir)/${PN}" CC="$(tc-getCC)"
+ fi
+}
+
+src_install() {
+ # See bug #715392 re LDCONFIG
+ emake \
+ DESTDIR="${D}" \
+ DOCDIR_OLSRD="${D}/usr/share/doc/${PF}" \
+ LIBDIR="${D}/usr/$(get_libdir)/${PN}" \
+ OS=linux \
+ STRIP=true \
+ LDCONFIG=true \
+ install_all
+
+ if use gtk; then
+ emake -C gui/linux-gtk \
+ DESTDIR="${D}" \
+ LIBDIR="${D}/usr/$(get_libdir)/${PN}" \
+ install
+ fi
+
+ doinitd "${FILESDIR}"/${PN}
+
+ gzip -d \
+ "${ED}"/usr/share/man/man5/olsrd.conf.5.gz \
+ "${ED}"/usr/share/man/man8/olsrd.8.gz \
+ || die
+
+ dodoc CHANGELOG \
+ valgrind-howto.txt files/olsrd.conf.default.rfc \
+ files/olsrd.conf.default.lq \
+ lib/arprefresh/README_ARPREFRESH \
+ lib/bmf/README_BMF \
+ lib/dot_draw/README_DOT_DRAW \
+ lib/dyn_gw/README_DYN_GW \
+ lib/dyn_gw_plain/README_DYN_GW_PLAIN \
+ lib/httpinfo/README_HTTPINFO \
+ lib/mini/README_MINI \
+ lib/nameservice/README_NAMESERVICE \
+ lib/pgraph/README_PGRAPH \
+ lib/quagga/README_QUAGGA \
+ lib/secure/README_SECURE \
+ lib/txtinfo/README_TXTINFO \
+ lib/watchdog/README_WATCHDOG
+}