Mercurial > vanilla
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 |
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 |