[SSSD] [PATCHES] RHEL6 build fixes

Lukas Slebodnik lslebodn at redhat.com
Wed Jun 18 10:39:52 UTC 2014


On (17/06/14 18:50), Nikolai Kondrashov wrote:
>On 06/17/2014 05:23 PM, Lukas Slebodnik wrote:
>>On (17/06/14 15:09), Nikolai Kondrashov wrote:
>>>+DISTCHECK_CONFIGURE_FLAGS = --with-ldb-lib-dir="$$dc_install_base"/lib/ldb \
>>>+                            --disable-dbus-tests \
>>>+                            --enable-all-experimental-features \
>>>+                            $(extra_distcheck_flags) \
>>>+                            $(EXTRA_DISTCHECK_CONFIGURE_FLAGS)
>>The prefix "EXTRA_" has special meaning in automake.
>>     e.g. EXTRA_LTLIBRARIES, EXTRA_PROGRAMS, EXTRA_progname_SOURCES ...
>>It would be better to avoid confusion and use different prefix.
>>     e.g. CUSTOM_DISTCHECK_CONFIGURE_FLAGS, MY_EXTRA_DISTCHECK_CONFIGURE_FLAGS
>
>Ah, right, thank you. I'll name it "AUX_DISTCHECK_CONFIGURE_FLAGS", if you
>don't mind.
>
>"CUSTOM" would imply that the value is a replacement and "MY" is unclear in
>that regard, also raising the question "whose?".
>
As you want.


>>>From cfe87bd3a6f0282eaeb04f313cde264a3794691b Mon Sep 17 00:00:00 2001
>>>From: Nikolai Kondrashov <Nikolai.Kondrashov at redhat.com>
>>>Date: Tue, 17 Jun 2014 11:58:26 +0300
>>>Subject: [PATCH 2/3] build: Propagate CIFS plugin status to distcheck
>>>
>>>Add "--disable-cifs-idmap-plugin" to DISTCHECK_CONFIGURE_FLAGS, if build
>>>of CIFS plugin was disabled. This fixes distcheck on RHEL6.
>>>---
>>>Makefile.am | 4 ++++
>>>1 file changed, 4 insertions(+)
>>>
>>>diff --git a/Makefile.am b/Makefile.am
>>>index 25b8b96..0445f4a 100644
>>>--- a/Makefile.am
>>>+++ b/Makefile.am
>>>@@ -7,6 +7,10 @@ if WITH_JOURNALD
>>>     extra_distcheck_flags += --with-syslog=journald
>>>endif
>>>
>>>+if !BUILD_CIFS_IDMAP_PLUGIN
>>>+    extra_distcheck_flags += --disable-cifs-idmap-plugin
>>>+endif
>>>+
>>>DISTCHECK_CONFIGURE_FLAGS = --with-ldb-lib-dir="$$dc_install_base"/lib/ldb \
>>>                             --disable-dbus-tests \
>>>                             --enable-all-experimental-features \
>>>--
>
>>     2) commit message doesn't corespond to patch.
>>        * BUILD_CIFS_IDMAP_PLUGIN is not related to RHEL6
>
>Sorry, I can't see any evidence to the above. Do you mean that I should
>explain how this fixes distcheck on RHEL6? Can you elaborate?
>
>>It is possible to do it with the 1st patch
>>     "build: Switch back to DISTCHECK_CONFIGURE_FLAGS"
>>
>>export DISTRO_CONFIGURE_FLAGS=--disable-cifs-idmap-plugin
>>./configure $DISTRO_CONFIGURE_FLAGS
>>make distcheck V=0 EXTRA_DISTCHECK_CONFIGURE_FLAGS=$DISTRO_CONFIGURE_FLAGS
>
>I would like to avoid that, if possible, as it would complicate the CI script.
I will give you some hints how to simplify invovcation of configure in CI in
another place of this mail.

>
>Can we avoid this problem altogether by simply ignoring the fact that the CIFS
>plugin cannot be built and disabling it, if it wasn't explicitly enabled with
>--enable-cifs-idmap-plugin?
>
>Like this:
>
>Options      | Plugin can be built | Outcome
>-------------+---------------------+----------
>none         | yes                 | built
>none         | no                  | not built
>--disable... | yes                 | not built
>--disable... | no                  | not built
>--enable...  | yes                 | built
>--enable...  | no                  | error
This would mean 3 state logic(yes, no, autodetect) in autoconf macro
AC_ARG_ENABLE for cifs-idmap-plugin with default value autodetect.
It is much more complicated solution than modification of CI script.

It has another disadvantage for package maintainer. They needn't notice new
feature in sssd, because new dependency will not be installed and sssd will be
build without this feature due to "autodetect" in configure script.


>    ../configure \
>        --build=x86_64-linux-gnu \
>        --datadir=/usr/share \
>        --disable-dependency-tracking \
>        --disable-rpath \
>        --disable-static \
>        --host=x86_64-linux-gnu \
>        --includedir=/usr/include \
>        --infodir=/usr/share/info \
>        --localstatedir=/var \
>        --mandir=/usr/share/man \
>        --prefix=/usr \
>        --sysconfdir=/etc \
>        --bindir=/usr/bin \
>        --enable-ldb-version-check \
>        --enable-nsslibdir=//lib64 \
>        --enable-pammoddir=//lib64/security \
>        --exec-prefix=/usr \
>        --libdir=/usr/lib64 \
>        --libexecdir=/usr/libexec \
>        --program-prefix= \
>        --sbindir=/usr/sbin \
>        --sharedstatedir=/var/lib \
>        --with-db-path=/var/lib/sss/db \
>        --with-init-dir=/etc/rc.d/init.d \
>        --with-krb5-rcache-dir=/var/cache/krb5rcache \
>        --with-mcache-path=/var/lib/sss/mc \
>        --with-pipe-path=/var/lib/sss/pipes \
>        --with-pubconf-path=/var/lib/sss/pubconf \
>        --disable-cifs-idmap-plugin \
>        --with-initscript=sysv
All configure options endig with dir can be removed. They will not influence
building, unit tests, valgrind test, code coverage. Distcheck use different
values anyway. For integration tests, sssd should be installed from rpms
on fedora/rhel. This is way how it is done in FreeIPA integration tests.

After 1st step.
>    ../configure \
>        --build=x86_64-linux-gnu \
        We don't use cross compilation. Default value is good.

>        --disable-dependency-tracking \
>        --disable-rpath \
>        --disable-static \
These arguments are not necessary but can be used.

>        --host=x86_64-linux-gnu \
        We don't use cross compilation. Default value is good.

>        --prefix=/usr \
>        --exec-prefix=/usr \
>        --program-prefix= \
        Situation with these 3 arguments is the same as with other "*dir"
        arguments. They will not influence current test.

>        --enable-ldb-version-check \
        can be used.

>        --with-db-path=/var/lib/sss/db \
>        --with-init-dir=/etc/rc.d/init.d \
>        --with-krb5-rcache-dir=/var/cache/krb5rcache \
>        --with-mcache-path=/var/lib/sss/mc \
>        --with-pipe-path=/var/lib/sss/pipes \
>        --with-pubconf-path=/var/lib/sss/pubconf \
         All previous arguments can influence only integration tests.

>        --disable-cifs-idmap-plugin
         must be used for rhel6

After reduction.
>    ../configure \
>        --disable-dependency-tracking \
>        --disable-rpath \
>        --disable-static \
>        --enable-ldb-version-check \
>        --disable-cifs-idmap-plugin

LS



More information about the sssd-devel mailing list