pkgman is a package management tool that extends the functionality of basic utilities such as pkgmk and pkgutils.
Originally forked from CRUX prt-get at commit da6bfb0 (Fri Oct 16 2020), pkgman has since been modernized and developed independently.
See the git log for full history.
- C++17 compiler (GCC 8+, Clang 5+)
- Meson
- Ninja
- libpkgcore
scdoc(1)to generate manual pages (enabled by default via themanpagesoption)pkg-config(1)for dependency discovery
- POSIX
sh(1p)to execute pre/post scripts (configurable) pkgmkto build packages (configurable)pkgutilsto add/update/remove packages (configurable)
Configure and build with Meson:
meson setup build \
--prefix=/usr \
--sysconfdir=/etc \
--buildtype=release \
--wrap-mode=nodownload \
ninja -C buildInstall:
DESTDIR="$PKG" ninja -C build installCommon options:
meson setup build ... \
-D link_mode=static \
-D manpages=true \
-D bashcomp=true \
-D vimfiles=true \Use meson configure build to inspect available options.
pkgman can be built against shared or static external dependencies
(e.g., libpkgcore).
Shared:
meson setup build ... -D link_mode=shared
meson compile -C buildStatic:
meson setup build ... -D link_mode=static
meson compile -C buildFor generic static packaging, keep LTO disabled unless the whole toolchain is prepared for static LTO archives.
Important
Static builds disable PIE (position-independent executables),
since PIE requires a dynamic loader and is incompatible with
-static.
Manual pages are provided in /man and installed under the system
manual hierarchy.
Release notes are maintained in NEWS.md.
pkgman is licensed under the
GNU General Public License v2 or later.
See COPYING for license terms and COPYRIGHT for notices.