Talk:Arch packaging standards
Shouldn't we suggest using SHA1 hash and not the already broken one (MD5)? --Tomato 15:47, 25 August 2010 (EDT)
- My packages contain both
sha256sumsarrays. I do so on the theory that some clients may not have the sha256sum utility installed, and those clients can fall back to the md5sum utility. Clarification would be appreciated. Ichimonji10 (talk) 14:32, 19 October 2013 (UTC)
I've recently found that packages that used bundles libraries tend to segfault. Should we suggest the removal of bundled libraries and instead use system libraries? --Gadget3000 (talk) 02:13, 6 August 2011 (UTC)
Some packages require the addition of system users. For them to be ignored by things such as lightdm, tthey have to be in the sub-1000 UID space. Looking at packages in ABS, these users are simply added with an useradd -u .... However, there is no guideline or authoritative list that I can find which lists which UID is used for what, which is free, or how to register a UID for a specific system user. It would be nice to see a section about it here. --OlivierMehani 19:31, 13 October 2011 (EDT)
- I thinks it's a bit too specific to be listed here. --Snowman 20:45, 13 October 2011 (EDT)
Something more should be said about .install files. Mention that there are also examples in
/usr/share/pacman but it also needs some explanation on how they work. --Mauro2 (talk) 05:30, 15 October 2012 (UTC)
makepkg -g has been superseded by
updpkgsums since pacman 4.1, which doesn't require redirection operators (
>>) or removing the earlier md5sums (with something like
sed -i "/md5sums/,/)/d" PKGBUILD). --Det (talk) 12:16, 7 April 2013 (UTC)
- I second Det's request: add this to the wiki.
updpkgsumsis nicer than
makepkg -g, and the existence of such a tool should be promulgated. I didn't even know about the tool until reading through this discussion page. Ichimonji10 (talk) 14:32, 19 October 2013 (UTC)
Arch_Packaging_Standards#Package_etiquette states: "It is common practice to preserve the order of the PKGBUILD fields as shown above." But this is not true. Common practice is to use
/usr/share/pacman/PKGBUILD.proto as a template, and the order of fields in that prototype has a far greater influence on packages in the wild than this page. This page should edited to reflect the current state of
PKGBUILD.proto. Perhaps this page should state: "It is common practice to order PKGBUILD fields so they match the order of fields in
PKGBUILD.proto. Ichimonji10 (talk) 14:32, 19 October 2013 (UTC)
/usr/sbin -> /usr/bin merge
The Directories section needs to be updated to reflect the recent /bin, /sbin, /usr/sbin -> /usr/bin merge:
- The /usr/sbin line should be removed and the description of the /usr/bin line should be changed to all binaries or something similar.
- /bin and /sbin should be added to the "Package should not contain following directories" list.
Punctuation in PKGBUILD
What is the official guidance regarding ending a pkgdesc in a period or using commas and English prose punctuation in general?
[Link] to discussion thread.
Proposed new package naming
- Package names should consist of alphanumeric characters only; all letters should be lowercase.
- Package names should NOT be suffixed with the upstream major release version number (e.g. we don't want libfoo2 if upstream calls it libfoo v2.3.4) in case the library and its dependencies are expected to be able to keep using the most recent library version with each respective upstream release. However, for some software or dependencies, this can not be assumed. In the past this has been especially true for widget toolkits such as GTK and Qt. Software that depends on such toolkits can usually not be trivially ported to a new major version. As such, in cases where software can not trivially keep rolling alongside its dependencies, package names should carry the major version suffix (e.g. gtk2, gtk3, qt4, qt5). For cases where most dependencies can keep rolling along the newest release but some can't (for instance closed source that needs libpng12 or similar), a deprecated version of that package might be called libfoo1 while the current version is just libfoo.
- Package versions should be the same as the version released by the author. Versions can include letters if need be (eg, nmap's version is 2.54BETA32). Version tags may not include hyphens! Letters, numbers, and periods only.
- Package releases are specific to Arch Linux packages. These allow users to differentiate between newer and older package builds. When a new package version is first released, the release count starts at 1. Then as fixes and optimizations are made, the package will be re-released to the Arch Linux public and the release number will increment. When a new version comes out, the release count resets to 1. Package release tags follow the same naming restrictions as version tags.