aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xextra/sinit/build11
-rw-r--r--extra/sinit/checksums7
-rw-r--r--extra/sinit/depends2
-rw-r--r--extra/sinit/files/config.h3
-rw-r--r--extra/sinit/files/poweroff3
-rw-r--r--extra/sinit/files/reboot2
-rw-r--r--extra/sinit/files/sinit-launch-services.boot14
-rw-r--r--extra/sinit/files/sinit.post.shutdown16
-rw-r--r--extra/sinit/files/sinit.pre.shutdown10
-rwxr-xr-xextra/sinit/post-install16
-rw-r--r--extra/sinit/sources7
-rw-r--r--extra/sinit/version1
12 files changed, 92 insertions, 0 deletions
diff --git a/extra/sinit/build b/extra/sinit/build
new file mode 100755
index 00000000..182d70cf
--- /dev/null
+++ b/extra/sinit/build
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+
+make CFLAGS="$CFLAGS -static" PREFIX=/usr DESTDIR="$1" install
+mv "$1/usr/bin/sinit" "$1/usr/bin/init"
+
+install -Dm755 poweroff "$1/usr/bin/poweroff"
+install -Dm755 reboot "$1/usr/bin/reboot"
+
+install -Dm644 sinit-launch-services.boot "$1/etc/init/sinit-launch-services.boot"
+install -Dm644 sinit.post.shutdown "$1/etc/init/sinit.post.shutdown"
+install -Dm644 sinit.pre.shutdown "$1/etc/init/sinit.pre.shutdown"
diff --git a/extra/sinit/checksums b/extra/sinit/checksums
new file mode 100644
index 00000000..56f24244
--- /dev/null
+++ b/extra/sinit/checksums
@@ -0,0 +1,7 @@
+aaccd0515070545174bf962c462686e7719c02c68004bd0b350b98b4c78a90ba sinit-1.1.tar.gz
+6f0f1a5f2f43b5bcfd4beaa93e1a49438d398cf758d7813bc6ba86b5156357a8 config.h
+f638aaa23383da584d3a56347a8e279abdc7c9c521661ef54a5bc8b955c5632b reboot
+d21a020d7cdb6a328962adac7cc1a8701a413c1dfabd40ac00bf7dc212fa29d1 poweroff
+93f3b06594447598af207f44f2dde126f05724fde0a405bd15dd0f446ff26c6f sinit-launch-services.boot
+2ea497694bbf778a05bbece13bac32c8d8c0be36469fe80ccee32c1501fbb392 sinit.pre.shutdown
+2c161e2c97366e12c7994f832ee96f293485e6dd398a66070f8bd35949beb8e1 sinit.post.shutdown
diff --git a/extra/sinit/depends b/extra/sinit/depends
new file mode 100644
index 00000000..6ab349da
--- /dev/null
+++ b/extra/sinit/depends
@@ -0,0 +1,2 @@
+carbs-init
+ubase
diff --git a/extra/sinit/files/config.h b/extra/sinit/files/config.h
new file mode 100644
index 00000000..dca21e3f
--- /dev/null
+++ b/extra/sinit/files/config.h
@@ -0,0 +1,3 @@
+static char *const rcinitcmd[] = { "/usr/lib/init/rc.boot", NULL };
+static char *const rcrebootcmd[] = { "/usr/lib/init/rc.shutdown", "reboot", NULL };
+static char *const rcpoweroffcmd[] = { "/usr/lib/init/rc.shutdown", "poweroff", NULL };
diff --git a/extra/sinit/files/poweroff b/extra/sinit/files/poweroff
new file mode 100644
index 00000000..69e8f9a4
--- /dev/null
+++ b/extra/sinit/files/poweroff
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/bin/kill -s USR1 1
diff --git a/extra/sinit/files/reboot b/extra/sinit/files/reboot
new file mode 100644
index 00000000..266afb92
--- /dev/null
+++ b/extra/sinit/files/reboot
@@ -0,0 +1,2 @@
+#!/bin/sh
+/bin/kill -s INT 1
diff --git a/extra/sinit/files/sinit-launch-services.boot b/extra/sinit/files/sinit-launch-services.boot
new file mode 100644
index 00000000..4d4fad6a
--- /dev/null
+++ b/extra/sinit/files/sinit-launch-services.boot
@@ -0,0 +1,14 @@
+# we are going to start runit and getty here
+
+sinit_run_getty() {
+ for getty in 1 2 3 4 5 6; do
+ ubase-box respawn /sbin/getty 38400 tty${getty} 2>&1 &
+ done
+}
+
+sinit_runit() {
+ ubase-box respawn /usr/bin/runsvdir -P /var/service &
+}
+
+[ "$SINIT_ENABLE_GETTY" = 1 ] && sinit_run_getty
+[ "$SINIT_ENABLE_RUNIT" = 1 ] && sinit_runit
diff --git a/extra/sinit/files/sinit.post.shutdown b/extra/sinit/files/sinit.post.shutdown
new file mode 100644
index 00000000..16deba74
--- /dev/null
+++ b/extra/sinit/files/sinit.post.shutdown
@@ -0,0 +1,16 @@
+# vim:filetype=sh
+
+# We handle the shutdown from here
+
+if [ "$SINIT_SHUTDOWN_HOOKS" = 1 ]; then
+ case "$1" in
+ reboot)
+ out "Requesting system reboot..."
+ /usr/bin/ubase-box halt -r
+ ;;
+ poweroff)
+ out "Requesting system poweroff..."
+ /usr/bin/ubase-box halt -p
+ ;;
+ esac
+fi
diff --git a/extra/sinit/files/sinit.pre.shutdown b/extra/sinit/files/sinit.pre.shutdown
new file mode 100644
index 00000000..af0d6f4f
--- /dev/null
+++ b/extra/sinit/files/sinit.pre.shutdown
@@ -0,0 +1,10 @@
+if [ "$SINIT_SHUTDOWN_HOOKS" = 1 ]; then
+ case "$1" in
+ reboot|poweroff)
+ ;;
+ *)
+ echo "Invalid action '$1' for rc.shutdown" 1>&2
+ exit 1
+ ;;
+ esac
+fi
diff --git a/extra/sinit/post-install b/extra/sinit/post-install
new file mode 100755
index 00000000..f9c906f2
--- /dev/null
+++ b/extra/sinit/post-install
@@ -0,0 +1,16 @@
+#!/bin/sh -e
+
+grep -q SINIT_ /etc/init/rc.conf || cat <<EOF >> /etc/init/rc.conf
+
+# Uncomment these to run the scripts for sinit
+# SINIT_SHUTDOWN_HOOKS=1
+# SINIT_ENABLE_GETTY=1
+# SINIT_ENABLE_RUNIT=1
+EOF
+
+cat <<EOF
+
+Important: If you want to sinit to boot, edit your
+/etc/init/rc.conf to enable SINIT variables."
+
+EOF
diff --git a/extra/sinit/sources b/extra/sinit/sources
new file mode 100644
index 00000000..34ee5bd1
--- /dev/null
+++ b/extra/sinit/sources
@@ -0,0 +1,7 @@
+https://dl.carbslinux.org/distfiles/sinit-1.1.tar.gz
+files/config.h
+files/reboot
+files/poweroff
+files/sinit-launch-services.boot
+files/sinit.pre.shutdown
+files/sinit.post.shutdown
diff --git a/extra/sinit/version b/extra/sinit/version
new file mode 100644
index 00000000..f8b0b375
--- /dev/null
+++ b/extra/sinit/version
@@ -0,0 +1 @@
+1.1 1