On Tue, May 17, 2011 at 05:37:18PM +0200, Santiago Vila wrote: > On Sat, 14 May 2011, Roger Leigh wrote: > > > Just FYI, initscripts has now entered unstable to introduce /run > > support. If you would like to re-introduce /run into base-files > > that would be great. > > > > There will be a window of potential breakage if base-files is > > upgraded prior to initscripts and initramfs-tools if the system is > > rebooted mid-way. At this point, /run will exist but will not be > > mounted by either initramfs-tools or initscripts. Rather than > > initscripts or initramfs-tools having a strict dependency on a > > new base-files or breaks on older versions (neither of which is true), > > I think the cleanest way would be if base-files could have a > > Breaks on initscripts (<< 2.88dsf-13.3), initramfs-tools (<< 0.99) > > which will ensure that they are upgraded first when doing a > > squeeze→wheezy upgrade. > > I wonder: If it's initscripts the package adding support for /run, why > not just add /run in initscripts and wait until wheezy+1 before adding > it to base-files? > > I feel that we are relying too much on base-files for no particular > reason. In fact, I don't see any benefit of having /run in base-files > at this point.
The main need for this is debootstrap. There's two possible ways initscripts can handle the migration: 1) Normal system - on installation, bind mount /var/run to /run, /var/lock to /run/lock - on reboot, set up /run as a tmpfs and convert the original locations to symlinks 2) Chroot or other virtual environment - the above isn't possible (no scripts run on startup etc.) - on installation, symlink /run → /var/run and /run/lock (/var/run/lock) → /var/lock (2) is only desirable on upgrade of a chroot due to issues moving files and directories. For a clean debootstrap, we want the proper hierarchy. > > It would be nice if on new installs /var/run and /var/lock could be > > created as symlinks to /run and /run/lock. This will mean that > > debootstrapped chroots will have a valid setup here, since they > > will never be booted directly initscripts can't do this, and > > it's also too hairy for initscripts to do this to a chroot in its > > postinst. > > Hmm, creating /var/lock as a symlink to /run/lock when /run is still empty > is not going to be nice either, as it would be a dangling symlink. Maybe base-files could also provide /run/(lock|shm)? On a normal system, these will be hidden by the /run tmpfs, but will be used (potentially) in a chroot environment. This would ensure that the links are always valid. > Again: Is it necessary or even useful to rely on base-files for this? > > How will this be handled on already running systems? Would be possible > to do the same for not-yet-running systems? If it's not done in base-files, I'm not sure where would be best to do this. initscripts is handling the migration of existing installations, and it does a perfectly good job for normal systems; however, chroot environments can't be catered for as well as I'd like. While we do a best-effort faking of the /run hierarchy using the existing /var directories and some symlinks, this isn't what we want for new installs. Unfortunately, by the time debootstrap configures initscripts, base-files already created /var/(run|lock) and we can't reliably replace them with symlinks at that point. In consequence, I would suggest that base-files could provide: /run /run/lock /run/shm /var/run → /run [symlink] /var/lock → /run/lock [symlink] The symlinks could be created in the postinst if they don't already exist (the directories would cease to be provided by the package directly). 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.
signature.asc
Description: Digital signature