On Sun, Jan 08, 2012 at 11:22:41AM +0000, Roger Leigh wrote:
> On Fri, Jan 06, 2012 at 03:25:53PM +0100, Robert Millan wrote:
> > I didn't notice this was actually a Release Goal [1]. Tagging appropiately.
> >
> > I should note that the patch I sent has an unwanted side-effect:
> > unability to send messages to init until after first reboot, which
> > means first reboot can't be done cleanly.
> >
> > Maybe clients can be modified to attempt old path first then try with
> > /run/initctl (or vice-versa), or update scripts could play some kind
> > of symlink trick. I haven't had time to resolve this however.
>
> How about on upgrade we symlink /run/initctl → /dev/initctl if
> /run/initctl does not exist?
> Programs can therefore be switched to using /run/initctl immediately.
> On reboot, we can then just create /run/initctl and everything
> should just work.
>
> Does this sound OK, or have I missed something unobvious?
BTW, all of your upstream changes are already in sysvinit.git
(http://anonscm.debian.org/gitweb/?p=collab-maint/sysvinit;a=blob_plain;f=debian/patches/93_run_initctl.patch;hb=a0263c14e64f0bbab10f656284272a8c9066189b)
I would propose something like the following, based on your
patch, would complete the migration (attached). Not yet tested.
Regards,
Roger
--
.''`. Roger Leigh
: :' : Debian GNU/Linux http://people.debian.org/~rleigh/
`. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/
`- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
diff --git a/debian/patches/series b/debian/patches/series
index c8af391..7ac3e82 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -17,4 +17,5 @@
79_noninteractive_ignore_sigint.patch
91_sulogin_lockedpw.dpatch
92_kfreebsd_ifdown.patch
+93_run_initctl.patch
94_kfreebsd_xterm.patch
diff --git a/debian/postinst b/debian/postinst
index 10d77a2..d876704 100755
--- a/debian/postinst
+++ b/debian/postinst
@@ -16,18 +16,17 @@ esac
umask 022
+INITCTL=/run/initctl
case "$(uname -s)" in
*FreeBSD)
- INITCTL=/etc/.initctl
+ OLDINITCTL=/etc/.initctl
;;
*)
- INITCTL=/dev/initctl
+ OLDINITCTL=/dev/initctl
;;
esac
-#
-# Check /dev/initctl
-#
+# Create /run/initctl
if [ "$INITCTL" ] && [ ! -p "$INITCTL" ]
then
echo "sysvinit: creating $INITCTL"
@@ -46,6 +45,12 @@ fi
#
init u ||:
+# Remove old pipe if present. No longer in use after re-exec.
+if [ "$OLDINITCTL" ] && [ -p "$OLDINITCTL" ]
+then
+ rm -f "$OLDINITCTL"
+fi
+
#DEBHELPER#
exit 0
diff --git a/debian/src/initscripts/etc/init.d/mountall.sh b/debian/src/initscripts/etc/init.d/mountall.sh
index 1daf994..033f9b8 100755
--- a/debian/src/initscripts/etc/init.d/mountall.sh
+++ b/debian/src/initscripts/etc/init.d/mountall.sh
@@ -43,26 +43,6 @@ do_start() {
fi
post_mountall
- case "$(uname -s)" in
- *FreeBSD)
- INITCTL=/etc/.initctl
- ;;
- *)
- INITCTL=/dev/initctl
- ;;
- esac
-
- #
- # We might have mounted something over /dev, see if
- # /dev/initctl is there. Look for /usr/share/sysvinit/update-rc.d
- # to verify that sysvinit (and not upstart) is installed).
- #
- if [ ! -p $INITCTL ] && [ -f /usr/share/sysvinit/update-rc.d ]; then
- rm -f $INITCTL
- mknod -m 600 $INITCTL p
- kill -USR1 1
- fi
-
# Execute swapon command again, in case we want to swap to
# a file on a now mounted filesystem.
swaponagain 'swapfile'
_______________________________________________
Pkg-sysvinit-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-sysvinit-devel