110843SDave.Plauger@Sun.COM$FreeBSD$
210843SDave.Plauger@Sun.COM
310843SDave.Plauger@Sun.COMNote: If you modify these files, please keep hier(7) updated!
410843SDave.Plauger@Sun.COM
510843SDave.Plauger@Sun.COMThese files are used to create empty file hierarchies for building the
610843SDave.Plauger@Sun.COMsystem into.  Some notes about working with them are placed here to try
710843SDave.Plauger@Sun.COMand keep them in good working order.
810843SDave.Plauger@Sun.COM
910843SDave.Plauger@Sun.COM    a)  The files use 4 space indentation, and other than in the header
1010843SDave.Plauger@Sun.COM        comments, should not contain any tabs.  An indentation of 4 is
1110843SDave.Plauger@Sun.COM        preferable to the standard indentation of 8 because the indentation
1210843SDave.Plauger@Sun.COM        of levels in these files can become quite deep causing the line to
1310843SDave.Plauger@Sun.COM        overflow 80 characters.
1410843SDave.Plauger@Sun.COM
1510843SDave.Plauger@Sun.COM        This also matches with the files generated when using the
1610843SDave.Plauger@Sun.COM        mtree -c option, which was implemented that way for the same reason.
1710843SDave.Plauger@Sun.COM
1810843SDave.Plauger@Sun.COM    b)  Only directories should be listed here.
1910843SDave.Plauger@Sun.COM
2010843SDave.Plauger@Sun.COM    c)  The listing should be kept in filename sorted order.
2110843SDave.Plauger@Sun.COM
2210843SDave.Plauger@Sun.COM    d)  Sanity checking changes to these files can be done by following
2310843SDave.Plauger@Sun.COM        this procedure (the sed -e is ugly, but fixing mtree -c to
2410843SDave.Plauger@Sun.COM        not emit the trailing white space would be even uglier):
2510843SDave.Plauger@Sun.COM
2610843SDave.Plauger@Sun.COM            mkdir /tmp/MTREE
2710843SDave.Plauger@Sun.COM            mtree -deU -f BSD.X.dist -p /tmp/MTREE
2810843SDave.Plauger@Sun.COM            mtree -cdin -k uname,gname,mode -p /tmp/MTREE | \
2910843SDave.Plauger@Sun.COM		sed -e 's/ *$//' >BSD.X.new
3010843SDave.Plauger@Sun.COM            diff -u BSD.X.dist BSD.X.new
3110843SDave.Plauger@Sun.COM            rm -r /tmp/MTREE
3210843SDave.Plauger@Sun.COM
3310843SDave.Plauger@Sun.COM        Note that you will get some differences about /set lines,
3410843SDave.Plauger@Sun.COM        and uname= gname= on certain directory areas, mainly man page
3510843SDave.Plauger@Sun.COM        sections.  This is caused by mtree not having a look ahead
3610843SDave.Plauger@Sun.COM        mechanism for making better selections for these as it
3710843SDave.Plauger@Sun.COM        traverses the hierarchy.
3810843SDave.Plauger@Sun.COM
3910843SDave.Plauger@Sun.COM        The BSD.X.new file should NOT be committed, as it will be missing
4010843SDave.Plauger@Sun.COM        the correct header, and important keywords like ``nochange''.
4110843SDave.Plauger@Sun.COM        Simply use the diff for a sanity check to make sure things are in
4210843SDave.Plauger@Sun.COM        the correct order and correctly indented.
4310843SDave.Plauger@Sun.COM
4410843SDave.Plauger@Sun.COM    e)  Further sanity checking of the system builds with DESTDIR=/someplace
4510843SDave.Plauger@Sun.COM        are more complicated, but can often catch missing entries in these
4610843SDave.Plauger@Sun.COM        files.  I tend to run this more complete sanity check shortly after
4710843SDave.Plauger@Sun.COM        the target date for a new release is announced.
4810843SDave.Plauger@Sun.COM
4910843SDave.Plauger@Sun.COM        If you want details on it bug me about it via email to
5010843SDave.Plauger@Sun.COM        rgrimes@FreeBSD.org.
5110843SDave.Plauger@Sun.COM