Go to file
Juan RP 43c9497feb Introduce xbps_array_add_first() to insert obj at the head of array.
The behaviour of this routine mimics the existing xbps_array_add() with
the difference that stored objects are moved to the right to insert
our object as the first element on the array.

Use this to add replaced packages in the transaction array at the head
rather than at the end, to preserve the proper sorting order.
2014-11-13 15:18:21 +01:00
admin travis: bump to atf-0.21 and kyua-0.11. 2014-10-23 23:17:48 +02:00
bin xbps-create(8): fix #64 "incorrect installed-size with hardlinks" 2014-11-12 12:37:35 +01:00
data Added the "bestmatching" configuration keyword to enable pkg best matching. 2014-11-07 10:07:51 +01:00
doc doc/xbps_pkg_props_dictionary.dot: sync with reality. 2014-04-18 09:19:40 +02:00
include Introduce xbps_array_add_first() to insert obj at the head of array. 2014-11-13 15:18:21 +01:00
lib Introduce xbps_array_add_first() to insert obj at the head of array. 2014-11-13 15:18:21 +01:00
mk mk/test.mk: use LDFLAGS when linking too. 2014-10-06 14:34:16 +02:00
tests tests: add another test case to verify pkg files are replaced correctly. 2014-11-13 11:20:06 +01:00
.gitignore .gitignore: add vim tempfiles. 2014-09-23 21:24:14 +02:00
.travis.yml travis: remove coverity specific settings. 2014-10-06 18:55:05 +02:00
3RDPARTY Imported portableproplib-0.6.4. 2014-05-17 20:25:14 +02:00
AUTHORS Added CONTRIBUTORS. 2014-10-24 11:03:45 +02:00
configure Replaced config/system {repo,preserve,virtualpkg}.d with a single directory. 2014-11-06 09:58:04 +01:00
CONTRIBUTORS Added CONTRIBUTORS. 2014-10-24 11:03:45 +02:00
COPYING Misc tweaks to authors/copyright. 2014-05-13 12:22:12 +02:00
Makefile Replaced config/system {repo,preserve,virtualpkg}.d with a single directory. 2014-11-06 09:58:04 +01:00
NEWS xbps-create(8): fix #64 "incorrect installed-size with hardlinks" 2014-11-12 12:37:35 +01:00
README.md Added a "check" target to run the testsuite. 2014-10-06 12:28:26 +02:00
run-tests run-tests: print results to see what's going on. 2014-11-06 10:42:55 +01:00
TODO Added support to use pkg shlib-{provides,requires} objects. 2014-09-09 11:08:54 +02:00

Build Status Build Status

XBPS

The X Binary Package System (in short XBPS) is a binary package system designed and implemented from scratch. Its goal is to be fast, easy to use, bug-free, featureful and portable as much as possible.

The XBPS code is totally compatible with POSIX/SUSv2/C99 standards, and released with a Simplified BSD license (2 clause). There is a well documented API provided by the XBPS Library that is the basis for its frontends to handle binary packages and repositories. Some highlights:

  • Supports multiple local and remote repositories (HTTP/HTTPS/FTP).
  • RSA signed remote repositories (NEW in 0.27).
  • SHA256 hashes for package metadata, files and binary packages.
  • Supports package states (ala dpkg) to mitigate broken package installs/updates.
  • Ability to resume partial package install/updates.
  • Ability to unpack only files that have been modified in package updates.
  • Ability to use virtual packages.
  • Ability to check for incompatible shared libraries in reverse dependencies.
  • Ability to replace packages.
  • Ability to put packages on hold (to never update them. NEW in 0.16).
  • Ability to preserve/update configuration files.
  • Ability to force reinstallation of any installed package.
  • Ability to downgrade any installed package.
  • Ability to execute pre/post install/remove/update scriptlets.
  • Ability to check package integrity: missing files, hashes, missing or unresolved (reverse)dependencies, dangling or modified symlinks, etc.
  • Low memory footprint.
  • Fast dependency resolver and sorting algorithms.

Getting source code

Starting with 0.26 there are not source tarballs anymore. git must be used to clone the repository with the appropiate tag. The latest stable version can be fetched with:

$ git clone -b <version> git://github.com/xtraeme/xbps.git

See git tag -l to list all available stable releases.

Build requirements

To build this you'll need:

and optionally:

Tests

To run the test suite make sure kyua is installed and run the following:

$ ./configure --enable-tests --enable-debug
$ make
$ make check

Build instructions

Standard configure script (not generated by GNU autoconf).

$ ./configure --prefix=/blah
$ make -jX
$ make install

By default PREFIX is set /usr/local and may be changed by setting --prefix in the configure script. The DESTDIR variable is also supported at the install stage.

There are some more options that can be tweaked, see them with ./configure --help.

Good luck!