X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Futil-linux.git;a=blobdiff_plain;f=configure.ac;h=1428dc893e273ad8980ce4df5dd5b708dafb0049;hp=e6cfd4605cce28c7e15bdba1b03a01409d4b9a1a;hb=f8d76efe97f15f496c472b5ad545209e092d02ef;hpb=6df5acf970852a94b254800dc69569bd1f4c9ae8 diff --git a/configure.ac b/configure.ac index e6cfd4605c..1428dc893e 100644 --- a/configure.ac +++ b/configure.ac @@ -29,7 +29,7 @@ PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{ dnl libblkid version LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" -LIBBLKID_DATE="06-Nov-2018" +LIBBLKID_DATE="21-Jan-2020" LIBBLKID_LT_MAJOR=1 LIBBLKID_LT_MINOR=1 LIBBLKID_LT_MICRO=0 @@ -101,6 +101,14 @@ AS_CASE([$libdir], ) AC_SUBST([usrlib_execdir]) +# static configuration maintaned by packages (e.g. /usr/lib) +AC_ARG_VAR([SYSCONFSTATICDIR], + [Path to static system configuration, default ${prefix}/lib]) +AS_IF([test "x$SYSCONFSTATICDIR" = x], + [sysconfstaticdir='${prefix}/lib'], + [sysconfstaticdir=$SYSCONFSTATICDIR]) +AC_SUBST([sysconfstaticdir]) + AM_PROG_CC_C_O AC_PROG_MKDIR_P @@ -155,9 +163,9 @@ AC_ARG_ENABLE([asan], ) AS_IF([test "x$enable_asan" = xyes], [ UL_WARN_ADD([-fsanitize=address]) + ASAN_LDFLAGS="-fsanitize=address" ]) - - +AC_SUBST([ASAN_LDFLAGS]) dnl libtool-2 LT_INIT @@ -172,6 +180,7 @@ m4_ifndef([PKG_PROG_PKG_CONFIG], environment variable AL_OPTS="-I/other/macro/dir" before running ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])]) PKG_PROG_PKG_CONFIG +PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig']) GTK_DOC_CHECK([1.10]) AC_PATH_PROG([XSLTPROC], [xsltproc]) @@ -242,6 +251,7 @@ AC_CHECK_HEADERS([ \ linux/version.h \ linux/securebits.h \ linux/net_namespace.h \ + linux/capability.h \ locale.h \ mntent.h \ net/if.h \ @@ -319,8 +329,8 @@ AC_CHECK_HEADERS([security/openpam.h], [], [], [ ]) AC_CHECK_HEADERS([langinfo.h], - [AM_CONDITIONAL([HAVE_LANGINFO], [true])], - [AM_CONDITIONAL([HAVE_LANGINFO], [false])]) + [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])], + [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])]) AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @@ -381,6 +391,7 @@ have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h have_linux_raw_h=$ac_cv_header_linux_raw_h have_linux_securebits_h=$ac_cv_header_linux_securebits_h +have_linux_capability_h=$ac_cv_header_linux_capability_h have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h @@ -388,6 +399,7 @@ have_security_openpam_h=$ac_cv_header_security_openpam_h have_shadow_h=$ac_cv_header_shadow_h have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h have_utmpx_h=$ac_cv_header_utmpx_h +have_pty_h=$ac_cv_header_pty_h AS_CASE([$linux_os:$have_linux_version_h], [yes:no], @@ -465,6 +477,7 @@ AC_CHECK_FUNCS([ \ err \ errx \ explicit_bzero \ + fmemopen \ fsync \ utimensat \ getdomainname \ @@ -484,6 +497,8 @@ AC_CHECK_FUNCS([ \ nanosleep \ ntp_gettime \ personality \ + pidfd_open \ + pidfd_send_signal \ posix_fadvise \ prctl \ qsort_r \ @@ -526,6 +541,9 @@ AS_IF([test "x$ul_cv_syscall_setns" = xno], [ have_setns_syscall="no" ]) +UL_CHECK_SYSCALL([pidfd_open]) +UL_CHECK_SYSCALL([pidfd_send_signal]) + AC_CHECK_FUNCS([isnan], [], [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])] [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])] @@ -600,10 +618,7 @@ AS_IF([test x"$have_dirfd" = xno], [ #include ]) ]) -AS_CASE([$have_dirfd:$have_ddfd], - [no:no], - [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])] -) +AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes -o "x$have_ddfd" = xyes]) AC_MSG_CHECKING([whether program_invocation_short_name is defined]) @@ -731,7 +746,7 @@ AS_CASE([$scanf_cv_alloc_modifier], have_scanf_alloc_modifier=no] ) - +have_pty=no AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]), [], [with_util=auto] ) @@ -742,6 +757,13 @@ AS_IF([test "x$with_util" = xno], [ UL_CHECK_LIB([util], [openpty]) ]) +AS_IF([test "x$have_pty_h" = xyes -a "x$have_sys_signalfd_h" = xyes -a "x$have_util" = xyes], [ + AM_CONDITIONAL([HAVE_PTY], [true]) + AC_DEFINE([HAVE_PTY], [1], [have PTY support]) + have_pty=yes +], [ + AM_CONDITIONAL([HAVE_PTY], [false]) +]) AC_CHECK_TYPES([union semun], [], [], [[ #include @@ -758,6 +780,7 @@ UL_REQUIRES_COMPILE([widechar], [[ #include #include #include + #include ]], [[ wchar_t wc; wint_t w; @@ -788,8 +811,9 @@ AC_CHECK_DECLS([CPU_ALLOC], [], [], [[ ]]) # on Solaris, you can't mix and match standards, since we use c99 -# aparently at this stage, XOPEN_SOURCE will conflict. As workaround, +# apparently at this stage, XOPEN_SOURCE will conflict. As workaround, # check for crypt.h and use that without XOPEN_SOURCE. +have_crypt=no AC_CHECK_HEADERS([crypt.h]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_CRYPT_H @@ -800,7 +824,10 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #endif ]], [[ char *c = crypt("abc","pw"); -]])],[],[ +]])],[ + have_libcrypt=no + have_crypt=yes +],[ LIBS="$LIBS -lcrypt" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_CRYPT_H @@ -814,8 +841,9 @@ char *c = crypt("abc","pw"); ]])],[ AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?]) have_libcrypt=yes + have_crypt=yes ],[ - AC_MSG_ERROR([crypt() is not available]) + AC_MSG_WARN([crypt() is not available]) ]) ]) AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes]) @@ -1071,6 +1099,7 @@ AC_ARG_ENABLE([libblkid], ) UL_BUILD_INIT([libblkid]) UL_REQUIRES_HAVE([libblkid], [openat], [openat functions]) +UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function]) AC_SUBST([LIBBLKID_DATE]) AC_SUBST([LIBBLKID_VERSION]) AC_SUBST([LIBBLKID_VERSION_INFO]) @@ -1092,6 +1121,7 @@ AC_ARG_ENABLE([libmount], UL_BUILD_INIT([libmount]) UL_REQUIRES_BUILD([libmount], [libblkid]) UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier]) +UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function]) AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes]) AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes]) AS_IF([test "x$build_libmount" = xyes], [ @@ -1168,6 +1198,7 @@ enable_cfdisk=$enable_fdisks UL_BUILD_INIT([fdisk]) UL_REQUIRES_HAVE([fdisk], [openat], [openat functions]) +UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function]) UL_REQUIRES_BUILD([fdisk], [libfdisk]) UL_REQUIRES_BUILD([fdisk], [libsmartcols]) AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes]) @@ -1175,6 +1206,7 @@ AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes]) UL_BUILD_INIT([sfdisk]) UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions]) +UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function]) UL_REQUIRES_BUILD([sfdisk], [libfdisk]) UL_REQUIRES_BUILD([sfdisk], [libsmartcols]) AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes]) @@ -1267,7 +1299,11 @@ UL_BUILD_INIT([findfs], [check]) UL_REQUIRES_BUILD([findfs], [libblkid]) AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes]) -UL_BUILD_INIT([wipefs], [check]) +AC_ARG_ENABLE([wipefs], + AS_HELP_STRING([--disable-wipefs], [do not build wipefs]), + [], [UL_DEFAULT_ENABLE([wipefs], [check])] +) +UL_BUILD_INIT([wipefs]) UL_REQUIRES_BUILD([wipefs], [libblkid]) UL_REQUIRES_BUILD([wipefs], [libsmartcols]) AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes]) @@ -1366,6 +1402,7 @@ AC_ARG_ENABLE([unshare], UL_BUILD_INIT([unshare]) UL_REQUIRES_LINUX([unshare]) UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])]) +UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file]) AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes]) AC_CHECK_FUNCS([unshare]) @@ -1398,10 +1435,23 @@ AC_ARG_ENABLE([setpriv], ) UL_BUILD_INIT([setpriv]) UL_REQUIRES_LINUX([setpriv]) -UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file]) +UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file]) +UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file]) UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library]) AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes]) +PKG_CHECK_MODULES([PCRE], [libpcre2-8], [have_pcre=yes], [have_pcre=no]) +AS_IF([test "x$have_pcre" = xyes ], [ + AC_DEFINE([HAVE_PCRE], [1], [Define if libpcre2 is available]) +]) +AM_CONDITIONAL([HAVE_PCRE], [test "x$have_pcre" = xyes]) + +AC_ARG_ENABLE([hardlink], + AS_HELP_STRING([--disable-hardlink], [do not build hardlink]), + [], [UL_DEFAULT_ENABLE([hardlink], [check])] +) +UL_BUILD_INIT([hardlink]) +AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes]) AC_ARG_ENABLE([eject], AS_HELP_STRING([--disable-eject], [do not build eject]), @@ -1429,7 +1479,7 @@ AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [ AC_ARG_ENABLE([plymouth_support], - AS_HELP_STRING([--disable-plymouth_support], [don not care about plymouth in sylogin(8) and agetty(8)]), + AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sylogin(8) and agetty(8)]), [], [enable_plymouth_support=check] ) UL_BUILD_INIT([plymouth_support]) @@ -1496,6 +1546,27 @@ UL_BUILD_INIT([hwclock]) UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux]) AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes]) +AC_ARG_ENABLE([hwclock_cmos], + AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]), + [], [enable_hwclock_cmos=check] +) +UL_BUILD_INIT([hwclock_cmos]) +UL_REQUIRES_BUILD([hwclock_cmos], [hwclock]) +UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*]) +AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes]) +AS_IF([test "x$build_hwclock_cmos" = xyes ], [ + AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.]) +]) + +AC_ARG_ENABLE([hwclock_gplv3], + AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]), + [], [enable_hwclock_gplv3=yes] +) +AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes]) +AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [ + AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock]) +]) + UL_BUILD_INIT([mkfs], [yes]) AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes]) @@ -1642,6 +1713,7 @@ AC_ARG_ENABLE([switch_root], UL_BUILD_INIT([switch_root]) UL_REQUIRES_LINUX([switch_root]) UL_REQUIRES_HAVE([switch_root], [openat], [openat function]) +UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function]) AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes]) @@ -1656,7 +1728,7 @@ AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes]) UL_BUILD_INIT([flock], [check]) -UL_REQUIRES_HAVE([flock], [timer], [timer_create function]) +UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function]) AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes]) @@ -1696,6 +1768,28 @@ AC_ARG_ENABLE([ipcs], UL_BUILD_INIT([ipcs]) AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes]) + +AC_ARG_ENABLE([irqtop], + AS_HELP_STRING([--disable-irqtop], [do not build irqtop]), + [], [UL_DEFAULT_ENABLE([irqtop], [yes])] +) +UL_BUILD_INIT([irqtop]) +UL_REQUIRES_LINUX([irqtop]) +UL_REQUIRES_BUILD([irqtop], [libsmartcols]) +UL_REQUIRES_HAVE([irqtop], [open_memstream], [open_memstream function]) +UL_REQUIRES_HAVE([irqtop], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library]) +AM_CONDITIONAL([BUILD_IRQTOP], [test "x$build_irqtop" = xyes]) + +AC_ARG_ENABLE([lsirq], + AS_HELP_STRING([--disable-lsirq], [do not build lsirq]), + [], [UL_DEFAULT_ENABLE([lsirq], [yes])] +) +UL_BUILD_INIT([lsirq]) +UL_REQUIRES_LINUX([lsirq]) +UL_REQUIRES_BUILD([lsirq], [libsmartcols]) +AM_CONDITIONAL([BUILD_LSIRQ], [test "x$build_lsirq" = xyes]) + + UL_BUILD_INIT([choom], [check]) UL_REQUIRES_LINUX([choom]) AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes]) @@ -1776,12 +1870,16 @@ UL_REQUIRES_LINUX([setarch]) AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes]) UL_BUILD_INIT([script], [check]) -UL_REQUIRES_HAVE([script], [sys_signalfd_h], [sys/signalfd.h header]) +UL_REQUIRES_HAVE([script], [pty]) AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes]) UL_BUILD_INIT([scriptreplay], [yes]) AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes]) +UL_BUILD_INIT([scriptlive], [check]) +UL_REQUIRES_HAVE([scriptlive], [pty]) +AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes]) + UL_BUILD_INIT([col], [yes]) AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes]) @@ -1888,6 +1986,7 @@ AC_ARG_ENABLE([newgrp], [], [UL_DEFAULT_ENABLE([newgrp], [no])] ) UL_BUILD_INIT([newgrp]) +UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function]) AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes]) @@ -1917,7 +2016,7 @@ AC_ARG_ENABLE([chfn-chsh-password], ) AC_ARG_ENABLE([chfn-chsh], - AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]), + AS_HELP_STRING([--disable-chfn-chsh], [do not build chfn and chsh]), [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])] ) UL_BUILD_INIT([chfn_chsh]) @@ -1984,6 +2083,7 @@ AC_ARG_ENABLE([sulogin], [], [UL_DEFAULT_ENABLE([sulogin], [check])] ) UL_BUILD_INIT([sulogin]) +UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function]) UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header]) AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes]) @@ -2025,6 +2125,7 @@ AC_ARG_ENABLE([more], ) UL_BUILD_INIT([more]) UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries]) +UL_REQUIRES_LINUX([more]) AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes]) @@ -2362,6 +2463,39 @@ AS_IF([test "x$enable_colors_default" = xyes], [ ]) +AC_ARG_WITH([cryptsetup], + AS_HELP_STRING([--with-cryptsetup], [compile with cryptsetup support]), + [], [with_cryptsetup=no] +) + +AS_IF([test "x$with_cryptsetup" = xno], [ + AM_CONDITIONAL([HAVE_CRYPTSETUP], [false]) +], [ + PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup], + [AC_DEFINE([HAVE_CRYPTSETUP], [1], [Define if cryptsetup is available]) + UL_PKG_STATIC([CRYPTSETUP_LIBS_STATIC], [libcryptsetup]) + AM_CONDITIONAL([HAVE_CRYPTSETUP], [true]) + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CRYPTSETUP_CFLAGS $CFLAGS" + SAVE_LIBS="$LIBS" + LIBS="$CRYPTSETUP_LIBS $LIBS" + AC_CHECK_LIB([cryptsetup], [crypt_activate_by_signed_key], [ + AC_DEFINE_UNQUOTED([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup]) + ]) + CFLAGS="$SAVE_CFLAGS" + LIBS="$SAVE_LIBS" + have_cryptsetup=yes], + [have_cryptsetup=no + AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])]) + + AS_CASE([$with_cryptsetup:$have_cryptsetup], + [yes:no], [AC_MSG_WARN([cryptsetup selected but libcryptsetup not found])] + ) +]) +AC_SUBST([CRYPTSETUP_LIBS]) +AC_SUBST([CRYPTSETUP_LIBS_STATIC]) + + AC_ARG_VAR([SUID_CFLAGS], [CFLAGS used for binaries which are usually with the suid bit]) AC_ARG_VAR([SUID_LDFLAGS], @@ -2431,6 +2565,7 @@ AC_MSG_RESULT([ suid cflags: ${SUID_CFLAGS} ldflags: ${LDFLAGS} suid ldflags: ${SUID_LDFLAGS} + ASAN enabled: ${enable_asan} Python: ${PYTHON} Python version: ${PYTHON_VERSION}