AUR Guidelines

April 10, 2005
1.0.0
Ben Mazer blm@groknil.org
The Trusted Users tur-users@archlinux.org

Summary

Basic guidelines for the Arch User Repository.

Table Of Contents

  1. Purpose
  2. The User
    1. Submitting Packages
  3. The TU
    1. Adding a TU
    2. Removing a TU
    3. Other Duties
  4. Guidelines for Package Maintenance
    1. Accessing the Repo
    2. Adopting a package
    3. Disowning a package
    4. Packaging Etiquette

Purpose

The AUR is a community of Arch users, where packages outside of the core Arch distribution are maintained. The AUR Community Repo is a supplement to the EXTRA and CURRENT repositories; less popular packages will be maintained as a service to the general Arch-using population. Packages in the AUR will depend on EXTRA and CURRENT.

The AUR was created to lift the burden on the developers. They should be allowed to focus on adding new features, rather than doing the mundane job of package maintenance. Therefore, all packages start inside the AUR, and as developers consider them crucial to the distribution, they will be adopted into EXTRA/CURRENT. The AUR was also created to allow easy participation. Arch is completely volunteer-based, and needs help from its users. Lastly, the AUR helps to further the Arch philosophy of KISS. The Arch Core (EXTRA/CURRENT/UNSTABLE) is a complete distribution, but it does not attempt to provide every single package. The AUR helps by maintaining less popular packages; but the AUR also follows KISS, and only popular packages from UNSUPPORTED will make it into the official AUR repository.

The User

Users of the AUR can do many things, the main function being to download and use packages. One can access the AUR by adding this to their pacman.conf file:

[community]
Server = ftp://ftp.archlinux.org/community/os/i686/


But a user can also help with package maintenance, by: submitting packages (and then maintaining them while they remain in UNSUPPORTED), filing bug reports, reporting out-of-date packages, helping with other user-submitted PKGBUILDs, and voting for packages that should be maintained by the TUs. Once a user account has been created, all functions can be performed inside the web interface.

Submitting Packages

Inside the web interface, a user can submit a tarball (tar.gz) of a directory containing build files for a package. The directory inside the tarball should contain a PKGBUILD, any .install files, patches, etc (no binaries). Examples of what a directory looks like can be seen inside /var/abs.

When submitting a package, observe the following rules:

The TU

The TU -or Trusted User- is a member of the community charged with keeping the AUR in working order. He maintains popular packages, and votes 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.

Adding a TU

TUs are only added as needed, and applications will only be accepted at certain times. Check the AUR website for details on whether applications are being accepted.

TUs are elected democratically. If you would like to become a TU, a sponsor (another TU) is needed. After this is received, a request must be made on the AUR Mailing List by the sponsor. Ideally, a TU should have a specific subset of packages he wishes to maintain.

Four other votes must be received from other TUs for an applicant to be accepted. Once these have been received, the user will be given the proper passwords, and a TU will upgrade the user's status on the web interface.

Sanctioning/Removing a TU

There is a basic sanctioning system for TUs. If a TU breaks a rule, either official or through "community standards" when he was already aware of this rule, one can request a sanction. If two other votes from TUs are received, a sanction will be added. After two sanctions, the TU will automatically come up for a removal vote.

If a TU is not working out, for any reason, one can request him to be expelled. Someone requesting a removal of a TU must state a valid reason, and why immediate removal is necessary. Almost always, previous sanctions will be needed. With four additional votes, that TU will be immediately removed and his packages will have to be adopted by a different TU.

Other Duties

All other duties (changing rules, adding new regulations, new features, etc) should be discussed openly on the AUR Mailing List and voted on. Various pieces of documentation and code can have specified "maintainers" that can perform basic updates (typo/bug fixes) without a vote, but any changes should be reported on the mailing list. Any major changes should receive a simple majority vote.

Guidelines for Package Maintenance

Accessing the Repo

Follow these instructions for uploading/modifying packages:

  1. Install the "tupkg" package.
  2. Email Jason () for a CVS account.
  3. Run the following commands to checkout the AUR CVS:
    export CVSROOT=":pserver:<userid>@cvs.archlinux.org:/home/cvs-community"
    cvs login
    cvs co community
  4. To add a PKGBUILD and other build files:
    cvs add <directory>
    cd <directory>
    cvs add PKGBUILD
    .
    .
    cvs commit
  5. To upload a binary package: tupkg --user <userid> --password <password> <packagefile.pkg.tar.gz>
  6. After uploading a package and committing the build files, tag the files with this command: cvs tag -cFR CURRENT <newpackagebuilddir>
  7. Package changes should be available within 10 minutes. Verify everything was uploaded properly, then select the newly added or updated package in the web interface and set yourself as the maintainer.

Adopting Packages

A TU may adopt any package at any time. But because the TU's time is limited, he should try to only adopt popular packages. The voting mechanism in the AUR allows a TU to quickly gage which packages users want.

If a package receives 25 votes, it may be adopted by a TU. A maintainer should adopt it via the web interface. That maintainer is then responsible for bug fixes and new version updates. Packages must be properly cleaned and fixed after adoption.

Disowning packages

If a TU can't or doesn't 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 shouldn't take on more than they have time for). If a package has become obsolete or isn't used any longer, it can be removed completely as well.

Packaging Etiquette

Adhere to the following rules when building/maintaining packages: