1 | For the most part, third-party software is easy to locate because it |
---|
2 | is found in the third hierarchy. Nevertheless, it's a good idea to |
---|
3 | keep track of what we get from outside, especially for things outside |
---|
4 | of third. There are also some notes at the end of this file on how we |
---|
5 | deal with building third-party software. |
---|
6 | |
---|
7 | Third-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 | |
---|
91 | Distribution 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 | |
---|
158 | PGP Signatures |
---|
159 | -------------- |
---|
160 | |
---|
161 | The (*)ed packages above come PGP-signed. Note that some packages have |
---|
162 | signatures of the .tar.gz files, and others have signatures of the .tar |
---|
163 | files themselves even though you can only download the .tar.gz files. |
---|
164 | |
---|
165 | Local copies of the PGP signing keys, are kept in doc/pgpkeys. You can |
---|
166 | add them to your PGP keyring by doing: |
---|
167 | |
---|
168 | pgp -ka pgpkeys [PGP 2.6] |
---|
169 | pgpk -a pgpkeys [PGP 5] |
---|
170 | |
---|
171 | And 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 |
---|
177 | signature against.) |
---|
178 | |
---|
179 | AFS Binaries |
---|
180 | ------------ |
---|
181 | |
---|
182 | AFS binaries are placed under arch/<architecture name> for each |
---|
183 | architecture. 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", |
---|
186 | you will have to use the option "-I \!". At the top level, you should |
---|
187 | have afsd, fs, tokens, unlog, and possibly afs.rc; we don't bother |
---|
188 | with "cvs import" for these files. You will also need the kernel |
---|
189 | module itself, which varies per platform. |
---|
190 | |
---|
191 | You must do "cvs admin -kb" (or import/checkin with the -kb option) on |
---|
192 | binary files so that they won't get trashed by RCS ID mangling. |
---|
193 | |
---|
194 | LPRng |
---|
195 | ----- |
---|
196 | |
---|
197 | We 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 | |
---|
202 | LEIM |
---|
203 | ---- |
---|
204 | |
---|
205 | LEIM (Library of Emacs Input Methods) is built as part of Emacs, but |
---|
206 | distributed separately. New versions of LEIM should be imported along |
---|
207 | with new versions of Emacs, in third/emacs/leim. |
---|
208 | |
---|
209 | TeX |
---|
210 | --- |
---|
211 | |
---|
212 | There is no single distribution of what we install from TeX. The |
---|
213 | files we install were retrieved from the CTAN (Comprehensive TeX |
---|
214 | Archive Network) archive, mirrors of which are at several places |
---|
215 | including ftp.duke.edu:/tex-archive and ftp.cdrom.com:pub/tex/ctan. |
---|
216 | A list of CTAN mirrors is available via "finger ctan@ftp.dante.de". |
---|
217 | Here is a list of what we got and what subdirectories they were |
---|
218 | imported 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 | |
---|
243 | This is pretty complicated (especially when you add in our own files, |
---|
244 | plus the stuff in lib/tex/macros/other which we don't bother |
---|
245 | identifying the source of). Ideally, the contents of lib should be |
---|
246 | organized around distributions rather than installed directories, but |
---|
247 | the CTAN archive is not especially well-organized in that respect. If |
---|
248 | anyone ever attempts a reorganization around distributions, they |
---|
249 | should probably just create a new hierarchy and delete the contents of |
---|
250 | the "lib" hierarchy. |
---|
251 | |
---|
252 | Imports of new versions |
---|
253 | ----------------------- |
---|
254 | |
---|
255 | CVS (at least as of version 1.9) has the irritating weakness that |
---|
256 | import operations never delete files; you have to delete the removed |
---|
257 | files in a new version of a package by hand. If the import command |
---|
258 | was "cvs import module vendor-branch release-tag", then to delete |
---|
259 | files 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 | |
---|
270 | Yuck. But it works. For each deleted file, a dead revision will be |
---|
271 | checked in on the vendor branch and tagged with release-tag. (The |
---|
272 | tagging part may be unnecessary, but should not be undesirable.) |
---|
273 | |
---|
274 | If, after an import, there are files which have been modified on the |
---|
275 | mainline 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 |
---|
277 | vendor branch. But first, check in an unmodified copy of the vendor |
---|
278 | branch file onto the mainline, so that the version history of the file |
---|
279 | is clear. |
---|
280 | |
---|
281 | Third-party build systems |
---|
282 | ------------------------- |
---|
283 | |
---|
284 | There 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 | |
---|
295 | In a some cases, the native build system may already conform to the |
---|
296 | Athena build system (a configure script which needs no special options |
---|
297 | for the Athena environment besides those given in our config.site |
---|
298 | file), but generally you will have to write either a configure.athena |
---|
299 | or a Makefile.athena file specifying how to build and install the |
---|
300 | program. |
---|
301 | |
---|
302 | configure.athena is used when the package builds and installs |
---|
303 | normally, but needs to have extra options passed to configure (or has |
---|
304 | a configure script which isn't named "configure", or needs additional |
---|
305 | steps performed before or after the configure script). |
---|
306 | |
---|
307 | Makefile.athena is needed if the package needs to do anything unusual |
---|
308 | at any of the other steps. A Makefile.athena must have the following |
---|
309 | targets: |
---|
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 | |
---|
317 | A Makefile.athena file may rely on the following environment variables |
---|
318 | (it is most robust to use `"$$VARNAME"' instead of `"${VARNAME}"' in |
---|
319 | rules 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 | |
---|
330 | Following is a sample Makefile.athena file, used to build a package |
---|
331 | which 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" |
---|