fix traceback with --skippkgs

if we're skipping packages, there's not going to be any package
problems, so we can exit before checking that stuff.
add system-upgrade-generator

Rather than depending on 'systemd.unit=system-upgrade.target', look for
the files that indicate that the system is ready for upgrade:

1. /system-upgrade (symlink to directory)
2. /system-upgrade-root (directory)
3. /run/system-upgrade (symlink) *or* /run/initramfs/upgrade.conf (file)

If those three conditions are met, the system is prepared for upgrade,
so (for this boot only) make 'system-upgrade.target' the default taget.

Note that /run/initramfs/upgrade.conf isn't part of the SystemUpgrade
spec, but it's retained here for compatibility with existing Fedora
releases.
drop extra boot args (#964303)

We have a systemd generator that starts the upgrade, so we don't need to
put 'systemd.unit=upgrade.unit' in the boot args to make that happen.

As for SELinux stuff, eparis says that if the upgrade breaks because of
incompatibilities between the two policies, that's a bug in the policy
and I should make the SELinux guys fix it. Works for me!

This will fix problems where people run fedup, then install a new
kernel and end up with 'systemd.unit=upgrade.unit' in their boot args.

github: fixes #24
drop /run/initramfs/upgrade.conf

Nothing's going to change these paths; let's just simplify things and
not mess around with that file. If we're in upgrade-switch-root.target
and there's a mountpoint at /system-upgrade-root, we're good to go.
update .gitignore
systemd: Makefile improvements

Clean up systemd/ Makefile a bit and do autoconf-esque replacement of
@UTILDIR@ and @LIBEXECDIR@ to generate upgrade-prep.service and
system-upgrade-generator at build time.
upgrade-prep.sh: clean up backward-compat junk a bit

Eventually we'll be able to remove that code altogether; for now just
make sure it's conditional so we don't interfere with newer upgrade.img
Fix NameError traceback when checking .treeinfo.signed

If you want e.strerror, you gotta do 'except ... as e:'.
Minor --instrepo cleanup

Nobody does --addrepo REPOID=URL --instrepo REPOID, they all do
--instrepo URL. So let's document it as such.

Also, change the name/id of the repo given with --instrepo to
'instrepo', which is sensible, right?
Add --instrepokey

This lets testers define the key that will be used to verify the
contents of instrepo when they're using a custom instrepo.
Add preflight sanity check to upgrade-prep.sh

Before starting the upgrade, make sure all the packages are there.

This will help us avoid half-assed upgrades in cases where the DVD (or
other media) doesn't get mounted properly.

This fixes #15 on github.
Check for mismatched arch in instrepo (#981180)

If the treeinfo arch doesn't match the system's arch, raise an error.

This fixes #12.
Use correct kernel for Xen guests (#1023618)

Xen guests are super-special and need a special kernel to boot.

That kernel exists and it's listed in .treeinfo - you just need to use
the [images-xen] section if you're in a Xen system.

As for Xen hosts, we can use the xen kernel there too - it ain't gonna
hurt nothin'.

So: if we're running under Xen, use the xen kernel.
Merge branch 'wgwoods-fedup-master' into dashea-fedup-master
Change the python-devel BuildRequires to python-libs

We want a BuildRequires for the distutils module, since it's not in
the regular python package (surprise!), but python-libs is where it
actually lives. python-devel is more for Python/C stuff, and we don't
have any of that.