blob: 91eea4b8c247a0af36c2a9518ba6f69592f934f6 [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"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
7PR = "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 \
34 file://GPLv2.patch \
35 file://dmesg.sh \
36 file://logrotate-dmesg.conf \
37 ${@bb.utils.contains('DISTRO_FEATURES','selinux','file://sushell','',d)} \
38"
39
40S = "${WORKDIR}"
41
42SRC_URI_append_arm = " file://alignment.sh"
43
44KERNEL_VERSION = ""
45
Patrick Williamsc124f4f2015-09-15 14:41:29 -050046DEPENDS_append = " update-rc.d-native"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050047PACKAGE_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"
50RDEPENDS_${PN} = "initd-functions \
51 ${@bb.utils.contains('DISTRO_FEATURES','selinux','${PN}-sushell','',d)} \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050052 "
Brad Bishopd7bf8c12018-02-25 22:55:05 -050053# Recommend pn-functions so that it will be a preferred default provider for initd-functions
54RRECOMMENDS_${PN} = "${PN}-functions"
55RPROVIDES_${PN}-functions = "initd-functions"
56RCONFLICTS_${PN}-functions = "lsbinitscripts"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050057FILES_${PN}-functions = "${sysconfdir}/init.d/functions*"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050058FILES_${PN}-sushell = "${base_sbindir}/sushell"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050059
60HALTARGS ?= "-d -f"
61
62do_configure() {
63 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${WORKDIR}/halt
64 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${WORKDIR}/reboot
65}
66
67do_install () {
68#
69# Create directories and install device independent scripts
70#
71 install -d ${D}${sysconfdir}/init.d
72 install -d ${D}${sysconfdir}/rcS.d
73 install -d ${D}${sysconfdir}/rc0.d
74 install -d ${D}${sysconfdir}/rc1.d
75 install -d ${D}${sysconfdir}/rc2.d
76 install -d ${D}${sysconfdir}/rc3.d
77 install -d ${D}${sysconfdir}/rc4.d
78 install -d ${D}${sysconfdir}/rc5.d
79 install -d ${D}${sysconfdir}/rc6.d
80 install -d ${D}${sysconfdir}/default
81 install -d ${D}${sysconfdir}/default/volatiles
82 # Holds state information pertaining to urandom
83 install -d ${D}${localstatedir}/lib/urandom
84
85 install -m 0644 ${WORKDIR}/functions ${D}${sysconfdir}/init.d
86 install -m 0755 ${WORKDIR}/bootmisc.sh ${D}${sysconfdir}/init.d
87 install -m 0755 ${WORKDIR}/checkroot.sh ${D}${sysconfdir}/init.d
88 install -m 0755 ${WORKDIR}/halt ${D}${sysconfdir}/init.d
89 install -m 0755 ${WORKDIR}/hostname.sh ${D}${sysconfdir}/init.d
90 install -m 0755 ${WORKDIR}/mountall.sh ${D}${sysconfdir}/init.d
91 install -m 0755 ${WORKDIR}/mountnfs.sh ${D}${sysconfdir}/init.d
92 install -m 0755 ${WORKDIR}/reboot ${D}${sysconfdir}/init.d
93 install -m 0755 ${WORKDIR}/rmnologin.sh ${D}${sysconfdir}/init.d
94 install -m 0755 ${WORKDIR}/sendsigs ${D}${sysconfdir}/init.d
95 install -m 0755 ${WORKDIR}/single ${D}${sysconfdir}/init.d
96 install -m 0755 ${WORKDIR}/umountnfs.sh ${D}${sysconfdir}/init.d
97 install -m 0755 ${WORKDIR}/urandom ${D}${sysconfdir}/init.d
98 sed -i ${D}${sysconfdir}/init.d/urandom -e 's,/var/,${localstatedir}/,g;s,/etc/,${sysconfdir}/,g'
99 install -m 0755 ${WORKDIR}/devpts.sh ${D}${sysconfdir}/init.d
100 install -m 0755 ${WORKDIR}/devpts ${D}${sysconfdir}/default
101 install -m 0755 ${WORKDIR}/sysfs.sh ${D}${sysconfdir}/init.d
102 install -m 0755 ${WORKDIR}/populate-volatile.sh ${D}${sysconfdir}/init.d
103 install -m 0755 ${WORKDIR}/read-only-rootfs-hook.sh ${D}${sysconfdir}/init.d
104 install -m 0755 ${WORKDIR}/save-rtc.sh ${D}${sysconfdir}/init.d
105 install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/00_core
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500106 if [ ${@ oe.types.boolean('${VOLATILE_LOG_DIR}') } = True ]; then
107 echo "l root root 0755 /var/log /var/volatile/log" >> ${D}${sysconfdir}/default/volatiles/00_core
108 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500109 install -m 0755 ${WORKDIR}/dmesg.sh ${D}${sysconfdir}/init.d
110 install -m 0644 ${WORKDIR}/logrotate-dmesg.conf ${D}${sysconfdir}/
111
112 if [ "${TARGET_ARCH}" = "arm" ]; then
113 install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d
114 fi
115
116 if ${@bb.utils.contains('DISTRO_FEATURES','selinux','true','false',d)}; then
117 install -d ${D}/${base_sbindir}
118 install -m 0755 ${WORKDIR}/sushell ${D}/${base_sbindir}
119 fi
120#
121# Install device dependent scripts
122#
123 install -m 0755 ${WORKDIR}/banner.sh ${D}${sysconfdir}/init.d/banner.sh
124 install -m 0755 ${WORKDIR}/umountfs ${D}${sysconfdir}/init.d/umountfs
125#
126# Create runlevel links
127#
128 update-rc.d -r ${D} rmnologin.sh start 99 2 3 4 5 .
129 update-rc.d -r ${D} sendsigs start 20 0 6 .
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500130 update-rc.d -r ${D} urandom start 38 S 0 6 .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500131 update-rc.d -r ${D} umountnfs.sh start 31 0 1 6 .
132 update-rc.d -r ${D} umountfs start 40 0 6 .
133 update-rc.d -r ${D} reboot start 90 6 .
134 update-rc.d -r ${D} halt start 90 0 .
135 update-rc.d -r ${D} save-rtc.sh start 25 0 6 .
136 update-rc.d -r ${D} banner.sh start 02 S .
137 update-rc.d -r ${D} checkroot.sh start 06 S .
138 update-rc.d -r ${D} mountall.sh start 03 S .
139 update-rc.d -r ${D} hostname.sh start 39 S .
140 update-rc.d -r ${D} mountnfs.sh start 15 2 3 4 5 .
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500141 update-rc.d -r ${D} bootmisc.sh start 36 S .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500142 update-rc.d -r ${D} sysfs.sh start 02 S .
143 update-rc.d -r ${D} populate-volatile.sh start 37 S .
144 update-rc.d -r ${D} read-only-rootfs-hook.sh start 29 S .
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600145 update-rc.d -r ${D} devpts.sh start 06 S .
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500146 if [ "${TARGET_ARCH}" = "arm" ]; then
147 update-rc.d -r ${D} alignment.sh start 06 S .
148 fi
149 # We wish to have /var/log ready at this stage so execute this after
150 # populate-volatile.sh
151 update-rc.d -r ${D} dmesg.sh start 38 S .
152}
153
154MASKED_SCRIPTS = " \
155 banner \
156 bootmisc \
157 checkfs \
158 checkroot \
159 devpts \
160 dmesg \
161 hostname \
162 mountall \
163 mountnfs \
164 populate-volatile \
165 read-only-rootfs-hook \
166 rmnologin \
167 sysfs \
168 urandom"
169
170pkg_postinst_${PN} () {
171 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
172 if [ -n "$D" ]; then
173 OPTS="--root=$D"
174 fi
175 for SERVICE in ${MASKED_SCRIPTS}; do
176 systemctl $OPTS mask $SERVICE.service
177 done
178 fi
179
180 # Delete any old volatile cache script, as directories may have moved
181 if [ -z "$D" ]; then
182 rm -f "/etc/volatile.cache"
183 fi
184}
185
186CONFFILES_${PN} += "${sysconfdir}/init.d/checkroot.sh"