surpport seeking the recorded video
[vuplus_openembedded] / recipes / sysvinit / sysvinit_2.86.bb
1 DESCRIPTION = "System-V like init."
2 SECTION = "base"
3 LICENSE = "GPL"
4 HOMEPAGE = "http://freshmeat.net/projects/sysvinit/"
5 PR = "r60"
6
7 # USE_VT and SERIAL_CONSOLE are generally defined by the MACHINE .conf.
8 # Set PACKAGE_ARCH appropriately.
9 PACKAGE_ARCH_${PN}-inittab = "${MACHINE_ARCH}"
10
11 RDEPENDS_${PN} = "${PN}-inittab"
12
13 PACKAGES =+ "bootlogd ${PN}-inittab"
14 FILES_bootlogd = "/etc/init.d/bootlogd /etc/init.d/stop-bootlogd /etc/rc?.d/S*bootlogd /sbin/bootlogd"
15 FILES_${PN}-inittab = "${sysconfdir}/inittab"
16 CONFFILES_${PN}-inittab = "${sysconfdir}/inittab"
17
18 USE_VT ?= "1"
19 SYSVINIT_ENABLED_GETTYS ?= "1"
20
21 INITTAB_dm7025 = "${@base_contains('PREFERRED_VERSION_linux-dm7025', '2.6.12.6', 'inittab_old', 'inittab', d)}"
22 INITTAB ?= "inittab"
23
24 SRC_URI = "ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/sysvinit-${PV}.tar.gz \
25            file://install.patch;patch=1 \
26            file://remove_print.patch;patch=1;pnum=1 \
27            file://67_init_hddown.dpatch;patch=1 \
28            file://92_sata-hddown.dpatch;patch=1 \
29            file://need \
30            file://provide \
31            file://${INITTAB} \
32            file://rcS-default \
33            file://rc \
34            file://rcS \
35            file://bootlogd.init"
36
37 S = "${WORKDIR}/sysvinit-${PV}"
38 B = "${S}/src"
39
40 inherit update-alternatives
41
42 ALTERNATIVE_NAME = "init"
43 ALTERNATIVE_LINK = "${base_sbindir}/init"
44 ALTERNATIVE_PATH = "${base_sbindir}/init.sysvinit"
45 ALTERNATIVE_PRIORITY = "60"
46
47 PACKAGES =+ "sysvinit-utils sysvinit-pidof sysvinit-sulogin"
48 FILES_${PN} += "${base_sbindir}/* ${base_bindir}/*"
49 FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit"
50 FILES_sysvinit-sulogin = "${base_sbindir}/sulogin"
51 FILES_sysvinit-utils = "${bindir}/last.${PN} ${bindir}/mesg.${PN} ${bindir}/wall.${PN} ${base_sbindir}/shutdown.${PN} ${bindir}/lastb ${bindir}/utmpdump ${base_sbindir}/runlevel"
52 RRECOMMENDS_${PN} = "sysvinit-utils"
53 RRECOMMENDS_${PN}_micro = ""
54
55 CFLAGS_prepend = "-D_GNU_SOURCE "
56 export LCRYPT = "-lcrypt"
57 EXTRA_OEMAKE += "'INSTALL=install' \
58                  'bindir=${base_bindir}' \
59                  'sbindir=${base_sbindir}' \
60                  'usrbindir=${bindir}' \
61                  'usrsbindir=${sbindir}' \
62                  'includedir=${includedir}' \
63                  'mandir=${mandir}' \
64                  DISTRO=''"
65
66 do_install () {
67         oe_runmake 'ROOT=${D}' install
68         install -d ${D}${sysconfdir}
69         install -d ${D}${sysconfdir}/default
70         install -d ${D}${sysconfdir}/init.d
71         install -m 0644 ${WORKDIR}/${INITTAB} ${D}${sysconfdir}/inittab
72         if [ ! -z "${SERIAL_CONSOLE}" ]; then
73                 echo "S:2345:respawn:${base_sbindir}/getty ${SERIAL_CONSOLE}" >> ${D}${sysconfdir}/inittab
74         fi
75         if [ "${USE_VT}" = "1" ]; then
76                 cat <<EOF >>${D}${sysconfdir}/inittab
77 # ${base_sbindir}/getty invocations for the runlevels.
78 #
79 # The "id" field MUST be the same as the last
80 # characters of the device (after "tty").
81 #
82 # Format:
83 #  <id>:<runlevels>:<action>:<process>
84 #
85
86 EOF
87
88                 for n in ${SYSVINIT_ENABLED_GETTYS}
89                 do
90                         echo "$n:2345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab
91                 done
92                 echo "" >> ${D}${sysconfdir}/inittab
93         fi
94         install -m 0644    ${WORKDIR}/rcS-default       ${D}${sysconfdir}/default/rcS
95         install -m 0755    ${WORKDIR}/rc                ${D}${sysconfdir}/init.d
96         install -m 0755    ${WORKDIR}/rcS               ${D}${sysconfdir}/init.d
97         install -m 0755    ${WORKDIR}/bootlogd.init     ${D}${sysconfdir}/init.d/bootlogd
98         ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
99         install -d ${D}${sysconfdir}/rcS.d
100         ln -sf ../init.d/bootlogd ${D}${sysconfdir}/rcS.d/S07bootlogd
101         for level in 2 3 4 5; do
102                 install -d ${D}${sysconfdir}/rc$level.d
103                 ln -sf ../init.d/stop-bootlogd ${D}${sysconfdir}/rc$level.d/S99stop-bootlogd
104         done
105         mv                 ${D}${base_sbindir}/init               ${D}${base_sbindir}/init.${PN}
106         mv ${D}${base_bindir}/pidof ${D}${base_bindir}/pidof.${PN}
107         mv ${D}${base_sbindir}/halt ${D}${base_sbindir}/halt.${PN}
108         mv ${D}${base_sbindir}/reboot ${D}${base_sbindir}/reboot.${PN}
109         mv ${D}${base_sbindir}/shutdown ${D}${base_sbindir}/shutdown.${PN}
110         mv ${D}${base_sbindir}/poweroff ${D}${base_sbindir}/poweroff.${PN}      
111         mv ${D}${bindir}/last ${D}${bindir}/last.${PN}
112         mv ${D}${bindir}/mesg ${D}${bindir}/mesg.${PN}
113         mv ${D}${bindir}/wall ${D}${bindir}/wall.${PN}
114 }
115
116 do_install_append_opendreambox () {
117         cat <<EOF >>${D}/etc/inittab
118 # enigma
119 gui:2:respawn:/usr/bin/enigma.sh
120 # enigma2
121 e2:3:respawn:/usr/bin/enigma2.sh
122 EOF
123 }
124
125 do_install_append_vuplus () {
126         cat <<EOF >>${D}/etc/inittab
127 # enigma
128 gui:2:respawn:/usr/bin/enigma.sh
129 # enigma2
130 e2:3:respawn:/usr/bin/enigma2.sh
131 EOF
132 }
133
134 pkg_postinst_${PN} () {
135 #!/bin/sh
136 update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 200
137 update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 200
138 update-alternatives --install ${base_sbindir}/poweroff poweroff poweroff.${PN} 200
139 }
140
141 pkg_postinst_sysvinit-utils () {
142 #!/bin/sh
143 update-alternatives --install ${bindir}/last last last.${PN} 200
144 update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 200
145 update-alternatives --install ${bindir}/wall wall wall.${PN} 200
146 update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 200
147 }
148
149 pkg_prerm_${PN} () {
150 #!/bin/sh
151 update-alternatives --remove halt halt.${PN}
152 update-alternatives --remove reboot reboot.${PN}
153 }
154
155 pkg_prerm_sysvinit-utils () {
156 #!/bin/sh
157 update-alternatives --remove last last.${PN}
158 update-alternatives --remove mesg mesg.${PN}
159 update-alternatives --remove wall wall.${PN}
160 update-alternatives --remove shutdown shutdown.${PN}
161 }
162
163 pkg_postinst_sysvinit-pidof () {
164 #!/bin/sh
165 update-alternatives --install ${base_bindir}/pidof pidof pidof.${PN} 200
166 }
167
168 pkg_prerm_sysvinit-pidof () {
169 #!/bin/sh
170 update-alternatives --remove pidof pidof.${PN}
171 }