Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LIBSOLV(3)			     LIBSOLV			      LIBSOLV(3)

NAME
     libsolv  -  package  dependency solver library using a satisfiability algo-
     rithm

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  va-
     lidity  period,  with the exception of Repo pointers. They are only guaran-
     teed 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 un-
     til 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 pack-
     age 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>

libsolv 			   03/02/2022			      LIBSOLV(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libsolv&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help