Go to file
Dylan Araps 75c9785d39
kiss: Rationale for installation process.
People seem to have the odd belief that little to no thought has
gone into the installation process of the package manager. The
reality is of course the opposite.

This commit adds comments to the pkg_install() function hopefully
giving insight into _why_ it works as it does.

Additional rationale for rsync is that it allowed us to drop
fakeroot from the repositories and package system entirely.
2020-04-18 10:21:33 +03:00
.github/workflows ci: Run on pull requests 2020-01-08 22:21:10 +02:00
contrib kiss-repodepends: don't output the dependencies of installed package 2020-04-17 15:14:09 +03:00
kiss kiss: Rationale for installation process. 2020-04-18 10:21:33 +03:00
kiss.1 docs: update 2020-03-22 14:47:03 +02:00
LICENSE.md docs: update 2019-10-05 11:02:05 +03:00
README.md docs: update 2020-03-28 10:18:47 +02:00

kiss

Tiny and straightforward package manager for KISS written in POSIX sh.

  • Only 600~ lines of POSIX sh (See cloc).
  • Runtime dependency detection.
  • Incremental package installation.
  • Fast dependency solver.
  • File conflict detection.
  • Package alternatives system.
  • Binary stripping.
  • shellcheck compliant.

kiss Guidestones

Read: https://k1ss.org/guidestones.txt

Usage

-> kiss [a|b|c|i|l|r|s|u|v] [pkg] [pkg] [pkg]
-> alternatives: List and swap to alternatives
-> build:        Build a package
-> checksum:     Generate checksums
-> install:      Install a package
-> list:         List installed packages
-> remove:       Remove a package
-> search:       Search for a package
-> update:       Check for updates
-> version:      Package manager version

Index

Package format

See: https://k1ss.org/package-system

Extending the package manager

The contrib directory contains a set of simple scripts to extend the package manager. These are just simple and stupid automations which parse the package format.

  • kiss-cargo-urlgen: Generate sources for rust packages.
  • kiss-chbuild: Spawn a throwaway chroot.
  • kiss-chroot: Enter a KISS chroot.
  • kiss-depends-finder: Find missing dependencies by parsing 'ldd'.
  • kiss-depends: Display a package's dependencies.
  • kiss-export: Turn an installed package into a KISS tarball.
  • kiss-fork: Copy a package's repository files into the current directory.
  • kiss-link: Link a repository file to another repository.
  • kiss-manifest-tree: Display all files as tree owned by a package.
  • kiss-manifest: Display all files owned by a package.
  • kiss-maintainer: Display the package maintainers.
  • kiss-new: Create a boilerplate package.
  • kiss-orphans: List orphaned packages.
  • kiss-outdated: List outdated packages based on Repology versions.
  • kiss-owns: Check which package owns a file.
  • kiss-repodepends: Display a package's original dependencies.
  • kiss-reset: Reset the system to the base.
  • kiss-revdepends: Display packages which depend on package.
  • kiss-size: Show the size on disk for an installed package.

cloc

+---------------------------------------+
| Language  files  blank  comment  code |
|---------------------------------------|
| Shell     1      271    391       663 |
+---------------------------------------+