]> pd.if.org Git - zpackage/blobdiff - doc/zpm.8
remove stray debug fprintf
[zpackage] / doc / zpm.8
index 90e1f7ca2dd2b7d476a889a300857010d09d3b33..542bb0f3e19df5e9456d9810c3f5449c16496186 100644 (file)
--- a/doc/zpm.8
+++ b/doc/zpm.8
@@ -1,4 +1,4 @@
-.TH zpm 8 2018-12-07 "ZPM 0.3"
+.TH zpm 8 2019-03-01 "ZPM 0.3"
 .SH NAME
 zpm \- the ultimate package manager
 .SH SYNOPSIS
@@ -9,22 +9,124 @@ zpm \- the ultimate package manager
 .I command
 .i options
 .SH DESCRIPTION
-zpm is the ultimate package manager
+zpm is the ultimate package manager.
+The zpm program itself searches the pathfor zpm sub-commands to run.
+Sub-commands will either be statically linked compiled programs.
 .PP
-zpm manages packages
+ZPM stores packages and package information in zpm databases, which
+are sqlite3 databases with an application id of 0x5a504442.  The
+current user_version is 1.  Both packages and information about installed
+package are stored in zpm databases, with an identical database schema.
+The difference between them is in how they are used and what they
+typically contain.
+.SS Package Names
+.PP
+Packages are identified by a name-version-release triple.
+.PP
+The name is the general name of the package, which must start with a letter,
+and may contain letters, numbers, or a '-'.
+.PP
+The version must start with a numeral, and may contain numerals, letters, and
+'.'.  The version generally matches the upstream version of the software
+in the package, but may be different due to the format requirements or
+as assigned by the packager.
+.PP
+The release is a decimal integer assigned by the packager.
+.PP
+Usually a package may be specified by name or name and version if those
+are unique for the context.
+.SS Package Metadata
+.PP
+Package metadata is collected into stream and hashed with sha256 to
+create a package hash.  This hash may be verified by the admin,
+and may be signed by the packager.
+.SS Package Signing
+.PP
+Packages can be signed by the zpm-sign utility.
+.PP
+Public keys are put into a trust db at /var/lib/zpm/trustdb
+(or $ZPMTRUSTDB, or ~/.zpm/trustdb, or via command line).
+.PP
+zpm-checksignature -t trustdbfile 
+.SS Library Handling
+ZPM understands ELF files, and will automatically calculate elf library
+dependencies.
 .SH OPTIONS
 \-P \fIpath\fR sets a path to the sub-command executables
 .SH EXAMPLES
 .B zpm init \fIpkgfile\fR
 .B zpm list \fIpkgfile\fR
+.SH GLOSSARY
+.TP
+default database
+Many commands take a database to work on.  If not specified via a command
+line option, a path to the database is taken from the ZPMDB environment
+variable of, if that is not set, /var/lib/zpm/local.db is used.
 .SH EXIT STATUS
 0 on success non zero on failure
 .SH FILES
 /var/lib/zpm/local.db
 .SH AUTHOR
 Nathan Wagner
+.SH CREDITS
+.PP
+The following code all has a statement putting it into the public domain.
+.TP
+Ed25519
+adapted from code by Phillip Lay https://www.phlay.de/
+.TP
+TLSE
+TLS code adapted from tlse (heavily, there really isn't much tlse code left).
+.TP
+tomsfastmath and libtomcrypt
+used by the TLS implementation
+.TP
+Chacha20 and Curve25519
+from ref10 implementations by Daniel Bernstein
+.TP
+SQLite
+from https://sqlite.org/index.html
+.TP
+lzma
+from http://git.tukaani.org/xz.git
+.TP
+SSL root certificates
+taken from http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt
+.TP
+JSW data structures code.
+Adapted from JSW's data structures code at http://www.eternallyconfuzzled.com/
+.TP
+Blake2
+Taken from https://github.com/BLAKE2/BLAKE2.git
+.PP
+All other code written by Nathan Wagner and also placed in the public domain.
+.SH LICENSE
+ZPM itself is in the public domain.  Compiled programs themselves
+likely contain code from the C library and are subject to any licensing
+requirements that implies.  Where possible, programs have been statically
+linked with musl rather than glibc, since glibc doesn't actually support
+static linking.  For the musl copyright see https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT.
 .SH SEE ALSO
+.BR zpm-addfile (8)
 .BR zpm-contents (8)
+.BR zpm-elftype (8)
+.BR zpm-extract (8)
+.BR zpm-fetchurl (8)
+.BR zpm-hash (8)
+.BR zpm-init (8)
 .BR zpm-list (8)
-.BR zpm-update (8)
+.BR zpm-log (8)
+.BR zpm-merge (8)
+.BR zpm-packagehash (8)
+.BR zpm-parse (8)
+.BR zpm-quote (8)
 .BR zpm-repo (8)
+.BR zpm-rmpackage (8)
+.BR zpm-shell (8)
+.BR zpm-sign (8)
+.BR zpm-soname (8)
+.BR zpm-soneed (8)
+.BR zpm-stat (8)
+.BR zpm-test (8)
+.BR zpm-update (8)
+.BR zpm-verify (8)