annotate HOWTO.md @ 676:ce9c2a9c76f0

qt/qtxmlpatterns: initial import, closes #1510
author David Demelier <markand@malikania.fr>
date Wed, 31 Jul 2019 20:40:00 +0200
parents 860ab66f5f71
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
594
3cffdd760a86 vanilla: improve docs files
David Demelier <markand@malikania.fr>
parents: 572
diff changeset
1 Vanilla Linux HOWTO
3cffdd760a86 vanilla: improve docs files
David Demelier <markand@malikania.fr>
parents: 572
diff changeset
2 ===================
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
3
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 This documentation explains how to write a package file.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
5
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 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
7 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
8 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
9 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
10 `vpk download` command).
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
11
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 Note: vpk build does not handle dependencies.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
13
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 Example with lib/zlib
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
15
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # cd lib/zlib
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 # vpk build
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 If build succeeded, you can install the package as
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 /tmp/vpk/zlib#version-revision-arch.txz
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 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
23
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 # How to create a new package
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 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
27 directory. Then create the sscript file. See Templates directory.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 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
30 following files.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
31
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 lib/abc
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 lib/abc/abc.sh
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 The following variables must be present:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 - PKGNAME: the package name
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 - PKGVERSION: the package upstream version
594
3cffdd760a86 vanilla: improve docs files
David Demelier <markand@malikania.fr>
parents: 572
diff changeset
39 - PKGREVISION: the initial revision (starts at 1)
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 - 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
41 - PKGSUMMARY: a short summary
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 The following variables are optional
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 - 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
46 syntax category/package for runtime requirement (includes building too) and
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 category/package:build for build requirement only.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 - 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
49 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
50 - PKGUIDS: a space separated list of uid to create
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 - PKGGIDS: a space separated list of gid to create
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 - 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
53 installation (e.g. etc/nginx/nginx.conf)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 - PKGOPTIONS: a space separated list of CAPITALIZED options.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 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
57 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
58 variable.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 There are already various of templates in the templates/ directory.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
61
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 # Topics
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 ## Licenses
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 Use the following licenses in *PKGLICENSE* or CUSTOM.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
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 - AGPLv3+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 - APACHE10
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 - APACHE11
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 - APACHE20
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 - BOOST
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 - BSD
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 - BSD2CLAUSE
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 - BSD3CLAUSE
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 - BSD4CLAUSE
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 - GFDL
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 - GPLv1+
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 - GPLv2+
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 - GPLv3+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 - ISC
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 - LGPLv20+
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 - LGPLv21+
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 - LGPLv3+
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 - MIT
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 - UNLICENSE
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 ## Dependencies
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
96
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 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
98 write *lib/zlib* NOT *zlib*.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
99
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 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
101 meaning:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
102
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 - `:build` the dependency is only required for building,
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 - `:optional` the dependency is optional and not strictly required.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 - `:recommended` same as optional but installed by default.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
106
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 Example:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
108
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 PKGDEPENDS="dev/cmake:build graphics/qt5:recommended lib/zlib"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
110
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 ## Configuration files
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
112
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 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
114 *PKGPROTECT* variables. This prevents `vpk` for overriding user configurations.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
115
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 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
117
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 Example:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 PKGPROTECT="/etc/nginx.conf /etc/rc.d/nginx"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
121
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 ## Uids / Gids
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
123
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 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
125 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
126 the syntax `:number`.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
127
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 Example:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
129
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 PKGUIDS="messagebus" # vpk will assign an id
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 PKGUIDS="gdm:55" # vpk will use 55
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
132
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 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
134 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
135
409
0b7acfc69fec network/openssh: add uid/gid and PAM
David Demelier <markand@malikania.fr>
parents: 349
diff changeset
136 Once you need a new UID/GID, edit the file UIDS_GIDS.md in the repository
0b7acfc69fec network/openssh: add uid/gid and PAM
David Demelier <markand@malikania.fr>
parents: 349
diff changeset
137 accordingly.
0b7acfc69fec network/openssh: add uid/gid and PAM
David Demelier <markand@malikania.fr>
parents: 349
diff changeset
138
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 ## Options
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 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
142 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
143 explanation. Options are usually passed as environment variables
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
144
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 Example with network/wget:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
146
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 # cd network/wget
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 # SSL=openssl NLS=no vpk build
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
149
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 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
151 values.
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 Example with NLS
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 PKGOPTIONS="NLS"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
156
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 : ${NLS:=yes}
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
158
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 if [ "$NLS" = "yes" ]; then
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 PKGDEPENDS="core/gettext $PKGDEPENDS"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 with_nls="--enable-nls"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 else
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 with_nls="--disable-nls"
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 fi
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 Then at configure step:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
167
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 ./configure $with_nls
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
169
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 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
171 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
172 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
173 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
174 use their default as explicit knobs to avoid invisible dependencies.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
175
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 Use the following predefined options before creating your own.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
177
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 - ACL: enable access control list support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 - BLUETOOTH: enable bluetooth support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 - BZIP2: enable bzip2 compression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 - DBUS: enable D-Bus support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 - DOXYGEN: enable doxygen documentation support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 - DRM: enable direct rendering manager support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 - DTD: enable XML validation support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 - EGL: enable EGL support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 - FONTCONFIG: enable fontconfig support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 - FREETYPE: enable freetype support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 - GALLIUM: enable LLVM gallium support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 - GDBM: enable GNU database support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 - GLAMOR: enable 2D graphics support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 - GLES2: enable GLES2 support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 - GLES3: enable GLES3 support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 - GMP: enable GNU multiple precision library
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 - GTK2: enable Gtk 2 toolkit support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 - GTK3: enable Gtk 3 toolkit support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 - GTK4: enable Gtk 4 toolkit support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 - GUILE: enable GNU guile support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 - IDN2: enable libidn2 support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 - KMS: enable kernel mode settings support
572
1d82637c2980 vanilla: add more predefined options
David Demelier <markand@malikania.fr>
parents: 544
diff changeset
200 - LEGACY: enable obsolete or deprecated features
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 - LLVM: enable LLVM support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
202 - LZ4: enable lz4 compression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 - LZMA: enable lzma compression support
572
1d82637c2980 vanilla: add more predefined options
David Demelier <markand@malikania.fr>
parents: 544
diff changeset
204 - MIDI: enable midi support
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
205 - MNL: enable netlink minimalistic library support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 - NLS: enable native language support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 - PAM: enable PAM support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 - PCRE: enable perl-like regular expression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 - PULSEAUDIO: enable PulseAudio support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 - PYTHON: enable Python 3 bindings or support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 - QT5: enable Qt 5 toolkit support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 - SPHINX: enable sphinx documentation support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 - SSH: enable SSH support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 - 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
215 - UDEV: enable eudev support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 - UUID: enable UUID support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 - WACOM: enable wacom support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 - WAYLAND: enable wayland support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 - X: enable X.Org support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 - XML: enable XML support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 - XZ: enable XZ support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 - ZLIB: enable zlib compression support
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 - ZSTD: enable zstd compression support
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 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
226 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
227 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
228 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
229 package offers it.
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 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
232 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
233
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 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
235 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
236
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
237 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
238 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
239 installed and the user may exclude them via `vpk` instead.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
240
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 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
242 code:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
243
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 - CBUILD: build system (usually ARCH-linux-musl)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
245 - CHOST: host system (usually ARCH-linux-musl)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
246 - CTARGET: target system (usually ARCH-linux-musl)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 - CC: C compiler (defaults to gcc)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 - CFLAGS: C flags (defaults to -O2)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 - CXX: C++ compiler (defaults to g++)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 - CXXFLAGS: C++ flags (defaults to -O2)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
251
594
3cffdd760a86 vanilla: improve docs files
David Demelier <markand@malikania.fr>
parents: 572
diff changeset
252 ## Keep neutral
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
253
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 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
255 possible. Only minor tweaks are allowed including:
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 - 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
258 (but not on the original file example)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
259 - disabling static libraries
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
260 - making sure paths are consolidated
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 - 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
262
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 ## Package naming
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
264
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
265 The following prefixes must be used for those packages:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
266
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
267 - py-: for python modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 - ruby-: for native ruby modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
269 - rubygem-: for rubygems modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 - p5-: for perl 5 modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 - hs-: for haskell modules
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 - font-: for fonts (of any kind)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
273
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
274 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
275 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
276 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
277 version 5 while *qt4* to version 4.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
278
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 ## Paths
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
280
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
281 The package must ensure appropriate directories for installing files. This
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
282 includes:
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
283
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 - /etc/rc.d for service files
544
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
285 - /lib/pkgconfig: for .pc files
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
286 - /lib/cmake: for CMake config files
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
287 - /lib: for libraries (no lib64 suffix)
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
288 - /share/locale: for NLS files
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
289 - /share/man/man{1,2,3,4,5,6,7,8}: for man pages (in uncompressed form)
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
290 - /share/doc/PKGNAME (exact directory, no version)
349
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 ## Services
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 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
295 conventions regarding messages the service will print.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
296
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
297 The script must at least support start, stop and restart.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
298
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
299 #### start (required)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
300
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 Always add arguments with the invocation.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
302
544
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
303 Starting foo: /bin/foo -d
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
304
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
305 #### stop (required)
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
306
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 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
308
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
309 Stopping foo.
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 #### restart (required)
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 Basically, this command just calls stop and start.
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 Stopping foo.
544
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
316 Starting foo: /bin/foo -d
349
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 #### status
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 Depending on the status, write the following messages.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
321
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
322 foo is running with pid: 1234
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 foo is not running
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 #### usage
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
326
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
327 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
328 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
329
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
330 usage: foo restart|start|status|stop
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 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
333 the maintainer discretion.
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 See also the template file as Templates/rc.
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 ## Static libraries and libtool files
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 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
340 suppress static builds if possible or delete the .a file.
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 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
343
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 ## Don't delete blindly
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 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
347 use scripts directly for the system.
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
348
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
349 Example (BAD):
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
350
544
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
351 rm -f $DESTDIR/lib/*.la
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
352
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
353 Example (BETTER):
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
354
544
91df0731a3f5 vanilla: finalize new FHS
David Demelier <markand@malikania.fr>
parents: 427
diff changeset
355 rm -f $DESTDIR/lib/libfoo.la
349
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
356
7b000befead5 vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff changeset
357 Assuming the package is "foo".
605
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
358
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
359 # Desktop files
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
360
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
361 We usually never add .desktop files for any package that doesn't provide one by
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
362 itself. This also includes terminal based applications.
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
363
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
364 If a .desktop is provided by the package, make sure though that it is valid and
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
365 specifies the appropriate category (i.e. it does not appear in multiple menus at
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
366 once).
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
367
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
368 See [desktop entry specification][] for more information.
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
369
860ab66f5f71 vanilla: add documentation about .desktop files
David Demelier <markand@malikania.fr>
parents: 594
diff changeset
370 [desktop entry specification]: https://specifications.freedesktop.org/desktop-entry-spec/latest