- Zig 100%
| src | fix(package): ensure to mark / as private to avoid propagating mounts to host | |
| .gitignore | fix: gitignore | |
| build.zig | feat(build.zig): kiss_ng -> kiss-ng | |
| build.zig.zon | chore(build.zig.zon): bump minimum_zig_version | |
| README.md | feat(package): mount extra files in sandbox with KISS_SANDBOX_FILES | |
kiss-ng
Next generation of the KISS package manager, aiming to be more robust and powerful (sandboxed builds, provides system, etc)
The project currently supports almost all of the KISS features and can act as a drop-in replacement for the KISS package manager, with a few differences:
-
The package manager is invoked as root for build (
b), install (i) and upgrade (U) operations due to the sandboxing mechanism -
Build scripts cannot access the network, packages must be refactored to support vendored / pre-cached dependencies
KISS_SANDBOX_FILESis a space-delimited list of extra files that must be mounted inside the sandbox, this is to support use-cases like ccache
-
All binaries, sources, and logs are stored at
/var/cache/kissinstead of the cache directory under$HOME -
A dummy package called
basemust be installed, withdependscontaining all essential packages (eg.baselayout busybox gcc git linux-headers make musl pkgconf), this is not hardcoded to support various configurations (eg.clang-only system)
Usage
$ kiss_ng
-> kiss [a|b|c|d|i|l|p|r|s|u|U|v] [pkg]...
-> alternatives List and swap alternatives
-> build Build packages
-> checksum Generate checksums
-> download Download sources
-> install Install packages
-> list List installed packages
-> preferred List owners of files with alternatives
-> remove Remove packages
-> search Search for packages
-> update Update the repositories
-> upgrade Update the system
-> version Package manager version
TODO
-
alternatives & choices system
- check orphaned alternatives during removal
-
provides system
-
build
- dynamic dependency detection
- binary stripping
- sandboxed builds using
landlock
-
checksum
-
download
- parallel downloads
-
install
- conflicts
- etcsums
- files
- conflicts
-
list
-
remove
-
search
-
update
-
upgrade
-
hooks (package-specified only, no user hooks)
- pre-remove
- post-install
(削除) user hooks (削除ここまで)not planned
-
global lock for installation/removal
-
environment variables
KISS_ROOT(削除)KISS_COMPRESS(削除ここまで)zstdcompression by defaultKISS_PATH(削除)not plannedKISS_COLOR(削除ここまで)KISS_DEBUGKISS_FORCE(削除)not plannedKISS_HOOK(削除ここまで)KISS_KEEPLOGKISS_PROMPT(削除)does not fit with sandboxing logicKISS_TMPDIR(削除ここまで)- KISS_SANDBOX_FILES