Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 1 | SUMMARY = "System-V like init" |
| 2 | DESCRIPTION = "This package is required to boot in most configurations. It provides the /sbin/init program. This is the first process started on boot, and the last process terminated before the system halts." |
| 3 | HOMEPAGE = "http://savannah.nongnu.org/projects/sysvinit/" |
| 4 | SECTION = "base" |
| 5 | LICENSE = "GPLv2+" |
| 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ |
| 7 | file://COPYRIGHT;endline=15;md5=a1d3b3526501d3546d530bbe6ab6cdbe \ |
| 8 | " |
| 9 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 10 | RDEPENDS:${PN} = "${PN}-inittab" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 11 | |
| 12 | SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \ |
| 13 | file://install.patch \ |
| 14 | file://crypt-lib.patch \ |
| 15 | file://pidof-add-m-option.patch \ |
| 16 | file://realpath.patch \ |
| 17 | file://0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch \ |
| 18 | file://rcS-default \ |
| 19 | file://rc \ |
| 20 | file://rcS \ |
| 21 | file://bootlogd.init \ |
| 22 | file://01_bootlogd \ |
| 23 | " |
Andrew Geissler | 90fd73c | 2021-03-05 15:25:55 -0600 | [diff] [blame] | 24 | SRC_URI[sha256sum] = "b05c3677bb698afe64c997968b00c49b2a9bd320ce963523230ee7ea41197757" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 25 | |
| 26 | S = "${WORKDIR}/sysvinit-${PV}" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 27 | |
| 28 | inherit update-alternatives features_check |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 29 | DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 30 | do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot" |
| 31 | |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 32 | PACKAGECONFIG[psplash-text-updates] = ",," |
| 33 | |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 34 | REQUIRED_DISTRO_FEATURES = "sysvinit" |
| 35 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 36 | ALTERNATIVE:${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 37 | |
| 38 | ALTERNATIVE_PRIORITY = "200" |
| 39 | |
| 40 | ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init" |
| 41 | ALTERNATIVE_PRIORITY[init] = "50" |
| 42 | |
| 43 | ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint" |
| 44 | ALTERNATIVE_PRIORITY[mountpoint] = "20" |
| 45 | |
| 46 | ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" |
| 47 | ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" |
| 48 | ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" |
| 49 | ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" |
| 50 | ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" |
| 51 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 52 | ALTERNATIVE:${PN}-pidof = "pidof" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 53 | ALTERNATIVE_LINK_NAME[pidof] = "${base_bindir}/pidof" |
| 54 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 55 | ALTERNATIVE:${PN}-sulogin = "sulogin" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 56 | ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin" |
| 57 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 58 | ALTERNATIVE:${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 sulogin.8 utmpdump.1" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 59 | |
| 60 | ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1" |
| 61 | ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1" |
| 62 | ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1" |
| 63 | ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1" |
| 64 | ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8" |
| 65 | ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1" |
| 66 | ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1" |
| 67 | |
| 68 | PACKAGES =+ "sysvinit-pidof sysvinit-sulogin" |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 69 | FILES:${PN} += "${base_sbindir}/* ${base_bindir}/*" |
| 70 | FILES:sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5" |
| 71 | FILES:sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 72 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 73 | RDEPENDS:${PN} += "sysvinit-pidof initd-functions base-passwd" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 74 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame^] | 75 | CFLAGS:prepend = "-D_GNU_SOURCE " |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 76 | export LCRYPT = "-lcrypt" |
| 77 | EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \ |
| 78 | 'base_sbindir=${base_sbindir}' \ |
| 79 | 'bindir=${bindir}' \ |
| 80 | 'sbindir=${sbindir}' \ |
| 81 | 'sysconfdir=${sysconfdir}' \ |
| 82 | 'includedir=${includedir}' \ |
| 83 | 'mandir=${mandir}' \ |
| 84 | MNTPOINT=yes" |
| 85 | |
| 86 | do_install () { |
| 87 | oe_runmake 'ROOT=${D}' install |
| 88 | |
| 89 | install -d ${D}${sysconfdir} \ |
| 90 | ${D}${sysconfdir}/default \ |
| 91 | ${D}${sysconfdir}/init.d |
| 92 | for level in S 0 1 2 3 4 5 6; do |
| 93 | install -d ${D}${sysconfdir}/rc$level.d |
| 94 | done |
| 95 | |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 96 | sed -e \ |
| 97 | 's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \ |
| 98 | ${WORKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS |
| 99 | chmod 0644 ${D}${sysconfdir}/default/rcS |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 100 | install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d |
| 101 | install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d |
| 102 | install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd |
| 103 | ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd |
| 104 | |
| 105 | update-rc.d -r ${D} bootlogd start 07 S . |
| 106 | update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 . |
| 107 | |
| 108 | install -d ${D}${sysconfdir}/default/volatiles |
| 109 | install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles |
| 110 | |
| 111 | chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown |
| 112 | chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown |
| 113 | |
| 114 | # Already provided by e2fsprogs; sysvinit's version is a copy from there |
| 115 | rm ${D}${base_sbindir}/logsave |
| 116 | rm ${D}${mandir}/man8/logsave.8 |
| 117 | } |