Compiling and installing the software
-
-** This is a research project, NOT a complete tool. **
-
-
-Requirements
+Requirements:
- C compiler
- cmake
- make
- expat
-- db-4.3
-Steps to compile
+Steps to compile/install:
1. mkdir build
2. cd build
3. cmake ..
4. make
+5. make install
-Steps to run the testsuite
-
-1. cd testsuite
-2a. ./runtest.rb --redcarpet data.libredcarpet
-2b. ./runtest.rb data.libzypp
-libsolv, a free package dependency solver using a satisfyability
-algorihtm
+This is libsolv, a free package dependency solver using a satisfyability
+algorihtm.
-This code is based on two major, but independent, blocks
+This code is based on two major, but independent, blocks:
1. Using a dictionary approach to store and retrieve package
and dependency information.
cmake ..
make
-To create a package
+To create a package:
make srcpackage
see package/
-INCLUDE(CheckFunctionExists)
-CHECK_FUNCTION_EXISTS(qsort_r HAVE_QSORT_R)
-CHECK_FUNCTION_EXISTS(__qsort_r HAVE___QSORT_R)
+INCLUDE (CheckFunctionExists)
+CHECK_FUNCTION_EXISTS (qsort_r HAVE_QSORT_R)
+CHECK_FUNCTION_EXISTS (__qsort_r HAVE___QSORT_R)
IF (HAVE_QSORT_R)
- ADD_DEFINITIONS(-DHAVE_QSORT_R=1)
+ ADD_DEFINITIONS (-DHAVE_QSORT_R=1)
ENDIF (HAVE_QSORT_R)
IF (HAVE___QSORT_R)
- ADD_DEFINITIONS(-DHAVE___QSORT_R=1)
+ ADD_DEFINITIONS (-DHAVE___QSORT_R=1)
ENDIF (HAVE___QSORT_R)
-SET(libsolv_SRCS
+SET (libsolv_SRCS
bitmap.c poolarch.c poolvendor.c poolid.c strpool.c dirpool.c
solver.c solverdebug.c repo_solv.c evr.c pool.c
queue.c repo.c repodata.c repopage.c util.c policy.c solvable.c
transaction.c rules.c problems.c
chksum.c md5.c sha1.c sha2.c satversion.c)
-ADD_LIBRARY(libsolv STATIC ${libsolv_SRCS})
+ADD_LIBRARY (libsolv STATIC ${libsolv_SRCS})
-SET(libsolv_HEADERS
+SET (libsolv_HEADERS
bitmap.h evr.h hash.h policy.h poolarch.h poolvendor.h pool.h
poolid.h pooltypes.h queue.h solvable.h solver.h solverdebug.h
repo.h repodata.h repopage.h repo_solv.h util.h
strpool.h dirpool.h knownid.h transaction.h rules.h problems.h
chksum.h md5.h sha1.h sha2.h ${CMAKE_BINARY_DIR}/src/satversion.h)
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
-INSTALL(FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/libsolv")
-INSTALL(TARGETS libsolv LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
+INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/libsolv")
+INSTALL (TARGETS libsolv LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
+++ /dev/null
-
-Solver algorithms:
-------------------
-
-- the solver allows arch changes from/to noarch without complaining.
- good or bad?
-
-- vendow changes are allowed from unknown to known. libzypp doesn't
- allow that. Feature?
-
-- should prune_best_version_arch consider the arch or the vendor this
- is about an installed package?
-
-- repo priorities should influence the order in which package rules
- are fulfilled.
-
-- prune_best_version_arch has a n^2 loop when looking at obsoletes.
- Should we create an obsoletes index to speed that up?
-
-
-
-Code cleanup:
--------------
-
-- move whatprovides/whatprovidesdata from pool to solver?
- good: can implement installed(), though I don't know if we need
- it.
- bad: need to allocate solver if we just want to look up a provides.
- can't re-use whatprovides for multiple solver runs with different
- solvers.
-
-- implement unified idarray in pool, so that repos don't have to
- come with their own idarrays? Would need memory for hash, but
- unification would be a nice thing. Would also fix solver memory
- leak with learned rules. Needs some hard numbers abour memory usage.
-
-- make bitmap macros inline functions?
-
-- rename ID Macros to ID_, e.g. ARCH_NOARCH to ID_ARCH_NOARCH?
-
-- support different streams than FILE in repo_ functions? Is it
- enough that glibc supports FILE overloading, see the undocumented
- fopencookie()?
-