3204b01f53
Also, introduce a new test in support/testing/tests/init/test_openrc.py that ensures split-user support works properly. Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
100 lines
2.9 KiB
Makefile
100 lines
2.9 KiB
Makefile
################################################################################
|
|
#
|
|
# openrc
|
|
#
|
|
################################################################################
|
|
|
|
OPENRC_VERSION = 0.51
|
|
OPENRC_SITE = $(call github,OpenRC,openrc,$(OPENRC_VERSION))
|
|
OPENRC_LICENSE = BSD-2-Clause
|
|
OPENRC_LICENSE_FILES = LICENSE
|
|
OPENRC_CPE_ID_VENDOR = openrc_project
|
|
|
|
OPENRC_DEPENDENCIES = ncurses
|
|
|
|
OPENRC_CONF_OPTS = \
|
|
-Dos=Linux \
|
|
-Dlibrcdir=/usr/libexec/rc \
|
|
-Dpkgconfig=false \
|
|
-Dsysvinit=true \
|
|
-Drootprefix=/ \
|
|
-Dbranding="\"Buildroot $(BR2_VERSION_FULL)\""
|
|
|
|
ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y)
|
|
OPENRC_CONF_OPTS += -Dbash-completions=true
|
|
else
|
|
OPENRC_CONF_OPTS += -Dbash-completions=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
|
|
OPENRC_CONF_OPTS += -Dselinux=enabled
|
|
OPENRC_DEPENDENCIES += libselinux
|
|
else
|
|
OPENRC_CONF_OPTS += -Dselinux=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
|
|
OPENRC_CONF_OPTS += -Dpam=true
|
|
OPENRC_DEPENDENCIES += linux-pam
|
|
else
|
|
OPENRC_CONF_OPTS += -Dpam=false
|
|
endif
|
|
|
|
ifeq ($(BR2_ROOTFS_MERGED_USR),y)
|
|
OPENRC_CONF_OPTS += -Dsplit-usr=false
|
|
else
|
|
OPENRC_CONF_OPTS += -Dsplit-usr=true
|
|
endif
|
|
|
|
define OPENRC_INSTALL_SYSV_RCS_SCRIPT
|
|
$(INSTALL) -D -m 0755 $(OPENRC_PKGDIR)/sysv-rcs \
|
|
$(TARGET_DIR)/etc/init.d/sysv-rcs
|
|
endef
|
|
OPENRC_POST_INSTALL_TARGET_HOOKS += OPENRC_INSTALL_SYSV_RCS_SCRIPT
|
|
|
|
ifeq ($(BR2_PACKAGE_KBD),)
|
|
# keymaps and save-keymaps require kbd_mode and dumpkeys, respectively, so
|
|
# remove them if the kbd package is not selected (e.g. devices with serial
|
|
# console, only).
|
|
define OPENRC_NO_KBD
|
|
$(RM) $(TARGET_DIR)/etc/runlevels/boot/{keymaps,save-keymaps}
|
|
$(RM) $(TARGET_DIR)/etc/init.d/{keymaps,save-keymaps}
|
|
$(RM) $(TARGET_DIR)/etc/conf.d/keymaps
|
|
endef
|
|
OPENRC_POST_INSTALL_TARGET_HOOKS += OPENRC_NO_KBD
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_NETIFRC),y)
|
|
# netifrc replaces network, staticroute and loopback services which are
|
|
# installed by openrc
|
|
define OPENRC_NO_NET
|
|
$(RM) $(TARGET_DIR)/etc/runlevels/boot/{network,staticroute,loopback}
|
|
$(RM) $(TARGET_DIR)/etc/init.d/{network,staticroute,loopback}
|
|
$(RM) $(TARGET_DIR)/etc/conf.d/{network,staticroute,loopback}
|
|
endef
|
|
OPENRC_POST_INSTALL_TARGET_HOOKS += OPENRC_NO_NET
|
|
endif
|
|
|
|
define OPENRC_REMOVE_UNNEEDED
|
|
$(RM) -r $(TARGET_DIR)/usr/share/openrc
|
|
endef
|
|
OPENRC_TARGET_FINALIZE_HOOKS += OPENRC_REMOVE_UNNEEDED
|
|
|
|
ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
|
|
OPENRC_GETTY_SVCNAME = agetty.$(SYSTEM_GETTY_PORT)
|
|
OPENRC_GETTY_CONF_D = $(TARGET_DIR)/etc/conf.d/$(OPENRC_GETTY_SVCNAME)
|
|
define OPENRC_SET_GETTY
|
|
{ \
|
|
echo "baud=\"$(SYSTEM_GETTY_BAUDRATE)\""; \
|
|
echo "term_type=\"$(SYSTEM_GETTY_TERM)\"" ; \
|
|
echo "agetty_options=\"-L $(SYSTEM_GETTY_OPTIONS)\""; \
|
|
} > $(OPENRC_GETTY_CONF_D)
|
|
ln -sf agetty $(TARGET_DIR)/etc/init.d/$(OPENRC_GETTY_SVCNAME)
|
|
ln -sf /etc/init.d/$(OPENRC_GETTY_SVCNAME) \
|
|
$(TARGET_DIR)/etc/runlevels/default/$(OPENRC_GETTY_SVCNAME)
|
|
endef
|
|
OPENRC_TARGET_FINALIZE_HOOKS += OPENRC_SET_GETTY
|
|
endif # BR2_TARGET_GENERIC_GETTY
|
|
|
|
$(eval $(meson-package))
|