From: Arnout Vandecappelle (Essensium/Mind) Date: Thu, 22 Aug 2019 22:29:51 +0000 (+0200) Subject: Revert "package/util-linux: build programs and libraries in separate packages" X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1fa9b0d26717db17518e07932fc16da93279175b;p=buildroot.git Revert "package/util-linux: build programs and libraries in separate packages" This commit was pushed accidentally, it was not yet ready for prime time. A better way to implement it was proposed. In addition, it still introduces a circular dependency: systemd -> polkit -> libglib2 -> util-linux -> systemd This reverts commit 335c77b667c68975b65edd0ac0d6ec214a9cb1c6. --- diff --git a/package/eudev/Config.in b/package/eudev/Config.in index 2df94fb68c..2220265a55 100644 --- a/package/eudev/Config.in +++ b/package/eudev/Config.in @@ -6,7 +6,6 @@ config BR2_PACKAGE_EUDEV depends on !BR2_STATIC_LIBS # kmod select BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_UTIL_LINUX - select BR2_PACKAGE_UTIL_LINUX_LIBS select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_KMOD help diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk index 21860643ae..78d0ea670e 100644 --- a/package/eudev/eudev.mk +++ b/package/eudev/eudev.mk @@ -18,8 +18,7 @@ EUDEV_CONF_OPTS = \ --enable-kmod \ --enable-blkid -# eudev requires only the util-linux libraries at build time -EUDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux-libs kmod +EUDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux kmod EUDEV_PROVIDES = udev ifeq ($(BR2_ROOTFS_MERGED_USR),) diff --git a/package/systemd/Config.in b/package/systemd/Config.in index e8444e4e0b..ad72a269ef 100644 --- a/package/systemd/Config.in +++ b/package/systemd/Config.in @@ -23,7 +23,6 @@ menuconfig BR2_PACKAGE_SYSTEMD select BR2_PACKAGE_DBUS # runtime dependency only select BR2_PACKAGE_LIBCAP select BR2_PACKAGE_UTIL_LINUX - select BR2_PACKAGE_UTIL_LINUX_LIBS select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_BINARIES diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk index 20a6c1b714..b6aac6dc53 100644 --- a/package/systemd/systemd.mk +++ b/package/systemd/systemd.mk @@ -9,14 +9,12 @@ SYSTEMD_SITE = $(call github,systemd,systemd,v$(SYSTEMD_VERSION)) SYSTEMD_LICENSE = LGPL-2.1+, GPL-2.0+ (udev), Public Domain (few source files, see README) SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README SYSTEMD_INSTALL_STAGING = YES - -# systemd requires only the util-linux libraries at build time SYSTEMD_DEPENDENCIES = \ $(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \ host-gperf \ kmod \ libcap \ - util-linux-libs \ + util-linux \ $(TARGET_NLS_DEPENDENCIES) SYSTEMD_PROVIDES = udev diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in index a76ffeb518..39eb2c03a0 100644 --- a/package/util-linux/Config.in +++ b/package/util-linux/Config.in @@ -9,9 +9,6 @@ menuconfig BR2_PACKAGE_UTIL_LINUX if BR2_PACKAGE_UTIL_LINUX -config BR2_PACKAGE_UTIL_LINUX_LIBS - bool - config BR2_PACKAGE_UTIL_LINUX_LIBBLKID bool "libblkid" depends on BR2_USE_MMU # fork() @@ -44,9 +41,6 @@ config BR2_PACKAGE_UTIL_LINUX_LIBUUID help Install libuuid. -config BR2_PACKAGE_UTIL_LINUX_PROGRAMS - bool - config BR2_PACKAGE_UTIL_LINUX_BINARIES bool "basic set" depends on BR2_USE_MMU # fork() @@ -55,7 +49,6 @@ config BR2_PACKAGE_UTIL_LINUX_BINARIES select BR2_PACKAGE_UTIL_LINUX_LIBFDISK select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS select BR2_PACKAGE_UTIL_LINUX_LIBUUID - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Install the basic set of util-linux binaries. @@ -74,19 +67,16 @@ config BR2_PACKAGE_UTIL_LINUX_BINARIES config BR2_PACKAGE_UTIL_LINUX_AGETTY bool "agetty" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Alternative linux getty config BR2_PACKAGE_UTIL_LINUX_BFS bool "bfs" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help SCO bfs filesystem support config BR2_PACKAGE_UTIL_LINUX_CAL bool "cal" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Display a calendar, or some part of it @@ -97,7 +87,6 @@ config BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam depends on BR2_USE_MMU # linux-pam select BR2_PACKAGE_LINUX_PAM - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Change login shell, real user name and information @@ -107,13 +96,11 @@ comment "chfn/chsh needs a uClibc or glibc toolchain w/ wchar, locale, dynamic l config BR2_PACKAGE_UTIL_LINUX_CHMEM bool "chmem" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Sets a particular size or range of memory online or offline config BR2_PACKAGE_UTIL_LINUX_CRAMFS bool "cramfs utilities" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS select BR2_PACKAGE_ZLIB help Utilities for compressed ROM file system (fsck.cramfs, @@ -125,19 +112,16 @@ config BR2_PACKAGE_UTIL_LINUX_EJECT select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Eject removable media config BR2_PACKAGE_UTIL_LINUX_FALLOCATE bool "fallocate" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Preallocate space to a file config BR2_PACKAGE_UTIL_LINUX_FDFORMAT bool "fdformat" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Low-level format a floppy disk @@ -147,7 +131,6 @@ config BR2_PACKAGE_UTIL_LINUX_FSCK select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Check and repair a linux filesystem @@ -158,43 +141,36 @@ config BR2_PACKAGE_UTIL_LINUX_HARDLINK config BR2_PACKAGE_UTIL_LINUX_HWCLOCK bool "hwclock" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Query or set the hardware clock (RTC) config BR2_PACKAGE_UTIL_LINUX_IPCRM bool "ipcrm" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Remove certain IPC resources config BR2_PACKAGE_UTIL_LINUX_IPCS bool "ipcs" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Show information on IPC facilities config BR2_PACKAGE_UTIL_LINUX_KILL bool "kill" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Send a signal to a process config BR2_PACKAGE_UTIL_LINUX_LAST bool "last" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Show a listing of last logged in users config BR2_PACKAGE_UTIL_LINUX_LINE bool "line" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Read one line config BR2_PACKAGE_UTIL_LINUX_LOGGER bool "logger" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Enter messages into the system log @@ -206,7 +182,6 @@ config BR2_PACKAGE_UTIL_LINUX_LOGIN depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam depends on BR2_USE_MMU # fork(), linux-pam select BR2_PACKAGE_LINUX_PAM - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Begin a session on the system @@ -218,7 +193,6 @@ config BR2_PACKAGE_UTIL_LINUX_LOSETUP bool "losetup" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Set up and control loop devices @@ -226,7 +200,6 @@ config BR2_PACKAGE_UTIL_LINUX_LSLOGINS bool "lslogins" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Display information about known users in the system @@ -234,20 +207,17 @@ config BR2_PACKAGE_UTIL_LINUX_LSMEM bool "lsmem" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help List the ranges of available memory with their online status config BR2_PACKAGE_UTIL_LINUX_MESG bool "mesg" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Control write access to your terminal config BR2_PACKAGE_UTIL_LINUX_MINIX bool "minix" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Minix filesystem support @@ -255,7 +225,6 @@ config BR2_PACKAGE_UTIL_LINUX_MORE bool "more" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help File perusal filter for crt viewing @@ -265,7 +234,6 @@ config BR2_PACKAGE_UTIL_LINUX_MOUNT select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Mount/unmount filesystems @@ -275,19 +243,16 @@ config BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help See if a directory is a mountpoint config BR2_PACKAGE_UTIL_LINUX_NEWGRP bool "newgrp" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Log in to a new group config BR2_PACKAGE_UTIL_LINUX_NOLOGIN bool "nologin" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Politely refuse a login @@ -295,7 +260,6 @@ config BR2_PACKAGE_UTIL_LINUX_NSENTER bool "nsenter" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Enter the namespaces of another process @@ -306,7 +270,6 @@ config BR2_PACKAGE_UTIL_LINUX_PG bool "pg" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Browse pagewise through text files @@ -316,25 +279,21 @@ config BR2_PACKAGE_UTIL_LINUX_PARTX select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS select BR2_PACKAGE_UTIL_LINUX_LIBUUID - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Partition utilities (addpart, delpart, partx) config BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT bool "pivot_root" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Change the root filesystem config BR2_PACKAGE_UTIL_LINUX_RAW bool "raw" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Build a linux raw character device config BR2_PACKAGE_UTIL_LINUX_RENAME bool "rename" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Rename files @@ -342,7 +301,6 @@ config BR2_PACKAGE_UTIL_LINUX_RFKILL bool "rfkill" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Tool for enabling and disabling wireless devices. This new implementation is based upon, and backward compatible with, @@ -355,7 +313,6 @@ config BR2_PACKAGE_UTIL_LINUX_RUNUSER depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam depends on BR2_USE_MMU # fork(), linux-pam select BR2_PACKAGE_LINUX_PAM - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Run a command with substitute user and group ID (does not need to ask for a password, because it may be executed by the root @@ -367,21 +324,18 @@ comment "runuser needs a uClibc or glibc toolchain w/ wchar, locale, dynamic lib config BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS bool "scheduling utilities" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Scheduling utilities (chrt, ionice, taskset) config BR2_PACKAGE_UTIL_LINUX_SETPRIV bool "setpriv" select BR2_PACKAGE_LIBCAP_NG - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Run a program with different Linux privilege settings config BR2_PACKAGE_UTIL_LINUX_SETTERM bool "setterm" select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Set terminal attributes @@ -392,7 +346,6 @@ config BR2_PACKAGE_UTIL_LINUX_SU depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam depends on BR2_USE_MMU # fork(), linux-pam select BR2_PACKAGE_LINUX_PAM - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Run a command with substitute user and group ID @@ -403,41 +356,35 @@ comment "su needs a uClibc or glibc toolchain w/ wchar, locale, dynamic library" config BR2_PACKAGE_UTIL_LINUX_SULOGIN bool "sulogin" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Single-user login config BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT bool "switch_root" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Switch to another filesystem as the root of the mount tree config BR2_PACKAGE_UTIL_LINUX_TUNELP bool "tunelp" select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Set various parameters for the lp device config BR2_PACKAGE_UTIL_LINUX_UL bool "ul" select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Do underlining config BR2_PACKAGE_UTIL_LINUX_UNSHARE bool "unshare" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Run program with some namespaces unshared from parent config BR2_PACKAGE_UTIL_LINUX_UTMPDUMP bool "utmpdump" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Dump UTMP and WTMP files in raw format @@ -445,21 +392,18 @@ config BR2_PACKAGE_UTIL_LINUX_UUIDD bool "uuidd" depends on BR2_USE_MMU # fork() select BR2_PACKAGE_UTIL_LINUX_LIBUUID - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help UUID generation daemon config BR2_PACKAGE_UTIL_LINUX_VIPW bool "vipw" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Edit the password, group, shadow-password or shadow-group file config BR2_PACKAGE_UTIL_LINUX_WALL bool "wall" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Send a message to everybody's terminal @@ -467,13 +411,11 @@ config BR2_PACKAGE_UTIL_LINUX_WDCTL bool "wdctl" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Shows hardware watchdog status config BR2_PACKAGE_UTIL_LINUX_WRITE bool "write" - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Send a message to another user @@ -481,7 +423,6 @@ config BR2_PACKAGE_UTIL_LINUX_ZRAMCTL bool "zramctl" depends on BR2_USE_MMU # libsmartcols select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS - select BR2_PACKAGE_UTIL_LINUX_PROGRAMS help Set up and control zram devices diff --git a/package/util-linux/su.pam b/package/util-linux/su.pam new file mode 100644 index 0000000000..84b18605ce --- /dev/null +++ b/package/util-linux/su.pam @@ -0,0 +1,15 @@ +auth sufficient pam_rootok.so +auth required pam_wheel.so use_uid +auth required pam_env.so +auth required pam_unix.so nullok + +account required pam_unix.so + +password required pam_unix.so nullok + +# session required pam_selinux.so close +session required pam_limits.so +session required pam_env.so +session required pam_unix.so +session optional pam_lastlog.so +# session required pam_selinux.so open diff --git a/package/util-linux/util-linux-libs/util-linux-libs.hash b/package/util-linux/util-linux-libs/util-linux-libs.hash deleted file mode 120000 index dc1b2f866a..0000000000 --- a/package/util-linux/util-linux-libs/util-linux-libs.hash +++ /dev/null @@ -1 +0,0 @@ -../util-linux.hash \ No newline at end of file diff --git a/package/util-linux/util-linux-libs/util-linux-libs.mk b/package/util-linux/util-linux-libs/util-linux-libs.mk deleted file mode 100644 index 48d3373bb4..0000000000 --- a/package/util-linux/util-linux-libs/util-linux-libs.mk +++ /dev/null @@ -1,91 +0,0 @@ -################################################################################ -# -# util-linux-libs -# -################################################################################ - -UTIL_LINUX_LIBS_VERSION = $(UTIL_LINUX_VERSION) -UTIL_LINUX_LIBS_SOURCE = $(UTIL_LINUX_SOURCE) -UTIL_LINUX_LIBS_SITE = $(UTIL_LINUX_SITE) -UTIL_LINUX_LIBS_DL_SUBDIR = $(UTIL_LINUX_DL_SUBDIR) - -# README.licensing claims that some files are GPL-2.0 only, but this is not true. -# Some files are GPL-3.0+ but only in tests. rfkill uses an ISC-style license. -UTIL_LINUX_LIBS_LICENSE = LGPL-2.1+ (libblkid, libfdisk, libmount, libsmartcols), BSD-3-Clause (libuuid) -UTIL_LINUX_LIBS_LICENSE_FILES = README.licensing \ - Documentation/licenses/COPYING.BSD-3-Clause \ - Documentation/licenses/COPYING.LGPL-2.1-or-later -UTIL_LINUX_LIBS_INSTALL_STAGING = YES -# Prevent installing the libraries twice on TARGET_DIR -UTIL_LINUX_LIBS_INSTALL_TARGET = $(if $(BR2_PACKAGE_UTIL_LINUX_PROGRAMS),NO,YES) -UTIL_LINUX_LIBS_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) -UTIL_LINUX_LIBS_CONF_OPTS += \ - --disable-rpath \ - --disable-makeinstall-chown -UTIL_LINUX_LIBS_LINK_LIBS = $(TARGET_NLS_LIBS) - -# systemd depends on util-linux so we enable systemd support -# (which needs systemd to be installed) -UTIL_LINUX_LIBS_CONF_OPTS += \ - --without-systemd \ - --with-systemdsystemunitdir=no - -HOST_UTIL_LINUX_LIBS_DEPENDENCIES = host-pkgconf -HOST_UTIL_LINUX_LIBS_CONF_OPTS = --disable-makeinstall-chown - -# We also don't want the host-python dependency -HOST_UTIL_LINUX_LIBS_CONF_OPTS += --without-python - -# Prevent the installation from attempting to move shared libraries from -# ${usrlib_execdir} (/usr/lib) to ${libdir} (/lib), since both paths are -# the same when merged usr is in use. -ifeq ($(BR2_ROOTFS_MERGED_USR),y) -UTIL_LINUX_LIBS_CONF_OPTS += --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib -endif - -# Unfortunately, the util-linux does LIBS="" at the end of its -# configure script. So we have to pass the proper LIBS value when -# calling the configure script to make configure tests pass properly, -# and then pass it again at build time. -UTIL_LINUX_LIBS_CONF_ENV += LIBS="$(UTIL_LINUX_LIBS_LINK_LIBS)" -UTIL_LINUX_LIBS_MAKE_OPTS += LIBS="$(UTIL_LINUX_LIBS_LINK_LIBS)" - -# libmount optionally uses selinux -ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT)$(BR2_PACKAGE_LIBSELINUX),yy) -UTIL_LINUX_LIBS_DEPENDENCIES += libselinux -UTIL_LINUX_LIBS_CONF_OPTS += --with-selinux -else -UTIL_LINUX_LIBS_CONF_OPTS += --without-selinux -endif - -# Disable utilities -UTIL_LINUX_LIBS_CONF_OPTS += \ - --disable-all-programs \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),--enable-libblkid,--disable-libblkid) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBFDISK),--enable-libfdisk,--disable-libfdisk) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),--enable-libmount,--disable-libmount) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS),--enable-libsmartcols,--disable-libsmartcols) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBUUID),--enable-libuuid,--disable-libuuid) - -# In the host version of util-linux-libs, we only require libuuid and libmount -# (plus libblkid as an indirect dependency of libmount). So disable libfdisk -# and libsmartcols, unless BR2_PACKAGE_HOST_UTIL_LINUX is set. -HOST_UTIL_LINUX_LIBS_CONF_OPTS += \ - --enable-libblkid \ - $(if $(BR2_PACKAGE_HOST_UTIL_LINUX),--enable-libfdisk,--disable-libfdisk) \ - --enable-libmount \ - $(if $(BR2_PACKAGE_HOST_UTIL_LINUX),--enable-libsmartcols,--disable-libsmartcols) \ - --enable-libuuid \ - --without-ncurses \ - --without-ncursesw \ - --without-tinfo - -# Install libmount Python bindings -ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT)$(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),yy) -UTIL_LINUX_LIBS_CONF_OPTS += --with-python --enable-pylibmount -UTIL_LINUX_LIBS_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3) -UTIL_LINUX_LIBS_CONF_OPTS += --without-python --disable-pylibmount -endif - -$(eval $(autotools-package)) -$(eval $(host-autotools-package)) diff --git a/package/util-linux/util-linux-programs/su.pam b/package/util-linux/util-linux-programs/su.pam deleted file mode 100644 index 84b18605ce..0000000000 --- a/package/util-linux/util-linux-programs/su.pam +++ /dev/null @@ -1,15 +0,0 @@ -auth sufficient pam_rootok.so -auth required pam_wheel.so use_uid -auth required pam_env.so -auth required pam_unix.so nullok - -account required pam_unix.so - -password required pam_unix.so nullok - -# session required pam_selinux.so close -session required pam_limits.so -session required pam_env.so -session required pam_unix.so -session optional pam_lastlog.so -# session required pam_selinux.so open diff --git a/package/util-linux/util-linux-programs/util-linux-programs.hash b/package/util-linux/util-linux-programs/util-linux-programs.hash deleted file mode 120000 index dc1b2f866a..0000000000 --- a/package/util-linux/util-linux-programs/util-linux-programs.hash +++ /dev/null @@ -1 +0,0 @@ -../util-linux.hash \ No newline at end of file diff --git a/package/util-linux/util-linux-programs/util-linux-programs.mk b/package/util-linux/util-linux-programs/util-linux-programs.mk deleted file mode 100644 index 20335e9eb6..0000000000 --- a/package/util-linux/util-linux-programs/util-linux-programs.mk +++ /dev/null @@ -1,265 +0,0 @@ -################################################################################ -# -# util-linux-programs -# -################################################################################ - -UTIL_LINUX_PROGRAMS_VERSION = $(UTIL_LINUX_VERSION) -UTIL_LINUX_PROGRAMS_SOURCE = $(UTIL_LINUX_SOURCE) -UTIL_LINUX_PROGRAMS_SITE = $(UTIL_LINUX_SITE) -UTIL_LINUX_PROGRAMS_DL_SUBDIR = $(UTIL_LINUX_DL_SUBDIR) - -# README.licensing claims that some files are GPL-2.0 only, but this is not true. -# Some files are GPL-3.0+ but only in tests. rfkill uses an ISC-style license. -UTIL_LINUX_PROGRAMS_LICENSE = GPL-2.0+, BSD-4-Clause, LGPL-2.1+ (libblkid, libfdisk, libmount, libsmartcols), BSD-3-Clause (libuuid) ISC (rfkill) -UTIL_LINUX_PROGRAMS_LICENSE_FILES = README.licensing \ - Documentation/licenses/COPYING.BSD-3-Clause \ - Documentation/licenses/COPYING.BSD-4-Clause-UC \ - Documentation/licenses/COPYING.GPL-2.0-or-later \ - Documentation/licenses/COPYING.ISC \ - Documentation/licenses/COPYING.LGPL-2.1-or-later -# Prevent installing the libraries twice on STAGING_DIR -UTIL_LINUX_PROGRAMS_INSTALL_STAGING = $(if $(BR2_PACKAGE_UTIL_LINUX_LIBS),NO,YES) -UTIL_LINUX_PROGRAMS_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) -UTIL_LINUX_PROGRAMS_CONF_OPTS += \ - --disable-rpath \ - --disable-makeinstall-chown -UTIL_LINUX_PROGRAMS_LINK_LIBS = $(TARGET_NLS_LIBS) - -# udev support, provided by either eudev or systemd -ifeq ($(BR2_PACKAGE_EUDEV),y) -UTIL_LINUX_PROGRAMS_DEPENDENCIES += eudev -endif -ifeq ($(BR2_PACKAGE_SYSTEMD),y) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --with-systemd --with-systemdsystemunitdir=/usr/lib/systemd/system -UTIL_LINUX_PROGRAMS_DEPENDENCIES += systemd -else -UTIL_LINUX_PROGRAMS_CONF_OPTS += --without-systemd --with-systemdsystemunitdir=no -endif -ifeq ($(BR2_PACKAGE_HAS_UDEV),y) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --with-udev -else -UTIL_LINUX_PROGRAMS_CONF_OPTS += --without-udev -endif - -HOST_UTIL_LINUX_PROGRAMS_DEPENDENCIES = host-pkgconf - -# We also don't want the host-python dependency -HOST_UTIL_LINUX_PROGRAMS_CONF_OPTS = --without-python - -# Prevent the installation from attempting to move shared libraries from -# ${usrlib_execdir} (/usr/lib) to ${libdir} (/lib), since both paths are -# the same when merged usr is in use. -ifeq ($(BR2_ROOTFS_MERGED_USR),y) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib -endif - -ifeq ($(BR2_PACKAGE_NCURSES),y) -UTIL_LINUX_PROGRAMS_DEPENDENCIES += ncurses -ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --with-ncursesw -UTIL_LINUX_PROGRAMS_CONF_ENV += NCURSESW6_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) -else -UTIL_LINUX_PROGRAMS_CONF_OPTS += --without-ncursesw --with-ncurses --disable-widechar -UTIL_LINUX_PROGRAMS_CONF_ENV += NCURSES6_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) -endif -else -ifeq ($(BR2_USE_WCHAR),y) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --enable-widechar -else -UTIL_LINUX_PROGRAMS_CONF_OPTS += --disable-widechar -endif -UTIL_LINUX_PROGRAMS_CONF_OPTS += --without-ncursesw --without-ncurses -endif - -ifeq ($(BR2_PACKAGE_LIBCAP_NG),y) -UTIL_LINUX_PROGRAMS_DEPENDENCIES += libcap-ng -endif - -# Unfortunately, the util-linux does LIBS="" at the end of its -# configure script. So we have to pass the proper LIBS value when -# calling the configure script to make configure tests pass properly, -# and then pass it again at build time. -UTIL_LINUX_PROGRAMS_CONF_ENV += LIBS="$(UTIL_LINUX_PROGRAMS_LINK_LIBS)" -UTIL_LINUX_PROGRAMS_MAKE_OPTS += LIBS="$(UTIL_LINUX_PROGRAMS_LINK_LIBS)" - -ifeq ($(BR2_PACKAGE_LIBSELINUX),y) -UTIL_LINUX_PROGRAMS_DEPENDENCIES += libselinux -UTIL_LINUX_PROGRAMS_CONF_OPTS += --with-selinux -define UTIL_LINUX_PROGRAMS_SELINUX_PAMFILES_TWEAK - $(foreach f,su su-l, - $(SED) 's/^# \(.*pam_selinux.so.*\)$$/\1/' \ - $(TARGET_DIR)/etc/pam.d/$(f) - ) -endef -else -UTIL_LINUX_PROGRAMS_CONF_OPTS += --without-selinux -endif - -# Used by cramfs utils -UTIL_LINUX_PROGRAMS_DEPENDENCIES += $(if $(BR2_PACKAGE_ZLIB),zlib) - -# Used by login-utils -UTIL_LINUX_PROGRAMS_DEPENDENCIES += $(if $(BR2_PACKAGE_LINUX_PAM),linux-pam) - -# Used by hardlink -UTIL_LINUX_PROGRAMS_DEPENDENCIES += $(if $(BR2_PACKAGE_PCRE2),pcre2) - -# Disable/Enable utilities -UTIL_LINUX_PROGRAMS_CONF_OPTS += \ - $(if $(BR2_PACKAGE_UTIL_LINUX_BINARIES),--enable-all-programs,--disable-all-programs) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_AGETTY),--enable-agetty,--disable-agetty) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_BFS),--enable-bfs,--disable-bfs) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_CAL),--enable-cal,--disable-cal) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH),--enable-chfn-chsh,--disable-chfn-chsh) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_CHMEM),--enable-chmem,--disable-chmem) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_CRAMFS),--enable-cramfs,--disable-cramfs) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_EJECT),--enable-eject,--disable-eject) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_FALLOCATE),--enable-fallocate,--disable-fallocate) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_FDFORMAT),--enable-fdformat,--disable-fdformat) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_FSCK),--enable-fsck,--disable-fsck) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_HARDLINK),--enable-hardlink,--disable-hardlink) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_HWCLOCK),--enable-hwclock,--disable-hwclock) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_IPCRM),--enable-ipcrm,--disable-ipcrm) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_IPCS),--enable-ipcs,--disable-ipcs) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_KILL),--enable-kill,--disable-kill) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LAST),--enable-last,--disable-last) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),--enable-libblkid,--disable-libblkid) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBFDISK),--enable-libfdisk,--disable-libfdisk) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),--enable-libmount,--disable-libmount) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS),--enable-libsmartcols,--disable-libsmartcols) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBUUID),--enable-libuuid,--disable-libuuid) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LINE),--enable-line,--disable-line) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LOGGER),--enable-logger,--disable-logger) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LOGIN),--enable-login,--disable-login) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LOSETUP),--enable-losetup,--disable-losetup) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LSLOGINS),--enable-lslogins,--disable-lslogins) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LSMEM),--enable-lsmem,--disable-lsmem) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_MESG),--enable-mesg,--disable-mesg) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_MINIX),--enable-minix,--disable-minix) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_MORE),--enable-more,--disable-more) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_MOUNT),--enable-mount,--disable-mount) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT),--enable-mountpoint,--disable-mountpoint) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_NEWGRP),--enable-newgrp,--disable-newgrp) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_NOLOGIN),--enable-nologin,--disable-nologin) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_NSENTER),--enable-nsenter,--disable-nsenter) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_PARTX),--enable-partx,--disable-partx) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_PG),--enable-pg,--disable-pg) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT),--enable-pivot_root,--disable-pivot_root) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_RAW),--enable-raw,--disable-raw) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_RENAME),--enable-rename,--disable-rename) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_RFKILL),--enable-rfkill,--disable-rfkill) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_RUNUSER),--enable-runuser,--disable-runuser) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS),--enable-schedutils,--disable-schedutils) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_SETPRIV),--enable-setpriv,--disable-setpriv) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_SETTERM),--enable-setterm,--disable-setterm) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_SU),--enable-su,--disable-su) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_SULOGIN),--enable-sulogin,--disable-sulogin) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT),--enable-switch_root,--disable-switch_root) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_TUNELP),--enable-tunelp,--disable-tunelp) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_UL),--enable-ul,--disable-ul) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_UNSHARE),--enable-unshare,--disable-unshare) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_UTMPDUMP),--enable-utmpdump,--disable-utmpdump) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_UUIDD),--enable-uuidd,--disable-uuidd) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_VIPW),--enable-vipw,--disable-vipw) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_WALL),--enable-wall,--disable-wall) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_WDCTL),--enable-wdctl,--disable-wdctl) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_WRITE),--enable-write,--disable-write) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_ZRAMCTL),--enable-zramctl,--disable-zramctl) - -# In the host version of util-linux, we only require libuuid and -# libmount (plus libblkid as an indirect dependency of libmount). -# So disable all of the programs, unless BR2_PACKAGE_HOST_UTIL_LINUX is set - -HOST_UTIL_LINUX_PROGRAMS_CONF_OPTS += \ - --enable-libblkid \ - --enable-libmount \ - --enable-libuuid \ - --without-ncurses \ - --without-ncursesw \ - --without-tinfo - -ifeq ($(BR2_PACKAGE_HOST_UTIL_LINUX),y) -HOST_UTIL_LINUX_PROGRAMS_CONF_OPTS += --disable-makeinstall-chown -# disable commands that have ncurses dependency, as well as -# other ones that are useless on the host -HOST_UTIL_LINUX_PROGRAMS_CONF_OPTS += \ - --disable-agetty \ - --disable-chfn-chsh \ - --disable-chmem \ - --disable-login \ - --disable-lslogins \ - --disable-mesg \ - --disable-more \ - --disable-newgrp \ - --disable-nologin \ - --disable-nsenter \ - --disable-pg \ - --disable-rfkill \ - --disable-schedutils \ - --disable-setpriv \ - --disable-setterm \ - --disable-su \ - --disable-sulogin \ - --disable-tunelp \ - --disable-ul \ - --disable-unshare \ - --disable-uuidd \ - --disable-vipw \ - --disable-wall \ - --disable-wdctl \ - --disable-write \ - --disable-zramctl -# Used by cramfs utils -HOST_UTIL_LINUX_PROGRAMS_PROGRAMS_DEPENDENCIES += host-zlib -else -HOST_UTIL_LINUX_PROGRAMS_CONF_OPTS += --disable-all-programs -endif - -# Install libmount Python bindings -ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT)$(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),yy) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --with-python --enable-pylibmount -UTIL_LINUX_PROGRAMS_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --without-python --disable-pylibmount -endif - -ifeq ($(BR2_PACKAGE_READLINE),y) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --with-readline -UTIL_LINUX_PROGRAMS_LINK_LIBS += $(if $(BR2_STATIC_LIBS),-lcurses) -UTIL_LINUX_PROGRAMS_DEPENDENCIES += readline -else -UTIL_LINUX_PROGRAMS_CONF_OPTS += --without-readline -endif - -ifeq ($(BR2_PACKAGE_AUDIT),y) -UTIL_LINUX_PROGRAMS_CONF_OPTS += --with-audit -UTIL_LINUX_PROGRAMS_DEPENDENCIES += audit -else -UTIL_LINUX_PROGRAMS_CONF_OPTS += --without-audit -endif - -# Install PAM configuration files -ifeq ($(BR2_PACKAGE_UTIL_LINUX_SU)$(BR2_PACKAGE_LINUX_PAM),yy) -define UTIL_LINUX_PROGRAMS_INSTALL_PAMFILES - $(INSTALL) -D -m 0644 $(UTIL_LINUX_PROGRAMS_PKGDIR)su.pam \ - $(TARGET_DIR)/etc/pam.d/su - $(INSTALL) -m 0644 $(UTIL_LINUX_PROGRAMS_PKGDIR)su.pam \ - $(TARGET_DIR)/etc/pam.d/su-l - $(UTIL_LINUX_PROGRAMS_SELINUX_PAMFILES_TWEAK) -endef -UTIL_LINUX_PROGRAMS_POST_INSTALL_TARGET_HOOKS += UTIL_LINUX_PROGRAMS_INSTALL_PAMFILES -endif - -# Install agetty->getty symlink to avoid breakage when there's no busybox -ifeq ($(BR2_PACKAGE_UTIL_LINUX_AGETTY),y) -ifeq ($(BR2_PACKAGE_BUSYBOX),) -define UTIL_LINUX_PROGRAMS_GETTY_SYMLINK - ln -sf agetty $(TARGET_DIR)/sbin/getty -endef -endif -endif - -UTIL_LINUX_PROGRAMS_POST_INSTALL_TARGET_HOOKS += UTIL_LINUX_PROGRAMS_GETTY_SYMLINK - -$(eval $(autotools-package)) -$(eval $(host-autotools-package)) diff --git a/package/util-linux/util-linux.mk b/package/util-linux/util-linux.mk index bf22219878..99ec39467f 100644 --- a/package/util-linux/util-linux.mk +++ b/package/util-linux/util-linux.mk @@ -9,23 +9,252 @@ UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR) UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.xz UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR) -UTIL_LINUX_EXTRACT_CMDS = -HOST_UTIL_LINUX_EXTRACT_CMDS = - -# util-linux-libs installs on STAGING_DIR only, for build time, -# util-linux-programs installs on TARGET_DIR only, for run time. -# We may need both. -UTIL_LINUX_DEPENDENCIES = \ - $(if $(BR2_PACKAGE_UTIL_LINUX_LIBS),util-linux-libs) \ - $(if $(BR2_PACKAGE_UTIL_LINUX_PROGRAMS),util-linux-programs) - -# In the host version we need either host-util-linux-programs or -# host-util-linux-libs, only. -HOST_UTIL_LINUX_DEPENDENCIES = \ - host-util-linux-$(if $(BR2_PACKAGE_HOST_UTIL_LINUX),programs,libs) - -$(eval $(generic-package)) -$(eval $(host-generic-package)) - -include package/util-linux/util-linux-libs/util-linux-libs.mk -include package/util-linux/util-linux-programs/util-linux-programs.mk +# README.licensing claims that some files are GPL-2.0 only, but this is not true. +# Some files are GPL-3.0+ but only in tests. rfkill uses an ISC-style license. +UTIL_LINUX_LICENSE = GPL-2.0+, BSD-4-Clause, LGPL-2.1+ (libblkid, libfdisk, libmount), BSD-3-Clause (libuuid) ISC (rfkill) +UTIL_LINUX_LICENSE_FILES = README.licensing \ + Documentation/licenses/COPYING.BSD-3-Clause \ + Documentation/licenses/COPYING.BSD-4-Clause-UC \ + Documentation/licenses/COPYING.GPL-2.0-or-later \ + Documentation/licenses/COPYING.ISC \ + Documentation/licenses/COPYING.LGPL-2.1-or-later +UTIL_LINUX_INSTALL_STAGING = YES +UTIL_LINUX_DEPENDENCIES = host-pkgconf $(TARGET_NLS_DEPENDENCIES) +UTIL_LINUX_CONF_OPTS += \ + --disable-rpath \ + --disable-makeinstall-chown +UTIL_LINUX_LIBS = $(TARGET_NLS_LIBS) + +# system depends on util-linux so we enable systemd support +# (which needs systemd to be installed) +UTIL_LINUX_CONF_OPTS += \ + --without-systemd \ + --with-systemdsystemunitdir=no + +HOST_UTIL_LINUX_DEPENDENCIES = host-pkgconf + +# We also don't want the host-python dependency +HOST_UTIL_LINUX_CONF_OPTS = --without-python + +# Prevent the installation from attempting to move shared libraries from +# ${usrlib_execdir} (/usr/lib) to ${libdir} (/lib), since both paths are +# the same when merged usr is in use. +ifeq ($(BR2_ROOTFS_MERGED_USR),y) +UTIL_LINUX_CONF_OPTS += --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib +endif + +ifeq ($(BR2_PACKAGE_NCURSES),y) +UTIL_LINUX_DEPENDENCIES += ncurses +ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) +UTIL_LINUX_CONF_OPTS += --with-ncursesw +UTIL_LINUX_CONF_ENV += NCURSESW6_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) +else +UTIL_LINUX_CONF_OPTS += --without-ncursesw --with-ncurses --disable-widechar +UTIL_LINUX_CONF_ENV += NCURSES6_CONFIG=$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS) +endif +else +ifeq ($(BR2_USE_WCHAR),y) +UTIL_LINUX_CONF_OPTS += --enable-widechar +else +UTIL_LINUX_CONF_OPTS += --disable-widechar +endif +UTIL_LINUX_CONF_OPTS += --without-ncursesw --without-ncurses +endif + +ifeq ($(BR2_PACKAGE_LIBCAP_NG),y) +UTIL_LINUX_DEPENDENCIES += libcap-ng +endif + +# Unfortunately, the util-linux does LIBS="" at the end of its +# configure script. So we have to pass the proper LIBS value when +# calling the configure script to make configure tests pass properly, +# and then pass it again at build time. +UTIL_LINUX_CONF_ENV += LIBS="$(UTIL_LINUX_LIBS)" +UTIL_LINUX_MAKE_OPTS += LIBS="$(UTIL_LINUX_LIBS)" + +ifeq ($(BR2_PACKAGE_LIBSELINUX),y) +UTIL_LINUX_DEPENDENCIES += libselinux +UTIL_LINUX_CONF_OPTS += --with-selinux +define UTIL_LINUX_SELINUX_PAMFILES_TWEAK + $(foreach f,su su-l, + $(SED) 's/^# \(.*pam_selinux.so.*\)$$/\1/' \ + $(TARGET_DIR)/etc/pam.d/$(f) + ) +endef +else +UTIL_LINUX_CONF_OPTS += --without-selinux +endif + +# Used by cramfs utils +UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_ZLIB),zlib) + +# Used by login-utils +UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_LINUX_PAM),linux-pam) + +# Used by hardlink +UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_PCRE2),pcre2) + +# Disable/Enable utilities +UTIL_LINUX_CONF_OPTS += \ + $(if $(BR2_PACKAGE_UTIL_LINUX_BINARIES),--enable-all-programs,--disable-all-programs) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_AGETTY),--enable-agetty,--disable-agetty) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_BFS),--enable-bfs,--disable-bfs) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_CAL),--enable-cal,--disable-cal) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH),--enable-chfn-chsh,--disable-chfn-chsh) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_CHMEM),--enable-chmem,--disable-chmem) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_CRAMFS),--enable-cramfs,--disable-cramfs) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_EJECT),--enable-eject,--disable-eject) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_FALLOCATE),--enable-fallocate,--disable-fallocate) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_FDFORMAT),--enable-fdformat,--disable-fdformat) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_FSCK),--enable-fsck,--disable-fsck) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_HARDLINK),--enable-hardlink,--disable-hardlink) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_HWCLOCK),--enable-hwclock,--disable-hwclock) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_IPCRM),--enable-ipcrm,--disable-ipcrm) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_IPCS),--enable-ipcs,--disable-ipcs) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_KILL),--enable-kill,--disable-kill) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LAST),--enable-last,--disable-last) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),--enable-libblkid,--disable-libblkid) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LIBFDISK),--enable-libfdisk,--disable-libfdisk) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),--enable-libmount,--disable-libmount) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS),--enable-libsmartcols,--disable-libsmartcols) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LIBUUID),--enable-libuuid,--disable-libuuid) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LINE),--enable-line,--disable-line) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LOGGER),--enable-logger,--disable-logger) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LOGIN),--enable-login,--disable-login) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LOSETUP),--enable-losetup,--disable-losetup) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LSLOGINS),--enable-lslogins,--disable-lslogins) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LSMEM),--enable-lsmem,--disable-lsmem) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_MESG),--enable-mesg,--disable-mesg) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_MINIX),--enable-minix,--disable-minix) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_MORE),--enable-more,--disable-more) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_MOUNT),--enable-mount,--disable-mount) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT),--enable-mountpoint,--disable-mountpoint) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_NEWGRP),--enable-newgrp,--disable-newgrp) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_NOLOGIN),--enable-nologin,--disable-nologin) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_NSENTER),--enable-nsenter,--disable-nsenter) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_PARTX),--enable-partx,--disable-partx) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_PG),--enable-pg,--disable-pg) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT),--enable-pivot_root,--disable-pivot_root) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_RAW),--enable-raw,--disable-raw) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_RENAME),--enable-rename,--disable-rename) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_RFKILL),--enable-rfkill,--disable-rfkill) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_RUNUSER),--enable-runuser,--disable-runuser) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS),--enable-schedutils,--disable-schedutils) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_SETPRIV),--enable-setpriv,--disable-setpriv) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_SETTERM),--enable-setterm,--disable-setterm) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_SU),--enable-su,--disable-su) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_SULOGIN),--enable-sulogin,--disable-sulogin) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT),--enable-switch_root,--disable-switch_root) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_TUNELP),--enable-tunelp,--disable-tunelp) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_UL),--enable-ul,--disable-ul) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_UNSHARE),--enable-unshare,--disable-unshare) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_UTMPDUMP),--enable-utmpdump,--disable-utmpdump) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_UUIDD),--enable-uuidd,--disable-uuidd) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_VIPW),--enable-vipw,--disable-vipw) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_WALL),--enable-wall,--disable-wall) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_WDCTL),--enable-wdctl,--disable-wdctl) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_WRITE),--enable-write,--disable-write) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_ZRAMCTL),--enable-zramctl,--disable-zramctl) + +# In the host version of util-linux, we only require libuuid and +# libmount (plus libblkid as an indirect dependency of libmount). +# So disable all of the programs, unless BR2_PACKAGE_HOST_UTIL_LINUX is set + +HOST_UTIL_LINUX_CONF_OPTS += \ + --enable-libblkid \ + --enable-libmount \ + --enable-libuuid \ + --without-ncurses \ + --without-ncursesw \ + --without-tinfo + +ifeq ($(BR2_PACKAGE_HOST_UTIL_LINUX),y) +HOST_UTIL_LINUX_CONF_OPTS += --disable-makeinstall-chown +# disable commands that have ncurses dependency, as well as +# other ones that are useless on the host +HOST_UTIL_LINUX_CONF_OPTS += \ + --disable-agetty \ + --disable-chfn-chsh \ + --disable-chmem \ + --disable-login \ + --disable-lslogins \ + --disable-mesg \ + --disable-more \ + --disable-newgrp \ + --disable-nologin \ + --disable-nsenter \ + --disable-pg \ + --disable-rfkill \ + --disable-schedutils \ + --disable-setpriv \ + --disable-setterm \ + --disable-su \ + --disable-sulogin \ + --disable-tunelp \ + --disable-ul \ + --disable-unshare \ + --disable-uuidd \ + --disable-vipw \ + --disable-wall \ + --disable-wdctl \ + --disable-write \ + --disable-zramctl +# Used by cramfs utils +HOST_UTIL_LINUX_DEPENDENCIES += host-zlib +else +HOST_UTIL_LINUX_CONF_OPTS += --disable-all-programs +endif + +# Install libmount Python bindings +ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) +UTIL_LINUX_CONF_OPTS += --with-python +UTIL_LINUX_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3) +ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y) +UTIL_LINUX_CONF_OPTS += --enable-pylibmount +else +UTIL_LINUX_CONF_OPTS += --disable-pylibmount +endif +else +UTIL_LINUX_CONF_OPTS += --without-python +endif + +ifeq ($(BR2_PACKAGE_READLINE),y) +UTIL_LINUX_CONF_OPTS += --with-readline +UTIL_LINUX_LIBS += $(if $(BR2_STATIC_LIBS),-lcurses) +UTIL_LINUX_DEPENDENCIES += readline +else +UTIL_LINUX_CONF_OPTS += --without-readline +endif + +ifeq ($(BR2_PACKAGE_AUDIT),y) +UTIL_LINUX_CONF_OPTS += --with-audit +UTIL_LINUX_DEPENDENCIES += audit +else +UTIL_LINUX_CONF_OPTS += --without-audit +endif + +# Install PAM configuration files +ifeq ($(BR2_PACKAGE_UTIL_LINUX_SU)$(BR2_PACKAGE_LINUX_PAM),yy) +define UTIL_LINUX_INSTALL_PAMFILES + $(INSTALL) -m 0644 package/util-linux/su.pam \ + $(TARGET_DIR)/etc/pam.d/su + $(INSTALL) -m 0644 package/util-linux/su.pam \ + $(TARGET_DIR)/etc/pam.d/su-l + $(UTIL_LINUX_SELINUX_PAMFILES_TWEAK) +endef +UTIL_LINUX_POST_INSTALL_TARGET_HOOKS += UTIL_LINUX_INSTALL_PAMFILES +endif + +# Install agetty->getty symlink to avoid breakage when there's no busybox +ifeq ($(BR2_PACKAGE_UTIL_LINUX_AGETTY),y) +ifeq ($(BR2_PACKAGE_BUSYBOX),) +define UTIL_LINUX_GETTY_SYMLINK + ln -sf agetty $(TARGET_DIR)/sbin/getty +endef +endif +endif + +UTIL_LINUX_POST_INSTALL_TARGET_HOOKS += UTIL_LINUX_GETTY_SYMLINK + +$(eval $(autotools-package)) +$(eval $(host-autotools-package))