[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#230857: libc6: remove /etc/default/{devpts,tmpfs} etc



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



Reply to: