diff options
author | Michael Schroeder <mls@suse.de> | 2013-05-17 16:39:06 +0200 |
---|---|---|
committer | Michael Schroeder <mls@suse.de> | 2013-05-17 16:39:06 +0200 |
commit | 8a0ffe45569bbc831dcefc582ce88870e2c9b205 (patch) | |
tree | 2cde77be05596cd3fa6fdb3ccde5af37cfd60f59 | |
parent | 0424ef2001157e0bf0385da84828a6075c8d291c (diff) | |
download | libsolv-8a0ffe45569bbc831dcefc582ce88870e2c9b205.tar.gz libsolv-8a0ffe45569bbc831dcefc582ce88870e2c9b205.tar.bz2 libsolv-8a0ffe45569bbc831dcefc582ce88870e2c9b205.zip |
update bindings documentation
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | doc/libsolv-bindings.3 | 75 | ||||
-rw-r--r-- | doc/libsolv-bindings.txt | 454 |
3 files changed, 216 insertions, 314 deletions
@@ -1,4 +1,5 @@ *~ build +doc/*.xml tests/solver/data.libzypp/*/*.result src/solvversion.h diff --git a/doc/libsolv-bindings.3 b/doc/libsolv-bindings.3 index 33f48b8..150fafd 100644 --- a/doc/libsolv-bindings.3 +++ b/doc/libsolv-bindings.3 @@ -2,12 +2,12 @@ .\" Title: libsolv-bindings .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> -.\" Date: 05/16/2013 +.\" Date: 05/17/2013 .\" Manual: LIBSOLV .\" Source: libsolv .\" Language: English .\" -.TH "LIBSOLV\-BINDINGS" "3" "05/16/2013" "libsolv" "LIBSOLV" +.TH "LIBSOLV\-BINDINGS" "3" "05/17/2013" "libsolv" "LIBSOLV" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -578,7 +578,7 @@ my \fI$chksum\fR \fB=\fR \fI$pool\fR\fB\->lookup_checksum(\fR\fI$solvid\fR\fB,\f .RE .\} .sp -Lookup functions\&. Return the data element stored in the specified solvable\&. +Lookup functions\&. Return the data element stored in the specified solvable\&. You should probably use the methods of the Solvable class instead\&. .sp .if n \{\ .RS 4 @@ -856,7 +856,7 @@ Same as calling the str() method\&. .RS 4 .\} .nf -\fB<comparisons ==, !=>\fR +\fB<equality>\fR \fBif (\fR\fI$dep1\fR \fB==\fR \fI$dep2\fR\fB)\fR \fBif\fR \fIdep1\fR \fB==\fR \fIdep2\fR\fB:\fR \fBif\fR \fIdep1\fR \fB==\fR \fIdep2\fR @@ -975,6 +975,21 @@ The number of solvables in this repository\&. .\} .sp Application specific data that may be used in any way by the code using the repository\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBDatapos *meta;\fR /* read only */ +\fI$repo\fR\fB\->{\*(Aqmeta\*(Aq}\fR +\fIrepo\fR\fB\&.meta\fR +\fIrepo\fR\fB\&.meta\fR +.fi +.if n \{\ +.RE +.\} +.sp +Return a Datapos object of the repodata\(cqs metadata\&. You can use the lookup methods of the Datapos class to lookup metadata attributes, like the repository timestamp\&. .SS "CONSTANTS" .PP \fBREPO_REUSE_REPODATA\fR @@ -1234,7 +1249,7 @@ Return the name of the repository, or "Repo#<id>" if no name is set\&. .RS 4 .\} .nf -\fB<comparisons ==, !=>\fR +\fB<equality>\fR \fBif (\fR\fI$repo1\fR \fB==\fR \fI$repo2\fR\fB)\fR \fBif\fR \fIrepo1\fR \fB==\fR \fIrepo2\fR\fB:\fR \fBif\fR \fIrepo1\fR \fB==\fR \fIrepo2\fR @@ -1244,54 +1259,6 @@ Return the name of the repository, or "Repo#<id>" if no name is set\&. .\} .sp Two repositories are equal if they belong to the same pool and have the same id\&. -.SS "LOOKUP FUNCTIONS" -.sp -Those functions can be used to retrieve information from a repository\&. For Package data lookups the methods in the Solvable class are prefered, so you probably only need this funcions to lookup repository meta information with \fBSOLVID_META\fR\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -\fBconst char *lookup_str(Id\fR \fIsolvid\fR\fB, Id\fR \fIkeyname\fR\fB)\fR -my \fI$str\fR \fB=\fR \fI$repo\fR\fB\->lookup_str(\fR\fI$solvid\fR\fB,\fR \fI$keyname\fR\fB)\fR; -\fIstr\fR \fB=\fR \fIrepo\fR\fB\&.lookup_str(\fR\fIsolvid\fR\fB,\fR \fIkeyname\fR\fB)\fR -\fIstr\fR \fB=\fR \fIrepo\fR\fB\&.lookup_str(\fR\fIsolvid\fR\fB,\fR \fIkeyname\fR\fB)\fR -.fi -.if n \{\ -.RE -.\} -.sp -Lookup a string from the \fIkeyname\fR entry specified with \fIsolvid\fR\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -\fBId lookup_id(Id\fR \fIsolvid\fR\fB, Id\fR \fIkeyname\fR\fB)\fR -my \fI$id\fR \fB=\fR \fI$repo\fR\fB\->lookup_id(\fR\fI$solvid\fR\fB,\fR \fI$keyname\fR\fB)\fR; -\fIid\fR \fB=\fR \fIrepo\fR\fB\&.lookup_id(\fR\fIsolvid\fR\fB,\fR \fIkeyname\fR\fB)\fR -\fIid\fR \fB=\fR \fIrepo\fR\fB\&.lookup_id(\fR\fIsolvid\fR\fB,\fR \fIkeyname\fR\fB)\fR -.fi -.if n \{\ -.RE -.\} -.sp -Lookup an Id from the \fIkeyname\fR entry specified with \fIsolvid\fR\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -\fBunsigned long long lookup_num(Id\fR \fIsolvid\fR\fB, Id\fR \fIkeyname\fR\fB, unsigned long long\fR \fInotfound\fR \fB= 0)\fR -my \fI$num\fR \fB=\fR \fI$repo\fR\fB\->lookup_num(\fR\fI$solvid\fR\fB,\fR \fI$keyname\fR\fB)\fR; -\fInum\fR \fB=\fR \fIrepo\fR\fB\&.lookup_num(\fR\fIsolvid\fR\fB,\fR \fIkeyname\fR\fB)\fR -\fInum\fR \fB=\fR \fIrepo\fR\fB\&.lookup_num(\fR\fIsolvid\fR\fB,\fR \fIkeyname\fR\fB)\fR -.fi -.if n \{\ -.RE -.\} -.sp -Lookup a number from the \fIkeyname\fR entry specified with \fIsolvid\fR\&. .SS "DATA ADD METHODS" .sp .if n \{\ @@ -1797,7 +1764,7 @@ Finalize the checksum and return the result as hex string\&. .RS 4 .\} .nf -\fB<comparisons ==, !=>\fR +\fB<equality>\fR \fBif (\fR\fI$chksum1\fR \fB==\fR \fI$chksum2\fR\fB)\fR \fBif\fR \fIchksum1\fR \fB==\fR \fIchksum2\fR\fB:\fR \fBif\fR \fIchksum1\fR \fB==\fR \fIchksum2\fR diff --git a/doc/libsolv-bindings.txt b/doc/libsolv-bindings.txt index 6fcc624..deab4df 100644 --- a/doc/libsolv-bindings.txt +++ b/doc/libsolv-bindings.txt @@ -15,9 +15,8 @@ bla bla bla THE POOL -------- -The pool is libsolv's central resource manager. A pool -consists of Solvables, Repositories, Dependencies, each -indexed by Ids. +The pool is libsolv's central resource manager. A pool consists of Solvables, +Repositories, Dependencies, each indexed by Ids. === CLASS METHODS === @@ -36,8 +35,8 @@ one pool. pool.appdata pool.appdata -Application specific data that may be used in any way by the -code using the pool. +Application specific data that may be used in any way by the code using the +pool. Solvable solvables[]; /* read only */ my $solvable = $pool->{'solvables'}->[$solvid]; @@ -58,8 +57,7 @@ Look up a Repository by its id. pool.installed = repo pool.installed = repo -Define which repository contains all the installed -packages. +Define which repository contains all the installed packages. === METHODS === @@ -68,18 +66,17 @@ packages. pool.free() pool.free() -Free a pool. This is currently done with a method -instead of relying on reference counting or garbage -collection because it's hard to track every reference -to a pool. - +Free a pool. This is currently done with a method instead of relying on +reference counting or garbage collection because it's hard to track every +reference to a pool. + void setdebuglevel(int level) $pool->setdebuglevel($level); pool.setdebuglevel(level) pool.setdebuglevel(level) -Set the debug level. A value of zero means no debug output, -the higher the value, the more output is generated. +Set the debug level. A value of zero means no debug output, the higher the +value, the more output is generated. int set_flag(int flag, int value) my $oldvalue = $pool->set_flag($flag, $value); @@ -91,12 +88,10 @@ the higher the value, the more output is generated. value = pool.get_flag(flag) value = pool.get_flag(flag) -Set/get a pool specific flag. The flags define how the -system works, e.g. how the package manager treats -obsoletes. The default flags should be sane for most -applications, but in some cases you may want to tweak -a flag, for example if you want to solv package -dependencies for some other system than yours. +Set/get a pool specific flag. The flags define how the system works, e.g. how +the package manager treats obsoletes. The default flags should be sane for most +applications, but in some cases you may want to tweak a flag, for example if +you want to solv package dependencies for some other system than yours. void set_rootdir(const char *rootdir) $pool->set_rootdir(rootdir); @@ -108,29 +103,26 @@ dependencies for some other system than yours. rootdir = pool.get_rootdir() rootdir = pool.get_rootdir() -Set/get the rootdir to use. This is useful if you want -package management to work only in some directory, for -example if you want to setup a chroot jail. Note that -the rootdir will only be prepended to file paths if -the *REPO_USE_ROOTDIR* flag is used. +Set/get the rootdir to use. This is useful if you want package management +to work only in some directory, for example if you want to setup a chroot +jail. Note that the rootdir will only be prepended to file paths if the +*REPO_USE_ROOTDIR* flag is used. void setarch(const char *arch = 0) $pool->setarch(); pool.setarch() pool.setarch() -Set the architecture for your system. The architecture -is used to determine which packages are installable. It -defaults to the result of ``uname -m''. +Set the architecture for your system. The architecture is used to determine +which packages are installable. It defaults to the result of ``uname -m''. Repo *add_repo(const char *name) $repo = $pool->add_repo($name); repo = pool.add_repo(name) repo = pool.add_repo(name) -Add a Repository with the specified name to the pool. -The reposiory is empty on creation, use the repository -methods to populate it with packages. +Add a Repository with the specified name to the pool. The reposiory is empty +on creation, use the repository methods to populate it with packages. Repoiterator *repos_iter() for my $repo (@{$pool->repos_iter()}) @@ -151,9 +143,8 @@ Iterate over the existing solvables. dep = pool.Dep(string) dep = pool.Dep(string) -Create an object describing a string or dependency. -If the string is currently not in the pool and -_create_ is false, *undef*/*None*/*nil* is returned. +Create an object describing a string or dependency. If the string is currently +not in the pool and _create_ is false, *undef*/*None*/*nil* is returned. void addfileprovides() $pool->addfileprovides(); @@ -165,68 +156,57 @@ _create_ is false, *undef*/*None*/*nil* is returned. ids = pool.addfileprovides_queue() ids = pool.addfileprovides_queue() -Some package managers like rpm allow dependencies on -files contained in other packages. To allow libsolv -to deal with those dependencies in an efficient way, -you need to call the addfileprovides method after -creating and reading all repositories. This method -will scan all dependency for file names and than -scan all packages for matching files. If a filename -has been matched, it will be added to the provides -list of the corresponding package. -The addfileprovides_queue variant works the same -way but returns an array containing all file -dependencies. This information can be stored -with the repository to speed up the next usage of -the repository. +Some package managers like rpm allow dependencies on files contained in other +packages. To allow libsolv to deal with those dependencies in an efficient way, +you need to call the addfileprovides method after creating and reading all +repositories. This method will scan all dependency for file names and than scan +all packages for matching files. If a filename has been matched, it will be +added to the provides list of the corresponding package. The +addfileprovides_queue variant works the same way but returns an array +containing all file dependencies. This information can be stored with the +repository to speed up the next usage of the repository. void createwhatprovides() $pool->createwhatprovides(); pool.createwhatprovides() pool.createwhatprovides() -Create the internal ``whatprovides'' hash over all -of the provides of all packages. This method must -be called before doing any lookups on provides. -It's encuraged to do it right after all repos -are set up, usually right after the call to -addfileprovides(). +Create the internal ``whatprovides'' hash over all of the provides of all +packages. This method must be called before doing any lookups on provides. +It's encuraged to do it right after all repos are set up, usually right after +the call to addfileprovides(). Queue whatprovides(DepId dep) my @solvables = $pool->whatprovides($dep); solvables = pool.whatprovides(dep) solvables = pool.whatprovides(dep) -Return all solvables that provide the specified -dependency. You can use either a Dep object or -an simple Id as argument. +Return all solvables that provide the specified dependency. You can use either +a Dep object or an simple Id as argument. Queue matchprovidingids(const char *match, int flags) my @ids = $pool->matchprovidingids($match, $flags); ids = pool.matchprovidingids(match, flags) ids = pool.matchprovidingids(match, flags) -Search the names of all provides and return the ones -matching the specified string. See the Dataiterator class -for the allowed flags. +Search the names of all provides and return the ones matching the specified +string. See the Dataiterator class for the allowed flags. Id towhatprovides(Queue ids) my $offset = $pool->towhatprovides(\@ids); offset = pool.towhatprovides(ids) offset = pool.towhatprovides(ids) -``Internalize'' an array containing Ids. The returned -value can be used to create solver jobs working on -a specific set of packages. See the Solver class for -more information. +``Internalize'' an array containing Ids. The returned value can be used to +create solver jobs working on a specific set of packages. See the Solver class +for more information. bool isknownarch(DepId id) my $bool = $pool->isknownarch($id); bool = pool.isknownarch(id) bool = pool.isknownarch?(id) -Return true if the specified Id describs a known -architecture. +Return true if the specified Id describs a known architecture. Solver *Solver() my $solver = $pool->Solver(); @@ -240,35 +220,33 @@ Create a new solver object. job = pool.Job(how, what) job = pool.Job(how, what) -Create a new Job object. Kind of low level, in most cases -you would use a Selection or Dep job constructor instead. +Create a new Job object. Kind of low level, in most cases you would use a +Selection or Dep job constructor instead. Selection *Selection() my $sel = $pool->Selection(); sel = pool.Selection() sel = pool.Selection() -Create an empty selection. Useful as a starting point for -merging other selections. +Create an empty selection. Useful as a starting point for merging other +selections. Selection *Selection_all() my $sel = $pool->Selection_all(); sel = pool.Selection_all() sel = pool.Selection_all() -Create a selection containing all packages. Useful as -starting point for intersecting other selections or -for update/distupgrade jobs. +Create a selection containing all packages. Useful as starting point for +intersecting other selections or for update/distupgrade jobs. Selection *select(const char *name, int flags) my $sel = $pool->select($name, $flags); sel = pool.select(name, flags) sel = pool.select(name, flags) -Create a selection by matching packages against the -specified string. See the Selection class for a -list of flags and how to create solver jobs from -a selection. +Create a selection by matching packages against the specified string. See the +Selection class for a list of flags and how to create solver jobs from a +selection. void setpooljobs(Jobs *jobs) $pool->setpooljobs(\@jobs); @@ -280,41 +258,34 @@ a selection. jobs = pool.getpooljobs() jobs = pool.getpooljobs() -Get/Set fixed jobs stored in the pool. Those jobs -are automatically appended to all solver jobs, they -are meant for fixed configurations like which -packages can be multiversion installed, which packages -were userinstalled or must not be erased. +Get/Set fixed jobs stored in the pool. Those jobs are automatically appended to +all solver jobs, they are meant for fixed configurations like which packages +can be multiversion installed, which packages were userinstalled or must not be +erased. void set_loadcallback(Callable *callback) $pool->setloadcallback(\&callbackfunction); pool.setloadcallback(callbackfunction) pool.setloadcallback { |repodata| ... } -Set the callback function called when repository -metadata needs to be loaded on demand. To make use -of this feature, you need to create repodata stubs -that tell the library which data is available but -not loaded. If later on the data needs to be -accessed, the callback function is called with a -repodata argument. You can then load the data -(maybe fetching it first from an remote server). -The callback should return true if the data has -been made available. +Set the callback function called when repository metadata needs to be loaded on +demand. To make use of this feature, you need to create repodata stubs that +tell the library which data is available but not loaded. If later on the data +needs to be accessed, the callback function is called with a repodata argument. +You can then load the data (maybe fetching it first from an remote server). +The callback should return true if the data has been made available. === DATA RETRIEVAL METHODS === -In the following functions, the _keyname_ argument -describes what to retrive. For the standard cases you -can use the available Id constants. For example, +In the following functions, the _keyname_ argument describes what to retrive. +For the standard cases you can use the available Id constants. For example, $solv::SOLVABLE_SUMMARY solv.SOLVABLE_SUMMARY Solv::SOLVABLE_SUMMARY -selects the ``Summary'' entry of a solvable. The -_solvid_ argument selects the desired solvable by -Id. +selects the ``Summary'' entry of a solvable. The _solvid_ argument selects the +desired solvable by Id. const char *lookup_str(Id solvid, Id keyname) my $string = $pool->lookup_str($solvid, $keyname); @@ -341,8 +312,8 @@ Id. chksum = pool.lookup_checksum(solvid, keyname) chksum = pool.lookup_checksum(solvid, keyname) -Lookup functions. Return the data element stored in the -specified solvable. +Lookup functions. Return the data element stored in the specified solvable. +You should probably use the methods of the Solvable class instead. Dataiterator *Dataiterator(Id solvid, Id keyname, const char *match, int flags) my $di = $pool->Dataiterator($solvid, $keyname, $match, $flags); @@ -353,14 +324,13 @@ specified solvable. for d in di: for d in di -Iterate over the matching data elements. See the Dataiterator class for -more information. +Iterate over the matching data elements. See the Dataiterator class for more +information. === ID METHODS === -The following methods deal with Ids, i.e. integers -representing objects in the pool. They are considered -``low level'', in most cases you would not use them +The following methods deal with Ids, i.e. integers representing objects in the +pool. They are considered ``low level'', in most cases you would not use them but instead the object orientated methods. Repo *id2repo(Id id) @@ -368,25 +338,24 @@ but instead the object orientated methods. repo = pool.id2repo(id) repo = pool.id2repo(id) -Lookup an existing Repository by id. You can also do -this by using the *repos* attribute. +Lookup an existing Repository by id. You can also do this by using the *repos* +attribute. Solvable *id2solvable(Id id) $solvable = $pool->id2solvable($id); solvable = pool.id2solvable(id) solvable = pool.id2solvable(id) -Lookup an existing Repository by id. You can also do -this by using the *solvables* attribute. +Lookup an existing Repository by id. You can also do this by using the +*solvables* attribute. const char *solvid2str(Id id) my $str = $pool->solvid2str($id); str = pool.solvid2str(id) str = pool.solvid2str(id) -Return a string describing the Solvable with the specified -id. The string consists of the name, version, and architecture -of the Solvable. +Return a string describing the Solvable with the specified id. The string +consists of the name, version, and architecture of the Solvable. Id str2id(const char *str, bool create=1) my $id = pool->str2id($string); @@ -398,53 +367,47 @@ of the Solvable. string = pool.id2str(id) string = pool.id2str(id) -Convert a string into an Id and back. If the string is -currently not in the pool and _create_ is false, -zero is returned. +Convert a string into an Id and back. If the string is currently not in the +pool and _create_ is false, zero is returned. Id rel2id(Id name, Id evr, int flags, bool create=1) my $id = pool->rel2id($nameid, $evrid, $flags); id = pool.rel2id(nameid, evrid, flags) id = pool.rel2id(nameid, evrid, flags) -Create a ``relational'' dependency. Such dependencies -consist of a name part, the _flags_ describing the -relation, and a version part. The flags are: +Create a ``relational'' dependency. Such dependencies consist of a name part, +the _flags_ describing the relation, and a version part. The flags are: $solv::REL_EQ | $solv::REL_GT | $solv::REL_LT solv.REL_EQ | solv.REL_GT | solv.REL_LT Solv::REL_EQ | Solv::REL_GT | Solv::REL_LT -Thus, if you want a ``\<='' relation, you would use -*REL_LT | REL_EQ*. +Thus, if you want a ``\<='' relation, you would use *REL_LT | REL_EQ*. Id id2langid(Id id, const char *lang, bool create=1) my $id = $pool->id2langid($id, $language); id = pool.id2langid(id, language) id = pool.id2langid(id, language) -Create a language specific Id from some other id. This -function simply converts the id into a string, appends -a dot and the specified language to the string and -converts the result back into an Id. +Create a language specific Id from some other id. This function simply converts +the id into a string, appends a dot and the specified language to the string +and converts the result back into an Id. const char *dep2str(Id id) $string = pool->dep2str($id); string = pool.dep2str(id) string = pool.dep2str(id) -Convert a dependency id into a string. If the id -is just a string, this function has the same effect -as id2str(). For relational dependencies, the result -is the correct ``name relation evr'' string. +Convert a dependency id into a string. If the id is just a string, this +function has the same effect as id2str(). For relational dependencies, the +result is the correct ``name relation evr'' string. THE DEPENDENCY CLASS -------------------- -The dependency class is an object orientated way to work with -strings and dependencies. Internally, dependencies are -represented as Ids, i.e. simple numbers. Dependency -objects can be constructed by using the Pool's Dep() +The dependency class is an object orientated way to work with strings and +dependencies. Internally, dependencies are represented as Ids, i.e. simple +numbers. Dependency objects can be constructed by using the Pool's Dep() method. === ATTRIBUTES === @@ -470,28 +433,25 @@ The id of this dependency. reldep = dep.Rel(flags, evrdep) reldep = dep.Rel(flags, evrdep) -Create a relational dependency from to string dependencies -and a flags argument. See the pool's rel2id method for a -description of the flags. +Create a relational dependency from to string dependencies and a flags +argument. See the pool's rel2id method for a description of the flags. Selection *Selection_name(int setflags = 0) my $sel = $dep->Selection_name(); sel = dep.Selection_name() sel = dep.Selection_name() -Create a Selection from a dependency. The selection -consists of all packages that have a name equal to the -dependency. If the dependency is of a relational type, -the packages version must also fulfill the dependency. +Create a Selection from a dependency. The selection consists of all packages +that have a name equal to the dependency. If the dependency is of a relational +type, the packages version must also fulfill the dependency. Selection *Selection_provides(int setflags = 0) my $sel = $dep->Selection_provides(); sel = dep.Selection_provides() sel = dep.Selection_provides() -Create a Selection from a dependency. The selection -consists of all packages that have at least one provides -matching the dependency. +Create a Selection from a dependency. The selection consists of all packages +that have at least one provides matching the dependency. const char *str() my $str = $dep->str(); @@ -507,19 +467,18 @@ Return a string describing the dependency. Same as calling the str() method. - <comparisons ==, !=> + <equality> if ($dep1 == $dep2) if dep1 == dep2: if dep1 == dep2 -The dependencies are equal if they are part of the -same pool and have the same ids. +The dependencies are equal if they are part of the same pool and have the same +ids. THE REPOSITORY CLASS -------------------- -A Repository describes a group of packages, normally comming from -the same source. Repositories are created by the Pool's add_repo() -method. +A Repository describes a group of packages, normally comming from the same +source. Repositories are created by the Pool's add_repo() method. === ATTRIBUTES === @@ -542,26 +501,26 @@ Return the id of the repository. repo.name repo.name -The repositories name. To libsolv, the name is just a string -with no specific meaning. +The repositories name. To libsolv, the name is just a string with no specific +meaning. int prioprity; /* read/write */ $repo->{'priority'} repo.priority repo.priority -The priority of the repository. A higher number means that -packages of this repository will be chosen over other -repositories, even if they have a greater package version. +The priority of the repository. A higher number means that packages of this +repository will be chosen over other repositories, even if they have a greater +package version. int subprioprity; /* read/write */ $repo->{'subpriority'} repo.subpriority repo.subpriority -The sub-priority of the repository. This value is compared when -the priorities of two repositories are the same. It is useful -to make the library prefer on-disk repositories to remote ones. +The sub-priority of the repository. This value is compared when the priorities +of two repositories are the same. It is useful to make the library prefer +on-disk repositories to remote ones. int nsolvables; /* read only */ $repo->{'nsolvables'} @@ -575,8 +534,17 @@ The number of solvables in this repository. repo.appdata repo.appdata -Application specific data that may be used in any way by the -code using the repository. +Application specific data that may be used in any way by the code using the +repository. + + Datapos *meta; /* read only */ + $repo->{'meta'} + repo.meta + repo.meta + +Return a Datapos object of the repodata's metadata. You can use the lookup +methods of the Datapos class to lookup metadata attributes, like the repository +timestamp. === CONSTANTS === @@ -627,17 +595,18 @@ code using the repository. repo.free() repo.free() -Free the repository and all solvables it contains. If _reuseids_ is set to true, the -solvable ids and the repository id may be reused by the library when added new solvables. -Thus you should leave it false if you are not sure that somebody holds a reference. +Free the repository and all solvables it contains. If _reuseids_ is set to +true, the solvable ids and the repository id may be reused by the library when +added new solvables. Thus you should leave it false if you are not sure that +somebody holds a reference. void empty(bool reuseids = 0) $repo->empty(); repo.empty() repo.empty() -Free all the solvables in a repository. The repository will be empty after this call. -See the free() method for the meaning of _reuseids_. +Free all the solvables in a repository. The repository will be empty after this +call. See the free() method for the meaning of _reuseids_. bool isempty() $repo->isempty() @@ -692,19 +661,19 @@ repository. repo.iscontiguous() repo.iscontiguous? -Return true if the solvables of this repository are all in a single -block with no holes, i.e. they have consecutive ids. +Return true if the solvables of this repository are all in a single block with +no holes, i.e. they have consecutive ids. Repodata *first_repodata() my $repodata = $repo->first_repodata(); repodata = repo.first_repodata() repodata = repo.first_repodata() -Checks if all repodatas but the first repodata are extensions, and return -the first repodata if this is the case. Useful if you want to do a -store/retrive sequence on the repository to reduce the memory using and -enable paging, as this does not work if the rpository contains multiple -non-extension repodata areas. +Checks if all repodatas but the first repodata are extensions, and return the +first repodata if this is the case. Useful if you want to do a store/retrive +sequence on the repository to reduce the memory using and enable paging, as +this does not work if the rpository contains multiple non-extension repodata +areas. Selection *Selection(int setflags = 0) my $sel = $repo->Selection(); @@ -732,40 +701,13 @@ Dataiterator class for more information. Return the name of the repository, or "Repo#<id>" if no name is set. - <comparisons ==, !=> + <equality> if ($repo1 == $repo2) if repo1 == repo2: if repo1 == repo2 Two repositories are equal if they belong to the same pool and have the same id. -=== LOOKUP FUNCTIONS === -Those functions can be used to retrieve information from a repository. For -Package data lookups the methods in the Solvable class are prefered, so -you probably only need this funcions to lookup repository meta information -with *SOLVID_META*. - - const char *lookup_str(Id solvid, Id keyname) - my $str = $repo->lookup_str($solvid, $keyname); - str = repo.lookup_str(solvid, keyname) - str = repo.lookup_str(solvid, keyname) - -Lookup a string from the _keyname_ entry specified with _solvid_. - - Id lookup_id(Id solvid, Id keyname) - my $id = $repo->lookup_id($solvid, $keyname); - id = repo.lookup_id(solvid, keyname) - id = repo.lookup_id(solvid, keyname) - -Lookup an Id from the _keyname_ entry specified with _solvid_. - - unsigned long long lookup_num(Id solvid, Id keyname, unsigned long long notfound = 0) - my $num = $repo->lookup_num($solvid, $keyname); - num = repo.lookup_num(solvid, keyname) - num = repo.lookup_num(solvid, keyname) - -Lookup a number from the _keyname_ entry specified with _solvid_. - === DATA ADD METHODS === Solvable *add_solvable() @@ -773,8 +715,8 @@ Lookup a number from the _keyname_ entry specified with _solvid_. repo.add_solvable() repo.add_solvable() -Add a single empty solvable to the repository. Returns a Solvable object, see the -Solvable class for more information. +Add a single empty solvable to the repository. Returns a Solvable object, see +the Solvable class for more information. bool add_solv(const char *name, int flags = 0) $repo->add_solv($name, $flags); @@ -786,9 +728,9 @@ Solvable class for more information. repo.add_solv(fp, flags) repo.add_solv(fp, flags) -Read a ``solv'' file and add its contents to the repository. These -files can be written with the write() method and are normally -used as fast cache for repository metadata. +Read a ``solv'' file and add its contents to the repository. These files can be +written with the write() method and are normally used as fast cache for +repository metadata. bool add_rpmdb(int flags = 0) $repo->add_rpmdb($flags); @@ -801,8 +743,8 @@ used as fast cache for repository metadata. repo.add_rpmdb_reffp($reffp, flags) Add the contents of the rpm database to the repository. If a solv file -containing an old version of the database is available, it can be -passed as reffp to speed up reading. +containing an old version of the database is available, it can be passed as +reffp to speed up reading. bool add_rpm(const char *name, int flags = 0) $repo->add_rpm($name, $flags); @@ -833,10 +775,11 @@ Add a pubkey from a file to the repository. repo.add_rpmmd(fp, language) Add metadata stored in the "rpm-md" format (i.e. from files in the ``repodata'' -directory) to a repository. Supported files are "primary", "filelists", "other", -"suseinfo". Do not forget to specify the *REPO_EXTEND_SOLVABLES* for extension -files like "filelists" and "other". Use the _language_ parameter if you have -language extension files, otherwise simply use a *undef*/*None*/*nil* parameter. +directory) to a repository. Supported files are "primary", "filelists", +"other", "suseinfo". Do not forget to specify the *REPO_EXTEND_SOLVABLES* for +extension files like "filelists" and "other". Use the _language_ parameter if +you have language extension files, otherwise simply use a *undef*/*None*/*nil* +parameter. bool add_repomdxml(FILE *fp, int flags = 0) $repo->add_repomdxml($fp); @@ -844,8 +787,8 @@ language extension files, otherwise simply use a *undef*/*None*/*nil* parameter. repo.add_repomdxml(fp) Add the repomd.xml meta description from the "rpm-md" format to the repository. -This file contains information about the repository like keywords, and also -a list of all database files with checksums. The data is added the the "meta" +This file contains information about the repository like keywords, and also a +list of all database files with checksums. The data is added the the "meta" section of the repository, i.e. no package gets created. bool add_updateinfoxml(FILE *fp, int flags = 0) @@ -893,24 +836,24 @@ Add the metadata of a single deb package to the repository. repo.add_mdk($fp) repo.add_mdk($fp) -Add the contents of the mageia/mandriva repository metadata (the "synthesis.hdlist" file) -to the repository. +Add the contents of the mageia/mandriva repository metadata (the +"synthesis.hdlist" file) to the repository. bool add_mdk_info(FILE *fp, int flags = 0) $repo->add_mdk($fp); repo.add_mdk($fp) repo.add_mdk($fp) -Extend the packages from the synthesis file with the info.xml and files.xml data. Do -not forget to specify *REPO_EXTEND_SOLVABLES*. +Extend the packages from the synthesis file with the info.xml and files.xml +data. Do not forget to specify *REPO_EXTEND_SOLVABLES*. bool add_arch_repo(FILE *fp, int flags = 0) $repo->add_arch_repo($fp); repo.add_arch_repo($fp) repo.add_arch_repo($fp) -Add the contents of the archlinux repository metadata (the ".db.tar" file) to the -repository. +Add the contents of the archlinux repository metadata (the ".db.tar" file) to +the repository. bool add_arch_local(const char *dir, int flags = 0) $repo->add_arch_local($dir); @@ -945,8 +888,8 @@ vendors, it is usually provided in the content file. repo.add_products(dir) repo.add_products(dir) -Add the installed SUSE products database to the repository. The _dir_ parameter is -usually "/etc/products.d". +Add the installed SUSE products database to the repository. The _dir_ parameter +is usually "/etc/products.d". THE SOLVABLE CLASS ------------------ @@ -974,9 +917,8 @@ xxx CHECKSUMS --------- -Checksums (also called hashes) are used to make sure that -downloaded data is not corrupt and also as a fingerprint -mechanism to check if data has changed. +Checksums (also called hashes) are used to make sure that downloaded data is +not corrupt and also as a fingerprint mechanism to check if data has changed. === CLASS METHODS === @@ -985,8 +927,7 @@ mechanism to check if data has changed. chksum = solv.Chksum(type) chksum = Solv::Chksum.new(type) -Create a checksum object. Currently the following types -are supported: +Create a checksum object. Currently the following types are supported: REPOKEY_TYPE_MD5 REPOKEY_TYPE_SHA1 @@ -1031,25 +972,23 @@ Add the contents of a file to the checksum. chksum.add_stat(filename) chksum.add_stat(filename) -Stat the file and add the dev/ino/size/mtime member to the -checksum. If the stat fails, the members are zeroed. +Stat the file and add the dev/ino/size/mtime member to the checksum. If the +stat fails, the members are zeroed. void add_fstat(int fd) $chksum->add_fstat($fd); chksum.add_fstat(fd) chksum.add_fstat(fd) -Same as add_stat, but instead of the filename a file -descriptor is used. +Same as add_stat, but instead of the filename a file descriptor is used. unsigned char *raw() my $raw = $chksum->raw(); raw = chksum.raw() raw = chksum.raw() -Finalize the checksum and return the result as raw bytes. This -means that the result can contain zero bytes or -unprintable characters. +Finalize the checksum and return the result as raw bytes. This means that the +result can contain zero bytes or unprintable characters. unsigned char *hex() my $raw = $chksum->hex(); @@ -1058,50 +997,46 @@ unprintable characters. Finalize the checksum and return the result as hex string. - <comparisons ==, !=> + <equality> if ($chksum1 == $chksum2) if chksum1 == chksum2: if chksum1 == chksum2 -Checksums are equal if they are of the same type and the -finalized results are the same. +Checksums are equal if they are of the same type and the finalized results are +the same. <stringification> my $str = "$chksum"; str = str(chksum) str = chksum.to_s -If the checksum is finished, the checksum is returned -as "<type>:<hex>" string. Otherwise "<type>:unfinished" -is returned. +If the checksum is finished, the checksum is returned as "<type>:<hex>" string. +Otherwise "<type>:unfinished" is returned. FILE MANAGEMENT --------------- -This functions were added because libsolv uses standard -*FILE* pointers to read/write files, but languages like -perl have their own implementation of files. The -libsolv functions also support decompression and -compression, the algorithm is selected by looking at -the file name extension. +This functions were added because libsolv uses standard *FILE* pointers to +read/write files, but languages like perl have their own implementation of +files. The libsolv functions also support decompression and compression, the +algorithm is selected by looking at the file name extension. FILE *xfopen(char *fn, char *mode = "r") my $file = solv::xfopen($path); file = solv.xfopen(path) file = Solv::xfopen(path) -Open a file at the specified path. The `mode` argument is -passed on to the stdio library. +Open a file at the specified path. The `mode` argument is passed on to the +stdio library. FILE *xfopen_fd(char *fn, int fileno) my $file = solv::xfopen_fd($path, $fileno); file = solv.xfopen_fd(path, fileno) file = Solv::xfopen_fd(path, fileno) -Create a file handle from the specified file descriptor. -The path argument is only used to select the correct -(de-)compression algorithm, use an empty path if you want -to make sure to read/write raw data. +Create a file handle from the specified file descriptor. The path argument is +only used to select the correct (de-)compression algorithm, use an empty path +if you want to make sure to read/write raw data. === METHODS === @@ -1110,35 +1045,34 @@ to make sure to read/write raw data. fileno = file.fileno() fileno = file.fileno() -Return file file descriptor of the file. If the file is not -open, `-1` is returned. +Return file file descriptor of the file. If the file is not open, `-1` is +returned. int dup() my $fileno = $file->dup(); fileno = file.dup() fileno = file.dup() -Return a copy of the descriptor of the file. If the file is not -open, `-1` is returned. +Return a copy of the descriptor of the file. If the file is not open, `-1` is +returned. bool flush() $file->flush(); file.flush() file.flush() -Flush the file. Returns false if there was an error. Flushing a -closed file always returns true. +Flush the file. Returns false if there was an error. Flushing a closed file +always returns true. bool close() $file->close(); file.close() file.close() -Close the file. This is needed for languages like Ruby, that do -not destruct objects right after they are no longer referenced. -In that case, it is good style to close open files so that -the file descriptors are freed right away. Returns false if -there was an error. +Close the file. This is needed for languages like Ruby, that do not destruct +objects right after they are no longer referenced. In that case, it is good +style to close open files so that the file descriptors are freed right away. +Returns false if there was an error. THE REPODATACLASS ----------------- |