Go to file
2013-06-21 10:36:35 +02:00
bin xbps_api.h -> xbps.h 2013-06-20 12:31:02 +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 xbps_api.h -> xbps.h 2013-06-20 12:31:02 +02:00
lib Fixed some issues/warnings found by clang-analyzer. 2013-06-20 11:25:43 +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 New utilities: xbps-{install,pkgdb,query,reconfigure,rindex} (WIP). 2012-11-02 15:04:25 +01:00
3RDPARTY Merge portable proplib 0.6.3. 2013-03-09 16:41:40 +01:00
configure Get rid of libfetch and proplib external dependencies. 2013-06-20 10:26:12 +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 NEWS: mention latest changes. 2013-06-20 12:19:48 +02:00
README README: update for conversion to markdown. 2013-06-21 10:36:35 +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:

  - GNU make
  - pkg-config
  - zlib
  - openssl
  - libarchive[0] >= 3.0.2
  - confuse[1] >= 2.7

and optionally:

  - graphviz and doxygen (--with-api-docs) to build API documentation.
  - atf >= 0.15 (--with-tests) to build the Kyua test suite [2].

### 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!

[0] http://www.libarchive.org
[1] http://www.nongnu.org/confuse
[2] http://code.google.com/p/kyua