commit 14dcaecae22949ca495992cd93aa741e94a9ee3c
parent fd9e103a350bdda6de083728eb02c3677d1663ec
Author: phoebos <ben@bvnf.space>
Date: Wed, 4 Jun 2025 14:00:34 +0100
add kiss manpages
Diffstat:
7 files changed, 740 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
@@ -0,0 +1,7 @@
+.POSIX:
+
+all: blog man
+blog man:
+ cd $@ && $(MAKE)
+
+.PHONY: all blog man
diff --git a/index.html b/index.html
@@ -35,6 +35,7 @@
<li>download some <a href="/pub/">tarballs</a></li>
<li>read some <a href="/logs/">IRC logs</a></li>
<li>look at an <a href="//kiss.bvnf.space/">archive of the KISS website</a></li>
+ <li>read manpages for kiss: <a href="man/kiss.1.html">kiss.1</a>, <a href="man/kiss.5.html">kiss.5</a></li>
<li>browse <a href="misc/">miscellaneous stuff</a></li>
<li><a href="gemini://bvnf.space/">Gemini server</a></li>
</ul>
diff --git a/man/.gitignore b/man/.gitignore
@@ -0,0 +1 @@
+*.html
diff --git a/man/Makefile b/man/Makefile
@@ -0,0 +1,16 @@
+.POSIX:
+
+HTML = kiss.1.html kiss.5.html
+MAN = kiss.1 kiss.5
+
+all: ${HTML}
+
+kiss.1.html: kiss.1
+ mandoc -Thtml -O man="%N.%S.html",style="mandoc.css" -Ios="KISS Linux" kiss.1 > $@
+kiss.5.html: kiss.5
+ mandoc -Thtml -O man="%N.%S.html",style="mandoc.css" -Ios="KISS Linux" kiss.5 > $@
+
+clean:
+ rm -f ${HTML}
+
+.PHONY: clean all
diff --git a/man/kiss.1 b/man/kiss.1
@@ -0,0 +1,182 @@
+.Dd December 23, 2022
+.Dt KISS 1
+.Os
+.Sh NAME
+.Nm kiss
+.Nd package manager
+.Sh SYNOPSIS
+.Nm
+.Op Ar a|b|c|d|H|i|l|p|r|s|u|U|v
+.Op Ar pkg...
+.Sh DESCRIPTION
+.Nm
+is a tiny, self-contained package manager written in POSIX-compliant shell
+script.
+It is written with portability in mind.
+.Pp
+Running
+.Nm
+without any arguments prints help output.
+Every action can be written as the full name or aliased by the first letter:
+.Bl -tag -width Ds
+.It Ar a|alternatives
+List and swap package alternatives
+.It Ar b|build
+Build packages
+.It Ar c|checksum
+Generate checksums
+.It Ar d|download
+Download sources
+.It Ar H|help-ext
+List all installed extensions (see
+.Sx Extensions ) .
+.It Ar i|install
+Install packages
+.It Ar l|list
+List installed packages
+.It Ar p|preferred
+List the owners of all files with alternatives
+.It Ar r|remove
+Remove packages
+.It Ar s|search
+Search for packages
+.It Ar u|update
+Update the repositories
+.It Ar U|upgrade
+Update the system
+.It Ar v|version
+Print package manager version
+.El
+.Ss Extensions
+Anything in the user's
+.Ev $PATH
+which matches the glob
+.Ql kiss-*
+will be directly usable via the package manager.
+The shortest available alias may also be used for each extension.
+The second line in the script acts as a one-line doc string.
+The default extensions are:
+.Bl -tag -width Ds
+.It Ar chroot
+Enter a kiss chroot
+.It Ar depends
+Display a package's dependencies
+.It Ar fork
+Copy a package's repository files into the current directory
+.It Ar help
+Read KISS documentation
+.It Ar link
+Link a repository file to another repository
+.It Ar maintainer
+Find the maintainer of a package
+.It Ar manifest
+Display all files owned by a package
+.It Ar new
+Create a boilerplate package
+.It Ar orphans
+List orphaned packages
+.It Ar outdated
+Check repository for outdated packages
+.It Ar owns
+Check which package owns a file
+.It Ar revdepends
+Display packages which depend on package
+.It Ar size
+Show the size on disk for a package
+.El
+.Sh ENVIRONMENT
+.Bl -tag -width Ds
+.It Ev KISS_CHK
+The utility to use for SHA256 checksums.
+.Pp
+Valid: openssl, sha256, sha256sum, shasum, digest.
+Default is the first available in that order.
+.It Ev KISS_CHOICE
+Set to
+.Ql 0
+to disable the alternatives system and error on any detected file
+conflicts.
+.It Ev KISS_COLOR
+Set to
+.Ql 0
+to disable colorful output; otherwise colors are disabled when the
+utput is not a terminal.
+.It Ev KISS_COMPRESS
+Compression method to use for built package tarballs.
+.Pp
+Valid: gz (default), bz2, lzma, lz, xz, zst.
+.It Ev KISS_DEBUG
+Set to
+.Ql 1
+to avoid deleting temporary directories after building packages, for
+debugging.
+.It Ev KISS_ELF
+Which readelf command to use.
+.Pp
+Valid: readelf (default), *-readelf, ldd.
+.It Ev KISS_FORCE
+Set to
+.Ql 1
+to bypass dependency checks and force building/installation/removal
+of packages.
+.It Ev KISS_GET
+Which utility to use when downloading sources.
+.Pp
+Valid: aria2c, axel, curl, wget, wget2.
+Default is the first available in that order.
+.It Ev KISS_HOOK
+A colon-separated list of absolute paths to executable files which are run as
+hooks.
+.It Ev KISS_KEEPLOG
+Set to
+.Ql 1
+to keep build logs for successful builds as well as failing ones.
+.It Ev KISS_PATH
+A colon-separated list of paths to repositories, directories which contain
+packages.
+Repositories earlier in the list have a higher priority in the case of a package
+being found in multiple repos.
+.It Ev KISS_PID
+Used to determine the exact name of temporary directories, can be specified for
+debugging.
+.It Ev KISS_PROMPT
+Set to
+.Ql 0
+to say
+.Dq yes
+and skip all prompts from the package manager.
+.It Ev KISS_ROOT
+Where installed packages will go.
+Can be used to install packages to somewhere other than
+.Pa / .
+.It Ev KISS_STRIP
+Set to
+.Ql 0
+to disable stripping package binaries and libraries globally.
+.It Ev KISS_SU
+Privilege escalation utility to use.
+.Pp
+Valid: ssu, sudo, doas, su, or any other tool compatible with sudo-like
+arguments.
+.It Ev KISS_TMPDIR
+Temporary directory used for builds.
+Can be set to a tmpfs (often
+.Pa /tmp
+for example) so that builds happen in memory
+and are faster.
+.El
+.Sh FILES
+.Nm
+does not use any configuration files.
+Files used in packages are documented in
+.Xr kiss 5 .
+.Sh EXIT STATUS
+.Ex -std
+.Sh SEE ALSO
+.Xr kiss 5 ,
+.Lk https://kisslinux.org/wiki/package-manager
+.Sh AUTHORS
+.Nm
+was created by
+.An Dylan Araps
+and the community.
diff --git a/man/kiss.5 b/man/kiss.5
@@ -0,0 +1,147 @@
+.Dd December 23, 2022
+.Dt KISS 5
+.Os
+.Sh NAME
+.Nm kiss
+.Nd package format
+.Sh DESCRIPTION
+KISS packages are comprised of a directory and the series of files contained
+within.
+The name of the package is derived from its directory name.
+The files which comprise the system are as follows:
+.TS
+center box tab(|);
+lb|lb
+l|l.
+File | Required
+_
+build | yes
+checksums | no
+depends | no
+sources | no
+version | yes
+
+pre-remove | no
+post-install | no
+.TE
+.Ss build
+The
+.Pa build
+file is executed in the directory containing the package's extracted
+sources.
+Unlike other distributions, a
+.Ic cd
+is not needed as sources have their top-level directory components stripped
+away.
+.Pp
+The build file is given two arguments: the destination directory (where
+artifacts should be installed) and the first field of the package's version file
+(verbatim).
+.Pp
+The build file is given a modified environment containing DESTDIR, KISS_ROOT,
+GOPATH and generic defaults for toolchain variables (if unset by the user).
+The toolchain defaults are as follows:
+.Bd -literal -offset indent
+AR=ar
+CC=cc
+CXX=c++
+NM=nm
+RANLIB=ranlib
+RUSTFLAGS="--remap-path-prefix=$PWD=. $RUSTFLAGS"
+GOFLAGS="-trimpath -modcacherw $GOFLAGS"
+.Ed
+.Ss checksums
+The
+.Pa checksums
+file is generated by the package manager
+.Ql ( kiss c pkg )
+and is derived from files listed in the package's
+.Pa sources
+file.
+Directories and git repositories do not require checksums.
+.Pp
+Checksum verification can be disabled for a source by replacing its checksum
+with 'SKIP' in the checksums file.
+The package manager will notify you when this occurs.
+.Ss depends
+The
+.Pa depends
+file contains the package's dependencies listed one per line in alphabetical
+order.
+Duplicate entries are not supported.
+The second optional field denotes the dependency type (unset for runtime,
+.Dq make
+for compile-time).
+Lines beginning with
+.Ql #
+are comments.
+.Ss sources
+The
+.Pa sources
+file contains the package's sources one per line.
+A valid source is a URL to a file, relative path, absolute path or Git
+repository.
+The optional second field denotes the relative destination directory.
+Lines beginning with
+.Ql #
+are comments.
+.Pp
+Git repositories must be prefixed with
+.Ql git+ .
+An optional suffix is supported to checkout a specific branch
+.Ql ( @BRANCH )
+or commit
+.Ql ( #COMMIT ) .
+All clones are shallow where supported by the remote server.
+If no suffix is used, master is cloned.
+.Pp
+The following markers can be used to substitute version information.
+These are replaced at runtime with their respective values.
+Literal markers can be escaped by prepending a backslash.
+.TS
+center box tab(|);
+l|l.
+VERSION | The first field of the version file verbatim.
+RELEASE | The second field of the version file verbatim.
+MAJOR | The first component of VERSION split on .-_+
+MINOR | The second component of VERSION split on .-_+
+PATCH | The third component of VERSION split on .-_+
+IDENT | All other components.
+PACKAGE | The name of the package.
+.TE
+.Ss version
+The
+.Pa version
+file is a single line split into two mandatory fields.
+The first field is the package's version and the second field the version of the
+repository files themselves.
+.Pp
+If the package follows its upstream release schedule, the first field should
+match the upstream version number.
+If the source is a Git repository, the version should be set to
+.Ql git .
+If a specific git commit is used, the version number should match accordingly.
+.Ss pre-remove
+The
+.Pa pre-remove
+file is executed before removal of the package.
+This file should be used to perform any required pre-removal steps or to display
+notices.
+.Ss post-install
+The
+.Pa post-install
+file is executed after installation of the package.
+This file
+should be used to perform any required post-install steps or to display notices.
+.Sh SEE ALSO
+.Xr kiss 1 ,
+.Lk https://kisslinux.org/wiki/package-system
+.Sh HISTORY
+Originally, SHA256 was used as the checksum algorithm.
+In September 2022, the checksums were switched to use BLAKE3 for speed
+improvements.
+.Sh AUTHORS
+.Nm
+was created by
+.An Dylan Araps
+and the community.
diff --git a/man/mandoc.css b/man/mandoc.css
@@ -0,0 +1,385 @@
+/* $OpenBSD: mandoc.css,v 1.36 2022/03/17 18:45:43 schwarze Exp $ */
+/*
+ * Standard style sheet for mandoc(1) -Thtml and man.cgi(8).
+ *
+ * Written by Ingo Schwarze <schwarze@openbsd.org>.
+ * I place this file into the public domain.
+ * Permission to use, copy, modify, and distribute it for any purpose
+ * with or without fee is hereby granted, without any conditions.
+ */
+
+/* Global defaults. */
+
+html { max-width: 65em;
+ --bg: #FFFFFF;
+ --fg: #000000; }
+body { background: var(--bg);
+ color: var(--fg);
+ font-family: Helvetica,Arial,sans-serif; }
+h1 { font-size: 110%; }
+table { margin-top: 0em;
+ margin-bottom: 0em;
+ border-collapse: collapse; }
+/* Some browsers set border-color in a browser style for tbody,
+ * but not for table, resulting in inconsistent border styling. */
+tbody { border-color: inherit; }
+tr { border-color: inherit; }
+td { vertical-align: top;
+ padding-left: 0.2em;
+ padding-right: 0.2em;
+ border-color: inherit; }
+ul, ol, dl { margin-top: 0em;
+ margin-bottom: 0em; }
+li, dt { margin-top: 1em; }
+pre { font-family: inherit; }
+
+.permalink { border-bottom: thin dotted;
+ color: inherit;
+ font: inherit;
+ text-decoration: inherit; }
+* { clear: both }
+
+/* Search form and search results. */
+
+fieldset { border: thin solid silver;
+ border-radius: 1em;
+ text-align: center; }
+input[name=expr] {
+ width: 25%; }
+
+table.results { margin-top: 1em;
+ margin-left: 2em;
+ font-size: smaller; }
+
+/* Header and footer lines. */
+
+table.head { width: 100%;
+ border-bottom: 1px dotted #808080;
+ margin-bottom: 1em;
+ font-size: smaller; }
+td.head-vol { text-align: center; }
+td.head-rtitle {
+ text-align: right; }
+
+table.foot { width: 100%;
+ border-top: 1px dotted #808080;
+ margin-top: 1em;
+ font-size: smaller; }
+td.foot-os { text-align: right; }
+
+/* Sections and paragraphs. */
+
+.manual-text {
+ margin-left: 3.8em; }
+.Nd { }
+section.Sh { }
+h1.Sh { margin-top: 1.2em;
+ margin-bottom: 0.6em;
+ margin-left: -3.2em; }
+section.Ss { }
+h2.Ss { margin-top: 1.2em;
+ margin-bottom: 0.6em;
+ margin-left: -1.2em;
+ font-size: 105%; }
+.Pp { margin: 0.6em 0em; }
+.Sx { }
+.Xr { }
+
+/* Displays and lists. */
+
+.Bd { }
+.Bd-indent { margin-left: 3.8em; }
+
+.Bl-bullet { list-style-type: disc;
+ padding-left: 1em; }
+.Bl-bullet > li { }
+.Bl-dash { list-style-type: none;
+ padding-left: 0em; }
+.Bl-dash > li:before {
+ content: "\2014 "; }
+.Bl-item { list-style-type: none;
+ padding-left: 0em; }
+.Bl-item > li { }
+.Bl-compact > li {
+ margin-top: 0em; }
+
+.Bl-enum { padding-left: 2em; }
+.Bl-enum > li { }
+.Bl-compact > li {
+ margin-top: 0em; }
+
+.Bl-diag { }
+.Bl-diag > dt {
+ font-style: normal;
+ font-weight: bold; }
+.Bl-diag > dd {
+ margin-left: 0em; }
+.Bl-hang { }
+.Bl-hang > dt { }
+.Bl-hang > dd {
+ margin-left: 5.5em; }
+.Bl-inset { }
+.Bl-inset > dt { }
+.Bl-inset > dd {
+ margin-left: 0em; }
+.Bl-ohang { }
+.Bl-ohang > dt { }
+.Bl-ohang > dd {
+ margin-left: 0em; }
+.Bl-tag { margin-top: 0.6em;
+ margin-left: 5.5em; }
+.Bl-tag > dt {
+ float: left;
+ margin-top: 0em;
+ margin-left: -5.5em;
+ padding-right: 0.5em;
+ vertical-align: top; }
+.Bl-tag > dd {
+ clear: right;
+ column-count: 1; /* Force block formatting context. */
+ width: 100%;
+ margin-top: 0em;
+ margin-left: 0em;
+ margin-bottom: 0.6em;
+ vertical-align: top; }
+.Bl-compact { margin-top: 0em; }
+.Bl-compact > dd {
+ margin-bottom: 0em; }
+.Bl-compact > dt {
+ margin-top: 0em; }
+
+.Bl-column { }
+.Bl-column > tbody > tr { }
+.Bl-column > tbody > tr > td {
+ margin-top: 1em; }
+.Bl-compact > tbody > tr > td {
+ margin-top: 0em; }
+
+.Rs { font-style: normal;
+ font-weight: normal; }
+.RsA { }
+.RsB { font-style: italic;
+ font-weight: normal; }
+.RsC { }
+.RsD { }
+.RsI { font-style: italic;
+ font-weight: normal; }
+.RsJ { font-style: italic;
+ font-weight: normal; }
+.RsN { }
+.RsO { }
+.RsP { }
+.RsQ { }
+.RsR { }
+.RsT { text-decoration: underline; }
+.RsU { }
+.RsV { }
+
+.eqn { }
+.tbl td { vertical-align: middle; }
+
+.HP { margin-left: 3.8em;
+ text-indent: -3.8em; }
+
+/* Semantic markup for command line utilities. */
+
+table.Nm { }
+code.Nm { font-style: normal;
+ font-weight: bold;
+ font-family: inherit; }
+.Fl { font-style: normal;
+ font-weight: bold;
+ font-family: inherit; }
+.Cm { font-style: normal;
+ font-weight: bold;
+ font-family: inherit; }
+.Ar { font-style: italic;
+ font-weight: normal; }
+.Op { display: inline flow; }
+.Ic { font-style: normal;
+ font-weight: bold;
+ font-family: inherit; }
+.Ev { font-style: normal;
+ font-weight: normal;
+ font-family: monospace, monospace;
+ font-size: 0.9em; }
+.Pa { font-style: italic;
+ font-weight: normal; }
+
+/* Semantic markup for function libraries. */
+
+.Lb { }
+code.In { font-style: normal;
+ font-weight: bold;
+ font-family: inherit; }
+a.In { }
+.Fd { font-style: normal;
+ font-weight: bold;
+ font-family: inherit; }
+.Ft { font-style: italic;
+ font-weight: normal; }
+.Fn { font-style: normal;
+ font-weight: bold;
+ font-family: inherit; }
+.Fa { font-style: italic;
+ font-weight: normal; }
+.Vt { font-style: italic;
+ font-weight: normal; }
+.Va { font-style: italic;
+ font-weight: normal; }
+.Dv { font-style: normal;
+ font-weight: normal;
+ font-family: monospace, monospace;
+ font-size: 0.9em; }
+.Er { font-style: normal;
+ font-weight: normal;
+ font-family: monospace, monospace;
+ font-size: 0.9em; }
+
+/* Various semantic markup. */
+
+.An { }
+.Lk { }
+.Mt { }
+.Cd { font-style: normal;
+ font-weight: bold;
+ font-family: inherit; }
+.Ad { font-style: italic;
+ font-weight: normal; }
+.Ms { font-style: normal;
+ font-weight: bold; }
+.St { }
+.Ux { }
+
+/* Physical markup. */
+
+.Bf { display: inline flow; }
+.No { font-style: normal;
+ font-weight: normal; }
+.Em { font-style: italic;
+ font-weight: normal; }
+.Sy { font-style: normal;
+ font-weight: bold; }
+.Li { font-style: normal;
+ font-weight: normal;
+ font-family: monospace, monospace;
+ font-size: 0.9em; }
+
+/* Tooltip support. */
+
+h1.Sh, h2.Ss { position: relative; }
+.An, .Ar, .Cd, .Cm, .Dv, .Em, .Er, .Ev, .Fa, .Fd, .Fl, .Fn, .Ft,
+.Ic, code.In, .Lb, .Lk, .Ms, .Mt, .Nd, code.Nm, .Pa, .Rs,
+.St, .Sx, .Sy, .Va, .Vt, .Xr {
+ position: relative; }
+
+.An::before { content: "An"; }
+.Ar::before { content: "Ar"; }
+.Cd::before { content: "Cd"; }
+.Cm::before { content: "Cm"; }
+.Dv::before { content: "Dv"; }
+.Em::before { content: "Em"; }
+.Er::before { content: "Er"; }
+.Ev::before { content: "Ev"; }
+.Fa::before { content: "Fa"; }
+.Fd::before { content: "Fd"; }
+.Fl::before { content: "Fl"; }
+.Fn::before { content: "Fn"; }
+.Ft::before { content: "Ft"; }
+.Ic::before { content: "Ic"; }
+code.In::before { content: "In"; }
+.Lb::before { content: "Lb"; }
+.Lk::before { content: "Lk"; }
+.Ms::before { content: "Ms"; }
+.Mt::before { content: "Mt"; }
+.Nd::before { content: "Nd"; }
+code.Nm::before { content: "Nm"; }
+.Pa::before { content: "Pa"; }
+.Rs::before { content: "Rs"; }
+h1.Sh::before { content: "Sh"; }
+h2.Ss::before { content: "Ss"; }
+.St::before { content: "St"; }
+.Sx::before { content: "Sx"; }
+.Sy::before { content: "Sy"; }
+.Va::before { content: "Va"; }
+.Vt::before { content: "Vt"; }
+.Xr::before { content: "Xr"; }
+
+.An::before, .Ar::before, .Cd::before, .Cm::before,
+.Dv::before, .Em::before, .Er::before, .Ev::before,
+.Fa::before, .Fd::before, .Fl::before, .Fn::before, .Ft::before,
+.Ic::before, code.In::before, .Lb::before, .Lk::before,
+.Ms::before, .Mt::before, .Nd::before, code.Nm::before,
+.Pa::before, .Rs::before,
+h1.Sh::before, h2.Ss::before, .St::before, .Sx::before, .Sy::before,
+.Va::before, .Vt::before, .Xr::before {
+ opacity: 0;
+ transition: .15s ease opacity;
+ pointer-events: none;
+ position: absolute;
+ bottom: 100%;
+ box-shadow: 0 0 .35em var(--fg);
+ padding: .15em .25em;
+ white-space: nowrap;
+ font-family: Helvetica,Arial,sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ background: var(--bg);
+ color: var(--fg); }
+.An:hover::before, .Ar:hover::before, .Cd:hover::before, .Cm:hover::before,
+.Dv:hover::before, .Em:hover::before, .Er:hover::before, .Ev:hover::before,
+.Fa:hover::before, .Fd:hover::before, .Fl:hover::before, .Fn:hover::before,
+.Ft:hover::before, .Ic:hover::before, code.In:hover::before,
+.Lb:hover::before, .Lk:hover::before, .Ms:hover::before, .Mt:hover::before,
+.Nd:hover::before, code.Nm:hover::before, .Pa:hover::before,
+.Rs:hover::before, h1.Sh:hover::before, h2.Ss:hover::before, .St:hover::before,
+.Sx:hover::before, .Sy:hover::before, .Va:hover::before, .Vt:hover::before,
+.Xr:hover::before {
+ opacity: 1;
+ pointer-events: inherit; }
+
+/* Overrides to avoid excessive margins on small devices. */
+
+@media (max-width: 37.5em) {
+.manual-text {
+ margin-left: 0.5em; }
+h1.Sh, h2.Ss { margin-left: 0em; }
+.Bd-indent { margin-left: 2em; }
+.Bl-hang > dd {
+ margin-left: 2em; }
+.Bl-tag { margin-left: 2em; }
+.Bl-tag > dt {
+ margin-left: -2em; }
+.HP { margin-left: 2em;
+ text-indent: -2em; }
+}
+
+/* Overrides for a dark color scheme for accessibility. */
+
+@media (prefers-color-scheme: dark) {
+html { --bg: #1E1F21;
+ --fg: #EEEFF1; }
+:link { color: #BAD7FF; }
+:visited { color: #F6BAFF; }
+}
+
+/*
+ FILE ARCHIVED ON 07:10:04 May 04, 2022 AND RETRIEVED FROM THE
+ INTERNET ARCHIVE ON 21:36:31 Mar 03, 2023.
+ JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
+
+ ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
+ SECTION 108(a)(3)).
+*/
+/*
+playback timings (ms):
+ captures_list: 213.441
+ exclusion.robots: 0.145
+ exclusion.robots.policy: 0.135
+ RedisCDXSource: 0.853
+ esindex: 0.007
+ LoadShardBlock: 184.418 (3)
+ PetaboxLoader3.datanode: 86.984 (5)
+ PetaboxLoader3.resolve: 322.693 (4)
+ load_resource: 305.141 (2)
+*/
+\ No newline at end of file