Go to file
Juan RP 1ebe5e6b5e Mega-commit removing deps in xbps-base-chroot.
xbps-src:
  * ALWAYS use the static bins, to avoid breakage in the chroot.
  * Remove XBPS_FETCH_CMD. Use xbps-fetch (static) now that it's
    useful to download all distfiles in xbps-base-system.
  * Use busybox in the chroot and create links in /usr/local/bin
    at creation time. This helps to remove many packages that
    had problems with host/target libs (acl, attr, libarchive, etc).

build templates:
  * Add explicit gettext and texinfo build dependencies in all
    packages that need them, because they aren't built anymore
    by xbps-base-chroot.
  * Fixed some packages using build_style=gnu_makefile, that were
    broken because pre/post_configure() is not executed for a while,
    they should use pre/post_build() instead.

--HG--
extra : convert_revision : 0eaaf4917fd824710d0895e0c984bbc236b0cdf8
2009-10-30 22:14:09 +01:00
common common/fetch_sites.sh: added MOZILLA_SITE. 2009-10-12 22:39:58 +02:00
helpers Added a helper for installing python modules. 2009-10-18 09:25:16 +02:00
templates Mega-commit removing deps in xbps-base-chroot. 2009-10-30 22:14:09 +01:00
triggers xbps-base-files: a fix for the initramfs-tools trigger. 2009-10-09 03:18:01 +02:00
xbps-src Mega-commit removing deps in xbps-base-chroot. 2009-10-30 22:14:09 +01:00
.gitignore .gitignore: ignore static lib. 2009-08-12 07:14:23 +02:00
Makefile Added xbps-src and its associated code again. 2009-10-18 11:17:26 +02:00
README Mega-commit removing deps in xbps-base-chroot. 2009-10-30 22:14:09 +01:00
TODO TODO: pancake "I need mercurial and vala". 2009-10-19 19:24:40 +02:00

------------------------------------------------------------------------------
 REQUIREMENTS
------------------------------------------------------------------------------

The following software is required in the host system to build XBPS
binary packages:

	* GNU awk
	* GNU bash
	* GNU bison
	* GNU gcc c++ (development package)
	* GNU gettext (development package)
	* GNU make
	* GNU patch
	* GNU texinfo
	* fakeroot
	* perl
	* sudo

Run "make install clean" at the top level directory, xbps-src and
its shell utilities will be installed into /usr/local by default (can be
changed by setting PREFIX and DESTDIR).

DONT FORGET TO EDIT "$PREFIX/etc/xbps-src.conf" BEFORE USING IT!

------------------------------------------------------------------------------
 HOW TO BUILD/HANDLE PACKAGES FROM SOURCE
------------------------------------------------------------------------------

Before using xbps-src, some required utilities need to be built and installed
into $(PREFIX); by default they are installed into /usr/local.
You can do this by issuing "make" and "make install" as root in the top
level directory.

If configuration file is not specified from the command line with the
-c flag, it will first try to use the default location at
/usr/local/etc/xbps-src.conf (or the installation prefix that was specified
to the make(1) command), and as last resort in the etc directory of the
current directory.

To avoid problems with libtool and configure scripts finding stuff that is
available in the host system, almost all packages must be built inside of a
chroot. So the first thing would be to create the binary packages with:

	$ xbps-src install xbps-base-chroot

This will build all required packages via fakeroot in masterdir, therefore you
can run it as normal user. Next commands will require super-user privileges
and all package handling will be done within the chroot. I believe it's the
most easier and faster way to handle clean dependencies; another reason would
be that xbps packages are meant to be used in a system and not just for
ordinary users. So once all packages are built, you can create and enter
to the chroot with:

	$ sudo xbps-src chroot

Press Control + D to exit from the chroot. The following targets will require
to be done in the chroot:

	build, configure, install, install-destdir, remove, stow and unstow.

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

	$ sudo xbps-src install glib

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:

	$ sudo xbps-src remove glib

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

To stow an already installed package (from XBPS_DESTDIR/<pkgname>):

	$ sudo xbps-src stow glib

and to unstow an already installed (stowned) package:

	$ sudo xbps-src unstow glib

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

	$ xbps-src info glib

To list installed (stowned) packages, use this:

	$ xbps-src list

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

	$ xbps-src extract foo

To not remove the build directory after successful installation:

	$ sudo xbps-src -C install blah

To only fetch the distfile:

	$ xbps-src fetch blah

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

	$ sudo xbps-src install-destdir blob

To list files installed by a package, note that package must be installed
into destination directory first:

	$ xbps-src listfiles blob

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