Merge pull request #39 from dashea/master

Fix the systemd Requires: line.
systemd: make upgrade-switch-root more like initrd-switch-root

This makes the behavior of upgrade-switch-root.{service,target} almost
exactly match initrd-switch-root.

It adds upgrade-plymouth-switch-root.service, which is basically just a
copy of plymouth-switch-root.service, but for upgrades. It'd be nice if
we could somehow use that same service in both places...
Do async downloads, like yum does

Most of the changes here are just minor rejiggering to get the proper
text output like yum-cli.
Add log messages for download start

This makes us print a log message whenever we start downloading a file,
which is nice, since otherwise that doesn't happen.
Fix mirror failover for instrepo

mirror_failover_obj is an additional callback object that happens when
there's a mirror failure. The default mirror_failure callback already
handles connection timeout and HTTP error 503 correctly (see _setupGrab
in yum/yumRepo.py).

After that, it calls mirror_failure_obj. In our case, that made it raise
the exception again, which makes us bail out of the download
prematurely.

Dropping this should fix that.
rename 'raise_exception' callback

yum uses this to log urlgrab failures, so rename it 'log_grab_failure'
and make it log the failure.
clean up repo setup

This ensures that we set up all the newly-added repos the same way as
the existing ones, and should also set them up more like how yum does.
fedup.download: add interrupt_callback

This adds an interrupt_handler, like yum's, that should allow you to
cancel a single download with CTRL-C, or exit the program by hitting it
twice within two seconds.

You might notice that this doesn't seem to work in Fedora 19;
hilariously, it doesn't seem to work in yum, either, so at least we're
matching the current yum behavior.
Update spec changelog and setup.py for 0.8.0

Yup, it's about time to release.
fix date in spec changelog

it's not like I've just had this lying around for months..
Fix NameError if you hit Ctrl-C during download

Forgot that it's yum.URLGrabError here, not URLGrabError. This doesn't
trigger on F19/F20 'cuz the interrupt callback stuff doesn't work in yum
there.
Improve log messages when the GPG key is missing

Before, if the GPG key was missing, you'd get:

  fedup.yum:check_keyfile() REJECTED: %s does not belong to any package

So - fix the misplaced format string, and actually check to see if the
file *exists* before bothering to look it up in RPMDB.
Let --instrepo override --iso/--device instrepo

--iso and --device both overwrote args.instrepo, which meant that even
if the user provided a custom --instrepo we'd ignore it and use the
kernel/initramfs from the DVD image.

This lets us test new upgrade images on top of existing DVD/ISO images.