source: trunk/doc/third-party @ 15326

Revision 15326, 12.3 KB checked in by ghudson, 24 years ago (diff)
Add gnome stuff though gnome-libs and sawfish.
Line 
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.
6
7Third-party stuff not under third
8---------------------------------
9
10        * athena/etc/xlogin/bitmaps/menu16
11
12                This is from the X11 release; it probably never
13                changes.  We have a copy of it here because xlogin
14                needs all its bitmaps locally in /etc/athena/login,
15                and fetching it out of the vendor X distribution at
16                build time is contrary to principles.
17
18        * packs/build/autoconf/
19
20                The files in this directory are copied from
21                third/autoconf and used by do.sh.
22
23        * packs/config/named.root
24
25                This is a copy of the named.root file available at
26                rs.internic.net:/domain/named.root.
27
28        * packs/config/Dash.fallback
29
30                A fallback copy of
31                /afs/athena.mit.edu/system/config/dash/Dash.menus for
32                when the master copy is inaccessible.  This should be
33                updated at release time.
34
35        * packs/dotfiles/arch/sgi_*/cshrc
36
37                A line to set XUSERFILESEARCHPATH in .cshrc is derived
38                from a piece of the IRIX file /var/X11/xdm/Xsession.dt.
39
40        * packs/dotfiles/{README.mail,dot.cshrc,dot.login,dot.logout,
41                dot.mh_profile,welcome}
42
43                These should be kept in sync with the copies on
44                moira's local disk (/moira/dotfiles/*), which are
45                what actually get copied into new home directories.
46
47        * Modified operating system files
48
49                We keep some modified configuration files from the
50                operating systems we use in the os and arch
51                subdirectories of packs/config and packs/maint.
52                The files and their origins are:
53
54                Solaris files in packs/config:
55
56                Athena4.kt      /usr/openwin/share/etc/keytables/US4.kt.Z
57                Athena5.kt      /usr/openwin/share/etc/keytables/US_UNIX5.kt.Z
58                devlink.tab     /etc/devlink.tab
59                inetd.conf      /etc/inet/inetd.conf
60                inittab         /etc/inittab
61                logindevperm    /etc/logindevperm
62                keytable.map    /usr/openwin/share/etc/keytables/keytable.map
63                minor_perm      /etc/minor_perm
64                name_to_sysnum  /etc/name_to_sysnum
65                nsswitch.conf   /etc/nsswitch.conf
66                services        /etc/inet/services
67                su              /etc/default/su
68                system          /etc/system
69
70                Solaris files in packs/maint:
71
72                nfs.client      /etc/init.d/nfs.client
73                rpc             /etc/init.d/rpc
74
75                IRIX files in packs/config:
76
77                4DWm            /usr/lib/X11/app-defaults/4DWm
78                Mwm             /usr/lib/X11/app-defaults/Mwm
79                Toolchest       /usr/lib/X11/app-defaults/Toolchest
80                crontab.root    /var/spool/cron/crontabs/root
81                fonts.alias     /usr/lib/X11/fonts/100dpi/fonts.alias
82                fonts.dir       /usr/lib/X11/fonts/100dpi/fonts.dir
83                inetd.conf      /etc/inetd.conf
84                services        /etc/services
85                system.chestrc  /usr/lib/X11/system.chestrc
86
87                IRIX files in packs/maint:
88
89                network         /etc/init.d/network
90
91Distribution sites for software under third
92-------------------------------------------
93
94        afsbin          See below.
95        bind            ftp.isc.org:isc/bind/src
96        db              http://www.sleepycat.com/download.html
97        emacs           ftp.gnu.org:pub/gnu/emacs; see also "leim"
98        gcc             ftp.gnu.org:pub/gnu/gcc
99        gettext         ftp.gnu.org:pub/gnu/gettext
100        glib            ftp.gtk.org:pub/gtk
101        gtk             ftp.gtk.org:pub/gtk
102        gmake           ftp.gnu.org:pub/gnu/make
103        gmp             ftp.gnu.org:pub/gnu/gmp
104        gnome-libs      ftp.gnome.org:pub/GNOME/stable/sources/gnome-libs
105        imlib           (Formerly www.rasterman.com; imlib 1 is dead now)
106        inetd           From NetBSD (ftp.netbsd.org), usr.sbin/inetd
107        intlfonts       ftp.gnu.org:pub/gnu/intlfonts
108        ispell          ftp.cs.ucla.edu:pub/ispell-3.1
109        jot             From NetBSD (ftp.netbsd.org), usr.bin/jot
110        jpeg            ftp://ftp.uu.net/graphics/jpeg/
111        kermit          http://www.columbia.edu/kermit
112        krb5*           http://web.mit.edu/network/kerberos-form.html
113        lam             From NetBSD (ftp.netbsd.org), usr.bin/lam
114        leim            ftp.gnu.org:pub/gnu/emacs; see below
115        libglade        ftp.gnome.org:pub/GNOME/stable/sources/libglade
116        libpng          http://www.libpng.org/pub/png/libpng.html
117        libungif        prtr-13.ucsc.edu:pub/libungif
118        look            From NetBSD (ftp.netbsd.org), usr.bin/look
119        lprng           ftp.astart.com:pub/LPRng; see below
120        mdoc            From NetBSD (ftp.netbsd.org), share/tmac
121        nmh             ftp.math.gatech.edu:pub/nmh
122        nvi             http://www.bostic.com/vi/
123        ORBit           ftp.gnome.org:pub/GNOME/stable/sources/ORBit
124        patch           ftp.gnu.org:pub/gnu/patch
125        perl            ftp.cpan.org:pub/CPAN/src
126        readline        ftp.gnu.org:pub/gnu/readline
127        rcs             ftp.gnu.org:pub/gnu/rcs
128        read-edid       http://web.onetel.net.uk/~elephant/john/programs\
129                        /linux/read-edid/
130        rep             librep.sourceforge.net:pub/librep
131        rep-gtk         rep-gtk.sourceforge.net:pub/rep-gtk
132        rs              From NetBSD (ftp.netbsd.org), usr.bin/rs
133        sawfish         sawmill.sourceforge.net:pub/sawmill
134        sendmail*       ftp.sendmail.org:pub/sendmail
135        ssh*            ftp.cs.hut.fi:pub/ssh
136        sysinfo         http://www.magnicomp.com/
137        talk            From NetBSD (ftp.netbsd.org)
138                        usr.bin/talk goes in the talk subdirectory
139                        libexec/talkd goes in the talkd subdirectory
140                        protocols/talkd.h is from include/protocols,
141                         with some modifications for portability.
142        tcp_wrappers*   ftp.porcupine.org:/pub/security
143        tcsh            ftp.astron.com:pub/tcsh
144        tex             See below
145        top             ftp.groupsys.com:pub/top
146        traceroute      ftp.ee.lbl.gov (top level)
147        transcript      From Adobe
148        wcl             ftp.x.org:contrib/devel_tools
149                        (seems to have disappeared; older versoins than
150                        what we have are available in R5contrib)
151        whois           From NetBSD (ftp.netbsd.org), usr.bin/whois
152        x3270           ftp.x.org:contrib/applications
153        xmh             From X11R5
154        xpm             ftp.x.org:contrib/libraries
155        xscreensaver    http://www.jwz.org/xscreensaver/
156        zlib            ftp.info-zip.org:pub/infozip/zlib
157
158PGP Signatures
159--------------
160
161The (*)ed packages above come PGP-signed. Note that some packages have
162signatures of the .tar.gz files, and others have signatures of the .tar
163files themselves even though you can only download the .tar.gz files.
164
165Local copies of the PGP signing keys, are kept in doc/pgpkeys. You can
166add them to your PGP keyring by doing:
167
168        pgp -ka pgpkeys [PGP 2.6]
169        pgpk -a pgpkeys [PGP 5]
170
171And you can verify the signature of a package with
172
173        pgp sigfile  [PGP 2.6]
174        pgpv sigfile [PGP 5]
175
176(You will be prompted for the name of the file to compare the
177signature against.)
178
179AFS Binaries
180------------
181
182AFS binaries are placed under arch/<architecture name> for each
183architecture.  For each platform, you should do an import of the
184"include" and "lib" directories of the dest tree, using the vendor tag
185"transarc" and a release tag like "afs-3_4a_patches_2".  For "lib",
186you will have to use the option "-I \!".  At the top level, you should
187have afsd, fs, tokens, unlog, and possibly afs.rc; we don't bother
188with "cvs import" for these files.  You will also need the kernel
189module itself, which varies per platform.
190
191You must do "cvs admin -kb" (or import/checkin with the -kb option) on
192binary files so that they won't get trashed by RCS ID mangling.
193
194LPRng
195-----
196
197We import three packages: the LPRng sources themselves
198(LPRng/LPRng-x.tgz) into third/lprng/lprng, the LPRng documentation
199(LPRng/LPRng_DOC-x.tgz) into third/lprng/doc, and the ifhp filter
200(FILTERS/ifhp-x.tgz) into third/lprng/ifhp.
201
202LEIM
203----
204
205LEIM (Library of Emacs Input Methods) is built as part of Emacs, but
206distributed separately. New versions of LEIM should be imported along
207with new versions of Emacs, in third/emacs/leim.
208
209TeX
210---
211
212There is no single distribution of what we install from TeX.  The
213files we install were retrieved from the CTAN (Comprehensive TeX
214Archive Network) archive, mirrors of which are at several places
215including ftp.duke.edu:/tex-archive and ftp.cdrom.com:pub/tex/ctan.
216A list of CTAN mirrors is available via "finger ctan@ftp.dante.de".
217Here is a list of what we got and what subdirectories they were
218imported into:
219
220        web, web2c from systems/web2c           web2c
221        dvips from dviware/dvips                dvips
222        xdvi from diware/xdvi                   xdvi
223        fonts/cm/mf                             lib/mf/typefaces/cm
224        fonts/latex/mf/* (ignore symlinks)      lib/mf/typefaces/latex
225        fonts/amsfonts/sources/euler            lib/mf/typefaces/euler
226        fonts/amsfonts/sources/symbols          lib/mf/typefaces/ams
227        fonts/amsfonts/sources/extracm          lib/mf/typefaces/cm-ams
228        fonts/amsfonts/sources/cyrillic         lib/mf/typefaces/cyrillic
229        fonts/punk                              lib/mf/typefaces/other
230        fonts/tengwar                           lib/mf/typefaces/tolkien
231        fonts/cirth                             lib/mf/typefaces/tolkien
232        fonts/oca                               lib/mf/typefaces/ocr
233        fonts/ocr-a                             lib/mf/typefaces/ocr
234        fonts/ocr-b                             lib/mf/typefaces/ocr
235        fonts/amsfonts/sources/*.mf             lib/mf/macros
236        systems/knuth/lib/*.mf* (must gunzip)   lib/mf/macros
237        systems/knuth/lib/*.tex (must gunzip)   lib/tex/macros
238        macros/amstex/ams* (include amssym)     lib/tex/macros
239        biblio/bibtex/distribs/styles           lib/tex/macros/bib
240        macros/latex/unpacked                   lib/tex/macros/latex
241        macros/latex/packages/amslatex          lib/tex/macros/amslatex
242
243This is pretty complicated (especially when you add in our own files,
244plus the stuff in lib/tex/macros/other which we don't bother
245identifying the source of).  Ideally, the contents of lib should be
246organized around distributions rather than installed directories, but
247the CTAN archive is not especially well-organized in that respect.  If
248anyone ever attempts a reorganization around distributions, they
249should probably just create a new hierarchy and delete the contents of
250the "lib" hierarchy.
251
252Imports of new versions
253-----------------------
254
255CVS (at least as of version 1.9) has the irritating weakness that
256import operations never delete files; you have to delete the removed
257files in a new version of a package by hand.  If the import command
258was "cvs import module vendor-branch release-tag", then to delete
259files you do:
260
261        cvs co -r vendor-branch module
262        cd module
263        cvs -n update -r release-tag |& \
264                awk '/no longer/ { print $3; }' > /tmp/files
265        xargs cvs rm < /tmp/files
266        cvs ci
267        awk '{print "module" $0; }' /tmp/files > /tmp/files2
268        xargs cvs rtag -r vendor-branch release-tag < /tmp/files2
269
270Yuck.  But it works.  For each deleted file, a dead revision will be
271checked in on the vendor branch and tagged with release-tag.  (The
272tagging part may be unnecessary, but should not be undesirable.)
273
274If, after an import, there are files which have been modified on the
275mainline but do not need to be locally modified any more, you can run
276"cvs admin -bvendor-branch" on the files to make them revert to the
277vendor branch.  But first, check in an unmodified copy of the vendor
278branch file onto the mainline, so that the version history of the file
279is clear.
280
281Third-party build systems
282-------------------------
283
284There are two avenues one can take for building third-party software:
285
286        * You can use the native build system.
287
288        * You can declare the native build system a loss, and use one
289          of the two Athena build systems described in the file
290          "build-system" in this directory.  This option is not
291          preferred, but is necessary in cases like afsbin (where we
292          are simply installing target files) or software imported
293          from NetBSD.
294
295In a some cases, the native build system may already conform to the
296Athena build system (a configure script which needs no special options
297for the Athena environment besides those given in our config.site
298file), but generally you will have to write either a configure.athena
299or a Makefile.athena file specifying how to build and install the
300program.
301
302configure.athena is used when the package builds and installs
303normally, but needs to have extra options passed to configure (or has
304a configure script which isn't named "configure", or needs additional
305steps performed before or after the configure script).
306
307Makefile.athena is needed if the package needs to do anything unusual
308at any of the other steps.  A Makefile.athena must have the following
309targets:
310
311        prepare         Prepare to build the source tree
312        clean           Remove files generated by the all target
313        all             Generate all automatically build files
314        check           Perform automatic tests, if any
315        install         Install the software in $SRVD.
316
317A Makefile.athena file may rely on the following environment variables
318(it is most robust to use `"$$VARNAME"' instead of `"${VARNAME}"' in
319rules to get the value of such variables):
320
321        ATHENA_SYS      Architecture name for this system
322        HOSTTYPE        Platform name for this system
323        SRVD            Install destination directory (e.g. /srvd)
324        SOURCE          Source tree (e.g. /mit/source)
325        COMPILER        Appropriate compiler/linker for this system
326        CONFIGDIR       Location of Athena Imake templates
327        XCONFIGDIR      Location of X-style Imake templates
328        ATHTOOLROOT     Root of installed Athena tree
329
330Following is a sample Makefile.athena file, used to build a package
331which uses an X-style Imakefile:
332
333        # $Id: $
334
335        SHELL=/bin/sh
336
337        prepare:
338                imake "-I$$XCONFIGDIR" -DUseInstalled "-DSRCDIR=$$SOURCE"
339                ${MAKE} Makefiles
340
341        clean:
342                ${MAKE} clean
343
344        all:
345                ${MAKE} includes depend all
346
347        check:
348
349        install:
350                ${MAKE} install DESTDIR="$$SRVD"
Note: See TracBrowser for help on using the repository browser.