blob: 7c9d9ca4f1070e4c0ad6f6701f9b0553955dbf92 [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
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500111 install -m 0755 ${WORKDIR}/dmesg.sh ${D}${sysconfdir}/init.d
112 install -m 0644 ${WORKDIR}/logrotate-dmesg.conf ${D}${sysconfdir}/
113
114 if [ "${TARGET_ARCH}" = "arm" ]; then
115 install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d
116 fi
117
118 if ${@bb.utils.contains('DISTRO_FEATURES','selinux','true','false',d)}; then
119 install -d ${D}/${base_sbindir}
120 install -m 0755 ${WORKDIR}/sushell ${D}/${base_sbindir}
121 fi
122#
123# Install device dependent scripts
124#
125 install -m 0755 ${WORKDIR}/banner.sh ${D}${sysconfdir}/init.d/banner.sh
126 install -m 0755 ${WORKDIR}/umountfs ${D}${sysconfdir}/init.d/umountfs
127#
128# Create runlevel links
129#
130 update-rc.d -r ${D} rmnologin.sh start 99 2 3 4 5 .
131 update-rc.d -r ${D} sendsigs start 20 0 6 .
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500132 update-rc.d -r ${D} urandom start 38 S 0 6 .
Patrick Williamsdb4c27e2022-08-05 08:10:29 -0500133 update-rc.d -r ${D} umountnfs.sh stop 31 0 1 6 .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500134 update-rc.d -r ${D} umountfs start 40 0 6 .
135 update-rc.d -r ${D} reboot start 90 6 .
136 update-rc.d -r ${D} halt start 90 0 .
137 update-rc.d -r ${D} save-rtc.sh start 25 0 6 .
138 update-rc.d -r ${D} banner.sh start 02 S .
Andrew Geissler09209ee2020-12-13 08:44:15 -0600139 update-rc.d -r ${D} checkroot.sh start 05 S .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500140 update-rc.d -r ${D} mountall.sh start 03 S .
141 update-rc.d -r ${D} hostname.sh start 39 S .
142 update-rc.d -r ${D} mountnfs.sh start 15 2 3 4 5 .
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500143 update-rc.d -r ${D} bootmisc.sh start 36 S .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500144 update-rc.d -r ${D} sysfs.sh start 02 S .
145 update-rc.d -r ${D} populate-volatile.sh start 37 S .
146 update-rc.d -r ${D} read-only-rootfs-hook.sh start 29 S .
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600147 update-rc.d -r ${D} devpts.sh start 06 S .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500148 if [ "${TARGET_ARCH}" = "arm" ]; then
149 update-rc.d -r ${D} alignment.sh start 06 S .
150 fi
151 # We wish to have /var/log ready at this stage so execute this after
152 # populate-volatile.sh
153 update-rc.d -r ${D} dmesg.sh start 38 S .
154}
155
156MASKED_SCRIPTS = " \
157 banner \
158 bootmisc \
159 checkfs \
160 checkroot \
161 devpts \
162 dmesg \
163 hostname \
164 mountall \
165 mountnfs \
166 populate-volatile \
167 read-only-rootfs-hook \
168 rmnologin \
169 sysfs \
170 urandom"
171
Patrick Williams213cb262021-08-07 19:21:33 -0500172pkg_postinst:${PN} () {
Andrew Geissler475cb722020-07-10 16:00:51 -0500173 if type systemctl >/dev/null 2>/dev/null; then
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500174 if [ -n "$D" ]; then
175 OPTS="--root=$D"
176 fi
177 for SERVICE in ${MASKED_SCRIPTS}; do
178 systemctl $OPTS mask $SERVICE.service
179 done
180 fi
181
182 # Delete any old volatile cache script, as directories may have moved
183 if [ -z "$D" ]; then
184 rm -f "/etc/volatile.cache"
185 fi
186}
187
Patrick Williams213cb262021-08-07 19:21:33 -0500188CONFFILES:${PN} += "${sysconfdir}/init.d/checkroot.sh"