annotate HOWTO.md @ 388:d200ec45c513

security/shadow: rename from core/shadow
author David Demelier <markand@malikania.fr>
date Mon, 01 Apr 2019 20:28:00 +0200
parents 7b000befead5
children 0b7acfc69fec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 # vanilla HOWTO
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
2
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 This documentation explains how to write a package file.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
4
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 Each package lives under a dedicated directory broken down into several
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 categories. Change the directory to the desired package and use `vpk build` to
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 construct a package. The repository does not contain the distribution files from
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 upstream but `vpk build` will download them for you if not present (see also
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 `vpk download` command).
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
10
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 Note: vpk build does not handle dependencies.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
12
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 Example with lib/zlib
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
14
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # cd lib/zlib
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # vpk build
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
17
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 If build succeeded, you can install the package as
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 /tmp/vpk/zlib#version-revision-arch.txz
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 Tip: you can use `vpk build -q` to silent the process.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 # How to create a new package
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 To create a new package, create a directory in the appropriate category
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 directory. Then create the sscript file. See Templates directory.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 Example, if you want to create a package abc in category lib you must have the
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 following files.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 lib/abc
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 lib/abc/abc.sh
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
33
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 The following variables must be present:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 - PKGNAME: the package name
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 - PKGVERSION: the package upstream version
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 - PKGREVISION: the vanilla revision (starts at 1)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 - PKGLICENSE: a space separated list of licenses (see README.licenses.md)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 - PKGSUMMARY: a short summary
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 The following variables are optional
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 - PKGDEPENDS: a space separated list of packages required to build. Use the
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 syntax category/package for runtime requirement (includes building too) and
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 category/package:build for build requirement only.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 - PKGDOWNLOAD: a space separated list of files to download from the web, if the
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 package does not need to download anything don't set it.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 - PKGUIDS: a space separated list of uid to create
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 - PKGGIDS: a space separated list of gid to create
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 - PKGPROTECT: a space separated list of relative path to files to preserve on
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 installation (e.g. etc/nginx/nginx.conf)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 - PKGOPTIONS: a space separated list of CAPITALIZED options.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 The script file is the build procedure for the package. It must be as simple as
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 possible as its sole purpose is to build and install files through the DESTDIR
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 variable.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 There are already various of templates in the templates/ directory.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
60
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 # Topics
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 ## Licenses
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 Use the following licenses in *PKGLICENSE* or CUSTOM.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 - AGPLv3
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 - AGPLv3+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 - APACHE10
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 - APACHE11
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 - APACHE20
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 - BOOST
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 - BSD
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 - BSD2CLAUSE
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 - BSD3CLAUSE
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 - BSD4CLAUSE
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 - GFDL
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 - GPLv1
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 - GPLv1+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 - GPLv2
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 - GPLv2+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 - GPLv3
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 - GPLv3+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 - ISC
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 - LGPLv20
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 - LGPLv20+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 - LGPLv21
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 - LGPLv21+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 - LGPLv3
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 - LGPLv3+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 - MIT
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 - UNLICENSE
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 ## Dependencies
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
95
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 The variable *PKGDEPENDS* is filled up with package origins, thus you need to
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 write *lib/zlib* NOT *zlib*.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 Also, the following qualifiers may be appended to the dependency to alter the
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 meaning:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
101
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 - `:build` the dependency is only required for building,
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 - `:optional` the dependency is optional and not strictly required.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 - `:recommended` same as optional but installed by default.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
105
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 Example:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 PKGDEPENDS="dev/cmake:build graphics/qt5:recommended lib/zlib"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 ## Configuration files
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
111
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 Configuration files (usually everything under /etc) must be marked as well in
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 *PKGPROTECT* variables. This prevents `vpk` for overriding user configurations.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
114
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 Note: if the package ships a init script file, it must be marked as well.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
116
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 Example:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
118
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 PKGPROTECT="/etc/nginx.conf /etc/rc.d/nginx"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 ## Uids / Gids
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
122
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 If the package requires UNIX users and groups, adapt the *PKGUIDS* and *PKGGIDS*
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 variables as a space separated list. You can assign a default numeric id using
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 the syntax `:number`.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
126
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 Example:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
128
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 PKGUIDS="messagebus" # vpk will assign an id
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 PKGUIDS="gdm:55" # vpk will use 55
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
131
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 Warning: if you need to change file permissions, do it *ONLY* in a post install
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 script as users may have set different numeric id than the package defaults.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
134
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 ## Options
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
136
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 Some packages are configurable via compile time options. Check the variable
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 PKGOPTIONS in the script file and read the associated documentation for more
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 explanation. Options are usually passed as environment variables
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
140
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 Example with network/wget:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
142
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 # cd network/wget
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 # SSL=openssl NLS=no vpk build
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
145
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 Add the desired options in *PKGOPTIONS* variable and don't forget to set default
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 values.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
148
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 Example with NLS
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
150
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 PKGOPTIONS="NLS"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
152
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 : ${NLS:=yes}
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
154
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 if [ "$NLS" = "yes" ]; then
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 PKGDEPENDS="core/gettext $PKGDEPENDS"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 with_nls="--enable-nls"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 else
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 with_nls="--disable-nls"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 fi
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
161
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 Then at configure step:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
163
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 ./configure $with_nls
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
165
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 Proper handling of options is done by explicitly disabling/enabling options.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 Most programs will try to enable/disable features depending on what is available
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 on the system thus, if the package finds a dependency and enable it you need to
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 adapt *PKGDEPENDS*. Always check what options are available in the package and
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 use their default as explicit knobs to avoid invisible dependencies.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
171
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 Use the following predefined options before creating your own.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
173
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 - ACL: enable access control list support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 - BLUETOOTH: enable bluetooth support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 - BZIP2: enable bzip2 compression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 - DBUS: enable D-Bus support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 - DOXYGEN: enable doxygen documentation support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 - DRM: enable direct rendering manager support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 - DTD: enable XML validation support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 - EGL: enable EGL support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 - FONTCONFIG: enable fontconfig support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 - FREETYPE: enable freetype support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 - GALLIUM: enable LLVM gallium support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 - GDBM: enable GNU database support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 - GLAMOR: enable 2D graphics support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 - GLES2: enable GLES2 support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 - GLES3: enable GLES3 support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 - GMP: enable GNU multiple precision library
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 - GTK2: enable Gtk 2 toolkit support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 - GTK3: enable Gtk 3 toolkit support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 - GTK4: enable Gtk 4 toolkit support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 - GUILE: enable GNU guile support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 - IDN2: enable libidn2 support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 - KMS: enable kernel mode settings support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 - LLVM: enable LLVM support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 - LZ4: enable lz4 compression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 - LZMA: enable lzma compression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 - MNL: enable netlink minimalistic library support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 - NLS: enable native language support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 - PAM: enable PAM support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
202 - PCRE: enable perl-like regular expression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 - PULSEAUDIO: enable PulseAudio support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 - PYTHON: enable Python 3 bindings or support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
205 - QT5: enable Qt 5 toolkit support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 - SPHINX: enable sphinx documentation support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 - SSH: enable SSH support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 - SSL: enable SSL/TLS, some packages offer several choices (e.g. openssl, gnutls)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 - UDEV: enable eudev support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 - UUID: enable UUID support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 - WACOM: enable wacom support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 - WAYLAND: enable wayland support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 - X: enable X.Org support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 - XML: enable XML support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 - XZ: enable XZ support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 - ZLIB: enable zlib compression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 - ZSTD: enable zstd compression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
218
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 Always try to make an option easy to understand and not package specific. For
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 example BLUETOOTH is preferred over BLUEZ because a user knows what bluetooth is
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 but may not know that bluez is the current reference implementation. Also, it is
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 preferred to make an option generic to allow multiple values in case the
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 package offers it.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
224
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 Example, if a package offers different implementations for SSL, consider the
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 option with a value (e.g. SSL=openssl, SSL=gnutls, and such).
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
227
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 Also, if a package offers different implementations that can be enabled all
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 together, use a list separated by space (e.g. XML="libxml2 expat").
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
230
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 Those options should only change the package behaviour, for example: manual
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
232 pages or any other resource files that are not strictly required; they must be
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 installed and the user may exclude them via `vpk` instead.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
234
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 The following options should be available for any package that builds C or C++
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 code:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
237
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 - CBUILD: build system (usually ARCH-linux-musl)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 - CHOST: host system (usually ARCH-linux-musl)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
240 - CTARGET: target system (usually ARCH-linux-musl)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 - CC: C compiler (defaults to gcc)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
242 - CFLAGS: C flags (defaults to -O2)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
243 - CXX: C++ compiler (defaults to g++)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 - CXXFLAGS: C++ flags (defaults to -O2)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
245
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
246 ## Keep vanilla
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
247
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 Do not make any modifications to the package. Keep it as close to upstream as
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 possible. Only minor tweaks are allowed including:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
250
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 - adjusting pid/uid/gid in a default configuration file for easier deployment
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 (but not on the original file example)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
253 - disabling static libraries
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 - making sure paths are consolidated
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
255 - making sure system libraries are used rather than in-source bundles
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
256
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
257 ## Package naming
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
258
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
259 The following prefixes must be used for those packages:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
260
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 - py-: for python modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
262 - ruby-: for native ruby modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 - rubygem-: for rubygems modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
264 - p5-: for perl 5 modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
265 - hs-: for haskell modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 - font-: for fonts (of any kind)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
267
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 When a package is available with different versions (e.g. Gtk, Qt) we add the
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
269 major number as suffix to the PKGNAME to *old* versions. Example, if Qt 5 is the
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 current major version and Qt 4 is also shipped then, the package *qt* refers to
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 version 5 while *qt4* to version 4.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
272
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 ## Paths
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
274
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
275 The package must ensure appropriate directories for installing files. This
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
276 includes:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
277
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
278 - /etc/rc.d for service files
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 - /usr/lib/pkgconfig: for .pc files
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
280 - /usr/lib/cmake: for CMake config files
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
281 - /usr/lib: for libraries (no lib64 suffix)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
282 - /usr/share/man/man{1,2,3,4,5,6,7,8}: for man pages (in uncompressed form)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
283 - /usr/share/doc/PKGNAME (exact directory, no version)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
284
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
285 ## Services
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
286
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 Services files must be installed in /etc/rc.d. You must use the following
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 conventions regarding messages the service will print.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
289
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
290 The script must at least support start, stop and restart.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
291
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 #### start (required)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
293
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
294 Always add arguments with the invocation.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
295
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 Starting foo: /usr/bin/foo -d
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
297
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
298 #### stop (required)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
299
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
300 If the service is not running, don't write any message. Otherwise write:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
301
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
302 Stopping foo.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
303
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
304 #### restart (required)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
305
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
306 Basically, this command just calls stop and start.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
307
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 Stopping foo.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
309 Starting foo: /usr/bin/foo -d
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
310
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
311 #### status
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
312
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
313 Depending on the status, write the following messages.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
314
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
315 foo is running with pid: 1234
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
316 foo is not running
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
317
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
318 #### usage
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
319
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
320 If the script is invoked with invalid arguments or none, write the usage like
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
321 this through stderr and exit 1. Also keep all subcommands sorted.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
322
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 usage: foo restart|start|status|stop
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
324
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
325 If your script may support additional operations, messages and usage are up to
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
326 the maintainer discretion.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
327
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
328 See also the template file as Templates/rc.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
329
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
330 ## Static libraries and libtool files
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
331
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
332 Do not ship static libraries and libtool files. Make sure your build script
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
333 suppress static builds if possible or delete the .a file.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
334
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
335 Note: the C and C++ library are shipped for technical reasons though.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
336
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
337 ## Don't delete blindly
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
338
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 Do never delete global files through the prefix installation as some people may
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
340 use scripts directly for the system.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
341
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
342 Example (BAD):
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
343
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 rm -f $DESTDIR/usr/lib/*.la
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
345
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
346 Example (BETTER):
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
347
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
348 rm -f $DESTDIR/usr/lib/libfoo.la
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
350 Assuming the package is "foo".