package/skeleton: introduce sysv, systemd and none specific skeletons

Currently, we use the same skeleton for sysv-like init systems and
systemd, even though systemd has some peculiarities that makes our
default skeleton unfit.

So, we'll need to provide different skeletons (really, only part of
it) for sysv-like and systemd. In addition, in order to support the
"no init system" (BR2_INIT_NONE) use case, we introduce a "none"
skeleton.

Introduce three new skeleton packages, aptly named skeleton-sysv,
skeleton-systemd and skeleton-none. All three are providers of the
skeleton virtual package, in lieu of the skeleton-common package,
which is now a simple dependency of all three new skeletons.

Those packages are empty for now. In followup changes:
  - sysv-specific stuff will be moved out of skeleton-common and into
    skeleton-sysv;
  - systemd-specific stuff will be added to skeleton-systemd.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[Arnout:
 - merge with the patch that enables the BR2_INIT_NONE case
 - simplify the BR2_PACKAGE_SKELETON_COMMON_ONLY select logic]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Thomas:
 - remove the BR2_PACKAGE_SKELETON_COMMON_ONLY logic, and instead
   introduce a separate skeleton-none package for the BR2_INIT_NONE]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Yann E. MORIN 2017-08-02 00:52:20 +02:00 committed by Thomas Petazzoni
parent 175a96c490
commit c0fd0ac655
10 changed files with 85 additions and 10 deletions

View File

@ -4,6 +4,9 @@ menu "Target packages"
source "package/skeleton/Config.in"
source "package/skeleton-common/Config.in"
source "package/skeleton-custom/Config.in"
source "package/skeleton-none/Config.in"
source "package/skeleton-systemd/Config.in"
source "package/skeleton-sysv/Config.in"
menu "Audio and video applications"
source "package/alsa-utils/Config.in"

View File

@ -1,6 +1,2 @@
config BR2_PACKAGE_SKELETON_COMMON
bool
select BR2_PACKAGE_HAS_SKELETON
config BR2_PACKAGE_PROVIDES_SKELETON
default "skeleton-common" if BR2_PACKAGE_SKELETON_COMMON

View File

@ -11,8 +11,6 @@
SKELETON_COMMON_ADD_TOOLCHAIN_DEPENDENCY = NO
SKELETON_COMMON_ADD_SKELETON_DEPENDENCY = NO
SKELETON_COMMON_PROVIDES = skeleton
# The skeleton also handles the merged /usr case in the sysroot
SKELETON_COMMON_INSTALL_STAGING = YES

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_SKELETON_NONE
bool
select BR2_PACKAGE_HAS_SKELETON
select BR2_PACKAGE_SKELETON_COMMON
config BR2_PACKAGE_PROVIDES_SKELETON
default "skeleton-none" if BR2_PACKAGE_SKELETON_NONE

View File

@ -0,0 +1,18 @@
################################################################################
#
# skeleton-none
#
################################################################################
# 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_NONE_ADD_TOOLCHAIN_DEPENDENCY = NO
SKELETON_NONE_ADD_SKELETON_DEPENDENCY = NO
SKELETON_NONE_DEPENDENCIES = skeleton-common
SKELETON_NONE_PROVIDES = skeleton
$(eval $(generic-package))

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_SKELETON_SYSTEMD
bool
select BR2_PACKAGE_HAS_SKELETON
select BR2_PACKAGE_SKELETON_COMMON
config BR2_PACKAGE_PROVIDES_SKELETON
default "skeleton-systemd" if BR2_PACKAGE_SKELETON_SYSTEMD

View File

@ -0,0 +1,18 @@
################################################################################
#
# skeleton-systemd
#
################################################################################
# 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_SYSTEMD_ADD_TOOLCHAIN_DEPENDENCY = NO
SKELETON_SYSTEMD_ADD_SKELETON_DEPENDENCY = NO
SKELETON_SYSTEMD_DEPENDENCIES = skeleton-common
SKELETON_SYSTEMD_PROVIDES = skeleton
$(eval $(generic-package))

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_SKELETON_SYSV
bool
select BR2_PACKAGE_HAS_SKELETON
select BR2_PACKAGE_SKELETON_COMMON
config BR2_PACKAGE_PROVIDES_SKELETON
default "skeleton-sysv" if BR2_PACKAGE_SKELETON_SYSV

View File

@ -0,0 +1,18 @@
################################################################################
#
# skeleton-sysv
#
################################################################################
# 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_SYSV_ADD_TOOLCHAIN_DEPENDENCY = NO
SKELETON_SYSV_ADD_SKELETON_DEPENDENCY = NO
SKELETON_SYSV_DEPENDENCIES = skeleton-common
SKELETON_SYSV_PROVIDES = skeleton
$(eval $(generic-package))

View File

@ -1,15 +1,18 @@
menu "System configuration"
# Note: usually, it is not possible to select a provider of a virtual
# package. But here we have an exception: there are only two providers
# and they only get selected each by separate entries in this choice.
# So this is a safe situation.
# package. But here we have an exception: there are only four providers
# and they only get selected by separate entries in this choice and
# under different, exclusive conditions. So this is a safe situation.
choice
prompt "Root FS skeleton"
config BR2_ROOTFS_SKELETON_DEFAULT
bool "default target skeleton"
select BR2_PACKAGE_SKELETON_COMMON
select BR2_PACKAGE_SKELETON_SYSV if BR2_INIT_SYSV
select BR2_PACKAGE_SKELETON_SYSV if BR2_INIT_BUSYBOX
select BR2_PACKAGE_SKELETON_SYSTEMD if BR2_INIT_SYSTEMD
select BR2_PACKAGE_SKELETON_NONE if BR2_INIT_NONE
help
Use default target skeleton