Moving to FHS: A new proposal
I've spent some time thinking up various ways to move to the FHS
without breaking compatibility. Everything I came up with had fatal
flaws in it, except one. I'll spare you the failures and just present
a proposal that I think will work :-)
The elements do not have to be completed in a specific order, so this
time I did not number them:
- Policy change:
No package may install files in /usr/share/doc, /usr/share/info,
or /usr/share/man.
The directories /usr/doc, /usr/info, and /usr/man are off-limits for
architecture-specific files.
- Lintian checks are written for the points above. A preliminary scan
shows that only /usr/share/man is currently used, by gnats-tk.
There are some ELF binaries in /usr/doc/*/examples/ directories.
- base-files provides a utility "fhsconfig" that moves these directories
to their counterparts in /usr/share, and installs these symlinks:
/usr/doc -> share/doc
/usr/info -> share/info
/usr/man -> share/man
fhsconfig is intended to be run interactively by the sysadmin.
If the destination directories exist and are not empty, fhsconfig will
fail and report the problem. Its role is similar to "shadowconfig".
("fhsconfig off" can be provided if someone figures out a way to
make it reversible.)
- The installation procedure is modified so that new installations start
out with those symlinks.
- Packages will install their doc, info, and man files in /usr/doc,
/usr/info, and /usr/man for ever after. dpkg will install them there
on FSSTND systems, and will follow the symlinks on FHS systems.
In the meantime, we can start addressing other FHS issues:
- Policy change: Maintainers are encouraged to move files from FSSTND
directories to FHS directories, if they can be moved without needing
a compatibility symlink.
New packages must not create new non-FHS directories.
- A list is made of what sort of files need to be moved. So far
I know of /usr/lib to /usr/share (for architecture-independent files),
and /var/lib to /var/cache and /var/state (whichever is appropriate).
Primary Advantage:
We maintain full backwards compatibility. No files are moved on a
system until the administrator decides to move them. People can
install packages from slink and beyond without any hassle. (At the
same time, they can convert whenever they want, and there are no messy
hybrid situations).
Secondary Advantage:
Most packages will not need to be changed. This saves us a lot of work.
Primary Disadvantage:
The directories /usr/doc, /usr/man, and /usr/info will never be available
as architecture-specific counterparts to the /usr/share directories.
Secondary Disadvantage:
As the rest of the world moves to the FHS, upstream makefiles may
start installing files in /usr/share/man and /usr/share/info, which
our policy won't allow. Fortunately this is easily corrected in the
debian/rules file.
What do you think?
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: