[Pkg-sysvinit-devel] Bug#652512: Bug#652512: initscripts: /lib/init/rw not removed

Roger Leigh rleigh at codelibre.net
Sun Dec 18 11:24:16 UTC 2011


On Sun, Dec 18, 2011 at 08:01:50AM +0100, Petter Reinholdtsen wrote:
> [Roger Leigh]
> > This is unfortunately impossible to resolve for wheezy due to the
> > following considerations:
> > 
> > - packages needing to migrate from /lib/init/rw to /run need to
> >   Depend on the new initscripts for /run to be set up and available.
> > - this means that we can't directly remove /lib/init/rw in the
> >   postinst, since all the other packages do their migration in
> >   their postinsts after we finished, so we can't remove it until
> >   they are done.
> 
> What about moving all content in /lib/init/rw/ to /run and then remove
> the directory and replace it with a symlink?  This should be possible to
> do in the postinst.

That would be good to do, but I don't think it would work, due to the
logic most packages used when moving their files to /run.  For
example rsyslog:

        if dpkg --compare-versions "$2" lt "5.8.2-2"; then
                rm -f /lib/init/rw/sendsigs.omit.d/rsyslog
        fi

and nfs-common:

        # Migrate /lib/init/rw/sendsigs.omit.statd to /run.
        if [ -f /lib/init/rw/sendsigs.omit.d/statd ]; then 
            mv /lib/init/rw/sendsigs.omit.d/statd /run/sendsigs.omit.d/statd
        fi

If we do the move and symlink in initscripts' postinst, then
rsyslog would remove /run/sendsigs.omit.d/rsyslog and nfs-common
would be moving the same file on top of itself, which would I
presume cause the maintainer script to error out.


I think we probably didn't anticipate the ordering issues when we
decided to migrate files away rather than just to a wholesale
migration as for /var/run and /var/lock.  At the time, the
justification was that the other locations would continue to
exist whereas due to the few users of /lib/init/rw, it would be
better to just migrate the users away and remove it when they
were gone.  There's also an annoying case of removed (but not
purged) packages' init scripts continuing to make files/directories
in /lib/init/rw, but they can't be fixed due to being removed...

The other reason for not migrating was IIRC some packages were
using both /lib/init/rw and /var/run, and migrating both to
/run could have caused breakage.


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.





More information about the Pkg-sysvinit-devel mailing list