[PATCH][CK] autoconf fixes, separate pamlibdir variable, path
expansion at make time
Doug Goldstein
cardoe at gentoo.org
Tue Apr 3 09:31:37 PDT 2007
Michael Biebl wrote:
> The last commit 5f3b3a7aec1c2ef81dfe28d6167049ef82e81860 to ConsoleKit
> had the unpleasant side effect, that you are now forced to install
> libck_connector to /lib (as the pam modules are in /lib/security),
> even if you want to install libck_connector to /usr/lib (as it
> dependencies, like libdbus, are in /usr/lib).
Thanks for this. I was told that originally the files belonged in /lib
so I just moved everything back there keeping it as simple of a change
as possible.
>
> The attached patch does the following:
> - Use a separate $pam-module-dir variable for the pam module
> - Instead of defining a custom $slibdir variable, just use the
> standard $libdir variable specified by autoconf
> - Use the standard autoconf $docdir variable (Add AC_PREREQ(2.59) for
> that).
> - Drop AS_AC_EXPAND macro and remove AC_DEFINE_UNQUOTED for dir
> variables.
> + Build the init script at make time using sed
> + Use defines in src/Makefile.am to pass the variables to gcc at make
> time
> - Consistently use AC_HELP_STRING everywhere
> - Remove/Replace deprecated macros:
> + AM_INIT_AUTOMAKE takes the package name and version number from
> AC_INIT
> + AM_CONFIG_HEADER -> AC_CONFIG_HEADERS
> + AC_OUTPUT -> AC_CONFIG_FILES
>
> Patch is tested and make distcheck works.
>
> Please review and apply.
>
> Michael
> ------------------------------------------------------------------------
>
> diff --git a/acinclude.m4 b/acinclude.m4
> index f23b6ca..67a9bc8 100644
> --- a/acinclude.m4
> +++ b/acinclude.m4
> @@ -1,47 +1,3 @@
> -dnl as-ac-expand.m4 0.2.0
> -dnl autostars m4 macro for expanding directories using configure's prefix
> -dnl thomas at apestaart.org
> -
> -dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR)
> -dnl example
> -dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
> -dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local
> -
> -AC_DEFUN([AS_AC_EXPAND],
> -[
> - EXP_VAR=[$1]
> - FROM_VAR=[$2]
> -
> - dnl first expand prefix and exec_prefix if necessary
> - prefix_save=$prefix
> - exec_prefix_save=$exec_prefix
> -
> - dnl if no prefix given, then use /usr/local, the default prefix
> - if test "x$prefix" = "xNONE"; then
> - prefix="$ac_default_prefix"
> - fi
> - dnl if no exec_prefix given, then use prefix
> - if test "x$exec_prefix" = "xNONE"; then
> - exec_prefix=$prefix
> - fi
> -
> - full_var="$FROM_VAR"
> - dnl loop until it doesn't change anymore
> - while true; do
> - new_full_var="`eval echo $full_var`"
> - if test "x$new_full_var" = "x$full_var"; then break; fi
> - full_var=$new_full_var
> - done
> -
> - dnl clean up
> - full_var=$new_full_var
> - AC_SUBST([$1], "$full_var")
> -
> - dnl restore prefix and exec_prefix
> - prefix=$prefix_save
> - exec_prefix=$exec_prefix_save
> -])
> -
>
> dnl EXTRA_COMPILE_WARNINGS
> dnl Turn on many useful compiler warnings
> diff --git a/configure.ac b/configure.ac
> index cc96ee6..cb21703 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1,14 +1,14 @@
> dnl -*- mode: m4 -*-
>
> +AC_PREREQ(2.59)
> AC_INIT([ConsoleKit],
> [0.2.1],
> - [mccann at jhu.edu])
> + [mccann at jhu.edu],
> + [ConsoleKit])
>
> -AC_CONFIG_SRCDIR(src/ck-manager.c)
> +AC_CONFIG_SRCDIR([src/ck-manager.c])
>
> -AM_INIT_AUTOMAKE(ConsoleKit, 0.2.1)
> -
> -AM_CONFIG_HEADER(config.h)
> +AM_INIT_AUTOMAKE
>
> AM_MAINTAINER_MODE
>
> @@ -105,11 +105,11 @@ dnl - Are we specifying a different dbus root ?
> dnl ---------------------------------------------------------------------------
>
> AC_ARG_WITH(dbus-sys,
> - [AC_HELP_STRING([--with-dbus-sys=<dir>],
> - [where D-BUS system.d directory is])])
> + [AC_HELP_STRING([--with-dbus-sys=<dir>],
> + [where D-BUS system.d directory is])])
> AC_ARG_WITH(dbus-services,
> - [AC_HELP_STRING([--with-dbus-services=<dir>],
> - [where D-BUS services directory is])])
> + [AC_HELP_STRING([--with-dbus-services=<dir>],
> + [where D-BUS services directory is])])
> if ! test -z "$with_dbus_sys" ; then
> DBUS_SYS_DIR="$with_dbus_sys"
> else
> @@ -118,31 +118,20 @@ fi
> AC_SUBST(DBUS_SYS_DIR)
>
> dnl ---------------------------------------------------------------------------
> -dnl Expand vars
> -dnl ---------------------------------------------------------------------------
> -
> -AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
> -AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
> -AS_AC_EXPAND(DATADIR, $datadir)
> -AS_AC_EXPAND(BINDIR, $bindir)
> -AS_AC_EXPAND(SBINDIR, $sbindir)
> -AS_AC_EXPAND(LIBDIR, $libdir)
> -AS_AC_EXPAND(LIBEXECDIR, $libexecdir)
> -
> -dnl ---------------------------------------------------------------------------
> dnl - PID file
> dnl ---------------------------------------------------------------------------
>
> -AC_ARG_WITH(pid-file, [ --with-pid-file=<file> pid file])
> +AC_ARG_WITH(pid-file,
> + [AC_HELP_STRING([--with-pid-file=<file>],
> + [pid file location])])
>
> if ! test -z "$with_pid_file"; then
> CONSOLE_KIT_PID_FILE=$with_pid_file
> else
> - CONSOLE_KIT_PID_FILE=${LOCALSTATEDIR}/run/ConsoleKit/pid
> + CONSOLE_KIT_PID_FILE=${localstatedir}/run/ConsoleKit/pid
> fi
>
> AC_SUBST(CONSOLE_KIT_PID_FILE)
> -AC_DEFINE_UNQUOTED(CONSOLE_KIT_PID_FILE, "$CONSOLE_KIT_PID_FILE", [pid file])
>
> dnl ---------------------------------------------------------------------------
> dnl Figure out what tools backend to build
> @@ -172,77 +161,69 @@ have_pam=no
> AC_CHECK_LIB(pam, pam_getenv, have_pam=yes)
> AM_CONDITIONAL(HAVE_PAM, test x$have_pam = xyes)
> if test "x$have_pam" = "xyes"; then
> - PAM_LIBS="${PAM_LIBS} -lpam"
> + PAM_LIBS="${PAM_LIBS} -lpam"
> fi
> AC_SUBST(HAVE_PAM)
> AC_SUBST(PAM_LIBS)
>
> -AC_CHECK_HEADERS(security/pam_modutil.h security/pam_ext.h)
> +AC_CHECK_HEADERS([security/pam_modutil.h security/pam_ext.h])
> AC_CHECK_LIB(pam, pam_syslog, [AC_DEFINE(HAVE_PAM_SYSLOG, [], [Define to 1 if you have the pam_syslog function])])
>
> # Check if we should build the PAM module
> msg_pam_module=no
> -AC_ARG_ENABLE(pam-module, [AC_HELP_STRING([--enable-pam-module], [build PAM module])],, enable_pam_module=no)
> +AC_ARG_ENABLE(pam-module,
> + [AC_HELP_STRING([--enable-pam-module],
> + [build PAM module])],
> + , enable_pam_module=no)
> if test "x$enable_pam_module" = "xyes"; then
> - if test "x$have_pam" = "xno"; then
> - AC_MSG_ERROR([--enable-pam-module requires PAM but PAM was not found])
> - fi
> - AC_DEFINE(ENABLE_PAM_MODULE, [], [Set if we build PAM module])
> - msg_pam_module=yes
> + if test "x$have_pam" = "xno"; then
> + AC_MSG_ERROR([--enable-pam-module requires PAM but PAM was not found])
> + fi
> + AC_DEFINE(ENABLE_PAM_MODULE, [], [Set if we build PAM module])
> + msg_pam_module=yes
> fi
> AM_CONDITIONAL(ENABLE_PAM_MODULE, test "x$enable_pam_module" = "xyes")
>
> dnl ---------------------------------------------------------------------------
> -dnl - Install directory for connector
> -dnl ---------------------------------------------------------------------------
> -
> -AC_ARG_WITH(slibdir,
> - [AC_HELP_STRING([--with-slibdir=<dir>],
> - [directory to install system libraries])])
> -if ! test -z "$with_slibdir"; then
> - SLIBDIR="$with_slibdir"
> -else
> - SLIBDIR="$libdir"
> -fi
> -AC_SUBST(SLIBDIR)
> -
> -dnl ---------------------------------------------------------------------------
> -dnl - Where should we put documentation ?
> +dnl - Install directory for PAM security module
> dnl ---------------------------------------------------------------------------
>
> -AC_ARG_WITH(doc-dir,
> - [AC_HELP_STRING([--with-doc-dir=<dir>],
> - [directory to install documentation])])
> -if ! test -z "$with_doc_dir"; then
> - DOCDIR="$with_doc_dir/ConsoleKit-$VERSION"
> +AC_ARG_WITH(pam-module-dir,
> + [AC_HELP_STRING([--with-pam-module-dir=<dir>],
> + [directory to install PAM security module])])
> +if ! test -z "$with_pam_module_dir"; then
> + PAM_MODULE_DIR="$with_pam_module_dir"
> else
> - DOCDIR="$datadir/doc/ConsoleKit-$VERSION"
> + PAM_MODULE_DIR="/lib/security"
> fi
> -AC_SUBST(DOCDIR)
> +AC_SUBST(PAM_MODULE_DIR)
>
> dnl ---------------------------------------------------------------------------
> dnl - DocBook Documentation
> dnl ---------------------------------------------------------------------------
>
> -AC_ARG_ENABLE(docbook-docs, [ --enable-docbook-docs build documentation (requires xmlto)],enable_docbook_docs=$enableval,enable_docbook_docs=no)
> +AC_ARG_ENABLE(docbook-docs,
> + [AC_HELP_STRING([--enable-docbook-docs],
> + [build documentation (requires xmlto)])],
> + enable_docbook_docs=$enableval,enable_docbook_docs=no)
> AC_PATH_PROG(XMLTO, xmlto, no)
> AC_MSG_CHECKING([whether to build DocBook documentation])
> if test x$XMLTO = xno ; then
> - have_docbook=no
> + have_docbook=no
> else
> - have_docbook=yes
> + have_docbook=yes
> fi
> if test x$enable_docbook_docs = xauto ; then
> - if test x$have_docbook = xno ; then
> - enable_docbook_docs=no
> - else
> - enable_docbook_docs=yes
> - fi
> + if test x$have_docbook = xno ; then
> + enable_docbook_docs=no
> + else
> + enable_docbook_docs=yes
> + fi
> fi
> if test x$enable_docbook_docs = xyes; then
> - if test x$have_docbook = xno; then
> - AC_MSG_ERROR([Building DocBook docs explicitly required, but DocBook not found])
> - fi
> + if test x$have_docbook = xno; then
> + AC_MSG_ERROR([Building DocBook docs explicitly required, but DocBook not found])
> + fi
> fi
> AM_CONDITIONAL(DOCBOOK_DOCS_ENABLED, test x$enable_docbook_docs = xyes)
> AC_MSG_RESULT(yes)
> @@ -254,14 +235,15 @@ dnl ---------------------------------------------------------------------------
> # Turn on the additional warnings last, so -Werror doesn't affect other tests.
>
> AC_ARG_ENABLE(more-warnings,
> - AC_HELP_STRING([--enable-more-warnings], [Maximum compiler warnings]),
> -set_more_warnings="$enableval",[
> -if test -d $srcdir/.git; then
> - set_more_warnings=yes
> -else
> - set_more_warnings=no
> -fi
> -])
> + [AC_HELP_STRING([--enable-more-warnings],
> + [Maximum compiler warnings])],
> + set_more_warnings="$enableval",[
> + if test -d $srcdir/.git; then
> + set_more_warnings=yes
> + else
> + set_more_warnings=no
> + fi
> + ])
> AC_MSG_CHECKING(for more warnings)
> if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
> AC_MSG_RESULT(yes)
> @@ -294,15 +276,18 @@ fi
> #
> # Enable Debug
> #
> -AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug=[no/yes]], [turn on debugging])],, enable_debug=yes)
> +AC_ARG_ENABLE(debug,
> + [AC_HELP_STRING([--enable-debug],
> + [turn on debugging])],
> + , enable_debug=yes)
> if test "$enable_debug" = "yes"; then
> - DEBUG_CFLAGS="-DG_ENABLE_DEBUG"
> + DEBUG_CFLAGS="-DG_ENABLE_DEBUG"
> else
> - if test "x$enable_debug" = "xno"; then
> - DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
> - else
> - DEBUG_CFLAGS=""
> - fi
> + if test "x$enable_debug" = "xno"; then
> + DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
> + else
> + DEBUG_CFLAGS=""
> + fi
> fi
> AC_SUBST(DEBUG_CFLAGS)
>
> @@ -317,13 +302,12 @@ AC_SUBST(LDFLAGS)
>
> # Files
>
> -AC_OUTPUT([
> +AC_CONFIG_FILES([
> Makefile
> src/Makefile
> tools/Makefile
> tools/linux/Makefile
> data/Makefile
> -data/ConsoleKit
> doc/Makefile
> doc/ConsoleKit.xml
> libck-connector/Makefile
> @@ -331,19 +315,22 @@ libck-connector/ck-connector.pc
> pam-ck-connector/Makefile
> ])
>
> +AC_CONFIG_HEADERS([config.h])
> +
> +AC_OUTPUT
> +
> echo "
> ConsoleKit $VERSION
> ========================
>
> prefix: ${prefix}
> exec_prefix: ${exec_prefix}
> - libdir: ${LIBDIR}
> - bindir: ${BINDIR}
> - sbindir: ${SBINDIR}
> - slibdir: ${SLIBDIR}
> - sysconfdir: ${SYSCONFDIR}
> - localstatedir: ${LOCALSTATEDIR}
> - datadir: ${DATADIR}
> + libdir: ${libdir}
> + bindir: ${bindri}
> + sbindir: ${sbindir}
> + sysconfdir: ${sysconfdir}
> + localstatedir: ${localstatedir}
> + datadir: ${datadir}
> source code location: ${srcdir}
> compiler: ${CC}
> cflags: ${CFLAGS}
> @@ -352,6 +339,7 @@ echo "
>
> dbus-1 system.d dir: ${DBUS_SYS_DIR}
> Build backend: ${CK_BACKEND}
> + PAM module dir: ${PAM_MODULE_DIR}
> Build PAM module: ${msg_pam_module}
> Build docs: ${enable_docbook_docs}
> "
> diff --git a/data/ConsoleKit.in b/data/ConsoleKit.in
> old mode 100755
> new mode 100644
> index 3bc6ef0..83360cd
> --- a/data/ConsoleKit.in
> +++ b/data/ConsoleKit.in
> @@ -10,10 +10,10 @@
> #
>
> # Sanity checks.
> -[ -x @SBINDIR@/console-kit-daemon ] || exit 0
> +[ -x @sbindir@/console-kit-daemon ] || exit 0
>
> # Source function library.
> -. @SYSCONFDIR@/rc.d/init.d/functions
> +. @sysconfdir@/rc.d/init.d/functions
>
> # so we can rearrange this easily
> processname=console-kit-daemon
> @@ -26,7 +26,7 @@ start() {
> daemon --check $servicename $processname
> RETVAL=$?
> echo
> - [ $RETVAL -eq 0 ] && touch @LOCALSTATEDIR@/lock/subsys/$servicename
> + [ $RETVAL -eq 0 ] && touch @localstatedir@/lock/subsys/$servicename
> }
>
> stop() {
> @@ -36,7 +36,7 @@ stop() {
> RETVAL=$?
> echo
> if [ $RETVAL -eq 0 ]; then
> - rm -f @LOCALSTATEDIR@/lock/subsys/$servicename
> + rm -f @localstatedir@/lock/subsys/$servicename
> rm -f @CONSOLE_KIT_PID_FILE@
> fi
> }
> @@ -58,7 +58,7 @@ case "$1" in
> start
> ;;
> condrestart)
> - if [ -f @LOCALSTATEDIR@/lock/subsys/$servicename ]; then
> + if [ -f @localstatedir@/lock/subsys/$servicename ]; then
> stop
> start
> fi
> diff --git a/data/Makefile.am b/data/Makefile.am
> index 9c8f0ab..f9216c4 100644
> --- a/data/Makefile.am
> +++ b/data/Makefile.am
> @@ -9,10 +9,23 @@ initd_SCRIPTS= \
> ConsoleKit \
> $(NULL)
>
> +
> +ConsoleKit: ConsoleKit.in Makefile
> + $(edit) $< >$@
> +
> +edit = sed \
> + -e 's|@sbindir[@]|$(sbindir)|g' \
> + -e 's|@sysconfdir[@]|$(sysconfdir)|g' \
> + -e 's|@localstatedir[@]|$(localstatedir)|g' \
> + -e 's|@CONSOLE_KIT_PID_FILE[@]|$(CONSOLE_KIT_PID_FILE)|g'
> +
> EXTRA_DIST = \
> $(dbusconf_DATA) \
> + $(SCRIPT_IN_FILES) \
> $(NULL)
>
> MAINTAINERCLEANFILES = \
> *~ \
> Makefile.in
> +
> +CLEANFILES = ConsoleKit
> diff --git a/libck-connector/Makefile.am b/libck-connector/Makefile.am
> index e6801fd..757c41e 100644
> --- a/libck-connector/Makefile.am
> +++ b/libck-connector/Makefile.am
> @@ -5,8 +5,7 @@ INCLUDES = \
> $(LIBDBUS_CFLAGS) \
> $(NULL)
>
> -slibdir = $(SLIBDIR)
> -slib_LTLIBRARIES = \
> +lib_LTLIBRARIES = \
> libck-connector.la \
> $(NULL)
>
> diff --git a/libck-connector/ck-connector.pc.in b/libck-connector/ck-connector.pc.in
> index eacf5ce..a93d7a9 100644
> --- a/libck-connector/ck-connector.pc.in
> +++ b/libck-connector/ck-connector.pc.in
> @@ -1,4 +1,4 @@
> -libdir=@SLIBDIR@
> +libdir=@libdir@
> includedir=@prefix@/include
>
> Name: ck-connector
> diff --git a/pam-ck-connector/Makefile.am b/pam-ck-connector/Makefile.am
> index 35a4eae..eab4864 100644
> --- a/pam-ck-connector/Makefile.am
> +++ b/pam-ck-connector/Makefile.am
> @@ -7,8 +7,7 @@ INCLUDES = \
> -I$(top_builddir)/libck-connector \
> $(NULL)
>
> -pamlibdir = $(SLIBDIR)/security
> -
> +pamlibdir = $(PAM_MODULE_DIR)
> pamlib_LTLIBRARIES = \
> pam_ck_connector.la \
> $(NULL)
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 5f18cc7..6d128ce 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -17,6 +17,7 @@ INCLUDES = \
> -DLIBEXECDIR=\""$(libexecdir)"\" \
> -DDATADIR=\""$(datadir)"\" \
> -DSYSCONFDIR=\""$(sysconfdir)"\" \
> + -DCONSOLE_KIT_PID_FILE=\""$(CONSOLE_KIT_PID_FILE)"\" \
> $(WARN_CFLAGS) \
> $(DEBUG_CFLAGS) \
> $(DBUS_CFLAGS) \
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> hal mailing list
> hal at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/hal
>
>
> !DSPAM:4611583d183722050414703!
>
More information about the hal
mailing list