X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Futil-linux.git;a=blobdiff_plain;f=configure.ac;h=a840e20ee8be24b5d3da70560eddf52722620d64;hp=22e579c3916d4cb69326f5af401181be8e635480;hb=HEAD;hpb=10b53107b9ab03a96557a375d4e5920abb1cbb12 diff --git a/configure.ac b/configure.ac index 22e579c391..b360e448ea 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="17-May-2023" +LIBBLKID_DATE="24-Jan-2024" LIBBLKID_LT_MAJOR=1 LIBBLKID_LT_MINOR=1 LIBBLKID_LT_MICRO=0 @@ -42,6 +42,13 @@ LIBUUID_LT_MINOR=3 LIBUUID_LT_MICRO=0 LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR +dnl liblastlog2 version +LIBLASTLOG2_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" +LIBLASTLOG2_LT_MAJOR=2 +LIBLASTLOG2_LT_MINOR=0 +LIBLASTLOG2_LT_MICRO=0 +LIBLASTLOG2_VERSION_INFO=`expr $LIBLASTLOG2_LT_MAJOR + $LIBLASTLOG2_LT_MINOR`:$LIBLASTLOG2_LT_MICRO:$LIBLASTLOG2_LT_MINOR + dnl libmount version LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" LIBMOUNT_LT_MAJOR=1 @@ -85,6 +92,8 @@ AS_CASE([$prefix], ] ) +AC_SUBST([localstatedir]) + # default for old versions without $runstatedir AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run']) @@ -94,7 +103,6 @@ AS_CASE([$localstatedir:$runstatedir], [NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ], [runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])] ) - AC_SUBST([runstatedir]) @@ -124,6 +132,12 @@ AC_PROG_CC AM_PROG_CC_C_O AC_PROG_MKDIR_P AC_PROG_YACC +AC_PROG_SED + +# Don't use autotools integrated LEX/YACC support for libsmartcols +AC_PATH_PROG([FLEX], [flex]) +AC_PATH_PROG([BISON], [bison]) + AC_CANONICAL_HOST AC_C_CONST AC_C_VOLATILE @@ -156,6 +170,8 @@ UL_WARN_ADD([-Wunused-but-set-variable]) UL_WARN_ADD([-Wunused-parameter]) UL_WARN_ADD([-Wunused-result]) UL_WARN_ADD([-Wunused-variable]) +UL_WARN_ADD([-Wvla]) +UL_WARN_ADD([-Walloca]) AC_ARG_ENABLE([werror], AS_HELP_STRING([--enable-werror], [make all compiler warnings into errors]), @@ -176,9 +192,6 @@ AC_SUBST([BSD_WARN_CFLAGS]) UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS]) AC_SUBST([PYTHON_WARN_CFLAGS]) -UL_WARN_ADD([-Wno-unused-parameter], [NO_UNUSED_WARN_CFLAGS]) -AC_SUBST([NO_UNUSED_WARN_CFLAGS]) - AC_ARG_ENABLE([asan], AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]), @@ -276,6 +289,8 @@ UL_SET_ARCH([HPPA], [hppa*|parisc*]) AC_SYS_LARGEFILE AC_HEADER_ASSERT AC_STRUCT_TIMEZONE +UL_YEAR2038_INIT +AC_SYS_YEAR2038_RECOMMENDED dnl Don't forget to maintain alternatively allowed versions in autogen.sh! AM_GNU_GETTEXT_VERSION([0.18.3]) @@ -302,8 +317,6 @@ AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [ #endif ]) AC_CHECK_HEADERS([ \ - asm-generic/fcntl.h \ - asm/fcntl.h \ asm/io.h \ byteswap.h \ endian.h \ @@ -314,6 +327,8 @@ AC_CHECK_HEADERS([ \ inttypes.h \ lastlog.h \ libutil.h \ + linux/audit.h \ + linux/bpf.h \ linux/blkzoned.h \ linux/btrfs.h \ linux/capability.h \ @@ -321,6 +336,7 @@ AC_CHECK_HEADERS([ \ linux/falloc.h \ linux/fd.h \ linux/fiemap.h \ + linux/landlock.h \ linux/kcmp.h \ linux/net_namespace.h \ linux/nsfs.h \ @@ -339,6 +355,7 @@ AC_CHECK_HEADERS([ \ paths.h \ pty.h \ security/pam_appl.h \ + security/pam_modules.h \ shadow.h \ stdint.h \ stdio_ext.h \ @@ -480,6 +497,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ dnl Convert some ac_cv_header_* variables to have_* dnl +have_linux_audit_h=$ac_cv_header_linux_audit_h have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h have_linux_capability_h=$ac_cv_header_linux_capability_h @@ -494,10 +512,13 @@ have_pty_h=$ac_cv_header_pty_h have_security_openpam_h=$ac_cv_header_security_openpam_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 +have_security_pam_modules_h=$ac_cv_header_security_pam_modules_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_mntent_h=$ac_cv_header_mntent_h +have_sys_vfs_h=$ac_cv_header_sys_vfs_h +have_linux_bpf_h=$ac_cv_header_linux_bpf_h AS_CASE([$linux_os:$have_linux_version_h], [yes:no], @@ -584,6 +605,9 @@ AC_CHECK_FUNCS([ \ getttynam \ inotify_init \ jrand48 \ + landlock_create_ruleset \ + landlock_add_rule \ + landlock_restrict_self \ lchown \ lgetxattr \ llistxattr \ @@ -602,6 +626,8 @@ AC_CHECK_FUNCS([ \ posix_fadvise \ prctl \ qsort_r \ + reallocarray \ + renameat2 \ rpmatch \ scandirat \ sched_setattr \ @@ -641,6 +667,7 @@ AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no]) AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no]) AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes]) +AM_CONDITIONAL([HAVE_LINUX_LANDLOCK_H], [test "x$ac_cv_header_linux_landlock_h" = xyes]) have_setns_syscall="yes" UL_CHECK_SYSCALL([setns]) @@ -651,7 +678,6 @@ AS_IF([test "x$ul_cv_syscall_setns" = xno], [ UL_CHECK_SYSCALL([pidfd_open]) UL_CHECK_SYSCALL([pidfd_send_signal]) UL_CHECK_SYSCALL([close_range]) - UL_CHECK_SYSCALL([fsconfig]) UL_CHECK_SYSCALL([fsmount]) UL_CHECK_SYSCALL([fsopen]) @@ -693,13 +719,13 @@ AC_CHECK_FUNCS([timer_create], [AC_CHECK_LIB([rt], [timer_create], [ have_timer="yes" REALTIME_LIBS="-lrt" - AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt]) + AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt]) ],[ AC_SEARCH_LIBS([timer_create], [rt], [ AC_MSG_RESULT(yes) have_timer="yes" REALTIME_LIBS="-lrt -lpthread" - AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread]) + AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread]) ],[], [-lpthread] ) ])] @@ -714,13 +740,13 @@ AS_IF([test x"$have_timer" = xno], [ AC_CHECK_LIB([rtas], [rtas_get_sysparm], [ RTAS_LIBS="-lrtas" - AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [], + AC_DEFINE([HAVE_LIBRTAS], [1], [Define if librtas exists]) ]) AC_SUBST([RTAS_LIBS]) AC_CHECK_MEMBER([struct sockaddr.sa_len], - AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [], + AC_DEFINE([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [], [#include #include ]) @@ -782,7 +808,7 @@ AC_CHECK_DECL([IOC_OPAL_GET_STATUS], [#include ]) dnl Static compilation -m4_define([UL_STATIC_PROGRAMS], [blkid, fdisk, losetup, mount, nsenter, sfdisk, umount, unshare]) +m4_define([UL_STATIC_PROGRAMS], [blkid, fdisk, losetup, mount, nsenter, partx, sfdisk, umount, unshare]) AC_ARG_ENABLE([static-programs], [AS_HELP_STRING([--enable-static-programs=LIST], @@ -1199,6 +1225,39 @@ AS_IF([test "x$build_libuuid" = xyes], [ AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.]) ]) +dnl +dnl liblastlog2 +dnl +AC_ARG_ENABLE([liblastlog2], + AS_HELP_STRING([--disable-liblastlog2], [do not build liblastlog2 and lastlog2 utilities]), + [], [UL_DEFAULT_ENABLE([liblastlog2], [yes])] +) +UL_BUILD_INIT([liblastlog2]) + +have_sqlite3=no +AS_IF([test "x$build_liblastlog2" = xyes], [ + PKG_CHECK_MODULES([SQLITE3], [sqlite3], [have_sqlite3=yes], [have_sqlite3=no]) +]) +UL_REQUIRES_HAVE([liblastlog2], [sqlite3], [sqlite3 library]) +AC_SUBST([SQLITE3_LIBS]) + +AC_SUBST([LIBLASTLOG2_VERSION]) +AC_SUBST([LIBLASTLOG2_VERSION_INFO]) +AC_DEFINE_UNQUOTED([LIBLASTLOG2_VERSION], ["$LIBLASTLOG2_VERSION"], [liblastlog2 version string]) +AM_CONDITIONAL([BUILD_LIBLASTLOG2], [test "x$build_liblastlog2" = xyes]) +AM_CONDITIONAL([BUILD_LIBLASTLOG2_TESTS], [test "x$build_liblastlog2" = xyes && test "x$enable_static" = xyes]) + + +AC_ARG_ENABLE([pam_lastlog2], + AS_HELP_STRING([--disable-pam-lastlog2], [do not build PAM lastlog2 module]), + [], [UL_DEFAULT_ENABLE([pam_lastlog2], [check])] +) +UL_BUILD_INIT([pam_lastlog2]) +UL_REQUIRES_BUILD([pam_lastlog2], [liblastlog2]) +UL_REQUIRES_HAVE([pam_lastlog2], [security_pam_modules_h], [pam_modules.h header file]) +AM_CONDITIONAL([BUILD_PAM_LASTLOG2], [test "x$build_pam_lastlog2" = xyes]) + + dnl dnl libblkid dnl @@ -1231,6 +1290,7 @@ UL_BUILD_INIT([libmount]) UL_REQUIRES_BUILD([libmount], [libblkid]) UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function]) UL_REQUIRES_HAVE([libmount], [mntent_h], [mntent.h header file]) +UL_REQUIRES_HAVE([libmount], [sys_vfs_h], [sys/vfs.h header file]) AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes]) AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes && test "x$enable_static" = xyes]) AS_IF([test "x$build_libmount" = xyes], [ @@ -1628,7 +1688,7 @@ AS_IF([test "x$have_futimens" = xyes && test "x$have_inotify_init1" = xyes ], [ AC_ARG_ENABLE([plymouth_support], - AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sylogin(8) and agetty(8)]), + AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sulogin(8) and agetty(8)]), [], [enable_plymouth_support=check] ) UL_BUILD_INIT([plymouth_support]) @@ -1638,7 +1698,7 @@ UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag]) UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag]) AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes]) AS_IF([test "x$build_plymouth_support" = xyes ], [ - AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety]) + AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and agetty]) ]) @@ -1793,7 +1853,7 @@ AC_ARG_ENABLE([lsfd], UL_BUILD_INIT([lsfd]) UL_REQUIRES_LINUX([lsfd]) UL_REQUIRES_BUILD([lsfd], [libsmartcols]) -UL_REQUIRES_HAVE([lsfd], [linux_kcmp_h], [linux/kcmp.h header file]) +UL_REQUIRES_HAVE([lsfd], [linux_bpf_h], [linux/bpf.h header file]) AM_CONDITIONAL([BUILD_LSFD], [test "x$build_lsfd" = xyes]) AC_ARG_ENABLE([lslogins], @@ -1893,8 +1953,13 @@ UL_REQUIRES_LINUX([waitpid]) UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open]) AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes]) -UL_BUILD_INIT([enosys], [check]) +AC_ARG_ENABLE([enosys], + AS_HELP_STRING([--disable-enosys], [do not build enosys]), + [], [UL_DEFAULT_ENABLE([enosys], [check])] +) +UL_BUILD_INIT([enosys]) UL_REQUIRES_LINUX([enosys]) +UL_REQUIRES_HAVE([enosys], [linux_audit_h], [linux/audit.h header file]) AS_IF([test "x$build_enosys" = xyes], [ AC_MSG_CHECKING([for valid audit arch]) AC_COMPILE_IFELSE( @@ -1906,7 +1971,9 @@ AS_IF([test "x$build_enosys" = xyes], [ ]) AM_CONDITIONAL([BUILD_ENOSYS], [test "x$build_enosys" = xyes]) -UL_BUILD_INIT([lsclocks], [yes]) +UL_BUILD_INIT([lsclocks], [check]) +UL_REQUIRES_LINUX([lsclocks]) +UL_REQUIRES_BUILD([lsclocks], [libsmartcols]) AM_CONDITIONAL([BUILD_LSCLOCKS], [test "x$build_lsclocks" = xyes]) UL_BUILD_INIT([getopt], [yes]) @@ -2099,6 +2166,15 @@ dnl earlier than 2.x. UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function]) AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes]) +AC_ARG_ENABLE([exch], + AS_HELP_STRING([--disable-exch], [do not build exch]), + [], [UL_DEFAULT_ENABLE([exch], [check])] +) +UL_BUILD_INIT([exch]) +UL_REQUIRES_LINUX([exch]) +UL_REQUIRES_SYSCALL_CHECK([exch], [UL_CHECK_SYSCALL([renameat2])]) +AM_CONDITIONAL([BUILD_EXCH], [test "x$build_exch" = xyes]) + UL_BUILD_INIT([fincore], [check]) UL_REQUIRES_LINUX([fincore]) UL_REQUIRES_BUILD([fincore], [libsmartcols]) @@ -2157,7 +2233,8 @@ UL_REQUIRES_HAVE([scriptlive], [pty], [openpty function (libutil)]) AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes]) -UL_BUILD_INIT([col], [yes]) +UL_BUILD_INIT([col], [check]) +UL_REQUIRES_COMPILE([col], [#include ], [__GLIBC__], [building for glibc]) AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes]) UL_BUILD_INIT([colcrt], [yes]) @@ -2346,6 +2423,16 @@ AS_IF([test "x$enable_login_stat_mail" = xyes], [ AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?]) ]) +AC_ARG_ENABLE([login-lastlog], + AS_HELP_STRING([--enable-login-lastlog], [program login writes lastlog entries]), + [], [enable_login_lastlogin=no] +) + +AS_IF([test "x$enable_login_lastlogin" != xno], [ + AC_DEFINE([USE_LOGIN_LASTLOG], + [1], + [Define if program login writes lastlog entries]) +]) AC_ARG_ENABLE([nologin], AS_HELP_STRING([--disable-nologin], [do not build nologin]), @@ -2425,9 +2512,9 @@ UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library]) AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes]) # build_schedutils= is just configure-only variable to control -# ionice, taskset and chrt +# ionice, taskset, coresched and chrt AC_ARG_ENABLE([schedutils], - AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]), + AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset, coresched]), [], [UL_DEFAULT_ENABLE([schedutils], [check])] ) @@ -2470,6 +2557,14 @@ UL_REQUIRES_SYSCALL_CHECK([taskset], AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes]) +UL_ENABLE_ALIAS([coresched], [schedutils]) +UL_BUILD_INIT([coresched]) +UL_REQUIRES_SYSCALL_CHECK([coresched], + [UL_CHECK_SYSCALL([prctl])], + [prctl]) +AM_CONDITIONAL([BUILD_CORESCHED], [test "x$build_coresched" = xyes]) + + have_schedsetter=no AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes], [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes]) @@ -2571,6 +2666,18 @@ AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) ]) +AC_ARG_WITH([tmpfilesdir], + AS_HELP_STRING([--with-tmpfilesdir=DIR], [directory for tmpfiles. See tmpfiles.d(5) for details]), + [], [ + AS_IF([test "x$have_systemd" = xyes], [ + PKG_CHECK_VAR([with_tmpfilesdir], [systemd], [tmpfilesdir], + [], + [with_tmpfilesdir=no]) + ]) +]) +AS_IF([test "x$with_tmpfilesdir" != "xno"], [ + AC_SUBST([tmpfilesdir], [$with_tmpfilesdir]) +]) AC_ARG_WITH([smack], AS_HELP_STRING([--with-smack], [build with SMACK support]), @@ -2801,7 +2908,7 @@ AS_IF([test "x$with_cryptsetup" = xno], [ 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]) + AC_DEFINE([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup]) ]) AS_IF([test "x$with_cryptsetup" = xdlopen], [ LIBS="-ldl $LIBS" @@ -2914,8 +3021,10 @@ AC_MSG_RESULT([ Bash completions: ${with_bashcompletiondir} Systemd support: ${have_systemd} Systemd unitdir: ${with_systemdsystemunitdir} + tmpfilesdir: ${with_tmpfilesdir} libeconf support: ${have_econf} Btrfs support: ${have_btrfs} + lastlog2 support: ${build_liblastlog2} Wide-char support: ${build_widechar} libcryptsetup support: ${have_cryptsetup}