blob: 4dc477bb8d694db8fbacdbe63c8c56d429242ec5 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001SUMMARY = "SysV init scripts"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002HOMEPAGE = "https://github.com/fedora-sysv/initscripts"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003DESCRIPTION = "Initscripts provide the basic system startup initialization scripts for the system. These scripts include actions such as filesystem mounting, fsck, RTC manipulation and other actions routinely performed at system startup. In addition, the scripts are also used during system shutdown to reverse the actions performed at startup."
4SECTION = "base"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00005LICENSE = "GPL-2.0-only"
Patrick Williams45852732022-04-02 08:58:32 -05006LIC_FILES_CHKSUM = "file://functions;beginline=7;endline=7;md5=829e563511c9a1d6d41f17a7a4989d6a"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007PR = "r155"
8
9INHIBIT_DEFAULT_DEPS = "1"
10
11SRC_URI = "file://functions \
12 file://halt \
13 file://umountfs \
14 file://devpts.sh \
15 file://devpts \
16 file://hostname.sh \
17 file://mountall.sh \
18 file://banner.sh \
19 file://bootmisc.sh \
20 file://mountnfs.sh \
21 file://reboot \
22 file://checkfs.sh \
23 file://single \
24 file://sendsigs \
25 file://urandom \
26 file://rmnologin.sh \
27 file://checkroot.sh \
28 file://umountnfs.sh \
29 file://sysfs.sh \
30 file://populate-volatile.sh \
31 file://read-only-rootfs-hook.sh \
32 file://volatiles \
33 file://save-rtc.sh \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050034 file://dmesg.sh \
35 file://logrotate-dmesg.conf \
36 ${@bb.utils.contains('DISTRO_FEATURES','selinux','file://sushell','',d)} \
37"
38
39S = "${WORKDIR}"
40
Patrick Williams213cb262021-08-07 19:21:33 -050041SRC_URI:append:arm = " file://alignment.sh"
42SRC_URI:append:armeb = " file://alignment.sh"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050043
44KERNEL_VERSION = ""
45
Patrick Williams213cb262021-08-07 19:21:33 -050046DEPENDS:append = " update-rc.d-native"
47PACKAGE_WRITE_DEPS:append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050048
Brad Bishopd7bf8c12018-02-25 22:55:05 -050049PACKAGES =+ "${PN}-functions ${PN}-sushell"
Patrick Williams213cb262021-08-07 19:21:33 -050050RDEPENDS:${PN} = "initd-functions \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050051 ${@bb.utils.contains('DISTRO_FEATURES','selinux','${PN}-sushell','',d)} \
Andrew Geissler4ed12e12020-06-05 18:00:41 -050052 init-system-helpers-service \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050053 "
Brad Bishopd7bf8c12018-02-25 22:55:05 -050054# Recommend pn-functions so that it will be a preferred default provider for initd-functions
Patrick Williams213cb262021-08-07 19:21:33 -050055RRECOMMENDS:${PN} = "${PN}-functions"
56RPROVIDES:${PN}-functions = "initd-functions"
57RCONFLICTS:${PN}-functions = "lsbinitscripts"
58FILES:${PN}-functions = "${sysconfdir}/init.d/functions*"
59FILES:${PN}-sushell = "${base_sbindir}/sushell"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050060
61HALTARGS ?= "-d -f"
62
63do_configure() {
64 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${WORKDIR}/halt
65 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${WORKDIR}/reboot
66}
67
68do_install () {
69#
70# Create directories and install device independent scripts
71#
72 install -d ${D}${sysconfdir}/init.d
73 install -d ${D}${sysconfdir}/rcS.d
74 install -d ${D}${sysconfdir}/rc0.d
75 install -d ${D}${sysconfdir}/rc1.d
76 install -d ${D}${sysconfdir}/rc2.d
77 install -d ${D}${sysconfdir}/rc3.d
78 install -d ${D}${sysconfdir}/rc4.d
79 install -d ${D}${sysconfdir}/rc5.d
80 install -d ${D}${sysconfdir}/rc6.d
81 install -d ${D}${sysconfdir}/default
82 install -d ${D}${sysconfdir}/default/volatiles
83 # Holds state information pertaining to urandom
84 install -d ${D}${localstatedir}/lib/urandom
85
86 install -m 0644 ${WORKDIR}/functions ${D}${sysconfdir}/init.d
87 install -m 0755 ${WORKDIR}/bootmisc.sh ${D}${sysconfdir}/init.d
88 install -m 0755 ${WORKDIR}/checkroot.sh ${D}${sysconfdir}/init.d
89 install -m 0755 ${WORKDIR}/halt ${D}${sysconfdir}/init.d
90 install -m 0755 ${WORKDIR}/hostname.sh ${D}${sysconfdir}/init.d
91 install -m 0755 ${WORKDIR}/mountall.sh ${D}${sysconfdir}/init.d
92 install -m 0755 ${WORKDIR}/mountnfs.sh ${D}${sysconfdir}/init.d
93 install -m 0755 ${WORKDIR}/reboot ${D}${sysconfdir}/init.d
94 install -m 0755 ${WORKDIR}/rmnologin.sh ${D}${sysconfdir}/init.d
95 install -m 0755 ${WORKDIR}/sendsigs ${D}${sysconfdir}/init.d
96 install -m 0755 ${WORKDIR}/single ${D}${sysconfdir}/init.d
97 install -m 0755 ${WORKDIR}/umountnfs.sh ${D}${sysconfdir}/init.d
98 install -m 0755 ${WORKDIR}/urandom ${D}${sysconfdir}/init.d
99 sed -i ${D}${sysconfdir}/init.d/urandom -e 's,/var/,${localstatedir}/,g;s,/etc/,${sysconfdir}/,g'
100 install -m 0755 ${WORKDIR}/devpts.sh ${D}${sysconfdir}/init.d
101 install -m 0755 ${WORKDIR}/devpts ${D}${sysconfdir}/default
102 install -m 0755 ${WORKDIR}/sysfs.sh ${D}${sysconfdir}/init.d
103 install -m 0755 ${WORKDIR}/populate-volatile.sh ${D}${sysconfdir}/init.d
104 install -m 0755 ${WORKDIR}/read-only-rootfs-hook.sh ${D}${sysconfdir}/init.d
105 install -m 0755 ${WORKDIR}/save-rtc.sh ${D}${sysconfdir}/init.d
106 install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/00_core
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500107 if [ ${@ oe.types.boolean('${VOLATILE_LOG_DIR}') } = True ]; then
Patrick Williams213cb262021-08-07 19:21:33 -0500108 sed -i -e '\@^d root root 0755 /var/volatile/log none$@ a\l root root 0755 /var/log /var/volatile/log' \
109 ${D}${sysconfdir}/default/volatiles/00_core
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500110 fi
Andrew Geissler6aa7eec2023-03-03 12:41:14 -0600111 if [ "${VOLATILE_TMP_DIR}" != "yes" ]; then
112 sed -i -e "/\<tmp\>/d" ${D}${sysconfdir}/default/volatiles/00_core
113 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500114 install -m 0755 ${WORKDIR}/dmesg.sh ${D}${sysconfdir}/init.d
115 install -m 0644 ${WORKDIR}/logrotate-dmesg.conf ${D}${sysconfdir}/
116
117 if [ "${TARGET_ARCH}" = "arm" ]; then
118 install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d
119 fi
120
121 if ${@bb.utils.contains('DISTRO_FEATURES','selinux','true','false',d)}; then
122 install -d ${D}/${base_sbindir}
123 install -m 0755 ${WORKDIR}/sushell ${D}/${base_sbindir}
124 fi
125#
126# Install device dependent scripts
127#
128 install -m 0755 ${WORKDIR}/banner.sh ${D}${sysconfdir}/init.d/banner.sh
129 install -m 0755 ${WORKDIR}/umountfs ${D}${sysconfdir}/init.d/umountfs
130#
131# Create runlevel links
132#
133 update-rc.d -r ${D} rmnologin.sh start 99 2 3 4 5 .
134 update-rc.d -r ${D} sendsigs start 20 0 6 .
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500135 update-rc.d -r ${D} urandom start 38 S 0 6 .
Patrick Williamsdb4c27e2022-08-05 08:10:29 -0500136 update-rc.d -r ${D} umountnfs.sh stop 31 0 1 6 .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500137 update-rc.d -r ${D} umountfs start 40 0 6 .
138 update-rc.d -r ${D} reboot start 90 6 .
139 update-rc.d -r ${D} halt start 90 0 .
140 update-rc.d -r ${D} save-rtc.sh start 25 0 6 .
141 update-rc.d -r ${D} banner.sh start 02 S .
Andrew Geissler09209ee2020-12-13 08:44:15 -0600142 update-rc.d -r ${D} checkroot.sh start 05 S .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500143 update-rc.d -r ${D} mountall.sh start 03 S .
144 update-rc.d -r ${D} hostname.sh start 39 S .
145 update-rc.d -r ${D} mountnfs.sh start 15 2 3 4 5 .
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500146 update-rc.d -r ${D} bootmisc.sh start 36 S .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500147 update-rc.d -r ${D} sysfs.sh start 02 S .
148 update-rc.d -r ${D} populate-volatile.sh start 37 S .
149 update-rc.d -r ${D} read-only-rootfs-hook.sh start 29 S .
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600150 update-rc.d -r ${D} devpts.sh start 06 S .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500151 if [ "${TARGET_ARCH}" = "arm" ]; then
152 update-rc.d -r ${D} alignment.sh start 06 S .
153 fi
154 # We wish to have /var/log ready at this stage so execute this after
155 # populate-volatile.sh
156 update-rc.d -r ${D} dmesg.sh start 38 S .
157}
158
159MASKED_SCRIPTS = " \
160 banner \
161 bootmisc \
162 checkfs \
163 checkroot \
164 devpts \
165 dmesg \
166 hostname \
167 mountall \
168 mountnfs \
169 populate-volatile \
170 read-only-rootfs-hook \
171 rmnologin \
172 sysfs \
173 urandom"
174
Patrick Williams213cb262021-08-07 19:21:33 -0500175pkg_postinst:${PN} () {
Andrew Geissler475cb722020-07-10 16:00:51 -0500176 if type systemctl >/dev/null 2>/dev/null; then
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500177 if [ -n "$D" ]; then
178 OPTS="--root=$D"
179 fi
180 for SERVICE in ${MASKED_SCRIPTS}; do
181 systemctl $OPTS mask $SERVICE.service
182 done
183 fi
184
185 # Delete any old volatile cache script, as directories may have moved
186 if [ -z "$D" ]; then
187 rm -f "/etc/volatile.cache"
188 fi
189}
190
Patrick Williams213cb262021-08-07 19:21:33 -0500191CONFFILES:${PN} += "${sysconfdir}/init.d/checkroot.sh"