forked from buildroot/buildroot
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create a proper package for the skeleton. The main Makefile is modified to remove the skeleton support. The 'dirs' target, will create the $(TARGET_DIR). The file 'output/target/.root' doesn't exists anymore, as there's no Make rule to statisfy. The infrastructure are modified to filter host-skeleton. It's needed becauses the host-dependencies are derived from the dependencies of the target package where 'host-' is preprended to the depedency name. In the pkg-generic we add skeleton as a dependency to every package. The whole system/system.mk is now removed at the profit of package/skeleton/skeleton.mk [Thomas: - rebase on top of master and fix some minor conflicts - remove the 'select BR2_PACKAGE_SKELETON' in BR2_ROOTFS_SKELETON_DEFAULT and BR2_ROOTFS_SKELETON_CUSTOM, since anyway the skeleton package is always enabled. - fixup a few mistakes in the getty handling due to misnamed variables.] Signed-off-by: Maxime Hadjinlian <[email protected]> Signed-off-by: Thomas Petazzoni <[email protected]>
- Loading branch information
1 parent
c7ca4e8
commit 7a6b83a
Showing
10 changed files
with
177 additions
and
152 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
config BR2_PACKAGE_SKELETON | ||
bool | ||
default y | ||
help | ||
The basic skeleton for your rootfs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
################################################################################ | ||
# | ||
# skeleton | ||
# | ||
################################################################################ | ||
|
||
# source included in buildroot | ||
SKELETON_SOURCE = | ||
|
||
# The skeleton can't depend on the toolchain, since all packages depends on the | ||
# skeleton and the toolchain is a target package, as is skeleton. | ||
# Hence, skeleton would depends on the toolchain and the toolchain would depend | ||
# on skeleton. | ||
SKELETON_ADD_TOOLCHAIN_DEPENDENCY = NO | ||
|
||
ifeq ($(BR2_ROOTFS_SKELETON_CUSTOM),y) | ||
SKELETON_PATH = $(BR2_ROOTFS_SKELETON_CUSTOM_PATH) | ||
else | ||
SKELETON_PATH = system/skeleton | ||
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) | ||
ln -snf lib $(TARGET_DIR)/$(LIB_SYMLINK) | ||
mkdir -p $(TARGET_DIR)/usr | ||
ln -snf lib $(TARGET_DIR)/usr/$(LIB_SYMLINK) | ||
endef | ||
|
||
SKELETON_TARGET_GENERIC_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) | ||
SKELETON_TARGET_GENERIC_ISSUE = $(call qstrip,$(BR2_TARGET_GENERIC_ISSUE)) | ||
SKELETON_TARGET_GENERIC_ROOT_PASSWD = $(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD)) | ||
SKELETON_TARGET_GENERIC_PASSWD_METHOD = $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD)) | ||
SKELETON_TARGET_GENERIC_BIN_SH = $(call qstrip,$(BR2_SYSTEM_BIN_SH)) | ||
SKELETON_TARGET_GENERIC_GETTY_PORT = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) | ||
SKELETON_TARGET_GENERIC_GETTY_BAUDRATE = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) | ||
SKELETON_TARGET_GENERIC_GETTY_TERM = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM)) | ||
SKELETON_TARGET_GENERIC_GETTY_OPTIONS = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_OPTIONS)) | ||
|
||
ifneq ($(SKELETON_TARGET_GENERIC_HOSTNAME),) | ||
define SYSTEM_HOSTNAME | ||
mkdir -p $(TARGET_DIR)/etc | ||
echo "$(SKELETON_TARGET_GENERIC_HOSTNAME)" > $(TARGET_DIR)/etc/hostname | ||
$(SED) '$$a \127.0.1.1\t$(SKELETON_TARGET_GENERIC_HOSTNAME)' \ | ||
-e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts | ||
endef | ||
TARGET_FINALIZE_HOOKS += SYSTEM_HOSTNAME | ||
endif | ||
|
||
ifneq ($(SKELETON_TARGET_GENERIC_ISSUE),) | ||
define SYSTEM_ISSUE | ||
mkdir -p $(TARGET_DIR)/etc | ||
echo "$(SKELETON_TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue | ||
endef | ||
TARGET_FINALIZE_HOOKS += SYSTEM_ISSUE | ||
endif | ||
|
||
define SET_NETWORK_LOCALHOST | ||
( \ | ||
echo "# interface file auto-generated by buildroot"; \ | ||
echo ; \ | ||
echo "auto lo"; \ | ||
echo "iface lo inet loopback"; \ | ||
) > $(TARGET_DIR)/etc/network/interfaces | ||
endef | ||
|
||
NETWORK_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) | ||
|
||
ifneq ($(NETWORK_DHCP_IFACE),) | ||
define SET_NETWORK_DHCP | ||
( \ | ||
echo ; \ | ||
echo "auto $(NETWORK_DHCP_IFACE)"; \ | ||
echo "iface $(NETWORK_DHCP_IFACE) inet dhcp"; \ | ||
) >> $(TARGET_DIR)/etc/network/interfaces | ||
endef | ||
endif | ||
|
||
define SET_NETWORK | ||
mkdir -p $(TARGET_DIR)/etc/network/ | ||
$(SET_NETWORK_LOCALHOST) | ||
$(SET_NETWORK_DHCP) | ||
endef | ||
|
||
TARGET_FINALIZE_HOOKS += SET_NETWORK | ||
|
||
# The TARGET_FINALIZE_HOOKS must be sourced only if the users choose to use the | ||
# default skeleton. | ||
ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y) | ||
|
||
ifeq ($(BR2_TARGET_ENABLE_ROOT_LOGIN),y) | ||
ifeq ($(SKELETON_TARGET_GENERIC_ROOT_PASSWD),) | ||
SYSTEM_ROOT_PASSWORD = | ||
else ifneq ($(filter $$1$$% $$5$$% $$6$$%,$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)),) | ||
SYSTEM_ROOT_PASSWORD = $(SKELETON_TARGET_GENERIC_ROOT_PASSWD) | ||
else | ||
SKELETON_DEPENDENCIES += host-mkpasswd | ||
# This variable will only be evaluated in the finalize stage, so we can | ||
# be sure that host-mkpasswd will have already been built by that time. | ||
SYSTEM_ROOT_PASSWORD = $(shell $(MKPASSWD) -m "$(SKELETON_TARGET_GENERIC_PASSWD_METHOD)" "$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)") | ||
endif | ||
else # !BR2_TARGET_ENABLE_ROOT_LOGIN | ||
SYSTEM_ROOT_PASSWORD = * | ||
endif | ||
|
||
define SKELETON_SYSTEM_SET_ROOT_PASSWD | ||
$(SED) 's,^root:[^:]*:,root:$(SYSTEM_ROOT_PASSWORD):,' $(TARGET_DIR)/etc/shadow | ||
endef | ||
TARGET_FINALIZE_HOOKS += SKELETON_SYSTEM_SET_ROOT_PASSWD | ||
|
||
ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y) | ||
define SKELETON_SYSTEM_BIN_SH | ||
rm -f $(TARGET_DIR)/bin/sh | ||
endef | ||
else | ||
define SKELETON_SYSTEM_BIN_SH | ||
ln -sf $(SKELETON_TARGET_GENERIC_BIN_SH) $(TARGET_DIR)/bin/sh | ||
endef | ||
endif | ||
TARGET_FINALIZE_HOOKS += SKELETON_SYSTEM_BIN_SH | ||
|
||
ifeq ($(BR2_TARGET_GENERIC_GETTY),y) | ||
ifeq ($(BR2_INIT_SYSV),y) | ||
# In sysvinit inittab, the "id" must not be longer than 4 bytes, so we | ||
# skip the "tty" part and keep only the remaining. | ||
define SKELETON_SYSTEM_GETTY | ||
$(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(SKELETON_TARGET_GENERIC_GETTY_PORT) | tail -c+4)::respawn:/sbin/getty -L $(SKELETON_TARGET_GENERIC_GETTY_OPTIONS) $(SKELETON_TARGET_GENERIC_GETTY_PORT) $(SKELETON_TARGET_GENERIC_GETTY_BAUDRATE) $(SKELETON_TARGET_GENERIC_GETTY_TERM) #~' \ | ||
$(TARGET_DIR)/etc/inittab | ||
endef | ||
else ifeq ($(BR2_INIT_BUSYBOX),y) | ||
# Add getty to busybox inittab | ||
define SKELETON_SYSTEM_GETTY | ||
$(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(SKELETON_TARGET_GENERIC_GETTY_PORT)::respawn:/sbin/getty -L $(SKELETON_TARGET_GENERIC_GETTY_OPTIONS) $(SKELETON_TARGET_GENERIC_GETTY_PORT) $(SKELETON_TARGET_GENERIC_GETTY_BAUDRATE) $(SKELETON_TARGET_GENERIC_GETTY_TERM) #~' \ | ||
$(TARGET_DIR)/etc/inittab | ||
endef | ||
endif | ||
TARGET_FINALIZE_HOOKS += SKELETON_SYSTEM_GETTY | ||
endif | ||
|
||
ifeq ($(BR2_INIT_BUSYBOX)$(BR2_INIT_SYSV),y) | ||
ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y) | ||
# Find commented line, if any, and remove leading '#'s | ||
define SKELETON_SYSTEM_REMOUNT_RW | ||
$(SED) '/^#.*-o remount,rw \/$$/s~^#\+~~' $(TARGET_DIR)/etc/inittab | ||
endef | ||
else | ||
# Find uncommented line, if any, and add a leading '#' | ||
define SKELETON_SYSTEM_REMOUNT_RW | ||
$(SED) '/^[^#].*-o remount,rw \/$$/s~^~#~' $(TARGET_DIR)/etc/inittab | ||
endef | ||
endif | ||
TARGET_FINALIZE_HOOKS += SKELETON_SYSTEM_REMOUNT_RW | ||
endif # BR2_INIT_BUSYBOX || BR2_INIT_SYSV | ||
|
||
endif # BR2_ROOTFS_SKELETON_DEFAULT | ||
|
||
$(eval $(generic-package)) |
Oops, something went wrong.