Sfoglia il codice sorgente

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.
Arnout Vandecappelle (Essensium/Mind) 6 anni fa
parent
commit
1fa9b0d267

+ 0 - 1
package/eudev/Config.in

@@ -6,7 +6,6 @@ config BR2_PACKAGE_EUDEV
 	depends on !BR2_STATIC_LIBS # kmod
 	depends on !BR2_STATIC_LIBS # kmod
 	select BR2_PACKAGE_HAS_UDEV
 	select BR2_PACKAGE_HAS_UDEV
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX
-	select BR2_PACKAGE_UTIL_LINUX_LIBS
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_KMOD
 	select BR2_PACKAGE_KMOD
 	help
 	help

+ 1 - 2
package/eudev/eudev.mk

@@ -18,8 +18,7 @@ EUDEV_CONF_OPTS = \
 	--enable-kmod \
 	--enable-kmod \
 	--enable-blkid
 	--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
 EUDEV_PROVIDES = udev
 
 
 ifeq ($(BR2_ROOTFS_MERGED_USR),)
 ifeq ($(BR2_ROOTFS_MERGED_USR),)

+ 0 - 1
package/systemd/Config.in

@@ -23,7 +23,6 @@ menuconfig BR2_PACKAGE_SYSTEMD
 	select BR2_PACKAGE_DBUS # runtime dependency only
 	select BR2_PACKAGE_DBUS # runtime dependency only
 	select BR2_PACKAGE_LIBCAP
 	select BR2_PACKAGE_LIBCAP
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX
-	select BR2_PACKAGE_UTIL_LINUX_LIBS
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_BINARIES
 	select BR2_PACKAGE_UTIL_LINUX_BINARIES

+ 1 - 3
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 = LGPL-2.1+, GPL-2.0+ (udev), Public Domain (few source files, see README)
 SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README
 SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README
 SYSTEMD_INSTALL_STAGING = YES
 SYSTEMD_INSTALL_STAGING = YES
-
-# systemd requires only the util-linux libraries at build time
 SYSTEMD_DEPENDENCIES = \
 SYSTEMD_DEPENDENCIES = \
 	$(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \
 	$(if $(BR2_PACKAGE_BASH_COMPLETION),bash-completion) \
 	host-gperf \
 	host-gperf \
 	kmod \
 	kmod \
 	libcap \
 	libcap \
-	util-linux-libs \
+	util-linux \
 	$(TARGET_NLS_DEPENDENCIES)
 	$(TARGET_NLS_DEPENDENCIES)
 
 
 SYSTEMD_PROVIDES = udev
 SYSTEMD_PROVIDES = udev

+ 0 - 59
package/util-linux/Config.in

@@ -9,9 +9,6 @@ menuconfig BR2_PACKAGE_UTIL_LINUX
 
 
 if BR2_PACKAGE_UTIL_LINUX
 if BR2_PACKAGE_UTIL_LINUX
 
 
-config BR2_PACKAGE_UTIL_LINUX_LIBS
-	bool
-
 config BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 config BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	bool "libblkid"
 	bool "libblkid"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
@@ -44,9 +41,6 @@ config BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	help
 	help
 	  Install libuuid.
 	  Install libuuid.
 
 
-config BR2_PACKAGE_UTIL_LINUX_PROGRAMS
-	bool
-
 config BR2_PACKAGE_UTIL_LINUX_BINARIES
 config BR2_PACKAGE_UTIL_LINUX_BINARIES
 	bool "basic set"
 	bool "basic set"
 	depends on BR2_USE_MMU # fork()
 	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_LIBFDISK
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Install the basic set of util-linux binaries.
 	  Install the basic set of util-linux binaries.
 
 
@@ -74,19 +67,16 @@ config BR2_PACKAGE_UTIL_LINUX_BINARIES
 config BR2_PACKAGE_UTIL_LINUX_AGETTY
 config BR2_PACKAGE_UTIL_LINUX_AGETTY
 	bool "agetty"
 	bool "agetty"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Alternative linux getty
 	  Alternative linux getty
 
 
 config BR2_PACKAGE_UTIL_LINUX_BFS
 config BR2_PACKAGE_UTIL_LINUX_BFS
 	bool "bfs"
 	bool "bfs"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  SCO bfs filesystem support
 	  SCO bfs filesystem support
 
 
 config BR2_PACKAGE_UTIL_LINUX_CAL
 config BR2_PACKAGE_UTIL_LINUX_CAL
 	bool "cal"
 	bool "cal"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Display a calendar, or some part of it
 	  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_TOOLCHAIN_USES_MUSL # linux-pam
 	depends on BR2_USE_MMU # linux-pam
 	depends on BR2_USE_MMU # linux-pam
 	select BR2_PACKAGE_LINUX_PAM
 	select BR2_PACKAGE_LINUX_PAM
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Change login shell, real user name and information
 	  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
 config BR2_PACKAGE_UTIL_LINUX_CHMEM
 	bool "chmem"
 	bool "chmem"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Sets a particular size or range of memory online or offline
 	  Sets a particular size or range of memory online or offline
 
 
 config BR2_PACKAGE_UTIL_LINUX_CRAMFS
 config BR2_PACKAGE_UTIL_LINUX_CRAMFS
 	bool "cramfs utilities"
 	bool "cramfs utilities"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	select BR2_PACKAGE_ZLIB
 	select BR2_PACKAGE_ZLIB
 	help
 	help
 	  Utilities for compressed ROM file system (fsck.cramfs,
 	  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_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Eject removable media
 	  Eject removable media
 
 
 config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
 config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
 	bool "fallocate"
 	bool "fallocate"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Preallocate space to a file
 	  Preallocate space to a file
 
 
 config BR2_PACKAGE_UTIL_LINUX_FDFORMAT
 config BR2_PACKAGE_UTIL_LINUX_FDFORMAT
 	bool "fdformat"
 	bool "fdformat"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Low-level format a floppy disk
 	  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_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Check and repair a linux filesystem
 	  Check and repair a linux filesystem
 
 
@@ -158,43 +141,36 @@ config BR2_PACKAGE_UTIL_LINUX_HARDLINK
 
 
 config BR2_PACKAGE_UTIL_LINUX_HWCLOCK
 config BR2_PACKAGE_UTIL_LINUX_HWCLOCK
 	bool "hwclock"
 	bool "hwclock"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Query or set the hardware clock (RTC)
 	  Query or set the hardware clock (RTC)
 
 
 config BR2_PACKAGE_UTIL_LINUX_IPCRM
 config BR2_PACKAGE_UTIL_LINUX_IPCRM
 	bool "ipcrm"
 	bool "ipcrm"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Remove certain IPC resources
 	  Remove certain IPC resources
 
 
 config BR2_PACKAGE_UTIL_LINUX_IPCS
 config BR2_PACKAGE_UTIL_LINUX_IPCS
 	bool "ipcs"
 	bool "ipcs"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Show information on IPC facilities
 	  Show information on IPC facilities
 
 
 config BR2_PACKAGE_UTIL_LINUX_KILL
 config BR2_PACKAGE_UTIL_LINUX_KILL
 	bool "kill"
 	bool "kill"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Send a signal to a process
 	  Send a signal to a process
 
 
 config BR2_PACKAGE_UTIL_LINUX_LAST
 config BR2_PACKAGE_UTIL_LINUX_LAST
 	bool "last"
 	bool "last"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Show a listing of last logged in users
 	  Show a listing of last logged in users
 
 
 config BR2_PACKAGE_UTIL_LINUX_LINE
 config BR2_PACKAGE_UTIL_LINUX_LINE
 	bool "line"
 	bool "line"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Read one line
 	  Read one line
 
 
 config BR2_PACKAGE_UTIL_LINUX_LOGGER
 config BR2_PACKAGE_UTIL_LINUX_LOGGER
 	bool "logger"
 	bool "logger"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Enter messages into the system log
 	  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_TOOLCHAIN_USES_MUSL # linux-pam
 	depends on BR2_USE_MMU # fork(), linux-pam
 	depends on BR2_USE_MMU # fork(), linux-pam
 	select BR2_PACKAGE_LINUX_PAM
 	select BR2_PACKAGE_LINUX_PAM
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Begin a session on the system
 	  Begin a session on the system
 
 
@@ -218,7 +193,6 @@ config BR2_PACKAGE_UTIL_LINUX_LOSETUP
 	bool "losetup"
 	bool "losetup"
 	depends on BR2_USE_MMU # libsmartcols
 	depends on BR2_USE_MMU # libsmartcols
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Set up and control loop devices
 	  Set up and control loop devices
 
 
@@ -226,7 +200,6 @@ config BR2_PACKAGE_UTIL_LINUX_LSLOGINS
 	bool "lslogins"
 	bool "lslogins"
 	depends on BR2_USE_MMU # libsmartcols
 	depends on BR2_USE_MMU # libsmartcols
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Display information about known users in the system
 	  Display information about known users in the system
 
 
@@ -234,20 +207,17 @@ config BR2_PACKAGE_UTIL_LINUX_LSMEM
 	bool "lsmem"
 	bool "lsmem"
 	depends on BR2_USE_MMU # libsmartcols
 	depends on BR2_USE_MMU # libsmartcols
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  List the ranges of available memory with their online status
 	  List the ranges of available memory with their online status
 
 
 config BR2_PACKAGE_UTIL_LINUX_MESG
 config BR2_PACKAGE_UTIL_LINUX_MESG
 	bool "mesg"
 	bool "mesg"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Control write access to your terminal
 	  Control write access to your terminal
 
 
 config BR2_PACKAGE_UTIL_LINUX_MINIX
 config BR2_PACKAGE_UTIL_LINUX_MINIX
 	bool "minix"
 	bool "minix"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Minix filesystem support
 	  Minix filesystem support
 
 
@@ -255,7 +225,6 @@ config BR2_PACKAGE_UTIL_LINUX_MORE
 	bool "more"
 	bool "more"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_NCURSES
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  File perusal filter for crt viewing
 	  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_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Mount/unmount filesystems
 	  Mount/unmount filesystems
 
 
@@ -275,19 +243,16 @@ config BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  See if a directory is a mountpoint
 	  See if a directory is a mountpoint
 
 
 config BR2_PACKAGE_UTIL_LINUX_NEWGRP
 config BR2_PACKAGE_UTIL_LINUX_NEWGRP
 	bool "newgrp"
 	bool "newgrp"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Log in to a new group
 	  Log in to a new group
 
 
 config BR2_PACKAGE_UTIL_LINUX_NOLOGIN
 config BR2_PACKAGE_UTIL_LINUX_NOLOGIN
 	bool "nologin"
 	bool "nologin"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Politely refuse a login
 	  Politely refuse a login
 
 
@@ -295,7 +260,6 @@ config BR2_PACKAGE_UTIL_LINUX_NSENTER
 	bool "nsenter"
 	bool "nsenter"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Enter the namespaces of another process
 	  Enter the namespaces of another process
 
 
@@ -306,7 +270,6 @@ config BR2_PACKAGE_UTIL_LINUX_PG
 	bool "pg"
 	bool "pg"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_NCURSES
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Browse pagewise through text files
 	  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_LIBBLKID
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Partition utilities (addpart, delpart, partx)
 	  Partition utilities (addpart, delpart, partx)
 
 
 config BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT
 config BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT
 	bool "pivot_root"
 	bool "pivot_root"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Change the root filesystem
 	  Change the root filesystem
 
 
 config BR2_PACKAGE_UTIL_LINUX_RAW
 config BR2_PACKAGE_UTIL_LINUX_RAW
 	bool "raw"
 	bool "raw"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Build a linux raw character device
 	  Build a linux raw character device
 
 
 config BR2_PACKAGE_UTIL_LINUX_RENAME
 config BR2_PACKAGE_UTIL_LINUX_RENAME
 	bool "rename"
 	bool "rename"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Rename files
 	  Rename files
 
 
@@ -342,7 +301,6 @@ config BR2_PACKAGE_UTIL_LINUX_RFKILL
 	bool "rfkill"
 	bool "rfkill"
 	depends on BR2_USE_MMU # libsmartcols
 	depends on BR2_USE_MMU # libsmartcols
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Tool for enabling and disabling wireless devices. This new
 	  Tool for enabling and disabling wireless devices. This new
 	  implementation is based upon, and backward compatible with,
 	  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_TOOLCHAIN_USES_MUSL # linux-pam
 	depends on BR2_USE_MMU # fork(), linux-pam
 	depends on BR2_USE_MMU # fork(), linux-pam
 	select BR2_PACKAGE_LINUX_PAM
 	select BR2_PACKAGE_LINUX_PAM
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Run a command with substitute user and group ID (does not need
 	  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
 	  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
 config BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS
 	bool "scheduling utilities"
 	bool "scheduling utilities"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Scheduling utilities (chrt, ionice, taskset)
 	  Scheduling utilities (chrt, ionice, taskset)
 
 
 config BR2_PACKAGE_UTIL_LINUX_SETPRIV
 config BR2_PACKAGE_UTIL_LINUX_SETPRIV
 	bool "setpriv"
 	bool "setpriv"
 	select BR2_PACKAGE_LIBCAP_NG
 	select BR2_PACKAGE_LIBCAP_NG
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Run a program with different Linux privilege settings
 	  Run a program with different Linux privilege settings
 
 
 config BR2_PACKAGE_UTIL_LINUX_SETTERM
 config BR2_PACKAGE_UTIL_LINUX_SETTERM
 	bool "setterm"
 	bool "setterm"
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_NCURSES
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Set terminal attributes
 	  Set terminal attributes
 
 
@@ -392,7 +346,6 @@ config BR2_PACKAGE_UTIL_LINUX_SU
 	depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam
 	depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam
 	depends on BR2_USE_MMU # fork(), linux-pam
 	depends on BR2_USE_MMU # fork(), linux-pam
 	select BR2_PACKAGE_LINUX_PAM
 	select BR2_PACKAGE_LINUX_PAM
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Run a command with substitute user and group ID
 	  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
 config BR2_PACKAGE_UTIL_LINUX_SULOGIN
 	bool "sulogin"
 	bool "sulogin"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Single-user login
 	  Single-user login
 
 
 config BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT
 config BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT
 	bool "switch_root"
 	bool "switch_root"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Switch to another filesystem as the root of the mount tree
 	  Switch to another filesystem as the root of the mount tree
 
 
 config BR2_PACKAGE_UTIL_LINUX_TUNELP
 config BR2_PACKAGE_UTIL_LINUX_TUNELP
 	bool "tunelp"
 	bool "tunelp"
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_NCURSES
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Set various parameters for the lp device
 	  Set various parameters for the lp device
 
 
 config BR2_PACKAGE_UTIL_LINUX_UL
 config BR2_PACKAGE_UTIL_LINUX_UL
 	bool "ul"
 	bool "ul"
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_NCURSES
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Do underlining
 	  Do underlining
 
 
 config BR2_PACKAGE_UTIL_LINUX_UNSHARE
 config BR2_PACKAGE_UTIL_LINUX_UNSHARE
 	bool "unshare"
 	bool "unshare"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Run program with some namespaces unshared from parent
 	  Run program with some namespaces unshared from parent
 
 
 config BR2_PACKAGE_UTIL_LINUX_UTMPDUMP
 config BR2_PACKAGE_UTIL_LINUX_UTMPDUMP
 	bool "utmpdump"
 	bool "utmpdump"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Dump UTMP and WTMP files in raw format
 	  Dump UTMP and WTMP files in raw format
 
 
@@ -445,21 +392,18 @@ config BR2_PACKAGE_UTIL_LINUX_UUIDD
 	bool "uuidd"
 	bool "uuidd"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  UUID generation daemon
 	  UUID generation daemon
 
 
 config BR2_PACKAGE_UTIL_LINUX_VIPW
 config BR2_PACKAGE_UTIL_LINUX_VIPW
 	bool "vipw"
 	bool "vipw"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Edit the password, group, shadow-password or shadow-group file
 	  Edit the password, group, shadow-password or shadow-group file
 
 
 config BR2_PACKAGE_UTIL_LINUX_WALL
 config BR2_PACKAGE_UTIL_LINUX_WALL
 	bool "wall"
 	bool "wall"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Send a message to everybody's terminal
 	  Send a message to everybody's terminal
 
 
@@ -467,13 +411,11 @@ config BR2_PACKAGE_UTIL_LINUX_WDCTL
 	bool "wdctl"
 	bool "wdctl"
 	depends on BR2_USE_MMU # libsmartcols
 	depends on BR2_USE_MMU # libsmartcols
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Shows hardware watchdog status
 	  Shows hardware watchdog status
 
 
 config BR2_PACKAGE_UTIL_LINUX_WRITE
 config BR2_PACKAGE_UTIL_LINUX_WRITE
 	bool "write"
 	bool "write"
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Send a message to another user
 	  Send a message to another user
 
 
@@ -481,7 +423,6 @@ config BR2_PACKAGE_UTIL_LINUX_ZRAMCTL
 	bool "zramctl"
 	bool "zramctl"
 	depends on BR2_USE_MMU # libsmartcols
 	depends on BR2_USE_MMU # libsmartcols
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
 	select BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS
-	select BR2_PACKAGE_UTIL_LINUX_PROGRAMS
 	help
 	help
 	  Set up and control zram devices
 	  Set up and control zram devices
 
 

+ 0 - 0
package/util-linux/util-linux-programs/su.pam → package/util-linux/su.pam


+ 0 - 1
package/util-linux/util-linux-libs/util-linux-libs.hash

@@ -1 +0,0 @@
-../util-linux.hash

+ 0 - 91
package/util-linux/util-linux-libs/util-linux-libs.mk

@@ -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))

+ 0 - 1
package/util-linux/util-linux-programs/util-linux-programs.hash

@@ -1 +0,0 @@
-../util-linux.hash

+ 0 - 265
package/util-linux/util-linux-programs/util-linux-programs.mk

@@ -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))

+ 249 - 20
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_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_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))