The archiver installation was a pretty simple, isolated chunk of code,
and thus easily pulled into its own script with minimal external
dependencies.
I made few changes, so the new script isn't very tidy unless it's run
from ivan.sh. It should create temp directories for anything it
downloads and clean up after itself when it's finished, but for now it
assumes ivan.sh is doing that. Mostly that's to keep the intellectual
diff small from the code in ivan.sh to the script.
I'll clean this up in an upcoming commit. Feel free to offer PRs that
do this kind of thing to other easily isolated (or not so easily
isolated) chunks. Once ivan.sh is split apart into nice logical pieces,
it will be a lot easier to test and fix individual pieces independent of
the whole. That's something we can't even say for a2server yet.
I'd removed debianMajor and the like in the last commit, but I missed
one instance of it being used: To install the unar package on jessie and
greater systems. Well, jessie is now oldstable and wheezy is so
obsolete you're not even recommended to upgrade from it. Nowadays, we
should just be installing the package.
We ought to check for it in /usr/local and see if we can determine if
its an old version and remove it, probably. If someone else would like
to tackle that, feel free.
Cherry-picked the system_ident script from the refactor branch. This
sets ras2_os and ras2_arch in a way that would be more useful for
selecting a filename from among arch-specific alternatives. It's less
good for identifying a Pi vs. desktop Debian or anything else, so I've
kept around the isRpi variable for now.
May revisit the variables in system_ident later on if it really would be
useful to have ras2_os not include the release codename. For now
though, this is fine. If nothing else this will encourage me to do more
to get rid of the specific checks for the Pi. The major places the
check seems to be used at the moment are:
1. Text output
2. Determining which version of java to install
3. Whether to spew out the USB lower/upper udev rules
4. How to compile GSport
The question of which java to install is easily answered: The one you
have available. Currently we're calling for java8 on RPi and ORACLE
java7 on Debian. That doesn't actually make sense. On Debian we'd
probably want to use openjdk, and the only reason to use Oracle's JDK on
Raspbian is because you might already have it installed. I'm inclined
to suggest that we should check if you have RPF's Oracle java installed,
and if you don't install openjdk—unless someone can give me a good
reason to use the JDK from those evil bastards at Oracle who believe
that implementing a standard library compatible with theirs from
published specs is somehow a Copyright infringement… Needless to say I
have a bias against evil/stupid companies.
GSport should literally use $ras2_arch if that once we have it replaced
with GSplus. That just leaves the udev rules and flavor text. I think
the problem will solve itself in time.
Added a new script that sets two variables when sourced, $ras2_os and
$ras2_arch. These are different than the existing variables we've been
using in a2cloud/a2server and they don't (in and of themselves) presume
Debian. That said, nothing's likely to work with these scripts except
on Debian, so … yeah. But the script is designed not to tie you to that
ultimately.
Outputs the variable assignments to stdout unless you pass -q.
Replaced downloading scripts and files from a2cScriptURL with
installation from the source tree. This obsoletes a2cScriptURL, so it's
been removed.
It made sense to remove the .txt from the script names since I was
rewriting the lines that use them anyway.
Renamed a2cDevel to the now more descriptive a2cSource and remove
conditionals to download individual files as part of the old web
install, since we don't do it that way anymore.
Now a2cloud matches a2server in requiring that ivan.sh be run from a
source tree. That'll always be true when running the installation using
the approved methods, including the web install upgrade.
We aren't actually using a2cCmpInstalled, and we shouldn't start. If we
need this functionality, look at RasppleII/a2server 2b52ad8 for the
right way to do it.
This is a minor edit to the upgrade/index.txt in a2server, removing the
human-readable changelog display because a2cloud never really kept a
file like that.
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.