Index: /trunk/src/VBox/Installer/linux/install_service/install_service.sh
===================================================================
--- /trunk/src/VBox/Installer/linux/install_service/install_service.sh	(revision 44118)
+++ /trunk/src/VBox/Installer/linux/install_service/install_service.sh	(revision 44119)
@@ -175,11 +175,18 @@
 for path in "${PREFIX}/init.d/rc.d" "${PREFIX}/init.d/" "${PREFIX}/rc.d/init.d" "${PREFIX}/rc.d"; do
     if test -d "${path}"; then
+        # Check permissions for the init path.
         test -w "${path}" || abort "No permission to write to \"${path}\"."
+        # And for the System V symlink directories.
         for i in rc0.d rc1.d rc6.d rc.d/rc0.d rc.d/rc1.d rc.d/rc6.d; do
             if test -d "${PREFIX}/${i}"; then
                 test -w "${PREFIX}/${i}" ||
-                    abort "No permission to write to \"${PREFIX}/${i}\"".
+                    abort "No permission to write to \"${PREFIX}/${i}\"."
             fi
         done
+        # And for the OpenRC symlink directories.
+        if test -d "${PREFIX}/runlevel/"; then
+            test -w "${PREFIX}/runlevel/" ||
+                abort "No permission to write to \"${PREFIX}/runlevel\"".
+        fi
         found_init="true"
         update=""
@@ -197,9 +204,11 @@
             # Various known combinations of sysvinit rc directories.
             for i in "${PREFIX}"/rc*.d/[KS]??"${SERVICE_NAME}" "${PREFIX}"/rc.d/rc*.d/[KS]??"${SERVICE_NAME}"; do
-                rm -f "$i"
+                rm -f "${i}"
             done
             # And OpenRC.
-            type rc-update > /dev/null 2>&1 &&
-                rc-update del "${1}" > /dev/null 2>&1
+            test -d "${PREFIX}/runlevel/" &&
+                for i in "/${PREFIX}/runlevel"/*/"${SERVICE_NAME}"; do
+                    rm -f "${i}"
+                done
             # Various known combinations of sysvinit rc directories.
             if test -n "${ENABLE}"; then
@@ -219,6 +228,6 @@
                 done
                 # And OpenRC.
-                type rc-update > /dev/null 2>&1 &&
-                    rc-update add "${1}" default > /dev/null 2>&1
+                test -d "${PREFIX}/runlevel/default" &&
+                    ln -sf "${path}/${SERVICE_NAME}" "/${PREFIX}/runlevel/default/"
             fi
         fi
Index: /trunk/src/VBox/Installer/linux/testcase/tstInstallInit.sh
===================================================================
--- /trunk/src/VBox/Installer/linux/testcase/tstInstallInit.sh	(revision 44118)
+++ /trunk/src/VBox/Installer/linux/testcase/tstInstallInit.sh	(revision 44119)
@@ -102,4 +102,5 @@
         mkdir "${tmpdir}/rc${i}.d/" "${tmpdir}/rc.d/rc${i}.d/"
     done
+    mkdir -p "${tmpdir}/runlevel/default" "${tmpdir}/runlevel/boot"
     mkdir "${tmpdir}/run"
 }
@@ -114,6 +115,6 @@
 test_service "${tmpdir}" "service"
 # And install it.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
-    fail_msg "\"helpers/install_service\" failed."
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
+    fail_msg "\"scripts/install_service\" failed."
 # Check that the main service file was created as specified.
 if test -x "${tmpdir}/init.d/service"; then
@@ -149,6 +150,6 @@
 fi
 # Check the status again - now it should be stopped.
-"${tmpdir}/rc.d/rc3.d/S20service" --prefix "${tmpdir}" --lsb-functions "" status >/dev/null 2>&1 &&
-    fail_msg "\"${tmpdir}/rc.d/rc3.d/S20service\" reported the wrong status."
+"${tmpdir}/runlevel/service" --prefix "${tmpdir}" --lsb-functions "" status >/dev/null 2>&1 &&
+    fail_msg "\"${tmpdir}/runlevel/service\" reported the wrong status."
 # Final summary.
 if test -n "${failed}"; then
@@ -167,9 +168,9 @@
 test_service "${tmpdir}" "service"
 # Install it.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
-    fail_msg "\"helpers/install_service\" failed."
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
+    fail_msg "\"scripts/install_service\" failed."
 # And remove it again.
-helpers/install_service --command "${tmpdir}/service" --prefix "${tmpdir}" --remove ||
-    fail_msg "\"helpers/install_service\" failed."
+scripts/install_service --command "${tmpdir}/service" --prefix "${tmpdir}" --remove ||
+    fail_msg "\"scripts/install_service\" failed."
 # After uninstallation this should be the only file left in the init tree.
 rm "${tmpdir}/service"
@@ -192,10 +193,10 @@
 test_service "${tmpdir}" "service"
 # Install it.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
-    fail_msg "\"helpers/install_service\" failed."
-# Install it disabled without forcing.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
-    fail_msg "\"helpers/install_service\" failed."
-test "x`find "${tmpdir}"/rc*.d -type l | wc -l`" = "x14" ||
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
+    fail_msg "\"scripts/install_service\" failed."
+# Install it disabled without forcing.
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
+    fail_msg "\"scripts/install_service\" failed."
+test "x`find "${tmpdir}"/rc*.d "${tmpdir}/runlevel" -type l | wc -l`" = "x15" ||
     fail_msg "links were removed on non-forced disable."
 # Final summary.
@@ -215,10 +216,10 @@
 test_service "${tmpdir}" "service"
 # Install it.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
-    fail_msg "\"helpers/install_service\" failed."
-# Install it disabled without forcing.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
-    fail_msg "\"helpers/install_service\" failed."
-test "x`find "${tmpdir}"/rc*.d -type l`" = "x" ||
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
+    fail_msg "\"scripts/install_service\" failed."
+# Install it disabled without forcing.
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
+    fail_msg "\"scripts/install_service\" failed."
+test "x`find "${tmpdir}"/rc*.d "${tmpdir}/runlevel" -type l`" = "x" ||
     fail_msg "files were installed on non-forced enable."
 # Final summary.
@@ -238,10 +239,10 @@
 test_service "${tmpdir}" "service"
 # Install it.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
-    fail_msg "\"helpers/install_service\" failed."
-# Install it disabled without forcing.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --force-disable ||
-    fail_msg "\"helpers/install_service\" failed."
-test "x`find "${tmpdir}"/rc*.d -type l`" = "x" ||
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
+    fail_msg "\"scripts/install_service\" failed."
+# Install it disabled without forcing.
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --force-disable ||
+    fail_msg "\"scripts/install_service\" failed."
+test "x`find "${tmpdir}"/rc*.d "${tmpdir}/runlevel" -type l`" = "x" ||
     fail_msg "links were not removed on forced disable."
 # Final summary.
@@ -261,10 +262,10 @@
 test_service "${tmpdir}" "service"
 # Install it.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
-    fail_msg "\"helpers/install_service\" failed."
-# Install it disabled without forcing.
-helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --force-enable ||
-    fail_msg "\"helpers/install_service\" failed."
-test "x`find "${tmpdir}"/rc*.d -type l | wc -l`" = "x14" ||
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
+    fail_msg "\"scripts/install_service\" failed."
+# Install it disabled without forcing.
+scripts/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --force-enable ||
+    fail_msg "\"scripts/install_service\" failed."
+test "x`find "${tmpdir}"/rc*.d "${tmpdir}/runlevel" -type l | wc -l`" = "x15" ||
     fail_msg "files were not installed on forced enable."
 # Final summary.
