Go to file
2013-07-02 08:54:02 +02:00
bin Added support to verify reverse dependencies in a transaction. 2013-06-27 16:52:31 +02:00
data data/libxbps.pc.in: no need to link to proplib anymore. 2013-06-20 12:33:23 +02:00
doc Update API docs. 2012-12-19 01:01:27 +01:00
etc etc/xbps.conf: improve PackagesOnHold description. 2013-03-08 09:58:32 +01:00
include include/xbps.h.in: xbps_api.h -> xbps.h 2013-06-29 06:46:46 +02:00
lib lib/fetch: ignore -Wformat-nonliteral with clang. 2013-07-02 08:54:02 +02:00
mk mk/test.mk: no need to link to proplib anymore. 2013-06-20 11:34:49 +02:00
tests xbps_api.h -> xbps.h 2013-06-20 12:31:02 +02:00
.gitignore .gitignore: ignore generated xbps.h 2013-06-27 17:17:47 +02:00
3RDPARTY Merge portable proplib 0.6.3. 2013-03-09 16:41:40 +01:00
configure configure: --etcdir -> --syconfdir. 2013-06-28 08:55:50 +02:00
COPYING Revert "libxbps: implement xbps_file_exec() with posix_spawn()." 2012-05-30 17:26:25 +02:00
Makefile Makefile: error out if ./configure wasn't executed before the 'all' target. 2013-02-01 14:59:32 +01:00
NEWS Added support to verify reverse dependencies in a transaction. 2013-06-27 16:52:31 +02:00
README.md README.md: more tweaks. 2013-06-21 10:45:22 +02:00
TODO New pkgdb (0.21) and repo index (1.7) format, see NEWS for info. 2013-03-05 04:08:42 +01:00

XBPS

The X Binary Package System (in short XBPS) is a new 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 (FTP/HTTP/HTTPS).
  • 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 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.

The latest stable version 0.24 was released on May 2nd, 2013.

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.

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

Good luck!