Copy Ubuntu PPA packages from one release pocket to another
Project description
ppa-copy-packages
Copy published PPA packages from one release pocket to another.
We build a few Debian packages containing various helpful scripts (i.e. the packages have Architecture: all and do not need to be recompiled when system library versions change). We want them to be available for all supported Ubuntu releases. So we upload a version built for the oldest supported LTS release to our PPA and use this script to copy the built packages to all other releases in the same PPA:
ppa-copy-packages -O pov -s xenial -t bionic disco -p pov-admin-tools ...
I do the same thing with gtimelog, which is a pure Python program and also doesn’t need to be recompiled:
ppa-copy-packages -O gtimelog -s xenial -t bionic disco -p gtimelog
And sometimes, when I’m feeling brave, I try this trick with C programs such as pwsafe:
ppa-copy-packages -O mg -s xenial -t bionic disco -p pwsafe
Authentication is taken care of by launchpadlib, which opens a browser window on first run and asks you to log in and authorize its access token (which is stored in the system keyring for your convenience).
Synopsis
$ ppa-copy-packages -h usage: ppa-copy-packages [-h] [--version] [-v] [-q] [-n] [-w] [-b] [--debug] -O OWNER [-N NAME] -p NAME [NAME ...] -s SERIES -t SERIES [SERIES ...] [--architectures ARCH [ARCH ...]] [--pocket POCKET] [--launchpad-instance INSTANCE] copy Ubuntu PPA packages from one release pocket to another optional arguments: -h, --help show this help message and exit --version show program's version number and exit -v, --verbose More verbose output (can be stacked) -q, --quiet Less verbose output -n, --dry-run Don't make any changes -w, --wait Wait for pending packages to be published -b, --browse Open the PPA page in a browser, don't do anything else. --debug Very verbose logging, for debugging this script PPA selection: -O OWNER, --owner OWNER owner of the PPA -N NAME, --name NAME name of the PPA (default: ppa) -p NAME [NAME ...], --packages NAME [NAME ...] names of packages to copy -s SERIES, --source-series SERIES source series (e.g. xenial) -t SERIES [SERIES ...], --target-series SERIES [SERIES ...] target series (e.g. bionic) --architectures ARCH [ARCH ...] architectures to check for published binaries (default is ['i386', 'amd64']) --pocket POCKET pocket name (you probably don't want to change this; default is Release) --launchpad-instance INSTANCE Launchpad instance (default: production)
Changelog
1.9.3 (2020-10-31)
Handle ‘needs building’ state when using –wait.
1.9.2 (2020-07-02)
Fix ValueError: Namespace GnomeKeyring not available (GH #3).
1.9.1 (2019-09-06)
Fix TypeError: unhashable type: ‘Entry’.
1.9 (2019-09-05)
First release to PyPI.
Unified three older scripts I had lying around with hardcoded configuration.
Replaced hardcoded configuration with command-line arguments.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ppa_copy_packages-1.9.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85f3df3a73d6e4d527d31cd7b1f6eed3cde1eb9e4879cd4ea76e5e7b10701595 |
|
MD5 | 1ed930d62d33c152c0142fd43679e74f |
|
BLAKE2b-256 | 34294072b0d2ed294846edc2ee7b44c471dc05a51e037563a5fd49d180effcab |