Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:manual:contrib:packaging_guidelines [2021/04/24 07:30] emulatorman |
en:manual:contrib:packaging_guidelines [2024/05/26 12:49] (current) throgh |
||
---|---|---|---|
Line 10: | Line 10: | ||
* a) Software built and patched to be secure from global data surveillance revealed in the [[https:// | * a) Software built and patched to be secure from global data surveillance revealed in the [[https:// | ||
* b) Additional hardened packages which remove lower level protocols that may cause privacy leaks, metadata/ | * b) Additional hardened packages which remove lower level protocols that may cause privacy leaks, metadata/ | ||
- | - **FHS**: All packages follow the [[en:main:FHS|Filesystem Hierarchy Standard (FHS)]] which defines the main directories and their contents in GNU/Linux and other Unix-like computer operating systems such as GNU/ | + | - **FHS**: All packages follow the [[en:project:fhs|Filesystem Hierarchy Standard (FHS)]] which defines the main directories and their contents in GNU/Linux and other Unix-like computer operating systems such as GNU/ |
- **Free software projects**: If there is software that contain a stable version, then the upstream version should be blacklisted. There are examples such as: | - **Free software projects**: If there is software that contain a stable version, then the upstream version should be blacklisted. There are examples such as: | ||
* a) The long-term support (LTS) of Linux-libre kernel instead of the upstream one. | * a) The long-term support (LTS) of Linux-libre kernel instead of the upstream one. | ||
Line 21: | Line 21: | ||
* b) If a package is an important dependency for active projects and there is no a current replacement for it. | * b) If a package is an important dependency for active projects and there is no a current replacement for it. | ||
* c) If a package is a driver, firmware or hardware emulation and there is no a current replacement for it. | * c) If a package is a driver, firmware or hardware emulation and there is no a current replacement for it. | ||
- | - **Snapshot | + | - **Package |
- | Exceptions are considered: | + | |
* a) Binutils and GCC should follow the same version used in HyperbolaBSD. | * a) Binutils and GCC should follow the same version used in HyperbolaBSD. | ||
* b) If a package version needs taking security parts from a newer version, but it is inefficient to be backported, a newer version could be considered as exception (see Backporting amendment for further details). | * b) If a package version needs taking security parts from a newer version, but it is inefficient to be backported, a newer version could be considered as exception (see Backporting amendment for further details). | ||
- | - **Backporting**: | + | - **Backporting**: |
- | * a) If the current package used on the [[en:main: | + | * a) If the current package used on the [[en:project: |
- | * b) All newer version packages and its required newer version library and dependency packages should be repackaged with the appropriate package release too, since it will be rebuilt in a stable environment so that it will run without new libraries. This suffix is applied until the [[en:main: | + | * b) All newer version packages and its required newer version library and dependency packages should be repackaged with the appropriate package release too, since it will be rebuilt in a stable environment so that it will run without new libraries. This suffix is applied until the [[en:project: |
- | * c) All newer version packages should follow the snapshot version and Debian' | + | * c) All newer version packages should follow the package version rules from Hyperbola Packaging Guidelines, it means Hyperbola **will not accept** recurrent drastic version changes as long as fixing is possible. |
- **Package licenses**: All packages contain a license field that specifies the license(s) source that apply to the package using the commonly used licenses in / | - **Package licenses**: All packages contain a license field that specifies the license(s) source that apply to the package using the commonly used licenses in / | ||
* a) If an upstream source provides the preference to choose a license, add only that license in the package license field. The chosen license must be compatible with the linked library dependencies used by the package. (eg. if the chosen license for ffmpeg is the version 3 of LGPL, then the configure parameter `--enable-version3` must be added in ffmpeg' | * a) If an upstream source provides the preference to choose a license, add only that license in the package license field. The chosen license must be compatible with the linked library dependencies used by the package. (eg. if the chosen license for ffmpeg is the version 3 of LGPL, then the configure parameter `--enable-version3` must be added in ffmpeg' | ||
Line 43: | Line 42: | ||
* d) If there is an official tarball, however tarballs from the official Debian repositories contain bugfixes. In this case, the official tarballs from Debian should be used by default. (eg. Mutt+NeoMutt bugfixes) | * d) If there is an official tarball, however tarballs from the official Debian repositories contain bugfixes. In this case, the official tarballs from Debian should be used by default. (eg. Mutt+NeoMutt bugfixes) | ||
* e) If there is an official tarball, however it requires download git submodules to be built from the source. In this case, tarballs from the official Debian repositories is the alternative option. | * e) If there is an official tarball, however it requires download git submodules to be built from the source. In this case, tarballs from the official Debian repositories is the alternative option. | ||
- | * f) If there are no available tarballs. In this case, it should be used in a specific tag or branch from a version control system (VCS) and repackaged with the appropriate suffix (eg. **-bzr** for Bazaar, **-git** for Git, **-hg** for Mercurial and **-svn** for Subversion) until a final version is available. | + | * f) If there are no available tarballs |
- | * g) If there is not support for GNU/Linux in tarballs, tags or branches. In this case, a master branch from a version control system (VCS) could be used temporarily and repackaged with the appropriate suffix (eg. **-bzr** for Bazaar, **-git** for Git, **-hg** for Mercurial and **-svn** for Subversion) until a final version with GNU/Linux support is available. | + | |
- **SHA-512**: | - **SHA-512**: | ||
* a) If the package is using a version control system (VCS) because it does not contain GNU/Linux support or/and tarballs. | * a) If the package is using a version control system (VCS) because it does not contain GNU/Linux support or/and tarballs. | ||
- **GPG**: All packages should use signature verification. Exceptions are considered: | - **GPG**: All packages should use signature verification. Exceptions are considered: | ||
* a) If tarballs do not contain signatures. | * a) If tarballs do not contain signatures. | ||
+ | * b) If the corresponding gpg-key is no longer valid. | ||
- **Anti-obfuscation**: | - **Anti-obfuscation**: | ||
+ | - **No GNU/ |