Mercurial > vanilla
annotate Docs/manual.md @ 1030:80725fa0f064
kde/kded: initial import, closes #1801
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 30 Aug 2019 13:18:07 +0200 |
parents | c5cbe07af6a9 |
children | 120e458a2e33 |
rev | line source |
---|---|
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 Getting started |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 =============== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 This documentation explains how to write a package file from scratch. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 Synopsis |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 ======== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 Each package lives under a dedicated directory broken down into several |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 categories. A package consists of the following files: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 - NAME.sh: a pure POSIX shell that process the build and contains some |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 metadata required for installation. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 - NAME.sha1: contains the checksums for individual source files (Optional). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 - NAME-post.sh: a script to be executed before/after the installation |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 (Optional). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 In the listing above, replace NAME with the actual package name. For example the |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 package *zlib* contains the following files: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 - compression/zlib/zlib.sh |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 - compression/zlib/zlib.sha1 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 The build script |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 ================ |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 The build script (NAME.sh) is a pure POSIX shell that defines various |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 information about the package and how to build it. To be included within the |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 official Vanilla Linux repository it must be licensed under the terms of the ISC |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 license. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 Several templates are already available for most build systems in the Templates |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 directory. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 Metadata |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 -------- |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 A package requires several information to be installed, the following variables |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 must be present: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 - PKGNAME: the package name (same as the directory). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 - PKGVERSION: the package upstream version. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 - PKGREVISION: the initial revision (starts at 1). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 - PKGLICENSE: a space separated list of licenses (see licenses.md file). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 - PKGSUMMARY: a short summary. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 The following variables are optional |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 - PKGDEPENDS: a space separated list of packages required to build (see below). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 - PKGDOWNLOAD: a space separated list of files to download from the web, if the |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 package does not need to download anything don't set it. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 - PKGUIDS: a space separated list of uid to create (see below) |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 - PKGGIDS: a space separated list of gid to create (see below) |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 - PKGPROTECT: a space separated list of relative path to files to preserve on |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 installation (e.g. etc/nginx/nginx.conf) |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 - PKGOPTIONS: a space separated list of CAPITALIZED options. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 Build |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 ----- |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 To build the package, you need to define a build function that install the |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 package into the $DESTDIR variable. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 Usually, the build function does: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 1. Clean the build directory in case the previous build failed. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 2. Extract distribution files. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 3. Process build and installs into $DESTDIR. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 4. Clean up again the build directory. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 Package naming |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 ============== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 The following prefixes must be used for those packages: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 - py-: for python modules. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 - py2-: for python modules (only for exceptional cases). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 - ruby-: for native ruby modules. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 - rubygem-: for rubygems modules. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 - p5-: for perl 5 modules. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 - hs-: for haskell modules. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 - font-: for fonts (of any kind). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 When a package is available with different versions (e.g. Gtk, Qt) we add the |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 major number as suffix to the PKGNAME to *old* versions. Example, if Qt 5 is the |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 current major version and Qt 4 is also shipped then, the package *qt* refers to |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 version 5 while *qt4* to version 4. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 Handling dependencies |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 ===================== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 The variable *PKGDEPENDS* is filled up with package origins, thus you need to |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 write *lib/zlib* NOT *zlib*. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 Also, the following selectors may be appended to the dependency to alter the |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 meaning: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 - `:build` the dependency is only required for building, |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 - `:optional` the dependency is optional and not strictly required. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 - `:recommended` same as optional but installed by default. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 Example: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 PKGDEPENDS="dev/cmake:build graphics/qt5:recommended lib/zlib" |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 Protected files |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 =============== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 Configuration files (usually everything under /etc) must be marked as well in |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 *PKGPROTECT* variables. This prevents `vpk` for overriding user configurations. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 Note: if the package ships a init script file, it must be marked as well. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 Example: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 PKGPROTECT="etc/nginx.conf etc/rc.d/nginx" |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 In this case, `vpk` will rename the file to *etc/nginx.conf.vpk* and |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 */etc/rc.d/nginx.vpk* in the archive and only be renamed if they are not present |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 on the disk or not manually modified. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 Uids / Gids |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 =========== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 If the package requires UNIX users and groups, adapt the *PKGUIDS* and *PKGGIDS* |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 variables as a space separated list. You can assign a default numeric id using |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 the syntax `:number`. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 Example: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 PKGUIDS="messagebus" # vpk will assign an id |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 PKGUIDS="gdm:55" # vpk will use 55 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 Warning: if you need to change file permissions, do it *ONLY* in a post install |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 script as users may have set different numeric id than the package defaults. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 Once you need a new UID/GID, edit the file UIDS.md in this directory as well. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 Options |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 ======= |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
142 If the package offer build options, edit the *PKGOPTIONS* variable and always |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
143 add default values that match upstream if possible. Boolean options must always |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
144 be considered as *yes* or *no*. If an option requires a list, use a space |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
145 separated list of values. |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
147 Example: |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
149 PKGOPTIONS="NLS DRIVERS" |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 : ${NLS:=yes} |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
152 : ${DRIVERS:=amd intel} |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 if [ "$NLS" = "yes" ]; then |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 PKGDEPENDS="core/gettext $PKGDEPENDS" |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 with_nls="--enable-nls" |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 else |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 with_nls="--disable-nls" |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 fi |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 Then at configure step: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 ./configure $with_nls |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 Proper handling of options is done by explicitly disabling/enabling options. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 Most programs will try to enable/disable features depending on what is available |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 on the system thus, if the package finds a dependency and enable it you need to |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 adapt *PKGDEPENDS*. Always check what options are available in the package and |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 use their default as explicit knobs to avoid invisible dependencies. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 See the file options.md for predefined options and proper naming. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 Paths |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 ===== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 The package must ensure appropriate directories for installing files. This |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 includes: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
179 - /etc/rc.d: for service files, |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
180 - /lib/pkgconfig: for .pc files, |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
181 - /lib/cmake: for CMake config files, |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
182 - /lib: for libraries (no lib64 suffix), |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
183 - /share/PKGNAME: data directory (if applicable), |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
184 - /share/locale: for NLS files, |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
185 - /share/man/man{1,2,3,4,5,6,7,8}: for man pages (in uncompressed form), |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
186 - /share/doc/PKGNAME (exact directory, no version): arbitrary documentation. |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 Keep neutral |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 ============ |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
190 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 Do not make any modifications to the package. Keep it as close to upstream as |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 possible. Only minor tweaks are allowed including: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
194 - adjusting pid/uid/gid in a default configuration file for easier deployment |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
195 (but not on the original file example), |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
196 - making sure paths are consolidated, |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
197 - making sure system libraries are used rather than in-source bundles, |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
198 - replacing PAM files (see below). |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
199 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
200 PAM files |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
201 ========= |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
202 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
203 The PAM system is an flexible and well designed authentication tool, it has a |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
204 large number of modules and configuration settings. This complexity leads to |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
205 inconsistent upstream PAM files that are not always compatible with the default |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
206 Vanilla Linux generic's files, therefore you *must* always replace the provided |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
207 PAM files with custom alternatives and sane defaults. In general, LFS is a good |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
208 recommandation regarding PAM files. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
209 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
210 Also, don't forget to add PAM files to the *PKGPROTECT* variable as they are |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
211 meant to be edited by the system administrator. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
212 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
213 Patches |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
214 ======= |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
215 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
216 If a software requires patching, always try to see if there is already an |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
217 upstream patch that fixes the issue. If not, you may check how other Linux |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
218 distributions fix the problem with a local workaround. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
219 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
220 Then, please consider sending the patch to the upstream if applicable. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
221 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
222 Patches must be named in the form *patch-category.patch*. We encourage old style |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
223 of patches that you usually create by editing the file and comparing with the |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
224 original one. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
225 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
226 Example: |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
227 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
228 cp Makefile.orig Makefile |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
229 vim Makefile |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
230 diff -ub Makefile.orig Makefile > patch-musl.patch |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
231 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
232 Warning: by default busybox patch is used and is much stricter than standalone |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
233 counterpart, in doubt always try to apply the patch manually with |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
234 busybox patch and edit if required. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
235 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
236 The following names are recommended depending on the situation: |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
237 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
238 - patch-fhs.patch: when a patch is required to adapt installation/usage to the |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
239 Vanilla Linux file system hierarchy, |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
240 - patch-musl.patch: when the code assume a glibc specific code, |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
241 - patch-clang.patch: when the code does not compile with LLVM/Clang. Make sure |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
242 the patch does not break GCC, if it does apply the patch in a conditional. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
243 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
244 Also, do not create a patch for individual files if they all belong to the same |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
245 category. For example, if several source files require patching to build against |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
246 musl, use only one *patch-musl.patch* file. |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
247 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
248 Services |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
249 ======== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
250 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
251 Services files must be installed in /etc/rc.d in the mode 0644. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
252 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
253 Example: |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
254 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
255 install -Dm0644 food $DESTDIR/etc/rc.d/food |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
256 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
257 The script must at least support start, stop and restart. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
258 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
259 UX style |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
260 -------- |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
261 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
262 You must use the following conventions regarding messages the service will |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
263 print. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
264 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
265 ### start (required) |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
266 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
267 Always add arguments with the invocation. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
268 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
269 Starting foo: /bin/foo -d |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
270 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
271 If the service is already running, show: |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
272 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
273 foo is already running with pid: 1234 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
274 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
275 ### stop (required) |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
276 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
277 If the service is not running, don't write any message. Otherwise write: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
278 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
279 Stopping foo. |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
280 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
281 ### restart (required) |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
282 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
283 Basically, this command just calls stop and start. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
284 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
285 Stopping foo. |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
286 Starting foo: /bin/foo -d |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
287 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
288 ### status (recommended) |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
289 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
290 Depending on the status, write the following messages. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
291 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
292 foo is running with pid: 1234 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
293 foo is not running |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
294 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
295 ### usage (required) |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
296 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
297 If the script is invoked with invalid arguments or none, write the usage like |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
298 this through stderr and exit 1. Also keep all subcommands sorted. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
299 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
300 usage: foo restart|start|status|stop |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
301 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
302 If your script may support additional operations, messages and usage are up to |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
303 the maintainer discretion. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
304 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
305 See also the template file in Templates/rc. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
306 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
307 Libtool files |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
308 ============= |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
309 |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
310 Do not ship libtool files. |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
311 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
312 Manual pages |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
313 ============ |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
314 |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
315 Do never install compressed manual pages. The `vpk` tool performs automatic |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
316 compression on installation depending on the user setting. Check how to disable |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
317 compression in the package or decompress them after installation in the |
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
318 destination directory. |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
319 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
320 Post install scripts |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
321 ==================== |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
322 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
323 If you need to perform some custom steps after the installation of the binary |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
324 package in the target systems, you may create the NAME-post.sh script. This |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
325 script must be written also in pure POSIX shell language. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
326 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
327 As unique argument, `vpk` will provide one of these to the post script: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
328 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
329 - pre-install: before the extraction of the package. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
330 - post-install: after the extraction of the package. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
331 - pre-uninstall: before removing the package. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
332 - post-uninstall: after the removal of the package. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
333 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
334 Note: if the package wants to call a binary from an other package, it is usually |
821
c5cbe07af6a9
vanilla: update manual.md
David Demelier <markand@malikania.fr>
parents:
714
diff
changeset
|
335 a good idea to check it's presence first. |
714
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
336 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
337 Example: |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
338 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
339 #!/bin/sh |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
340 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
341 if [ -x /bin/gtk-update-icon-cache ]; then |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
342 gtk-update-icon-cache -vf /share/icons/hicolor |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
343 fi |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
344 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
345 Desktop files |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
346 ============= |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
347 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
348 We usually never add .desktop files for any package that doesn't provide one by |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
349 itself. This also includes terminal based applications. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
350 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
351 If a .desktop is provided by the package, make sure though that it is valid and |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
352 specifies the appropriate category (i.e. it does not appear in multiple menus at |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
353 once). |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
354 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
355 See [desktop entry specification][] for more information. |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
356 |
6b4ba668a43c
vanilla: update documentation
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
357 [desktop entry specification]: https://specifications.freedesktop.org/desktop-entry-spec/latest |