You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/packaging/packaging-practices.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,6 +43,8 @@ This is invariably created for packages that provide libraries and development h
43
43
/usr/share/vala
44
44
```
45
45
46
+
For the full list of rules see [here](https://github.com/getsolus/ypkg/blob/v34/ypkg2/packages.py#L166-L254).
47
+
46
48
Note that for some packages, `/usr/$lib/lib*.so` files are not symlinks. In this instance, the main package will be broken with no library files present. This can quickly be determined by looking at the resulting `pspec_*.xml` file generated after running the build.
47
49
If this happens, simply override with `patterns` or set `libsplit` to “no”.
48
50
@@ -91,20 +93,21 @@ All new packages or updates to packages should abide by the [SPDX 3.x](https://s
91
93
## Build dependencies
92
94
93
95
:::note
94
-
Build dependencies should be ordered according to the following rules in `package.yml`:
96
+
Build dependencies in a `package.yml`should be ordered according to the following rules:
95
97
96
-
1.`pkgconfig` dependencies before explicitly named dependencies
97
-
2. Each of these two groups in so-called ASCIIbetical order (that is, alphabetical order with all uppercase letters before lowercase letters, and digits/punctuation before letters, [see here](https://en.wikipedia.org/wiki/ASCII#Character_order))
98
+
1.`pkgconfig32` dependencies before `pkgconfig` dependencies
99
+
2.`pkgconfig` dependencies before explicitly named dependencies
100
+
3. Each of these groups in so-called ASCIIbetical order (that is, alphabetical order with all uppercase letters before lowercase letters, and digits/punctuation before letters, [see here](https://en.wikipedia.org/wiki/ASCII#Character_order))
98
101
99
102
Example:
100
103
101
104
<!-- prettier-ignore -->
102
105
```yaml
103
106
builddeps :
107
+
- pkgconfig32(dri)
104
108
- pkgconfig(MYGUI)
105
109
- pkgconfig(Qt5Core)
106
110
- pkgconfig(ayatana-appindicator-0.1)
107
-
- pkgconfig(dri)
108
111
- pkgconfig(gtk+-3.0)
109
112
- The-Powder-Toy
110
113
- abcMIDI
@@ -240,17 +243,15 @@ When a package is part of an automatic build sequence, these dependencies will *
240
243
241
244
The package `cbindgen` includes `cython` in `checkdeps` to run tests in the `check` phase.
See the [cbindgen package.yml file](https://github.com/getsolus/packages/blob/main/packages/c/cbindgen/package.yml).
244
247
245
248
## Patching / extra files
246
249
247
-
Files that may be required during the build can be accessed via the `$pkgfiles` variable. Note that you must store your files in the `./files` directory relative to your `package.yml`
250
+
Files that may be required during the build can be accessed via the `$pkgfiles` variable. Note that you must store your files in the `./files` directory relative to your `package.yml`.
248
251
249
-
Both patches and extra files (such as systemd units) are stored in this directory. Note that if your patch is to address a **CVE**, you must use the following naming scheme: `./files/security/cve-xxxx-xxxx.patch`
252
+
Both patches and extra files (such as systemd units) are stored in this directory. Note that if your patch is to address a **CVE**, you must use the following naming scheme: `./files/security/cve-xxxx-xxxx.patch`, where `xxxx-xxxx` is replaced with the full CVE ID. Complying with this simple rule ensures that we can know at any time the security status of packages when using tools such as `cve-check-tool`.
250
253
251
-
Where `xxxx-xxxx` is replaced with the full CVE ID. Complying with this simple rule ensures that we can know at any time the security status of packages when using tools such as `cve-check-tool`
252
-
kept
253
-
Solus tooling allows the use of `./files/security/cve-xxxx-xxxx.nopatch` (which isn't applied in the build) to indicate that a CVE has been validated as not applicable to the Solus package. This can be because another patch resolves this CVE, or there is a false positive via `cve-check-tool`. The contents of the file can describe why it doesn't apply without requiring a patch (i.e. Resolved by cve-xxxx-xxxx.patch).
254
+
Solus tooling allows the use of `./files/security/cve-xxxx-xxxx.nopatch` (which isn't applied in the build) to indicate that a CVE has been validated as not applicable to the Solus package. This can be because another patch resolves this CVE, or there is a false positive via `cve-check-tool`. The contents of the file can describe why it doesn't apply without requiring a patch (for example, "Resolved by cve-xxxx-xxxx.patch").
0 commit comments