]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/sysvinit/sysvinit_2.86.bb
7611d79cd9ea285437464e91671331f198bc2e24
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / sysvinit / sysvinit_2.86.bb
1 DESCRIPTION = "System-V like init."
2 SECTION = "base"
3 LICENSE = "GPL"
4 MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
5 HOMEPAGE = "http://freshmeat.net/projects/sysvinit/"
6 PR = "r19"
7
8 # USE_VT and SERIAL_CONSOLE are generally defined by the MACHINE .conf.
9 # Set PACKAGE_ARCH appropriately.
10 PACKAGE_ARCH_${PN}-inittab = "${MACHINE_ARCH}"
11
12 RDEPENDS_${PN} = "${PN}-inittab"
13
14 PACKAGES =+ "bootlogd ${PN}-inittab"
15 FILES_bootlogd = "/etc/init.d/bootlogd /etc/init.d/stop-bootlogd /etc/rc?.d/S*bootlogd /sbin/bootlogd"
16 FILES_${PN}-inittab = "${sysconfdir}/inittab"
17 CONFFILES_${PN}-inittab = "${sysconfdir}/inittab"
18
19 USE_VT ?= "1"
20
21 SRC_URI = "ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/sysvinit-2.85.tar.gz \
22            file://sysvinit-2.86.patch;patch=1 \
23            file://install.patch;patch=1 \
24            file://need \
25            file://provide \
26            file://inittab \
27            file://rcS-default \
28            file://rc \
29            file://rcS \
30            file://bootlogd.init"
31 S = "${WORKDIR}/sysvinit-2.85"
32 B = "${S}/src"
33
34 inherit update-alternatives
35
36 ALTERNATIVE_NAME = "init"
37 ALTERNATIVE_LINK = "${base_sbindir}/init"
38 ALTERNATIVE_PATH = "${base_sbindir}/init.sysvinit"
39 ALTERNATIVE_PRIORITY = "50"
40
41 PACKAGES =+ "sysvinit-pidof sysvinit-sulogin"
42 FILES_${PN} += "${base_sbindir} ${base_bindir}"
43 FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit"
44 FILES_sysvinit-sulogin = "${base_sbindir}/sulogin"
45
46 CFLAGS_prepend = "-D_GNU_SOURCE "
47 export LCRYPT = "-lcrypt"
48 EXTRA_OEMAKE += "'INSTALL=install' \
49                  'bindir=${base_bindir}' \
50                  'sbindir=${base_sbindir}' \
51                  'usrbindir=${bindir}' \
52                  'usrsbindir=${sbindir}' \
53                  'includedir=${includedir}' \
54                  'mandir=${mandir}'"
55
56 do_install () {
57         oe_runmake 'ROOT=${D}' install
58         install -d ${D}${sysconfdir} \
59                    ${D}${sysconfdir}/default \
60                    ${D}${sysconfdir}/init.d
61         install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab
62         if [ ! -z "${SERIAL_CONSOLE}" ]; then
63                 echo "S:2345:respawn:${base_sbindir}/getty ${SERIAL_CONSOLE}" >> ${D}${sysconfdir}/inittab
64         fi
65         if [ "${USE_VT}" == "1" ]; then
66                 cat <<EOF >>${D}${sysconfdir}/inittab
67 # ${base_sbindir}/getty invocations for the runlevels.
68 #
69 # The "id" field MUST be the same as the last
70 # characters of the device (after "tty").
71 #
72 # Format:
73 #  <id>:<runlevels>:<action>:<process>
74 #
75 1:2345:respawn:${base_sbindir}/getty 38400 tty1
76 # 2:23:respawn:${base_sbindir}/getty 38400 tty2
77 # 3:23:respawn:${base_sbindir}/getty 38400 tty3
78 # 4:23:respawn:${base_sbindir}/getty 38400 tty4
79 EOF
80         fi
81         install -m 0644    ${WORKDIR}/rcS-default       ${D}${sysconfdir}/default/rcS
82         install -m 0755    ${WORKDIR}/rc                ${D}${sysconfdir}/init.d
83         install -m 0755    ${WORKDIR}/rcS               ${D}${sysconfdir}/init.d
84         install -m 0755    ${WORKDIR}/bootlogd.init     ${D}${sysconfdir}/init.d/bootlogd
85         ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
86         install -d ${D}${sysconfdir}/rcS.d
87         ln -sf ../init.d/bootlogd ${D}${sysconfdir}/rcS.d/S07bootlogd
88         for level in 2 3 4 5; do
89                 install -d ${D}${sysconfdir}/rc$level.d
90                 ln -s ../init.d/stop-bootlogd ${D}${sysconfdir}/rc$level.d/S99stop-bootlogd
91         done
92         mv                 ${D}${base_sbindir}/init               ${D}${base_sbindir}/init.${PN}
93         mv ${D}${base_bindir}/pidof ${D}${base_bindir}/pidof.${PN}
94         mv ${D}${base_sbindir}/halt ${D}${base_sbindir}/halt.${PN}
95         mv ${D}${base_sbindir}/reboot ${D}${base_sbindir}/reboot.${PN}
96         mv ${D}${base_sbindir}/shutdown ${D}${base_sbindir}/shutdown.${PN}
97         mv ${D}${bindir}/last ${D}${bindir}/last.${PN}
98         mv ${D}${bindir}/mesg ${D}${bindir}/mesg.${PN}
99         mv ${D}${bindir}/wall ${D}${bindir}/wall.${PN}
100 }
101
102 pkg_postinst_${PN} () {
103         update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 200
104         update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 200
105         update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 200
106         update-alternatives --install ${bindir}/last last last.${PN} 200
107         update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 200
108         update-alternatives --install ${bindir}/wall wall wall.${PN} 200
109 }
110
111 pkg_prerm_${PN} () {
112         update-alternatives --remove halt halt.${PN}
113         update-alternatives --remove reboot reboot.${PN}
114         update-alternatives --remove shutdown shutdown.${PN}
115         update-alternatives --remove last last.${PN}
116         update-alternatives --remove mesg mesg.${PN}
117         update-alternatives --remove wall wall.${PN}
118 }
119
120 pkg_postinst_sysvinit-pidof () {
121         update-alternatives --install ${base_bindir}/pidof pidof pidof.${PN} 200
122 }
123
124 pkg_prerm_sysvinit-pidof () {
125         update-alternatives --remove pidof pidof.${PN}
126 }