commit:     ab73df0b66d343f94f5c7815cbb04cb1b966b502
Author:     Brahmajit Das <brahmajit.xyz <AT> gmail <DOT> com>
AuthorDate: Tue Jun 13 15:21:22 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Fri Jun 16 05:43:39 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab73df0b

net-misc/olsrd: Fix incompatible pointer to integer conversion initializing int

Closes: https://bugs.gentoo.org/898090
Closes: https://bugs.gentoo.org/870748
Signed-off-by: Brahmajit Das <brahmajit.xyz <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/31242
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 .../olsrd/files/olsrd-0.9.8-clang16-buildfix.patch |  53 +++++++++
 net-misc/olsrd/olsrd-0.9.8_p20210612-r1.ebuild     | 124 +++++++++++++++++++++
 2 files changed, 177 insertions(+)

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
+}

Reply via email to