List please hold on these patch! It seems that AM_PATH_LIBGCRYPT will also define LIBGCRYPT_LIBS which is used to link again libgcrypt and other libraries related to libgcrypt.
My bad, this current patch will not fix the problem! I guess that we are stuck with this :-/ until gcrypt converts to pkg-config... On Sat, Nov 02, 2013 at 02:11:48AM +0100, Djalal Harouni wrote: > Hi list, > > I'm doing some systemd testing on clean machines. I'm building from git > tree, and I've noticed that systemd autogen.sh will fail if the > libgcrypt and its headers are missing, this will produce a buggy > configure script. > > The error messages were not clear, I did lost time debugging... :-/ > > The libtool and libgcrypt were missing, perhaps others packages too, but > I was trying to get it compile without all the features. The readme file > states clearly that libtool is needed and libgcrypt is optional, so lets > see: > > (Libtool and libgcrypt were not installed) > > The autogen.sh output: > configure.ac:547: warning: macro 'AM_PATH_LIBGCRYPT' not found in > library > configure.ac:47: error: possibly undefined macro: AC_MSG_ERROR > If this token and others are legitimate, please use m4_pattern_allow. > See the Autoconf documentation. > configure.ac:547: error: possibly undefined macro: AM_PATH_LIBGCRYPT > autoreconf: /usr/bin/autoconf failed with exit status: 1 > > The produced configure.ac script will fail with: > ./configure: line 5123: syntax error near unexpected token `2.2' > ./configure: line 5123: `LT_PREREQ(2.2)' > > So, I know LT_PREREQ(2.2) is from libtool, lets get it. After that I > re-run autogen.sh: > > ./autogen.sh > configure.ac:547: warning: macro 'AM_PATH_LIBGCRYPT' not found in > library > libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'. > libtoolize: linking file `build-aux/ltmain.sh' > libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. > libtoolize: linking file `m4/libtool.m4' > libtoolize: linking file `m4/ltoptions.m4' > libtoolize: linking file `m4/ltsugar.m4' > libtoolize: linking file `m4/ltversion.m4' > libtoolize: linking file `m4/lt~obsolete.m4' > configure.ac:547: warning: macro 'AM_PATH_LIBGCRYPT' not found in library > configure.ac:47: error: possibly undefined macro: AC_MSG_ERROR > If this token and others are legitimate, please use m4_pattern_allow. > See the Autoconf documentation. > configure.ac:547: error: possibly undefined macro: AM_PATH_LIBGCRYPT > autoreconf: /usr/bin/autoconf failed with exit status: 1 > > > I still have the AM_PATH_LIBGCRYPT report, but I did install libtool > so why I'm getting that 'AC_MSG_ERROR'?, hmm ok perhaps other errors > got autoreconf produce this output? I don't know, all of this is set to > confuse my poor debugging skills... but running the autotools manually > will produce a better output. > > > Anyway, running the generated configure script will produce: > > checking for fsetxattr in -lattr... yes > ./configure: line 17100: syntax error near unexpected token `newline' > ./configure: line 17100: ` AM_PATH_LIBGCRYPT(' > > > So systemd clearly needs libgcrypt to compile since it makes use of > the AM_PATH_LIBGCRYPT macro. It's not optional as stated in the README > file. > > There was a patch to test if AM_PATH_LIBGCRYPT is defined: > http://lists.freedesktop.org/archives/systemd-devel/2013-May/010885.html > > The discussion ended by: libgcrypt should not use its own macro, yes > that's true, but in the end systemd is also using this same macro and > will fail to build... > > > What do you think of the following: > 1) The following patch removes the AM_PATH_LIBGCRYPT macro use. It > makes the libgcrypt check consistent with the other library checks. > > However by doing this we remove the version check from configure.ac, we > can still call gcry_version_check() inside AC_COMPILE_IFELSE to check > the minimal required version, but I don't like it. > > It seems that the code that makes use of libgcrypt tries to check the > minimal version during initialization. > > Please see the patch change log. > > > 2) merge the patch: > http://lists.freedesktop.org/archives/systemd-devel/2013-May/010885.html > > > 3) Edit the README file to state that systemd needs libgcrypt > > > BTW it would be nice if we can add a check like the following for > libtool: > m4_ifdef([LT_PREREQ], > [LT_PREREQ(...)], > [m4_fatal([Libtool version X not found])]) > > To improve error messages. > > > Thanks! > _______________________________________________ > systemd-devel mailing list > systemd-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- Djalal Harouni http://opendz.org _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel