diff options
author | kx <kx@radix.pro> | 2023-04-11 01:18:34 +0300 |
---|---|---|
committer | kx <kx@radix.pro> | 2023-04-11 01:18:34 +0300 |
commit | 11c606a6888dc269ef018359469a7276c3ad8f67 (patch) | |
tree | 368294bb7cadcd5c44ccd082187d6a4433401027 /README.md | |
parent | 8c55752ed5b29a22fdab9faaa6ff27b7cafa6791 (diff) | |
download | pkgtools-11c606a6888dc269ef018359469a7276c3ad8f67.tar.xz |
Version 0.2.1pkgtools-0.2.1
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..571b711 --- /dev/null +++ b/README.md @@ -0,0 +1,146 @@ + +# [Package Tools](https://radix.pro/build-system/pkgtool/) + +**pkgtools** is a set of programs to create, install, remove, and update +packages on the root file system. + +## Table of contents + +* [Bootstrap script](#bootstrap-script) +* [Install](#install) +* [Configurations](#configurations) +* [Cross compilation example](#cross-compilation-example) +* [Dialog](#dialog) +* [License](#license) + + +## Bootstrap script + +The **bootstrap** script aspecialy created for autotools install automation. +To install autotools into source directory on build machine (i.e. when +**build == host**) the bootstrap script can be run without arguments. In this +case autotools will be installed from current root file system. + +For the cross environment the **--target-dest-dir** options allows to install +some stuf from development root file system: + +```Bash +$ TARGET_DEST_DIR=/home/developer/prog/trunk-672/dist/.s9xx-glibc/enybox-x2 \ + ./bootstrap --target-dest-dir=${TARGET_DEST_DIR} +``` + +For example, in this case the **dialog.m4** script will be taken from the +**${TARGET_DEST_DIR}/usr/share/aclocal** directory. + + +## Install + +On the build machine the installation process seems like that + +```Bash +$ tar xJvf pkgtools-0.2.1.tar.xz +$ mkdir build +$ cd build +$ ../pkgtools-0.2.1/configure --prefix=/usr +$ make +$ make install DESTDIR=$PKG exec_prefix=/ +``` + +Note that the **exec_prefix=/** used for canonical installation of +pkgtools utilities into **${DESTDIR}/sbin/** directory instead of +**${DESTDIR}/usr/sbin/** which is not corresponds to +[**FHS**](https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf). + + +## Configurations + +Pkgtools support **GnuPG** signing of packages and also simple +user interface based on **dialog** library. + +#### OpenPGP support options: + +```Bash + --with-gpg2=no + --with-gpg2=yes + --with-gpg2=${TARGET_DEST_DIR}/usr +``` + +If the **--with-gpg2** option is not specified then **GnuPG** support +is disabled. + +#### Dialog options: + +```Bash + --with-dialog=no + --with-dialog=yes + --with-dialog=${TARGET_DEST_DIR}/usr + --with-dialog-test=no + --with-dialog-test=yes +``` + +Dialog support is enabled by default. The option **--with-dialog=no** +disables the dialog support. + + +#### Distribution options: + +```Bash + --with-distro-name[=NAME] The name of distribution + --with-distro-version[=VERSION] The distribution version +``` + +To show all available options you can make use of + +```Bash +$ ./configure --help +``` + + +## Cross compilation example + +```Bash +TARGET_DEST_DIR=/home/developer/prog/trunk-672/dist/.s9xx-glibc/enybox-x2 +TOOLCHAIN_PATH=/opt/toolchains/aarch64-S9XX-linux-glibc/1.1.4/bin +TARGET=aarch64-s9xx-linux-gnu + +DIALOG_CONFIG=${TARGET_DEST_DIR}/usr/bin/dialog-config \ +STRIP="${TOOLCHAIN_PATH}/${TARGET}-strip" \ +CC="${TOOLCHAIN_PATH}/${TARGET}-gcc --sysroot=${TARGET_DEST_DIR}" \ +./configure --prefix=/usr + --build=x86_64-pc-linux-gnu \ + --host=${TARGET} \ + --with-gpg2=${TARGET_DEST_DIR}/usr \ + --with-dialog=${TARGET_DEST_DIR}/usr \ + --with-dialog-test=yes +``` + +Also we can make use of additional variables such as **CFLAGS**, **LDFLAGS**: + +```Bash +LDFLAGS="-L${TARGET_DEST_DIR}/lib -L${TARGET_DEST_DIR}/usr/lib" +TARGET_INCPATH="-L${TARGET_DEST_DIR}/usr/include" +CFLAGS="${TARGET_INCPATH}" +CPPFLAGS="${TARGET_INCPATH}" +``` + + +## [Dialog](https://invisible-island.net/dialog/dialog.html) + +The original **dialog** sources have some bugs such as memory leaks and also +the **dialog** package doesn't have correct autotools scripts. If you want to +use **libdialog** with **pkgtools** then you have to install the dialog package +with our [patch](doc/dialog/dialog-1.3-20210621.patch). This patch provides +**dialog.m4** and more convenient **dialog-config** script for +[dialog-1.3-20210621.tgz](ftp://ftp.invisible-island.net/dialog/dialog-1.3-20210621.tgz) +source package. + + +## [License](https://radix.pro/legal/licenses/) + +Code and documentation copyright 2009-2023 Andrey V. Kosteltsev.<br/> +Code and documentation released under [the **Radix.pro** License](https://cgit.radix.pro/radix/pkgtools.git/trunk/LICENSE). + +#### The text of this license can be found on our website at: + +> [https://radix.pro/licenses/LICENSE-1.0-en_US.txt](https://radix.pro/licenses/LICENSE-1.0-en_US.txt)<br/> +> [https://radix.pro/licenses/LICENSE-1.0-en_US.txt](https://radix.pro/licenses/LICENSE-1.0-ru_RU.txt) |