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 <pc...@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
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
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 <pc...@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(-)

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..4c284459669a92838eaa9a8b5ff1ff1449915db8 100644
--- a/src/external/systemd.m4
+++ b/src/external/systemd.m4
@@ -1,25 +1,41 @@
+dnl There are no module libsystemd-journal and libsystem-login
+dnl up systemd version 209
+PKG_CHECK_EXISTS([libsystemd],
+                 [HAVE_LIBSYSTEMD=yes],
+                 [HAVE_LIBSYSTEMD=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_LIBSYSTEMD = xyes],
+      [login_lib_name=libsystemd],
+      [login_lib_name=libsystemd-login])
+
 AM_COND_IF([HAVE_SYSTEMD],
-           [PKG_CHECK_MODULES([SYSTEMD_LOGIN], [libsystemd-login],
-            [AC_DEFINE_UNQUOTED(HAVE_SYSTEMD_LOGIN, 1, [Build with libsystemdlogin support])],
-            [AC_MSG_NOTICE([Build without libsystemd-login 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])])])
 
 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])])
-       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])
-       AC_SUBST([JOURNALD_LIBS])
+    AS_IF([test x$HAVE_LIBSYSTEMD = xyes],
+          [journal_lib_name=libsystemd],
+          [journal_lib_name=libsystemd-journal])
+
+    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])
+    AC_SUBST([JOURNALD_LIBS])
 ])
-- 
2.4.3

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to