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
       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. 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'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>

libsolv				  09/14/2018			    LIBSOLV(3)

NAME | DOCUMENTATION | POINTER VALIDITY | AUTHOR

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

home | help