]>
git.ipfire.org Git - thirdparty/libsolv.git/log
Michael Schroeder [Wed, 19 Sep 2018 08:16:41 +0000 (10:16 +0200)]
drop stuff from TODO list
Michael Schroeder [Tue, 18 Sep 2018 12:57:36 +0000 (14:57 +0200)]
repo_rpmdb: use new repodata_search_arrayelement method
Michael Schroeder [Tue, 18 Sep 2018 12:56:27 +0000 (14:56 +0200)]
Add repodata_search_arrayelement method
This searches an element of an array referenced by the kv.
Michael Schroeder [Tue, 18 Sep 2018 12:49:57 +0000 (14:49 +0200)]
Add repodata_translate_dir method
This translates a dir id from one repodata to another. Change
repo_rpmdb to use it when copying solvables.
Michael Schroeder [Tue, 18 Sep 2018 12:00:38 +0000 (14:00 +0200)]
repo_add_solv: check that arrays have incore storage
Also fix a tiny bug in the vdata handling.
Michael Schroeder [Tue, 18 Sep 2018 11:59:17 +0000 (13:59 +0200)]
data_fetch: set kv->entry to -1 in array case
Not that the code is used anywhere...
Michael Schroeder [Tue, 18 Sep 2018 11:58:22 +0000 (13:58 +0200)]
rpmdb2solv: support including the package changelogs
Michael Schroeder [Fri, 14 Sep 2018 13:41:49 +0000 (15:41 +0200)]
Second part of fixing the longstanding bug
Change dataiterator, repo_search, and repo_write so that it
uses only the value in the last repodata if multiple repodata
sections have an entry for the keyname.
We do this by first setting up a keyskip array that maps
keynames to a base + repodataid value. We skip a key
if the repodataid does not match the entry in the keyskip
array.
The base is used so that we do not have to clear the array
for the next search. Instead, the base is simply set to a
value greater than all the current entries.
WARNING: As this adds two new elements to the Dataiterator,
this is an INCOMPATIBLE ABI CHANGE. We'll use this to do
a couple of cleanup commits in the next days that have been
postponed until now. We'll bump the soname before doing the
next release.
Michael Schroeder [Fri, 14 Sep 2018 13:28:25 +0000 (15:28 +0200)]
Add missing repodata methods to bindings
lookup_id()
lookup_num()
lookup_void()
set_num()
set_void()
set_location()
unset()
Michael Schroeder [Mon, 10 Sep 2018 09:54:37 +0000 (11:54 +0200)]
Cosmetics: fix spaces
Michael Schroeder [Mon, 10 Sep 2018 09:53:22 +0000 (11:53 +0200)]
Rewrite addfileprovides
It should now mirror what repo_lookup_filelist_repodata does.
It should also be quite a bit faster than the old code.
Michael Schroeder [Mon, 10 Sep 2018 09:49:54 +0000 (11:49 +0200)]
With the new code SEARCH_COMPLETE_FILELIST is the default.
We may add a SEARCH_FILTERED_FILELIST flag in the future if
there is a use case.
Michael Schroeder [Mon, 10 Sep 2018 09:47:00 +0000 (11:47 +0200)]
Add an internal repodata_lookup_packed_dirstrarray function
This is faster than using repo_search to iterate over the
filelist. We will use it in the new addfileprovides code.
Michael Schroeder [Mon, 10 Sep 2018 09:44:52 +0000 (11:44 +0200)]
Support custom filelist filters.
REPOSITORY_FILTEREDFILELIST can now be an idarray where each
element is a glob pattern.
Michael Schroeder [Mon, 10 Sep 2018 09:38:19 +0000 (11:38 +0200)]
Change lookup/search code that it returns the match from the last repodata
This is the first part of fixing a longstanding bug. This fixes
the lookup cases and the case where a keyname is provided in the
search/iterator.
We do this by adding a repo_lookup_repodata function that returns the
last repodata that has the specified keyname.
There is also a repo_lookup_repodata_opt function that may return
a repodata that does not contain the keyname instead of NULL. This
is a bit faster if you need to do a lookup anyway.
We also now have a repo_lookup_filelist_repodata that contains all
the logic to deal with filtered filelists.
Michael Schroeder [Mon, 10 Sep 2018 09:32:39 +0000 (11:32 +0200)]
repo_search: stringify filenames if requested
This brings repo_search in sync with what the data iterator
code does.
Michael Schroeder [Mon, 10 Sep 2018 09:26:05 +0000 (11:26 +0200)]
Add REPOSITORY_FILTEREDFILELIST id and filelist type
REPOSITORY_FILTEREDFILELIST is used to mark that the filelist
in the repodata is filtered with some filter.
The commit also adds a filelisttype element to the repodata
and sets it to filtered if REPOSITORY_FILTEREDFILELIST is set.
It also sets the filelisttype to extension if the repodata
has a filelist and was generated by extending solvables.
We'll use the filelisttype later to decide if we should use
the filtered filelist when searching for files.
Michael Schroeder [Mon, 10 Sep 2018 09:03:52 +0000 (11:03 +0200)]
Cosmetics: rename repodata_load_stub to repodata_stub_loader
Also keep the callback when loading a stub with repo_add_solv,
as some tools use it as indicator if the repodata was a stub.
Michael Schroeder [Mon, 10 Sep 2018 08:48:30 +0000 (10:48 +0200)]
Make repo_matchvalue static and remove it from list of exported symbols
It was never declared in a header file. Furthermore it needs
an internal struct definition to work, so nobody from outside
can use it anyway.
Michael Schroeder [Mon, 10 Sep 2018 08:42:59 +0000 (10:42 +0200)]
Move repodata_filelistfilter_matches into filelistfilter.c
We'll later extend this to support custom filelist filters.
Michael Schroeder [Mon, 10 Sep 2018 08:34:45 +0000 (10:34 +0200)]
Split away repodata_load
This can be used to force loading of a stub repodata.
Michael Schroeder [Fri, 7 Sep 2018 14:29:29 +0000 (16:29 +0200)]
Cosmetics: save some space
Michael Schroeder [Fri, 7 Sep 2018 14:28:25 +0000 (16:28 +0200)]
Work around bogus uninitialized warning from gcc
Michael Schroeder [Fri, 7 Sep 2018 14:26:37 +0000 (16:26 +0200)]
Also add autopatterns for the system repo
Should have been in commit
276e7586cce0535c194336cd2a3bac9d4f5805e1
Michael Andres [Thu, 23 Aug 2018 10:50:44 +0000 (12:50 +0200)]
libzstd is available on leap15 but not on sle15
Denis Ollier [Thu, 9 Aug 2018 21:05:04 +0000 (23:05 +0200)]
Fix out of bounds compilation warning
When compiling with -D_FORTIFY_SOURCE=2, gcc raises the following
warning:
In file included from /usr/include/string.h:494,
from /build/libsolv/src/libsolv-0.6.35/src/policy.c:16:
In function ‘memcpy’,
inlined from ‘urpm_reorder.isra.18’ at /build/libsolv/src/libsolv-0.6.35/src/policy.c:1239:9:
/usr/include/bits/string_fortified.h:34:10: warning: ‘__builtin_memcpy’ forming offset 8 is out of the bounds [0, 7] [-Warray-bounds]
return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Culprit code is:
memcpy(kn, "kernel", 8);
memcpy(kn + 6, flavor, release - flavor + 1);
The first memcpy copies 8 bytes whereas the string "kernel" as only 7
bytes. It does not have serious consequence since the second memcpy
overwrites the unwanted byte. Anyway, it is better to fix it.
Michael Schroeder [Thu, 9 Aug 2018 15:19:37 +0000 (17:19 +0200)]
Add changes, bump version to 0.6.35
Michael Schroeder [Wed, 25 Jul 2018 10:51:22 +0000 (12:51 +0200)]
Fix indent
Michael Schroeder [Wed, 25 Jul 2018 10:03:34 +0000 (12:03 +0200)]
Make the arch score unsigned int
Michael Schroeder [Tue, 24 Jul 2018 11:41:11 +0000 (13:41 +0200)]
Bring id2color check in poolarch.c in sync with poolarch.h
Michael Schroeder [Tue, 24 Jul 2018 11:37:47 +0000 (13:37 +0200)]
Also use unsigned int when bounds checking pool_arch2color()
This is done so that the code doesn't crash when you pass
a rel id.
Michael Schroeder [Tue, 24 Jul 2018 11:25:38 +0000 (13:25 +0200)]
Refactor arch handling
lastarch is no longer the last element of id2arch, but now the
size of the array. This means that lastarch == 0 now reliable means
that no architecture was set.
To be compatible to old versions we over-allocate id2arch so that
id2arch[lastarch] is always zero.
There's also a new pool_arch2score function that abstracts accessing
the id2arch array.
Michael Schroeder [Sat, 21 Jul 2018 12:50:02 +0000 (14:50 +0200)]
Allow zchunk files with zero chunks
Michael Schroeder [Fri, 20 Jul 2018 12:04:58 +0000 (14:04 +0200)]
zchunk: fix bounds check in getuint
Michael Schroeder [Fri, 20 Jul 2018 09:51:43 +0000 (11:51 +0200)]
Refactor checksum parsing
Also fix number of chunks handling, it includes the first dictionary
chunk.
Michael Schroeder [Thu, 19 Jul 2018 14:16:35 +0000 (16:16 +0200)]
Adapt to zchunk format change
Michael Schroeder [Thu, 19 Jul 2018 13:54:50 +0000 (15:54 +0200)]
Add generated manpage as well
Michael Schroeder [Thu, 19 Jul 2018 13:31:00 +0000 (15:31 +0200)]
Fix RPMDB_KEEP_GPG_PUBKEY handling
Michael Schroeder [Thu, 19 Jul 2018 11:54:00 +0000 (13:54 +0200)]
Add manpage for solv tool
Michael Schroeder [Wed, 18 Jul 2018 19:55:16 +0000 (21:55 +0200)]
Eek, fix typo
Michael Schroeder [Wed, 18 Jul 2018 19:52:17 +0000 (21:52 +0200)]
Adapt for changed pubring naming in gpg
Michael Schroeder [Wed, 18 Jul 2018 19:50:10 +0000 (21:50 +0200)]
Fix getinstalledrpmdbids handling of the match attribute
We currently have to iterate through all package names
because rpm lacks an interface to just get one specific name.
Michael Schroeder [Wed, 18 Jul 2018 15:11:20 +0000 (17:11 +0200)]
no bindings for sles11
Michael Schroeder [Wed, 18 Jul 2018 13:36:49 +0000 (15:36 +0200)]
No python3 in SLE11
Michael Schroeder [Wed, 18 Jul 2018 13:29:54 +0000 (15:29 +0200)]
libzstd is only available for >= leap15
Michael Schroeder [Wed, 18 Jul 2018 13:23:53 +0000 (15:23 +0200)]
Add back missing changes line
Michael Schroeder [Wed, 18 Jul 2018 12:43:36 +0000 (14:43 +0200)]
Update the spec to current standards
Based in pull request 250 by Neil Gompa and Tomas Chvatal.
Michael Schroeder [Wed, 18 Jul 2018 11:36:11 +0000 (13:36 +0200)]
zchunk: support extracting of streams other than "1"
Michael Schroeder [Tue, 17 Jul 2018 13:09:15 +0000 (15:09 +0200)]
Fix parsing of susetags when the content file does not have a DESCRDIR entry
Michael Schroeder [Tue, 17 Jul 2018 12:31:51 +0000 (14:31 +0200)]
Build with zstd and zchunk support
Michael Schroeder [Tue, 17 Jul 2018 11:50:17 +0000 (13:50 +0200)]
Fix reading of content file in susetags
Michael Schroeder [Tue, 17 Jul 2018 09:42:37 +0000 (11:42 +0200)]
Drop the patchcheck tool
Nobody uses and maintains it anymore.
Michael Schroeder [Mon, 16 Jul 2018 19:58:52 +0000 (21:58 +0200)]
Add compat symlink for repo2solv
Michael Schroeder [Mon, 16 Jul 2018 19:56:10 +0000 (21:56 +0200)]
Move old repo2solv.sh into examples
Michael Schroeder [Mon, 16 Jul 2018 19:51:47 +0000 (21:51 +0200)]
Fix bug in susedata languages extension
Adding new repodatas may corrupt the current dataiterator,
so we need to first collect all entries and then add them
afterwards.
Michael Schroeder [Mon, 16 Jul 2018 19:51:07 +0000 (21:51 +0200)]
Add repo2solv manpage
Michael Schroeder [Mon, 16 Jul 2018 13:56:04 +0000 (15:56 +0200)]
Add new repo2solv tool replacing the old shell script
Michael Schroeder [Fri, 13 Jul 2018 09:58:58 +0000 (11:58 +0200)]
Add missing solv_zchunk.h file
Oops. Should look more carful at the untracked files list.
Michael Schroeder [Thu, 12 Jul 2018 14:45:33 +0000 (16:45 +0200)]
solv_zchunk: bite should be unsigned int
Michael Schroeder [Thu, 12 Jul 2018 14:06:31 +0000 (16:06 +0200)]
Get rid of some warnings
Michael Schroeder [Thu, 12 Jul 2018 13:49:47 +0000 (15:49 +0200)]
Support zchunk compression
Michael Schroeder [Thu, 12 Jul 2018 08:45:35 +0000 (10:45 +0200)]
Fix handling of deleted keys in repo_search when a keyname is given
Michael Schroeder [Wed, 11 Jul 2018 14:41:59 +0000 (16:41 +0200)]
Export repodata_set_kv and make use of it in repo_rpmdb.c
Michael Schroeder [Wed, 11 Jul 2018 11:33:53 +0000 (13:33 +0200)]
Support saving the solvable dependencies as normal idarray
The default is still relidarray, i.e. sorted arrays.
Michael Schroeder [Wed, 11 Jul 2018 11:32:16 +0000 (13:32 +0200)]
Support solvable dependency arrays of type REPOKEY_TYPE_IDARRAY
Michael Schroeder [Mon, 9 Jul 2018 11:32:54 +0000 (13:32 +0200)]
Refactor pool_resize_rels_hash
Michael Schroeder [Mon, 9 Jul 2018 10:59:20 +0000 (12:59 +0200)]
Refactor internal stringpool_resize_hash function
Michael Schroeder [Mon, 9 Jul 2018 09:34:10 +0000 (11:34 +0200)]
Support zstd compression
Michael Schroeder [Wed, 11 Jul 2018 13:34:45 +0000 (15:34 +0200)]
Merge pull request #274 from ignatenkobrain/solvable2id
add pool_solvable2id()
Igor Gnatenko [Wed, 4 Jul 2018 14:06:22 +0000 (15:06 +0100)]
bindings: fix dir2str function return type
Fixes: 316c436de3b57e1c22d8368b366ef62a66d72e8e
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Igor Gnatenko [Wed, 27 Jun 2018 16:27:07 +0000 (18:27 +0200)]
add pool_solvable2id()
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Michael Schroeder [Wed, 27 Jun 2018 15:27:44 +0000 (17:27 +0200)]
Fix fp double close, work around some false positives from covscan
Michael Schroeder [Fri, 22 Jun 2018 08:39:36 +0000 (10:39 +0200)]
Merge pull request #273 from dbnicholson/deb-control-size
Bump debian control.tar size limit
Dan Nicholson [Thu, 21 Jun 2018 16:51:55 +0000 (11:51 -0500)]
Bump debian control.tar size limit
Increase the arbitrary control.tar limit from 1 MB to 16 MB. We came
across an openjdk-7-jdk package that had a 2.4MB control.tar.gz and
libsolv failed to parse it. dpkg doesn't actually apply a limit to these
files.
Michael Schroeder [Fri, 15 Jun 2018 13:49:40 +0000 (15:49 +0200)]
Tweak documentation of add_dirstr method
Michael Schroeder [Fri, 15 Jun 2018 13:44:10 +0000 (15:44 +0200)]
Merge pull request #271 from ignatenkobrain/python
bindings: expose repodata_str2dir, repodata_dir2str and repodata_add_…
Igor Gnatenko [Fri, 15 Jun 2018 13:40:11 +0000 (15:40 +0200)]
bindings: expose repodata_str2dir, repodata_dir2str and repodata_add_dirstr
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Michael Schroeder [Thu, 7 Jun 2018 12:18:25 +0000 (14:18 +0200)]
Remove wrong solv_free(data->vincore) in repodata_internalize
We're extending the old buffer, so the free is always wrong.
Michael Schroeder [Mon, 4 Jun 2018 14:23:45 +0000 (16:23 +0200)]
Merge pull request #262 from j-mracek/const
Add const for second variable
Michael Schroeder [Mon, 4 Jun 2018 14:20:36 +0000 (16:20 +0200)]
Merge pull request #266 from ignatenkobrain/typo
doc: fix typo
Michael Schroeder [Mon, 4 Jun 2018 14:19:31 +0000 (16:19 +0200)]
Add RPMDB_KEEP_GPG_PUBKEY flag
Jaroslav Mracek [Tue, 10 Apr 2018 10:47:18 +0000 (12:47 +0200)]
Add const for second variable
The second variable is used as a source for copy and it is not modified
therefore it should be marked as s const. Then it is more easy to identify what
is source and what is target and also it is clear that the source variable will
be not modify by the function.
Additionally it allows to use const map or queue to create a copy or other
operations.
Igor Gnatenko [Fri, 11 May 2018 14:26:15 +0000 (16:26 +0200)]
doc: fix typo
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Michael Schroeder [Mon, 7 May 2018 09:54:28 +0000 (11:54 +0200)]
Tweak source heuristic in ENABLE_RPMPKG_LIBRPM case
Use HEADERGET_MINMEM to make the code faster and save some memory.
Michael Schroeder [Fri, 4 May 2018 11:29:39 +0000 (13:29 +0200)]
Refactor repodata_set_kv function
Michael Schroeder [Fri, 4 May 2018 11:28:37 +0000 (13:28 +0200)]
Get rid of old cmake cruft
The -DVERSION definition is never used, so we can delete it plus
the cmake_policy setting.
Michael Schroeder [Mon, 7 May 2018 09:27:18 +0000 (11:27 +0200)]
Merge pull request #264 from m-blaha/rpmsourceheuristic
source/binary rpm detection heuristic when ENABLE_RPMPKG_LIBRPM used
Marek Blaha [Fri, 4 May 2018 14:30:41 +0000 (16:30 +0200)]
source/binary rpm detection heuristic when ENABLE_RPMPKG_LIBRPM used
The headerIsSource() simply checks a presence of the RPMTAG_SOURCERPM
tag in package header, which is not really useful in this context.
This patch provides the same "heuristic" as the librpm uses for
detecting source/binary rpm.
Relevant bug: https://bugzilla.redhat.com/show_bug.cgi?id=
1572338
Michael Schroeder [Fri, 23 Mar 2018 11:04:14 +0000 (12:04 +0100)]
Add changes, bump version to 0.6.34
Michael Schroeder [Fri, 23 Mar 2018 11:00:00 +0000 (12:00 +0100)]
Make sure the product file comes from /etc/products.d for the fallback product search
Michael Schroeder [Thu, 1 Mar 2018 10:00:00 +0000 (11:00 +0100)]
Also use suggests for ordering packages
Michael Schroeder [Wed, 28 Feb 2018 15:31:35 +0000 (16:31 +0100)]
Add changes, bump version to 0.6.33
Michael Schroeder [Wed, 28 Feb 2018 15:26:21 +0000 (16:26 +0100)]
Fix Selection.clone implementation and documentation
Michael Schroeder [Wed, 28 Feb 2018 15:13:19 +0000 (16:13 +0100)]
Use %license instead of %doc for the license
Michael Schroeder [Wed, 28 Feb 2018 14:59:29 +0000 (15:59 +0100)]
Merge pull request #257 from ignatenkobrain/seleciton-clone
bindings: use $self for Selection.clone()
Michael Schroeder [Tue, 27 Feb 2018 14:00:31 +0000 (15:00 +0100)]
Fix saving of branches when refining problems
This bug caused a mem-leak which led to its discovery...
Igor Gnatenko [Mon, 26 Feb 2018 14:15:05 +0000 (15:15 +0100)]
bindings: use $self for Selection.clone()
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Michael Schroeder [Mon, 26 Feb 2018 14:27:24 +0000 (15:27 +0100)]
Fix parserpmrichdep conditional
Michael Schroeder [Mon, 26 Feb 2018 14:24:32 +0000 (15:24 +0100)]
Merge pull request #256 from ignatenkobrain/python-rich
bindings: expose parserpmrichdep()
Igor Gnatenko [Sun, 25 Feb 2018 16:10:10 +0000 (17:10 +0100)]
bindings: expose parserpmrichdep()
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>