aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremmett1 <emmett1.2miligrams@protonmail.com>2024-08-17 16:47:58 +0000
committeremmett1 <emmett1.2miligrams@protonmail.com>2024-08-17 16:47:58 +0000
commite350d82da6b4d74d03e8c2f06ba2486e38ce3d6f (patch)
treed4765fcf8ad35b0e952ff56c30b99928674ce82d
parent5b846120c48e30d6e034efb9364d1bb09fa26ee8 (diff)
parent60e1e719a99d2197d3a080d3a4907d59cb45f079 (diff)
downloadautils-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.md44
-rw-r--r--doc/apkg.md70
-rw-r--r--doc/revdep.md23
-rwxr-xr-xmake-man.sh33
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