On Sun, May 05, 2002 at 06:05:41PM +0200, Jeroen Dekkers wrote: > On Mon, Mar 25, 2002 at 10:52:45PM -0500, Richard Kreuter wrote: > > On Mon, Mar 25, 2002 at 06:08:49PM +0100, Jeroen Dekkers wrote: > > > I think it would be nice to post the GNU things to the mailinglist > > > before they'll release the next version, which will be soon. > > I've merged what I've understood... > What's the status of this? Is everything added which need to be added? > Can we send it to the FHS people?
Here's the very slightly corrected update to the last posting from a while back. There are still a few points on which the wording is incomplete. If the below copy is suitable, somebody who thinks himself an authoritative representative for the project ought to submit this to the relevant FHS list. If there are still corrections or additions to be made, I'll try to merge them as quickly as possible. Lastly, I apologize for the delay. Same punctuation: +++ is stuff I added, <> for editorial remarks. --- The following things need to change in the FHS itself: 3.5.1 Grub may place its configuration file under /boot. 3.9.3 I'm not sure /lib/modules is the right place for kernel modules. I think we should move it to the GNU/Linux specific annex. 5.6.1 says "it not supported under Linux", which is too OS-specific. 6.2 GNU This is the annex for the GNU operating system. We sometimes refer to this as the GNU/Hurd system, in cases where it is necessary to distinguish the GNU system from other systems that use large amounts of GNU software. The GNU system is special compared to other UNIX-like operating systems in the way it treats the filesystem namespace. The filesystem namespace is very flexible, you can do anything with it what you want. That's why it is reasonable to specify where you should find directories and files, but not the way those directories and files should get there. As a rule, distributors who wish to maintain compatibility between their distributions of GNU, GNU/Linux, or other systems may maintain symbolic links for files whose locations on GNU systems differ from their locations on other systems. This accomodates programs with "hard-coded" filenames. +++For example, files that should be found under /libexec may be symbolic links, or may be the targets of symbolic links located under /sbin, /bin, and so forth. 6.2.x / : The Root Filesystem It's allowed to create a new subdirectory of the root filesystem by the distribution creator or user. 6.2.x /boot : Static files of the bootloader <If the following isn't already in the FHS, then> +++The configuration file for the grub bootloader may be found under /boot. 6.2.x /bin : Essential user command binaries (for use by all users) The following utilites used for system boot and recovery must be located in /bin: settrans showtrans fsysopts The following utilities may be omitted from /bin: dmesg mount umount The GNU system has been designed with a goal of providing users with more power than they have traditionally been afforded on Unix and Unix-compatible systems. As a result, several system binaries are useful to normal users and should be found in /bin: mkfs.* mk*fs *fsck fsck.* parted *fdisk 6.2.x /com : Shareable, variable data. The /com hierarchy contains files architecture-independent, sharable data files which the programs modify while they run. Some of these files have been placed in /var or /usr in the past; in case a distributor wishes to maintain compatibility with systems that expect to find these files in /var or /usr, symbolic links may be used. +++Note that files ought to be found in /com in case a majority of relevant programs that expect to modify the files can do so while the file is shared among hosts. BEGIN RATIONALE: Having recognized the distinction between shareable and non-shareable mutable data files, the authors of the GNU Coding Standards intend that all shareable mutable data files be found under a single directory, to simplify management of shared file hierarchies among systems. END RATIONALE 6.2.x /hurd : The Hurd servers /hurd contains the Hurd server binaries. Servers with .static appended to their name must be statically linked servers, servers without .static appended may be dynamically linked servers. The following servers, or symbolic links to servers, are required in /hurd. auth[.static] The standard authentication server. exec[.static] The standard execution server. init[.static] The standard initialization and state maintaining server. proc[.static] The standard process server. 6.2.x /libexec : Executables only run by other programs The directory for installing executable programs to be run by other programs rather than by users. The following are example programs that could be found in /libexec, if they exist on a system: in.telnetd in.ftpd sendmail Note that some programs that are normally run only by other programs may occasionaly be run by users under certain circumstances, such as debugging. Nevertheless, such programs are to be found in /libexec. BEGIN RATIONALE: A number of programs are intended to be run only by other programs. These programs therefore don't belong in directories containing commands for users. END RATIONALE 6.2.x /sbin : The following utilities may be placed in /bin: devprobe 6.2.x /servers : Standard location where Hurd servers translate This is the directory Hurd servers translate rendezvous filesystem nodes in standard locations, so that other programs can easily find them and use server-specific interfaces. /servers/crash The node where the crash server translates. /servers/exec The node where the exec sever translates. /servers/password The node where the password server translates. /servers/proc The node where the process server translates. /servers/startup <What's this do?> In addition, all files with names of the form /servers/socket/N, where N is a string of digits, are reserved for <somebody who knows the score to finish this sentence>. Symbolic links to these files are also permitted in the /servers/socket directory, as shown in the example below. /servers/socket/1 The node where the pflocal server translates. /servers/socket/2 The node where the pfinet server translates. /servers/socket/pflocal A symbolic link to /servers/socket/1 /servers/socket/pfinet A symbolic link to /servers/socket/2. 6.2.x /usr : Secondary Hierarchy In the GNU system, /usr is a symbolic link to /. The / and /usr directory have thus the same name and names of files and directories within them must not conflict. BEGIN RATIONALE The GNU Hurd has a special filesystem, called shadowfs, which can "merge" directories. Thus everything from different sources can be merged (both static and variable data) and /usr isn't really needed, instead of /usr, everything will be found under /. END RATIONALE 6.2.x /usr/share/info This directory exist as the primary GNU Info system directory. 6.2.x /usr/share/man This directory is optional on a GNU system. 6.2.x /usr/X11R6 : X Window System, Version 11 Release 6 This directory should not be used. Instead the X Window System should be placed in /. 6.2.x /var : Mutable, machine-specific data files The /var hierarchy should normally not contain files that can be shared among host systems. These files should instead be found in /com. BEGIN RATIONALE: Having recognized the distinction between shareable and non-shareable mutable data files, the authors of the GNU Coding Standards intend that all unshareable mutable data files be found under a single directory, to simplify management of shareable file hierarchies among host systems. END RATIONALE 6.2.x /var/spool/cron : cron and at jobs This directory contains the variable data for the cron and at programs. _______________________________________________ Help-hurd mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/help-hurd
