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: ------------------------------------------------------------------------------------------- | build dependency | parabola package | notes | |------------------|------------------|---------------------------------------------------| | devtools-par | n/a | https://git.parabola.nu/packages/devtools-par.git | | GNU Make | 'make' | strict requirement of the AutoThing build system | | sed | 'sed' | must support Extended Regular Expressions | | ronn | 'ruby-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. The dependencies of the Parabola GNU/Linux 'parabola-base' meta-package, are assumed to be implicit dependencies of this script. If something isn't used now, that doesn't mean it won't be in the future. Additionally, the following per-subpackage dependencies are needed: ---------------------------------------------------------------------------------------------- | librelib dependency | parabola package | usage | |-----------------------|-------------------|------------------------------------------------| | wget | 'wget' | (optional) used by `blacklist.sh` | ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- | gitget dependency | parabola package | usage | |-----------------------|-------------------|------------------------------------------------| | git | 'git' | core functionality | | librelib | provided | ubiquitous use of `librelib` confs and helpers | ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- | libretools dependency | parabola package | usage | |-----------------------|-------------------|------------------------------------------------| | arch-install-scripts | 'base' | used by `mkarchroot`->`pacstrap` | | binutils | 'binutils' | used by `libremakepkg`->`makepkg`->`strip` | | expac | 'expac' | used by `libredbdiff` | | fakeroot | 'fakeroot' | used by `libremakepkg`->`makepkg`->`fakeroot` | | gitget | provided | used by `createworkdir` | | librelib | provided | ubiquitous use of `librelib` confs and helpers | | GNU Make | 'make' | used by `librefetch` | | pacman >= v5.0 | 'base' | used by `libremakepkg`->`makepkg` | | pacman-contrib | 'pacman-contrib' | used by `librefetch`->`updpkgsums` | | namcap | 'namcap' | used by `libremakepkg` (currently dissabled) | | rsync | 'rsync' | used by `librerelease`,`makechrootpkg.sh` | | ssh client | 'openssh' | used by `librerelease` | | subversion | 'subversion' | used by `diff-unfree` | | systemd | 'libre/base' | used by arch-nspawn->systemd-nspawn | | chroot-nspawn | 'nonsystemd/base' | used by arch-nspawn->systemd-nspawn | | tokyocabinet | 'tokyocabinet' | used by `toru` | ---------------------------------------------------------------------------------------------- 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 sub-packages you can build and install. - gitget -- A git downloader - librelib -- Generic libraries included - libretools -- The main libretools package This is done by running: $ make build- # make install- In addition to `build-*` and `install-*`, there are these general activities: - `copy` -- copy necessary files from the devtools-par source code - `build` -- build all programs and files - `clean` -- remove generated files - `install` -- install everything