Installation of libretools is pretty straight-forward: $ make # make install As a caveat, by default, if the directory `devtools-par` exists in the same directory as the `libretools-${version}` directory, and contains newer files than the libretools directory, they will be copied into the libretools directory. See INSTALL-VCS for more details. Dependencies ------------ Unlike a lot of software, run-time dependencies are not required at build-time. Libretools is mostly shell scripts. It very specifically targets Parabola GNU/Linux-libre; there are a lot of dependencies, most of which are undocumented. Switching away from a GNU user-land is bound to cause issues. ## Build dependencies The "unusual" build-time dependencies are: - GNU Make -- other `make`s will not work. - GNU sed -- must support `-r` for ERE; BSD sed uses `-E` for this purpose. - Emacs 24.4+ -- `emacs --batch` is used to use Emacs Lisp to process some text. GNU Emacs 24.4 introduced a new `advice-add` system which we depend on. - ronn -- A markdown-to-manpage converter At this time, the build system does not support not building the documentation; ronn is required. Additionally, other usual "core utilities" are required: cat, chmod, cp, echo, false, find, install, ln, msguniq, rm, tr, xgettext Also, `/bin/sh` must support `{brace,expansion}`. If it doesn't, find a shell that does, and configure `make` to use it. Though, because libretools is mostly shell scripts, if you deviate too much from a GNU command-line environment, I suspect that you will run into more issues. If I were targeting anything other than Parabola, this would be a bigger issue. ## Test suite dependencies If you wish to run the test suite, you will need the "roundup" shell unit testing program. On Parabola GNU/Linux-libre it is called "sh-roundup". If your operating system doesn't have it, it is available at . ## Run-time dependencies Being mostly shell scripts, many external program are used. Anything that is included when installing the `base` package group on Parabola GNU/Linux, I consider an implicit dependency. If something isn't used now, that doesn't mean it won't be in the future. On top of that, the following dependencies are also needed: librelib subpackage: - wget gitget subpackage: - librelib (provided) - git xbs subpackage: - gitget (provided) - librelib (provided) - subversion (only for the 'abs' module) main libretools subpackage: - librelib (provided) - xbs (provided) - pacman 5.0 - arch-install-scripts - GNU Make (only needed for `librefetch`) - ssh client (OpenSSH, only needed for `librerelease`) - rsync - systemd-nspawn (for the chroot tools) - tokyocabinet Configuration ------------- This is not a GNU package, there is no `./configure` script. There are two ways to set configuration variables: 1. Edit config.mk 2. Pass `VARIABLE=VALUE` to `make` The configuration variables mostly match GNU packages, but default values differ; libretools installs to `prefix=/usr` by default instead of GNU's `prefix=/usr/local`. Building and installing subpackages ----------------------------------- There are several subpackages you can build and install. This is done by running: $ make build-${package} # make install-${package} respectively. In addition to `build` and `install`, the activities you can do are: - `copy` -- copy necessary files from the devtools-par source code - `build` -- build all programs and files - `install` -- install everything - `clean` -- remove generated files The subpackages you can run these on are: - libretools -- The main libretools package - librelib -- Generic libraries included - gitget -- A git downloader - xbs -- Tools for dealing with differences between ABS/ABSLibre/PBS