Fullpkg

From ParabolaWiki
Jump to: navigation, search

Fullpkg is script for building packages from an abs-tree from scratch. This script:

  1. Checks whether the target package has been built.
  2. Finds dependencies for the target package and check that they are at the latest version.
  3. Write a list of packages to build and how deep are they in dependencies. (eg. A depends on B, B depends on C -> A is level 0, B is level 1, C is level 2)
  4. Copy PKGBUILD and files to a build directory.
  5. Builds the packages on inverse dependence level.

1 Set up

fullpkg uses some vars from /etc/libretools.conf, you need to setup these ones:

File: /etc/libretools.conf
REPOS=(core extra ...)
ABSROOT=$WORKDIR/abslibre
FULLBUILDCMD="sudo libremakepkg -cumL -M --noconfirm -M --nocheck"

1.1 Architecture specific hooks

There are also files specific to the arch you have to install separatedly,
 # pacman -Sy libretools-mips64el
Those contains hooks specific for that architecture:
File: /etc/libretools.d/mips64el.conf
HOOKLOCALRELEASE=mipsrelease
HOOKPKGBUILDMOD=mips-add

To use arch specific hooks you need to uncomment the right field in /etc/libretools.conf:

File: /etc/libretools.conf
## These are architecture specific files.
## Uncomment them if you installed libretools-arch
#source /etc/libretools.d/mips64el.conf
#source /etc/libretools.d/x86_64.conf
#source /etc/libretools.d/i686.conf

If you use fullpkg on i686 or x86_64, you can file a feature request at the issue tracker and attach a file containing your arch specific hooks. Those will be reviewed for inclusion on libretools.

2 Usage

2.1 Which are fullpkg options

Fullpkg will always have an updated list of options wich can be shown by using
 $ fullpkg -h

2.2 Building packages using fullpkg

You need to cd to a dir wich contains a PKGBUILD for your target package and run fullpkg:

 $ cd /dir/with/PKGBUILD
 $ fullpkg [options] 

fullpkg will copy all PKGBUILDS and files for building the target package and their deps.

3 Problems with fullpkg

Report a bug on the libretools tracker.