As Debian has gone from large to huge, actions operating on the package
database have gotten slower and slower, so it's best to do them as few
times as possible.
Here we've got the trivial optimization. A more complete optimization
requires a refactoring of code, and we're kind of in a 1.3.0 "freeze",
so let's not do that here and now.
This doesn't close the open issue on the subject, since precisely what's
under what license isn't really addressed yet, but at least the license
is specified. For those unfamiliar with the WTFPL, it's a public domain
release like CC0, except instead of trying to legally emulate the public
domain if that concept is foreign to your jurisdiction, it basically
gives all software licenses a giant middle finger.
What it lacks in finesse and niceties or in legal rigor of the CC0, it
makes up for in simplicity: Do whatever the f*** you want with the code!
It's pretty hard to misconstrue what that means. :)
This doesn't close the open issue on the subject, since precisely what's
under what license isn't really addressed yet, but at least the license
is specified. For those unfamiliar with the WTFPL, it's a public domain
release like CC0, except instead of trying to legally emulate the public
domain if that concept is foreign to your jurisdiction, it basically
gives all software licenses a giant middle finger.
What it lacks in finesse and niceties or in legal rigor of the CC0, it
makes up for in simplicity: Do whatever the f*** you want with the code!
It's pretty hard to misconstrue what that means. :)
no longer sets console login to 4800 bps, and removes commented-out console login code
no longer sets up GSFILES share, and removes it if it's empty
installs ciopfs (case insensitive file system)
converts existing A2FILES to ciopfs volume, disabling casefold:toupper
changes installed netboot GS/OS filenames to mixed case
fixes bug so user not named "pi" can use randnum authentication
removes obsolete commented code for older AppleTalk kernel install
rewording of some prompts and renumbering of one menu
netboot GS/OS is installed with original mixed case names
DOS3.3.FST and TEACH are installed during network boot setup
Spectrum is fully installed (not just disk images)
Closes#11 and #13. As mentioned in #11, support for Ubuntu should
return in the future, but not explicitly. Rather, the core of A2SERVER
itself ashould be made to run on any OS distribution for which our
requirements are met.
The goal is that any OS-specific details should be part of OS-specific
packaging or handled by the user (editing MOTD/issue files, etc.) We
can handle those details on Debian systems because we know how to do
that when packaging for Debian. Ubuntu, Fedora, etc. packages will have
to make their own tweaks. This commit doesn't do all of that, but it
does mean there's one fewer things we need to worry about during the
transition.
This won't reinstall your boot blocks for you if they're not the latest
version. If you'd like to test this (and please test this!), you'll
need to move your existing boot blocks out of the way so it can install
new ones. Probably actually checking will happen when the Python stuff
is ready.
Originally I created the patch system in my messy Python-based monster
to allow you to patch the netboot files to the appropriate versions for
the appropriate GS/OS version, leaving 6.0.1 as pristine as possible.
But that doesn't make sense, does it? We already fix the necessary bugs
in the AppleTalk client, and the only other patch made at this time is
the year table in ProDOS 8, and we should have that patch regardless of
what GS/OS version you install. Of course at that point I'm one date on
the ProDOS 8 splash screen away from 6.0.3's version of P8, and I may as
well apply that to reduce the number of functionally identical files
with different SHA digests.
Long story short: Versioned patches for netboot files don't make sense,
so I removed that, and you now get 6.0.3's P8 (standalone as well as the
version embedded in "Apple //e Boot Blocks" and "ProDOS16 Image".
Closes#7. There are other versions of the firmware that are between
the last/current version and the last one marked supported, and they
should all work fine. Since theoretically all future versions of Jessie
will be supported once we get there, that should make things easier once
we get there.
As I was preparing the patches for these boot files for 6.0.3, I
realized that p8 actually differs between GS/OS 6.0.1 and the netboot
files from Apple: The date on the splash screen is older.
This change is trivial and pedantic, but as people begin looking at
these files, how tu update them, and what to update them with, it's
worth at least noting the different version and its digest. If someone
can make a compelling argument for the patch to be applied, we can
uncomment it.
This isn't done yet as the code doesn't currently do anything with
checking whether patches were correctly applied or not. Also the
function is really ugly. I need to start making python modules and
classes out of a few things here to clean this up further.
I'm not real pleased with the outcome here, but all of the functions
related to mounting the HFS image and getting the a2boot files out of it
has been factored out of the bootblock installation function.
I also rewrote the disk7 download code (which has been refactored) be a
lot more robust. It's longer than it maybe needs to be, but it's going
the right direction.
Because the way we deal with the A2SETUP.img varies based on your OS,
there's a lot of platform-specific clutter. Not only that, the boot
block installation function has started to get rather unwieldy. So we
begin thinning it out a little.
This is the start of a major cleanup of the code in install-gsos.py
(which really is turning into install-a2boot.py). First, the code is
developing three levels of output: Silent, normal, and verbose. There
might eventually be also a fourth debug level, but that's not happening
yet.
Second, variable names just haphazardly chosen as I've been working on
this are being sanitized, made consistent, and otherwise improved.
Third (and this has only just begun), the code is being refactored a
bit for what belongs where. That will continue.