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

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: