Skip to content

Commit dc1f63e

Browse files
committed
package: add package guidelines
just some general ideas and opinions i had wrt how helium should ~ be packaged
1 parent 2a405b3 commit dc1f63e

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

package/README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Helium packaging guidelines
2+
3+
This document provides guidelines for packagers creating Helium packages
4+
for various Linux distriutions and packaging systems. These guidelines
5+
aim to ensure consistency across different package formats while
6+
respecting distribution-specific conventions.
7+
8+
## Installation
9+
- The installation prefix of Helium packages is not mandated by
10+
upstream. Note that on FHS-compliant distributions, Chromium-based
11+
browsers are typically installed into /opt/$name/.
12+
- The primary executable should be a symbolic link to
13+
$prefix/helium-wrapper. On FHS-compliant distributions, it should
14+
be installed into `/usr/bin` or `/usr/local/bin`.
15+
16+
## Branding
17+
- The primary executable name should be `helium`.
18+
- The package name should be `helium` if available; `helium-browser`
19+
is acceptable otherwise. If the packaging system uses reverse-DNS
20+
notation as identifiers, the identifier should be `net.imput.helium`
21+
(all lowercase).
22+
- If built from GitHub-hosted binaries, the package name should have a
23+
`-bin` suffix.
24+
- If built from releases marked as "pre-release", the package name
25+
should have a `-prerelease` (preferred), `-pre` or `-beta` suffix.
26+
- If installing the desktop file, it should be named `helium.desktop`
27+
(or `net.imput.helium.desktop` on systems preferring reverse-DNS
28+
naming).
29+
- If installing icons, the icon name should be `helium`
30+
(or `net.imput.helium`).
31+
32+
## Versioning
33+
- Package versions should match the upstream version number.
34+
- Package versions may include a package revision suffix (e.g. `-1` in
35+
`0.8.7.1-1`) for the convenience of package development and
36+
maintenance.
37+
38+
## Tweaks
39+
- Packages should not add environment-specific flags by default,
40+
such as enabling or disabling features via `--enable-features`
41+
or `--disable-features`.
42+
- Packages should replace the `CHROME_VERSION_EXTRA` envvar with their
43+
distribution name (e.g. `Arch Linux`) or method of distribution
44+
(e.g. `rpm`) to assist with easier bug report handling.
45+
46+
## Security
47+
- Packages MUST NOT add default arguments that weaken the security of
48+
Helium, including but not limited to `--no-sandbox`.
49+
- Packagers are encouraged to provide MAC security profiles where
50+
applicable for enhanced security.

0 commit comments

Comments
 (0)