RasppleII / a2server

AppleTalk server for Apple II computers
Other
31 stars 8 forks source link

Roadmap to rebuilding this mess? #64

Open knghtbrd opened 2 years ago

knghtbrd commented 2 years ago

TODO: Explain this crap… TL;DR: ✦'s for how hard it is

knghtbrd commented 2 years ago

Spectrum's a pain in the ass because not only does it get updates, but the URLs to the pieces and what they are keeps changing. It's not hard, you just have to accept that every so often you're going to get a bug report that the installer fails because something changed and the old version is no longer available, or the filename has changed, or the website's been reorganized, or the phase of the moon changed, or … 🤪 Might resolve this by downloading a copy of whatever the current version is and put them somewhere I control and point the installer at those. I can refresh what I have when I notice new versions of stuff and update the installer when I download new files.

Or maybe I just ship spectrum pre-installed in the package and people just unpack it? Hmm. I should be able to do that with the others too, as long as I don't plan on putting them into Debian or anything. That might solve many problems. I'll think about it.

NJRoadfan commented 1 year ago

I have been working on some of this one and off for the past 2.5 years.

My main tree based on Ivan's 1.5.x dev tree is here: https://github.com/NJRoadfan/a2server/tree/njroadfan-main-dev

The main branch is based on netatalk 2.2.6 + manually applied patches (all patches are now part of the main netatalk 2.x branch). Here is a brief change log: Tools -Fix AppleDouble header bug in cppo. -Make sure everything uses Python 3 as Python 2 is deprecated in new distros.

a2server-2-tools: -Always install nulib2 and unarchiver from package repos.

a2server-3-sharing.txt: -Added compatibility for Debian Buster and Bullseye, also tested with latest Ubuntu releases. -Install CUPS and enable papd for network printing. Mac users in particular are asking for this. -Properly re-build AppleTalk kernel module with Linux 5.x kernels.

a2server-5-netboot -Add option to install GS/OS System 6.0.4. -GS/OS install now includes LaserWriter driver to print. -Fix some dead links for downloaded utilities. -Install Marinetti 3.0d11 and latest link layer revisions. -Added installation of Webber and Networker2. -Updated Spectrum to install the latest Platinum version.

In progress is a move to the @rdmark's netatalk-2.x branch from 2.2.6: https://github.com/NJRoadfan/a2server/tree/new-netatalk-test

With this move to the "new" netatalk, I am slowly switching things over to systemd and tossing compatibility with ancient Debian releases in the trash. Upgrade installs from old A2SERVERs will likely no longer be possible. The biggest improvement is macipgw now has a proper systemd service and the NAT is setup using nftables vs. the now obsolete iptables. I still have to fix things up like the samba setup script.

The biggest thing I'm having trouble with is that I don't have a RPi to test any of this with. I have been doing everything in VirtualBox at the moment. There is still ALOT of cleanup that needs to be done. Also I have not tested pulling files from an alternate URL or local hard drive at all.

As far as testing setups goes, I can confirm everything works on Bullseye and Ubuntu Server 22.04LTS and 22.10. By that, EVERYTHING works. You get file sharing (AFP on Apple II, classic Macs, and modern MacOS/ASIP), Apple II netbooting, printing (both GS/OS and classic MacOS), and MacIP internet access (both Marinetti and classic MacOS via MacTCP and OT). I have tested this with emulated machines and real hardware via both Ethernet and Localtalk using a Shiva Fastpath as a bridge.