At Fri, 19 Mar 2004 22:12:07 -0500, Nathanael Nerode wrote: > Thomas Hood wrote: > | Your patch shows the trouble you have to go to if you choose not > | to Depend on the new initscripts. Is there some reason why the > | new libc6 should _not_ Depend on the new initscripts? > Indeed, after going to the trouble of constructing the thing, I agree > with you; it's *much* more appropriate, and reliable, to add a versioned > dependency on initscripts. > > | I don't think your patch does the right thing. If devpts.sh exists > | and mountvirtfs does not yet exist at the time libc6.preinst runs > | then the former gets renamed to the latter. Because mountvirtfs is > | a conffile, when initscripts is upgraded, dpkg will ask the user > | whether or not the new maintainer version of the file should be > | installed. I don't see the point of that; mountvirtfs should simply > | be installed without asking and devpts.sh should be disabled and > | renamed to *.dpkg-old or whatever. > You're probably right. :-)
I reread this thread, and I think: (1) glibc should not depend on initscripts. There is no reason to depend on initscripts even for back compatibility. Those packages have no relation in principle for "depends". (2) glibc should not install three files (defalt/tmpfs, default/devpts, init.t/mountkernfs) after new version. (3) new initscripts should handle removing mountkernfs, devpts.sh. Glibc should not remove them. The current libc6.preinst is needed to drop removing devpts.sh from libc6.preinst. This causes problem only the below case: - old initscripts (< 2.85-10 which does not have mountvirtfs) + old glibc (<= 2.3.2.ds1-9, which does not have mountkernfs and devpts.sh) is installed, then only glibc is upgrade to glibc (>= 2.3.2.ds1-12 which does not have devpts.sh). This case causes: - sysfs/tmpfs(shmfs)/usbfs are not mounted. But think about the meaning of mountkernfs. It's provided only for mounting above three filesystems. devpts is already provided before glibc <= 2.3.2.ds1-9, and it's only important for users because devpts.sh has problem with kernel 2.6 devfs. Udev or other packages which wants to mount sysfs/usbfs should depend on initscripts. Other cases, it should be ok. For example, upgrading from old initscripts (< 2.85-10) + old glibc (2.3.2.ds1-10 or 2.3.2.ds1-11) to glibc (>= 2.3.2.ds1-12) works fine because mountkernfs/devpts.sh are remained. Some users (who satisfy three conditions: (1) he uses special environment (2) he is not satisfied with the current mountkernfs (3) he upgrades glibc, but he does not upgrade initscripts) complaints to glibc that his mountkernfs is not fixed with the latest glibc - but in that case we only say please upgrade initscripts because mountkernfs is virtually and ghostly provided by initscripts. So my conclusion: above (1) (2) (3) is acceptable. Summary: - mountkernfs does just mount only three special purpose filesystems plus devpts. It's trivial, and it should not use depends for that reason. - initscripts maintainer should do: * new initscripts should put a script which removes mountkernfs and devpts.sh. Plus apply my patch. - glibc maintainer should do: * Dropping tmpfs,devpts,mountkernfs from libc.install installation candidates. * Deleting the line which removes devpts.sh or mountkernfs from libc.preinst. I'm planning to release new glibc package soon, so this modification will do in near future if you don't object them. Regards, -- gotom