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 | * packs/config/named.root |
---|
11 | |
---|
12 | This file contains the named.root file available at |
---|
13 | rs.internic.edu:/domain/named.root. |
---|
14 | |
---|
15 | * packs/config/Dash.fallback |
---|
16 | |
---|
17 | A fallback copy of |
---|
18 | /afs/athena.mit.edu/system/config/dash/Dash.menus for |
---|
19 | when the master copy is inaccessible. This should be |
---|
20 | updated at release time. |
---|
21 | |
---|
22 | * packs/dotfiles/{README.mail,dot.cshrc,dot.login,dot.logout, |
---|
23 | dot.mh_profile,welcome} |
---|
24 | |
---|
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. |
---|
28 | |
---|
29 | * athena/etc/xdm/xlogin/bitmaps/menu16 |
---|
30 | |
---|
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. |
---|
36 | |
---|
37 | * packs/dotfiles/arch/sgi_*/cshrc |
---|
38 | |
---|
39 | A line to set XUSERFILESEARCHPATH in .cshrc is derived |
---|
40 | from a piece of the IRIX file /var/X11/xdm/Xsession.dt. |
---|
41 | |
---|
42 | * Modified operating system files |
---|
43 | |
---|
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: |
---|
47 | |
---|
48 | Solaris files in packs/config/platform/sun4: |
---|
49 | |
---|
50 | Athena4.kt /usr/openwin/share/etc/keytables/US4.kt.Z |
---|
51 | Athena5.kt /usr/openwin/share/etc/keytables/US_UNIX5.kt.Z |
---|
52 | devlink.tab /etc/devlink.tab |
---|
53 | inetd.conf /etc/inet/inetd.conf |
---|
54 | inittab /etc/inittab |
---|
55 | logindevperm /etc/logindevperm |
---|
56 | keytable.map /usr/openwin/share/etc/keytables/keytable.map |
---|
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 |
---|
63 | |
---|
64 | Solaris files in packs/maint/platform/sun4: |
---|
65 | |
---|
66 | nfs.client /etc/init.d/nfs.client |
---|
67 | rpc /etc/init.d/rpc |
---|
68 | |
---|
69 | IRIX files in packs/config/platform/sgi: |
---|
70 | |
---|
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 |
---|
80 | |
---|
81 | IRIX files in packs/maint/platform/sgi: |
---|
82 | |
---|
83 | network /etc/init.d/network |
---|
84 | |
---|
85 | Distribution sites for software under third |
---|
86 | ------------------------------------------- |
---|
87 | |
---|
88 | afsbin See below. |
---|
89 | bind ftp.isc.org:isc/bind/src |
---|
90 | emacs prep.ai.mit.edu:pub/gnu |
---|
91 | gcc prep.ai.mit.edu:pub/gnu |
---|
92 | inetd From NetBSD (ftp.netbsd.org), usr.sbin/inetd |
---|
93 | ispell ftp.cs.ucla.edu:pub/ispell-3.1 |
---|
94 | jot From NetBSD (ftp.netbsd.org), usr.bin/jot |
---|
95 | kermit http://www.columbia.edu/kermit |
---|
96 | krb5 athena-dist.mit.edu:pub/kerberos |
---|
97 | lam From NetBSD (ftp.netbsd.org), usr.bin/lam |
---|
98 | look From NetBSD (ftp.netbsd.org), usr.bin/look |
---|
99 | mh ftp.ics.uci.edu:pub/mh |
---|
100 | patch prep.ai.mit.edu:pub/gnu |
---|
101 | perl prep.ai.mit.edu:pub/gnu |
---|
102 | rcs prep.ai.mit.edu:pub/gnu |
---|
103 | rs From NetBSD (ftp.netbsd.org), usr.bin/rs |
---|
104 | ssh ftp.cs.hut.fi:pub/ssh |
---|
105 | sysinfo usc.edu:pub/sysinfo |
---|
106 | talk From NetBSD (ftp.netbsd.org) |
---|
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 ftp.win.tue.nl:/pub/security |
---|
112 | tcsh ftp.astron.com:pub/tcsh |
---|
113 | (Old versions at ftp.uu.net:pub/shells/tcsh) |
---|
114 | tex See below |
---|
115 | top ftp.groupsys.com:pub/top |
---|
116 | traceroute ftp.ee.lbl.gov (top level) |
---|
117 | transcript From Adobe |
---|
118 | wcl ftp.x.org:contrib/devel_tools |
---|
119 | (seems to have disappeared; older versoins than |
---|
120 | what we have are available in R5contrib) |
---|
121 | whois From NetBSD (ftp.netbsd.org), usr.bin/whois |
---|
122 | x3270 ftp.x.org:contrib/applications |
---|
123 | xmh From X11R5 |
---|
124 | |
---|
125 | AFS Binaries |
---|
126 | ------------ |
---|
127 | |
---|
128 | AFS binaries are placed under arch/<architecture name> for each |
---|
129 | architecture. 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", |
---|
132 | you will have to use the option "-I \!", and you will also need to |
---|
133 | import in domestic/lib. At the top level, you should have afsd, fs, |
---|
134 | tokens, unlog, and possibly afs.rc; we don't bother with "cvs import" |
---|
135 | for these files. You will also need the kernel module itself, which |
---|
136 | varies per platform. |
---|
137 | |
---|
138 | You must do "cvs admin -kb" (or import/checkin with the -kb option) on |
---|
139 | binary files so that they won't get trashed by RCS ID mangling. |
---|
140 | |
---|
141 | For 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 |
---|
143 | with normal checkins. |
---|
144 | |
---|
145 | TeX |
---|
146 | --- |
---|
147 | |
---|
148 | There is no single distribution of what we install from TeX. The |
---|
149 | files we install were retrieved from the CTAN (Comprehensive TeX |
---|
150 | Archive Network) archive, mirrors of which are at several places |
---|
151 | including ftp.duke.edu:/tex-archive and ftp.cdrom.com:pub/tex/ctan. |
---|
152 | A list of CTAN mirrors is available via "finger ctan@ftp.dante.de". |
---|
153 | Here is a list of what we got and what subdirectories they were |
---|
154 | imported into: |
---|
155 | |
---|
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 |
---|
181 | |
---|
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. |
---|
185 | |
---|
186 | This is pretty complicated (especially when you add in our own files, |
---|
187 | plus the stuff in lib/tex/macros/other which we don't bother |
---|
188 | identifying the source of). Ideally, the contents of lib should be |
---|
189 | organized around distributions rather than installed directories, but |
---|
190 | the CTAN archive is not especially well-organized in that respect. If |
---|
191 | anyone ever attempts a reorganization around distributions, they |
---|
192 | should probably just create a new hierarchy and delete the contents of |
---|
193 | the "lib" hierarchy. |
---|
194 | |
---|
195 | Imports of new versions |
---|
196 | ----------------------- |
---|
197 | |
---|
198 | CVS (at least as of version 1.9) has the irritating weakness that |
---|
199 | import operations never delete files; you have to delete the removed |
---|
200 | files in a new version of a package by hand. If the import command |
---|
201 | was "cvs import module vendor-branch release-tag", then to delete |
---|
202 | files you do: |
---|
203 | |
---|
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 |
---|
212 | |
---|
213 | Yuck. But it works. For each deleted file, a dead revision will be |
---|
214 | checked in on the vendor branch and tagged with release-tag. (The |
---|
215 | tagging part may be unnecessary, but should not be undesirable.) |
---|
216 | |
---|
217 | If, after an import, there are files which have been modified on the |
---|
218 | mainline 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 |
---|
220 | vendor branch. |
---|
221 | |
---|
222 | Third-party build systems |
---|
223 | ------------------------- |
---|
224 | |
---|
225 | There are two avenues one can take for building third-party software: |
---|
226 | |
---|
227 | * You can use the native build system. |
---|
228 | |
---|
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. |
---|
235 | |
---|
236 | In a some cases, the native build system may already conform to the |
---|
237 | Athena build system (a configure script which needs no special options |
---|
238 | for the Athena environment besides those given in our site.def file), |
---|
239 | but generally you will have to write a Makefile.athena file specifying |
---|
240 | how to build and install the program. A Makefile.athena file must |
---|
241 | have the following targets: |
---|
242 | |
---|
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. |
---|
248 | |
---|
249 | A Makefile.athena file may rely on the following environment variables |
---|
250 | (it is most robust to use `"$$VARNAME"' instead of `"${VARNAME}"' in |
---|
251 | rules to get the value of such variables): |
---|
252 | |
---|
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 |
---|
261 | |
---|
262 | Following is a sample Makefile.athena file, used to build a package |
---|
263 | which uses an X-style Imakefile: |
---|
264 | |
---|
265 | # $Id: $ |
---|
266 | |
---|
267 | SHELL=/bin/sh |
---|
268 | |
---|
269 | prepare: |
---|
270 | imake "-I$$XCONFIGDIR" -DUseInstalled "-DSRCDIR=$$SOURCE" |
---|
271 | ${MAKE} Makefiles |
---|
272 | |
---|
273 | clean: |
---|
274 | ${MAKE} clean |
---|
275 | |
---|
276 | all: |
---|
277 | ${MAKE} includes depend all |
---|
278 | |
---|
279 | check: |
---|
280 | |
---|
281 | install: |
---|
282 | ${MAKE} install DESTDIR="$$SRVD" |
---|