README revision 1.9
11.9Sjnemeth# $NetBSD: README,v 1.9 2009/09/07 02:27:27 jnemeth Exp $
21.2Sperry
31.3ScgdTo: "NetBSD Port Maintainers"
41.1ScgdSubject: distribution sets, etc...
51.1ScgdDate: Mon, 18 Jul 1994 05:02:11 -0400
61.3ScgdFrom: "Chris G. Demetriou"
71.1Scgd
81.1Scgd[ this is also going in a README in the 'sets' directory... ]
91.1Scgd
101.1Scgdwell, i've finally sat down and started doing distribution set
111.1Scgdstuff in a "nice, machine-independent way."  Should have done
121.1Scgdit months ago, but too much other stuff going on then...
131.1Scgd
141.1Scgdanyway, grab ~cgd/sets.tar.gz -- it's three scripts, and a bunch
151.1Scgdof files.
161.1Scgd
171.1Scgdthe scripts should be run from the directory where they reside.
181.1Scgd
191.1Scgdmakeflist:	output the list of files that should be in a
201.1Scgd		distribution, according to the contents of the
211.1Scgd		'lists' directory.
221.1Scgd
231.1Scgdcheckflist:	check the file list (as internally generated
241.1Scgd		by makeflist) against the tree living in $DESTDIR.
251.1Scgd		(that tree should be made with 'make distribution'.)
261.1Scgd
271.1Scgdmaketars:	make tarballs of the various sets in the distribution,
281.1Scgd		based on the contents of the lists, the tree in
291.1Scgd		$DESTDIR, and put the tarballs in $RELEASEDIR.
301.1Scgd		Note that this script _doesn't_ create the 'secr'
311.1Scgd		distribution, because (for now) it requires
321.1Scgd		manual intervention to get the binaries right...
331.1Scgd		(i'll add another script to create that dist, later.)
341.1Scgd
351.1Scgdwhat's in 'lists':
361.1Scgd
371.1Scgdlists describing file sets.  There are two sets of lists per file
381.1Scgdset: machine dependent and machine-independent files. (there's
391.1Scgdalso another file in the 'man' dir, which is used by the 'man'
401.1Scgdand 'misc' sets, but that's explained later.)
411.1Scgd
421.1ScgdThere is one machine-independent file, named "mi".  There are
431.1ScgdN machine-dependent files (one per architecture), named "md.${ARCH}".
441.5Sjmc
451.5SjmcXXX - Temporarily (while USE_NEW_TOOLCHAIN is in effect) there are also tc.mi
461.5Sjmcand tc.old files in some of the set lists. tc.mi lists files in the new 
471.5Sjmctoolchain that didn't exist in the old toolchain. tc.old lists files removed
481.5Sjmcand aren't present in the new toolchain. All other toolchain information was
491.5Sjmcleft for now in the various mi/md files. The makeflist script will check
501.5Sjmcfor USE_NEW_TOOLCHAIN and pull the appropriate one into place. Once all
511.5Sjmcports are converted to the new toolchain the entire toolchain should be pulled
521.5Sjmcinto tc.mi and/or tc.${MACHINE} and everything in tc.old moved to obsolete.
531.1Scgd
541.1Scgdthe sets are as follows:
551.1Scgd
561.1Scgd	base:	the base binary set.  excludes everything described
571.1Scgd		below.
581.1Scgd
591.1Scgd	comp:	compiler tools.  All of the tools relating to C, C++,
601.1Scgd		and FORTRAN (yes, there are two!) that are in the
611.1Scgd		tree.  This includes includes, the linker, tool chain,
621.1Scgd		and the .a versions of the libraries.  (obviously,
631.1Scgd		base includes ldd, ld.so, and the shared versions.
641.1Scgd		base also includes 'cpp', because that's used by X11.)
651.1Scgd		includes the man pages for all the binaries contained
661.1Scgd		within.  Also, includes all library and system call
671.1Scgd		manual pages.
681.1Scgd
691.1Scgd	etc:	/etc, and associated files (/var/cron/tabs, /root,
701.1Scgd		etc.).  things that shouldn't be blindly reinstalled
711.1Scgd		on an upgrade.
721.1Scgd
731.1Scgd	games:	the games and their man pages.
741.1Scgd
751.1Scgd	man:	all of the man pages for the system, except those
761.1Scgd		listed elsewhere (e.g. in comp, games, misc, text).
771.1Scgd		Includes machine-dependent man pages for this CPU.
781.1Scgd
791.1Scgd	misc:	share/dict, share/doc, and the machine-dependent
801.6Swiz		man pages for other CPUs which happen to always
811.1Scgd		be installed.
821.1Scgd
831.9Sjnemeth	modules:	stand/${MACHINE}/${OSRELEASE}/modules kernel modules
841.9Sjnemeth
851.7Sjmmv	tests:	unit, regression, integration and stress tests for the
861.7Sjmmv		whole system.
871.7Sjmmv
881.1Scgd	text:	text processing tools.  groff and all of its friends.
891.1Scgd		includes man pages for all bins contained within.
901.1Scgd
911.1Scgd
921.1Scgdas noted, in addition to the "standard" files in each dir, there's
931.1Scgda file called 'md_share' in lists/man.  it's the list of man pages
941.1Scgdthat are installed from /usr/src/share, which are machine-dependent.
951.1Scgd(note that ones that are installed from elsewhere, and thus are
961.1Scgdinstalled on only one architecture, are listed in the md.${ARCH}
971.1Scgdfile.)  basically, it's grepped through, to see which of the
981.1Scgdmachine-dependent man pages that are always installed should go
991.1Scgdin the 'man' set, and which should go into the 'misc' set.
1001.1Scgd
1011.1Scgd
1021.8SsimonbI've made attempts to get the md files for the amiga, i386, hp300, and
1031.8Ssimonbsparc done.  I've not attempted the rest (though there are empty files
1041.8Ssimonbfor all architectures except the da30, in the various directories).  I
1051.8Ssimonbthink i got the amiga, i386, and sparc done correctly, but i know that
1061.8Ssimonb(because of weirdnesses in how their last snapshots were built) i didn't
1071.8Ssimonbget hp300 done right.
1081.1Scgd
1091.1Scgdwhat you folks need to do:
1101.1Scgd
1111.1Scgdrun 'checkflist' on a tree that you've created with 'make
1121.1Scgddistribution'.  send me the output, and i'll take care of putting
1131.1Scgdstuff on the right lists for you.  In the future, you'll get
1141.1Scgdto do it yourselves, as you add programs and include files, but
1151.1Scgdi'd prefer to do it the first time (unless you really want to do it
1161.1Scgdyourself -- in that case, please ask me to check your suggestions
1171.1Scgdre: the appropriate sets for things...)  There should be a minimal
1181.1Scgdlist output by checkflist -- it should all be things that
1191.1Scgd_should_ be on your lsits, but aren't, i.e. machine-dependent
1201.1Scgdbinaries, man pages, and include files.
1211.1Scgd
1221.1ScgdAlso, please look through the lists, and tell me if you think
1231.1Scgdi've put anything in the wrong place.  i think i've
1241.1Scgdtaken care of all of the machine-dependence bugaboos, by
1251.1Scgddoing it for the N architectures, but i'm not _sure_...  8-)
1261.1Scgd
1271.1Scgd
1281.1Scgdthanks,
1291.1Scgd
1301.1Scgdchris
131