eweOS' packaging is similar to Arch and other pacman-based distros. While most of the time you can refer to Arch packaging guidelines, there are some caveats you need to know.
Unlike Arch Linux, which is a x86_64-only distro as for now, eweOS is a cross-platform distro. Therefore, the arch
array should contain the intersection of all currently supported architectures (x86_64 aarch64 riscv64)
and architectures the package itself supports, if the package is platform-dependent. Otherwise, use arch=(any)
.
While we don't split packages as much as Debian does (for example, their FFmpeg source package produces both lib<name><version>
and lib<name>-dev
packages), we split packages according to functionality and best effort. For example, our pacman
is split into 4 packages (libalpm
, pacman
, makepkg
and repo-tools
), each with distinct usage.
Another metric of splitting is packages' applicable architectures. makepkg
and repo-tools
are simply scripts, so they are marked arch=(any)
. Documents (except for man pages, they should ship with relevant packages) should package separately, suffixed with -doc
.
If one cannot decide to split or not, just leave it as one large package for now and discuss with eweOS developers.
This is already covered in Arch packaging guidelines. We re-emphasize:
Do not diminish the security or validity of a package (e.g. by removing a checksum check or by removing PGP signature verification), because an upstream release is broken or suddenly lacks a certain feature (e.g. PGP signature missing for a new release).
/usr/bin
): software-namebash
/usr/bin
):
/usr/lib
): lib
+ software-name / or software-name (if commonly used)libdrm
pangomm
version
libidn2
-package-name
glibmm-gtk3
/usr/share/doc
): software-name + -doc
DO NOT USE:
-dev / -devel
: except -devel
for groups like base-devel
-major-and-minor-version
: except they co-exists in our systemWIP