[SSSD] [PATCH] BUILD: Repair dependecies on deprecated libraries

Jakub Hrozek jhrozek at redhat.com
Wed Aug 5 13:01:15 UTC 2015


On Wed, Aug 05, 2015 at 02:53:28PM +0200, Lukas Slebodnik wrote:
> On (28/07/15 17:06), Jakub Hrozek wrote:
> >On Tue, Jul 28, 2015 at 03:50:04PM +0200, Lukas Slebodnik wrote:
> >> On (28/07/15 15:44), Petr Cech wrote:
> >> >
> >> >
> >> >On 07/28/2015 01:34 PM, Lukas Slebodnik wrote:
> >> >>On (28/07/15 11:58), Petr Cech wrote:
> >> >>>From fcf895ad8df932403dfc554a34ff0d8ceac72785 Mon Sep 17 00:00:00 2001
> >> >>>From: Petr Cech <pcech at redhat.com>
> >> >>>Date: Mon, 27 Jul 2015 12:52:49 -0400
> >> >>>Subject: [PATCH] BUILD: Repair dependecies on deprecated libraries
> >> >>>
> >> >>>From systemd version 209 up, there are no modules -login
> >> >>>and -journal. M4 macro can switch the libraries due to
> >> >>>systemd version.
> >> >>>
> >> >>>Resolves:
> >> >>>https://fedorahosted.org/sssd/ticket/2733
> >> >>>---
> >> >>>contrib/ci/deps.sh      |  2 +-
> >> >>>src/external/systemd.m4 | 24 +++++++++++++++++-------
> >> >>>2 files changed, 18 insertions(+), 8 deletions(-)
> >> >>>
> >> >>>diff --git a/contrib/ci/deps.sh b/contrib/ci/deps.sh
> >> >>>index 74401f8328cdcc6f80afa9f7408ef9e9ce890df7..22b7276ebdb8e3ba5e1e34334adbe310cbff8bad 100644
> >> >>>--- a/contrib/ci/deps.sh
> >> >>>+++ b/contrib/ci/deps.sh
> >> >>>@@ -92,7 +92,7 @@ if [[ "$DISTRO_BRANCH" == -debian-* ]]; then
> >> >>>         libselinux1-dev
> >> >>>         libsemanage1-dev
> >> >>>         libsmbclient-dev
> >> >>>-        libsystemd-journal-dev
> >> >>>+        libsystemd-dev
> >> >>>         libtalloc-dev
> >> >>>         libtdb-dev
> >> >>>         libtevent-dev
> >> >>>diff --git a/src/external/systemd.m4 b/src/external/systemd.m4
> >> >>>index dbced0d66aa19e064f998648675a5a9c080eaab8..ddc79e465fd53618c5f90341a96461b92c8528b1 100644
> >> >>>--- a/src/external/systemd.m4
> >> >>>+++ b/src/external/systemd.m4
> >> >>>@@ -1,23 +1,33 @@
> >> >>>+dnl There are no module libsystemd-journal and libsystem-login
> >> >>>+dnl up systemd version 209
> >> >>I think better comment would be to say that libsystemd-journal and
> >> >>libsystem-login  ... are deprecated and "libsystemd" should be used
> >> >>instead of them.
> >> >>
> >> >>http://lists.freedesktop.org/archives/systemd-devel/2014-February/017146.html
> >> >>
> >> >>>+PKG_CHECK_EXISTS(systemd >= 209, [HAVE_SYSTEMD_NEW=yes], [HAVE_SYSTEMD_NEW=no])
> >> >>>+
> >> >>>dnl A macro to check presence of systemd on the system
> >> >>>AC_DEFUN([AM_CHECK_SYSTEMD],
> >> >>>[
> >> >>>     PKG_CHECK_EXISTS(systemd,
> >> >>>                      [ HAVE_SYSTEMD=1, AC_SUBST(HAVE_SYSTEMD) ],
> >> >>>-                     [AC_MSG_ERROR([Could not detect systemd presence])]
> >> >>>-                    )
> >> >>>+                     [AC_MSG_ERROR([Could not detect systemd presence])])
> >> >>>])
> >> >>>
> >> >>>+AS_IF(test x$HAVE_SYSTEMD_NEW = xyes, login_lib_name=libsystemd,
> >> >>                ^^^^^^^^^^^^^^^^
> >> >>             I know I recommended that name to you but development in systemd
> >> >>             is quite rapid. So in future we might need another variable
> >> >>             HAVE_SYSTEMD_NEWER.
> >> >>
> >> >>So it migth be better to test an availability of library libsystemd.
> >> >>It was introduced in systemd 209  and is not available on rhel 7.{0,1}
> >> >>
> >> >>Something like
> >> >>      PKG_CHECK_EXISTS([libsystemd],
> >> >>                       [HAVE_LIBSYSTEMD=yes],
> >> >>                       [HAVE_LIBSYSTEMD=no])
> >> >>instead of 1st line in file.
> >> >>
> >> >>>+      login_lib_name=libsystemd-login)
> >> >>>+
> >> >>the square brackets are user on other places with macro AS_IF
> >> >>src/external/intgcheck.m4:AS_IF([test -n "$PYTEST"], [HAVE_PYTEST=yes], [HAVE_PYTEST=no])
> >> >>
> >> >>src/external/ldap.m4:AS_IF([test -n "$SLAPD"], [HAVE_SLAPD=yes], [HAVE_SLAPD=no])
> >> >>
> >> >>src/external/libcmocka.m4:        AS_IF([test x"$cmocka_required_headers" != x"no"],
> >> >>src/external/libcmocka.m4-              [PKG_CHECK_MODULES([CMOCKA], [cmocka], [have_cmocka="yes"])]
> >> >>
> >> >>>AM_COND_IF([HAVE_SYSTEMD],
> >> >>>-           [PKG_CHECK_MODULES([SYSTEMD_LOGIN], [libsystemd-login],
> >> >>>-            [AC_DEFINE_UNQUOTED(HAVE_SYSTEMD_LOGIN, 1, [Build with libsystemdlogin support])],
> >> >>>+           [PKG_CHECK_MODULES([SYSTEMD_LOGIN],
> >> >>>+            [$login_lib_name],
> >> >>>+            [AC_DEFINE_UNQUOTED(HAVE_SYSTEMD_LOGIN, 1,
> >> >>>+                                [Build with libsystemdlogin support])],
> >> >>>             [AC_MSG_NOTICE([Build without libsystemd-login support])])])
> >> >>               I would add at least 4 spaces here instead of 1.
> >> >>               So it will be clear that the code belongs to PKG_CHECK_MODULES
> >> >>               and not to the AM_COND_IF
> >> >>>dnl A macro to check presence of journald on the system
> >> >>>AC_DEFUN([AM_CHECK_JOURNALD],
> >> >>>[
> >> >>>-       PKG_CHECK_MODULES(JOURNALD,
> >> >>>-                         libsystemd-journal,
> >> >>>-                         [AC_DEFINE_UNQUOTED([WITH_JOURNALD], 1, [journald is available])])
> >> >>>+    AS_IF(test x$HAVE_SYSTEMD_NEW = xyes, journal_lib_name=libsystemd,
> >> >>>+          journal_lib_name=libsystemd-journal)
> >> >>We do not have the same indentation in autotools code. We do not have a rules
> >> >>or coding style. So its safe to use the same indentation as code around.
> >> >>
> >> >>>+       PKG_CHECK_MODULES(JOURNALD, [$journal_lib_name],
> >> >>>+                         [AC_DEFINE_UNQUOTED([WITH_JOURNALD], 1,
> >> >>>+                                             [journald is available])])
> >> >>>        dnl Some older versions of pkg-config might not set these automatically
> >> >>>        dnl while setting CFLAGS and LIBS manually twice doesn't hurt.
> >> >>>        AC_SUBST([JOURNALD_CFLAGS])
> >> >>>-- 
> >> >>>2.4.3
> >> >>>
> >> >>LS
> >> >>https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
> >> >Thanks. There is a patch version 2.
> >> >And CI:
> >> >http://sssd-ci.duckdns.org/logs/commit/75/5517006fbf412360e1041c375c480bd5d475ab/1972/summary.html
> >> >Petr
> >> 
> >> >From e102832e05de81c04e329ddf9886b5f3702ed57f Mon Sep 17 00:00:00 2001
> >> >From: Petr Cech <pcech at redhat.com>
> >> >Date: Mon, 27 Jul 2015 12:52:49 -0400
> >> >Subject: [PATCH] BUILD: Repair dependecies on deprecated libraries
> >> >
> >> >Modules libsystemd-journal and libsystemd-login are
> >> >deprecated and "libsystemd" should be used instead
> >> >of them.
> >> >
> >> >Resolves:
> >> >https://fedorahosted.org/sssd/ticket/2733
> >> >---
> >> > contrib/ci/deps.sh      |  2 +-
> >> > src/external/systemd.m4 | 40 ++++++++++++++++++++++++++++------------
> >> > 2 files changed, 29 insertions(+), 13 deletions(-)
> >> >
> >> This version looks better.
> >> I hope you enjoyed autotools. :-)
> >> 
> >> ACK
> >> http://sssd-ci.duckdns.org/logs/job/19/72/summary.html
> >> 
> >> Failed build on rawhide is unrelated to your patch.
> >> http://sssd-ci.duckdns.org/logs/job/19/72/fedora_rawhide/ci-build-debug/ci-mock-result/build.log
> >
> >* master: cebf9d194dc99a1ef4acae3d63faa3eb65be695a
> This patch should be pushed also to 1.12 branch,
> because a build failed on debian testing
> http://sssd-ci.duckdns.org/logs/job/20/48/debian_testing/ci-build-debug/ci-configure.log
> 
> BTW it works on fedora because samba-client-libs requires systemd-compat-libs
> otherwise it would failed.
> 
> LS

OK, sssd-1-12: 4b5c6ec89b74f5d37164f4e2544a36a32abcd075



More information about the sssd-devel mailing list