blob: 9ba9652f94ac38de70805d243b35ff16ed1602af [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001SUMMARY = "System-V like init"
2DESCRIPTION = "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."
3HOMEPAGE = "http://savannah.nongnu.org/projects/sysvinit/"
4SECTION = "base"
5LICENSE = "GPLv2+"
6LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
7 file://COPYRIGHT;endline=15;md5=a1d3b3526501d3546d530bbe6ab6cdbe \
8 "
9
Patrick Williams213cb262021-08-07 19:21:33 -050010RDEPENDS:${PN} = "${PN}-inittab"
Andrew Geissler82c905d2020-04-13 13:39:40 -050011
12SRC_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 Geissler90fd73c2021-03-05 15:25:55 -060024SRC_URI[sha256sum] = "b05c3677bb698afe64c997968b00c49b2a9bd320ce963523230ee7ea41197757"
Andrew Geissler82c905d2020-04-13 13:39:40 -050025
26S = "${WORKDIR}/sysvinit-${PV}"
Andrew Geissler82c905d2020-04-13 13:39:40 -050027
28inherit update-alternatives features_check
Patrick Williams213cb262021-08-07 19:21:33 -050029DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt"
Andrew Geissler82c905d2020-04-13 13:39:40 -050030do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot"
31
Andrew Geisslerd1e89492021-02-12 15:35:20 -060032PACKAGECONFIG[psplash-text-updates] = ",,"
33
Andrew Geissler82c905d2020-04-13 13:39:40 -050034REQUIRED_DISTRO_FEATURES = "sysvinit"
35
Patrick Williams213cb262021-08-07 19:21:33 -050036ALTERNATIVE:${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall"
Andrew Geissler82c905d2020-04-13 13:39:40 -050037
38ALTERNATIVE_PRIORITY = "200"
39
40ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init"
41ALTERNATIVE_PRIORITY[init] = "50"
42
43ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint"
44ALTERNATIVE_PRIORITY[mountpoint] = "20"
45
46ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
47ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
48ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
49ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
50ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
51
Patrick Williams213cb262021-08-07 19:21:33 -050052ALTERNATIVE:${PN}-pidof = "pidof"
Andrew Geissler82c905d2020-04-13 13:39:40 -050053ALTERNATIVE_LINK_NAME[pidof] = "${base_bindir}/pidof"
54
Patrick Williams213cb262021-08-07 19:21:33 -050055ALTERNATIVE:${PN}-sulogin = "sulogin"
Andrew Geissler82c905d2020-04-13 13:39:40 -050056ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin"
57
Patrick Williams213cb262021-08-07 19:21:33 -050058ALTERNATIVE:${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 sulogin.8 utmpdump.1"
Andrew Geissler82c905d2020-04-13 13:39:40 -050059
60ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1"
61ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1"
62ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1"
63ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1"
64ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8"
65ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1"
66ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1"
67
68PACKAGES =+ "sysvinit-pidof sysvinit-sulogin"
Patrick Williams213cb262021-08-07 19:21:33 -050069FILES:${PN} += "${base_sbindir}/* ${base_bindir}/*"
70FILES:sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5"
71FILES:sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit"
Andrew Geissler82c905d2020-04-13 13:39:40 -050072
Patrick Williams213cb262021-08-07 19:21:33 -050073RDEPENDS:${PN} += "sysvinit-pidof initd-functions base-passwd"
Andrew Geissler82c905d2020-04-13 13:39:40 -050074
Patrick Williams213cb262021-08-07 19:21:33 -050075CFLAGS:prepend = "-D_GNU_SOURCE "
Andrew Geissler82c905d2020-04-13 13:39:40 -050076export LCRYPT = "-lcrypt"
77EXTRA_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
86do_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 Geisslerd1e89492021-02-12 15:35:20 -060096 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 Geissler82c905d2020-04-13 13:39:40 -0500100 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}