Skip to content

xdave/xbps-src

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

INTRODUCTION
============
xbps-src - the XBPS binary package build system.

xbps-src uses ideas from other current package build systems and or
utilities such as in NetBSD/pkgsrc, Debian dpkg/deb, GNU stow, etc.
Its target OS is Linux, meant to be used in Void GNU/Linux but could be
adapted to other systems with relatively few changes (don't blame me if it
doesn't work in a random OS).

One of its advantages over other build systems is that you can build the
XBPS binary packages from any other Linux distribution matching the
target architecture, i.e Fedora x86_64 for Void GNU/Linux x86_64.

Another advantage is its support for Linux Capabilities (POSIX.1e draft standard).
With that in place `xbps-src` is able to build binary packages in chroots
without the need to use elevated permissions (superuser). This feature is
enabled by default and can be disabled by commenting out the
XBPS_USE_CAPABILITIES option from its configuration file `xbps-src.conf`.

The last highlight from xbps-src is its NRWO feature (New Rshlibs World Order)
where the run time required shared libraries (SONAMEs) by packages are guessed
automatically, thus reducing the risk for missing required run time dependencies.
This also help us to minimize the impact in SONAME major bumps, because we can
know *exactly* in advance which packages use the affected shared library.

INSTALLATION
============

To build xbps-src the libcap-devel pkg (or whatever is called in your distribution)
must be installed. Additionally the setcap(8) command is also required to set
the correct capabilities in some helpers.

Simply use the `make && make install clean` sequence to build and install it
into /usr/local by default. Some variables can be overriden thru make(1)
variables:

	- DESTDIR: empty
	- PREFIX: /usr/local by default
	- SBINDIR: PREFIX/sbin by default
	- SHAREDIR: PREFIX/share by default
	- LIBEXECDIR: PREFIX/libexec by default
	- ETCDIR: PREFIX/etc/xbps by default

Once you installed it with your desired settings you must set the proper
capabilities to the helpers, as follows with root permissions:

	$ setcap cap_sys_admin=ep LIBEXECDIR/xbps-src/capmount
	$ setcap cap_sys_admin=ep LIBEXECDIR/xbps-src/capumount
	$ setcap cap_sys_chroot=ep LIBEXECDIR/xbps-src/capchroot

See the USAGE file to know more in how to use xbps-src.

	-- Juan RP <[email protected]>