<div dir="ltr">Sorry for the rapid posts about the same topic, <div>but on the other hand, further discussions will be more fruitful</div><div><div><br></div><div>First off, it turns out libnids in the current configuration completely fits my needs<br><br>-----</div><div>Trying to build libnids with libnet:</div><div><ul><li>libnet does not have a pkg-config description file, so what I previously said/thought cannot apply</li><li>unfortunately because of that, removing --disable-libnet option from configure, has LNETLIB & LNET_CFLAGS pointing to /usr/include</li><li>they have a --with-libnet option, I tried something like --with-libnet=$(STAGING_DIR), but they look for a very specific combination</li></ul><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">     if test -f $withval/include/libnet.h -a -f $withval/lib/libnet.a -a -f $withval/libnet-config ; then  (line 133 in $libnids/<a href="http://configure.in">configure.in</a>)<br></blockquote><div><br></div><div><ul><li>$withval/include/libnet.h exists, we have a $withval/lib/<a href="http://libnet.la">libnet.la</a> but that is not exactly what they want, $withval/libnet-config does not exist<br></li><li>so at the moment I am not able to submit anything further about this topic, because of the combination of files they look for. I don't think messing with $libnids/<a href="http://configure.in">configure.in</a> is an option either, that would be too dirty</li><li>I am not familiar with pkg-config at the moment, I don't know if we can "activate libnet.pc" and have pkg-config look for it</li></ul></div><div><div>-----</div><div>Trying to build libnids with glib2 if possible</div><div><ul><li> no problem, I may submit a patch in a near future</li></ul></div></div><div><br clear="all"><div><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div><div><font face="arial,helvetica,sans-serif">Guillaume W. Bres<br></font></div><font face="arial,helvetica,sans-serif">Software engineer</font><br></div><font face="arial,helvetica,sans-serif"></font></div><font face="arial,helvetica,sans-serif"><<a href="mailto:guillaume.bressaix@gmail.com" target="_blank">guillaume.bressaix@gmail.com</a>><br></font></div></div></div></div></div></div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mar. 23 juin 2020 à 11:07, Guillaume Bres <<a href="mailto:guillaume.bressaix@gmail.com" target="_blank">guillaume.bressaix@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">correction:<div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Let's say I introduce a "BR2_PACKAGE_LIBNIDS_WITH_LIBNET" option, <br></blockquote><div><br></div><div> I will rather check in the .mk script if BR2_PACKAGE_LIBNET is in use and adapt dependencies & configure flags,</div><div>rather than introducing a BR2_PACKAGE_LIBNIDS_ sub option.</div><div><br></div><div>question about the patch still applies though</div></div><div><br clear="all"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div><div><font face="arial,helvetica,sans-serif">Guillaume W. Bres<br></font></div><font face="arial,helvetica,sans-serif">Software engineer</font><br></div><font face="arial,helvetica,sans-serif"></font></div><font face="arial,helvetica,sans-serif"><<a href="mailto:guillaume.bressaix@gmail.com" target="_blank">guillaume.bressaix@gmail.com</a>><br></font></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mar. 23 juin 2020 à 11:01, Guillaume Bres <<a href="mailto:guillaume.bressaix@gmail.com" target="_blank">guillaume.bressaix@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello Thomas, <div><br><div>thank you for your input</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">glibc is not required: it builds fine with uclibc.<br>> +     select BR2_PACKAGE_LIBGLIB2</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This dependency is not mandatory, so I dropped it. It should be easy to<br>re-add it with a follow-up patch.</blockquote><div><br></div><div>Ok, I did not see the configure script had options to disable them, it's better to have a default package compatible with everyone</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">(2) Passing the appropriate install_prefix value at install time,</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> since the hand-written Makefile.in use install_prefix and not DESTDIR</blockquote><div><br></div><div>it's cleaner to override at the given step (I'll keep that!)</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">if you need the libglib and libnet optional dependencies, don't<br>hesitate to send follow-up patches to add support for them.</blockquote><div><br></div><div>I need to check whether I need libglib because it's not obvious. But I certainly need libnet. </div><div><br></div><div>Let's say I introduce a "BR2_PACKAGE_LIBNIDS_WITH_LIBNET" option, </div><div>if I add a 0002-patch to also have libnet checked with pkg-config,</div><div>Is it fine with you having a patch always applied, even though we are in the --disable-libnet context?</div><div><br></div><div><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div><div><font face="arial,helvetica,sans-serif">Guillaume W. Bres<br></font></div><font face="arial,helvetica,sans-serif">Software engineer</font><br></div><font face="arial,helvetica,sans-serif"></font></div><font face="arial,helvetica,sans-serif"><<a href="mailto:guillaume.bressaix@gmail.com" target="_blank">guillaume.bressaix@gmail.com</a>><br></font></div></div></div></div></div></div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 22 juin 2020 à 22:27, Thomas Petazzoni <<a href="mailto:thomas.petazzoni@bootlin.com" target="_blank">thomas.petazzoni@bootlin.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Guillaume,<br>
<br>
On Mon, 22 Jun 2020 12:53:59 +0200<br>
"Guillaume W. Bres" <<a href="mailto:guillaume.bressaix@gmail.com" target="_blank">guillaume.bressaix@gmail.com</a>> wrote:<br>
<br>
> Libnids is a C based networking library,<br>
> part of networking intrusion detection tools.<br>
> It can watch network traffic & provide informations.<br>
> <br>
> Signed-off-by: Guillaume W. Bres <<a href="mailto:guillaume.bressaix@gmail.com" target="_blank">guillaume.bressaix@gmail.com</a>><br>
<br>
I have applied your patch, with a number of changes. See below for<br>
comments, and see the final commit at:<br>
<br>
  <a href="https://git.buildroot.org/buildroot/commit/?id=b6ce06cd64b0d85c9065c60fad933c8585730320" rel="noreferrer" target="_blank">https://git.buildroot.org/buildroot/commit/?id=b6ce06cd64b0d85c9065c60fad933c8585730320</a><br>
<br>
<br>
> +config BR2_PACKAGE_LIBNIDS<br>
> +     bool "libnids"<br>
> +     depends on BR2_TOOLCHAIN_USES_GLIBC<br>
<br>
glibc is not required: it builds fine with uclibc.<br>
<br>
> +     select BR2_PACKAGE_LIBGLIB2<br>
<br>
This dependency is not mandatory, so I dropped it. It should be easy to<br>
re-add it with a follow-up patch.<br>
<br>
> +     select BR2_PACKAGE_LIBNET<br>
<br>
This dependency is not mandatory, so I dropped it. Re-adding it is<br>
possible, but will need some tweaks in the <a href="http://configure.in" rel="noreferrer" target="_blank">configure.in</a> script.<br>
<br>
> +     select BR2_PACKAGE_LIBPCAP<br>
<br>
This dependency is indeed mandatory.<br>
<br>
<br>
> +LIBNIDS_VERSION = 1.24<br>
> +LIBNIDS_SITE = <a href="https://sourceforge.net/projects/libnids/files/libnids/$(LIBNIDS_VERSION)" rel="noreferrer" target="_blank">https://sourceforge.net/projects/libnids/files/libnids/$(LIBNIDS_VERSION)</a><br>
> +LIBNIDS_LICENSE = GPL-2.0<br>
> +LIBNIDS_LICENSE_FILES = COPYING<br>
> +LIBNIDS_INSTALL_STAGING = YES<br>
<br>
You forgot the _DEPENDENCIES variable, so nothing ensured that your<br>
dependencies are built before this package.<br>
<br>
> +LIBNIDS_CONF_OPTS += \<br>
> +     prefix="$(STAGING_DIR)/usr" \<br>
> +     exec_prefix="$(STAGING_DIR)/usr"<br>
<br>
So, I instead fixed this by:<br>
<br>
 (1) Adding a patch for the <a href="http://configure.in" rel="noreferrer" target="_blank">configure.in</a> script that changes the<br>
 detection of libpcap to use pkg-config<br>
<br>
 (2) Passing the appropriate install_prefix value at install time,<br>
 since the hand-written Makefile.in use install_prefix and not DESTDIR<br>
<br>
If you need the libglib and libnet optional dependencies, don't<br>
hesitate to send follow-up patches to add support for them.<br>
<br>
Thanks!<br>
<br>
Thomas<br>
-- <br>
Thomas Petazzoni, CTO, Bootlin<br>
Embedded Linux and Kernel engineering<br>
<a href="https://bootlin.com" rel="noreferrer" target="_blank">https://bootlin.com</a><br>
</blockquote></div>
</blockquote></div>
</blockquote></div>