source: trunk/doc/third-party @ 11849

Revision 11849, 10.1 KB checked in by danw, 26 years ago (diff)
tcsh has moved from to
1For the most part, third-party software is easy to locate because it
2is found in the third hierarchy.  Nevertheless, it's a good idea to
3keep track of what we get from outside, especially for things outside
4of third.  There are also some notes at the end of this file on how we
5deal with building third-party software.
7Third-party stuff not under third
10        * packs/config/named.root
12                This file contains the named.root file available at
15        * packs/config/Dash.fallback
17                A fallback copy of
18                /afs/ for
19                when the master copy is inaccessible.  This should be
20                updated at release time.
22        * packs/dotfiles/{README.mail,dot.cshrc,dot.login,dot.logout,
23                dot.mh_profile,welcome}
25                These should be kept in sync with the copies on
26                moira's local disk (/moira/dotfiles/*), which are
27                what actually get copied into new home directories.
29        * athena/etc/xdm/xlogin/bitmaps/menu16
31                This is from the X11 release; it probably never
32                changes.  We have a copy of it here because xlogin
33                needs all its bitmaps locally in /etc/athena/login,
34                and fetching it out of the vendor X distribution at
35                build time is contrary to principles.
37        * packs/dotfiles/arch/sgi_*/cshrc
39                A line to set XUSERFILESEARCHPATH in .cshrc is derived
40                from a piece of the IRIX file /var/X11/xdm/Xsession.dt.
42        * Modified operating system files
44                We keep some modified configuration files from the
45                operating systems we use in packs/config and
46                packs/maint.  The files and their origins are:
48                Solaris files in packs/config/platform/sun4:
50                Athena4.kt      /usr/openwin/share/etc/keytables/US4.kt.Z
51                Athena5.kt      /usr/openwin/share/etc/keytables/US_UNIX5.kt.Z
52           /etc/
53                inetd.conf      /etc/inet/inetd.conf
54                inittab         /etc/inittab
55                logindevperm    /etc/logindevperm
56          /usr/openwin/share/etc/keytables/
57                minor_perm      /etc/minor_perm
58                name_to_sysnum  /etc/name_to_sysnum
59                nsswitch.conf   /etc/nsswitch.conf
60                services        /etc/inet/services
61                su              /etc/default/su
62                system          /etc/system
64                Solaris files in packs/maint/platform/sun4:
66                nfs.client      /etc/init.d/nfs.client
67                rpc             /etc/init.d/rpc
69                IRIX files in packs/config/platform/sgi:
71                4DWm            /usr/lib/X11/app-defaults/4DWm
72                Mwm             /usr/lib/X11/app-defaults/Mwm
73                Toolchest       /usr/lib/X11/app-defaults/Toolchest
74                crontab.root    /var/spool/cron/crontabs/root
75                fonts.alias     /usr/lib/X11/fonts/100dpi/fonts.alias
76                fonts.dir       /usr/lib/X11/fonts/100dpi/fonts.dir
77                inetd.conf      /etc/inetd.conf
78                services        /etc/services
79                system.chestrc  /usr/lib/X11/system.chestrc
81                IRIX files in packs/maint/platform/sgi:
83                network         /etc/init.d/network
85Distribution sites for software under third
88        afsbin          See below.
89        bind  
90        emacs 
91        gcc   
92        inetd           From NetBSD (, usr.sbin/inetd
93        ispell
94        jot             From NetBSD (, usr.bin/jot
95        kermit
96        krb5  
97        lam             From NetBSD (, usr.bin/lam
98        look            From NetBSD (, usr.bin/look
99        mh    
100        patch 
101        perl  
102        rcs   
103        rs              From NetBSD (, usr.bin/rs
104        ssh   
105        sysinfo
106        talk            From NetBSD (
107                        usr.bin/talk goes in the talk subdirectory
108                        libexec/talkd goes in the talkd subdirectory
109                        protocols/talkd.h is from include/protocols,
110                         with some modifications for portability.
111        tcp_wrappers
112        tcsh  
113                        (Old versions at
114        tex             See below
115        top   
116        traceroute (top level)
117        transcript      From Adobe
118        wcl   
119                        (seems to have disappeared; older versoins than
120                        what we have are available in R5contrib)
121        whois           From NetBSD (, usr.bin/whois
122        x3270 
123        xmh             From X11R5
125AFS Binaries
128AFS binaries are placed under arch/<architecture name> for each
129architecture.  For each platform, you should do an import of the
130"include" and "lib" directories of the dest tree, using the vendor tag
131"transarc" and a release tag like "afs-3_4a_patches_2".  For "lib",
132you will have to use the option "-I \!", and you will also need to
133import in domestic/lib.  At the top level, you should have afsd, fs,
134tokens, unlog, and possibly afs.rc; we don't bother with "cvs import"
135for these files.  You will also need the kernel module itself, which
136varies per platform.
138You must do "cvs admin -kb" (or import/checkin with the -kb option) on
139binary files so that they won't get trashed by RCS ID mangling.
141For the sgi_53 and sun4m_54 platforms, we did not do an import of the
142"include" and "lib" directories, so you should just update the files
143with normal checkins.
148There is no single distribution of what we install from TeX.  The
149files we install were retrieved from the CTAN (Comprehensive TeX
150Archive Network) archive, mirrors of which are at several places
151including and
152A list of CTAN mirrors is available via "finger".
153Here is a list of what we got and what subdirectories they were
154imported into:
156        web, web2c from systems/web2c           web2c
157        dvips from dviware/dvips                dvips
158        xdvi from dviware/xdvi                  xdvi
159        fonts/cm/mf/*                           lib/mf/typefaces/cm
160        fonts/latex/mf/* (ignore symlinks)      lib/mf/typefaces/latex
161        fonts/amsfonts/sources/euler/*          lib/mf/typefaces/euler
162        fonts/amsfonts/sources/symbols/*        lib/mf/typefaces/ams
163        fonts/amsfonts/sources/extracm/*        lib/mf/typefaces/cm-ams
164        fonts/amsfonts/sources/cyrillic/*       lib/mf/typefaces/cyrillic
165        fonts/punk/*                            lib/mf/typefaces/other
166        fonts/tengwar/*                         lib/mf/typefaces/tolkien
167        fonts/cirth/*                           lib/mf/typefaces/tolkien
168        fonts/oca/*                             lib/mf/typefaces/ocr
169        fonts/ocr-a/*                           lib/mf/typefaces/ocr
170        fonts/ocr-b/*                           lib/mf/typefaces/ocr
171        fonts/amsfonts/sources/*.mf             lib/mf/macros
172        systems/knuth/lib/*.mf* (must gunzip)   lib/mf/macros
173        systems/knuth/lib/*.tex (must gunzip)   lib/tex/macros
174        macros/amstex/ams* (include amssym)     lib/tex/macros
175(*)     fonts/ams/amsltx11/inputs/*             lib/tex/macros/amslatex/inputs
176(*)     fonts/ams/amsltx11/fontsel/*            lib/tex/macros/amslatex/fontsel
177        biblio/bibtex/distribs/styles/*         lib/tex/macros/bib
178        macros/latex209/distribs/latex/sty/*    lib/tex/macros/latex
179        macros/latex209/distribs/latex/doc/*    lib/tex/macros/latex
180        macros/latex209/distribs/latex/general/* lib/tex/macros/latex
182(*) These directories seem to have disappeared in a reorganization of
183    the CTAN archive, and their contents will need to be located again
184    if they are ever to be updated.
186This is pretty complicated (especially when you add in our own files,
187plus the stuff in lib/tex/macros/other which we don't bother
188identifying the source of).  Ideally, the contents of lib should be
189organized around distributions rather than installed directories, but
190the CTAN archive is not especially well-organized in that respect.  If
191anyone ever attempts a reorganization around distributions, they
192should probably just create a new hierarchy and delete the contents of
193the "lib" hierarchy.
195Imports of new versions
198CVS (at least as of version 1.9) has the irritating weakness that
199import operations never delete files; you have to delete the removed
200files in a new version of a package by hand.  If the import command
201was "cvs import module vendor-branch release-tag", then to delete
202files you do:
204        cvs co -r vendor-branch module
205        cd module
206        cvs -n update -r release-tag |& \
207                awk '/no longer/ { print $3; }' > /tmp/files
208        xargs cvs rm < /tmp/files
209        cvs ci
210        awk '{print "module" $0; }' /tmp/files > /tmp/files2
211        xargs cvs rtag -r vendor-branch release-tag < /tmp/files2
213Yuck.  But it works.  For each deleted file, a dead revision will be
214checked in on the vendor branch and tagged with release-tag.  (The
215tagging part may be unnecessary, but should not be undesirable.)
217If, after an import, there are files which have been modified on the
218mainline but do not need to be locally modified any more, you can run
219"cvs admin -bvendor-branch" on the files to make them revert to the
220vendor branch.
222Third-party build systems
225There are two avenues one can take for building third-party software:
227        * You can use the native build system.
229        * You can declare the native build system a loss, and use one
230          of the two Athena build systems described in the file
231          "build-system" in this directory.  This option is not
232          preferred, but is necessary in cases like afsbin (where we
233          are simply installing target files) or software imported
234          from NetBSD.
236In a some cases, the native build system may already conform to the
237Athena build system (a configure script which needs no special options
238for the Athena environment besides those given in our site.def file),
239but generally you will have to write a Makefile.athena file specifying
240how to build and install the program.  A Makefile.athena file must
241have the following targets:
243        prepare         Prepare to build the source tree
244        clean           Remove files generated by the all target
245        all             Generate all automatically build files
246        check           Perform automatic tests, if any
247        install         Install the software in $SRVD.
249A Makefile.athena file may rely on the following environment variables
250(it is most robust to use `"$$VARNAME"' instead of `"${VARNAME}"' in
251rules to get the value of such variables):
253        ATHENA_SYS      Architecture name for this system
254        HOSTTYPE        Platform name for this system
255        SRVD            Install destination directory (e.g. /srvd)
256        SOURCE          Source tree (e.g. /mit/source)
257        COMPILER        Appropriate compiler/linker for this system
258        CONFIGDIR       Location of Athena Imake templates
259        XCONFIGDIR      Location of X-style Imake templates
260        ATHTOOLROOT     Root of installed Athena tree
262Following is a sample Makefile.athena file, used to build a package
263which uses an X-style Imakefile:
265        # $Id: $
267        SHELL=/bin/sh
269        prepare:
270                imake "-I$$XCONFIGDIR" -DUseInstalled "-DSRCDIR=$$SOURCE"
271                ${MAKE} Makefiles
273        clean:
274                ${MAKE} clean
276        all:
277                ${MAKE} includes depend all
279        check:
281        install:
282                ${MAKE} install DESTDIR="$$SRVD"
Note: See TracBrowser for help on using the repository browser.