Jump to content
denodster

Building First Mozilla for PPC (and maybe eventually 68k)

Recommended Posts

So I'm going to attempt to build the March 31st 1998 version of mozilla for PPC using sheephsaver on my Macbook pro.

 

The plan is thus:

  1. Build for PPC
  2. Remove as as much code as possible (Composer, mail, other unnecessary portions of the mozilla suite that I don't care about)
  3. Swap libraries and build for 68k
  4. make https work for the enjoyment of secured crappy html web fans everywhere... or maybe just people who want to post to 68kmla on their vintage macs...

Is this worth my time? probably not, but I'm also a web developer and have been itching to get a better understanding of the core workings of a browser, so don't try to talk me out of it, I've already sunk too much time into the project to quit now....

 

So far I've managed to gather all of the tools I need and now I'm working on building. I've created a github site to document my progress here:

 

http://andrew.colchagoff.com/netscape

 

As of tonight I've posted my latest build effort.

 

There happens to be a documentary about this particular mozilla release, being the first one:

 

Let me know if you would be interested in helping with this madness and maybe we can set up some kind of source control.

Share this post


Link to post
Share on other sites

Probably won't be very useful, seeing as Classilla already exists, the 1998 build of Mozilla is *extremely* primitive (IIRC, it's quite broken and below NS4 in capability.)

 

It'd be a cool exercise anyways though. If you want something practical to port though, NetSurf seems like a good candidate.

Share this post


Link to post
Share on other sites

I'm sure, given enough practice, you could figure out how to back port bits of code from later Mozilla versions so that it can be more functional (nothing spectacular, but enough to ensure that it's not going to be completely useless; HTTPS and maybe some improved CSS, for example). Cameron did essentially this when he created Classilla.

 

c

Share this post


Link to post
Share on other sites

I believe Classilla started from a much newer base - in particular, WaMCoM Mozilla 1.3.1, which is a lot newer, from around 2003.

 

It could be interesting to see Classilla or WamCoM on older hardware, but those are already considered to be dire on most "early" (aka anything not a G4) PowerPC systems. And even then there's questions about whether it's "enough."

 

For better or worse, Classilla 9.3.3 (the most recent version) is from 2014, so that's pushing four years since its last published version too.

 

It's probably worth your time if you want to get an understanding of the way the web worked in the '90s or if you want to get into Classic Mac OS programming. It has been mentioned a few times over the past few weeks that the web has pretty fundamentally changed over the past several years (really, up to around a decade) in such a way that basically turns the entire content delivery structure on its head.

 

Now, you'll still get an idea for what it's like for a browser to make a request and then start downloading data, but the way that data is actually presented is different now, generally.

 

On the other hand: it is not worth your time if what you are after is building a "modern" browser that will really let you use the current day Web on anything that can't quickly run a modern browser. (AKA: A handful of the newest G4/G5 models.)

Share this post


Link to post
Share on other sites

Sooo quick update, but 6 months later and I've successfully built the source. It was a beast to get it to build as I discovered that it only builds in Codewarrior 2 Pro and on top of that only builds in Mac OS 8 on an HFS filesystem. I consider all of these things good signs as I believe this means the end product will run in system 7.6 Now on to the next step which is going to be trimming the fat. I only want navigator, so Ill be cutting the composer and the other extra parts of the mozilla suite. From there I'll try to clean up some of the multi platform code, as it is pointless for building on mac.

 

How I go here:

http://andrew.colchagoff.com/netscape/

Share this post


Link to post
Share on other sites

This project uses of Open Transport 1.1. I'm currently successfully building the PPC version on OS 8.1 and I'm slowly working my way through the libraries trying to compile 68k versions. Codewarrior Pro 2 has 68k equivalents of nearly everything necessary. but the answer may be to steal the TLS from Classilla if I can get the 68k version to compile.

 

That being said I expect if I can get the project to build on 68k I might be able to attract some other devs. so who knows where it would go after that.

 

 

After surfing the net with it on my G3 for a little while I would say its rendering capability is somewhere around Netscape Communicator 4.8 The interesting things about this fork is that it's already slimmed down from communicator in that it only has composer. I've noticed that mozilla released again only a week later, so I might go play with that source code as well to see if it's much different.

Edited by denodster
more info

Share this post


Link to post
Share on other sites

If you install netatalk2 on a linux server, then you can set up a Appleshare pointing to that directory and connect to it in Chooser.

After you save the project on the macintosh you can use git locally on the linux server to commit/push. You can even login to the linux server with the macintosh you are working on to use git on that shared Appleshare folder you are working in.

If you don't have a linux server you can install one in a VirtualBox VM or a Raspberry PI.

 

..or maybe you can port git to System 7? that would be cool ;-)

Edited by LOOM

Share this post


Link to post
Share on other sites

Don't forget that Git will merrily strip away HFS(+) resource forks. If you have any plans to use Git to archive your CWP sources, projects and rsrc files.

 

Dash Board for Newton OS found what is probably the best solution for that, if you have access to an OS X machine; https://github.com/masonmark/Dash-Board-for-Newton-OS#act-vii--git tl;dr, use OS X's built in AppleDouble converter to preserve the forks into something UNIX friendly.

Edited by nglevin
Wikipedia article on what is AppleDouble/AppleSingle

Share this post


Link to post
Share on other sites

...oh, it looks like they removed those tools to handle AppleDouble in recent versions of OS X. Somewhere around the Sierra or High Sierra timeframe. Awesome.

 

long sigh

 

Well, I'm sure there's some alternative out there. The official tooling was mighty convenient with git commit hooks, tho.

Share this post


Link to post
Share on other sites

Okay I've got my first dev build and the source on github. (After all that I used a zipdisk to move the files to my modern mac and commit)

 https://github.com/denodster/mozz

 

I've compressed anything that I know to have a resource fork in a sit file but I may have missed a few things...

it appears github doesn't know anything about mac linebreaks.

 

Share this post


Link to post
Share on other sites

You could put everything in a .sit file? Then BinHex it and it should be fine on any non-Mac filesystem.

 

This is neat, by the way!

 

c

Share this post


Link to post
Share on other sites

i've added .sit files to the repository for everything just in case but the source files shouldn't have resource forks. My understanding of binhex is that its purpose is to avoid data corruption when a file is moved by an ascii only server which github is not. Do you think binhexing is necessary?

Share this post


Link to post
Share on other sites
On 12/24/2017 at 5:48 PM, nglevin said:

Don't forget that Git will merrily strip away HFS(+) resource forks. If you have any plans to use Git to archive your CWP sources, projects and rsrc files.

 

If one follows the suggestion to use netatalk, then the resource forks are just extra files. You would just commit the resource forks like any other file in git.

 

It does mean though that anyone using the repo would need to have a way to do the reverse operation. There's probably no way to avoid that.

Share this post


Link to post
Share on other sites
On 7/16/2017 at 2:02 AM, IPalindromeI said:

If you want something practical to port though, NetSurf seems like a good candidate.

 

I notice that Netsurf is available for Amiga and Atari, which suggests (perhaps) that it's been built to 68k already.  And it has HTTPS amongst other goodies.  The ad blocker in particular would ease the strain on low-end machines.

 

Quote
Lean requirements
From a modern monster PC to a humble 30MHz ARM 6 computer with 16MB of RAM

 

Share this post


Link to post
Share on other sites
On 06/03/2018 at 2:02 PM, denodster said:

Pushed an update to github, I've also updated my write up.

http://andrew.colchagoff.com/netscape/part2.html

 

would anyone have an interest in a live stream if I set one up of my next coding session? I'm thinking of pickup a device to capture the screen on my g3 and stream i with a mic of my talking, but it might just be a little bit to dry....

 

I’d watch that! This is the device I use to capture from my old Macs, though I picked it up significantly cheaper on Amazon: https://www.startech.com/uk/AV/Converters/Video/usb-3-capture-device-vga~USB32VGCAPRO.

 

This is an awesome project, by the way, and I’ve been following it steadily. Thanks for putting in the effort.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×