This wiki gives detailed information of the project "Dependency calculation using SAT solving" as part of GSoC 2015. wiki:SummerOfCode2015#dependencies || '''Student''' || '''Mentor''' || || [wiki:ijackson Jackson Isaac] || [wiki:cal Clemens Lang] || == Installation and Testing == '''Installing gsoc15-dependency branch''' [[BR]] Create a folder under ~/Development/libsolv so that we can clone and install the branch inside this prefix and not interfere with the stable MacPorts installation. {{{ mkdir -p ~/Development/libsolv cd ~/Development/libsolv svn co https://svn.macports.org/repository/macports/branches/gsoc15-dependency cd gsoc15-dependency/base env PATH=/usr/bin:/bin:/usr/sbin:/sbin CFLAGS="-pipe -Os" ./configure --enable-readline --prefix ~/Development/libsolv/mp_gsoc && make sudo make install }}} '''Creating alias for gsoc15-dependency port''' {{{ echo "alias portlibsolv=\"$HOME/Development/libsolv/mp_gsoc/bin/port\"" >> ~/.bash_profile echo "alias sudo=\"sudo \"" >> ~/.bash_profile }}} I have written a small shell script to do the above tasks at https://raw.githubusercontent.com/JacksonIsaac/macports-libsolv/master/mplibsolv.sh '''Re-Build portindex''' [[BR]] Currently if you are updating the ports via rsync, you will need to rebuild the portindex as conflicts field (required to set up solv information) has been added to the portindex in libsolv branch which is not yet merged with trunk. To do so run the following command: {{{ sudo /path/to/libsolv/branch/prefix/bin/portindex -f }}} This will build the portindex again and may take ~10-15 minutes depending on the hardware configuration. '''Note:''' You would have to do this each time you do a selfupdate to update the ports. [[BR]] '''Workaround:''' You can sync via SVN [wiki:howto/SyncingWithSVN SyncingWithSVN], as the portindex is generated locally. '''Testing libsolv engine''' [[BR]] Use -l option to use libsolv engine for search and install commands. {{{ portlibsolv search -l portlibsolv install -l portlibsolv install -l }}} '''Note:''' portlibsolv is our alias for gsoc15-dependecy branch's port command. == Appendix == || '''Filename''' || '''Description''' || || configure.ac || Add libsolv as a subproject. This will set up libsolv while installing MacPorts. || || doc/port.1.txt || Add documentation related to libsolv || || src/port/port.tcl || Add option for libsolv. [[BR]]In proc action_target add call to mportinstall which handles libsolv dependency engine in src/macports1.0/macports.tcl, when libsolv option passed. || || src/port/portindex.tcl || Add conflicts field to portindex. This is required for conflict resolution using libsolv. || || src/macports1.0/Makefile.in || Add macports_libsolv.tcl to SRCS. || || src/macports1.0/tests/macports_libsolv.test || Create unit test for libsolv related modules. || || src/macports1.0/macports.tcl || Add proc mportinstall to handle libsolv dependency engine and install packages returned by libsolv. Update mportsearch to call libsolv search, when -l option passed. || || src/macports1.0/macports_libsolv.tcl || Create new file macports_libsolv.tcl to define libsolv related modules. || || vendor/Makefile.in || Add rules to make libsolv package || || vendor/libsolv.tar.gz || Add libsolv tarball with autoconf build ||