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

FHS: Wholesale conversion is wrong

The proposals I've seen so far all handle the "shareable" directories
(/usr/doc, /usr/info, /usr/man) as units.  I think that is the wrong
approach because it does not mesh well with our package model.  It
also does not address the possibility of non-shareable files in these
directories (binaries in examples dirs, or manpages for
architecture-specific tools), and it ignores the mix of shareable and
non-shareable files in /usr/lib entirely.

I propose that we keep the focus on single packages, by requiring that
any file installed in /usr/share has a symlink pointing to it from a
non-share directory.  These need not be single-file symlinks; often it
will be appropriate to symlink an entire directory, such as
/usr/doc/foo or /usr/lib/foo.  This way, the transition will be under
the control of each individual package, and exceptions can be made as

We have the tools to do this, and to verify that it is done correctly.
It need not be painful.  And at some convenient time in the future, we
can drop the symlinks if we want to.

I propose the following trajectory:

  1. Policy change: all files installed in /usr/share must be pointed 
     to by symlinks not in /usr/share.  (Note that this is already
     required by the FSSTND, section 6.3)

  2. Extend lintian to verify that this is done.
     (Can be done simultaneously with 3 and 4)

  3. Ensure that dpkg can handle a package upgrade that moves a 
     directory and replaces it with a symlink to the new location.
     Brandon Robinson ran into problems when he did this in xbase.

  4. Policy change: encourage developers to install architecture-independent
     files in /usr/share according to the FHS, with symlinks as described

  5. Extend debhelper and debstd to install common architecture-independent
     files this way.  (documentation, info files, man pages).
     (Can be done simultaneously with 6)

  6. Gradually convert packages to the FHS.  I suspect this will take
     at least a year.

  7. Policy change: require packages to follow the FHS regarding
     architecture-independent files.

At some point after that, the symlinks required by step 2 might be
made optional, and gradually dropped.  The man and info browsers can
be adapted right now to look in /usr/share, in anticipation of that

What do you think of this proposal?

Richard Braakman

To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Reply to: