Rewrote this script—when run, upgrades will always happen from a local
tree, even if the script has to download a tree to /tmp to do it! This
maintains an upgrade path from the a2server-update in Ivan's tree, but
allow us to phase out that kind of thing because it's insecure.
This is still effectively chipping away at the old structure, but it's a
pretty sizable chip for one new script. Granted, that's because the old
update script didn't really do a whole lot. *shrug*
The next chip should do similar to the one-line installation from Ivan's
website. Once we have that, we can remove the need for scripts to
download files one at a time. That won't remove much complexity
admittedly, but it'll remove some of it and every bit helps at this
point.
Ivan added support to build everything on Debian/Raspbian stretch, added
some alternate URLs, and updated the "just how the hell do you install
Marinetti right now exactly?" dance.
This was more frustrating to merge than it honestly should've been and
I'm kinda responsible for some of that, but it's never gonna get easier
to maintain unless we break from the single-developer monolithic blocks.
Hopefully this will be the last time we do things this way.
suppress null byte read warnings in Bash 4.4
enable SSH server on Raspberry Pi if disabled
Internet Archive backup URL's for external downloads, where possible
compiles AppleTalk kernel if -c flag is specified, rather than downloading
better cleanup after AppleTalk kernel compile
notification if AppleTalk kernel module doesn't load
fixed download links for communication software
fixed bugs possibly preventing compile of macipgw and ciopfs
fixed minor bugs during initial setup prompts
os option (Raspbian update) removed from a2server-setup
What's still missing from this is a version comparison mechanism. The
reason why it is missing is that we only use this in one place at the
moment, and if you have a version string that is not three digits, your
version is recent enough. This means we can save this for when there
are a common functions script to import and make the comparisons for us
without code duplication.
One of the reasons I held off on doing this before is that there are a
lot of complex one-line seds in here that I expect _will_ be broken by
this. More than a few of these will assume, depend on, require, and
break if specific hardcoded whitespace is not found. That's problematic
anyway--when whitespace isn't syntactic, you shouldn't do that. So it's
time to fix these anyway.
self-hosted external dependency fallback; or default via A2SERVER_NO_EXTERNAL=1
a2serverrc sets default A2SERVER_SCRIPT_URL and A2SERVER_BINARY_URL
64-bit Debian precompiled binary support
support for reorganized files subdirectory
better information re unsupported OS at start of install
info about netboot at end of install
no longer deletes ~/GNUstep
install libdb5.1 and libssl1.0.0 by default instead of older versions
small tweaks and fixes regarding Debian detection, case insensitive fs, etc
updated source code path for The Unarchiver
this is internal version 1.2.8; see "release" notes about external dependencies
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 file really belongs in the A2SERVER root where people looking at
this tree can most easily find it, but for now it's more important to
follow the layout on Ivan's server. Putting it in the root was a
mistake on my part in my initial upload because "of course". Corrected!
Reflowed the scripts (mostly) according to vim's autoindent engine.
Also added vim modelines so that people who are familiar with them can
configure their environment for A2SERVER's conventions. Also removed
trailing whitespace from lines and files while I was at it to make git
happier about various things.
This is perhaps less than ideal, but it should make the scripts work in
any web directory you put the repository into. As such, this should be
considered part of the "initial state" trying to match Ivan's current
non-SCM setup. We can adjust this later if he does something different
on his end.