2014-10-05 01:22:46 +05:30
|
|
|
[![Build Status](https://travis-ci.org/voidlinux/xbps.svg?branch=master)](https://travis-ci.org/voidlinux/xbps)
|
2014-10-05 01:44:32 +05:30
|
|
|
[![Build Status](https://scan.coverity.com/projects/3167/badge.svg)](https://scan.coverity.com/projects/3167)
|
2014-10-05 01:22:46 +05:30
|
|
|
|
2013-06-21 14:06:35 +05:30
|
|
|
## XBPS
|
|
|
|
|
2014-09-23 17:07:07 +05:30
|
|
|
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.
|
2013-06-21 14:06:35 +05:30
|
|
|
|
2014-09-23 17:07:07 +05:30
|
|
|
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:
|
2013-06-21 14:15:22 +05:30
|
|
|
|
2013-10-07 14:41:19 +05:30
|
|
|
* Supports **multiple local and remote repositories** (HTTP/HTTPS/FTP).
|
2013-10-08 13:58:31 +05:30
|
|
|
* **RSA signed remote repositories** (NEW in 0.27).
|
2013-06-21 14:15:22 +05:30
|
|
|
* **SHA256 hashes** for package metadata, files and binary packages.
|
2014-09-23 17:07:07 +05:30
|
|
|
* Supports **package states** (ala dpkg) to mitigate broken package
|
|
|
|
installs/updates.
|
2013-06-21 14:15:22 +05:30
|
|
|
* Ability to **resume** partial package install/updates.
|
|
|
|
* Ability to **unpack only files that have been modified** in package updates.
|
|
|
|
* Ability to use **virtual packages**.
|
2014-09-23 17:07:07 +05:30
|
|
|
* Ability to **check for incompatible shared libraries in reverse
|
|
|
|
dependencies**.
|
2013-06-21 14:15:22 +05:30
|
|
|
* 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**.
|
2014-09-23 17:07:07 +05:30
|
|
|
* Ability to **check package integrity**: missing files, hashes, missing or
|
|
|
|
unresolved (reverse)dependencies, dangling or modified symlinks, etc.
|
2013-06-21 14:15:22 +05:30
|
|
|
* **Low memory** footprint.
|
|
|
|
* **Fast** dependency resolver and sorting algorithms.
|
2013-06-21 14:06:35 +05:30
|
|
|
|
2013-09-25 14:54:46 +05:30
|
|
|
### Getting source code
|
|
|
|
|
2014-09-23 17:07:07 +05:30
|
|
|
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:
|
2013-09-25 14:54:46 +05:30
|
|
|
|
2013-11-14 20:54:25 +05:30
|
|
|
$ git clone -b <version> git://github.com/xtraeme/xbps.git
|
2013-09-25 14:54:46 +05:30
|
|
|
|
|
|
|
See `git tag -l` to list all available stable releases.
|
2013-06-21 14:06:35 +05:30
|
|
|
|
|
|
|
### Build requirements
|
2009-12-12 15:50:23 +05:30
|
|
|
|
|
|
|
To build this you'll need:
|
|
|
|
|
2014-01-05 14:41:35 +05:30
|
|
|
- A C99 compiler (clang and gcc tested)
|
2013-06-21 14:15:22 +05:30
|
|
|
- [GNU make](http://www.gnu.org/software/make/)
|
|
|
|
- [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/)
|
|
|
|
- [zlib](http://www.zlib.net)
|
|
|
|
- [openssl](http://www.openssl.org)
|
2013-08-19 19:30:45 +05:30
|
|
|
- [libarchive >= 2.8.0](http://www.libarchive.org)
|
2010-01-23 07:07:19 +05:30
|
|
|
|
2012-03-12 20:09:53 +05:30
|
|
|
and optionally:
|
2010-01-23 07:07:19 +05:30
|
|
|
|
2014-09-23 17:07:07 +05:30
|
|
|
- [graphviz](http://www.graphviz.org) and [doxygen](http://www.doxygen.org)
|
|
|
|
(--enable-api-docs) to build API documentation.
|
|
|
|
- [atf >= 0.15](http://code.google.com/p/kyua) (--enable-tests) to build the
|
|
|
|
Kyua test suite.
|
2009-12-12 15:50:23 +05:30
|
|
|
|
2014-09-29 13:41:58 +05:30
|
|
|
### Tests
|
|
|
|
|
|
|
|
To run the test suite make sure *kyua* is installed and run the following:
|
|
|
|
|
|
|
|
```
|
2014-10-06 15:38:12 +05:30
|
|
|
$ ./configure --enable-tests --enable-debug
|
|
|
|
$ make
|
|
|
|
$ LD_PRELOAD=$PWD/lib/libxbps.so kyua test -k tests/xbps/Kyuafile
|
2014-09-29 13:41:58 +05:30
|
|
|
```
|
|
|
|
|
2013-06-21 14:06:35 +05:30
|
|
|
### Build instructions
|
|
|
|
|
|
|
|
Standard configure script (not generated by GNU autoconf).
|
|
|
|
|
|
|
|
```
|
2014-10-06 15:38:12 +05:30
|
|
|
$ ./configure --prefix=/blah
|
|
|
|
$ make -jX
|
|
|
|
$ make install
|
2013-06-21 14:06:35 +05:30
|
|
|
```
|
|
|
|
|
2014-09-23 17:07:07 +05:30
|
|
|
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.
|
2009-12-12 15:50:23 +05:30
|
|
|
|
2010-05-20 02:08:27 +05:30
|
|
|
There are some more options that can be tweaked, see them with
|
2014-09-23 17:23:38 +05:30
|
|
|
`./configure --help`.
|
2009-12-28 20:49:58 +05:30
|
|
|
|
2009-12-12 15:50:23 +05:30
|
|
|
Good luck!
|