Go to file
Juan RP 8882b0215f Redo how the repository keys are stored.
- Repository keys are now stored in a new directory on metadir (/var/db/xbps):

	<metadir>/key>

- Repository keys are stored with the hex fingerprint of its RSA
  public key in a plist dictionary:

	<metadir>/keys/xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.plist

- Drop xbps-rkeys(8) and merge its functionality into xbps-install(8) and
  xbps-query(8).

- xbps-query(8) -vL now shows some more details of remote repositories:

 3134 http://localhost:8000 (RSA signed, verified)
      Signed-by: Void Linux
      4096 60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d
   16 http://localhost:8000/nonfree (RSA signed, verified)
      Signed-by: Void Linux
      4096 60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d

Bump XBPS_API_VERSION.
2013-11-18 16:05:46 +01:00
bin Redo how the repository keys are stored. 2013-11-18 16:05:46 +01:00
data data/libxbps.pc.in: no need to link to proplib anymore. 2013-06-20 12:33:23 +02:00
doc Update API documentation and dot files. 2013-09-25 11:15:04 +02:00
etc Added support to specify multiple repositories via cmdline (close #17). 2013-09-18 16:45:05 +02:00
include Redo how the repository keys are stored. 2013-11-18 16:05:46 +01:00
lib Redo how the repository keys are stored. 2013-11-18 16:05:46 +01:00
mk Move libxbps shell tests to libxbps/shell and remove unused test-shell.mk. 2013-11-06 11:52:02 +01:00
tests util.c: add stricter checks for pkgver conformance (v2). 2013-11-17 12:25:02 +01:00
.gitignore Simplify tests/xbps/xbps-rindex structure. 2013-11-06 11:11:00 +01:00
3RDPARTY Merge portable proplib 0.6.3. 2013-03-09 16:41:40 +01:00
configure Define NDEBUG for assert() if --enable-debug is not specified. 2013-11-08 09:11:47 +01:00
COPYING Revert "libxbps: implement xbps_file_exec() with posix_spawn()." 2012-05-30 17:26:25 +02:00
Makefile Makefile: remove dist target (unused and obsolete). 2013-09-26 11:10:31 +02:00
NEWS Redo how the repository keys are stored. 2013-11-18 16:05:46 +01:00
README.md README.md: update. 2013-11-14 16:24:25 +01:00
TODO Added support for the long awaited feature: RSA signed repositories. 2013-10-05 11:38:04 +02: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 (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 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.26.2 was released on September 30th, 2013.

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.

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

Good luck!