freebsd-dev/etc/mtree
Pawel Jakub Dawidek e1237b285b Introduce GEOM_LABEL class.
This class is used for detecting volume labels on file systems:
UFS, MSDOSFS (FAT12, FAT16, FAT32) and ISO9660.
It also provide native labelization (there is no need for file system).

g_label_ufs.c is based on geom_vol_ffs from Gordon Tetlow.
g_label_msdos.c and g_label_iso9660.c are probably hacks, I just found
where volume labels are stored and I use those offsets here,
but with this class it should be easy to do it as it should be done by
someone who know how.
Implementing volume labels detection for other file systems also should
be trivial.

New providers are created in those directories:
/dev/ufs/ (UFS1, UFS2)
/dev/msdosfs/ (FAT12, FAT16, FAT32)
/dev/iso9660/ (ISO9660)
/dev/label/ (native labels, configured with glabel(8))

Manual page cleanups and some comments inside were submitted by
Simon L. Nielsen, who was, as always, very helpful. Thanks!
2004-07-02 19:40:36 +00:00
..
BSD.include.dist Introduce GEOM_LABEL class. 2004-07-02 19:40:36 +00:00
BSD.local.dist Add common share/locale directories (everything used by >= 5 ports [1]) and 2004-05-31 07:34:40 +00:00
BSD.release.dist Mention the path to the README file in the header comment. 2001-06-26 13:50:33 +00:00
BSD.root.dist - Install includes used by STRIPE and NOP GEOM classes. 2004-05-20 10:29:26 +00:00
BSD.sendmail.dist Scheduled sweep using the README guidelines. 2003-11-29 18:22:01 +00:00
BSD.usr.dist Add an Israel Hebrew locale: he_IL.UTF-8. 2004-04-21 15:28:23 +00:00
BSD.var.dist Add /var/db/ports/ (support directory necessary for 2004-01-20 13:51:23 +00:00
BSD.x11-4.dist Add common share/locale directories (everything used by >= 5 ports [1]) and 2004-05-31 07:34:40 +00:00
BSD.x11.dist Reincarnate SETUID code in man(1), not compiled in by default. 2002-01-22 15:15:38 +00:00
Makefile Added this makefile. This is not attached to the build yet. I often 2002-01-16 12:18:22 +00:00
README Sigh, this README is not a shell script. 2002-05-18 12:37:19 +00:00

$FreeBSD$

Note: If you modify these files, please keep hier(7) updated!

These files are used to create empty file hierarchies for building the
system into.  Some notes about working with them are placed here to try
and keep them in good working order.

    a)  The files use 4 space indentation, and other than in the header
        comments, should not contain any tabs.  An indentation of 4 is
        preferable to the standard indentation of 8 because the indentation
        of levels in these files can become quite deep causing the line to
        overflow 80 characters.

        This also matches with the files generated when using the
        mtree -c option, which was implemented that way for the same reason.

    b)  Only directories should be listed here.

    c)  The listing should be kept in filename sorted order.

    d)  Sanity checking changes to these files can be done by following
        this procedure (the sed -e is ugly, but fixing mtree -c to
        not emit the trailing white space would be even uglier):

            mkdir /tmp/MTREE
            mtree -deU -f BSD.X.dist -p /tmp/MTREE
            mtree -cdin -k uname,gname,mode -p /tmp/MTREE | \
		sed -e 's/ *$//' | tail +5 >BSD.X.new
            diff -u BSD.X.dist BSD.X.new
            rm -r /tmp/MTREE

        Note that you will get some differences about /set lines,
        and uname= gname= on certain directory areas, mainly man page
        sections.  This is caused by mtree not having a look ahead
        mechanism for making better selections for these as it
        traverses the hierarchy.

        The BSD.X.new file should NOT be commited, will be missing the
        correct header, and important keywords like ``nochange''.  Simply
        use the diff for a sanity check to make sure things are in the
        correct order and correctly indented.

    e)  Further sanity checking of the system builds with DESTDIR=/someplace
        are more complicated, but can often catch missing entries in these
        files.  I tend to run this more complete sanity check shortly after
        the target date for a new release is announced.

        If you want details on it bug me about it via email to
        rgrimes@FreeBSD.org.