plucky (3) libsolv.3.gz

Provided by: libsolv-doc_0.7.31-1build1_all bug

NAME

       libsolv - package dependency solver library using a satisfiability algorithm

DOCUMENTATION

       The libsolv documentation is split into multiple parts:

       libsolv-history
           how the libsolv library came into existence

       libsolv-constantids
           fixed Ids for often used strings

       libsolv-bindings
           access libsolv from perl/python/ruby

       libsolv-pool
           libsolv’s pool object

POINTER VALIDITY

       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’s 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 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.)

       The language bindings already deal with pointer validity, so you do not have to worry about this issue
       when using the bindings.

AUTHOR

       Michael Schroeder <mls@suse.de>