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(a)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(a)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/c...
>
>* 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/c...
BTW it works on fedora because samba-client-libs requires systemd-compat-libs
otherwise it would failed.
LS