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.