Mercurial > vanilla
annotate HOWTO.md @ 427:95095aa8fe3d
vanilla: fix locale directory
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 04 Apr 2019 14:49:17 +0200 |
parents | 0b7acfc69fec |
children | 91df0731a3f5 |
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 |
409
0b7acfc69fec
network/openssh: add uid/gid and PAM
David Demelier <markand@malikania.fr>
parents:
349
diff
changeset
|
135 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
|
136 accordingly. |
0b7acfc69fec
network/openssh: add uid/gid and PAM
David Demelier <markand@malikania.fr>
parents:
349
diff
changeset
|
137 |
349
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 ## Options |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 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
|
141 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
|
142 explanation. Options are usually passed as environment variables |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 Example with network/wget: |
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 # cd network/wget |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 # SSL=openssl NLS=no vpk build |
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 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
|
150 values. |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 Example with NLS |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 PKGOPTIONS="NLS" |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 : ${NLS:=yes} |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 if [ "$NLS" = "yes" ]; then |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 PKGDEPENDS="core/gettext $PKGDEPENDS" |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 with_nls="--enable-nls" |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 else |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 with_nls="--disable-nls" |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 fi |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 Then at configure step: |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 ./configure $with_nls |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 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
|
170 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
|
171 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
|
172 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
|
173 use their default as explicit knobs to avoid invisible dependencies. |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 Use the following predefined options before creating your own. |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 - ACL: enable access control list support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 - BLUETOOTH: enable bluetooth support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 - BZIP2: enable bzip2 compression support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 - DBUS: enable D-Bus support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
181 - DOXYGEN: enable doxygen documentation support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
182 - DRM: enable direct rendering manager support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 - DTD: enable XML validation support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 - EGL: enable EGL support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 - FONTCONFIG: enable fontconfig support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 - FREETYPE: enable freetype support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 - GALLIUM: enable LLVM gallium support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 - GDBM: enable GNU database support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 - GLAMOR: enable 2D graphics support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
190 - GLES2: enable GLES2 support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 - GLES3: enable GLES3 support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 - GMP: enable GNU multiple precision library |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 - GTK2: enable Gtk 2 toolkit support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
194 - GTK3: enable Gtk 3 toolkit support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
195 - GTK4: enable Gtk 4 toolkit support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
196 - GUILE: enable GNU guile support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
197 - IDN2: enable libidn2 support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 - KMS: enable kernel mode settings support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 - LLVM: enable LLVM support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 - LZ4: enable lz4 compression support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 - LZMA: enable lzma compression support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
202 - MNL: enable netlink minimalistic library support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
203 - NLS: enable native language support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
204 - PAM: enable PAM support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
205 - PCRE: enable perl-like regular expression support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
206 - PULSEAUDIO: enable PulseAudio support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
207 - PYTHON: enable Python 3 bindings or support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
208 - QT5: enable Qt 5 toolkit support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
209 - SPHINX: enable sphinx documentation support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
210 - SSH: enable SSH support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
211 - 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
|
212 - UDEV: enable eudev support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
213 - UUID: enable UUID support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
214 - WACOM: enable wacom support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
215 - WAYLAND: enable wayland support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
216 - X: enable X.Org support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
217 - XML: enable XML support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
218 - XZ: enable XZ support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
219 - ZLIB: enable zlib compression support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
220 - ZSTD: enable zstd compression support |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
221 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
222 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
|
223 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
|
224 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
|
225 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
|
226 package offers it. |
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 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
|
229 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
|
230 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
231 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
|
232 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
|
233 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
234 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
|
235 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
|
236 installed and the user may exclude them via `vpk` instead. |
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 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
|
239 code: |
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 - CBUILD: build system (usually ARCH-linux-musl) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
242 - CHOST: host system (usually ARCH-linux-musl) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
243 - CTARGET: target system (usually ARCH-linux-musl) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
244 - CC: C compiler (defaults to gcc) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
245 - CFLAGS: C flags (defaults to -O2) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
246 - CXX: C++ compiler (defaults to g++) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
247 - CXXFLAGS: C++ flags (defaults to -O2) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
248 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
249 ## Keep vanilla |
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 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
|
252 possible. Only minor tweaks are allowed including: |
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 - 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
|
255 (but not on the original file example) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
256 - disabling static libraries |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
257 - making sure paths are consolidated |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
258 - 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
|
259 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
260 ## Package naming |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
261 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
262 The following prefixes must be used for those packages: |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
263 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
264 - py-: for python modules |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
265 - ruby-: for native ruby modules |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
266 - rubygem-: for rubygems modules |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
267 - p5-: for perl 5 modules |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
268 - hs-: for haskell modules |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
269 - font-: for fonts (of any kind) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
270 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
271 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
|
272 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
|
273 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
|
274 version 5 while *qt4* to version 4. |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
275 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
276 ## Paths |
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 The package must ensure appropriate directories for installing files. This |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
279 includes: |
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 - /etc/rc.d for service files |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
282 - /usr/lib/pkgconfig: for .pc files |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
283 - /usr/lib/cmake: for CMake config files |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
284 - /usr/lib: for libraries (no lib64 suffix) |
427
95095aa8fe3d
vanilla: fix locale directory
David Demelier <markand@malikania.fr>
parents:
409
diff
changeset
|
285 - /usr/share/locale: for NLS files |
349
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
286 - /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
|
287 - /usr/share/doc/PKGNAME (exact directory, no version) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
288 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
289 ## Services |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
290 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
291 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
|
292 conventions regarding messages the service will print. |
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 The script must at least support start, stop and restart. |
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 #### start (required) |
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 Always add arguments with the invocation. |
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 Starting foo: /usr/bin/foo -d |
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 #### stop (required) |
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 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
|
305 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
306 Stopping foo. |
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 #### restart (required) |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
309 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
310 Basically, this command just calls stop and start. |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
311 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
312 Stopping foo. |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
313 Starting foo: /usr/bin/foo -d |
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 #### status |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
316 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
317 Depending on the status, write the following messages. |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
318 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
319 foo is running with pid: 1234 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
320 foo is not running |
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 #### usage |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
323 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
324 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
|
325 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
|
326 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
327 usage: foo restart|start|status|stop |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
328 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
329 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
|
330 the maintainer discretion. |
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 See also the template file as Templates/rc. |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
333 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
334 ## Static libraries and libtool files |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
335 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
336 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
|
337 suppress static builds if possible or delete the .a file. |
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 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
|
340 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
341 ## Don't delete blindly |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
342 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
343 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
|
344 use scripts directly for the system. |
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 (BAD): |
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/*.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 Example (BETTER): |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
351 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
352 rm -f $DESTDIR/usr/lib/libfoo.la |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
353 |
7b000befead5
vanilla: improve docs and hierarchy
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
354 Assuming the package is "foo". |