libpkgcore is the core package management library extracted from
CRUX pkgutils.
It provides foundational classes and functions for package utilities
such as pkgadd(8), pkgrm(8), and pkginfo(1) - handling package
installation, removal, and information queries.
This distribution is a fork of CRUX pkgutils at commit 9ca0da6
(Sat Nov 17 2018) with the following differences:
- Code organized into a standalone library (
libpkgcore) and utilities (pkgutils) - Support for
zstdarchive formats - Optional support for preserving ACLs and xattrs
See the git log for full history.
Original sources:
- C++11 compiler (GCC 4.8.1+, Clang 3.3+)
- Meson
- Ninja
scdoc(1)to generate manual pages (enabled by default via themanpagesoption)pkg-config(1)libarchive(3)headers and library
# Configure
meson setup build
# Compile
meson compile -C build
# Install
meson install -C buildEnable ACL support:
meson setup build -Dextract_acl=trueEnable xattr support:
meson setup build -Dextract_xattr=trueEnable both:
meson setup build -Dextract_acl=true -Dextract_xattr=trueThe build system supports controlling how external dependencies are linked.
default_librarycontrols whetherlibpkgcoreitself is built as a static library, shared library, or both.link_modecontrols whether dependencies are linked dynamically or statically.
link_mode=static requires default_library=static.
Shared library builds cannot reliably link against non-PIC static dependencies.
Debug:
meson setup build -Dbuildtype=debugRelease:
meson setup build -Dbuildtype=release -Db_ndebug=if-releaseCompiler flags:
pkg-config --cflags libpkgcoreLink flags:
pkg-config --libs libpkgcoreStatic link flags:
pkg-config --static --libs libpkgcoreinclude/- public headerssrc/- library sourcesinternal/- internal headers
Library API is documented in header files under include/libpkgcore.
libpkgcore is licensed under the
GNU General Public License v2 or later.
See COPYING for license terms and COPYRIGHT for notices.