Commit c0fd0ac6 authored by Yann E. MORIN's avatar Yann E. MORIN Committed by Thomas Petazzoni
Browse files

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: default avatar"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: default avatarArnout 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: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 175a96c4
......@@ -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"
......
config BR2_PACKAGE_SKELETON_COMMON
bool
select BR2_PACKAGE_HAS_SKELETON
config BR2_PACKAGE_PROVIDES_SKELETON
default "skeleton-common" if BR2_PACKAGE_SKELETON_COMMON
......@@ -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
......
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
################################################################################
#
# 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))
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
################################################################################
#
# 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))
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
################################################################################
#
# 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))
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
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment