Bug#827733: BusyBox Init + OpenRC
Package: busybox
Version: 1.22.0-19
Tags: patch
Hi
With the package added by this patch (busybox-openrc), BusyBox Init can be used as PID 1 as a launcher for OpenRC (instead of SysV /sbin/init). This has the potential for faster boot times (but I haven't measured it, see https://blog.flameeyes.eu/2012/03/using-busybox-with-openrc).
I've only tested it on ubuntuBSD, but I think it should work fine on Debian too. I've also added Linux and Hurd versions of inittab.
--
Jon Boden
ubuntuBSD -- The power of FreeBSD kernel with familiarity of Ubuntu OS!
http://www.ubuntubsd.org/ -- https://twitter.com/ubuntuBSD
diff -Nur -x changelog ../debian/busybox-openrc.links debian/busybox-openrc.links
--- ../debian/busybox-openrc.links 1970-01-01 01:00:00.000000000 +0100
+++ debian/busybox-openrc.links 2016-06-20 13:47:35.911041000 +0200
@@ -0,0 +1,4 @@
+bin/busybox sbin/init
+bin/busybox sbin/halt
+bin/busybox sbin/reboot
+bin/busybox sbin/poweroff
diff -Nur -x changelog ../debian/control debian/control
--- ../debian/control 2015-08-07 23:39:01.000000000 +0200
+++ debian/control 2016-06-20 14:08:19.252858000 +0200
@@ -76,6 +76,23 @@
busybox-initramfs provides a simple stand alone shell that provides
only the basic utilities needed for the initramfs.
+Package: busybox-openrc
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, busybox, openrc
+Conflicts: sysvinit (<< 2.88dsf-44), sysvinit-core, upstart [linux-any], systemd-sysv [linux-any]
+Section: admin
+Description: BusyBox init for OpenRC
+ BusyBox combines tiny versions of many common UNIX utilities into a single
+ small executable. It provides minimalist replacements for the most common
+ utilities you would usually find on your desktop system (i.e., ls, cp, mv,
+ mount, tar, etc.). The utilities in BusyBox generally have fewer options than
+ their full-featured GNU cousins; however, the options that are included
+ provide the expected functionality and behave very much like their GNU
+ counterparts.
+ .
+ busybox-openrc provides a minimalist implementation of /sbin/init, configured
+ for use with OpenRC.
+
Package: busybox-udeb
Package-Type: udeb
Architecture: any
diff -Nur -x changelog ../debian/inittab.hurd debian/inittab.hurd
--- ../debian/inittab.hurd 1970-01-01 01:00:00.000000000 +0100
+++ debian/inittab.hurd 2016-06-20 14:12:59.364964000 +0200
@@ -0,0 +1,28 @@
+# /etc/inittab: init(8) configuration.
+
+# Launch OpenRC for system initialization
+::sysinit:/sbin/openrc sysinit
+::wait:/sbin/openrc boot
+::wait:/sbin/openrc default
+
+# What to do when CTRL-ALT-DEL is pressed.
+::ctrlaltdel:/sbin/reboot
+
+# /sbin/getty invocations for the runlevels.
+#
+::respawn:/sbin/getty 38400 tty1
+::respawn:/sbin/getty 38400 tty2
+::respawn:/sbin/getty 38400 tty3
+::respawn:/sbin/getty 38400 tty4
+::respawn:/sbin/getty 38400 tty5
+::respawn:/sbin/getty 38400 tty6
+::respawn:/sbin/getty 38400 console
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#::respawn:/sbin/getty -L ttyS0 9600 vt100
+#::respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#::respawn:/sbin/mgetty -x0 -s 57600 ttyS3
diff -Nur -x changelog ../debian/inittab.kfreebsd debian/inittab.kfreebsd
--- ../debian/inittab.kfreebsd 1970-01-01 01:00:00.000000000 +0100
+++ debian/inittab.kfreebsd 2016-06-20 14:13:02.382742000 +0200
@@ -0,0 +1,27 @@
+# /etc/inittab: init(8) configuration.
+
+# Launch OpenRC for system initialization
+::sysinit:/sbin/openrc sysinit
+::wait:/sbin/openrc boot
+::wait:/sbin/openrc default
+
+# What to do when CTRL-ALT-DEL is pressed.
+::ctrlaltdel:/sbin/reboot
+
+# /sbin/getty invocations for the runlevels.
+#
+::respawn:/sbin/getty 38400 ttyv0 xterm
+::respawn:/sbin/getty 38400 ttyv1 xterm
+::respawn:/sbin/getty 38400 ttyv2 xterm
+::respawn:/sbin/getty 38400 ttyv3 xterm
+::respawn:/sbin/getty 38400 ttyv4 xterm
+::respawn:/sbin/getty 38400 ttyv5 xterm
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#::respawn:/sbin/getty -L cuau0 9600 vt100
+#::respawn:/sbin/getty -L cuau1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#::respawn:/sbin/mgetty -x0 -s 57600 ttyd3
diff -Nur -x changelog ../debian/inittab.linux debian/inittab.linux
--- ../debian/inittab.linux 1970-01-01 01:00:00.000000000 +0100
+++ debian/inittab.linux 2016-06-20 14:13:05.623434000 +0200
@@ -0,0 +1,27 @@
+# /etc/inittab: init(8) configuration.
+
+# Launch OpenRC for system initialization
+::sysinit:/sbin/openrc sysinit
+::wait:/sbin/openrc boot
+::wait:/sbin/openrc default
+
+# What to do when CTRL-ALT-DEL is pressed.
+::ctrlaltdel:/sbin/reboot
+
+# /sbin/getty invocations for the runlevels.
+#
+::respawn:/sbin/getty 38400 tty1
+::respawn:/sbin/getty 38400 tty2
+::respawn:/sbin/getty 38400 tty3
+::respawn:/sbin/getty 38400 tty4
+::respawn:/sbin/getty 38400 tty5
+::respawn:/sbin/getty 38400 tty6
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#::respawn:/sbin/getty -L ttyS0 9600 vt100
+#::respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#::respawn:/sbin/mgetty -x0 -s 57600 ttyS3
diff -Nur -x changelog ../debian/rules debian/rules
--- ../debian/rules 2015-08-07 23:39:01.000000000 +0200
+++ debian/rules 2016-06-20 13:46:45.200363000 +0200
@@ -167,6 +171,10 @@
dh_installdocs -pbusybox-static docs/syslog.conf.txt docs/mdev.txt
dh_installexamples -pbusybox-static examples/mdev* examples/udhcp
+# busybox-openrc
+ mkdir -p debian/busybox-openrc/etc
+ install -m 644 debian/inittab.$(DEB_HOST_ARCH_OS) debian/busybox-openrc/etc/inittab
+
# busybox-udeb
# Remove init link, but init support is still compiled in to be used.
rm -f ${b}/udeb/_install/sbin/init
Reply to: