]>
git.ipfire.org Git - thirdparty/libsolv.git/log
Michael Schroeder [Mon, 28 Nov 2022 09:56:23 +0000 (10:56 +0100)]
Also commit header file
Should have been in commit
607511873490736fafca6dd9081fba5e3fce3e87
Michael Schroeder [Fri, 25 Nov 2022 14:01:39 +0000 (15:01 +0100)]
Fix solver_rule2solvable implementation
It should return a solvable id.
Michael Schroeder [Fri, 25 Nov 2022 13:56:16 +0000 (14:56 +0100)]
Fix ruleinfo for recommends rules
Those are limited versions of pkg rules.
Michael Schroeder [Fri, 25 Nov 2022 10:44:36 +0000 (11:44 +0100)]
Use new solver_get_decisionlist() interface in testsolv's showwhy()
Michael Schroeder [Fri, 25 Nov 2022 10:36:19 +0000 (11:36 +0100)]
Move decisionlist generation into the library
This functionality is useful for multiple programs that use
libsolv, so it does not make sense to duplicate the code
into each of them.
So we now offer solver_get_decisionlist() to get a list of
decisions that let to the installation/deinstallation of a
package. There is also solver_get_decisionlist_multiple() that
can be used if multiple packages should be considered.
The output is a list of (package, reason, info) triplets.
Package is positive for installs, negative for conflicts.
This commits also deprecates solver_describe_weakdep_decision().
it makes more sense to unify weakdep decisions with rule
decisions as both come from package dependencies.
So we now have solver_allweakdepinfos() and solver_weakdepinfo()
that returns the ruleinfo for a weakdep decision. You can then
use solver_ruleinfo2str() to convert the ruleinfo to a string.
Michael Schroeder [Mon, 21 Nov 2022 11:41:15 +0000 (12:41 +0100)]
update showwhy implementation
Use a different output format and simplify the code.
Michael Schroeder [Mon, 21 Nov 2022 11:40:27 +0000 (12:40 +0100)]
Drop "package" prefix in solver_ruleinfo2str
Michael Schroeder [Mon, 21 Nov 2022 10:08:53 +0000 (11:08 +0100)]
Add support for weak rule types to solver_ruleinfo2str
Those rules do not show up in the problem rules, so we did
not need to support them before.
Michael Schroeder [Fri, 18 Nov 2022 14:05:01 +0000 (15:05 +0100)]
Add -W option to show why the solver installed/erased the specified package
This shows everything that led to the decision.
Michael Schroeder [Fri, 18 Nov 2022 14:02:58 +0000 (15:02 +0100)]
Add solver_ruleinfo2str to get information about a rule
This is like solver_problemruleinfo2str, but not with a problem view.
I.e. it does not say that the rule cannot be fulfilled.
Michael Schroeder [Fri, 11 Nov 2022 13:31:30 +0000 (14:31 +0100)]
Fix type check broken by commit
26fcfa714a29d1feb393e9a61f9d1a04556866a6
Caught by our libzypp test cases. I should run them more often.
Michael Schroeder [Fri, 11 Nov 2022 12:22:31 +0000 (13:22 +0100)]
Add a testcase for orphaned package handling in choice rules
Michael Schroeder [Thu, 15 Sep 2022 14:11:38 +0000 (16:11 +0200)]
Implement getting the releasever from the base product on SUSE
Michael Schroeder [Wed, 14 Sep 2022 09:55:45 +0000 (11:55 +0200)]
Do not autouninstall suse ptf packages
Michael Schroeder [Tue, 13 Sep 2022 13:22:52 +0000 (15:22 +0200)]
Check subpackage length when parsing pubkeys
Michael Schroeder [Thu, 15 Sep 2022 13:20:01 +0000 (15:20 +0200)]
Merge pull request #504 from lnussel/plaindir
solv: add plaindir repo support
Michael Schroeder [Fri, 9 Sep 2022 12:10:16 +0000 (14:10 +0200)]
Add functions to make proof reporting easier
solver_get_learnt: return all rearnt rules used in the proof
of a problem or another learnt rule.
solver_get_proof: return the decisions that led to the
problem or learnt rule.
Note that this is experimental and subject to change. We will
need to add some sorting code to solver_get_proof() to group
similar steps, but this means that we need to get the
ruleinfo for the involved rules. But in that case we can
as well also return the ruleinfo data with the call.
Michael Schroeder [Fri, 9 Sep 2022 12:08:58 +0000 (14:08 +0200)]
Prefer SOLVER_RULE_PKG_SAME_NAME in solver_ruleinfo
Michael Schroeder [Wed, 31 Aug 2022 08:53:53 +0000 (10:53 +0200)]
Merge pull request #505 from jon-turney/fix-dup-reuse-crash
Ensure duplinvolvedmap_all is reset when a solver is reused
Jon Turney [Sun, 14 Aug 2022 17:45:20 +0000 (18:45 +0100)]
Ensure duplinvolvedmap_all is reset when a solver is reused
Otherwise, if solver is used with a SOLVER_DISTUPGRADE job, then reused
without one, this will cause solver_addduprules() to be called, even
though needduprules is 0, which will crash trying to dereference
solv->dupmap, which is NULL because solver_createdupmaps() hasn't been
called.
Ludwig Nussel [Tue, 12 Jul 2022 14:36:16 +0000 (16:36 +0200)]
github ci: make build more verbose
Ludwig Nussel [Tue, 12 Jul 2022 12:58:13 +0000 (14:58 +0200)]
solv: add plaindir repo support
Michael Schroeder [Fri, 8 Jul 2022 08:34:28 +0000 (10:34 +0200)]
Add SOLVABLE_SIGNATUREDATA to list of verticals
The data is not small and also not used for dependency solving.
Michael Schroeder [Thu, 7 Jul 2022 09:23:21 +0000 (11:23 +0200)]
conda: add support for package signature verification
This commits adds SOLVABLE_SIGNATUREDATA which contains the data
needed to verify the signatures of a package. You will need
to pass CONDA_ADD_WITH_SIGNATUREDATA to the flags in the
repo_add_conda call to enable this.
This is still experimental.
Michael Schroeder [Tue, 5 Jul 2022 11:03:23 +0000 (13:03 +0200)]
Add jsonparser_collect() that can be used to collect the json that is skipped
Michael Schroeder [Wed, 29 Jun 2022 07:19:26 +0000 (09:19 +0200)]
repo_conda: implement support for a global subdir
Michael Schroeder [Mon, 27 Jun 2022 11:55:55 +0000 (13:55 +0200)]
Merge pull request #499 from banjiuqingshan/master
Fix memory leak when using testsolv to execute cases
banjiuqingshan [Sat, 18 Jun 2022 17:43:51 +0000 (01:43 +0800)]
Fix memory leak when using testsolv to execute cases
*resultp will only keep the pointer of the last cycle, which will lead to memory leakage.
This solves the first memory leak problem in issue #496 "==255147==error..."
Michael Schroeder [Fri, 8 Apr 2022 11:43:39 +0000 (13:43 +0200)]
Special case file dependencies in the testcase writer
There's special casing in the reader, so we have to make sure
that complex dependencies starting with a '/' are written
correctly.
Michael Schroeder [Mon, 21 Mar 2022 09:19:54 +0000 (10:19 +0100)]
Add changes, bump version to 0.7.22
Michael Schroeder [Mon, 21 Mar 2022 08:48:55 +0000 (09:48 +0100)]
Support Debian's Multi-Arch indicator
For now just in repo metadata.
Michael Schroeder [Wed, 16 Mar 2022 14:27:52 +0000 (15:27 +0100)]
Add complex_deps requirement to choice1b testcase
Michael Schroeder [Wed, 16 Mar 2022 14:17:20 +0000 (15:17 +0100)]
Improve choice rule generation
New strategy: take the package update map into account when creating
choice rules. This simplifies the code quite a bit. Also check at
the end of the solving if a choice rule led to two packages providing
the same thing. In that case, break the choice rule and re-run the
solver.
Michael Schroeder [Wed, 16 Mar 2022 14:16:42 +0000 (15:16 +0100)]
Add more choicerules tests
Michael Schroeder [Thu, 10 Mar 2022 13:23:34 +0000 (14:23 +0100)]
runtestcases.sh: order the testcases
Michael Schroeder [Mon, 7 Mar 2022 13:44:07 +0000 (14:44 +0100)]
CI: run test in the "build" dir
Michael Schroeder [Mon, 7 Mar 2022 13:41:51 +0000 (14:41 +0100)]
Add github CI
Michael Schroeder [Thu, 3 Mar 2022 14:43:05 +0000 (15:43 +0100)]
Do not silently ignore the userdata if it is too big
Instead error out when writing the solv file.
Michael Schroeder [Thu, 3 Mar 2022 14:35:39 +0000 (15:35 +0100)]
Fix duplicate line in the choice2.t testcase
Michael Schroeder [Thu, 3 Mar 2022 14:35:00 +0000 (15:35 +0100)]
Support dumping of the order edges in testcases
Michael Schroeder [Thu, 3 Mar 2022 14:28:01 +0000 (15:28 +0100)]
Start v5 pubkey support
Michael Schroeder [Thu, 3 Mar 2022 13:42:46 +0000 (14:42 +0100)]
Support SOLVABLE_PREREQ_IGNOREINST in the ordering code
This helps to avoid a couple of dependency cycles.
This commit also fixes the cycle breaking code looking at the
wrong package for uninst->uninst edges.
Michael Schroeder [Wed, 2 Mar 2022 14:15:13 +0000 (15:15 +0100)]
Tweak description of rule types in the bindings documentation
Michael Schroeder [Fri, 25 Feb 2022 16:34:28 +0000 (17:34 +0100)]
Add changes, bump version to 0.7.21
Michael Schroeder [Fri, 25 Feb 2022 16:21:17 +0000 (17:21 +0100)]
solv format: support storing of package dependencies in a compressed block
Using a block enables us to do decent compression, which makes it
possible to retain the original dependency order
I.e. no more REPOKEY_TYPE_REL_IDARRAY hacksA.
Writing this format is currently turned off but will be made the default
after the next release.
Michael Schroeder [Fri, 25 Feb 2022 15:47:21 +0000 (16:47 +0100)]
Add support for storing user data in a solv file
Userdata can be arbritrary (binary)data with a maximum size of
65535 bytes. It can be read without reading the complete
solv file, but do not forget to rewind the fp after reading
the user data.
New functions:
void
void repowriter_set_userdata(Repowriter *writer, const void *data, int len)
int solv_read_userdata(FILE *fp, unsigned char **datap, int *lenp)
Michael Schroeder [Fri, 25 Feb 2022 10:39:13 +0000 (11:39 +0100)]
Add const to the first argument of solv_memdump/solv_memdup2
Michael Schroeder [Wed, 23 Feb 2022 09:37:28 +0000 (10:37 +0100)]
Simplify pool_vendor2mask implementation
Michael Schroeder [Tue, 22 Feb 2022 17:07:21 +0000 (18:07 +0100)]
testcase: implement dumping of a configured custom vendorcheck
This is for libzypp, which uses a custom vendorcheck function.
Michael Schroeder [Tue, 22 Feb 2022 17:06:29 +0000 (18:06 +0100)]
Allow querying of the custom vendor check function
Michael Schroeder [Tue, 22 Feb 2022 17:05:41 +0000 (18:05 +0100)]
poolvendor: fix a NULL pointer reference if more than one vendor class is configured
Michael Schroeder [Tue, 22 Feb 2022 17:04:30 +0000 (18:04 +0100)]
testsolv: show an error if the testcase could not be written
Michael Schroeder [Wed, 16 Feb 2022 14:40:28 +0000 (15:40 +0100)]
Do not replace noarch problem rules with arch dependent ones
Michael Andres [Fri, 18 Feb 2022 10:59:10 +0000 (11:59 +0100)]
Fix to compile
Michael Schroeder [Fri, 18 Feb 2022 09:01:43 +0000 (10:01 +0100)]
Merge pull request #491 from wolfv/split_rules_printing
split rules number printing into seperate statements
Wolf Vollprecht [Fri, 18 Feb 2022 08:27:59 +0000 (09:27 +0100)]
split rules number printing into seperate statements
Michael Schroeder [Wed, 9 Feb 2022 09:01:07 +0000 (10:01 +0100)]
Merge pull request #488 from niner/patch-1
Fix segfault on conflict resolution when using bindings
niner [Tue, 8 Feb 2022 17:10:54 +0000 (18:10 +0100)]
Fix segfault on conflict resolution when using bindings
Solutionelement objects were created with a wrong solutionid (i.e. the
solution element id was used for the solutionid field). This led to invalid
array indexes when trying to read the extraflags which then escalated
into a segfault. Fix by setting solutionid correctly in the Solutionelement
constructor.
Michael Schroeder [Tue, 8 Feb 2022 11:41:58 +0000 (12:41 +0100)]
Fix split provides not working if the update includes a forbidden vendor change
Check the feature rule instead of the update rule and make sure that the
old package really is updated.
Michael Schroeder [Thu, 27 Jan 2022 09:52:46 +0000 (10:52 +0100)]
Merge pull request #486 from kontura/toolversion
Allow accessing toolversion at runtime and increase it
Aleš Matěj [Thu, 27 Jan 2022 07:38:27 +0000 (08:38 +0100)]
Allow accessing toolversion at runtime and increase it
Michael Schroeder [Tue, 30 Nov 2021 09:42:55 +0000 (10:42 +0100)]
Rename Iti to Itm while we can.
Michael Schroeder [Tue, 30 Nov 2021 09:40:37 +0000 (10:40 +0100)]
Drop sys/cdefs.h include from qsort_r.c
The cdefs.h header is not always available, and it gets pulled
in from the stdlib include anyway (at least in openbsd).
Michael Schroeder [Fri, 26 Nov 2021 10:32:37 +0000 (11:32 +0100)]
Support the install time in the testcase format
Michael Schroeder [Mon, 29 Nov 2021 11:02:03 +0000 (12:02 +0100)]
Merge pull request #477 from lukash/rename-requires
Add an ifdef allowing to rename conflicting Solvable::requires
Michael Schroeder [Fri, 12 Nov 2021 15:52:23 +0000 (16:52 +0100)]
Support dumping of the transaction order in testcases
Michael Schroeder [Fri, 12 Nov 2021 15:50:33 +0000 (16:50 +0100)]
Try to keep packages from a cycle close togther in the transaction order
If there are multiple free-to-install packages and we pick a
package from a cycle, we should try to finish the cycle as
fast as possible to keep the time where we have an inconsistent
system as small as possible.
Lukáš Hrázký [Fri, 15 Oct 2021 13:51:19 +0000 (15:51 +0200)]
Add an ifdef allowing to rename Solvable dependency members
In C++20 "requires" is a new keyword, causing a conflict with the
Solvable::requires attribute. From the outside this can only be fixed
with an ugly preprocessor redefinition of the symbol around each libsolv
header include.
This commit adds an #ifdef allowing to rename the dep attributes in case
C++20 or higher is used, which can be easily defined in one place in the
libolv user's build system.
Michael Schroeder [Mon, 18 Oct 2021 08:53:24 +0000 (10:53 +0200)]
Support zstd compressed control files in debian packages
Michael Schroeder [Fri, 15 Oct 2021 09:03:12 +0000 (11:03 +0200)]
Finish strict repo priority support
- add flag to bindings
- support flag/ruletype in testcases
- support strict repo prio problems in solution generation
- implement automatic disabling of strict repo rules due to install jobs
- add a testcase
Michael Schroeder [Fri, 15 Oct 2021 08:17:19 +0000 (10:17 +0200)]
Merge pull request #459 from adriendelsalle/strict-prio
Implement strict repo priority
Michael Schroeder [Mon, 4 Oct 2021 15:55:57 +0000 (17:55 +0200)]
Add forgotten bump version line
Michael Schroeder [Sat, 25 Sep 2021 21:24:35 +0000 (23:24 +0200)]
Merge pull request #470 from der-gabe/very-minor-doc-improvements
Very minor doc improvements
Michael Schroeder [Sat, 25 Sep 2021 21:19:16 +0000 (23:19 +0200)]
sha2.c: sync _Final function definition with the header file
Some compilers warn that digest[] is not the same as
digest[SHAXXX_DIGEST_LENGTH].
Fixes issue#464
Michael Schroeder [Sat, 25 Sep 2021 21:09:44 +0000 (23:09 +0200)]
Make repo line parsing not crash if the last argument is missing
Fixes issue #473.
Michael Schroeder [Sat, 25 Sep 2021 20:54:18 +0000 (22:54 +0200)]
Add changes, bump version to 0.7.20
Michael Schroeder [Mon, 20 Sep 2021 13:10:38 +0000 (15:10 +0200)]
Fix misparsing of '&' in attributes with libxml2
For some reason libxml2 insists on re-escaping '&' characters
by substituting them with "&". The rpm dependencies are
stored in attributes, so this is not an academic matter.
Undo the damage done by libxml2 by replacing all & occurences
by a single '&'.
Michael Schroeder [Wed, 15 Sep 2021 14:58:41 +0000 (16:58 +0200)]
Choice rules: treat orphaned packages as newest
Otherwise, they likely get deinstalled when the choice rule
cannot be met.
Michael Schroeder [Thu, 2 Sep 2021 14:14:38 +0000 (16:14 +0200)]
Merge pull request #454 from j-mracek/weak-excludes
Add mechanisms to ignore pkgs for weak dependencies
Jaroslav Mracek [Tue, 22 Jun 2021 14:30:45 +0000 (16:30 +0200)]
Add mechanisms to ignore pkgs for weak dependencies
It adds mechanism to avoid installation of certain packages
to satisfy recommends and supplemented.
Adrien DELSALLE [Mon, 9 Aug 2021 11:20:03 +0000 (13:20 +0200)]
do not clear providers of a name having a different name
it would prevent those solvables for being excluded by strict channel priority
Adrien DELSALLE [Tue, 6 Jul 2021 16:46:52 +0000 (18:46 +0200)]
implement strict repo priority
add specific rule
add solver flag
add problem message/debug
Gabriel Niebler [Mon, 9 Aug 2021 12:06:18 +0000 (14:06 +0200)]
Mention Tcl support in description
Gabriel Niebler [Mon, 9 Aug 2021 11:16:19 +0000 (13:16 +0200)]
Fix typos
Gabriel Niebler [Mon, 9 Aug 2021 11:12:16 +0000 (13:12 +0200)]
Fix grammar
Gabriel Niebler [Mon, 9 Aug 2021 11:06:27 +0000 (13:06 +0200)]
Fix typo in libsolv.txt
Michael Schroeder [Fri, 6 Aug 2021 15:33:48 +0000 (17:33 +0200)]
Merge pull request #468 from pkratoch/environments
Add support for environments in comps xml
Pavla Kratochvilova [Thu, 1 Jul 2021 11:32:52 +0000 (13:32 +0200)]
Add support for environments in comps xml
Michael Schroeder [Fri, 30 Jul 2021 14:09:37 +0000 (16:09 +0200)]
Merge pull request #466 from DimStar77/TW_sans_py2
Build without python2 support on suse_version >= 1550 by default
Dominique Leuenberger [Fri, 30 Jul 2021 11:56:33 +0000 (13:56 +0200)]
Build without python2 support on suse_version >= 1550 by default
Michael Schroeder [Mon, 19 Jul 2021 08:59:05 +0000 (10:59 +0200)]
Merge pull request #462 from ignatenkobrain/pyssize_t
Fix compatibility with Python 3.10
Igor Raits [Sun, 18 Jul 2021 16:47:05 +0000 (18:47 +0200)]
Fix compatibility with Python 3.10
Fixes: https://github.com/openSUSE/libsolv/issues/461
Signed-off-by: Igor Raits <igor.raits@gmail.com>
Michael Schroeder [Thu, 8 Jul 2021 07:50:50 +0000 (09:50 +0200)]
Merge pull request #460 from wolfv/memcpy_to_memmove
use memmove for overlapping regions
Wolf Vollprecht [Thu, 8 Jul 2021 07:13:19 +0000 (09:13 +0200)]
use memmove for overlapping regions
Michael Schroeder [Mon, 28 Jun 2021 09:58:28 +0000 (11:58 +0200)]
Read/write conda track features in testcases
Should have been in commit
c7d13d05a587cec227fa22cc8e4b403e85b778c6
Michael Schroeder [Thu, 8 Apr 2021 14:31:48 +0000 (16:31 +0200)]
Merge pull request #445 from jrohel/fix/memleak_in_swig_python_wrapper
Fix: Memory leaks in SWIG generated code (for Python)
Jaroslav Rohel [Thu, 8 Apr 2021 10:17:09 +0000 (12:17 +0200)]
Fix: Memory leaks in SWIG generated code (for Python)
There were memory leaks in the `Chksum_from_bin`, `Chksum_add`,
`SolvFp_write` functions wrapper for Python.
The problem was in "freearg" typemap argument defined in "solv.i".
Therefore, the typemap was not applied.
Michael Schroeder [Wed, 7 Apr 2021 12:57:00 +0000 (14:57 +0200)]
Add changes, bump version to 0.7.19
Michael Schroeder [Tue, 6 Apr 2021 14:01:29 +0000 (16:01 +0200)]
Make zchunkopen a bit easier to understand
Michael Schroeder [Tue, 6 Apr 2021 13:54:16 +0000 (15:54 +0200)]
Merge pull request #444 from jrohel/fix/resources_in_xxopen
Fix: lzopen, zstdopen, zchunkopen