From 4cc633bc5789f04647c6e73bdc9468a5e4f1c184 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Tue, 12 May 2020 11:44:57 +0300 Subject: [PATCH] docs: update --- README.md | 75 ++++++++++++++++++++++++++++++++++--------------------- kiss | 2 +- 2 files changed, 47 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 6975c6c..40f471a 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,17 @@ Tiny and straightforward package manager for KISS written in POSIX `sh`. -- Only 600~ lines of POSIX `sh` (See [cloc](#cloc)). +- Less than 1000 lines of POSIX `sh` (excluding blank lines and comments). - Runtime dependency detection. - Incremental package installation. - Fast dependency solver. - File conflict detection. - Package alternatives system. +- 3-way handshake for /etc/ configuration files. - Binary stripping. - `shellcheck` compliant. -## `kiss` Guidestones - -Read: https://k1ss.org/guidestones.txt - ## Usage ```sh @@ -31,16 +28,51 @@ Read: https://k1ss.org/guidestones.txt -> version: Package manager version ``` -## Index - - - -* [Package format](#package-format) -* [Extending the package manager](#extending-the-package-manager) -* [cloc](#cloc) - - +## Dependencies / Portability +```sh +# - Anything with a specification should follow it (POSIX, BSD, etc). +# - Anything without a specification which has ONLY a single (widely used) +# implementation will be considered portable (git, curl, etc). +# +# POSIX utilities +# - sh (POSIX) +# - find (POSIX) -type f, -type d, -exec {} [+;], -o, -print, ! +# - ls (POSIX) -l, -d +# - sed (POSIX) -n, s///g, //d +# - grep (POSIX) -l, -F, -x, -f, -q, -v +# - sort (POSIX) -r, -u, -k +# - tee (POSIX) -a +# - date (POSIX) +# - mkdir (POSIX) -p +# - rm (POSIX) -f, -r +# - rmdir (POSIX) +# - cp (POSIX) -f, -P, -p, -L, -R +# - mv (POSIX) -f +# - chown (POSIX) -h +# - diff (POSIX) -U +# +# Misc +# - su* (sudo, doas, su) (in order, optional) +# - git (downloads from git) (must link to curl) +# - curl (downloads over http) (also needed by git) +# - sha256 (multiple fallbacks: sha256sum, shasum, sha256, openssl, etc) +# +# Compiler/libc utilities (depends cc & libc) +# - readelf (optional) (Part of compiler toolchain) (GNU, LLVM or elfutils) +# - strip (optional) (Part of compiler toolchain) (GNU, LLVM or elfutils) +# - ldd (optional) (Part of libc) +# +# Tarball compression +# - tar (as portable as can be) (merely: cf, tf, xf) +# - bzip2 (widely used) -d, -z +# - xz (widely used) -d, -z, -c, -T +# - gzip (widely used) -d, -6 +# - zstd (optional) -d, -z, -c +# - unzip (optional) +# - lzma (optional) +# - lzip (optional) +``` ## Package format @@ -51,33 +83,18 @@ See: 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 | -+---------------------------------------+ -``` diff --git a/kiss b/kiss index 9a8ecd8..0a6264f 100755 --- a/kiss +++ b/kiss @@ -33,7 +33,7 @@ # Misc # - su* (sudo, doas, su) (in order, optional) # - git (downloads from git) (must link to curl) -# - curl (needed by git) +# - curl (downloads over http) (also needed by git) # - sha256 (multiple fallbacks: sha256sum, shasum, sha256, openssl, etc) # # Compiler/libc utilities (depends cc & libc)