Submitting Packages to the AUR

Note the following before submitting any packages to the AUR:

The submitted PKGBUILDs MUST NOT build applications already in any of the official binary repositories under any circumstances. Exception to this strict rule may only be packages having extra features enabled and/or patches in compare to the official ones. In such an occasion the pkgname array should be different to express that differency.
eg. A GNU screen PKGBUILD submitted containing the sidebar patch, could be named screen-sidebar etc. Additionally the provides('screen') PKGBUILD array should be used in order to avoid conflicts with the official package.

To ensure the security of pkgs submitted to the AUR please ensure that you have correctly filled the md5sum field. The md5sum's can be generated using the makepkg -g command.

Please add a comment line to the top of your
PKGBUILD file that follows this format:

# Contributor: Your Name <your.email>

Verify the package dependencies (eg, run
ldd on dynamic executables, check tools required
by scripts, etc).
The TU team strongly recommend the use of the
namcap utility, written by Jason Chu (jason@archlinux.org), to analyze the
sanity of your package. namcap will tell you about
bad permissions, missing dependencies, un-needed dependencies,
and other common mistakes. You can install the
namcap package with pacman.
Remember namcap can be used to check both pkg.tar.gz files and PKGBUILDs

Dependencies
are the most common packaging error. Namcap can help detect them, but
it is not always correct. Verify dependencies by looking at source
documentation and the program website.

Don't use replaces in your PKGBUILD unless you want to rename your package, for example when Ethereal became Wireshark. If you just provide an alternate version of an already existing package, use conflicts (and provides if that package is required by others). The main difference is: after syncing (-Sy) pacman immediately wants to replace an installed, 'offending' package upon encountering a package with the matching replaces anywhere in its repositories; conflicts on the other hand is only evaluated when actually installing the package, which is pretty much always the desired behavior because you don't push your package down other people's throat this way.

All files uploaded to the AUR should be contained in a compressed tar
file containing a directory with the PKGBUILD and additional build files (patches, install, ...) in it.

foo/PKGBUILD
foo/foo.install
foo/foo_bar.diff
foo/foo.rc.conf

The archive name should contain the name of the package
e.g. foo.tar.gz

The tarball should not contain the binary tarball created by makepkg, nor should it contain the filelist