Hi,
this is a patch to https://fedorahosted.org/sssd/ticket/2733
This issue is caused by the change of packaging in libsystemd They said: "We merged libsystemd-journal.so, libsystemd-id128.so, libsystemd-login and libsystemd-daemon into a a single libsystemd.so to reduce code duplication and avoid cyclic dependencies (see below). The new library exports the same symbols as the old libraries, however with a different symbol version." More is available here: http://lists.freedesktop.org/archives/systemd-devel/2014-February/017146.htm...
So, the solution is checking the version of systemd and deciding which library we can use. More details in patch.
Thanks.
Petr
PS: Thanks to lslebodn :-) PPS: There are CI tests too http://sssd-ci.duckdns.org/logs/commit/bf/8f8703d47abf01d5f1a5f683c2fc1ee572...
On (28/07/15 11:58), Petr Cech wrote:
From fcf895ad8df932403dfc554a34ff0d8ceac72785 Mon Sep 17 00:00:00 2001 From: Petr Cech pcech@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-devdiff --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.htm...
+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
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@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-devdiff --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.htm...
+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_IFdnl 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/5517006fbf412360e1041c375c480bd5d4... Petr
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@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-devdiff --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.htm...
+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_IFdnl 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/5517006fbf412360e1041c375c480bd5d4... Petr
From e102832e05de81c04e329ddf9886b5f3702ed57f Mon Sep 17 00:00:00 2001 From: Petr Cech pcech@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-m...
LS
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@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-devdiff --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.htm...
+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_IFdnl 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/5517006fbf412360e1041c375c480bd5d4... Petr
From e102832e05de81c04e329ddf9886b5f3702ed57f Mon Sep 17 00:00:00 2001 From: Petr Cech pcech@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-m...
* master: cebf9d194dc99a1ef4acae3d63faa3eb65be695a
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@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-devdiff --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.htm...
+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_IFdnl 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/5517006fbf412360e1041c375c480bd5d4... Petr
From e102832e05de81c04e329ddf9886b5f3702ed57f Mon Sep 17 00:00:00 2001 From: Petr Cech pcech@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-m...
- 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-c...
BTW it works on fedora because samba-client-libs requires systemd-compat-libs otherwise it would failed.
LS
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@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-devdiff --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.htm...
+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_IFdnl 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/5517006fbf412360e1041c375c480bd5d4... Petr
From e102832e05de81c04e329ddf9886b5f3702ed57f Mon Sep 17 00:00:00 2001 From: Petr Cech pcech@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-m...
- 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-c...
BTW it works on fedora because samba-client-libs requires systemd-compat-libs otherwise it would failed.
LS
OK, sssd-1-12: 4b5c6ec89b74f5d37164f4e2544a36a32abcd075
sssd-devel@lists.fedorahosted.org