Go to file
Enno Boland ebd614dff6 bin/xbps-rindex: take the revert field in account.
- if the user wants to add a package which is older than the
  one in the index, xbps-rindex will check if the package
  reverts the one on the index. If so the package will be added
  regardless of its version

- if the user wants to add a package which is newer than the
  one on the index, xbps-rindex will check if the package on the
  index reverts the one the user wants to add. If so the package
  will be skipped regardless of its version.
2014-09-23 13:54:06 +02:00
bin bin/xbps-rindex: take the revert field in account. 2014-09-23 13:54:06 +02:00
data data/xbps.bash: use installed packages in non-repo query completion. 2014-09-18 19:45:58 +00:00
doc doc/xbps_pkg_props_dictionary.dot: sync with reality. 2014-04-18 09:19:40 +02:00
etc etc/xbps.conf: sync with reality. 2014-09-14 18:39:57 +02:00
include lib/util.c: add function which tests if a given pkgver is reverted by a given pkg. 2014-09-23 13:54:06 +02:00
lib lib/util.c: add function which tests if a given pkgver is reverted by a given pkg. 2014-09-23 13:54:06 +02:00
mk Merge xbps-repo-checkvers from https://github.com/xdave/xbps-src-utils 2014-04-06 12:21:24 +02:00
tests tests: two new tests to verify pkg install/update with no files. 2014-09-14 18:03:29 +02:00
.gitignore Renamed xbps-repo-checkvers -> xbps-checkvers. 2014-04-07 10:45:25 +02:00
3RDPARTY Imported portableproplib-0.6.4. 2014-05-17 20:25:14 +02:00
AUTHORS AUTHORS: add Eivind Uggedal. 2014-09-11 07:46:15 +02:00
configure README, configure: --with-tests is not supported. Use --enable-tests instead. 2014-09-22 21:03:02 +02:00
COPYING Misc tweaks to authors/copyright. 2014-05-13 12:22:12 +02:00
Makefile Remove the config.h kludge and override vasprintf detection via HAVE_VASPRINTF. 2014-01-20 18:50:33 +01:00
NEWS NEWS: mention recent changes. 2014-09-23 09:42:20 +02:00
README.md README.md: fix wrong backtick to end code segment. 2014-09-23 13:53:38 +02:00
README.md~ README.md: fix wrong backtick to end code segment. 2014-09-23 13:53:38 +02:00
TODO Added support to use pkg shlib-{provides,requires} objects. 2014-09-09 11:08:54 +02:00

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:

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.

If you want to build the tests too add --enable-tests to configure. Also make sure you have kyua installed. To run a test call this:

kyua test -k ./tests/.../Kyuafile

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

Good luck!