hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
################################################################################
#
# openrc
#
################################################################################
 
OPENRC_VERSION = 0.43.3
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
 
# set LIBNAME so openrc puts files in proper directories and sets proper
# paths in installed files. Since in buildroot /lib64 and /lib32 always
# points to /lib, it's safe to hardcode it to "lib"
OPENRC_MAKE_OPTS = \
   LIBNAME=lib \
   LIBEXECDIR=/usr/libexec/rc \
   MKPKGCONFIG=no \
   MKSYSVINIT=yes \
   BRANDING="Buildroot $(BR2_VERSION_FULL)" \
   CC=$(TARGET_CC)
 
ifeq ($(BR2_SHARED_LIBS),y)
OPENRC_MAKE_OPTS += MKSTATICLIBS=no
else
OPENRC_MAKE_OPTS += MKSTATICLIBS=yes
endif
 
ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
OPENRC_MAKE_OPTS += MKSELINUX=yes
OPENRC_DEPENDENCIES += libselinux
else
OPENRC_MAKE_OPTS += MKSELINUX=no
endif
 
define OPENRC_BUILD_CMDS
   $(MAKE) $(OPENRC_MAKE_OPTS) -C $(@D)
endef
 
define OPENRC_INSTALL_TARGET_CMDS
   $(MAKE) $(OPENRC_MAKE_OPTS) DESTDIR=$(TARGET_DIR) -C $(@D) install
   $(INSTALL) -D -m 0755 $(OPENRC_PKGDIR)/sysv-rcs \
       $(TARGET_DIR)/etc/init.d/sysv-rcs
endef
 
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 $(generic-package))