Talk:Arch User Repository

From ArchWiki
Revision as of 06:46, 23 May 2019 by Quequotion (talk | contribs) (replaces=(): properly use {{ic|}})
Jump to navigation Jump to search


What is the correct AUR forum section?

Arch_User_Repository#Submitting_packages says it's [1], but we also have [2]. One of them should be added to Arch_User_Repository#I_have_a_PKGBUILD_I_would_like_to_submit.3B_can_someone_check_it_to_see_if_there_are_any_errors.3F. -- Karol (talk) 12:30, 7 August 2015 (UTC)

Both have a place in #Proposal: Verifying packages, which also distinguishes that one is maintainer-oriented (Creating & Modifying Packages) and the other end-user oriented (AUR Issues, Discussion & PKGBUILD Requests). quequotion (talk) 12:19, 22 February 2019 (UTC)

contribute to existing package

what is the best way to contribute to an existing AUR package? i cloned one and tried to push but it gave me a permission error --Soloturn (talk) 16:04, 28 January 2019 (UTC)

Users are not allowed to modify something owned by another user. It's no different from cloning a Github repository and trying to push to that. The equivalent of submitting an issue would be leaving a comment with a patch file. The AUR platform in particular allows collaboration features -- you may request that a maintainer grant you push access by adding your name as a co-maintainer. If the package is broken or out of date, see Arch User Repository#Foo in the AUR is outdated; what should I do?
This is possibly something that we should make clear in a FAQ entry. -- Eschwartz (talk) 19:49, 28 January 2019 (UTC)
I was thinking about this while writing a proposal regarding "Other requests". It is possible to request a package be disowned with "Orphan"; why not add "Co-maintain" to send a request to ask for permission to assist with a package's maintenance? Of course, it would not be unnecessary to send that request to the mailing list, and there's always the AUR comments or the forums for users to contact a maintainer otherwise; but having the feature built in to the AUR would allow us to add a fourth subsection here to recommend ground rules and possibly expedite the process of adding co-maintainers when packagers are interested in doing so. quequotion (talk) 14:45, 6 February 2019 (UTC)

Integrate FAQ content

This will be a massive undertaking, possibly spanning multiple articles, but I think it will be helpful to preempt a lot of these questions by having a more concise, informative page. The very first response I got about this on IRC was a misinterpretation, so let me be explicit: it is not implied that the FAQ will be removed by these changes, that is the primary reason I am proposing them. The FAQ is a disorganized mess of information that should be in other sections of the article, is redundant with existing sections of the article, or belongs on entirely different pages. Are these actual questions people often ask, or is this a convenient way to append random bits of advice to the end of an incomplete article?

I don't mean to denigrate anyone's work here; this advice is good, I just want to organize it in a better way. quequotion (talk) 10:28, 9 February 2019 (UTC)

There is no confusion here: I'm well aware you want to remove the FAQ, that is the entire reason I disagree with it in the first place.
"FAQ: a list of questions and answers relating to a particular subject, especially one giving basic information for users of a website."
This is most explicitly a case where it is morally, philosophically, and for the sake of usability, superior to describe in FAQ format, hiding this information by integrating it into "relevant sections" is explicitly doing a disservice to the community and to all users.
I'm uninterested in discussing any specificity of your attempted work below, because I'm unconvinced it is a good idea to even try. -- Eschwartz (talk) 01:55, 10 February 2019 (UTC)
Why: For the future of the page. Which way should future writers go? Append a new FAQ for their tidbit of advice, or add it to a relevant section of the page? There are already sixteen FAQ; there's half as much content in the FAQ section as the previous sections combined (I counted a little over thirteen mousewheel scrolls to reach the FAQ, and about seven to get through it).
How about a counter proposal: if the FAQ really is essential, we move the content to relevant sections on relevant pages, then reduce the FAQ to a series of one-liners that link to the appropriate content. Assuming people actually ask these questions, that will both satisfy their search for answers and keep the page maintainable. quequotion (talk) 02:38, 10 February 2019 (UTC)

By the way, if you'd like to see the big picture, here is a whole-page draft. I am keeping it up-to-date with edits here, the only difference being that #What is the AUR? is removed from the draft page. quequotion (talk) 12:53, 22 February 2019 (UTC)

Proposal: FAQ

Comment: Truncates FAQs' answers as much as possible, linking to an appropriate page or (proposed) section of the AUR page. quequotion (talk) 14:11, 15 May 2019 (UTC)

What is the AUR?

The AUR (Arch User Repository) is a place where the Arch Linux community can upload PKGBUILDs of applications, libraries, etc., and share them with the entire community. Fellow users can then vote for their favorites to be moved into the community repository to be shared with Arch Linux users in binary form.

Comment: As previously noted, I can find no reason for this to be here; the answer is the page header. Is it possible that someone would read this page and still have this question to ask? quequotion (talk) 14:47, 12 February 2019 (UTC)

What kind of packages are permitted on the AUR?

For most cases, everything is permitted, subject to the #Rules of submission.

How can I vote for packages in the AUR?

See #Voting for packages.

What is a Trusted User (TU)?

The Trusted Users are elected to oversee the AUR and maintain the community repository.

What is the difference between the Arch User Repository and the community repository?

AUR packages are maintained by community members and provided in source format, while the packages in the community repository are maintained by the Trusted Users and provided in pre-compiled binary format. See #Promoting packages to the community repository for more information.

Foo in the AUR is outdated; what should I do?

See #Flagging packages out-of-date.

Tip: In the meantime, you can try updating the package yourself by editing the PKGBUILD locally. Sometimes, updates do not require changes to the build or package process, in which case simply updating the pkgver or source array is sufficient.

Foo in the AUR does not compile when I run makepkg; what should I do?

You are probably missing something trivial; see #Verifying packages.

ERROR: One or more PGP signatures could not be verified!; what should I do?

See Makepkg#ERROR: One or more PGP signatures could not be verified!.

How do I create a PKGBUILD?

Be sure to check the AUR to avoid duplicating efforts, then see creating packages.

I have a PKGBUILD I would like to submit; can someone check it to see if there are any errors?

There are several channels available to submit your package for review; see #Verifying packages.

How to get a PKGBUILD into the community repository?

See #Promoting packages to the community repository.

How can I speed up repeated build processes?

See Makepkg#Improving compile times.

Comment: Not specifically AUR-relevant; sufficiently available on the Makepkg page. Come to think of it, if we have to keep some FAQs, this is about the appropriate length their answers should be (primarily linking to the appropriate section or article answering the question). quequotion (talk) 16:18, 9 February 2019 (UTC)

What is the difference between foo and foo-git packages?

Many AUR packages come in "stable release" and "unstable development" versions. Development packages usually have a suffix denoting their Version Control System and are not intended for regular use, but may offer new features or bugfixes.

See also System maintenance#Use proven software packages and VCS package guidelines.

Comment: Perhaps we could extend the Package naming section of the Arch package guidelines; at least to inform readers that there are additional naming conventions on the pages listed by Template:Package guidelines (such as VCS package guidelines). quequotion (talk) 12:31, 14 March 2019 (UTC)

Why has foo disappeared from the AUR?

It is possible the package has been adopted by a TU and is now in the community repository.

Packages may be deleted if they did not fulfill the #Rules of submission. See the aur-requests archives for the reason for deletion.

If the package used to exist in AUR3, it might not have been migrated to AUR4. See the #Git repositories for AUR3 packages where these are preserved.

How do I find out if any of my installed packages disappeared from AUR?

The simplest way is to check the HTTP status of the package's AUR page:

$ comm -23 <(pacman -Qqm | sort) <(curl | gzip -cd | sort)

How can I obtain a list of all AUR packages?

Proposal: Feedback

Comment: Merges FAQs 3 and 6 as well as the Comment Syntax section into the Feedback section. quequotion (talk) 18:37, 6 February 2019 (UTC)
Edits implementing this section of the proposal are complete. quequotion (talk) 03:40, 17 May 2019 (UTC)

The AUR provides various means for users to communicate with package maintainers, provided they have setup an account on the AUR Web Interface.

Commenting on packages

Comments allow users to provide suggestions or respond to updates and maintainers to respond to users or make announcements. Make a comment in the "Add Comment" section of a package's AUR page.

The Python-Markdown syntax is supported, which provides basic Markdown syntax for formatting. Maintainers may pin comments by clicking the thumbtack button in their top-right corner.

  • The markdown implementation has some occasional differences with the official syntax rules.
  • Commit hashes to the Git repository of the package and references to Flyspray tickets are converted to links automatically.
  • Long comments are collapsed and can be expanded on demand.
Tip: Avoid pasting patches or PKGBUILDs into the comments section; they quickly become obsolete and just end up needlessly taking up lots of space. Instead email those files to the maintainer, or use a pastebin.

Voting for packages

One of the easiest activities for all Arch users is to browse the AUR and vote for their favourite packages. All packages are eligible for adoption by a TU for inclusion in the community repository, and the vote count is one of the considerations in that process; it is in everyone's interest to vote!

While logged in, on the AUR page for a package you may click "Vote for this package" under "Package Actions" on the right. It is also possible to vote from the commandline with aurvoteAUR, aurvote-gitAUR, aur-auto-vote-gitAUR, or aurvote-utilsAUR.

Alternatively, if you have set up ssh authentication, you can directly vote from the command line using your ssh key and avoid having to save or type in your AUR password.

ssh vote <PACKAGE_NAME>

Flagging packages out-of-date

While logged in, on the AUR page for a package you may click "Flag package as out-of-date" under "Package Actions" on the right. You should also leave a comment indicating details as to why the package is outdated, preferably including links to a release announcement or a new release tarball. Also try to reach out to the maintainer directly by email. If there is no response after two weeks, you may file an orphan request.

Note: VCS packages are not considered out-of-date when the pkgver changes, do not flag them as the maintainer will merely unflag the package and ignore you.

Proposal: Promoting packages to the community repository

Comment: Merges FAQs 5 and 11 into a new section. quequotion (talk) 20:16, 6 February 2019 (UTC)
Edits to implement this proposal are completed. quequotion (talk) 07:08, 17 May 2019 (UTC)

When AUR packages receive enough community interest and the support of a Trusted User, they may be adopted into the community repository (maintained by the TUs), from which binary packages can be installed using pacman.

Usually, at least 10 votes are required for something to move into community. However, if a TU wants to support a package, it will often be found in the repository.

Sufficient votes are not the only requirement; there has to be a TU willing to maintain the package. TUs are not required to adopt a package even if it has thousands of votes.

Usually, when a very popular package stays in the AUR it is because:

  • Arch Linux already has another version of a package in the repositories.
  • Its license prohibits redistribution.
  • It helps retrieve user-submitted PKGBUILDs (AUR helpers).

See also Rules for Packages Entering the community Repo.

Proposal: Verifying packages

Comment: Merges FAQs 7 and 10 and some of the header of Submitting packages into a new section. Although general information about debugging packages is best handled by the makepkg and PKGBUILD pages, there are some particular things that AUR package maintainers and users should be aware of. quequotion (talk) 15:44, 9 February 2019 (UTC)
Edits to implement this section of the proposal are now complete. quequotion (talk) 14:22, 17 May 2019 (UTC)

If you are having trouble building a package, read its PKGBUILD and the comments on its AUR page. It is possible that a PKGBUILD is broken for everyone. If you cannot figure it out on your own, report it to the maintainer (e.g. by posting the errors you are getting in the comments on the AUR page). You may also seek help in the AUR Issues, Discussion & PKGBUILD Requests forum.

To avoid problems caused by your particular system configuration, build packages in a clean chroot. If the build process still fails in a clean chroot, the issue is probably with the PKGBUILD.

See Creating packages#Checking package sanity about using namcap to debug packages. If you would like to have a PKGBUILD reviewed, post it on the aur-general mailing list to get feedback from the TUs and fellow AUR members, or the Creating & Modifying Packages forum. You could also seek help in the IRC channel #archlinux-aur on Freenode.

Tip: Avoid common pitfalls:
  1. Ensure your build environment is up-to-date by upgrading before building anything.
  2. Ensure you have both base and base-devel groups installed.
  3. Use the -s option with makepkg to check and install all the dependencies needed before starting the build process.
  4. Try the default makepkg configuration.
  5. See Makepkg#Troubleshooting for common issues.

Proposal: Submitting packages

Comment: Merges FAQ 2 into Rules of submission. quequotion (talk) 16:09, 9 February 2019 (UTC) With the exception of Talk:Arch package guidelines#Proposal: Unofficial package, which would allow a few lines to be transferred off the AUR page, edits implementing this section of the proposal are complete. quequotion (talk) 15:04, 17 May 2019 (UTC)
Warning: Before attempting to submit a package you are expected to familiarize yourself with Arch packaging standards and all the articles under "Related articles". Verify carefully that what you are uploading is correct. Packages that violate the rules may be deleted without warning.

If you are unsure in any way about a package or the build/submission process even after reading this section twice, submit the PKGBUILD for review.

Rules of submission

When submitting a package to the AUR, observe the following rules:

  • Submitted PKGBUILDs must be in compliance with the licensing terms of the content to be packaged. In cases where it is mentioned that "you may not link" to downloads, i.e. contents that are not redistributable, you may only use the file name itself as the source. This means and requires that users already have the restricted source in the build directory prior to building the package. When in doubt, ask.
  • Submitted PKGBUILDs must not duplicate applications in any of the official repositories. Check the official package database; if the package exists, do not submit a duplicate. If the official package is out-of-date, flag it as such. If the official package is broken, or lacking a standard feature, please file a bug report.
The only exception to this is for packages with extra features enabled and/or patches in comparison to the official ones, in which case pkgbase should be different to express that.
Comment: Skipping three bullet points (Check the AUR..., Make sure..., Do not use...), no changes to propose for them. quequotion (talk) 12:52, 15 May 2019 (UTC)
Comment: No other changes to this section (content from this point on is the same) quequotion (talk) 17:25, 9 February 2019 (UTC)

Removal of SSH key tutorial

What is this about? Are you sure those AUR-specific tutorials should be removed? Don't get me wrong, I'm all for minimizing any section of the page that safely can be, but it seems like this edit leaves out some important information (like specifying a corresponding private key configured for the host). quequotion (talk) 12:44, 22 February 2019 (UTC)

My edit was motivated by strong disagreement with the statement "You should create a new key pair rather than use an existing one, so that you can selectively revoke the keys should something happen". Imho it is misleading to imply any security benefit resulting from creating per-target-host SSH client key pairs. If anything, this bad habit complicates revoking compromised keys. Adding a Host-section to the SSH client configuration file is unneccessary if you only have a single SSH client key pair, as it will be selected automatically. Pyropeter (talk) 02:11, 23 February 2019 (UTC)

the wording around pkgbase is unclear

In Creating_package_repositories, some people might end running the exact command below even if they do not copy-paste commands blindly:

git clone ssh://

This part is unclear: "establish a local Git repository and an AUR remote by cloning the intended pkgbase.": some readers might think that here pkgbase is not a PKGBUILD variable but instead describe the name of a repository that has a template for creating packages.

Several people already pushed their packages in this pkgbase repository.

So it would be best to make sure that the people reading this understand that the pkgbase refers to the PKGBUILD variable and not to a PKGBUILD template. As the pkgbase variable is often not defined explicitely in PKGBUILDS, readers don't necessarily have that variable in mind at the time of reading that section.

Maybe the following would be more clear:

If you are creating a new package from scratch, establish a local Git repository and an AUR remote by cloning the package's repository which is located at ssh:// Replace PKGBASE by your package's pkgbase.

GNUtoo (talk) 15:15, 31 March 2019 (UTC)

This is why it is italicized; it should be clear that it represents a variable. It would be more clear if users have read the PKGBUILD page first, which they should. Maybe it would be better to block packages from being uploaded to 'pkgbase' in the AUR. quequotion (talk) 00:42, 1 April 2019 (UTC)

Adopting orphaned packages

Although adoption by a new maintainer is mentioned several times in the article, how this is done is not explicitly stated. The procedure is the same as for creating a new package (clone from ssh source, or set source url to ssh if cloned from https). quequotion (talk) 20:00, 19 May 2019 (UTC)

Might also be a good idea to mention where the "adopt package" button is on the AUR web interface. Curious though, if it is really necessary to click this, or if pushing to an orphaned repository will automatically adopt it. quequotion (talk) 15:13, 20 May 2019 (UTC)

Current: Creating package repositories

If you are creating a new package from scratch, establish a local Git repository and an AUR remote by cloning the intended pkgbase. If the package does not yet exist, the following warning is expected:

Proposal: Creating or adopting package repositories

If you are creating a new package from scratch, or adopting an orphaned package, establish a local Git repository and an AUR remote by cloning the intended pkgbase. If the package does not yet exist, the following warning is expected:

Proposal: Maintaining packages

Comment: An additional bullet point for this subsection. quequotion (talk) 15:32, 20 May 2019 (UTC)
  • Orphaned packges can be adopted by clicking on the "Adopt Package" link under "Package Actions" on the right of its AUR page, which will allow you to clone its repository and push changes.


Although the place to explain replaces is really the PKGBUILD article, I see the need for this blurb with this rule. I think it could be done better though. Particularly I'd like to remove the implication that pacman -Sy is to be used for any purpose. quequotion (talk) 06:44, 23 May 2019 (UTC)


  • Do not use replaces in an AUR PKGBUILD unless the package is to be renamed, for example when Ethereal became Wireshark. If the package is 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 usually the desired behavior because it is less invasive.


  • Do not use replaces in an AUR PKGBUILD unless the package has been renamed or deprecates another, for example when Ethereal became Wireshark. If a package is an alternate version of an existing package, use conflicts (and provides when the offending package has dependents).
replaces forces pacman to install the replacement package as an upgrade of the offending package, while conflicts tells pacman to remove an offending package if the conflicting package is being installed.