From 092efa1746dea936b4eb7b824b4676cef32b50c0 Mon Sep 17 00:00:00 2001
From: Woodpecker CI autils includes several helper scripts that work alongside Enter a chroot environment with virtual filesystems mounted. Useful for building packages or performing system maintenance inside an alternative root. Must be run as root. Mounts List stale Show runtime library dependencies of an installed package. Uses Useful for discovering implicit runtime dependencies not listed in the formal List installed packages that are not found in any configured repository. These may have been installed from an external source or had their recipes removed. Takes no arguments; outputs one package name per line. Scaffold a new package recipe from a source URL. Parses the name and version from the URL and creates a directory with skeleton Special handling for GitHub tag archives, PyPI packages (prefixes List orphan packages: packages that are installed and exist in a repository, but have no other installed package depending on them. These may be safe to remove. Takes no arguments; outputs one package name per line. Remove a package and all its dependencies that are no longer needed by any other installed package. This is a "deep" removal compared to Find redundant entries in Copyright © Alice Linux, 2024-2026 This document covers installing and configuring the two bootloaders available in Alice Linux: Limine and GRUB. Limine is a modern, lightweight bootloader supporting BIOS and UEFI. Install the package: Deploy Limine to the target disk: Copy the Limine EFI executable to the EFI system partition: Create Use For full configuration options, see the Limine documentation. GRUB is the GNU Grand Unified Bootloader, supporting UEFI on x86_64 only. Install the package: Install GRUB for UEFI (requires the EFI system partition mounted at Generate the GRUB configuration file: GRUB settings are controlled by After editing Copyright © Alice Linux, 2024-2026 This section covers the main parts of Alice Linux: installation, package
management, networking, service supervision, etc. Copyright © Alice Linux, 2024-2026 Here is a guide to installing Alice Linux on your computer using the chroot method. You can do this from your existing Linux distribution or from a live environment, such as Alice Live or another Linux distribution. Make sure your chosen environment has the necessary partitioning tools, filesystem tools, and extraction tools. Download the Alice rootfs tarball from the download page, along with its Download the Alice rootfs tarball from the release page, along with its Any further commands after this will be executed inside the Alice environment. Once we have the repositories cloned, we need to configure Once we have the repositories cloned, we need to configure First, we set And use whats in Next set I'm also going to set Next, we need to set the package's build scripts path (I'll call it Alice provides two (2) I'm gonna use directory You can also create a directory the community repo. NOTE: The community repo is not held to the same standards as the official repos.
Additionally all repo paths must be declared in the APKG_REPO variable, separated by a single space. Next, we will set up directories for First, create the directories. Then add these paths to Then add these paths to If you also want the community repo, add it as well. NOTE: The community repo is not held to the same standards as the official repos. Now run
-<- back to docs
-
-apkg helper scripts
-apkg for package inspection, cleanup, and maintenance. See man <program> for full details on each command.apkg-chroot
-
-apkg-chroot /mnt/alice # launch interactive shell
-apkg-chroot /mnt/alice apkg -i mypkg # run a command inside the chroot
-/dev, /proc, /sys, /run, copies /etc/resolv.conf, and cleans up all mounts on exit.apkg-clean
-.spm package files and orphaned source tarballs that are no longer referenced by any current package recipe. Pipe to xargs rm to actually clean up.
-apkg-clean # list all unreferenced files
-apkg-clean -p # list only stale packages
-apkg-clean -s # list only stale sources
-apkg-clean | xargs rm # remove them
-apkg-deps
-ldd to find shared libraries needed by the package's binaries, then maps those libraries back to the packages that provide them.
-apkg-deps mypkg
-depends file. Excludes the package itself and base system packages (gcc, musl, binutils, glibc).apkg-foreign
-
-apkg-foreign
-apkg-genabuild
-abuild and info files.
-apkg-genabuild https://example.com/mypkg-1.2.3.tar.gz
-apkg-genabuild https://github.com/user/repo/archive/v1.0.tar.gz myname
-python-), and CPAN packages (prefixes perl-). An optional second argument overrides the derived package name.apkg-orphan
-
-apkg-orphan
-apkg-purge
-apkg -r which only removes the specified package.
-apkg-purge mypkg # dry-run: show what would be removed
-apkg-purge -p mypkg # actually purge from the system
-apkg-redundantdeps
-depends files. A dependency is redundant if another listed dependency already pulls it in transitively.
-
-<- back to docs
- apkg-redundantdeps mypkg # check one package
-apkg-redundantdeps # check all packages
-apkg-redundantdeps -f mypkg # fix by removing redundant entries
-apkg-redundantdeps -f # fix all packages
-
-
-<- back to docs
-
-Bootloader
-Limine
-
-# apkg -I limine
-BIOS
-
-# limine bios-install /dev/sdX
-UEFI
-
-# mkdir -p /boot/EFI/BOOT
-# cp /usr/share/limine/BOOTX64.EFI /boot/EFI/BOOT
-Configuration
-/boot/limine.conf:
-timeout: 5
-
-/Alice Linux
- protocol: linux
- kernel_path: boot():/vmlinuz
- cmdline: root=/dev/sda2 rw loglevel=3 quiet
- module_path: boot():/initrd-linux
-boot() to reference the partition where /boot resides, or specify the partition directly with uuid() or a path like hd(0,2).GRUB
-
-# apkg -I grub
-Install
-/boot):
-# grub-install --target=x86_64-efi --efi-directory=/boot
-Configuration
-
-# grub-mkconfig -o /boot/grub/grub.cfg
-/etc/default/grub. Key options:
-
-GRUB_DEFAULT: Default menu entry (default: 0)GRUB_TIMEOUT: Seconds before booting the default entry (default: 5)GRUB_CMDLINE_LINUX_DEFAULT: Kernel command line argumentsGRUB_GFXMODE: Framebuffer resolution (default: auto)GRUB_DISABLE_OS_PROBER: Disable probing for other operating systems (default: enabled for security)/etc/default/grub, regenerate the config:
-
-<- back to docs
- # grub-mkconfig -o /boot/grub/grub.cfg
-
-
-
-<- back to docs
-
Install Alice
Get Alice rootfs tarball
-sha256sum file.sha256sum file.
@@ -210,31 +208,31 @@ alicelinux-rootfs-20240525.tar.xz: OK
$ curl -O <url>
$ curl -O <url>.sha256sum
# /mnt/alice/usr/bin/apkg-chroot /mnt/alice
Configure apkg
-apkg. apkg is Alice's package build system (or package manager). apkg configuration is environment-based -- settings are exported as environment variables. Place them in /etc/profile.d/apkg.sh for system-wide configuration, or in ~/.profile for per-user configuration.Configure apkg.conf
+apkg. apkg is Alice's package build system (or package manager). By default, Alice does not provide an apkg config file (yes, apkg can work without a config file), but we need to create one. The apkg config file should be located at /etc/apkg.conf by default. Let's create one.CFLAGS and CXXFLAGS. Alice base packages are built using -O3 -march=x86-64 -pipe. You can use these settings or change them to your preference.# echo 'export CFLAGS="-O3 -march=x86-64 -pipe"' >> /etc/profile.d/apkg.sh
+# echo 'export CFLAGS="-O3 -march=x86-64 -pipe"' >> /etc/apkg.conf
CFLAGS for CXXFLAGS.# echo 'export CXXFLAGS="$CFLAGS"' >> /etc/profile.d/apkg.sh
+# echo 'export CXXFLAGS="$CFLAGS"' >> /etc/apkg.conf
MAKEFLAGS. I will use 6 for my 8 threads machine.# echo 'export MAKEFLAGS="-j6"' >> /etc/profile.d/apkg.sh
+# echo 'export MAKEFLAGS="-j6"' >> /etc/apkg.conf
NINJAJOBS here. Without it, ninja will use all threads of your machine when compiling.# echo 'export NINJAJOBS="6"' >> /etc/profile.d/apkg.sh
+# echo 'export NINJAJOBS="6"' >> /etc/apkg.conf
package repos) so apkg can find them. The APKG_REPO variable can accept multiple values for multiple package repos.package repos (at the time of this writing): core and extra. core contains all base packages, and extra includes other packages beyond the base./var/lib/repos/core and /var/lib/repos/extra for core and extra repos respectively.# echo 'export APKG_REPO="/var/lib/repos/core /var/lib/repos/extra"' >> /etc/profile.d/apkg.sh
+# echo 'APKG_REPO="/var/lib/repos/core /var/lib/repos/extra"' >> /etc/apkg.conf
-
-# echo 'export APKG_REPO="/var/lib/repos/core /var/lib/repos/extra /var/lib/repos/community"' >> /etc/profile.d/apkg.sh
+# echo 'APKG_REPO="/var/lib/repos/core /var/lib/repos/extra /var/lib/repos/community"' >> /etc/apkg.conf
packages, sources, and work. By default, these directories are inside the package template, but we will change them to /var/cache/pkg, /var/cache/src, and /var/cache/work respectively. You can change these to any location where you want to store these files./etc/profile.d/apkg.sh.# echo 'export APKG_PACKAGE_DIR=/var/cache/pkg' >> /etc/profile.d/apkg.sh
-# echo 'export APKG_SOURCE_DIR=/var/cache/src' >> /etc/profile.d/apkg.sh
-# echo 'export APKG_WORK_DIR=/var/cache/work' >> /etc/profile.d/apkg.sh
+/etc/apkg.conf.
-# echo 'APKG_PACKAGE_DIR=/var/cache/pkg' >> /etc/apkg.conf
+# echo 'APKG_SOURCE_DIR=/var/cache/src' >> /etc/apkg.conf
+# echo 'APKG_WORK_DIR=/var/cache/work' >> /etc/apkg.conf
Configure reposync
-reposync is a tool to sync package templates from git repositories. Like apkg, reposync configuration is environment-based. Add remote repos for core and extra to /etc/profile.d/reposync.sh (system-wide) or ~/.profile (per-user). The format is <gitrepo>|<branch>|<localpath>.# echo 'export REPOSYNC_CORE="https://codeberg.org/emmett1/alicelinux|core|/var/lib/repos/core"' >> /etc/profile.d/reposync.sh
-# echo 'export REPOSYNC_EXTRA="https://codeberg.org/emmett1/alicelinux|extra|/var/lib/repos/extra"' >> /etc/profile.d/reposync.sh
+Configure reposync.conf
+reposync is a tool to sync package templates from git repositories. Add remote repos for core and extra into /etc/reposync.conf. The format of remote repos in reposync.conf is <gitrepo>|<branch>|<localpath>.# echo 'https://codeberg.org/emmett1/alicelinux|core|/var/lib/repos/core' >> /etc/reposync.conf
+# echo 'https://codeberg.org/emmett1/alicelinux|extra|/var/lib/repos/extra' >> /etc/reposync.conf
-# echo 'export REPOSYNC_COMMUNITY="https://codeberg.org/emmett1/alicelinux|community|/var/lib/repos/community"' >> /etc/profile.d/reposync.sh
+# echo 'https://codeberg.org/emmett1/alicelinux|community|/var/lib/repos/community' >> /etc/reposync.conf
reposync to sync latest package templates.# reposync
@@ -309,6 +307,14 @@ NOTE: apkg -a prints all installed packages on the system.
If your hardware requires firmware, install it using.
# apkg -I linux-firmware
+In this guide, I'm going to use grub as the bootloader. Install grub.
# apkg -I grub
+
+Then generate grub config.
+# grub-install /dev/sdX
+# grub-mkconfig -o /boot/grub/grub.cfg
+
Change alice to the hostname of your choice.
# echo alice > /etc/hostname
@@ -345,6 +351,20 @@ Create a symlink from /etc/sv/<service> to /var/service
Set the password for the root user.
# passwd
+Networking
+You might want to set up networking before rebooting. For wifi connection, install wpa_supplicant.
+# apkg -I wpa_supplicant
+
+Configure your SSID.
+# wpa_passphrase <YOUR SSID> <ITS PASSWORD> >> /etc/wpa_supplicant.conf
+
+Enable the service.
+# ln -s /etc/sv/wpa_supplicant /var/service
+
+Then configure & enable udhcpc service.
+# vi /etc/sv/udhcpc/conf
+# ln -s /etc/sv/udhcpc /var/service
+
Timezone
Install tzdata.
# apkg -I tzdata
@@ -356,10 +376,6 @@ Create a symlink from /etc/sv/<service> to /var/service
# cp /usr/share/zoneinfo/Asia/Kuala_Lumpur /etc/localtime
# apkg -r tzdata
-Install bootloader
-See the bootloader documentation for installing and configuring a bootloader.
-Networking
-See the networking documentation for setting up networking.
Reboot and enjoy!
Exit the chroot environment and unmount the Alice partition, then reboot.
# exit
@@ -373,8 +389,6 @@ Create a symlink from /etc/sv/<service> to /var/service
Use revdep to scan for broken libraries and binaries after system upgrades and package removals. You can use revdep -v to print out missing required libraries, and use apkg -f -u $(revdep) to scan and rebuild broken packages.
Run updateconf to update config files in /etc after package upgrades.
-
-<- back to docs
Copyright © Alice Linux, 2024-2026
diff --git a/docs/networking.html b/docs/networking.html
index d641a353..324ea4f9 100644
--- a/docs/networking.html
+++ b/docs/networking.html
@@ -179,8 +179,6 @@
home / docs / ports / commits / download / development / community / donate
-<- back to docs
-
Networking
This document describes how to configure networking on Alice Linux using eiwd/wpa_supplicant + udhcpc/dhcpcd.
@@ -311,8 +309,6 @@ DisablePeriodicScan=true
# ln -s /etc/sv/wpa_supplicant /var/service
# ln -s /etc/sv/udhcpc /var/service
-
-<- back to docs
Copyright © Alice Linux, 2024-2026
diff --git a/docs/packagemanager.html b/docs/packagemanager.html
index af1e1b6c..076a0141 100644
--- a/docs/packagemanager.html
+++ b/docs/packagemanager.html
@@ -179,8 +179,6 @@
home / docs / ports / commits / download / development / community / donate
-<- back to docs
-
Package Manager
In Alice, two package manager are used, spm and autils. And why two package manager? spm was written for generic package manager for linux distribution. And autils is written specifically for Alice and requires spm in order to install, remove and update packages while managing conflicts. The command apkg (part of autils) is used to fetch and build packages from ports and their abuild files.
spm
@@ -485,8 +483,6 @@ $ apkg-redundantdeps
(remove redundant dependencies for depends list)
$ apkg-redundantdeps -f
-
-<- back to docs
Copyright © Alice Linux, 2024-2026
diff --git a/docs/using_autils.html b/docs/using_autils.html
deleted file mode 100644
index 55fdc805..00000000
--- a/docs/using_autils.html
+++ /dev/null
@@ -1,353 +0,0 @@
-
-
-
-
-
- Alice Linux - docs
-
-
-
-
-
-
-
-<- back to docs
-
-Using autils
-autils is a collection of POSIX shell scripts for source-based package management on Alice Linux.
-For full command details, see the man pages: man apkg, man reposync, etc.
-Installation
-make install
-
-This installs all scripts to /usr/bin and man pages to /usr/share/man/man8. Override with:
-make install DESTDIR=/tmp/root PREFIX=/usr/local
-
-Core concepts
-The package manager, apkg, builds packages from source using abuild recipe files and installs them as .spm packages via the spm(8) backend. Package recipes live in git repositories referenced by the APKG_REPO environment variable.
-Configuration is done through environment variables: there is no config file.
-Basic usage
-Building a package
-From inside a recipe directory:
-cd /path/to/repo/mypkg
-apkg
-
-This fetches sources, verifies checksums, builds, and creates a .spm in $APKG_PACKAGE_DIR.
-Installing and upgrading
-apkg -i mypkg # build and install
-apkg -i # same, from inside the recipe directory
-apkg -I firefox # install with automatic dependency resolution
-apkg -u mypkg # upgrade (rebuild and reinstall)
-apkg -f mypkg # force rebuild even if .spm already exists
-apkg -o mypkg # download sources only, don't build
-
-Removing packages
-apkg -r mypkg # remove a package
-apkg-purge mypkg # show what would be removed (dry-run)
-apkg-purge -p mypkg # remove package and its unneeded dependencies
-
-Searching and listing
-apkg -s icon # search packages by name pattern
-apkg -s -v icon # search with version info
-apkg -a # list all installed packages
-apkg -a -v # list installed packages with versions
-apkg -S libpng.so # find which package owns a file
-apkg -l # list outdated packages on the system
-
-Dependency queries
-apkg -d mypkg # list direct dependencies of a package
-apkg -D mypkg # list all dependencies recursively, in install order
-apkg -j mypkg # list packages that depend on mypkg
-
-System upgrade
-apkg -U
-
-This checks all installed packages for outdated versions, resolves the full dependency tree, installs any new packages, then upgrades existing ones. Set APKG_NOPROMPT=1 to skip the confirmation prompt (useful for scripting). Packages listed in APKG_MASK are skipped.
-Checksums and file lists
-apkg -g mypkg # regenerate .shasum file
-apkg -k mypkg # regenerate .files list from the .spm
-
-Triggers
-After installing or upgrading packages, apkg can refresh system caches:
-apkg -t # run triggers for all installed packages
-apkg -t mypkg # run only triggers relevant to mypkg
-
-Triggers include: fontconfig cache, GDK-Pixbuf loaders, GIO modules, GSettings schemas, GTK input method modules, icon theme cache, udev hardware database, X font indices, desktop MIME cache, and shared MIME database. Each trigger only fires if the package actually provides files that need it.
-Helper scripts
-Package inspection
-apkg-deps mypkg # show runtime library dependencies (via ldd)
-apkg-foreign # list installed packages not found in any repo
-apkg-orphan # list packages with no dependents installed
-
-Cleanup
-apkg-clean # list stale .spm and source files
-apkg-clean | xargs rm # actually remove them
-apkg-clean -p # list only stale packages
-apkg-clean -s # list only stale sources
-
-Dependency maintenance
-apkg-redundantdeps mypkg # find transitive deps listed explicitly
-apkg-redundantdeps # check all packages
-apkg-redundantdeps -f mypkg # fix by removing redundant entries
-
-Scaffolding
-apkg-genabuild https://example.com/pkg-1.2.3.tar.gz
-apkg-genabuild https://github.com/user/repo/archive/v1.0.tar.gz
-
-Derives name and version from the URL and creates a directory with a skeleton abuild. Recognizes GitHub tag archives, PyPI packages (prefixes python-), and CPAN packages (prefixes perl-). An optional second argument overrides the name.
-Standalone utilities
-revdep: find broken library links
-Scans system binaries and libraries for missing shared library dependencies. Run after major upgrades, especially those with library version bumps.
-revdep # plain output
-revdep -v # verbose progress
-
-Note: revdep only reports problems; it does not rebuild anything. Use apkg -f to rebuild affected packages.
-updateconf: merge .new config files
-When packages are upgraded, new default config files are installed with a .new suffix to avoid overwriting local changes. Run updateconf as root to interactively handle them:
-updateconf
-
-For each .new file it shows a diff and prompts:
-
-- U: update: replace current with new
-- D: discard: delete the
.new file, keep current
-- E: edit: open current file in
$EDITOR (default: vi)
-- K: keep: leave both files as-is
-
-reposync: sync git repositories
-Syncs git-based package repos using REPOSYNC_* environment variables:
-export REPOSYNC_CORE="https://codeberg.org/emmett1/alicelinux.git|main|/var/lib/alicelinux"
-export REPOSYNC_EXTRA="https://codeberg.org/emmett1/extra.git|main|/var/lib/alicelinux/extra"
-reposync
-
-Options:
-
--n: dry-run
--l: log to /var/log/reposync.log
--f: force fresh clones
--h: help
-
-Working in a chroot
-apkg-chroot /mnt/alice # enter interactive shell
-apkg-chroot /mnt/alice apkg -i mypkg # run apkg inside chroot
-
-Mounts /dev, /proc, /sys, /run, copies /etc/resolv.conf, and cleans up on exit. Must be run as root.
-Environment variables
-Core paths
-
-APKG_REPO (default: $PWD): Space-separated repo directories, searched in order
-APKG_PACKAGE_DIR (default: $PWD): Where built .spm files are stored
-APKG_SOURCE_DIR (default: $PWD): Source tarball cache
-APKG_WORK_DIR (default: $PWD): Build working tree (extraction + fakeroot)
-APKG_ROOT (default: /): Alternative install root
-
-Build behavior
-
-APKG_NOPROMPT: Skip confirmation prompt in -I and -U
-APKG_KEEP_WORKDIR: Keep build tree on failure (for debugging)
-APKG_ALIAS: Dependency substitution: real:alias pairs (e.g. openssl:libressl)
-APKG_MASK: Packages to skip during -l and -U
-
-Logging
-
-APKG_LOG: Enable build logging
-APKG_LOG_DIR: Directory for log files (filename: $name.log)
-
-Compiler
-
-CFLAGS, CXXFLAGS: Compiler flags (used by cmake builds)
-CROSS_COMPILE: Prefix for strip (e.g. x86_64-linux-musl-)
-
-Common workflows
-Building and installing a new package
-cd $APKG_REPO
-apkg-genabuild https://example.com/mypkg-1.0.tar.gz
-cd mypkg
-# edit abuild as needed, add depends file
-apkg -I mypkg
-
-Full system maintenance
-reposync # sync repos
-apkg -U # system upgrade
-revdep # check for broken libraries
-updateconf # merge config files
-apkg-clean | xargs rm # clean up stale files
-apkg-orphan # review packages to potentially remove
-
-Debugging a failed build
-APKG_KEEP_WORKDIR=1 apkg -f mypkg
-# inspect $APKG_WORK_DIR/apkg-src-mypkg and apkg-pkg-mypkg
-
-
-<- back to docs
-
- Copyright © Alice Linux, 2024-2026
-
-
-
diff --git a/docs/writing_abuild.html b/docs/writing_abuild.html
deleted file mode 100644
index 3dd20471..00000000
--- a/docs/writing_abuild.html
+++ /dev/null
@@ -1,367 +0,0 @@
-
-
-
-
-
- Alice Linux - docs
-
-
-
-
-
-
-
-<- back to docs
-
-Writing an abuild recipe
-An abuild file is a POSIX shell snippet that tells apkg how to build a package. The directory containing it must have the same name as the package.
-See man apkg for full details on all options and environment variables, and man apkg-genabuild for the recipe scaffolding tool.
-To quickly scaffold a new recipe from a source URL, use apkg-genabuild:
-apkg-genabuild https://example.com/mypkg-1.2.3.tar.gz
-
-This creates the directory and a skeleton abuild with name, version, release, and source already populated.
-Directory structure
-mypkg/
- abuild - package recipe (required)
- info - package metadata template (description, homepage, license, maintainer)
- depends - dependency list, one per line (optional)
- preinstall - script run before the package is built (optional)
- postinstall - script run after the package is installed (optional)
- .shasum - source checksums, auto-generated (regenerate with `apkg -g`)
- .files - package file list, auto-generated (regenerate with `apkg -k`)
-
-Minimal recipe
-name=mypkg
-version=1.2.3
-release=1
-source="https://example.com/$name-$version.tar.gz"
-
-Required variables
-
-name: package name. Must match the directory name exactly.
-version: upstream version string. Use the $name and $version variables in the source URL so updates are easier.
-release: an incrementing integer starting at 1. Reset to 1 when version changes. Bump when the package needs a rebuild without a source change.
-
-Source formats
-The source variable accepts a whitespace-separated list. Five formats are supported:
-
-https://example.com/pkg-1.0.tar.gz: A remote URL, downloaded with curl
-mypkg-1.0.tar.gz::https://example.com/v1.0.tar.gz: Custom local filename for a remote URL
-https://example.com/pkg.tar.gz::noextract: Download but do not unpack
-my-file: A local file in the recipe directory (not downloaded)
-- (empty): Create a meta/dummy package with only
/usr
-
-Multiple sources can be specified:
-source="https://example.com/$name-$version.tar.gz
- fix-build.patch
- default-config::noextract"
-
-If source is empty, apkg creates a dummy package: useful for meta packages that exist only to pull in dependencies.
-Optional variables
-Build control
-
-build_type: force a specific build system instead of auto-detection. One of: meson_build, configure_build, cmake_build, python_build, perlmodule_build, makefile_build.
-build_dir: subdirectory within the extracted source tree to enter before building. Useful when a tarball extracts into a differently-named directory.
-build_opt: extra flags appended to the build system command. The defaults (--prefix=/usr, --sysconfdir=/etc, etc.) are always included; this adds on top.
-skip_patch: set to 1 to skip automatic patch application. Use this if you need to call apply_patch manually from build().
-patch_opt: options for patch(1). Default: -p1.
-
-Package content control
-
-keep_static: set to keep *.a static libraries (removed by default).
-keep_libtool: set to keep *.la libtool archives (removed by default).
-keep_locale: set to keep locale files in /usr/share/locale and /usr/lib/locale.
-keep_doc: set to keep documentation in /usr/share/doc and /usr/doc.
-no_strip: set to skip ELF binary and library stripping.
-
-Runit services
-
-sv: service files to install into /etc/sv. Accepts:
-
-run → /etc/sv/$name/run
-finish → /etc/sv/$name/finish
-<name>.run → /etc/sv/<name>/run
-<name>.finish → /etc/sv/<name>/finish
-<name>.<ext> → /etc/sv/<name>/<ext>
-
-
-
-sv="run finish mydaemon.run mydaemon.finish"
-
-Build hooks
-Custom build function
-If a build() function is defined, it completely replaces the auto-detected build system. Two variables are available:
-
-$SRC: where sources were extracted
-$PKG: the fakeroot directory where files must be installed
-
-Several DESTDIR-style variables are pre-exported: DESTDIR, DEST_DIR, INSTALLROOT, install_root, INSTALL_ROOT.
-build() {
- cd "$SRC/$name-$version"
- ./configure --prefix=/usr --sysconfdir=/etc
- make
- make DESTDIR="$PKG" install
-}
-
-build() runs with set -ex, so the script exits on any error and prints each command.
-Pre/post build hooks
-Without a build() function, you can use prebuild() and postbuild():
-prebuild() {
- sed -i 's/broken/fixed/g' src/whatever.c
-}
-
-postbuild() {
- mv "$PKG/usr/bin/wrongname" "$PKG/usr/bin/rightname"
-}
-
-The execution order is: prebuild() → auto-detected build system → postbuild().
-Build system auto-detection
-When no build() is defined and no build_type is set, apkg checks for these files in order:
-
-meson.build: meson with LTO, PIE, wrap_mode=nodownload, buildtype=plain
-configure: autotools ./configure --prefix=/usr --sysconfdir=/etc ...
-CMakeLists.txt: cmake with Release build type, prefers ninja
-setup.py: python3 setup.py build && install --root=$PKG
-Makefile.PL: perl Makefile.PL && make && make install
-Makefile / makefile / GNUmakefile: raw make with standard variables
-
-The exact flags for each build system are documented in doc/defaultbuildopts.
-Post-build processing
-After compilation, apkg automatically:
-
-- Compresses man pages (man1–man8 only, gzip) and info pages
-- Removes common conflict files:
fonts.dir, fonts.scale, perllocal.pod, charset.alias
-- Removes static libraries (
*.a), libtool archives (*.la), locales, and docs unless the corresponding keep_* variable is set
-- Strips ELF binaries (
--strip-all), shared objects (--strip-unneeded), and static archives (--strip-debug) unless no_strip is set
-- Installs runit service files from the
sv variable
-
-The info file
-apkg-genabuild creates an info file alongside the abuild with package metadata:
-description:
-homepage:
-license:
-maintainer: name <name at mail dot com>
-
-Fill in each field as appropriate. The maintainer line uses the format name <email>.
-The depends file
-One dependency per line. Lines starting with # are comments. Dependencies are just package names: no version constraints.
-# Direct dependencies of mypkg
-zlib
-libpng
-freetype
-
-Dependencies are recursive: when installing with -I, apkg will resolve the full tree. Only list direct dependencies; transitive ones are handled automatically. Use apkg-redundantdeps to find and clean up transitive entries.
-preinstall / postinstall scripts
-These are optional executable scripts in the recipe directory:
-
-preinstall: runs before the package is built (only during apkg -i or apkg -u). Good for pre-flight checks or preparing the system.
-postinstall: runs after the package is installed or upgraded. Good for one-time setup that can't be done at build time.
-
-If APKG_ROOT is set (alternative install root), these scripts run inside a chroot.
-Checksums and file lists
-
-.shasum: sha3sum of each source file, auto-generated on first build. Regenerate with apkg -g <pkg>.
-.files: sorted list of every file in the built .spm, auto-generated after packaging. Regenerate with apkg -k <pkg>. Used by apkg -S for file search.
-
-Complete example
-name=hello
-version=2.12.1
-release=1
-source="https://ftp.gnu.org/gnu/hello/$name-$version.tar.gz"
-
-build() {
- cd "$SRC/$name-$version"
- ./configure --prefix=/usr
- make
- make DESTDIR="$PKG" install
-}
-
-With a depends file:
-zlib
-
-With a postinstall script:
-#!/bin/sh
-echo "hello was installed!"
-
-Tips
-
-- Use
apkg-genabuild <url> to scaffold a recipe from a source URL quickly.
-- Use
$name and $version in source URLs so bumping the version only requires changing two variables.
-- Patches (
.patch / .diff files) listed in source are applied automatically with patch -p1 before the build. Use patch_opt to change the strip level.
-- Set
APKG_KEEP_WORKDIR=1 in your environment to inspect the build tree when debugging a failed build.
-
-
-<- back to docs
-
- Copyright © Alice Linux, 2024-2026
-
-
-
diff --git a/ports.html b/ports.html
index bd518cf5..4d691705 100644
--- a/ports.html
+++ b/ports.html
@@ -191,7 +191,7 @@
repo name version dependencies
-core autils 0.1-1
+core autils 0.3-1
core b3sum 1.3.1-1
core baselayout 1-1
core bison 3.8.2-1
@@ -204,20 +204,20 @@
core initscripts 20250910-1
core libressl 4.3.2-1
core linux-headers 6.18.18-1
-core llvm 22.1.6-1
+core llvm 22.1.7-1
core m4 1.4.21-1
core make 4.4.1-1
core musl 1.2.6-2
core patch 2.8-1
-core spm 20250626-1
+core spm 0.1-1
core xz 5.8.3-1
core zlib-ng 2.3.3-1
core zstd 1.5.7-1
extra acpi 1.8-1
extra adwaita-icon-theme 50.0-1 gtk3
-extra alsa-lib 1.2.15.3-1
-extra alsa-ucm-conf 1.2.15.3-1
-extra alsa-utils 1.2.15.2-1 alsa-lib ncurses
+extra alsa-lib 1.2.16-1
+extra alsa-ucm-conf 1.2.16-1
+extra alsa-utils 1.2.16-1 alsa-lib ncurses
extra arc-theme 20221218-1 sassc glib
extra asciinema 3.2.0-1 rust
extra at-spi2-core 2.60.4-1 dbus glib-gi libxml2 libxtst
@@ -234,7 +234,7 @@
extra bubblewrap 0.11.2-1 libcap
extra c-ares 1.34.6-1
extra cairo 1.18.4-1 glib pixman fontconfig libxext libxrender
-extra cbindgen 0.29.2-1 rust
+extra cbindgen 0.29.3-1 rust
extra ccache 4.13.6-1 cmake zstd xxhash fmt
extra cfm 0.6.6-1
extra cgroupfs-mount 1.4-1
@@ -250,7 +250,7 @@
extra docker-compose 5.1.4-1 go
extra dosfstools 4.2-1
extra dropbear 2026.91-1
-extra dtc 1.8.0-1 flex
+extra dtc 1.8.1-1 flex
extra dunst 1.13.2-1 libnotify libdeflate libxscrnsaver libxinerama
extra e2fsprogs 1.47.4-1
extra efibootmgr 18-1 efivar
@@ -261,7 +261,7 @@
extra expat 2.8.1-1
extra f2fs-tools 1.16.0-1
extra fail2ban 1.1.0-1
-extra fast-float 8.2.5-1
+extra fast-float 8.2.6-1
extra fcft 3.3.3-1 fontconfig pixman tllist
extra fdk-aac 2.0.3-1
extra fff 2.2-1 bash
@@ -271,7 +271,7 @@
extra flex 2.6.4-1
extra fmt 12.1.0-1
extra font-awesome 6.7.2-1
-extra fontconfig 2.18.0-1 freetype gperf
+extra fontconfig 2.18.1-1 freetype gperf
extra foot 1.27.0-1 fcft libxkbcommon
extra freetype 2.14.3-1 libpng
extra fribidi 1.0.16-1
@@ -289,20 +289,20 @@
extra glib-gi 2.88.1-1 gobject-introspection
extra glslang 16.3.0-1
extra gmp 6.3.0-1
-extra go 1.26.3-1
+extra go 1.26.4-1
extra go-md2man 2.0.2-1 go
extra gobject-introspection 1.86.0-1 glib flex
extra gperf 3.3-1
extra gptfdisk 1.0.10-1 popt e2fsprogs
-extra graphite2 1.3.14-1
+extra graphite2 1.3.15-1
extra grim 1.5.0-1 pixman libpng scdoc wayland-protocols
extra grub 2.14-1 freetype fuse2 flex
extra gtk-layer-shell 0.10.1-1 gtk3
extra gtk3 3.24.48-1 at-spi2-core gdk-pixbuf libepoxy pango libxkbcommon
-extra harfbuzz 14.2.0-1 graphite2 glib-gi icu cairo
+extra harfbuzz 14.2.1-1 graphite2 glib-gi icu cairo
extra hicolor-icon-theme 0.18-1
extra htop 3.5.1-1 libnl-tiny
-extra hwdata 0.407-1
+extra hwdata 0.408-1
extra i3blocks 1.5-2
extra icu 78.3-1
extra image-exiftool 13.58-1
@@ -326,10 +326,10 @@
extra libatasmart 0.19-1 libudev-zero
extra libburn 1.5.8-1
extra libcap 2.78-1 linux-pam
-extra libclc 22.1.6-1 spirv-llvm-translator clang
+extra libclc 22.1.7-1 spirv-llvm-translator clang
extra libdeflate 1.25-1
extra libdisplay-info 0.3.0-1 hwdata
-extra libdrm 2.4.133-1 libpciaccess
+extra libdrm 2.4.134-1 libpciaccess
extra libepoxy 1.5.10-1 mesa
extra libevdev 1.13.6-1
extra libevent 2.1.12-1
@@ -358,16 +358,16 @@
extra libslirp 4.9.3-1 glib
extra libtheora 1.2.0-1 libvorbis
extra libtool 2.5.4-1
-extra libudev-zero 1.0.3-1
+extra libudev-zero 1.0.4-1
extra libuv 1.52.1-1
extra libva 2.23.0-1 mesa
extra libvorbis 1.3.7-1 libogg
extra libvpx 1.16.0-1 nasm
extra libwebp 1.6.0-1 libjpeg-turbo libpng tiff
-extra libxkbcommon 1.13.1-1 wayland-protocols xkeyboard-config libxcb
+extra libxkbcommon 1.13.2-1 wayland-protocols xkeyboard-config libxcb
extra libxml2 2.15.3-1 icu
extra lighttpd 1.4.82-1 pcre2
-extra limine 12.3.1-1 mtools nasm
+extra limine 12.3.2-1 mtools nasm
extra links 2.30-1 libevent
extra linux 6.18.30-1 elfutils flex mkinitrd
extra linux-firmware 20260519-1 rdfind parallel
@@ -402,7 +402,7 @@
extra nettle 3.10.2-1
extra nftables 1.1.6-1 gmp libnftnl readline
extra nghttp2 1.69.0-1 libxml2
-extra nodejs 26.2.0-1 c-ares libuv nghttp2
+extra nodejs 26.3.0-1 c-ares libuv nghttp2
extra nspr 4.39-1
extra nss 3.124-1 nspr
extra ntfs-3g 2026.2.25-1 fuse2
@@ -429,7 +429,7 @@
extra popt 1.19-1
extra pqiv 2.13.3-1 bash gtk3
extra python 3.14.5-1 expat libffi ncurses sqlite
-extra python-distlib 0.4.0-1 python-installer python-gpep517
+extra python-distlib 0.4.1-1 python-installer python-gpep517
extra python-flit-core 3.12.0-1 python-installer
extra python-gpep517 19-1
extra python-installer 1.0.1-1
@@ -439,14 +439,14 @@
extra python-ply 3.11-1
extra python-pyyaml 6.0.3-1
extra python-setuptools 82.0.1-1 python
-extra qemu 11.0.0-1 alsa-lib sdl2 pixman libslirp dtc python-distlib
+extra qemu 11.0.1-1 alsa-lib sdl2 pixman libslirp dtc python-distlib
extra ranger 1.9.4-1
extra rdfind 1.8.0-1 nettle
extra readline 8.3-1
extra rover 1.0.1-1 ncurses
extra rsync 3.4.3-1 popt
extra runc 1.4.2-1 libseccomp go-md2man libseccomp
-extra rust 1.95.0-1 llvm
+extra rust 1.96.0-1 llvm
extra samurai 1.2-1
extra sassc 3.6.2-1 libsass
extra scdoc 1.11.4-1
@@ -455,7 +455,7 @@
extra sdl2 2.32.10-1
extra seatd 0.9.3-1
extra sff 1.3-1 ncurses
-extra sfm 0.5-1
+extra sfm 0.6-1
extra sfwbar 1.0_beta16.1-1 json-c gtk-layer-shell
extra shared-mime-info 2.4-1 glib libxml2 gettext-tiny
extra shfm 0.4.2-1
@@ -471,7 +471,6 @@
extra spirv-tools 1.4.341.0-1 spirv-headers
extra sqlite 3.53.1-1
extra squashfs-tools 4.7.5-1 lzo zstd lz4
-extra ssu 0.3.2-1
extra stagit 1.2-1 libgit2
extra strace 7.0-1
extra sway 1.12-1 wlroots json-c pango
@@ -481,12 +480,12 @@
extra tiff 4.7.1-1
extra tllist 1.1.0-1
extra tlp 1.10.1-1
-extra tor 0.4.9.8-1 libevent
+extra tor 0.4.9.9-1 libevent
extra torsocks 2.5.0-1
extra tty-clock 2.3-1
extra tzdata 2026b-1
extra unrar 7.2.6-1
-extra vim 9.2.0541-1
+extra vim 9.2.0588-1
extra vsv 2.0.0-1 rust
extra wayland 1.25.0-1 libxml2 libffi
extra wayland-protocols 1.48-1 wayland
--
cgit v1.2.3