summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2022-09-21 09:39:09 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2022-09-21 09:39:09 +0900
commit2d757ccc60324e7bfcc07f6f46d7f38e30642fcb (patch)
tree110f2ad79b7046a6e0a1415e3e17c223169d4ca7 /doc
parent11600c0259c8cd27ad8c87b16421e65030b4b126 (diff)
downloadlibsolv-2d757ccc60324e7bfcc07f6f46d7f38e30642fcb.tar.gz
libsolv-2d757ccc60324e7bfcc07f6f46d7f38e30642fcb.tar.bz2
libsolv-2d757ccc60324e7bfcc07f6f46d7f38e30642fcb.zip
Imported Upstream version 0.7.22upstream/0.7.22
Diffstat (limited to 'doc')
-rw-r--r--doc/gen/libsolv-bindings.319
-rw-r--r--doc/gen/libsolv-constantids.38
-rw-r--r--doc/gen/libsolv-history.38
-rw-r--r--doc/gen/libsolv-pool.34
-rw-r--r--doc/gen/libsolv.36
-rw-r--r--doc/gen/rpmdb2solv.14
-rw-r--r--doc/libsolv-bindings.txt15
7 files changed, 33 insertions, 31 deletions
diff --git a/doc/gen/libsolv-bindings.3 b/doc/gen/libsolv-bindings.3
index 7384d2a..6d298af 100644
--- a/doc/gen/libsolv-bindings.3
+++ b/doc/gen/libsolv-bindings.3
@@ -2,12 +2,12 @@
.\" Title: Libsolv-Bindings
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 11/18/2020
+.\" Date: 03/02/2022
.\" Manual: LIBSOLV
.\" Source: libsolv
.\" Language: English
.\"
-.TH "LIBSOLV\-BINDINGS" "3" "11/18/2020" "libsolv" "LIBSOLV"
+.TH "LIBSOLV\-BINDINGS" "3" "03/02/2022" "libsolv" "LIBSOLV"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -31,7 +31,7 @@
libsolv-bindings \- access libsolv from perl/python/ruby
.SH "DESCRIPTION"
.sp
-Libsolv\(cqs language bindings offer an abstract, object orientated interface to the library\&. The supported languages are currently perl, python, and ruby\&. All example code (except in the specifics sections, of course) lists first the \(lqC\-ish\(rq interface, then the syntax for perl, python, and ruby (in that order)\&.
+Libsolv\(cqs language bindings offer an abstract, object orientated interface to the library\&. The supported languages are currently perl, python, ruby and tcl\&. All example code (except in the specifics sections, of course) lists first the \(lqC\-ish\(rq interface, then the syntax for perl, python, and ruby (in that order)\&.
.SH "PERL SPECIFICS"
.sp
Libsolv\(cqs perl bindings can be loaded with the following statement:
@@ -3617,6 +3617,11 @@ Prefer the specified packages if the solver encounters an alternative\&. If a jo
Avoid the specified packages if the solver encounters an alternative\&. This can also be used to block recommended or supplemented packages from being installed\&.
.RE
.PP
+\fBSOLVER_EXCLUDEFROMWEAK\fR
+.RS 4
+Avoid the specified packages to satisfy recommended or supplemented dependencies\&. Unlike SOLVER_DISFAVOR, it does not interfere with other rules\&.
+.RE
+.PP
\fBSOLVER_JOBMASK\fR
.RS 4
A mask containing all the above action bits\&.
@@ -3959,7 +3964,7 @@ A rule of an unknown class\&. You should never encounter those\&.
.PP
\fBSOLVER_RULE_PKG\fR
.RS 4
-A package dependency rule\&.
+A rule generated because of a package dependency\&.
.RE
.PP
\fBSOLVER_RULE_UPDATE\fR
@@ -4011,7 +4016,7 @@ The package contains a required dependency which was not provided by any package
.PP
\fBSOLVER_RULE_PKG_REQUIRES\fR
.RS 4
-Similar to SOLVER_RULE_PKG_NOTHING_PROVIDES_DEP, but in this case some packages provided the dependency but none of them could be installed due to other dependency issues\&.
+The package contains a required dependency which was provided by at least one package\&.
.RE
.PP
\fBSOLVER_RULE_PKG_SELF_CONFLICT\fR
@@ -4021,12 +4026,12 @@ The package conflicts with itself\&. This is not allowed by older rpm versions\&
.PP
\fBSOLVER_RULE_PKG_CONFLICTS\fR
.RS 4
-To fulfill the dependencies two packages need to be installed, but one of the packages contains a conflict with the other one\&.
+The package conflices with some other package\&.
.RE
.PP
\fBSOLVER_RULE_PKG_SAME_NAME\fR
.RS 4
-The dependencies can only be fulfilled by multiple versions of a package, but installing multiple versions of the same package is not allowed\&.
+This rules make sure that only one version of a package is installed in the system\&.
.RE
.PP
\fBSOLVER_RULE_PKG_OBSOLETES\fR
diff --git a/doc/gen/libsolv-constantids.3 b/doc/gen/libsolv-constantids.3
index 228dfdd..8dd0ed6 100644
--- a/doc/gen/libsolv-constantids.3
+++ b/doc/gen/libsolv-constantids.3
@@ -2,12 +2,12 @@
.\" Title: Libsolv-Constantids
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 09/14/2018
+.\" Date: 03/02/2022
.\" Manual: LIBSOLV
.\" Source: libsolv
.\" Language: English
.\"
-.TH "LIBSOLV\-CONSTANTIDS" "3" "09/14/2018" "libsolv" "LIBSOLV"
+.TH "LIBSOLV\-CONSTANTIDS" "3" "03/02/2022" "libsolv" "LIBSOLV"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -31,7 +31,7 @@
libsolv-constantids \- fixed Ids for often used strings
.SH "DESCRIPTION"
.sp
-Constant Ids are Ids of strings that are often needed\&. They are defined to ease programming and reduce the number of pool_str2id calls\&. The constant Ids are part of the binary ABI of libsolv, a minor version update will only add new constants and not change existing Ids to maintain compatible\&. The on\-disk solv format works does not use the fixed Ids, but instead references the strings, so solv files can still be read when the ABI is broken\&.
+Constant Ids are Ids of strings that are often needed\&. They are defined to ease programming and reduce the number of pool_str2id calls\&. The constant Ids are part of the binary ABI of libsolv, a minor version update will only add new constants and not change existing Ids to maintain compatibility\&. The on\-disk solv format does not use the fixed Ids, but instead references the strings, so solv files can still be read when the ABI is broken\&.
.SH "SPECIAL STRINGS"
.PP
\fBID_EMPTY ""\fR
@@ -45,7 +45,7 @@ The name of the always installed "system" solvable\&.
.RE
.SH "SOLVABLE ATTRIBUTES"
.sp
-These are Ids for keyname of attributes\&. They can be used in the lookup and storage functions to select the correct attribute in the solvable\&. The descriptions below describe the intended semantics of the values stored in the attribute with the keyname\&.
+These are Ids for keynames of attributes\&. They can be used in the lookup and storage functions to select the correct attribute in the solvable\&. The descriptions below describe the intended semantics of the values stored in the attribute with the keyname\&.
.PP
\fBSOLVABLE_NAME "solvable:name"\fR
.RS 4
diff --git a/doc/gen/libsolv-history.3 b/doc/gen/libsolv-history.3
index fc2d69b..9ccec7e 100644
--- a/doc/gen/libsolv-history.3
+++ b/doc/gen/libsolv-history.3
@@ -2,12 +2,12 @@
.\" Title: Libsolv-History
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 09/14/2018
+.\" Date: 03/02/2022
.\" Manual: LIBSOLV
.\" Source: libsolv
.\" Language: English
.\"
-.TH "LIBSOLV\-HISTORY" "3" "09/14/2018" "libsolv" "LIBSOLV"
+.TH "LIBSOLV\-HISTORY" "3" "03/02/2022" "libsolv" "LIBSOLV"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -65,9 +65,9 @@ Having a new repository format was one big step, but the other area where libzyp
As I was not very pleased with the way the solver worked, I looked at other solver algorithms\&. I checked smart, yum and apt, but could not find a convincing algorithm\&. My own experiments also were not very convincing, they worked fine for some problems but failed miserably for other corner cases\&.
.SS "Using SAT for solving"
.sp
-SUSE\(cqs hack week at the end of June 2007 turned out to be a turning point for the solver\&. Googling for solver algorithms, I stumbled over some note saying that some people are trying to use SAT algorithms to improve solving on Debian\&. Looking at the SAT entry in Wikipedia, it was easy to see that this indeed was the missing piece: SAT algorithms are well researched and there are quite some open source implementations\&. I decided to look at the minisat code, as it is one of the fastest solvers while consisting of too many lines of code\&.
+SUSE\(cqs hack week at the end of June 2007 turned out to be a turning point for the solver\&. Googling for solver algorithms, I stumbled over some note saying that some people are trying to use SAT algorithms to improve solving on Debian\&. Looking at the SAT entry in Wikipedia, it was easy to see that this indeed was the missing piece: SAT algorithms are well researched and there are quite some open source implementations\&. I decided to look at the minisat code, as it is one of the fastest solvers while consisting of not too many lines of code\&.
.sp
-Of course, directly using minisat would not work, as a package solver does not need to find just one correct solution, but it also has to optimize some metrics, i\&.e\&. keep as many packages installed as possible\&. Thus, I needed to write my own solver incorporation the ideas and algorithms used in minisat\&. This wasn\(cqt very hard, and at the end of the hack week the solver calculated the first right solutions\&.
+Of course, directly using minisat would not work, as a package solver does not need to find just one correct solution, but it also has to optimize some metrics, i\&.e\&. keep as many packages installed as possible\&. Thus, I needed to write my own solver, incorporating the ideas and algorithms used in minisat\&. This wasn\(cqt very hard, and at the end of the hack week the solver calculated the first right solutions\&.
.SS "Selling it to libzypp"
.sp
With those encouraging results, I went to Klaus Kaempf, the system management architect at SUSE\&. We spoke about how to convince the team to make libzypp switch to the new solver\&. Fortunately, libzypp comes with a plethora of solver test cases, so we decided to make the solver pass most of the test cases first\&. Klaus wrote a "deptestomatic" implementation to check the test cases\&. Together with Stephan Kulow, who is responsible for the openSUSE distribution, we tweaked and extended the solver until most of the test cases looked good\&.
diff --git a/doc/gen/libsolv-pool.3 b/doc/gen/libsolv-pool.3
index ab1b3f0..0cd26a1 100644
--- a/doc/gen/libsolv-pool.3
+++ b/doc/gen/libsolv-pool.3
@@ -2,12 +2,12 @@
.\" Title: Libsolv-Pool
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 11/18/2020
+.\" Date: 03/02/2022
.\" Manual: LIBSOLV
.\" Source: libsolv
.\" Language: English
.\"
-.TH "LIBSOLV\-POOL" "3" "11/18/2020" "libsolv" "LIBSOLV"
+.TH "LIBSOLV\-POOL" "3" "03/02/2022" "libsolv" "LIBSOLV"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/gen/libsolv.3 b/doc/gen/libsolv.3
index a6ac359..91d2290 100644
--- a/doc/gen/libsolv.3
+++ b/doc/gen/libsolv.3
@@ -2,12 +2,12 @@
.\" Title: Libsolv
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 09/14/2018
+.\" Date: 03/02/2022
.\" Manual: LIBSOLV
.\" Source: libsolv
.\" Language: English
.\"
-.TH "LIBSOLV" "3" "09/14/2018" "libsolv" "LIBSOLV"
+.TH "LIBSOLV" "3" "03/02/2022" "libsolv" "LIBSOLV"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -54,7 +54,7 @@ libsolv\(cqs pool object
.RE
.SH "POINTER VALIDITY"
.sp
-Note that all pointers to objects that have an Id have only a limited validity period, with the exception of Repo pointers\&. There are only guaranteed to be valid until a new object of that type is added or an object of that type is removed\&. Thus pointers to Solvable objects are only valid until another solvable is created, because adding a Solvable may relocate the Pool\(cqs Solvable array\&. This is also true for Pool strings, you should use solv_strdup() to create a copy of the string if you want to use it at some later time\&. You should use the Ids in the code and not the pointers, except for short times where you know that the pointer is safe\&.
+Note that all pointers to objects that have an Id have only a limited validity period, with the exception of Repo pointers\&. They are only guaranteed to be valid until a new object of that type is added or an object of that type is removed\&. Thus pointers to Solvable objects are only valid until another solvable is created, because adding a Solvable may relocate the Pool\(cqs Solvable array\&. This is also true for Pool strings, you should use solv_strdup() to create a copy of the string if you want to use it at some later time\&. You should use the Ids in the code and not the pointers, except for short times where you know that the pointer is safe\&.
.sp
Note also that the data lookup functions or the dataiterator also return values with limited lifetime, this is especially true for data stored in the paged data segment of solv files\&. This is normally data that consists of big strings like package descriptions or is not often needed like package checksums\&. Thus looking up a description of a solvable and then looking up the description of a different solvable or even the checksum of the same solvable may invalidate the first result\&. (The dataiterator supports a dataiterator_strdup() function to create a safe copy\&.)
.sp
diff --git a/doc/gen/rpmdb2solv.1 b/doc/gen/rpmdb2solv.1
index c54c319..67e6036 100644
--- a/doc/gen/rpmdb2solv.1
+++ b/doc/gen/rpmdb2solv.1
@@ -2,12 +2,12 @@
.\" Title: rpmdb2solv
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 11/18/2020
+.\" Date: 03/02/2022
.\" Manual: LIBSOLV
.\" Source: libsolv
.\" Language: English
.\"
-.TH "RPMDB2SOLV" "1" "11/18/2020" "libsolv" "LIBSOLV"
+.TH "RPMDB2SOLV" "1" "03/02/2022" "libsolv" "LIBSOLV"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/libsolv-bindings.txt b/doc/libsolv-bindings.txt
index cdead65..5d46c08 100644
--- a/doc/libsolv-bindings.txt
+++ b/doc/libsolv-bindings.txt
@@ -2390,7 +2390,7 @@ Basic rule types:
A rule of an unknown class. You should never encounter those.
*SOLVER_RULE_PKG*::
-A package dependency rule.
+A rule generated because of a package dependency.
*SOLVER_RULE_UPDATE*::
A rule to implement the update policy of installed packages. Every
@@ -2439,22 +2439,19 @@ The package contains a required dependency which was not provided by
any package.
*SOLVER_RULE_PKG_REQUIRES*::
-Similar to SOLVER_RULE_PKG_NOTHING_PROVIDES_DEP, but in this case
-some packages provided the dependency but none of them could be
-installed due to other dependency issues.
+The package contains a required dependency which was provided by at
+least one package.
*SOLVER_RULE_PKG_SELF_CONFLICT*::
The package conflicts with itself. This is not allowed by older rpm
versions.
*SOLVER_RULE_PKG_CONFLICTS*::
-To fulfill the dependencies two packages need to be installed, but
-one of the packages contains a conflict with the other one.
+The package conflices with some other package.
*SOLVER_RULE_PKG_SAME_NAME*::
-The dependencies can only be fulfilled by multiple versions of
-a package, but installing multiple versions of the same package
-is not allowed.
+This rules make sure that only one version of a package is installed
+in the system.
*SOLVER_RULE_PKG_OBSOLETES*::
To fulfill the dependencies two packages need to be installed, but