d7d749312d
This is magnituds faster than before; some results: $ for f in 1 2 3; do time xbps-rindex -r /var/cache/xbps/ &>/dev/null; done real 0m0.624s user 0m2.163s sys 0m0.032s real 0m0.590s user 0m2.159s sys 0m0.023s real 0m0.584s user 0m2.144s sys 0m0.039s $ for f in 1 2 3; do time LD_PRELOAD=$PWD/lib/libxbps.so.2.0.0 ./bin/xbps-rindex/xbps-rindex -r /var/cache/xbps &>/dev/null; done real 0m0.037s user 0m0.030s sys 0m0.010s real 0m0.036s user 0m0.032s sys 0m0.007s real 0m0.037s user 0m0.035s sys 0m0.006s $ |
||
---|---|---|
bin | ||
data | ||
doc | ||
etc | ||
include | ||
lib | ||
mk | ||
tests | ||
.gitignore | ||
3RDPARTY | ||
AUTHORS | ||
configure | ||
COPYING | ||
Makefile | ||
NEWS | ||
README.md | ||
TODO |
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.
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:
- A C99 compiler (clang and gcc tested)
- GNU make
- pkg-config
- zlib
- openssl
- libarchive >= 2.8.0
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!