* [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn
@ 2019-03-04 8:57 Vadim Kochan
2019-03-04 19:06 ` Arnout Vandecappelle
2019-03-28 17:56 ` Thomas Petazzoni
0 siblings, 2 replies; 8+ messages in thread
From: Vadim Kochan @ 2019-03-04 8:57 UTC (permalink / raw)
To: buildroot
mausezahn can't be build with uclibc because uclibc
does not provide ceill() function, so it does not allow
to build all netsniff-ng's tools with uclibc.
Fix it by moving mausezahn under separate config option,
which has own dependencies and packages selection (libnet & libcli).
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
package/netsniff-ng/Config.in | 27 +++++++++++++++++++--------
package/netsniff-ng/netsniff-ng.mk | 16 +++++++++++-----
2 files changed, 30 insertions(+), 13 deletions(-)
diff --git a/package/netsniff-ng/Config.in b/package/netsniff-ng/Config.in
index c4803b2fa2..15862ff433 100644
--- a/package/netsniff-ng/Config.in
+++ b/package/netsniff-ng/Config.in
@@ -1,16 +1,12 @@
-config BR2_PACKAGE_NETSNIFF_NG
+menuconfig BR2_PACKAGE_NETSNIFF_NG
bool "netsniff-ng"
- # Build with uClibc fails due to missing ceill()
- depends on !BR2_TOOLCHAIN_USES_UCLIBC
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
select BR2_PACKAGE_LIBNL
select BR2_PACKAGE_LIBPCAP
- select BR2_PACKAGE_LIBCLI
select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
select BR2_PACKAGE_LIBURCU
- select BR2_PACKAGE_LIBNET
help
netsniff-ng is a free, performant Linux network analyzer and
networking toolkit. If you will, the Swiss army knife for
@@ -18,7 +14,22 @@ config BR2_PACKAGE_NETSNIFF_NG
http://netsniff-ng.org
-comment "netsniff-ng needs a glibc or musl toolchain w/ threads, headers >= 3.0"
+if BR2_PACKAGE_NETSNIFF_NG
+
+config BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN
+ bool "mausezahn"
+ default y
+ # Build with uClibc fails due to missing ceill()
+ depends on !BR2_TOOLCHAIN_USES_UCLIBC
+ select BR2_PACKAGE_LIBCLI
+ select BR2_PACKAGE_LIBNET
+
+comment "mausezahn needs glibc or musl toolchain"
+ depends on BR2_TOOLCHAIN_USES_UCLIBC
+
+endif
+
+comment "netsniff-ng needs a toolchain w/ threads, headers >= 3.0"
depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
- depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC \
- || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
+ depends on !BR2_TOOLCHAIN_HAS_THREADS || \
+ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
diff --git a/package/netsniff-ng/netsniff-ng.mk b/package/netsniff-ng/netsniff-ng.mk
index 77d8921425..9fe50f10d3 100644
--- a/package/netsniff-ng/netsniff-ng.mk
+++ b/package/netsniff-ng/netsniff-ng.mk
@@ -13,9 +13,14 @@ NETSNIFF_NG_LICENSE_FILES = README COPYING
NETSNIFF_NG_CONF_ENV = \
NACL_INC_DIR=/dev/null \
NACL_LIB_DIR=/dev/null
-NETSNIFF_NG_DEPENDENCIES = \
- libnl libpcap libcli libnetfilter_conntrack \
- liburcu libnet
+NETSNIFF_NG_DEPENDENCIES = libnl libpcap libnetfilter_conntrack liburcu
+
+NETSNIFF_NG_TOOLS = netsniff-ng trafgen astraceroute flowtop ifpps bpfc curvetun
+
+ifeq ($(BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN),y)
+NETSNIFF_NG_DEPENDENCIES += libcli libnet
+NETSNIFF_NG_TOOLS += mausezahn
+endif
ifeq ($(BR2_PACKAGE_GEOIP),y)
NETSNIFF_NG_DEPENDENCIES += geoip
@@ -41,12 +46,13 @@ define NETSNIFF_NG_CONFIGURE_CMDS
endef
define NETSNIFF_NG_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
+ $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) $(NETSNIFF_NG_TOOLS)
endef
define NETSNIFF_NG_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
- PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install -C $(@D)
+ PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install \
+ -C $(@D) $(NETSNIFF_NG_TOOLS)
endef
$(eval $(generic-package))
--
2.14.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn
2019-03-04 8:57 [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn Vadim Kochan
@ 2019-03-04 19:06 ` Arnout Vandecappelle
2019-03-06 5:29 ` Vadim Kochan
2019-03-28 17:15 ` Thomas Petazzoni
2019-03-28 17:56 ` Thomas Petazzoni
1 sibling, 2 replies; 8+ messages in thread
From: Arnout Vandecappelle @ 2019-03-04 19:06 UTC (permalink / raw)
To: buildroot
Hi Vadim,
On 04/03/2019 09:57, Vadim Kochan wrote:
> mausezahn can't be build with uclibc because uclibc
> does not provide ceill() function, so it does not allow
> to build all netsniff-ng's tools with uclibc.
>
> Fix it by moving mausezahn under separate config option,
> which has own dependencies and packages selection (libnet & libcli).
>
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> ---
> package/netsniff-ng/Config.in | 27 +++++++++++++++++++--------
> package/netsniff-ng/netsniff-ng.mk | 16 +++++++++++-----
> 2 files changed, 30 insertions(+), 13 deletions(-)
>
> diff --git a/package/netsniff-ng/Config.in b/package/netsniff-ng/Config.in
> index c4803b2fa2..15862ff433 100644
> --- a/package/netsniff-ng/Config.in
> +++ b/package/netsniff-ng/Config.in
> @@ -1,16 +1,12 @@
> -config BR2_PACKAGE_NETSNIFF_NG
> +menuconfig BR2_PACKAGE_NETSNIFF_NG
> bool "netsniff-ng"
> - # Build with uClibc fails due to missing ceill()
> - depends on !BR2_TOOLCHAIN_USES_UCLIBC
> depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
> depends on BR2_TOOLCHAIN_HAS_THREADS
> depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
> select BR2_PACKAGE_LIBNL
> select BR2_PACKAGE_LIBPCAP
> - select BR2_PACKAGE_LIBCLI
> select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
> select BR2_PACKAGE_LIBURCU
> - select BR2_PACKAGE_LIBNET
> help
> netsniff-ng is a free, performant Linux network analyzer and
> networking toolkit. If you will, the Swiss army knife for
> @@ -18,7 +14,22 @@ config BR2_PACKAGE_NETSNIFF_NG
>
> http://netsniff-ng.org
>
> -comment "netsniff-ng needs a glibc or musl toolchain w/ threads, headers >= 3.0"
> +if BR2_PACKAGE_NETSNIFF_NG
> +
> +config BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN
> + bool "mausezahn"
Is it worth to add a separate config for this? I.e., does it give significant
saving in either binary size (including libcli and libnet dependencies) or
runtime performance?
If not, we prefer to handle it "automatically" in the .mk file only. In other
words, keep the libcli and libnet selects above but make them conditional on
!uclibc, and change the .mk file as indicated below...
> + default y
> + # Build with uClibc fails due to missing ceill()
> + depends on !BR2_TOOLCHAIN_USES_UCLIBC
> + select BR2_PACKAGE_LIBCLI
> + select BR2_PACKAGE_LIBNET
> +
> +comment "mausezahn needs glibc or musl toolchain"
> + depends on BR2_TOOLCHAIN_USES_UCLIBC
> +
> +endif
> +
> +comment "netsniff-ng needs a toolchain w/ threads, headers >= 3.0"
> depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
> - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC \
> - || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
> + depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> + !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
> diff --git a/package/netsniff-ng/netsniff-ng.mk b/package/netsniff-ng/netsniff-ng.mk
> index 77d8921425..9fe50f10d3 100644
> --- a/package/netsniff-ng/netsniff-ng.mk
> +++ b/package/netsniff-ng/netsniff-ng.mk
> @@ -13,9 +13,14 @@ NETSNIFF_NG_LICENSE_FILES = README COPYING
> NETSNIFF_NG_CONF_ENV = \
> NACL_INC_DIR=/dev/null \
> NACL_LIB_DIR=/dev/null
> -NETSNIFF_NG_DEPENDENCIES = \
> - libnl libpcap libcli libnetfilter_conntrack \
> - liburcu libnet
> +NETSNIFF_NG_DEPENDENCIES = libnl libpcap libnetfilter_conntrack liburcu
> +
> +NETSNIFF_NG_TOOLS = netsniff-ng trafgen astraceroute flowtop ifpps bpfc curvetun
> +
> +ifeq ($(BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN),y)
... make this condition
ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),)
(and move the comment from Config.in to here).
> +NETSNIFF_NG_DEPENDENCIES += libcli libnet
> +NETSNIFF_NG_TOOLS += mausezahn
> +endif
>
> ifeq ($(BR2_PACKAGE_GEOIP),y)
> NETSNIFF_NG_DEPENDENCIES += geoip
> @@ -41,12 +46,13 @@ define NETSNIFF_NG_CONFIGURE_CMDS
> endef
>
> define NETSNIFF_NG_BUILD_CMDS
> - $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
> + $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) $(NETSNIFF_NG_TOOLS)
> endef
>
> define NETSNIFF_NG_INSTALL_TARGET_CMDS
> $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
> - PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install -C $(@D)
> + PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install \
> + -C $(@D) $(NETSNIFF_NG_TOOLS)
I don't like very much that we have to enumerate the tools in the .mk file, but
I don't see any other possibility.
Regards,
Arnout
> endef
>
> $(eval $(generic-package))
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn
2019-03-04 19:06 ` Arnout Vandecappelle
@ 2019-03-06 5:29 ` Vadim Kochan
2019-03-06 9:28 ` Arnout Vandecappelle
2019-03-28 17:15 ` Thomas Petazzoni
1 sibling, 1 reply; 8+ messages in thread
From: Vadim Kochan @ 2019-03-06 5:29 UTC (permalink / raw)
To: buildroot
Hi Arnout,
On Mon, Mar 04, 2019 at 08:06:00PM +0100, Arnout Vandecappelle wrote:
> Hi Vadim,
>
> On 04/03/2019 09:57, Vadim Kochan wrote:
> > mausezahn can't be build with uclibc because uclibc
> > does not provide ceill() function, so it does not allow
> > to build all netsniff-ng's tools with uclibc.
> >
> > Fix it by moving mausezahn under separate config option,
> > which has own dependencies and packages selection (libnet & libcli).
> >
> > Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> > ---
> > package/netsniff-ng/Config.in | 27 +++++++++++++++++++--------
> > package/netsniff-ng/netsniff-ng.mk | 16 +++++++++++-----
> > 2 files changed, 30 insertions(+), 13 deletions(-)
> >
> > diff --git a/package/netsniff-ng/Config.in b/package/netsniff-ng/Config.in
> > index c4803b2fa2..15862ff433 100644
> > --- a/package/netsniff-ng/Config.in
> > +++ b/package/netsniff-ng/Config.in
> > @@ -1,16 +1,12 @@
> > -config BR2_PACKAGE_NETSNIFF_NG
> > +menuconfig BR2_PACKAGE_NETSNIFF_NG
> > bool "netsniff-ng"
> > - # Build with uClibc fails due to missing ceill()
> > - depends on !BR2_TOOLCHAIN_USES_UCLIBC
> > depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
> > depends on BR2_TOOLCHAIN_HAS_THREADS
> > depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
> > select BR2_PACKAGE_LIBNL
> > select BR2_PACKAGE_LIBPCAP
> > - select BR2_PACKAGE_LIBCLI
> > select BR2_PACKAGE_LIBNETFILTER_CONNTRACK
> > select BR2_PACKAGE_LIBURCU
> > - select BR2_PACKAGE_LIBNET
> > help
> > netsniff-ng is a free, performant Linux network analyzer and
> > networking toolkit. If you will, the Swiss army knife for
> > @@ -18,7 +14,22 @@ config BR2_PACKAGE_NETSNIFF_NG
> >
> > http://netsniff-ng.org
> >
> > -comment "netsniff-ng needs a glibc or musl toolchain w/ threads, headers >= 3.0"
> > +if BR2_PACKAGE_NETSNIFF_NG
> > +
> > +config BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN
> > + bool "mausezahn"
>
> Is it worth to add a separate config for this? I.e., does it give significant
> saving in either binary size (including libcli and libnet dependencies) or
> runtime performance?
>
> If not, we prefer to handle it "automatically" in the .mk file only. In other
> words, keep the libcli and libnet selects above but make them conditional on
> !uclibc, and change the .mk file as indicated below...
Well libnet + libcli uses ~180K, but actually I thought that it is OK to
get rid not needed dependencies), if you think this is not good then
I will prepare a patch for netsniff-ng's configure script which will check
ceill() support and will skip the mausezahn compilation.
>
> > + default y
> > + # Build with uClibc fails due to missing ceill()
> > + depends on !BR2_TOOLCHAIN_USES_UCLIBC
> > + select BR2_PACKAGE_LIBCLI
> > + select BR2_PACKAGE_LIBNET
> > +
> > +comment "mausezahn needs glibc or musl toolchain"
> > + depends on BR2_TOOLCHAIN_USES_UCLIBC
> > +
> > +endif
> > +
> > +comment "netsniff-ng needs a toolchain w/ threads, headers >= 3.0"
> > depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
> > - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC \
> > - || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
> > + depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> > + !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
> > diff --git a/package/netsniff-ng/netsniff-ng.mk b/package/netsniff-ng/netsniff-ng.mk
> > index 77d8921425..9fe50f10d3 100644
> > --- a/package/netsniff-ng/netsniff-ng.mk
> > +++ b/package/netsniff-ng/netsniff-ng.mk
> > @@ -13,9 +13,14 @@ NETSNIFF_NG_LICENSE_FILES = README COPYING
> > NETSNIFF_NG_CONF_ENV = \
> > NACL_INC_DIR=/dev/null \
> > NACL_LIB_DIR=/dev/null
> > -NETSNIFF_NG_DEPENDENCIES = \
> > - libnl libpcap libcli libnetfilter_conntrack \
> > - liburcu libnet
> > +NETSNIFF_NG_DEPENDENCIES = libnl libpcap libnetfilter_conntrack liburcu
> > +
> > +NETSNIFF_NG_TOOLS = netsniff-ng trafgen astraceroute flowtop ifpps bpfc curvetun
> > +
> > +ifeq ($(BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN),y)
>
> ... make this condition
>
> ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),)
>
> (and move the comment from Config.in to here).
>
> > +NETSNIFF_NG_DEPENDENCIES += libcli libnet
> > +NETSNIFF_NG_TOOLS += mausezahn
> > +endif
> >
> > ifeq ($(BR2_PACKAGE_GEOIP),y)
> > NETSNIFF_NG_DEPENDENCIES += geoip
> > @@ -41,12 +46,13 @@ define NETSNIFF_NG_CONFIGURE_CMDS
> > endef
> >
> > define NETSNIFF_NG_BUILD_CMDS
> > - $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
> > + $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) $(NETSNIFF_NG_TOOLS)
> > endef
> >
> > define NETSNIFF_NG_INSTALL_TARGET_CMDS
> > $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
> > - PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install -C $(@D)
> > + PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install \
> > + -C $(@D) $(NETSNIFF_NG_TOOLS)
>
> I don't like very much that we have to enumerate the tools in the .mk file, but
> I don't see any other possibility.
>
> Regards,
> Arnout
>
> > endef
> >
> > $(eval $(generic-package))
> >
Regards,
Vadim Kochan
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn
2019-03-06 5:29 ` Vadim Kochan
@ 2019-03-06 9:28 ` Arnout Vandecappelle
2019-03-28 17:16 ` Thomas Petazzoni
0 siblings, 1 reply; 8+ messages in thread
From: Arnout Vandecappelle @ 2019-03-06 9:28 UTC (permalink / raw)
To: buildroot
On 06/03/2019 06:29, Vadim Kochan wrote:
> Hi Arnout,
>
> On Mon, Mar 04, 2019 at 08:06:00PM +0100, Arnout Vandecappelle wrote:
>> Hi Vadim,
>>
>> On 04/03/2019 09:57, Vadim Kochan wrote:
[snip]
>>> +if BR2_PACKAGE_NETSNIFF_NG
>>> +
>>> +config BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN
>>> + bool "mausezahn"
>>
>> Is it worth to add a separate config for this? I.e., does it give significant
>> saving in either binary size (including libcli and libnet dependencies) or
>> runtime performance?
>>
>> If not, we prefer to handle it "automatically" in the .mk file only. In other
>> words, keep the libcli and libnet selects above but make them conditional on
>> !uclibc, and change the .mk file as indicated below...
>
> Well libnet + libcli uses ~180K,
That indeed sounds significant. To really compare you should do a minimal build
of netsniff-ng and its dependencies using a musl toolchain; if that ends up at
something like 2MB rootfs size, the 180K is worth it.
We'd still typically have it in the .mk file only, like:
ifeq ($(BR2_PACKAGE_LIBCLI)$(BR2_PACKAGE_LIBNET):$(BR2_TOOLCHAIN_USES_UCLIBC),yy:)
However, in this case the libcli and libnet dependencies are very non-obvious,
so having an explicit Config.in option indeed makes sense.
> but actually I thought that it is OK to
> get rid not needed dependencies), if you think this is not good then
> I will prepare a patch for netsniff-ng's configure script which will check
> ceill() support and will skip the mausezahn compilation.
That would be even better of course, because then we don't need that explicit
list of tools.
Now you mention it, it looks like the libpcap dependency is also only used for
mausezahn...
Regards,
Arnout
>
>>
>>> + default y
>>> + # Build with uClibc fails due to missing ceill()
>>> + depends on !BR2_TOOLCHAIN_USES_UCLIBC
>>> + select BR2_PACKAGE_LIBCLI
>>> + select BR2_PACKAGE_LIBNET
>>> +
>>> +comment "mausezahn needs glibc or musl toolchain"
>>> + depends on BR2_TOOLCHAIN_USES_UCLIBC
>>> +
>>> +endif
>>> +
>>> +comment "netsniff-ng needs a toolchain w/ threads, headers >= 3.0"
>>> depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
>>> - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC \
>>> - || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
>>> + depends on !BR2_TOOLCHAIN_HAS_THREADS || \
>>> + !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
>>> diff --git a/package/netsniff-ng/netsniff-ng.mk b/package/netsniff-ng/netsniff-ng.mk
>>> index 77d8921425..9fe50f10d3 100644
>>> --- a/package/netsniff-ng/netsniff-ng.mk
>>> +++ b/package/netsniff-ng/netsniff-ng.mk
>>> @@ -13,9 +13,14 @@ NETSNIFF_NG_LICENSE_FILES = README COPYING
>>> NETSNIFF_NG_CONF_ENV = \
>>> NACL_INC_DIR=/dev/null \
>>> NACL_LIB_DIR=/dev/null
>>> -NETSNIFF_NG_DEPENDENCIES = \
>>> - libnl libpcap libcli libnetfilter_conntrack \
>>> - liburcu libnet
>>> +NETSNIFF_NG_DEPENDENCIES = libnl libpcap libnetfilter_conntrack liburcu
>>> +
>>> +NETSNIFF_NG_TOOLS = netsniff-ng trafgen astraceroute flowtop ifpps bpfc curvetun
>>> +
>>> +ifeq ($(BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN),y)
>>
>> ... make this condition
>>
>> ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),)
>>
>> (and move the comment from Config.in to here).
>>
>>> +NETSNIFF_NG_DEPENDENCIES += libcli libnet
>>> +NETSNIFF_NG_TOOLS += mausezahn
>>> +endif
>>>
>>> ifeq ($(BR2_PACKAGE_GEOIP),y)
>>> NETSNIFF_NG_DEPENDENCIES += geoip
>>> @@ -41,12 +46,13 @@ define NETSNIFF_NG_CONFIGURE_CMDS
>>> endef
>>>
>>> define NETSNIFF_NG_BUILD_CMDS
>>> - $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
>>> + $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) $(NETSNIFF_NG_TOOLS)
>>> endef
>>>
>>> define NETSNIFF_NG_INSTALL_TARGET_CMDS
>>> $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
>>> - PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install -C $(@D)
>>> + PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install \
>>> + -C $(@D) $(NETSNIFF_NG_TOOLS)
>>
>> I don't like very much that we have to enumerate the tools in the .mk file, but
>> I don't see any other possibility.
>>
>> Regards,
>> Arnout
>>
>>> endef
>>>
>>> $(eval $(generic-package))
>>>
>
> Regards,
> Vadim Kochan
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn
2019-03-04 19:06 ` Arnout Vandecappelle
2019-03-06 5:29 ` Vadim Kochan
@ 2019-03-28 17:15 ` Thomas Petazzoni
2019-03-28 17:41 ` Vadym Kochan
1 sibling, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2019-03-28 17:15 UTC (permalink / raw)
To: buildroot
On Mon, 4 Mar 2019 20:06:00 +0100
Arnout Vandecappelle <arnout@mind.be> wrote:
> > define NETSNIFF_NG_INSTALL_TARGET_CMDS
> > $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
> > - PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install -C $(@D)
> > + PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install \
> > + -C $(@D) $(NETSNIFF_NG_TOOLS)
>
> I don't like very much that we have to enumerate the tools in the .mk file, but
> I don't see any other possibility.
The Makefile has the following targets:
allbutmausezahn: $(filter-out mausezahn,$(TOOLS))
install_allbutmausezahn: $(foreach tool,$(filter-out mausezahn,$(TOOLS)),$(tool)_install)
So I think we can build/install everything except mausezahen fairly
easily without duplicating the list of tools in netsniff-ng.mk.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn
2019-03-06 9:28 ` Arnout Vandecappelle
@ 2019-03-28 17:16 ` Thomas Petazzoni
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2019-03-28 17:16 UTC (permalink / raw)
To: buildroot
Hello,
On Wed, 6 Mar 2019 10:28:26 +0100
Arnout Vandecappelle <arnout@mind.be> wrote:
> Now you mention it, it looks like the libpcap dependency is also only used for
> mausezahn...
Not so sure:
$ grep pcap.h bpf_comp.c
#include <pcap.h>
$ grep bpf_comp netsniff-ng/Makefile
netsniff-ng-objs += bpf_comp.o
$ grep -r "lpcap" *
configure: $CC -o $TMPDIR/pcaptest $TMPDIR/pcaptest.c -lpcap >> config.log 2>&1
mausezahn/Makefile: -lpcap \
netsniff-ng/Makefile:netsniff-ng-libs += -lpcap
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn
2019-03-28 17:15 ` Thomas Petazzoni
@ 2019-03-28 17:41 ` Vadym Kochan
0 siblings, 0 replies; 8+ messages in thread
From: Vadym Kochan @ 2019-03-28 17:41 UTC (permalink / raw)
To: buildroot
On Thu, Mar 28, 2019 at 06:15:11PM +0100, Thomas Petazzoni wrote:
> On Mon, 4 Mar 2019 20:06:00 +0100
> Arnout Vandecappelle <arnout@mind.be> wrote:
>
> > > define NETSNIFF_NG_INSTALL_TARGET_CMDS
> > > $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
> > > - PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install -C $(@D)
> > > + PREFIX=$(TARGET_DIR)/usr ETCDIR=$(TARGET_DIR)/etc install \
> > > + -C $(@D) $(NETSNIFF_NG_TOOLS)
> >
> > I don't like very much that we have to enumerate the tools in the .mk file, but
> > I don't see any other possibility.
>
> The Makefile has the following targets:
>
> allbutmausezahn: $(filter-out mausezahn,$(TOOLS))
>
> install_allbutmausezahn: $(foreach tool,$(filter-out mausezahn,$(TOOLS)),$(tool)_install)
>
> So I think we can build/install everything except mausezahen fairly
> easily without duplicating the list of tools in netsniff-ng.mk.
>
Good catch, I really missed this event that I contributed some quite a
lot of patches to netsniff-ng :))
But still separate config option for mz is OK ? If not, then I will
prepare patch for netsniff-ng configure to check for existence of missed
function for mz, but in that case libnet and libcli will be selected by
buildroot even if mz is not built.
Regards,
Vadim Kochan
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn
2019-03-04 8:57 [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn Vadim Kochan
2019-03-04 19:06 ` Arnout Vandecappelle
@ 2019-03-28 17:56 ` Thomas Petazzoni
1 sibling, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2019-03-28 17:56 UTC (permalink / raw)
To: buildroot
Hello Vadim,
On Mon, 4 Mar 2019 10:57:41 +0200
Vadim Kochan <vadim4j@gmail.com> wrote:
> mausezahn can't be build with uclibc because uclibc
> does not provide ceill() function, so it does not allow
> to build all netsniff-ng's tools with uclibc.
>
> Fix it by moving mausezahn under separate config option,
> which has own dependencies and packages selection (libnet & libcli).
>
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Applied to master with a few changes.
> -config BR2_PACKAGE_NETSNIFF_NG
> +menuconfig BR2_PACKAGE_NETSNIFF_NG
Kept "config" here. We don't typically have a "menuconfig" for just one
sub-option.
> +NETSNIFF_NG_TOOLS = netsniff-ng trafgen astraceroute flowtop ifpps bpfc curvetun
I changed this to use the allbutmausezahn and install_allbutmausezahn targets.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-03-28 17:56 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-04 8:57 [Buildroot] [PATCH 1/1] package/netsniff-ng: Allow to build with uclibc but w/o mausezahn Vadim Kochan
2019-03-04 19:06 ` Arnout Vandecappelle
2019-03-06 5:29 ` Vadim Kochan
2019-03-06 9:28 ` Arnout Vandecappelle
2019-03-28 17:16 ` Thomas Petazzoni
2019-03-28 17:15 ` Thomas Petazzoni
2019-03-28 17:41 ` Vadym Kochan
2019-03-28 17:56 ` Thomas Petazzoni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.