]> pd.if.org Git - zpackage/blob - doc/zpm.8
add test vectors for zpm-sign
[zpackage] / doc / zpm.8
1 .TH zpm 8 2019-02-15 "ZPM 0.3"
2 .SH NAME
3 zpm \- the ultimate package manager
4 .SH SYNOPSIS
5 .B zpm
6 [
7 .I \-P path
8 ]
9 .I command
10 .i options
11 .SH DESCRIPTION
12 zpm is the ultimate package manager.
13 The zpm program itself searches the pathfor zpm sub-commands to run.
14 Sub-commands will either be statically linked compiled programs.
15 .PP
16 ZPM stores packages and package information in zpm databases, which
17 are sqlite3 databases with an application id of 0x5a504442.  The
18 current user_version is 1.  Both packages and information about installed
19 package are stored in zpm databases, with an identical database schema.
20 The difference between them is in how they are used and what they
21 typically contain.
22 .SS Package Names
23 .PP
24 Packages are identified by a name-version-release triple.
25 .PP
26 The name is the general name of the package, which must start with a letter,
27 and may contain letters, numbers, or a '-'.
28 .PP
29 The version must start with a numeral, and may contain numerals, letters, and
30 '.'.  The version generally matches the upstream version of the software
31 in the package, but may be different due to the format requirements or
32 as assigned by the packager.
33 .PP
34 The release is a decimal integer assigned by the packager.
35 .PP
36 Usually a package may be specified by name or name and version if those
37 are unique for the context.
38 .SS Package Metadata
39 .PP
40 Package metadata is collected into stream and hashed with sha256 to
41 create a package hash.  This hash may be verified by the admin,
42 and may be signed by the packager.
43 .SS Package Signing
44 .PP
45 Packages can be signed by the zpm-sign utility.
46 .PP
47 Public keys are put into a trust db at /var/lib/zpm/trustdb
48 (or $ZPMTRUSTDB, or ~/.zpm/trustdb, or via command line).
49 .PP
50 zpm-checksignature -t trustdbfile 
51 .SS Library Handling
52 ZPM understands ELF files, and will automatically calculate elf library
53 dependencies.
54 .SH OPTIONS
55 \-P \fIpath\fR sets a path to the sub-command executables
56 .SH EXAMPLES
57 .B zpm init \fIpkgfile\fR
58 .B zpm list \fIpkgfile\fR
59 .SH GLOSSARY
60 .TP
61 default database
62 Many commands take a database to work on.  If not specified via a command
63 line option, a path to the database is taken from the ZPMDB environment
64 variable of, if that is not set, /var/lib/zpm/local.db is used.
65 .SH EXIT STATUS
66 0 on success non zero on failure
67 .SH FILES
68 /var/lib/zpm/local.db
69 .SH AUTHOR
70 Nathan Wagner
71 .SH CREDITS
72 .PP
73 The following code all has a statement putting it into the public domain.
74 .TP
75 Ed25519
76 adapted from code by Phillip Lay https://www.phlay.de/
77 .TP
78 TLSE
79 TLS code adapted from tlse (heavily, there really isn't much tlse code left).
80 .TP
81 tomsfastmath and libtomcrypt
82 used by the TLS implementation
83 .TP
84 Chacha20 and Curve25519
85 from ref10 implementations by Daniel Bernstein
86 .TP
87 SQLite
88 from https://sqlite.org/index.html
89 .TP
90 lzma
91 from http://git.tukaani.org/xz.git
92 .TP
93 SSL root certificates
94 taken from http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt
95 .PP
96 All other code written by Nathan Wagner and also placed in the public domain.
97 .SH LICENSE
98 ZPM itself is in the public domain.  Compiled programs themselves
99 likely contain code from the C library and are subject to any licensing
100 requirements that implies.  Where possible, programs have been statically
101 linked with musl rather than glibc, since glibc doesn't actually support
102 static linking.  For the musl copyright see https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT.
103 .SH SEE ALSO
104 .BR zpm-addfile (8)
105 .BR zpm-contents (8)
106 .BR zpm-elftype (8)
107 .BR zpm-extract (8)
108 .BR zpm-fetchurl (8)
109 .BR zpm-hash (8)
110 .BR zpm-init (8)
111 .BR zpm-list (8)
112 .BR zpm-log (8)
113 .BR zpm-merge (8)
114 .BR zpm-packagehash (8)
115 .BR zpm-parse (8)
116 .BR zpm-quote (8)
117 .BR zpm-repo (8)
118 .BR zpm-rmpackage (8)
119 .BR zpm-shell (8)
120 .BR zpm-sign (8)
121 .BR zpm-soname (8)
122 .BR zpm-soneed (8)
123 .BR zpm-stat (8)
124 .BR zpm-test (8)
125 .BR zpm-update (8)
126 .BR zpm-verify (8)