mirror of void-packages + my own branches
Find a file
Juan RP 89f264e88c Massive changes to allow installing pkgs in a chroot.
Some changes include:
 - Xstow is not used anymore, files are copied into masterdir.
 - a new target install-chroot has been created.
 - a new meta-template xbps-base-chroot has been created required for
   the install-chroot target.
 - Removed XBPS_SYSCONFDIR, /etc is used by default.
Other changes that I cannot remember right now...

--HG--
extra : convert_revision : fb57d9dafb56aeb03cc935580172e075ce584fd5
2008-10-23 17:14:00 +02:00
helper-templates Massive changes to allow installing pkgs in a chroot. 2008-10-23 17:14:00 +02:00
templates Massive changes to allow installing pkgs in a chroot. 2008-10-23 17:14:00 +02:00
xbps-digest Major changes to not depend on cksum and db from NetBSD. 2008-10-20 16:34:27 +02:00
xbps-pkgdb xbps-pkgdb: do not hardcode rpath in Makefile. 2008-10-23 02:46:14 +02:00
.gitignore Major changes to not depend on cksum and db from NetBSD. 2008-10-20 16:34:27 +02:00
Makefile Major changes to not depend on cksum and db from NetBSD. 2008-10-20 16:34:27 +02:00
README Massive changes to allow installing pkgs in a chroot. 2008-10-23 17:14:00 +02:00
xbps.conf Massive changes to allow installing pkgs in a chroot. 2008-10-23 17:14:00 +02:00
xbps.sh Massive changes to allow installing pkgs in a chroot. 2008-10-23 17:14:00 +02:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

xbps - xtraeme's build package system.

It is a simple build package system that uses Xstow to allow packages
to be available at a master directory.

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/

------------------------------------------------------------------------------
 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.

Once that you read the "xbps.conf" file and configured it, you can start
installing packages by using the command:

	$ xbps.sh install glib

While installing your first package, if xbps couldn't find the Xstow program
specified at the configuration file with XBPS_XSTOW_CMD, the Xstow package
will be installed and "stowned".

If the package is properly installed, it will be "stowned" automatically.
``stowned´´ 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 :-)

------------------------------------------------------------------------------
 HOW TO MAKE TEMPLATES
------------------------------------------------------------------------------

A template in xbps is just a small text file with a few variables that are
required to build the package. xbps should be easy to work on, and
making templates shouldn't be too hard... if you have made any pkgsrc, it
should be trivial.

The required variables are: pkgname, build_type, extract_sufx, url
and checksum. Also there are some optional, like make_cmd, wrksrc,
configure_args, configure_env, make_build_args, make_install_args, etc.

Please take a look at the example.tmpl file located in the templates/
directory.

Also to help you creating templates and dependencies, there's a script
that will ask you some required information and will create the template
file once the distfile is downloaded: mktmpl.sh.

Try it and let me know if you have any problem or suggestion.

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