aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authoremmett1 <emmett1.2miligrams@protonmail.com>2024-12-22 03:19:44 +0800
committeremmett1 <emmett1.2miligrams@protonmail.com>2024-12-22 03:19:44 +0800
commit7702b15c4ccd839932ad1378cacb7deec67c7d0c (patch)
tree8f3ca49e8c1daef47bc627c51f03f02d8deaa492 /doc
parentb4f8269c034d67612f3054e5cc7b4da30d3bd380 (diff)
downloadautils-7702b15c4ccd839932ad1378cacb7deec67c7d0c.tar.gz
autils-7702b15c4ccd839932ad1378cacb7deec67c7d0c.zip
updated some docs
Diffstat (limited to 'doc')
-rw-r--r--doc/abuild.readme100
-rw-r--r--doc/apkg.conf.md45
-rw-r--r--doc/apkg.conf.readme41
-rw-r--r--doc/apkg.md72
-rw-r--r--doc/defaultbuildopts87
-rw-r--r--doc/man/man5/apkg.conf.583
-rw-r--r--doc/man/man8/apkg.8180
-rw-r--r--doc/man/man8/revdep.832
-rw-r--r--doc/postinstall.readme3
-rw-r--r--doc/preinstall.readme3
-rw-r--r--doc/readme34
-rw-r--r--doc/revdep.md29
12 files changed, 268 insertions, 441 deletions
diff --git a/doc/abuild.readme b/doc/abuild.readme
new file mode 100644
index 0000000..f5b6bb1
--- /dev/null
+++ b/doc/abuild.readme
@@ -0,0 +1,100 @@
+# This is template file for abuild with explanations
+# you can use this template as base for your package abuild
+# all commented lines can be removed to keep it simple and clean.
+# uncomment necessary optional variables/functions as needed
+
+# 'name', 'version' and 'release' is required as it will be used in package database
+# must be the same as directory name.
+name=mypkg
+
+# should use version number from package upstream as possible
+version=1.2.3
+
+# does not follow any number from package upstream
+# must be increment number from 1
+# must reset to 1 when 'version' is changed
+# must not contain any character other than increment number from 1
+# can be use to bump package when package need rebuild without source changed
+release=1
+
+# if no source defined, empty package will be created, good for making meta packages
+# must use '$name' and '$version' variable so updating packages will be easier
+# 4 format acceptable can be used:
+# * <url> - just regular source tarball url
+# * <tarball name>::<url> - good to use when upstream source tarball name is not in proper format
+# * <url>::noextract - to skip extracting the source tarball
+# * <filename> - when its not a url, the <filename> is expected exist inside package abuild recipe directory
+#source="https://anyurl.com/$name-$version.tar.gz
+ $name-$version.tar.gz::https://anyurl.com/$version.tar.gz
+ https://anyurl.com/$name-$version.tar.gz::noextract
+ file"
+
+# placed runit service with proper name in /etc/sv
+# this is acceptable name for runit service file:
+# * run - /etc/sv/$name/run
+# * <whatevername> - /etc/sv/<whatevername>/run
+# * <whatevername>.run - /etc/sv/<whatevername>/run
+# * finish - /etc/sv/$name/finish
+# * <whatevername>.finish - /etc/sv/<whatevername>/finish
+#sv="run <whatevername>.run <whatevername>
+ finish <whatevername>.finish"
+
+# auto build system already use regular options like --prefix, --sysconfdir, --libdir and etc
+# use this to add the optional opts or to override the one in defaults (see 'defaultbuildopts' file)
+#build_opt=""
+
+# skipping auto apply patch
+#skip_patch=1
+
+# define patch opts to use other than default (-p1)
+#patch_opt="-p1"
+
+# keep static libraries (*.a) in packages
+#keep_static=1
+
+# keep libtool files (*.la) in packages
+#keep_libtool=1
+
+# keep locales in packages (/usr/share/locale and /usr/lib/locale)
+#keep_locale=1
+
+# keep documentations in packages (/usr/share/doc)
+#keep_doc=1
+
+# use this to force which build_type to use (if available)
+# by default build_type will be automatically detected
+# list available build_type (in order when autodetect)
+# * meson_build
+# * configure_build
+# * cmake_build
+# * python_build
+# * perlmodule_build
+# * makefile_build
+#build_type=""
+
+# override auto build system by using 'build()', 'prebuild()', and/or 'postbuild()' function
+# NOTE: when 'build()' is used, 'prebuild()' and 'postbuild()' will be ignored
+# theres 2 variable can be used in these function
+# * $PKG - is fakeroot location where all package files is installed before packaging
+# * $SRC - is where source is extracted
+#prebuild() {
+# # do whatever needed before compiling
+# # eg: fix whatever bug
+# sed -i 's/need to changed/to this/g' src/whateverfile
+#}
+#
+#postbuild() {
+# # do whatever needed after files installed to $PKG, before packaging occur
+# # eg: move binary to correct location
+# mkdir -p $PKG/usr/sbin
+# mv $PKG/usr/bin/binary $PKG/usr/sbin
+#}
+#
+#build() {
+# sed -i 's/need to changed/to this/g' src/whateverfile
+# ./configure --prefix=/usr
+# make
+# make DESTDIR=$PKG install
+# mkdir -p $PKG/usr/sbin
+# mv $PKG/usr/bin/binary $PKG/usr/sbin
+#}
diff --git a/doc/apkg.conf.md b/doc/apkg.conf.md
deleted file mode 100644
index d4aa590..0000000
--- a/doc/apkg.conf.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 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
diff --git a/doc/apkg.conf.readme b/doc/apkg.conf.readme
new file mode 100644
index 0000000..dd33863
--- /dev/null
+++ b/doc/apkg.conf.readme
@@ -0,0 +1,41 @@
+# this is configuration file for 'apkg' located at '/etc/apkg.conf'
+# this file will get sourced before reading any package abuild recipe
+#
+# its good to export some compiler flags here
+#export CFLAGS="-O3 -march=x86-64 -pipe"
+#export CXXFLAGS="$CFLAGS"
+#export JOBS=$(nproc)
+#export MAKEFLAGS=-j$JOBS
+#export NINJAJOBS=$JOBS
+
+# repo path that contains package abuild recipe
+# the order is matter, which package found first will take precedence
+#APKG_REPO="<path to repo> <path to next repo> <and so on>"
+
+# path to prebuilt packages
+# if this not use, package will built inside package build recipe directory instead
+#APKG_PACKAGE_DIR=<path to package directory>
+
+# path to source tarball
+# if this not use, source tarball will fetched into package build recipe directory instead
+APKG_SOURCE_DIR=<path to source directory>
+
+# working directory path, where source is extracted and fakeroot location before packaging
+#APKG_WORK_DIR=<path to working directory>
+
+# keep source when build failed, good to examine what causing build failed
+#APKG_KEEP_WORKDIR=1
+
+# skip user prompt when using '-I' and '-U' options (disable interactive mode, good to use in scripting)
+#APKG_NOPROMPT=1
+
+# you can define and export whatever needed variable here as long its safe and not conflicting with other important
+# build variable, example, keep_* can be used here to set globally
+#keep_static=1
+#keep_libtool=1
+#keep_locale=1
+#keep_doc=1
+
+# you can also define ccache variable here to speed up package rebuild (required 'ccache' package installed)
+#export PATH=/usr/lib/ccache:$PATH
+#export CCACHE_DIR=/var/cache/ccache
diff --git a/doc/apkg.md b/doc/apkg.md
deleted file mode 100644
index a692d1e..0000000
--- a/doc/apkg.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# 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] [-g] [-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
-- **-g** *<pkg>* Update or generate checksum(s) for the package source files.
-
-# 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/defaultbuildopts b/doc/defaultbuildopts
new file mode 100644
index 0000000..2918236
--- /dev/null
+++ b/doc/defaultbuildopts
@@ -0,0 +1,87 @@
+# this file no needed in package build recipe
+# this file will just show what auto build system use for build options
+
+1 - meson_build:
+ meson setup \
+ -Dprefix=/usr \
+ -Dlibdir=/usr/lib \
+ -Dincludedir=/usr/include \
+ -Ddatadir=/usr/share \
+ -Dmandir=/usr/share/man \
+ -Dinfodir=/usr/share/info \
+ -Dlocaledir=/usr/share/locale \
+ -Dsysconfdir=/etc \
+ -Dlocalstatedir=/var \
+ -Dsharedstatedir=/var/lib \
+ -Dbuildtype=plain \
+ -Dauto_features=auto \
+ -Dwrap_mode=nodownload \
+ -Db_lto=true \
+ -Db_pie=true \
+ $build_opt \
+ build
+ ninja -C build
+ DESTDIR=$PKG meson install -C build
+
+2 - configure_build:
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libdir=/usr/lib \
+ --infodir=/usr/share/info \
+ --mandir=/usr/share/man \
+ $build_opt
+ make
+ make DESTDIR=$PKG install
+
+3 - cmake_build:
+ mkdir -p cmakebuild
+ cd cmakebuild
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DFETCHCONTENT_FULLY_DISCONNECTED=ON \
+ -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \
+ -DCMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \
+ $build_opt \
+ -B build ..
+ if [ -f build.ninja ]; then
+ ninja
+ DESTDIR=$PKG ninja install
+ else
+ cmake --build build
+ DESTDIR=$PKG cmake --install build
+ fi
+
+4 - python_build:
+ python3 setup.py build
+ python3 setup.py install --prefix=/usr --root=$PKG --optimize=1 $build_opt
+
+5 - perlmodule_build:
+ perl Makefile.PL
+ make
+ make DESTDIR=$PKG install
+
+6 - makefile_build:
+ make \
+ PREFIX=/usr \
+ prefix=/usr \
+ SYSCONFDIR=/etc \
+ sysconfdir=/etc \
+ MANDIR=/usr/share/man \
+ mandir=/usr/share/man \
+ LIBDIR=/usr/lib \
+ PKGCONFIGDIR=/usr/lib/pkgconfig
+ make \
+ PREFIX=/usr \
+ prefix=/usr \
+ SYSCONFDIR=/etc \
+ sysconfdir=/etc \
+ MANDIR=/usr/share/man \
+ mandir=/usr/share/man \
+ LIBDIR=/usr/lib \
+ PKGCONFIGDIR=/usr/lib/pkgconfig \
+ DESTDIR=$PKG install
diff --git a/doc/man/man5/apkg.conf.5 b/doc/man/man5/apkg.conf.5
deleted file mode 100644
index 8047562..0000000
--- a/doc/man/man5/apkg.conf.5
+++ /dev/null
@@ -1,83 +0,0 @@
-.\" -*- mode: troff; coding: utf-8 -*-
-.TH "" "5" ""
-.SH
-.LP
-\fBapkg.conf\fR is the configuration file for the \fBapkg\fR package manager for the alice linux distribution.
-It resides by default under \f(CR/etc\fR in an alice linux installation.
-The contents are sourced by the \fBapkg\fR program and are in the posix shell \f(CRkey=\(dqvalue\(dq\fR format.
-.SH
-CONFIGURATION KEYS
-.IP "\(bu" 3
-\f(CRAPKG_NOPROMPT\fR If set, it enables non-interactive use by disabling user confirmation prompt.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_PACKAGE_DIR\fR Directory where the compiled packages will reside.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_SOURCE_DIR\fR Directory that will hold the downloaded sources.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_WORK_DIR\fR Directory where the actual building process will take place. This happens in subdirectories which are cleaned after completion.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_LOG\fR If set, it enables the creation of a log for the program output.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRexport CFLAGS=\(dq<cflags>\(dq\fR Default are \fI-O3 -march=x86-64 -pipe\fR
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRexport CXXFLAGS=\(dq$CFLAGS\(dq\fR
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRexport NINJAJOBS=\(dq<-x>\(dq\fR 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.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRexport MAKEFLAGS=\(dq-jx\(dq\fR Replace with the number of jobs the make build system with use.
-.LP
-EXAMPLES
-.LP
-.EX
-### example of a valid apkg.conf ###
-export CFLAGS=\(dq-O3 -march=x86-64 -pipe\(dq
-export CXXFLAGS=\(dq$CFLAGS\(dq
-export MAKEFLAGS=\(dq-j12\(dq
-export NINJAJOBS=\(dq12\(dq
-APKG_REPO=\(dq/var/lib/alicelinux/repos/core /var/lib/alicelinux/repos/extra /var/lib/alicelinux/repos/xorg /var/lib/alicelinux/repos/wayland\(dq
-APKG_PACKAGE_DIR=/var/cache/pkg
-APKG_SOURCE_DIR=/var/cache/src
-APKG_WORK_DIR=/var/cache/work
-.EE
-.SH
-AUTHORS
-.LP
-emmett1 \fIemmett1.2miligrams@protonmail.com\fR Author of the program and creator of alice linux.
-.PP
-mobinmob \fImobinmob@disroot.org\fR Author of the man page.
-.SH
-REPORTING BUGS
-.LP
-\fBapkg\fR is in a working stage but also under heavy development. Please report and bugs/issues in the project issue tracker: \fIhttps://codeberg.org/emmett1/autils/issues\fR
diff --git a/doc/man/man8/apkg.8 b/doc/man/man8/apkg.8
deleted file mode 100644
index 5b46f82..0000000
--- a/doc/man/man8/apkg.8
+++ /dev/null
@@ -1,180 +0,0 @@
-.\" -*- mode: troff; coding: utf-8 -*-
-.TH "" "8" ""
-.SH
-.LP
-\fBapkg\fR [-i] [-I] [-d] [-D] [-j] [-u] [-r] [-t] [-U ] [-f] [-o] [-p] [-s] [-g] [-h] [\fIpkg(s)\fR]
-.SH
-DESCRIPTION
-.LP
-\fBapkg\fR is the package build tool and package installer, along with \fBspm\fR 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.
-.SH
-OPTIONS
-.LP
-Arguments for apkg are as follows:
-.IP "\(bu" 3
-\fB-h\fR Print help.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-i\fR \fI\fR Install package(s) without taking dependencies into account. Building will fail if the dependencies are not present in the system.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-I\fR \fI\fR Install package(s) with dependencies.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-d\fR \fI\fR List only direct package dependencies
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-D\fR \fI\fR List all dependencies for package(s)
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-j\fR \fI\fR List all reverse dependencies for the package (packages that depend on it).
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-u\fR \fI\fR Upgrade package(s)
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-r\fR \fI\fR Remove package(s)
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-t\fR \fI\fR Run scripts for package(s) that update cache or dbs (mime, font cache e.t.c)
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-U\fR Update system
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-f\fR Force rebuild a package.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-o\fR \fI\fR Only download source for package(s), do not build and install
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-p\fR \fI\fR Print full path to the package build template directory
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-s\fR \fI\fR Search for packages
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-g\fR \fI\fR Update or generate checksum(s) for the package source files.
-.SH
-ENVIRONMENT VARIABLES
-.IP "\(bu" 3
-\f(CRAPKG_ROOT\fR Overrides default root location (/), where sw is installed
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_CONF\fR Overrides default location for the configuration file apkg.conf. The default is under /etc on an installed alice linux system.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_NOPROMPT\fR If set, it enabled non-interactive use by disabling user confirmation prompt.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_REPO\fR Double-quoted, space-separated list for the local directories that contain build templates.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_PACKAGE_DIR\fR Directory where the compiled packages will reside.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_SOURCE_DIR\fR Directory that will hold the downloaded sources.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_WORK_DIR\fR Directory where the actual building process will take place. This happens in subdirectories which are cleaned after completion.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\f(CRAPKG_LOG\fR If set, it enables the creation of a log for the program output.
-.LP
-\fBNote:\fR Usually, APKG\fIREPO, APKG\fRPACKAGE\fIDIR, APKG\fRSOURCE\fIDIR and APKG\fRWORK_DIR are declared in the apkg.conf configuration file. For more information, please see apkg.conf(5).
-.SH
-FILES
-.IP "\(bu" 3
-\fBapkg.conf(5)\fR is the default configuration file, it resides by default under /etc.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fBabuild\fR 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 \fIhttps://codeberg.org/emmett1/alicelinux/src/branch/main/repos\fR
-.SH
-EXAMPLES
-.LP
-\f(CRapkg -i linux\fR - Install the \fIlinux\fR package
-.PP
-\f(CRapkg -f jupp\fR - Force rebuild the \fIjupp\fR package. If someone tries with just \f(CR-i\fR, \f(CRapkg\fR will produce the following message
-if the package is already installed: \f(CR[...] Package 'jupp' already installed.\fR
-.PP
-\f(CRapkg -s icon\fR - Search for packages names that contain \(lqicon\(rq, it will produce a list with one
-package per line.
-.SH
-AUTHORS
-.LP
-emmett1 \fIemmett1.2miligrams@protonmail.com\fR Author of the program and creator of alice linux.
-.PP
-mobinmob \fImobinmob@disroot.org\fR Author of the man page.
-.SH
-REPORTING BUGS
-.LP
-\fBapkg\fR is in a working stage but also under heavy development. Please report and bugs/issues in the project issue tracker: \fIhttps://codeberg.org/emmett1/autils/issues\fR
diff --git a/doc/man/man8/revdep.8 b/doc/man/man8/revdep.8
deleted file mode 100644
index b8dc1f1..0000000
--- a/doc/man/man8/revdep.8
+++ /dev/null
@@ -1,32 +0,0 @@
-.\" -*- mode: troff; coding: utf-8 -*-
-.TH "" "8" ""
-.SH
-.LP
-\fBrevdep\fR 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.
-.SH
-OPTIONS
-.IP "\(bu" 3
-\fB-h\fR Show program help.
-.if n \
-.sp -1
-.if t \
-.sp -0.25v
-.IP "\(bu" 3
-\fB-v\fR Verbose output of the operation.
-.SH
-NOTE
-.LP
-\fBrevdep\fR does not automatically rebuild broken packages or their dependencies. You need to
-use apkg for these operations.
-.SH
-REPORTING BUGS
-.LP
-\fBapkg\fR is in a working stage but also under heavy development. Please report and bugs/issues in the project issue tracker: \fIhttps://codeberg.org/emmett1/autils/issues\fR
-.SH
-AUTHORS
-.LP
-emmett1 \fIemmett1.2miligrams@protonmail.com\fR Author of the program and creator of alice linux.
-.PP
-mobinmob \fImobinmob@disroot.org\fR Author of the man page.
diff --git a/doc/postinstall.readme b/doc/postinstall.readme
new file mode 100644
index 0000000..d9fe86c
--- /dev/null
+++ b/doc/postinstall.readme
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+# whatever command need to after package installed into system
diff --git a/doc/preinstall.readme b/doc/preinstall.readme
new file mode 100644
index 0000000..be52b7a
--- /dev/null
+++ b/doc/preinstall.readme
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+# whatever command need to run before build/install package
diff --git a/doc/readme b/doc/readme
new file mode 100644
index 0000000..86f5970
--- /dev/null
+++ b/doc/readme
@@ -0,0 +1,34 @@
+abuild recipe guidance
+======================
+
+- please read all availabe *.readme files
+
+abuild recipe tree
+------------------
+name - directory name, must be same as 'name' variable in abuild
+ |- abuild - package recipe (required)
+ |- preinstall - pre installation script (optional)
+ |- postinstall - post installation script (optional)
+ |- depends - dependencies list, one package per line (optional)
+ |- .checksum - source's b3sum, auto generated if not exist, can be manually generated using 'apkg -g'
+ \- .files - packages file list, will be generated after packaging, can be manually generated using 'apkg -k'
+
+building package
+----------------
+
+- run 'apkg' inside package recipe directory.
+ or
+- run 'apkg <package name>' if package recipe is created inside APKG_REPO directory (you can run 'apkg -p <package name>' to
+ print <package name>'s path if its in APKG_REPO path).
+
+installing package
+------------------
+
+- run 'apkg -i' or 'apkg -i <package name>' (same case as above).
+ or
+- run 'spm -i <path to prebuilt package file>' directly (installing this way will not execute pre/postinstall script and will
+ not trigger system database updates, you recomended to run 'apkg -t' afterwards)
+
+NOTE:
+- 'apkg -t' will update font cache, mime database, desktop database, gtkimodules, glib schema, giomodules and gdkpixbuf cache.
+- this trigger will automatically detected on which packages need to run.
diff --git a/doc/revdep.md b/doc/revdep.md
deleted file mode 100644
index 6f23ee3..0000000
--- a/doc/revdep.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-# NOTE
-
-**revdep** does not automatically rebuild broken packages or their dependencies. You need to
-use apkg for these operations.
-
-# 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.