[SSSD] [PATCHES] Improve portability of autoconf and automake
Sumit Bose
sbose at redhat.com
Tue Sep 3 10:15:19 UTC 2013
On Mon, Sep 02, 2013 at 07:04:22PM +0200, Lukas Slebodnik wrote:
> ehlo
>
> Patches are attached.
I haven't tested to patches so far but already have some comments.
bye,
Sumit
>
> LS
> From 6e3b789f4b24198b2ec4b40fb09e8b97e578044a Mon Sep 17 00:00:00 2001
> From: Lukas Slebodnik <lslebodn at redhat.com>
> Date: Sat, 31 Aug 2013 01:12:01 +0200
> Subject: [PATCH 2/9] AUTOTOOLS: add check for type intptr_t
>
> We check whether HAVE_INTPTR_T is defined in definition of macro
> discard_const_p, but autootols macro AC_CHECK_TYPE did not generate it.
> ---
> src/external/sizes.m4 | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/src/external/sizes.m4 b/src/external/sizes.m4
> index 53df61dedc3ae748c50ca9a3935632087834155d..1018d846016541043d81fb2a53609ad9c562071a 100644
> --- a/src/external/sizes.m4
> +++ b/src/external/sizes.m4
> @@ -37,8 +37,7 @@ AC_CHECK_SIZEOF(off_t)
> AC_CHECK_SIZEOF(size_t)
> AC_CHECK_SIZEOF(ssize_t)
>
> +AC_CHECK_TYPES([intptr_t])
> AC_CHECK_TYPE(intptr_t, long long)
> AC_CHECK_TYPE(uintptr_t, unsigned long long)
> AC_CHECK_TYPE(ptrdiff_t, unsigned long long)
I guess we missed the change of AC_CHECK_TYPE in Autoconf 2.14 where the
style used above still worked. If I understand the docs correctly it
should still work, but you should remove the old AC_CHECK_TYPE for
intptr_t.
Would you mind to update the other old-style AC_CHECK_TYPE usages as
well or open a trac ticket to do so?
> -
> -
> --
> 1.8.3.1
>
> From af2721b0120e9b48e09a9372362a57b8de5f1bf2 Mon Sep 17 00:00:00 2001
> From: Lukas Slebodnik <lslebodn at redhat.com>
> Date: Sat, 31 Aug 2013 05:36:49 +0200
> Subject: [PATCH 4/9] AUTOTOOLS: Add missing AC_MSG_RESULT
>
> AC_MSG_RESULT was not used everywhere after AC_MSG_CHECKING.
> Therefore two lines from configure output was mixed in some cases.
> ---
> src/external/krb5.m4 | 3 ++-
> src/external/nsupdate.m4 | 6 ++++--
> src/external/pac_responder.m4 | 1 +
> src/external/python.m4 | 3 ++-
> 4 files changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/src/external/krb5.m4 b/src/external/krb5.m4
> index bdbd71ba1f395eb4f78047f75841729e0289ae81..9cb161d7208c108f744eb34b8e08eb6b3a0fc267 100644
> --- a/src/external/krb5.m4
> +++ b/src/external/krb5.m4
> @@ -16,8 +16,9 @@ if test -x "$KRB5_CONFIG"; then
> KRB5_LIBS="`$KRB5_CONFIG --libs`"
> AC_MSG_RESULT(yes)
> else
> + AC_MSG_RESULT([no])
> if test x$KRB5_PASSED_LIBS = x; then
> - AC_MSG_ERROR(no. Please install MIT kerberos devel package)
> + AC_MSG_ERROR(Please install MIT kerberos devel package)
can you add [] ?
> fi
> fi
>
> diff --git a/src/external/nsupdate.m4 b/src/external/nsupdate.m4
> index 9ccff615927664afd7d9a6412159791ff79c5485..b7048d58a3f50dfd25c20754f71386646e2e3dce 100644
> --- a/src/external/nsupdate.m4
> +++ b/src/external/nsupdate.m4
> @@ -9,9 +9,11 @@ if test -x "$NSUPDATE"; then
> AC_MSG_RESULT([yes])
> AC_DEFINE_UNQUOTED([HAVE_NSUPDATE_REALM], 1, [Whether to use the 'realm' directive with nsupdate])
> else
> - AC_MSG_WARN([no. Will build without the 'realm' directive])
> + AC_MSG_RESULT([no])
> + AC_MSG_WARN([Will build without the 'realm' directive])
> fi
>
> else
> - AC_MSG_ERROR([no. nsupdate is not available])
> + AC_MSG_RESULT([no])
> + AC_MSG_ERROR([nsupdate is not available])
> fi
> diff --git a/src/external/pac_responder.m4 b/src/external/pac_responder.m4
> index 733241a1322f4338be0345b2bb969b7a7c5c35ce..f4f4a34e3256d18dc6387e388a1fbebb223f3566 100644
> --- a/src/external/pac_responder.m4
> +++ b/src/external/pac_responder.m4
> @@ -25,6 +25,7 @@ then
> AC_MSG_RESULT(yes)
> ;;
> *)
> + AC_MSG_RESULT(no)
> AC_MSG_WARN([Cannot build authdata plugin with this version of
> MIT Kerberos, please use 1.9.x or later])
> esac
> diff --git a/src/external/python.m4 b/src/external/python.m4
> index 5f48bc92618b2fbc23610f67f86e38f659977c5a..cfe9961c75bbd191b78c8cdc21008b11b179548f 100644
> --- a/src/external/python.m4
> +++ b/src/external/python.m4
> @@ -23,7 +23,8 @@ dnl versions of python
> ' -L' + sysconfig.get_config_var('LIBDIR')\"`"
> AC_MSG_RESULT([yes])
> else
> - AC_MSG_ERROR([no. Please install python devel package])
> + AC_MSG_RESULT([no])
> + AC_MSG_ERROR([Please install python devel package])
> fi
> ])
>
> --
> 1.8.3.1
>
> From 2e939d50ce4837a76bb4850e6fb6b1c1435c27c1 Mon Sep 17 00:00:00 2001
> From: Lukas Slebodnik <lslebodn at redhat.com>
> Date: Sat, 31 Aug 2013 12:17:38 +0200
> Subject: [PATCH 8/9] AUTOTOOLS: Use pkg-config to detect libraries.
>
> We used pkg-config only as a fallback if header files was not found,
> but detection of library failed in case of available header file and
> linking problem (missing -Ldir).
>
> This patch prefers pkg-config.
Would it make sense to add SSS_AC_EXPAND_LIB_DIR to the non-pkg-config
paths as well?
> From faa431369b66684024272392da507d374695aaea Mon Sep 17 00:00:00 2001
> From: Lukas Slebodnik <lslebodn at redhat.com>
> Date: Sat, 31 Aug 2013 15:32:39 +0200
> Subject: [PATCH 9/9] AUTOTOOLS: Refactor unicode library detection
>
> If $libdir is not in default library path libunistring cannot be
> found. (pkg-config can not be used in this case).
> This patch helps to search libunistring in "$libdir" directory.
>
> In refactoring part, indentation was updated to be more readable
> and some duplicated parts were removed.
> ---
> configure.ac | 15 +++++++--------
> src/build_macros.m4 | 13 +++++++++++++
> src/external/libunistring.m4 | 31 ++++++++++++++++++++++++-------
> 3 files changed, 44 insertions(+), 15 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index d16054efae73e8844ac236d0220f274684c5ce8d..c8803b16bc8bf95c6902a18fd5a9be3965d9c59e 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -158,16 +158,15 @@ m4_include([src/external/libndr_nbt.m4])
>
> WITH_UNICODE_LIB
> if test x$unicode_lib = xlibunistring; then
> - m4_include([src/external/libunistring.m4])
> - AC_DEFINE_UNQUOTED(HAVE_LIBUNISTRING, 1, [Using libunistring for unicode])
> - UNICODE_LIBS=-lunistring
> - AC_SUBST(UNICODE_LIBS)
> + m4_include([src/external/libunistring.m4])
> + AC_DEFINE_UNQUOTED(HAVE_LIBUNISTRING, 1, [Using libunistring for unicode])
> + UNICODE_LIBS=$UNISTRING_LIBS
> else
> - m4_include([src/external/glib.m4])
> - AC_DEFINE_UNQUOTED(HAVE_GLIB2, 1, [Using libunistring for unicode])
> - UNICODE_LIBS=$GLIB2_LIBS
> - AC_SUBST(UNICODE_LIBS)
> + m4_include([src/external/glib.m4])
> + AC_DEFINE_UNQUOTED(HAVE_GLIB2, 1, [Using libunistring for unicode])
Can you fix the old libunistring/glib copy-and-paste error?
> + UNICODE_LIBS=$GLIB2_LIBS
> fi
> +AC_SUBST(UNICODE_LIBS)
>
> WITH_LIBNL
>
More information about the sssd-devel
mailing list