Re: FHS version for etch
Hi folks,
Joey Hess noted a series of place where we need to add caveats
to the FHS 2.3, some of which can be gradually removed from the
policy. While we have had a number of seconds to this proposal, we
have not actually had a complete policy proposal (the devil lies in
the details, as we know). Here is a list of current issues I see
with FHS 2.3. Please correct me where I am mistaken, and we can use
this as basis for creating the exception language for policy.
manoj
We need to add an exception for 4), below, and let the X folks decide
on the name of the configuration files (optional requirement for the
FHS, I think)
We need to allow an exception for dot file locations in user home
directories in 5) below (again, this is an optional or a should
requirement)
Allow for /cdrom as an extension in 6) below, and perhaps see if we
can move to compliance in later releases
Exempt ia64/amd64 from the requirement that is must use /lib64 (8)
below).
Either have base files create a symlink to /usr/local/share/man, or
allow an exception in policy. 9) below.
Allow exceptions for having more than one default configuration file,
as per 10) below.
Let window managers have more flexibility in naming configuration
files (11) below)
et grub and other boot loader files live outside of /etc (like, in
/boot) without symlinks. 12) below.
======================================================================
1) ===
FHS 2.3 adds:
======================================================================
3.3: Specific Options
The following directories, or symbolic links to directories, must be in /, if
the corresponding subsystem is installed:
Directory Description
home User home directories (optional)
lib<qual> Alternate format essential shared libraries (optional)
root Home directory for the root user (optional)
Each directory listed above is specified in detail in separate subsections
below.
======================================================================
We comply.
2)==
In /bin, /bin/ed is no longer mandated, however,
/bin/hostname is. (We comply).
3) ==
Language related to /bin/sh was cleaned up. Mention of Csh
removed. [ and test must be in the same dir now. (We comply).
4)==
Added optional dirs /etc/sgml and /etc/xml. The number of mandatory
files in /etc has dropped. (We comply). It does, however, seem to say
we need /etc/X11/XF86Config instead of our XF86Config-4, and want
/etc/X11/Xmodmap (optional, thank goodness).
/etc/X11/xorg.conf seems not to be covered
********************************NOT COMPLIANT*************
5)==
User specific configuration files for applications are stored in the user's
home directory in a file that starts with the '.' character (a "dot file"). If
an application needs to create more than one dot file then they should be
placed in a subdirectory with a name starting with a '.' character, (a "dot
directory"). In this case the configuration files should not start with the '.'
character.
This is a new requirement. While moving the configuration
files for various programs may seem like a good idea -- when
these programs were being written. It doesn't seem at all
worthwhile to endure a transition of existing software for the
marginal aesthetic benefits. After all, You have to take into
account to that ~/ is not unusually a shared resource, and the
rest of the world has not changed.
~/Desktop -- if this is not a configuration file, it seems
like out of scope for the FHS. However, since it
seems to be a link to ~/.gnome-desktop in some
cases, this seems not to be data.
~/lynx_bookmarks.html
* bash reads and writes a number of files in ~/ (.bash_profile,
.bashrc, .bash_history)
* there are several directories related to GNOME (at least ~/.gnome2
and ~/.gnome2_private) gnome: .gnome, .gnome-private as
well. Maybe this squeaks by since there are subdirs, not files?
* vim has ~/.vimrc, ~/.viminfo (configure IIRC), ~/.vim/
~/GNUstep
* Window Maker stores its configuration across several files and
directories under ~/GNUstep (configurable) The default is
not going to change.
* offlineimap (.offlineimaprc, .offlineimaprc.py, .offlineimap/)
* X (.Xauthority, .xinitrc, .xsession, .xsession-errors,
.Xresources, .Xmodmap, etc) But perhaps X is more than one
"application", dunno.
* CVS (.cvsrc, .cvspass)
* scummvm (.svummvmrc and .scummvm/)
* zsh (.zcompdump, .zlogin, .zshenv, .zshrc)
* ion2 (.ion2/.welcome_msg_displayed ; the filename should not
start with a dot in order to comply)
~/Maildir -- definitely data
* aspell stores user's dictionaries in ~/, and it store several
files per language. However, these can be
considered data
********************************NOT COMPLIANT**************
But this is optional, really.
6)==
Allows stuff like /lib64 or the like. /media is added as mount
points -- stuff that used to go under /mnt, which is still
retained. There a re a number of required subdirectories under
/media, which we don't have. Also, /srv should exist.
/media exists on new installations
/srv does as well.
we still have a /cdrom link to /media since some programs (like
apt) have not transitioned.
********************************COMPLIANT on new installs?*************
7)==
/usr/local/etc may be a link to /etc/local,
/var/lib/hwclock/adjtime has been moved here from /etc
So, we have a few minor things to tweak (/media, /srv, and the
XF86Config stuff, and then we should be OK to move to FHS 2.3 in
Etch.
8)==
Requires amd64 to use /lib64 for 64 bit binaries.
I'm told this is not present in our amd64 architecture. I suspect this
is overspecified in the FHS and policy should excempt ia64 from the
requirement, although someone should make sure /lib64 works if a
extra-Debian source puts a library there.
9)==
Requires a /usr/local/share/man be "synonomous" with /usr/local/man.
We do not have a /usr/local/share/man, and will need to add such a
symlink to comply.
10)
We recommend that window managers with only one configuration
file which is a default .*wmrc file must name it system.*wmrc
(unless there is a widely-accepted alternative name) and not use
a subdirectory.
Umm, say what? Is this a must directive, or not?
11)
Any window manager subdirectories must be identically named to the
actual window manager binary.
So, fvwm, whose binary is sometimes called fvwm2, needs to
move the config files around as the versions upgrade and the
alternatives are changed?
12)==
Requires boot loader configs in /etc, but does allow them to just be
symlinks to the real location (ie, /etc/grub/menu.lst ->
/boot/grub/menu.lst). We do not have such symlinks for at least grub,
didn't check ia64, powerpc, sparc, and other arches that have
bootloader config files. We will need to fix this.
manoj
--
Microbiology Lab: Staph Only!
Manoj Srivastava <srivasta@debian.org> <http://www.debian.org/%7Esrivasta/>
1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C
Reply to: