1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-14 16:26:13 +01:00
Commit Graph

34 Commits

Author SHA1 Message Date
lethliel
2aa6e998d2 fix and unify building of local package cache
* all filename functions now return bytes-like objects
* the caller does the decoding
* the caller in build.py passes encoded arguments
2019-07-26 13:38:45 +02:00
lethliel
c235148180 [python3] now python3 ready:
* new function cmp (not available in python3)
  * fix decoding in canonname function
2019-04-07 11:05:13 -05:00
Marcus Huewe
28eeff8683 Simplify rpmquery.unpack_string
There is no need to unpack a single byte because it is not
affected by (byte) endianness (and that's what struct.unpack is
about). Moreover, rpmquery.unpack_string now supports an optional
encoding parameter, which could be used by the python3 port to
decode a string. Note: in general we cannot assume that all strings
in a rpm are utf-8 encoded (it is possible to build a rpm that
contains illegal utf-8 sequences).
2019-01-14 16:40:09 +01:00
lethliel
9ffe9b9288 improve error message if file is not a valid rpm
The current error message is quite confusing and nobody knows what
"invalid lead magic" means.
2018-10-09 10:16:27 +02:00
lethliel
779b66f3c3 fixed indentation of return[].
It works in python2, but will break in python3
2018-07-06 09:54:59 +02:00
Marcus Huewe
ebb2f2ee0d Add support for querying weak dependencies
The following abstract methods are added to the PackageQueryResult
class: recommends(), suggests(), supplements(), and enhances().
Note that not all package/metadata formats have a notion of these
weak dependencies.

              rpm   rpmmd   deb   arch
recommends     x      x      x
suggests       x      x      x     x
supplements    x      x
enhances       x      x      x

(where "x" represents "supported"). In case of an unsupported weak
dependency, the implementation returns an empty list.

We need the weak dependency support in order to fix #363 ("osc build
-p ../rpms/tw doesnt send recommends to the server which makes client
side build behave differently to server side build").
2017-12-26 23:14:47 +01:00
Marcus Huewe
fa4f24f06b - RpmQuery.rpmvercmp: support tilde ('~') 2015-07-03 14:22:00 +02:00
Marcus Huewe
a80b286ac9 - fixed #147
Introduced new PackageQueryResult class and adapted existing
modules accordingly.
2015-06-23 17:52:37 +02:00
Michael Schroeder
7acaba2d8a add obsoletes, conflicts, evr query methods 2014-12-09 13:04:55 +01:00
Michael Schroeder
f47c39521d Verify hdrmd5 of packages if specified in the buildinfo
Needed for buildenv builds that want specific packages.
2014-11-17 12:40:54 +01:00
Michael Schroeder
42c357336e take epoch into account when calculating the filename
ArchLinux has the epoch in the canonname, Debian discusses doing
this as well.
2014-05-13 13:29:41 +02:00
Marcus Huewe
d6e6c0538e - get "osc build --prefer-pkgs ..." working with Arch 2014-04-03 17:41:41 +02:00
Michal Vyskocil
7f2031558c python3 compatibility: print function
The most visible change in python3 - removal of print statement and all
the crufty
   print >> sys.stderr, foo,

The from __future__ import print_function makes it available in python
2.6
2013-04-16 10:51:41 +02:00
Michal Vyskocil
c612e8d47e python3 compatibility: use relative imports
Use relative imports when using module's own modules - this makes a
clear distinction between already developed copy and installed package.
2013-04-16 10:51:18 +02:00
Michal Vyskocil
3a93ac6d10 python3 compatibility: except
changes 'except FooError, fe' to 'except FooError as fe'

available in python 2.6
2013-04-16 10:51:17 +02:00
Marcus Huewe
1f51445859 - add "fname" attribute to util.PackageError class 2010-10-21 21:46:41 +02:00
Marcus Huewe
b3e538be90 - now product builds should work with "--cpio-bulk-download"
- util/rpmquery:
  * added new methods "is_src", "is_nosrc" to check if the package is
    a src rpm or nosrc rpm
  * fixed "canonname": this never worked for src- or nosrc rpms
- minor code restructuring

Note:
in order to fetch the cpio archives osc uses "getbinarylist". The
drawback is that "getbinarylist" doesn't generate an ".errors" file
if we're requesting a non-existent filename.
2010-09-06 14:13:35 +02:00
Marcus Huewe
af273d0bdb - fixed #590611 ("'osc build' uses incorrect filename for debian debs") 2010-03-24 13:20:09 +01:00
Pavol Rusnak
8d551e0a69 fix whitespace 2010-02-28 02:30:13 +01:00
Pavol Rusnak
90c4358da2 treat pylint warnings 2010-02-27 20:11:15 +01:00
Marcus Huewe
fa66ca5f5d - rpmq is always "defined"/not None 2010-02-05 15:22:05 +01:00
Marcus Huewe
8d1c1804bf - fix + beautify 2010-02-05 15:14:48 +01:00
c18adb7edf do not crash on reading rpms (missuse of filname as file object) 2010-02-05 10:31:26 +01:00
Luke Imhoff
96210b6dac Allow --prefer-pkgs to parse repodata
Any directory passed to --prefer-pkgs will be searched for a repodata
directory.  If the directory does not contain a repodata directory, then
each ancestor directory is checked.  This allows for the user error of
specifying an individual architecture directory (e.g. x86_64) instead of the
parent repository directory that contains the repodata:

repository/
  x86_64/
    *.rpm
  repodata/
    *.xml.gz

The use case for this feature is it allows snapshots of the OBS repositories
to be offloaded to an network-attached filesystem.  repodata directories are
used as the xml.gz files are faster to read than the 100s of rpms in a given
snapshot.  These snapshots are used to track older rpm sets that may be
deployed for testing.
2010-01-18 09:12:10 -06:00
Marcus Huewe
a7abbb37cd - fixed typo in regex 2010-01-15 20:34:54 +01:00
Marcus Huewe
de84575ab0 - don't read all rpm/deb tags/fields by default 2010-01-14 19:51:09 +01:00
79cada9493 do not die after downloading -debuginfo packages
(can maybe solved in a nicer way)
2009-10-07 15:35:45 +00:00
Marcus Hüwe
5083dfd6d0 - it's lib/rpmvercmp.c instead of rpmio/rpmvercmp.c... 2009-09-21 16:51:38 +00:00
Marcus Hüwe
8c14808dd1 - util/rpmquery.py: implemented RPM's version comparison algorithm as described in rpmio/rpmvercmp.c
- util/packagequery.py: added vercmp(pkgq) method
- util/debquery.py: currently vercmp(degq) is only a dummy method. The real implementation will follow soon.
2009-09-21 16:47:54 +00:00
Marcus Hüwe
cc6d7413fb - fix for older python versions 2009-09-20 17:19:33 +00:00
Marcus Hüwe
62be2245e7 - util/rpmquery.py, util/debquery.py: added "filename_suffix" attribute
- fetch.py: also rewrite the filename for debian packages (this is only useful for older obs instances)
2009-09-13 17:25:48 +00:00
Marcus Hüwe
4bb893a114 - added the following new modules:
* util/packagequery.py: it's used to query a RPM or DEB package. It also contains a
    base class for all package types (PackageQuery())
  * util/debquery.py: query a DEB package (name, version, release, provides, requires etc.)
- adapted util/rpmquery.py to use PackageQuery() as a base class
- minor changes in util/ar.py
2009-09-12 19:02:58 +00:00
Marcus Hüwe
cb16432cd9 - get rid of rpm-python:
* so far it was only used for querying rpms which can be done with the rpmquery module
- core.py:
  * removed data_from_rpm() and tag_to_rpmpy() methods
- util/rpmquery.py:
  * added staticmethod "query()"
- commandline.py, fetch.py:
  * use rpmquery module instead of rpm-python/data_from_rpm()
2009-09-09 15:28:21 +00:00
Marcus Hüwe
221fe84d1a - added rpmquery module:
* this module can be used to retrieve data from the rpmheader
  * Note: for now the signature header is completely ignored
2009-09-09 14:39:53 +00:00