netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [conntrack-tools 0/6] Build fixes
@ 2021-09-25 15:10 Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 1/6] build: remove commented-out macros from configure.ac Jeremy Sowden
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Jeremy Sowden @ 2021-09-25 15:10 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: Netfilter Devel

The first three patches contain changes suggested by autoupdate.  Four
and five bring the handling of the yacc- and lex-generated sources more
in line with the automake doc's.  The last one fixes a race in parallel
builds.

Jeremy Sowden (6):
  build: remove commented-out macros from configure.ac
  build: quote AC_INIT arguments
  build: replace `AM_PROG_LIBTOOL` and `AC_DISABLE_STATIC` with
    `LT_INIT`
  build: remove yacc-generated header from EXTRA_DIST
  build: clean yacc- and lex-generated files with maintainer-clean
  build: fix dependency-tracking of yacc-generated header

 configure.ac    | 30 ++----------------------------
 src/Makefile.am |  5 ++---
 2 files changed, 4 insertions(+), 31 deletions(-)

-- 
2.33.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [conntrack-tools 1/6] build: remove commented-out macros from configure.ac
  2021-09-25 15:10 [conntrack-tools 0/6] Build fixes Jeremy Sowden
@ 2021-09-25 15:10 ` Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 2/6] build: quote AC_INIT arguments Jeremy Sowden
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Jeremy Sowden @ 2021-09-25 15:10 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: Netfilter Devel

This code has been commented out since at least 2007.

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
---
 configure.ac | 25 -------------------------
 1 file changed, 25 deletions(-)

diff --git a/configure.ac b/configure.ac
index d0565bed3532..5ff8921b6fc8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -75,37 +75,12 @@ AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$enable_systemd" = "xyes"])
 
 AC_CHECK_HEADERS([linux/capability.h],, [AC_MSG_ERROR([Cannot find linux/capabibility.h])])
 
-# Checks for libraries.
-# FIXME: Replace `main' with a function in `-lc':
-dnl AC_CHECK_LIB([c], [main])
-# FIXME: Replace `main' with a function in `-ldl':
-
 AC_CHECK_HEADERS(arpa/inet.h)
-dnl check for inet_pton
 AC_CHECK_FUNCS(inet_pton)
 
-# Checks for header files.
-dnl AC_HEADER_STDC
-dnl AC_CHECK_HEADERS([netinet/in.h stdlib.h])
-
-# Checks for typedefs, structures, and compiler characteristics.
-dnl AC_C_CONST
-dnl AC_C_INLINE
-
 # Let nfct use dlopen() on helper libraries without resolving all symbols.
 AX_CHECK_LINK_FLAG([-Wl,-z,lazy], [AC_SUBST([LAZY_LDFLAGS], [-Wl,-z,lazy])])
 
-# Checks for library functions.
-dnl AC_FUNC_MALLOC
-dnl AC_FUNC_VPRINTF
-dnl AC_CHECK_FUNCS([memset])
-
-dnl AC_CONFIG_FILES([Makefile
-dnl                  debug/Makefile
-dnl                  debug/src/Makefile
-dnl                  extensions/Makefile
-dnl                  src/Makefile])
-
 if test ! -z "$libdir"; then
 	MODULE_DIR="\\\"$libdir/conntrack-tools/\\\""
 	CFLAGS="$CFLAGS -DCONNTRACKD_LIB_DIR=$MODULE_DIR"
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [conntrack-tools 2/6] build: quote AC_INIT arguments
  2021-09-25 15:10 [conntrack-tools 0/6] Build fixes Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 1/6] build: remove commented-out macros from configure.ac Jeremy Sowden
@ 2021-09-25 15:10 ` Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 3/6] build: replace `AM_PROG_LIBTOOL` and `AC_DISABLE_STATIC` with `LT_INIT` Jeremy Sowden
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Jeremy Sowden @ 2021-09-25 15:10 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: Netfilter Devel

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 5ff8921b6fc8..c690a92be5fd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(conntrack-tools, 1.4.6, pablo@netfilter.org)
+AC_INIT([conntrack-tools],[1.4.6],[pablo@netfilter.org])
 AC_CONFIG_AUX_DIR([build-aux])
 
 AC_CANONICAL_HOST
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [conntrack-tools 3/6] build: replace `AM_PROG_LIBTOOL` and `AC_DISABLE_STATIC` with `LT_INIT`
  2021-09-25 15:10 [conntrack-tools 0/6] Build fixes Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 1/6] build: remove commented-out macros from configure.ac Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 2/6] build: quote AC_INIT arguments Jeremy Sowden
@ 2021-09-25 15:10 ` Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 4/6] build: remove yacc-generated header from EXTRA_DIST Jeremy Sowden
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Jeremy Sowden @ 2021-09-25 15:10 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: Netfilter Devel

`AM_PROG_LIBTOOL` is superseded by `LT_INIT`, which also accepts options
to control the defaults for creating shared or static libraries.

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
---
 configure.ac | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index c690a92be5fd..3a3af4549162 100644
--- a/configure.ac
+++ b/configure.ac
@@ -13,9 +13,8 @@ AC_SEARCH_LIBS([dlopen], [dl], [libdl_LIBS="$LIBS"; LIBS=""])
 AC_SUBST([libdl_LIBS])
 
 AC_PROG_CC
-AC_DISABLE_STATIC
 AM_PROG_AR
-AM_PROG_LIBTOOL
+LT_INIT([disable-static])
 AC_PROG_INSTALL
 AC_PROG_LN_S
 AM_PROG_LEX
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [conntrack-tools 4/6] build: remove yacc-generated header from EXTRA_DIST
  2021-09-25 15:10 [conntrack-tools 0/6] Build fixes Jeremy Sowden
                   ` (2 preceding siblings ...)
  2021-09-25 15:10 ` [conntrack-tools 3/6] build: replace `AM_PROG_LIBTOOL` and `AC_DISABLE_STATIC` with `LT_INIT` Jeremy Sowden
@ 2021-09-25 15:10 ` Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 5/6] build: clean yacc- and lex-generated files with maintainer-clean Jeremy Sowden
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Jeremy Sowden @ 2021-09-25 15:10 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: Netfilter Devel

Automake generates yacc and lex output files and includes them in
distributions as a matter of course.

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
---
 src/Makefile.am | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 2e66ee96b709..75b16a7b6f35 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -77,5 +77,3 @@ conntrackd_LDADD += ${LIBSYSTEMD_LIBS}
 endif
 
 conntrackd_LDFLAGS = -export-dynamic
-
-EXTRA_DIST = read_config_yy.h
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [conntrack-tools 5/6] build: clean yacc- and lex-generated files with maintainer-clean
  2021-09-25 15:10 [conntrack-tools 0/6] Build fixes Jeremy Sowden
                   ` (3 preceding siblings ...)
  2021-09-25 15:10 ` [conntrack-tools 4/6] build: remove yacc-generated header from EXTRA_DIST Jeremy Sowden
@ 2021-09-25 15:10 ` Jeremy Sowden
  2021-09-25 15:10 ` [conntrack-tools 6/6] build: fix dependency-tracking of yacc-generated header Jeremy Sowden
  2021-09-27  8:33 ` [conntrack-tools 0/6] Build fixes Pablo Neira Ayuso
  6 siblings, 0 replies; 10+ messages in thread
From: Jeremy Sowden @ 2021-09-25 15:10 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: Netfilter Devel

Automake expects to distribute yacc- and lex-generated sources, so that
the user doesn't need to regenerate them.  Therefore, the appropriate
target to clean them is `maintainer-clean`.

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
---
 src/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 75b16a7b6f35..85ea18888e97 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,7 +6,7 @@ endif
 
 AM_YFLAGS = -d
 
-CLEANFILES = read_config_yy.c read_config_lex.c
+MAINTAINERCLEANFILES = read_config_yy.c read_config_yy.h read_config_lex.c
 
 sbin_PROGRAMS = conntrack conntrackd nfct
 
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [conntrack-tools 6/6] build: fix dependency-tracking of yacc-generated header
  2021-09-25 15:10 [conntrack-tools 0/6] Build fixes Jeremy Sowden
                   ` (4 preceding siblings ...)
  2021-09-25 15:10 ` [conntrack-tools 5/6] build: clean yacc- and lex-generated files with maintainer-clean Jeremy Sowden
@ 2021-09-25 15:10 ` Jeremy Sowden
  2021-09-25 15:49   ` Jan Engelhardt
  2021-09-27  8:33 ` [conntrack-tools 0/6] Build fixes Pablo Neira Ayuso
  6 siblings, 1 reply; 10+ messages in thread
From: Jeremy Sowden @ 2021-09-25 15:10 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: Netfilter Devel

List it as a built source in order to force make to create it before
compilation.  Otherwise, a parallel make can end up attempting to
compile the output of lex before yacc has finished generating its own
output:

  $ make -j17
  [...]
  YACC     read_config_yy.c
  LEX      read_config_lex.c
  CC       stack.o
  CC       resync.o
  CC       cthelper.o
  CC       helpers.o
  CC       utils.o
  CC       expect.o
  CC       systemd.o
  CC       nfct.o
  CC       nfct-extensions/helper.o
  CC       nfct-extensions/timeout.o
  CC       read_config_lex.o
  read_config_lex.l:25:10: fatal error: read_config_yy.h: No such file or directory
  25 | #include "read_config_yy.h"
  |          ^~~~~~~~~~~~~~~~~~
  compilation terminated.
  make[2]: *** [Makefile:701: read_config_lex.o] Error 1
  make[2]: *** Waiting for unfinished jobs....
  updating read_config_yy.h
  make[2]: Leaving directory '/space/azazel/work/git/netfilter/conntrack-tools/src'
  make[1]: *** [Makefile:743: all-recursive] Error 1
  make[1]: Leaving directory '/space/azazel/work/git/netfilter/conntrack-tools/src'
  make: *** [Makefile:541: all-recursive] Error 1

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
---
 src/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/Makefile.am b/src/Makefile.am
index 85ea18888e97..1f234749d35d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,6 +6,7 @@ endif
 
 AM_YFLAGS = -d
 
+BUILT_SOURCES = read_config_yy.h
 MAINTAINERCLEANFILES = read_config_yy.c read_config_yy.h read_config_lex.c
 
 sbin_PROGRAMS = conntrack conntrackd nfct
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [conntrack-tools 6/6] build: fix dependency-tracking of yacc-generated header
  2021-09-25 15:10 ` [conntrack-tools 6/6] build: fix dependency-tracking of yacc-generated header Jeremy Sowden
@ 2021-09-25 15:49   ` Jan Engelhardt
  2021-09-25 17:29     ` Jeremy Sowden
  0 siblings, 1 reply; 10+ messages in thread
From: Jan Engelhardt @ 2021-09-25 15:49 UTC (permalink / raw)
  To: Jeremy Sowden; +Cc: Pablo Neira Ayuso, Netfilter Devel


On Saturday 2021-09-25 17:10, Jeremy Sowden wrote:
>List it as a built source in order to force make to create it before
>compilation.  Otherwise, a parallel make can end up attempting to
>compile the output of lex before yacc has finished generating its own
>output:
>
>--- a/src/Makefile.am
>+++ b/src/Makefile.am
>@@ -6,6 +6,7 @@ endif
> 
> AM_YFLAGS = -d
> 
>+BUILT_SOURCES = read_config_yy.h
> MAINTAINERCLEANFILES = read_config_yy.c read_config_yy.h read_config_lex.c

I have a strong reason to believe that you could just 
write

 read_config_yy.h: read_config_yy.y

(detail https://lists.gnu.org/archive/html/automake/2021-09/msg00011.html )

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [conntrack-tools 6/6] build: fix dependency-tracking of yacc-generated header
  2021-09-25 15:49   ` Jan Engelhardt
@ 2021-09-25 17:29     ` Jeremy Sowden
  0 siblings, 0 replies; 10+ messages in thread
From: Jeremy Sowden @ 2021-09-25 17:29 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Pablo Neira Ayuso, Netfilter Devel

[-- Attachment #1: Type: text/plain, Size: 1619 bytes --]

On 2021-09-25, at 17:49:27 +0200, Jan Engelhardt wrote:
> On Saturday 2021-09-25 17:10, Jeremy Sowden wrote:
> > List it as a built source in order to force make to create it before
> > compilation.  Otherwise, a parallel make can end up attempting to
> > compile the output of lex before yacc has finished generating its
> > own output:
> >
> > --- a/src/Makefile.am
> > +++ b/src/Makefile.am
> > @@ -6,6 +6,7 @@ endif
> >
> >  AM_YFLAGS = -d
> >
> > +BUILT_SOURCES = read_config_yy.h
> >  MAINTAINERCLEANFILES = read_config_yy.c read_config_yy.h read_config_lex.c
>
> I have a strong reason to believe that you could just write
>
>  read_config_yy.h: read_config_yy.y
>
> (detail https://lists.gnu.org/archive/html/automake/2021-09/msg00011.html )

Automake complains:

  src/Makefile.am:65: warning: user target 'read_config_yy.h' defined here ...
  automake: ... overrides Automake target 'read_config_yy.h' defined here

From the documentation (https://www.gnu.org/software/automake/manual/automake.html#Extending):

  Note that Automake does not make any distinction between rules with
  commands and rules that only specify dependencies. So it is not
  possible to append new dependencies to an automake-defined target
  without redefining the entire rule.

In this case, adding the rule you suggest to Makefile.am suppresses the
rule that automake would normally generate:

  read_config_yy.h: read_config_yy.c
          @if test ! -f $@; then rm -f read_config_yy.c; else :; fi
          @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) read_config_yy.c; else :; fi

J.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [conntrack-tools 0/6] Build fixes
  2021-09-25 15:10 [conntrack-tools 0/6] Build fixes Jeremy Sowden
                   ` (5 preceding siblings ...)
  2021-09-25 15:10 ` [conntrack-tools 6/6] build: fix dependency-tracking of yacc-generated header Jeremy Sowden
@ 2021-09-27  8:33 ` Pablo Neira Ayuso
  6 siblings, 0 replies; 10+ messages in thread
From: Pablo Neira Ayuso @ 2021-09-27  8:33 UTC (permalink / raw)
  To: Jeremy Sowden; +Cc: Netfilter Devel

On Sat, Sep 25, 2021 at 04:10:29PM +0100, Jeremy Sowden wrote:
> The first three patches contain changes suggested by autoupdate.  Four
> and five bring the handling of the yacc- and lex-generated sources more
> in line with the automake doc's.  The last one fixes a race in parallel
> builds.

Series applied, thanks.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-09-27  8:33 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-25 15:10 [conntrack-tools 0/6] Build fixes Jeremy Sowden
2021-09-25 15:10 ` [conntrack-tools 1/6] build: remove commented-out macros from configure.ac Jeremy Sowden
2021-09-25 15:10 ` [conntrack-tools 2/6] build: quote AC_INIT arguments Jeremy Sowden
2021-09-25 15:10 ` [conntrack-tools 3/6] build: replace `AM_PROG_LIBTOOL` and `AC_DISABLE_STATIC` with `LT_INIT` Jeremy Sowden
2021-09-25 15:10 ` [conntrack-tools 4/6] build: remove yacc-generated header from EXTRA_DIST Jeremy Sowden
2021-09-25 15:10 ` [conntrack-tools 5/6] build: clean yacc- and lex-generated files with maintainer-clean Jeremy Sowden
2021-09-25 15:10 ` [conntrack-tools 6/6] build: fix dependency-tracking of yacc-generated header Jeremy Sowden
2021-09-25 15:49   ` Jan Engelhardt
2021-09-25 17:29     ` Jeremy Sowden
2021-09-27  8:33 ` [conntrack-tools 0/6] Build fixes Pablo Neira Ayuso

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).