There is no point to doing this, as the Launchpad object is a singleton;
the caller should just call Launchpad.login_with() directly and leave
the SourcePackage class out of it.
Signed-off-by: Dan Streetman <ddstreet@canonical.com>
This reduces duplicate verification steps, and results in logging
error from the verification function if there is a size mismatch,
instead of the silent verification failure that was present in case
neither sha checksum was provided.
Signed-off-by: Dan Streetman <ddstreet@canonical.com>
Update download() function to handle src of plain path, by prepending
'file://' to it. Also handle the case of src and dst pointing to the same
file.
Signed-off-by: Dan Streetman <ddstreet@canonical.com>
There are only 2 options for getting the dsc file:
1) it's provided as 'dscfile' param
2) we look it up via lp_spph
For case #1, update the constructor to immediately read the provided file
to create the self._dsc object, and set package and version from that.
For case #2, simplify various functions to simply use the normal
_download_file_from_urls() function to get the dsc file from the
normal locations (mirrors, masters, directly from lp), using the same
process as any other file, including checking checksum(s).
Signed-off-by: Dan Streetman <ddstreet@canonical.com>
No longer necessary to override this function as the superclass
now does everything the subclass function does.
Signed-off-by: Dan Streetman <ddstreet@canonical.com>
support the param for both native BPPH as well as Debian Snapshot
emulated BPPH
add sourceFileUrls() function
add helper functions to get file urls, checksums, and size
In
https://code.launchpad.net/~cjwatson/launchpad/archive-unambiguous-files-traversals/+merge/345118,
I added support for downloading source package files from Launchpad that
can cope with the situation where different versions of a source package
have the same file name with different contents (normally impossible,
but it can happen with imported archives and due to some old bugs). Use
this where possible.
LP: #1860456
if only the version of a UCA package is specified, search each UCA
archive from latest backwards. This avoids having to specify both
the package version *and* UCA release.
Allow specifying what package statuses should be searched for.
By default search only for Pending and Published, unless a specific
version number is being searched for.
For PPA and UCA repos, the latest build is not necessarily in the
'development' release; so for those SourcePackage classes, search
all the 'active' series (starting with latest devel) for any
matches to the provided package name. This allows not having to
specify the series name when looking in PPA/UCA repos for the 'latest'
version of a specific package.
The UCA source pkg class was its own specific class, but with the
addition of the generic PPA source pkg class, the UCA class is just
a specific case of PPA. Changing it to a subclass of the PPA class
simplifies code.
Also update getBinaries() to allow retreival by binary name
This significantly speeds up binary file lookup for non-published
package versions, since we can get the list of binary urls, but
then have to look up the BPPH for each of those urls, which is slow.
If the user only wants a specific binary package and/or arch, this
speeds up getting that, especially for packages with a lot of binary
files (like the kernel).
Change dsc verification to fail only if the public key was available, but
signature verification failed. If no public key is available for the dsc,
print warning only. (LP: #1700846)
Also add pull-* parameter --no-verify-signature to manually prevent failure
when signature verification fails.
look in its PPA for its SPPHs
look up the development (latest) UCA release if not specified
use the 'series' param as the UCA release, instead of 'uca_release' param
instead of a function that calls the system program rmadison, use
a fully-functional class to interface with the madison api, as well
as the debian snapshot api
Allow specifying series instead of version, to find the latest
version in that series; or only specify package name, to get the
latest version in the devel series
verify it can parse/load DSC when created
throw PackageNotFoundException from lp_spph if can't find package
update test case expected order of url processing