Do not put this hash into production without the following one!
As with a2server, I've written a new setup.txt that downloads the entire
a2cloud source tree for installation, which allows the monolithic script
to be broken up into smaller pieces without worrying about that breaking
the web install—but it's not included in this revision so that git can
keep track of the rename of setup.txt to ivan.sh.
Despite the fact there is no 2.0.0 release yet, 1.9 is already so close
that it doesn't give Ivan any breathing room for any patches he wants to
make, so my intention is to skip major version 2 entirely other than for
this transition. The final release will be given the 3.0.0 version
number.
@IvanExpert removed the raspbian-update call in setup as part of the
jessie compatibility commit, and the script's gone away in A2SERVER as
well. Also removed the other upgrade-handling aliases and the thin
wrapper for raspi-config.
The binaryURL and scriptURL mechanisms sadly don't work properly, and
using it in the first place was kind of a workaround for allowing others
besides Ivan to work on the scripts while we transitioned to doing
things in a way that lent itself to community development.
Here we are over a year later and the scripts are just now undergoing a
rewrite to make them not dependent upon Ivan's webserver. The mechanism
intended to facilitate that is getting in the way. It still exists in
some other scripts, but I'm purging it as I go.
This is similar to what's already done in A2SERVER, but there's both
more and less of it. Fewer scripts run during the installation phase
(generally just setup), but there's a lot more tools and pieces that are
downloaded.
This is complicated somewhat by the single setup script making it hard
to work on just one piece at a time. We'll begin addressing that soon.
The way we've been manipulating the user's LXDE session menu is kind of
not supposed to be done, and certainly it's not the right way to do it.
So what I've done is make sure the correct tool for doing it system-wide
is installed. It turns out we can actually do it by hand, but because
we're not using a standard category, this method works according to all
of the applicable standards.
Jessie and later require that XDG application files (.desktop files)
live in /usr/share/applications. Some DEs may still look in /usr/local
for them, but they're not required or expected to, and LXDE at least no
longer does. So we'll put them where they belong from now on.
Changed precompiled binary locations and names to match what Ivan did
with A2SERVER. That is, precompiled binaries are in ${binaryURL} in a
subdir named precompiled and are named <base>-<arch>-<debianname.tgz or
suchlike. I didn't put the Apple // stuff into precompiled, but Ivan
can figure out where that should go.
I'd begun cleaning up GSPort in a branch before we decided to drop A2Pi
and KEGS from the A2CLOUD installer. Doing that caused the mainline
tree and my branch to differ, so I've been cleaning them both up to work
exactly the same way. That's done now, only the branch's ### more
searchable comments are different between the two emulator installations
now.
Couldn't just merge the files because there are other changes in the
branch we don't want now, or possibly at all, so I had to do it by
balancing the trees back and forth until the part I was working on was
consistent across both.
I'll probably bring across the searchable comments next, not because
they affect anything, but because they'll assist making sure nothing is
lost as we're working quickly for a Jessie release.
This is a change made in A2SERVER already--the choice between the which,
command -v, type, and hash... The problem is that POSIX defines none of
these so consistently that you can depend on one of them to work. We
happen to use bash specifically, which gives us an advantage in that
bash's behavior is well-defined.
For us, hash is the best way to find out whether or not a command exists
as it turns out. So that's what we'll use.