diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 216 |
1 files changed, 4 insertions, 212 deletions
@@ -36,8 +36,6 @@ Read: https://k1ss.org/guidestones.txt <!-- vim-markdown-toc GFM --> * [Package format](#package-format) -* [Customization](#customization) -* [Alternatives system](#alternatives-system) * [Extending the package manager](#extending-the-package-manager) <!-- vim-markdown-toc --> @@ -45,227 +43,21 @@ Read: https://k1ss.org/guidestones.txt ## Package format -See: <https://k1ss.org/pages/package-system/> +See: <https://k1ss.org/package-system> -## Customization - -```sh -# The package manager is controlled through environment variables. -# -# These can be set in your '.profile' or '/etc/profile.d' to have -# the options apply all the time. -# -# These can also be set in the current shell to have them apply -# only for the current session. -# -# NOTE: The values shown below are the defaults. - -# Managing repositories. -# -# This works exactly like '$PATH' (Colon separated). -# -# A list of repositories the package manager will use. You can -# add your own repositories or remove the default ones. -export KISS_PATH=/var/db/kiss/repo/core:/var/db/kiss/repo/extra:/var/db/kiss/repo/xorg - -# Force package installation or removal. -# -# This can be used to bypass the dependency checks on installation -# and removal of packages. -# -# Set it to '1' to force. -export KISS_FORCE=0 - -# Hook into kiss through a script. -# -# This can be used set custom CFLAGS per package, modify builds, -# etc. This environment variable must point to a shellscript. -# -# The script will have the following environment variables set. -# -# $PKG: Name of the current package . -# $TYPE: The type of hook (valid: pre-build, post-build). -# $DEST: The full path to where 'make install' will put the package. -# -# Simple example script: -# -# case $TYPE in -# pre-build) -# case $PKG in -# zlib) export CFLAGS="-Os -static" ;; -# curl) export CFLAGS="-O3" ;; -# esac -# ;; -# -# post-build) -# : "${DEST:?DEST is unset}" -# -# rm -rf "$DEST/usr/share/doc" -# rm -rf "$DEST/usr/share/gettext" -# ;; -# esac -# -export KISS_HOOK=/path/to/script - -# Root directory. -# -# Where installed packages will go. You won't ever need -# to touch this during normal usage. -# -# This can be used to have the package manager run in a "fake root". -export KISS_ROOT=/ - -# Keep build logs around for successful builds and not just failing -# ones. Helpful when debugging. -# -# Set it to '1' to enable. -export KISS_DEBUG=0 - -# Force the usage of a different 'sudo' tool. -# -# Values: 'su', 'sudo', 'doas' -export KISS_SU= - -# Use a reproducible cache naming scheme. -# -# The package manager builds packages inside 'build-$PID/' with '$PID' -# being the package manager's process ID. This allows for multiple -# builds to happen at once. -# -# You can override this and _know_ the location beforehand with the -# below environment variable. 'KISS_PID=test' will build the package -# in 'build-test'. -# -# Unset by default. -export KISS_PID= - - -# -# non-package-manager related options. -# These are listed for clarity. -# - - -# Cache directory location. -export XDG_CACHE_HOME=$HOME/.cache/ - -# Compiler. -export CC=gcc -export CXX=g++ - -# AR. -export AR=ar - -# NM. -export NM=nm - -# RANLIB. -export RANLIB=ranlib - -# Compiler flags. -# Good value: CFLAGS/CXXFLAGS='-march=native -pipe -O2' -export CFLAGS= -export CXXFLAGS= - -# Linker flags. -export LDFLAGS= - -# Make flags. -# Good value: MAKEFLAGS='-j4' (number of cores). -export MAKEFLAGS= - -# Ninja (Samurai) flags. -# Good value: SAMUFLAGS='-j4' (number of cores). -export SAMUFLAGS= - -# Cmake Generator. -# Good value (Ninja): export CMAKE_GENERATOR='Ninja' -# Good value (Makefiles): export CMAKE_GENERATOR='Unix Makefiles' -export CMAKE_GENERATOR= -``` - -## Alternatives system - -When a package with conflicts is installed the conflicting -files will be added as "choices" to the alternatives system. - -Afterwards, running kiss a/kiss alternatives will list all of -the choices you are able to make. Each line of output with this -command is also usable directly as input. - -NOTE: To disable this functionality, set 'KISS_CHOICE=0'. - -Example usage: - -```sh -# List alternatives. --> kiss a --> Alternatives: -ncurses /usr/bin/clear -ncurses /usr/bin/reset - -# Swap to ncurses 'clear'. --> kiss a ncurses /usr/bin/clear --> Swapping '/usr/bin/clear' from 'busybox' to 'ncurses' -Password: - -# New listing (busybox clear was swapped out). --> kiss a --> Alternatives: -busybox /usr/bin/clear -ncurses /usr/bin/reset -``` - -Example usage (complex): - -```sh --> kiss i sbase -# More lines... --> sbase Found conflict (/usr/bin/renice), adding choice --> sbase Found conflict (/usr/bin/logger), adding choice --> sbase Found conflict (/usr/bin/flock), adding choice --> sbase Found conflict (/usr/bin/cal), adding choice --> sbase Installing package incrementally --> sbase Installed successfully - -# List alternatives. --> kiss a --> Alternatives: -# More lines... -sbase /usr/bin/uuencode -sbase /usr/bin/wc -sbase /usr/bin/which -sbase /usr/bin/whoami -sbase /usr/bin/xargs -sbase /usr/bin/yes - -# Swapping in bulk (all of sbase). -# The 'kiss a' command with '-' as an argument will read -# from stdin and use each line as arguments to 'kiss a'. -kiss a | grep ^sbase | kiss a - - -# New listing, sbase has replaced busybox utilities. --> kiss a --> Alternatives: -# More lines... -busybox /usr/bin/uuencode -busybox /usr/bin/wc -busybox /usr/bin/which -busybox /usr/bin/whoami -busybox /usr/bin/xargs -busybox /usr/bin/yes -``` - ## 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. |