backports: add Python based backports-update-manager
authorLuis R. Rodriguez <mcgrof@do-not-panic.com>
Fri, 6 Dec 2013 01:34:12 +0000 (02:34 +0100)
committerLuis R. Rodriguez <mcgrof@do-not-panic.com>
Sun, 8 Dec 2013 18:30:48 +0000 (19:30 +0100)
commit25b48501a8d45f491080f329b796c594e56d82e0
tree2a259bb0c62fd4d39edfb69fbcad2414a8e1128e
parente6fbe86841f22eac08bae49caa40b7e07a17722d
backports: add Python based backports-update-manager

This replaces the old shell scripts:

  * get-compat-kernels
  * get-compat-trees

with a shiny central Python based backpor update manager:

  * backports-update-manager

The new version provides a few features which were
simply a difficult to implement and quite frankly
pointless to try to implement in shell. Things worth
mentioning:

  * This will now monitor your old directories
    and packages and remove any stale old directory
    or packages. You should feel comfortable with
    now just getting the latest code from the repo
    and always just running the script, it will do
    everything you wished it did for you.

  * This will always check the URLs and ensure your
    file size matches the target upstream size, we
    used to only check if you had the file or not

  * The compat-ksrc directory was renamed to
    ksrc-backports which goes inline with our
    rebranding crusade. The tool is smart enough
    to figure out if you had the old name and
    rename it for you. Its also smart enough to
    figure out if you had your old compat-ksrc
    as a symlink and preserve things just as you
    intended following the old real path.

  * The debs/ directory is now moved into
    ksrc-backports, making it easier to manage
    and detect what is or not part of backports.

  * I found no way to deal with objects to extract
    GNU archive items with Python, so we're stuck with
    requiring GNU ar, this provides a simple wrapper
    for our usage.

  * For the tree updater we instead or relying on
    Linus' tree to be a remote we leave it separately
    but always use --reference and allow users to provide
    their own --reference override for new clones.
    It should be easy to extend this should others have
    other custom work spaces through a config file or
    the like.

  * To keep backports up to date on a system after
    an initial run one should only need to run through
    a cronjob:

backports-update-manager --force

    To only update the git trees:

backports-update-manager --force --git-trees-only

Relying on an continued update list is dumb though,
in the future we should look into putting out new
builds through without requiring GNU ar and also
updating the list through a json file just as the
kernel has its own now:

https://www.kernel.org/releases.json

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
devel/backports-update-manager [new file with mode: 0755]
devel/ckmake
devel/get-compat-kernels [deleted file]
devel/get-compat-trees [deleted file]
lib/bpar.py [new file with mode: 0644]
lib/bpgit.py