diff options
-rw-r--r-- | package/eudev/eudev.mk | 6 | ||||
-rw-r--r-- | package/skeleton/skeleton.mk | 20 | ||||
-rw-r--r-- | package/systemd/systemd.mk | 2 | ||||
-rw-r--r-- | system/Config.in | 17 | ||||
-rw-r--r-- | system/skeleton/bin/.empty | 0 | ||||
-rw-r--r-- | system/skeleton/lib/.empty | 0 | ||||
-rw-r--r-- | system/skeleton/sbin/.empty | 0 |
7 files changed, 38 insertions, 7 deletions
diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk index 1aa74b373..a005f45de 100644 --- a/package/eudev/eudev.mk +++ b/package/eudev/eudev.mk @@ -22,16 +22,18 @@ EUDEV_CONF_ENV += LIBS=-lrt EUDEV_CONF_OPTS = \ --disable-manpages \ --sbindir=/sbin \ - --with-rootlibdir=/lib \ --libexecdir=/lib \ --with-firmware-path=/lib/firmware \ --disable-introspection \ - --enable-split-usr \ --enable-libkmod EUDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux kmod EUDEV_PROVIDES = udev +ifeq ($(BR2_ROOTFS_MERGED_USR),) +EUDEV_CONF_OPTS += --with-rootlibdir=/lib --enable-split-usr +endif + ifeq ($(BR2_PACKAGE_EUDEV_RULES_GEN),y) EUDEV_CONF_OPTS += --enable-rule_generator endif diff --git a/package/skeleton/skeleton.mk b/package/skeleton/skeleton.mk index 48e708515..920d3b42d 100644 --- a/package/skeleton/skeleton.mk +++ b/package/skeleton/skeleton.mk @@ -19,15 +19,29 @@ else SKELETON_PATH = system/skeleton endif +ifeq ($(BR2_ROOTFS_MERGED_USR),y) +define SKELETON_USR_SYMLINKS_OR_DIRS + ln -snf usr/bin $(TARGET_DIR)/bin + ln -snf usr/sbin $(TARGET_DIR)/sbin + ln -snf usr/lib $(TARGET_DIR)/lib +endef +else +define SKELETON_USR_SYMLINKS_OR_DIRS + $(INSTALL) -d -m 0755 $(TARGET_DIR)/bin + $(INSTALL) -d -m 0755 $(TARGET_DIR)/sbin + $(INSTALL) -d -m 0755 $(TARGET_DIR)/lib +endef +endif + define SKELETON_INSTALL_TARGET_CMDS rsync -a --ignore-times $(SYNC_VCS_EXCLUSIONS) \ --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \ $(SKELETON_PATH)/ $(TARGET_DIR)/ - $(INSTALL) -m 0644 support/misc/target-dir-warning.txt \ - $(TARGET_DIR_WARNING_FILE) + $(SKELETON_USR_SYMLINKS_OR_DIRS) ln -snf lib $(TARGET_DIR)/$(LIB_SYMLINK) - mkdir -p $(TARGET_DIR)/usr ln -snf lib $(TARGET_DIR)/usr/$(LIB_SYMLINK) + $(INSTALL) -m 0644 support/misc/target-dir-warning.txt \ + $(TARGET_DIR_WARNING_FILE) endef SKELETON_TARGET_GENERIC_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk index 6b9ce3fe2..2e974fa3b 100644 --- a/package/systemd/systemd.mk +++ b/package/systemd/systemd.mk @@ -27,7 +27,6 @@ endif SYSTEMD_CONF_OPTS += \ --with-rootprefix= \ - --with-rootlibdir=/lib \ --enable-static=no \ --disable-manpages \ --disable-selinux \ @@ -36,7 +35,6 @@ SYSTEMD_CONF_OPTS += \ --with-dbuspolicydir=/etc/dbus-1/system.d \ --with-dbussessionservicedir=/usr/share/dbus-1/services \ --with-dbussystemservicedir=/usr/share/dbus-1/system-services \ - --enable-split-usr \ --disable-efi \ --disable-gnuefi \ --disable-tests \ diff --git a/system/Config.in b/system/Config.in index 6afe8962d..4d070103f 100644 --- a/system/Config.in +++ b/system/Config.in @@ -78,6 +78,10 @@ config BR2_INIT_SYSV select BR2_PACKAGE_INITSCRIPTS select BR2_PACKAGE_SYSVINIT +# In Buildroot, we decided not to support a split-usr when systemd is +# used as an init system. This is a design decision, not a systemd +# issue. Thus the select is with BR2_INIT_SYSTEMD (below) rather than +# with BR2_PACKAGE_SYSTEMD. config BR2_INIT_SYSTEMD bool "systemd" depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS @@ -88,6 +92,7 @@ config BR2_INIT_SYSTEMD depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 + select BR2_ROOTFS_MERGED_USR select BR2_PACKAGE_SYSTEMD comment "systemd needs (e)glibc toolchain, headers >= 3.10" @@ -178,6 +183,18 @@ endif if BR2_ROOTFS_SKELETON_DEFAULT +config BR2_ROOTFS_MERGED_USR + bool "Use symlinks to /usr for /bin, /sbin and /lib" + help + If you say 'n' here, then /bin, /sbin and /lib and their + counterparts in /usr will be separate directories. This + is the historical UNIX way. In this case, /usr can be a + filesystem on a partition separate from / . + + If you say 'y' here, then /bin, /sbin and /lib will be symlinks + to their counterparts in /usr. In this case, /usr can not be a + separate filesystem. + config BR2_TARGET_ENABLE_ROOT_LOGIN bool "Enable root login with password" default y diff --git a/system/skeleton/bin/.empty b/system/skeleton/bin/.empty deleted file mode 100644 index e69de29bb..000000000 --- a/system/skeleton/bin/.empty +++ /dev/null diff --git a/system/skeleton/lib/.empty b/system/skeleton/lib/.empty deleted file mode 100644 index e69de29bb..000000000 --- a/system/skeleton/lib/.empty +++ /dev/null diff --git a/system/skeleton/sbin/.empty b/system/skeleton/sbin/.empty deleted file mode 100644 index e69de29bb..000000000 --- a/system/skeleton/sbin/.empty +++ /dev/null |