sysvinit_2.88dsf.bb 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. DESCRIPTION = "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=349c872e0066155e1818b786938876a4"
  8. PR = "r1"
  9. # USE_VT and SERIAL_CONSOLE are generally defined by the MACHINE .conf.
  10. # Set PACKAGE_ARCH appropriately.
  11. PACKAGE_ARCH_${PN}-inittab = "${MACHINE_ARCH}"
  12. RDEPENDS_${PN} = "${PN}-inittab"
  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. USE_VT ?= "1"
  18. SYSVINIT_ENABLED_GETTYS ?= "1"
  19. SRC_URI = "http://download.savannah.gnu.org/releases-noredirect/sysvinit/sysvinit-${PV}.tar.bz2 \
  20. file://install.patch \
  21. file://crypt-lib.patch \
  22. file://need \
  23. file://provide \
  24. file://inittab \
  25. file://rcS-default \
  26. file://rc \
  27. file://rcS \
  28. file://bootlogd.init"
  29. SRC_URI[md5sum] = "6eda8a97b86e0a6f59dabbf25202aa6f"
  30. SRC_URI[sha256sum] = "60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5df1519"
  31. S = "${WORKDIR}/sysvinit-${PV}"
  32. B = "${S}/src"
  33. inherit update-alternatives
  34. ALTERNATIVE_NAME = "init"
  35. ALTERNATIVE_LINK = "${base_sbindir}/init"
  36. ALTERNATIVE_PATH = "${base_sbindir}/init.sysvinit"
  37. ALTERNATIVE_PRIORITY = "50"
  38. PACKAGES =+ "sysvinit-pidof sysvinit-sulogin"
  39. FILES_${PN} += "${base_sbindir}/* ${base_bindir}/*"
  40. FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit"
  41. FILES_sysvinit-sulogin = "${base_sbindir}/sulogin"
  42. CFLAGS_prepend = "-D_GNU_SOURCE "
  43. export LCRYPT = "-lcrypt"
  44. EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \
  45. 'base_sbindir=${base_sbindir}' \
  46. 'bindir=${bindir}' \
  47. 'sbindir=${sbindir}' \
  48. 'sysconfdir=${sysconfdir}' \
  49. 'includedir=${includedir}' \
  50. 'mandir=${mandir}'"
  51. do_install () {
  52. oe_runmake 'ROOT=${D}' install
  53. install -d ${D}${sysconfdir} \
  54. ${D}${sysconfdir}/default \
  55. ${D}${sysconfdir}/init.d
  56. install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab
  57. if [ ! -z "${SERIAL_CONSOLE}" ]; then
  58. echo "S:2345:respawn:${base_sbindir}/getty ${SERIAL_CONSOLE}" >> ${D}${sysconfdir}/inittab
  59. fi
  60. if [ "${USE_VT}" = "1" ]; then
  61. cat <<EOF >>${D}${sysconfdir}/inittab
  62. # ${base_sbindir}/getty invocations for the runlevels.
  63. #
  64. # The "id" field MUST be the same as the last
  65. # characters of the device (after "tty").
  66. #
  67. # Format:
  68. # <id>:<runlevels>:<action>:<process>
  69. #
  70. EOF
  71. for n in ${SYSVINIT_ENABLED_GETTYS}
  72. do
  73. echo "$n:2345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab
  74. done
  75. echo "" >> ${D}${sysconfdir}/inittab
  76. fi
  77. install -m 0644 ${WORKDIR}/rcS-default ${D}${sysconfdir}/default/rcS
  78. install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d
  79. install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d
  80. install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd
  81. ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
  82. install -d ${D}${sysconfdir}/rcS.d
  83. ln -sf ../init.d/bootlogd ${D}${sysconfdir}/rcS.d/S07bootlogd
  84. for level in 2 3 4 5; do
  85. install -d ${D}${sysconfdir}/rc$level.d
  86. ln -s ../init.d/stop-bootlogd ${D}${sysconfdir}/rc$level.d/S99stop-bootlogd
  87. done
  88. mv ${D}${base_sbindir}/init ${D}${base_sbindir}/init.${PN}
  89. mv ${D}${base_bindir}/pidof ${D}${base_bindir}/pidof.${PN}
  90. mv ${D}${base_sbindir}/halt ${D}${base_sbindir}/halt.${PN}
  91. mv ${D}${base_sbindir}/reboot ${D}${base_sbindir}/reboot.${PN}
  92. mv ${D}${base_sbindir}/shutdown ${D}${base_sbindir}/shutdown.${PN}
  93. mv ${D}${base_sbindir}/poweroff ${D}${base_sbindir}/poweroff.${PN}
  94. mv ${D}${bindir}/last ${D}${bindir}/last.${PN}
  95. mv ${D}${bindir}/mesg ${D}${bindir}/mesg.${PN}
  96. mv ${D}${bindir}/wall ${D}${bindir}/wall.${PN}
  97. }
  98. pkg_postinst_${PN} () {
  99. update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 200
  100. update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 200
  101. update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 200
  102. update-alternatives --install ${base_sbindir}/poweroff poweroff poweroff.${PN} 200
  103. update-alternatives --install ${bindir}/last last last.${PN} 200
  104. update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 200
  105. update-alternatives --install ${bindir}/wall wall wall.${PN} 200
  106. }
  107. pkg_prerm_${PN} () {
  108. update-alternatives --remove halt halt.${PN}
  109. update-alternatives --remove reboot reboot.${PN}
  110. update-alternatives --remove shutdown shutdown.${PN}
  111. update-alternatives --remove poweroff poweroff.${PN}
  112. update-alternatives --remove last last.${PN}
  113. update-alternatives --remove mesg mesg.${PN}
  114. update-alternatives --remove wall wall.${PN}
  115. }
  116. pkg_postinst_sysvinit-pidof () {
  117. update-alternatives --install ${base_bindir}/pidof pidof pidof.${PN} 200
  118. }
  119. pkg_prerm_sysvinit-pidof () {
  120. update-alternatives --remove pidof pidof.${PN}
  121. }