staff blogs

distributed.net staff keep (relatively) up-to-date logs of their activities in .plan files. These were traditionally available via finger, but we've put them on the web for easier consumption.

2004-08-14

mfeiri [14-Aug-2004 @ 02:24]

Filed under: Uncategorized @ 02:24 +00:00

:: 14-Aug-2004 02:24 GMT (Saturday) ::

Just to make this clear. No, I’m afraid I cant simply build one more
client for macos classic. I have moved on to Mac OS X and I do honestly
not feel at home in Mac OS 9 anymore. Since my Titanium PowerBook died a
couple of months ago I dont even have a computer that can boot into Mac OS
9 anymore. My new Aluminium PowerBook can run Mac OS 9 in the Classic
Environment, but I rarely use this feature at all. And my old PowerBook
Duo 230 cannot boot Mac OS 9 either :-)
Additionally I think that there is probably a lot of “bitrot” [0] that
will need to be taken care of before a new client for macos could even be
built. Sorry.

Let me try to explain what it takes to resurrect the port of dnetc to
macos:

First you will need to have a working development environment to build
dnetc. An old copy of Metrowerks CodeWarrior Pro or a free copy of Apples
abandoned MPW Toolkit [1] will do. If you use Codewarrior you should take
care to get a version that supports 68k. Additionally you should get the
MrC Compiler Plugin[2] , because MrC often generated faster code than some
of the old versions of CodeWarriors own compiler.

Now, the biggest problem when porting dnetc to macos is its reliance on a
lot of unix APIs, especially in the realm of networking. In order to stay
close to the mainline dnetc codebase we have tried to use GUSI [3] to be
able to use these features under macos. Unfortunately this solution was
never without problems and GUSI seems to be orphaned now too.
Another problem are hard to trace bugs that might be related to the
unconventional way of doing multiprocessor aware threading in macos. Take
a look at bugzilla [4] and search for bugs related to macos to get an
idea.
Additionally a prospective porter would need to be able to take care of
various particularities of the old Mac OS, including the testing of the
cooperative multitasking, packaging the builds (resource forks, memory
assignment, old compression formats,…) and maintaining custom code to
make dnetc a proper citizen in a macos environment.

If you want to try it, the tarball with our public client source code [5]
should be a good place to start a new port or to resurrect the old one.

[0] http://c2.com/cgi/wiki?BitRot
[1] http://developer.apple.com/tools/mpw-tools/
[2] ftp://ftp.apple.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./Miscellaneous/MrC_CW_Plugins.sit.hqx
[3] http://sourceforge.net/projects/gusi/
[4] http://bugs.distributed.net/
[5] http://www.distributed.net/source/