AUR Trusted User Guidelines
Trusted Users (TU) are members of the community charged with keeping the AUR in working order. They maintain popular packages (communicating with and sending patches upstream as needed), and vote in administrative matters. A TU is elected from active community members by current TUs in a democratic process. TUs are the only members who have a final say in the direction of the AUR.
The TUs are governed using the TU bylaws
- 1 TODO list for new Trusted Users
- 2 The TU and [unsupported]
- 3 The TU and [community], Guidelines for Package Maintenance
- 3.1 Rules for Packages Entering the [community] Repo
- 3.2 Accessing and Updating the Repository
- 3.3 Disowning packages
- 3.4 Moving packages from unsupported to [community]
- 3.5 Moving packages from [community] to unsupported
- 3.6 Moving packages from [community-testing] to [community]
- 3.7 Deleting packages from unsupported
- 3.8 See also
TODO list for new Trusted Users
- Read this entire wiki article.
- Read the TU Bylaws.
- Make sure your account details on the AUR are up-to-date.
- Add yourself to the Trusted Users page.
- Subscribe to the public mailing list for Arch Linux development, arch-dev-public.
- Remind a BBS admin to change your account on forums.
- Ask some TU for the #archlinux-tu@freenode key and hang out with us in the channel. You do not have to do this, but it would be neat since this is where most dark secrets are spilled and where many new ideas are conceived.
- Create a PGP key for package signing or use your existing PGP key. Make sure the key also contains an encryption subkey so you can receive encrypted verification tokens.
- Send Ionuț Bîru (email@example.com) or Florian Pritz (firstname.lastname@example.org) an email with all the information based on this template to have access on dev interface (archweb).
- Send a signed email to Florian:
- Attach one SSH public key. If you do not have one, use
ssh-keygento generate one. Check the Using SSH Keys wiki page for more information about SSH keys.
- Ask him to whitelist you from arch-dev-public.
- Tell him if you want an @archlinux.org email.
- Attach one SSH public key. If you do not have one, use
- Ask your sponsor:
- to give you TU status on the AUR.
- to open a new task in the "Keyring" project of the bug tracker following the instructions in this message in order to have your PGP key signed by three master key holders.
- Install the package.
- Configure your private ssh key for
- Ssh to email@example.com (once you have permissions).
- If you are not upgraded to a Trusted User group on bug tracker in two days, report this as a bug to arch-dev-public.
- Start contributing!
The TU and [unsupported]
The TUs should also make an effort to check package submissions in UNSUPPORTED for malicious code and good PKGBUILDing standards. In around 80% of cases the PKGBUILDs in the UNSUPPORTED are very simple and can be quickly checked for sanity and malicious code by the TU team.
TUs should also check PKGBUILDs for minor mistakes, suggest corrections and improvements. The TU should endeavor to confirm that all pkgs follow the Arch Packaging Guidelines/Standards and in doing so share their skills with other package builders in an effort to raise the standard of package building across the distro.
TUs are also in an excellent position to document recommended practices.
The TU and [community], Guidelines for Package Maintenance
Rules for Packages Entering the [community] Repo
- A package must not already exist in any of the Arch Linux repositories. You should take necessary precautions to ensure no other packager is in the process of promoting the same package. Double-check the AUR package comments, read the latest subject headings in aur-general, search all projects in the bugtracker, grep the Subversion log, and send a quick message to the private TU IRC channel.
- Only "popular" packages may enter the repo, as defined by 1% usage from pkgstats or 10 votes on the AUR.
- Automatic exceptions to this rule are:
- i18n packages
- accessibility packages
- dependencies of packages who satisfy the definition of popular, including makedeps and optdeps
- packages that are part of a collection and are intended to be distributed together, provided a part of this collection satisfies the definition of popular
- Any additions not covered by the above criteria must first be proposed on the aur-general mailing list, explaining the reason for the exemption (e.g. renamed package, new package). The agreement of three other TUs is required for the package to be accepted into [community]. Proposed additions from TUs with large numbers of "non-popular" packages are more likely to be rejected.
- TUs are strongly encouraged to move packages they currently maintain from [community] if they have low usage. No enforcement will be made, although resigning TUs packages may be filtered before adoption can occur.
- It is good practice to always bump the pkgrel by 1 (in other words, set it to n + 1) when promoting a package from AUR. This is to facilitate automatic updates for those who already have the package installed, so that they may continue to receive updates from the official channel. Another positive effect of this is that users are not warned that their local copy is newer, as is the case if a packager does reset the pkgrel to 1.
Accessing and Updating the Repository
The [community] repository now uses devtools which is the same system used for uploading packages to [core] and [extra], except that it uses another server
orion.archlinux.org instead of
gerolde.archlinux.org. Thus most of the instructions in Packager Guide work without any change. Information which is specific for the [community] repository (like changed URLs) have been put here. The devtools require packagers to set the PACKAGER variable. This is done in
/etc/makepkg.conf for system-wide configuration, or in
~/.makepkg.conf for user specific configuration.
Initially you should do a non-recursive checkout of the [community] repository:
svn checkout -N svn+ssh://firstname.lastname@example.org/srv/repos/svn-community/svn svn-community
This creates a directory named "svn-community" which contains nothing but a ".svn" folder.
For checking out, updating all packages or adding a package see the Packager Guide.
To remove a package:
ssh orion.archlinux.org /community/db-repo-remove community arch pkgname
Here and in the following text, arch can be one of i686 or x86_64 which are the two architectures supported by Arch Linux.
When you are done with editing the PKGBUILD, etc., you should commit the changes (
Build the package with
mkarchroot or the helper scripts
extra-x86_64-build. If you want to upload to testing you also need to build with the testing scripts
Sign the package with
gpg --detach-sign *.pkg.tar.xz. If you are using a different PGP key for package signing you can add it to
When you want to release a package, first copy the package along with its signatures to the staging/community directory on orion.archlinux.org using
scp and then tag the package by going to the pkgname/trunk directory and issuing
archrelease community-arch. This makes an svn copy of the trunk entries in a directory named community-i686 or community-x86_64 indicating that this package is in the community repository for that architecture. Note that the staging directory is different from the staging repository and every package needs to be uploaded the to staging directory. This process can be automated with the
communitypkg script, see the summary below.
Note: In some cases, especially for community packages, an x86_64 TU might bump the pkgrel by .1 (and not +1). This indicates that the change to the PKGBUILD is x86_64 specific and i686 maintainers should not rebuild the package for i686. When the TU decides to bump the pkgrel, it should be done with the usual increment of +1. However, a previous pkgrel=2.1 must not become pkgrel=3.1 when bumped by the TU and must instead be pkgrel=3. In a nutshell, leave dot (.) releases exclusive to the x86_64 TU's to avoid confusion.
Package update summary:
- Update the package directory:
svn update some-package.
- Change to the package trunk directory:
- Edit the PKGBUILD, make necessary changes, update hashes with
- Build the package: either
extra-x86_64-build. It is mandatory to build in a clean chroot.
- Namcap the PKGBUILD and the binary
- Commit, Sign, Copy and Tag the package using
communitypkg "commit message". This automates the following:
- Commit the changes to trunk:
- Sign the package:
gpg --detach-sign *.pkg.tar.xz.
- Copy the package and its signature to orion.archlinux.org:
scp *.pkg.tar.xz *.pkg.tar.xz.sig orion.archlinux.org:staging/community/.
- Tag the package:
- Commit the changes to trunk:
- Update the repository:
ssh orion.archlinux.org /community/db-update.
Also see the Miscellaneous section in the Packager Guide and SSH_keys#ssh-agent. For the section Avoid having to enter your password all the time use orion.archlinux.org instead of gerolde.archlinux.org.
If a TU cannot or does not want to maintain a package any longer, a notice should be posted to the AUR Mailing List, so another TU can maintain it. A package can still be disowned even if no other TU wants to maintain it, but the TUs should try not to drop many packages (they should not take on more than they have time for). If a package has become obsolete or is not used any longer, it can be removed completely as well.
If a package has been removed completely, it can be uploaded once again (fresh) to UNSUPPORTED, where a regular user can maintain the package instead of the TU.
Moving packages from unsupported to [community]
Follow the normal procedures for adding a package community, but remember to delete the corresponding package from unsupported!
Moving packages from [community] to unsupported
Remove the package using the instructions above and upload your source to the AUR.
Moving packages from [community-testing] to [community]
ssh nymeria.archlinux.org /srv/repos/svn-community/dbscripts/db-move community-testing community package
Deleting packages from unsupported
There is no point in removing dummy packages, because they will be re-created in an attempt to track dependencies. If someone uploads a real package then all dependents will point to the correct place.