1SUMMARY = "SysV init scripts" 2HOMEPAGE = "https://github.com/fedora-sysv/initscripts" 3DESCRIPTION = "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 = "GPL-2.0-only" 6LIC_FILES_CHKSUM = "file://functions;beginline=7;endline=7;md5=829e563511c9a1d6d41f17a7a4989d6a" 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://dmesg.sh \ 35 file://logrotate-dmesg.conf \ 36 ${@bb.utils.contains('DISTRO_FEATURES','selinux','file://sushell','',d)} \ 37" 38 39S = "${WORKDIR}" 40 41SRC_URI:append:arm = " file://alignment.sh" 42SRC_URI:append:armeb = " file://alignment.sh" 43 44KERNEL_VERSION = "" 45 46DEPENDS:append = " update-rc.d-native" 47PACKAGE_WRITE_DEPS:append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}" 48 49PACKAGES =+ "${PN}-functions ${PN}-sushell" 50RDEPENDS:${PN} = "initd-functions \ 51 ${@bb.utils.contains('DISTRO_FEATURES','selinux','${PN}-sushell','',d)} \ 52 init-system-helpers-service \ 53 " 54# Recommend pn-functions so that it will be a preferred default provider for initd-functions 55RRECOMMENDS:${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" 60 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 107 if [ ${@ oe.types.boolean('${VOLATILE_LOG_DIR}') } = True ]; then 108 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 110 fi 111 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 . 132 update-rc.d -r ${D} urandom start 38 S 0 6 . 133 update-rc.d -r ${D} umountnfs.sh stop 31 0 1 6 . 134 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 . 139 update-rc.d -r ${D} checkroot.sh start 05 S . 140 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 . 143 update-rc.d -r ${D} bootmisc.sh start 36 S . 144 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 . 147 update-rc.d -r ${D} devpts.sh start 06 S . 148 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 172pkg_postinst:${PN} () { 173 if type systemctl >/dev/null 2>/dev/null; then 174 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 188CONFFILES:${PN} += "${sysconfdir}/init.d/checkroot.sh" 189