Go to file
Juan RP cc27b1a54a Added a new var for templates: only_for_archs.
This accepts a list of archs where the package makes sense. Use this
in the glibc32 pkg and restrict it to x86_64.

--HG--
extra : convert_revision : 4d64b281e1f2ab6b104d43a1f37def1ec767b0a1
2008-11-03 08:38:38 +01:00
helpers Added support for cross compiling packages on x86_64. 2008-11-03 07:12:53 +01:00
templates Added a new var for templates: only_for_archs. 2008-11-03 08:38:38 +01:00
utils xbps-pkgdb: add function to internalize plist file. 2008-10-30 08:47:00 +01:00
.gitignore Major changes to not depend on cksum and db from NetBSD. 2008-10-20 16:34:27 +02:00
Makefile Added wget package (dependency of xbps-base-chroot) 2008-10-28 12:45:30 +01:00
README Typo in previous. 2008-10-30 07:38:14 +01:00
TODO TODO: added another item about xbps-cmpver. 2008-10-29 23:48:27 +01:00
xbps.conf Added support for cross compiling packages on x86_64. 2008-11-03 07:12:53 +01:00
xbps.sh Added a new var for templates: only_for_archs. 2008-11-03 08:38:38 +01:00

README

xbps - xtraeme's build package system.

It is a simple build package system that installs packages inside of
a chroot in a destination directory. Once the package has been installed
into this directory, you can make it appear/unappear at the master directory
at any time.

xbps has been designed for Linux, and for the moment I'm not interested to
make it work on any other random OS. I've been a NetBSD developer for some
years and I do not want to come back... also the experience has helped to
me to start xbps and not to use pkgsrc, which is very portable but also
not so fast.

xbps uses proplib, a property container object library and it's almost the
same one available for NetBSD. Be sure to have it installed before using
xbps. You can get it at:

http://code.google.com/p/portableproplib/

I'm also the human maintaining the portable proplib package.

------------------------------------------------------------------------------
 HOW TO USE IT
------------------------------------------------------------------------------

Before using xbps, some required utilities need to be built and installed into
the utils/ directory. You can do this by issuing a "make" command in the
top level directory.

Once you download it, you should edit the configuration file located at the
xbps directory. By default it uses the xbps directory in your $HOME.

If XBPS_CONFIG_FILE is not set or specified from the command line with the
-c flag, it will first try to use the default location at
/usr/local/etc/xbps.conf, and as last resort in current directory.

To avoid problems with libtool and configure scripts finding stuff that is
available in the host system, you should install the xbps-base-chroot package
as the first thing once the xbps.conf file is ok.

Once xbps-base-chroot has been installed, all packages that aren't part
of this will require root permission to be used in the chroot. Think about it,
all is done at the chroot, less stuff to break with missing dependencies and
incompatibilities found by the configure scripts.

Let's explain some more about the targets that you can use. To start
installing packages you should use the install target:

	$ xbps.sh install glib

If the package is properly installed, it will be "stowned" automatically.
``stowned<65><64> means that this package is available in the master directory,
on which xpbs has copied all files from DESTDIR/<pkgname>.

To remove a currently installed (and stowned) package, you can use:

	$ xbps.sh remove glib

Please note that when you remove it, the package will also be removed
from XBPS_DESTDIR and previously "unstowned".

Summary, to stow an already installed package (into XBPS_DESTDIR/<pkgname>):

	$ xbps.sh stow glib

and to unstow an already installed (stowned) package:

	$ xbps.sh unstow glib

You can also print some stuff about any template, e.g:

	$ xbps.sh info glib

To list installed (stowned) packages, use this:

	$ xbps.sh list

To only extract the distfiles, without configuring/building/installing:

	$ xbps.sh extract foo

To not remove the build directory after successful installation:

	$ xbps.sh -C install blah

To only fetch the distfile:

	$ xbps.sh fetch blah

To only install the package, _without_ stowning it into the master directory:

	$ xbps.sh install-destdir blob

To list files installed by a package, note that package must be installed
into destination directory first and you must specify package name plus
version, i.e: vim-7.2:

	$ xbps.sh listfiles blob-2.4

That's all for now folks. I hope you find it useful, as I do.

------------------------------------------------------------------------------
 PERFORMANCE
------------------------------------------------------------------------------

xbps is really fast, trust me. That was one of my reasons to make my own
pkgsrc/ports alike system.

If you want benchmarks, here is one: building libX11 and all its dependencies
required (not included building xstow) with xbps:

	251.20s real   121.36s user    53.94s system

versus pkgsrc (make install clean clean-depends and digest previously
installed):

	450.41s real   167.58s user    97.31s system

That's more or less 40% faster! that's the price you pay for having those
wrappers in pkgsrc that aren't very useful on NetBSD :-)

------------------------------------------------------------------------------
	Juan Romero Pardines <xtraeme@gmail.com>