blob: 5dfe39e23381baabba6df0b1acef3a59320c12b3 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -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=349c872e0066155e1818b786938876a4"
8PR = "r14"
9
10RDEPENDS_${PN} = "${PN}-inittab"
11
12SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.bz2 \
13 file://install.patch \
14 file://crypt-lib.patch \
15 file://pidof-add-m-option.patch \
16 file://0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch \
17 file://rcS-default \
18 file://rc \
19 file://rcS \
20 file://bootlogd.init \
21 file://01_bootlogd \
22"
23
24SRC_URI[md5sum] = "6eda8a97b86e0a6f59dabbf25202aa6f"
25SRC_URI[sha256sum] = "60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5df1519"
26
27S = "${WORKDIR}/sysvinit-${PV}"
28B = "${S}/src"
29
30inherit update-alternatives
31DEPENDS_append = " update-rc.d-native base-passwd"
32
33ALTERNATIVE_${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall"
34
35ALTERNATIVE_PRIORITY = "200"
36
37ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init"
38ALTERNATIVE_PRIORITY[init] = "50"
39
40ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint"
41ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
42ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
43ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
44ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
45ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
46
47ALTERNATIVE_${PN}-pidof = "pidof"
48ALTERNATIVE_LINK_NAME[pidof] = "${base_bindir}/pidof"
49
50ALTERNATIVE_${PN}-sulogin = "sulogin"
51ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin"
52
53ALTERNATIVE_${PN}-doc = "mountpoint.1 last.1 mesg.1 wall.1 sulogin.8 utmpdump.1"
54
55ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1"
56ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1"
57ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1"
58ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8"
59ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1"
60ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1"
61
62PACKAGES =+ "sysvinit-pidof sysvinit-sulogin"
63FILES_${PN} += "${base_sbindir}/* ${base_bindir}/*"
64FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5"
65FILES_sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit"
66
67RDEPENDS_${PN} += "sysvinit-pidof initscripts-functions"
68
69CFLAGS_prepend = "-D_GNU_SOURCE "
70export LCRYPT = "-lcrypt"
71EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \
72 'base_sbindir=${base_sbindir}' \
73 'bindir=${bindir}' \
74 'sbindir=${sbindir}' \
75 'sysconfdir=${sysconfdir}' \
76 'includedir=${includedir}' \
77 'mandir=${mandir}'"
78
79do_install () {
80 oe_runmake 'ROOT=${D}' install
81
82 install -d ${D}${sysconfdir} \
83 ${D}${sysconfdir}/default \
84 ${D}${sysconfdir}/init.d
85 for level in S 0 1 2 3 4 5 6; do
86 install -d ${D}${sysconfdir}/rc$level.d
87 done
88
89 install -m 0644 ${WORKDIR}/rcS-default ${D}${sysconfdir}/default/rcS
90 install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d
91 install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d
92 install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd
93 ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
94
95 update-rc.d -r ${D} bootlogd start 07 S .
96 update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 .
97
98 install -d ${D}${sysconfdir}/default/volatiles
99 install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles
100
101 chown root.shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
102 chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
103}
104
105python () {
106 if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
107 raise bb.parse.SkipPackage("'sysvinit' not in DISTRO_FEATURES")
108}