Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

101 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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_FILES is 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/kiss instead of the cache directory under $HOME

  • A dummy package called base must be installed, with depends containing 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
  • 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 zstd compression by default
    • KISS_PATH
    • KISS_COLOR not planned
    • KISS_DEBUG
    • KISS_FORCE
    • KISS_HOOK not planned
    • KISS_KEEPLOG
    • KISS_PROMPT
    • KISS_TMPDIR does not fit with sandboxing logic
    • KISS_SANDBOX_FILES

About

Next generation of the KISS Package manager

Topics

Resources

Stars

11 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages