forked from sdudley/maximus
-
Notifications
You must be signed in to change notification settings - Fork 1
/
00-README.1ST
255 lines (215 loc) · 10.9 KB
/
00-README.1ST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
Last Update: max-unix-3.03b, Thu Jun 12 00:17:12 EDT 2003
Status: Getting there.
This archive contains Maximus/UNIX v3.03 and Squish/UNIX v1.11. Maximus
and Squish are Copyright (c) 1989-2003 by Lanius Corporation and Scott J.
Dudley. These sources have been released under the terms of the GNU Public
Licence. Please see the file LICENSE in this directory for the text of the
GNU Public Licence (GPL).
Maximus/UNIX and Squish/UNIX are ports for use by UNIX and UNIX-like
(Linux, Mac OS/X) operating systems, by Wes Garland -- email me as
[email protected]. You might also be able to reach me via routed
netmail at 1:249/128.
Note: I am very delinquent about checking my e-mail, because I get tonnes
of spam and have a rather busy life. If you need to get ahold of me..
well, try every few days. Make sure you put "MAXIMUS" in the subject line.
If you are a developer hacking on Maximus, you can give me a call at home,
between the hours of 7:00pm and 8:30pm, Eastern Standard Time (GMT +0500).
Don't bother asking for my phone number, if you aren't smart enough to
figure it out, I don't want to talk to you.
What's in the archive? Lots of stuff, here are the highlights:
00-README.1ST: This file :)
docs/MaximusSourceDoc.doc: Some notes from sjd. Read before hacking.
HACKING: Some notes from me (Wes). Read before hacking.
docs/max_mast.doc: Latest Maximus docs in MS-Word 8 format.
install_tree/docs/max_mast.pdf: Maximus 3.02 docs inPDF format (Thanks AC)
MANIFEST: A list of what-file-is-where
QUICKSTART: How to get up and running quickly.
You should have also gotten max-3.03-etc.tar.gz, which should have been
untarred in the same directory as the archive this file is in. In
that archive, you will find:
docs/max_mast.txt: Maximus docs as a text plain text (suitable for printing)
sample/binkd.cfg: My BinkD configs (binkd 0.9.4)
dist/arj-3.10g.tar.gz: The ARJ program I used for my compress.cfg
dist/arc521e.tar.gz: The ARC program I used for my compress.cfg
install_tree: A template installation (config files, etc)
Q: How did you build this release?
A1: Machine: Linux alpha 2.0.35 #1 Fri Oct 9 01:10:55 EDT 1998 alpha unknown
CPU Type: Little Endian, 64-bits (64 bit long, 32 bit int, 16 bit short, 8 bit char)
Compiler: egcs-2.90.29 980515 (egcs-1.0.3 release)
Make: GNU Make version 3.76.1
Yacc: bison
(Primary development platform)
A2: Machine: SunOS sun 5.8 Generic sun4u sparc SUNW,Ultra-5_10
CPU Type: Big Endian, 32-bits
Compiler: gcc version 2.95.2 19991024 (release)
Make: GNU Make version 3.79.1
Yacc: /usr/ccs/bin/yacc (SUNWbtoo?)
A3: Machine: Linux penguin.home.alexburke.ca 2.4.18-19.8.0 #1 Thu Dec 12 05:39:29 EST 2002 i686 i686 i386 GNU/Linux
CPU Type: Little Endian, 32-bits
Compiler: gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
Make: GNU Make version 3.79.1
Yacc: bison (GNU Bison) 1.35
Q: What do I need to build this release?
A: Good question. I'd guess, GCC 2.72+, GNU Make 3.79+, Bison/Yacc,
and a few megs of disk space. Make sure you installed the G++
stuff when you did GCC. This should be automatic for GCC 2.95
and later releases.
Q: How many people are running this software?
A: The current count is zero. Well, maybe two (Bo Simonsen and I,
but neither are "production")
Q: How well tested is it?
A: Not as well as the 1979 Ford Pinto gas tank.
Q: What works?
A: Squish is a good canditate for that description. Bo Simonsen has
been testing it and verifying its behaviour against Squish bases
produced by HPT (The Husky Project). Bo has a Debian Linux box
running on an Intel CPU.
Most of the utilities (maid, silt, ansi2bbs, etc) seem to work.
Maximus seems to work, but the Mex VM is BROKEN. Broken, broken,
broken. Busted. I'd recommend just removing all your mex files
for now.
Q: How do I install Squish and Maximus?
A: # tar -zxvf max-unix-stable.tar.gz
# tar -zxvf max-3.03-etc.tar.gz
# cd maximus
# ./configure
# make build
# make install
This is actually covered a little more in-depth in the QUICKSTART file.
Q: How do I install just Squish?
A: # tar -zxvf max-unix-stable.tar.gz
# tar -zxvf max-3.03-etc.tar.gz
# cd maximus
# ./configure
# make squish
# make squish_install
# mkdir -p /var/max/etc
# cp install_tree/spool install_tree/etc/squish.cfg /var/max/etc
Q: How do I install just Maximus?
A: # tar -zxvf max-unix-stable.tar.gz
# tar -zxvf max-3.03-etc.tar.gz
# cd maximus
# ./configure
# make max
# make max_install
# cp -rp install_tree/* /var/max
# rm /var/max/etc/squish.cfg
Q: Where can I expect problems with this release?
A: Everywhere!
Q: No, more specifically!
A: Oh.
- You may have a hard time building it. Feeback, please.
- Big Endian machines will not read fido packets, and probably a
whole horde of other things will blow up.
- File locking semantics might be broken, so multinode systems
might randomly destroy things and frighten users.
- Semaphores aren't turned on, and besides, your UNIX mailer
probably doesn't know about Squish, anyhow. So, uh, just
have the mailer call Squish, like in the bad old DOS days.
Don't make it a cron job. And make sure your mailer won't
call two Squishes at once.
- There is no serial support yet. YET.
Q: What do I do if I find a bug?
A: Check the Bug Tracker at maximus.sourceforge.net. If it's not
set up yet (or you can't access the internet), post your
findings on the FidoNet MUFFIN echo.
Q: I made some changes; how do I send you the diffs?
A: Hopefully you're using CVS:
# cvs diff max/changedfile1.c slib/changedfile2.h | /usr/lib/sendmail [email protected]
Q: I don't like installing my stuff in /var/max
A: Change vars.mk, or specify a new prefix on the configure
command line. Actually, the latter is probably much wiser.
Q: How can I set up the Binkd mailer to work with Squish?
A: See sample/binkd. If you have a better config, please send it
to me.
Q: I'm not building under LINUX. What do I do?
A: Read HACKING, notice what configure complains about, and fix it.
The send me the diffs.
Q: Hey! I tried to build your sources under Windows and nothing works!
A: Duh. If you are feeling really resourceful, you can fix everything
I broke. I'll even help by contributing a makefile which makes
GNU Make 3.79 interoperate with MSVC 5.0 (and eVc 3.0 + celib if
you're a crazy masochist) by providing default rules for the command
line compiler. This way we'd only need to maintain one set of makefiles,
although it would force Windows developers to install CygWin in order
to build Windows-native binaries. But that's good, maybe they will
see the light.
Q: Hey! I tried to build your sources under DOS/DJGPP, and nothing works!
A: Well, at least I sort of feel sorry for you. If you get it working,
let me know what you had to change, and send in some diffs.
Q: Hey! I tried to build your sources under OS/2 with Watcom C, and
nothing works!
A: Somebody still has those tools? Cool! Once you get it working,
Let me know what I broke, and I'll fix it.
Q: Hey! I tried to build your sources under OS/2 with GCC and EMX,
and nothing works!
A: That doesn't surprise me, I don't know anything about OS/2,
except how to spell it (and how to make a wall clock out of the
IBM OS/2 2.1 Beta CD). If it doesn't take you much to fix it,
let me know, and I'll merge the patches in.
Q: Why are your Makefiles a mess?
A: They're not, check out those makefile.mk things! Okay, they're not
actually messy, just odd. But now you know why mine are a mess, I
was in hurry to get things working. (Later note: dmake makefile.mk
files have been moved to the CVS attic).
Q: Can I use GNU AutoConf to help me build Maximus/Squish?
A: Download AutoConf. Come up with the Makefile templates, etc.
Get everything compiling and linking, and send me your .in files.
They'd better be good, because I'm not much of an Autoconf fan
(too tricky for me ;)
Q: Hey, I have an Intel box, and think it would be neat if I could
compile the assembly code and make use of it somehow.
A: Good for you, so get to work. I don't have an Intel UNIX box, and
Maximus doesn't need to run under DOS with 8250 UARTs on a
1024K 386 running DESQview 2.51 anymore.
Q: So, how did you get around all that assembly?
A: Direct Video Vid* routines implemented using the OS/2 C code as a
base. Some OS/2 Vio* routines were replaced wholesale; in other
cases the Vid* routines were replaced. In either case, I used
curses. The com routines were based on the Windows NT com code.
Other things weren't needed. Some things were probably left
out at great peril.
Q: You keep talking about locking semantics being a problem.
A: Yeah, I need docs for the OS/2 DosSem* calls. Not the 32-bit
mutex calls, the 16-bit ones. Ditto for sopen(). These are
both in src/unix (libcompat.so).
Q: What can I do to help?
A: - Test by using
- Fix the C++ code in btree to compile cleanly with a modern
compiler. (Later note: You'll have to remove -fpermissive
from CXXFLAGS to see most of the whining).
- Unit test the tricky-looking stuff in src/unix.
- Do something nice with the tui. My hackish approach for
the installer was just a quick attempt to see what would
happen. A full curses port should only be a 10-12 hour
effort. (Later note: tui was so bad I "unreleased" it)
- Write some endian-proof struct packing code (nice tidy
libraries, please) and throw it at the fido packet stuff.
My current (poor) solution is to make the compiler pack
the structs itself, and hope like hell we're running on a
little endian platform. Grep for __attribute.*packed to
find where I've done this. (Later note: Bo scooped some
from Husky, good for him. That helps Squish a lot)
(Later note again: I'll be stealing a bunch more from
xmsgapi, it's just what I need)
- If it cores, send me a stack backtrace (gdb, bt). Keep the
core, source, binary and libraries around for a while, I may
need more input.
- Write a com library based on ntcomm.c which uses the
POSIX termios interface.
- If it just won't do something, send me a system call trace,
about 500 lines around the problem area. If you use truss
for the trace, trap the entry/exit points for the DLLs
in /var/max/lib. (truss = SYSV, ktrace = BSD, strace = Linux)
- If you are a door developer, port your code, or send it to
me. Especially if your door is in C, C++, Perl, MECCA, MEX,
Pascal, or BASIC. VB and QB don't count as BASIC, but some
QB code might be usable if your door is really good.
Q: What do I do if I didn't understand this document?
A: Wait until I get an alpha release candidate ready. If you
can't understand this, then you're not ready to run a release
in this state. Actually, maybe you could convince all of your
hacker friends to help you out, and publish their changes.
--
Wes Garland, 1:249/128