diff options
| author | emmett1 <emmett1.2miligrams@protonmail.com> | 2024-08-17 16:47:58 +0000 |
|---|---|---|
| committer | emmett1 <emmett1.2miligrams@protonmail.com> | 2024-08-17 16:47:58 +0000 |
| commit | e350d82da6b4d74d03e8c2f06ba2486e38ce3d6f (patch) | |
| tree | d4765fcf8ad35b0e952ff56c30b99928674ce82d | |
| parent | 5b846120c48e30d6e034efb9364d1bb09fa26ee8 (diff) | |
| parent | 60e1e719a99d2197d3a080d3a4907d59cb45f079 (diff) | |
| download | autils-e350d82da6b4d74d03e8c2f06ba2486e38ce3d6f.tar.gz autils-e350d82da6b4d74d03e8c2f06ba2486e38ce3d6f.zip | |
Merge pull request 'Docs for apkg, revdep and apkg.conf.' (#3) from mobinmob/autils:docs into main
Reviewed-on: https://codeberg.org/emmett1/autils/pulls/3
| -rw-r--r-- | doc/apkg.conf.md | 44 | ||||
| -rw-r--r-- | doc/apkg.md | 70 | ||||
| -rw-r--r-- | doc/revdep.md | 23 | ||||
| -rwxr-xr-x | make-man.sh | 33 |
4 files changed, 170 insertions, 0 deletions
diff --git a/doc/apkg.conf.md b/doc/apkg.conf.md new file mode 100644 index 0000000..b3b4647 --- /dev/null +++ b/doc/apkg.conf.md @@ -0,0 +1,44 @@ +# NAME + +**apkg.conf** - configuration file for apkg + +# DESCRIPTION + +**apkg.conf** is the configuration file for the **apkg** package manager for the alice linux distribution. +It resides by default under `/etc` in an alice linux installation. +The contents are sourced by the **apkg** program and are in the posix shell `key="value"` format. + +# CONFIGURATION KEYS + +- `APKG_NOPROMPT` If set, it enables non-interactive use by disabling user confirmation prompt. +- `APKG_PACKAGE_DIR` Directory where the compiled packages will reside. +- `APKG_SOURCE_DIR` Directory that will hold the downloaded sources. +- `APKG_WORK_DIR` Directory where the actual building process will take place. This happens in subdirectories which are cleaned after completion. +- `APKG_LOG` If set, it enables the creation of a log for the program output. +- `export CFLAGS="<cflags>"` Default <cflags> are *-O3 -march=x86-64 -pipe* +- `export CXXFLAGS="$CFLAGS"` +- `export NINJAJOBS="<-x>"` Replace <-x> with the number of jobs the ninja build system with use. Without this it will use the maximum amount of threads the processor suports. +- `export MAKEFLAGS="-jx"` Replace <x> with the number of jobs the make build system with use. + +EXAMPLES + +``` +### example of a valid apkg.conf ### +export CFLAGS="-O3 -march=x86-64 -pipe" +export CXXFLAGS="$CFLAGS" +export MAKEFLAGS="-j12" +export NINJAJOBS="12" +APKG_REPO="/var/lib/alicelinux/repos/core /var/lib/alicelinux/repos/extra /var/lib/alicelinux/repos/xorg /var/lib/alicelinux/repos/wayland" +APKG_PACKAGE_DIR=/var/cache/pkg +APKG_SOURCE_DIR=/var/cache/src +APKG_WORK_DIR=/var/cache/work +``` + +# AUTHORS + +emmett1 <emmett1.2miligrams@protonmail.com> Author of the program and creator of alice linux. +mobinmob <mobinmob@disroot.org> Author of the man page. + +# REPORTING BUGS + +**apkg** is in a working stage but also under heavy development. Please report and bugs/issues in the project issue tracker: https://codeberg.org/emmett1/autils/issues
\ No newline at end of file diff --git a/doc/apkg.md b/doc/apkg.md new file mode 100644 index 0000000..cc844c3 --- /dev/null +++ b/doc/apkg.md @@ -0,0 +1,70 @@ +# NAME + +**apkg** - package building tool and package manager for alice linux + +# SYNOPSIS + +**apkg** [-i] [-I] [-d] [-D] [-j] [-u] [-r] [-t] [-U ] [-f] [-o] [-p] [-s] [-h] [*pkg(s)*] + +# DESCRIPTION + +**apkg** is the package build tool and package installer, along with **spm** for the alice linux distribution. +It is written in posix shell with the goal to be simple and effective. It can consume package building templates in the abuild format +and automate the building and installing of packages. + +# OPTIONS + +Arguments for apkg are as follows: + +- **-h** Print help. +- **-i** *<pkg(s)>* Install package(s) without taking dependencies into account. Building will fail if the dependencies are not present in the system. +- **-I** *<pkg(s)>* Install package(s) with dependencies. +- **-d** *<pkg>* List only direct package dependencies +- **-D** *<pkg(s)>* List all dependencies for package(s) +- **-j** *<pkg>* List all reverse dependencies for the package (packages that depend on it). +- **-u** *<pkg(s)>* Upgrade package(s) +- **-r** *<pkg(s)>* Remove package(s) +- **-t** *<pkg(s)>* Run scripts for package(s) that update cache or dbs (mime, font cache e.t.c) +- **-U** Update system +- **-f** Force rebuild a package. +- **-o** *<pkg(s)>* Only download source for package(s), do not build and install +- **-p** *<pkg(s)>* Print full path to the package build template directory +- **-s** *<pattern>* Search for packages + +# ENVIRONMENT VARIABLES + +- `APKG_ROOT` Overrides default root location (/), where sw is installed +- `APKG_CONF` Overrides default location for the configuration file apkg.conf. The default is under /etc on an installed alice linux system. +- `APKG_NOPROMPT` If set, it enabled non-interactive use by disabling user confirmation prompt. +- `APKG_REPO` Double-quoted, space-separated list for the local directories that contain build templates. +- `APKG_PACKAGE_DIR` Directory where the compiled packages will reside. +- `APKG_SOURCE_DIR` Directory that will hold the downloaded sources. +- `APKG_WORK_DIR` Directory where the actual building process will take place. This happens in subdirectories which are cleaned after completion. +- `APKG_LOG` If set, it enables the creation of a log for the program output. + +**Note:** Usually, APKG_REPO, APKG_PACKAGE_DIR, APKG_SOURCE_DIR and APKG_WORK_DIR are declared in the apkg.conf configuration file. For more information, please see apkg.conf(5). + +# FILES + +- **apkg.conf(5)** is the default configuration file, it resides by default under /etc. +- **abuild** is the name of the package templates that apkg uses, along with relevant files in order to +build and installed packages. For example, one can look to the alice linux repos, under https://codeberg.org/emmett1/alicelinux/src/branch/main/repos + +# EXAMPLES + +`apkg -i linux` - Install the *linux* package + +`apkg -f jupp` - Force rebuild the *jupp* package. If someone tries with just `-i`, `apkg` will produce the following message +if the package is already installed: `[...] Package 'jupp' already installed.` + +`apkg -s icon` - Search for packages names that contain "icon", it will produce a list with one +package per line. + +# AUTHORS + +emmett1 <emmett1.2miligrams@protonmail.com> Author of the program and creator of alice linux. +mobinmob <mobinmob@disroot.org> Author of the man page. + +# REPORTING BUGS + +**apkg** is in a working stage but also under heavy development. Please report and bugs/issues in the project issue tracker: https://codeberg.org/emmett1/autils/issues diff --git a/doc/revdep.md b/doc/revdep.md new file mode 100644 index 0000000..fd50104 --- /dev/null +++ b/doc/revdep.md @@ -0,0 +1,23 @@ +# NAME + +**revdep** - utility to discover and rebuild reverse deps + +# DESCRIPTION + +**revdep** is a utility inspired by the gentoo program revdep-rebuild. It is written in posix shell and +it can discover programs that need to be rebuilt after library upgrades or are missing libraries. +It should probably run after any big upgrade, especially those that feature lib version bumps. + +# OPTIONS + +- **-h** Show program help. +- **-v** Verbose output of the operation. + +# REPORTING BUGS + +**apkg** is in a working stage but also under heavy development. Please report and bugs/issues in the project issue tracker: https://codeberg.org/emmett1/autils/issues + +# AUTHORS + +emmett1 <emmett1.2miligrams@protonmail.com> Author of the program and creator of alice linux. +mobinmob <mobinmob@disroot.org> Author of the man page. diff --git a/make-man.sh b/make-man.sh new file mode 100755 index 0000000..4ed2336 --- /dev/null +++ b/make-man.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +# This script is derives from the original, written for Obarun Linux distribution by Eric Vidal. +# The original is released under BSD Zero Clause licence (BSD0), and can be found at https://git.obarun.org/Obarun/66/-/blob/master/doc/make-man.sh?ref_type=heads. + + +man8='apkg revdep' + +man5='apkg.conf' + +for i in 5 8;do + if [ ! -d doc/man/man${i} ]; then + mkdir -p -m 0755 doc/man/man"${i}" || exit 1 + fi +done + +for i in ${man5}; do + lowdown -s -Tman doc/"${i}".md -o doc/man/man5/"${i}".5 || exit 1 + var=$( sed -n -e '/^.TH/p' < doc/man/man5/"${i}".5) + var=$(printf '%s' "$var" | tr '7' '5') + sed -i "s!^.TH.*!${var}!" doc/man/man5/"${i}".5 || exit 1 + sed -i '4,8d' doc/man/man5/"${i}".5 || exit 1 +done + +for i in ${man8}; do + lowdown -s -Tman doc/"${i}".md -o doc/man/man8/"${i}".8 || exit 1 + var=$( sed -n -e '/^.TH/p' < doc/man/man8/"${i}".8) + var=$(printf '%s' "$var" | tr '7' '8') + sed -i "s!^.TH.*!${var}!" doc/man/man8/"${i}".8 || exit 1 + sed -i '4,8d' doc/man/man8/"${i}".8 || exit 1 +done + +exit 0
\ No newline at end of file |