Talk:Arch User Repository

From ArchWiki
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)

AUR link

The link to this page from the AUR homepage is outdated.

"Submitting packages" located above the SSH keys directs to an AUR4 link, which has since become just AUR. I'm not knowledgeable of the methods to correct this.

-- Ctag (talk) 00:05, 23 September 2015 (UTC)

You can submit a bug report for the AUR web interface project in the tracker. Or even provide a patch: sources are at [3]. -- Lahwaacz (talk) 11:22, 23 September 2015 (UTC)


Adding * to .gitignore is an ugly workaround for something (in case of dotfiles, programs not respecting standards and e.g. storing cache and config files together). There isn't much to be excluded here - the only unpredictable part is the source tarballs and VCS directories, which can be easily put away by configuring SRCDEST in makepkg.conf. We can still recommend to add the source files explicitly.

The recommendation will affect everybody using the given package, not only the user managing his personal config files, so I think an explicit blacklist is better than the * wildcard here.

-- Lahwaacz (talk) 08:58, 6 March 2016 (UTC)

I agree, as per my original recommendation. The simple thing to do is git add .; some packages do have an annoying variety of files. Better to explicitly exclude download directories other known cruft in .gitignore. quequotion (talk) 12:15, 6 March 2016 (UTC)
So the concern is you'd miss to whitelist some "annoying variety" of files, which you wouldn't with git add .? You might as well argue that you'd miss to blacklist a file you wouldn't want to upload to the AUR...
Either way, I'd agree configuring SRCDEST is the better (and universal) solution here. -- Alad (talk) 15:05, 6 March 2016 (UTC)
Good point, the whole reason for posting a guide indeed is to show users how to deal with AUR4 in the way Archlinux administration expects, this seems to be the more reliable solution[
Then I remembered what SRCDEST actually does and realized it wouldn't sufficiently resolve the issue (the source directory is not the only cruft to be avoided). quequotion (talk) 03:55, 13 March 2016 (UTC)
I have SRCDEST, PKGDEST, LOGDEST, and BUILDDEST set. Suffice to say there's no cruft in my .git dirs. It's not much a bother either, since the values are commented in makepkg.conf. -- Alad (talk) 12:35, 13 March 2016 (UTC)
What about the symlinks to the built packages and signatures? -- Lahwaacz (talk) 13:04, 13 March 2016 (UTC)
Assuming only makepkg crates symlinks in the clone directory (correct me if I'm wrong), you can do something like find -maxdepth 2 -type l -delete in the directory above, in my case a dedicated "AURDEST".
Perhaps too specific for the general case, but the special type helps anyway. -- Alad (talk) 13:43, 13 March 2016 (UTC)
That's cleanup, not prevention. Anyway, the point of .gitignore is not to move the "cruft" away, but to keep the repo directory clean in git terms, i.e. git should not report files created by makepkg as untracked. -- Lahwaacz (talk) 11:48, 14 March 2016 (UTC)
In that case, I refer to my comment below on just mentioning .gitignore, but not recommending a specific method. -- Alad (talk) 19:47, 14 March 2016 (UTC)
Recommending either way is problematic since this is more a question of git usage style rather than AUR usage. The maintainer should set up the .gitignore in an intuitive way depending on their git workflow and how the package is organized. If I had to recommend anything, it would be either: don't git add . (because it's lazy and can easily backfire), or always check git status before you commit to make sure you know what's staged (and we already recommend checking your commits before pushing). But again, those are more general git recommendations than anything AUR-specific. Silverhammermba (talk) 21:58, 9 March 2016 (UTC)
Using gitignore is useful not only for the comfort of the maintainer, but also of users building and installing the package. For example if pkg/, src/ etc. are not gitignored, tools such as repocheck will not work correctly. -- Lahwaacz (talk) 23:05, 9 March 2016 (UTC)
I still don't see how that is AUR-specific information. It is certainly good practice to have a gitignore for any git repo with files you don't want to track, but it is by no means necessary nor is it a practice specific to AUR repos. Adding git tricks to this article that are just general best practices is a slippery slope to creating a duplicate git tutorial like Quequotion did. I would much rather direct users to and emphasize the importance of learning git properly before contributing AUR packages. Silverhammermba (talk) 17:58, 10 March 2016 (UTC)
We know certain things could be .gitignored for every package, such as src/, pkg/, and *.pkg.tar.xz; but we cannot know what files a packager may be using otherwise. I think having packagers create an explicit blacklist is the smallest and easiest of the available options. quequotion (talk) 03:55, 13 March 2016 (UTC)
Stuff makepkg creates can be moved automatically, as indicated above. The rest is an edge case, and the best way to handle it is subject to debate. If anything, just mention .gitignore, but not a specific approach to using it. -- Alad (talk) 12:35, 13 March 2016 (UTC)
I've changed my mind, and my perspective on this issue. I realized too late, after uploading several ridiculously large .gitignore files to AUR, that it's a huge waste of space (actually, you don't have to send .gitignore to AUR at all--but subsequent clones of your package will then not have a .gitignore). Putting an asterisk in it and using git add -f is a better idea for the AUR's bandwidth and storage space. quequotion (talk) 17:55, 17 July 2017 (UTC)
There is a tip about this on the wiki now. This discussion may be ready for closure. quequotion (talk) 14:52, 23 November 2018 (UTC)

AUR search takes '%' literally

Arch User Repository#Searching is marked by template:Accuracy, though I couldn't see the discussion here. Did I missed something? There are some comments at this forum thread. Regid (talk) 14:21, 5 June 2017 (UTC)

I haven’t started the discussion, because I assume that the first person that has something to say should do that. Since all I had to say was stated in the reason, I was not re-stating the problem here. Also I can’t fix that myself, because I have no idea how exactly AUR search works internally now and if this is just a bug or the current official status is that strings are taken literally. Therefore only marking it with Template:Accuracy. --Mpan (talk) 15:56, 5 June 2017 (UTC)

Markdown Syntax

Should there be a Markdown syntax section? [4][5] All those seem to work: linkDettalk 16:24, 5 December 2017 (UTC)

Oh wow, yes please. I had no idea that this was possible. And it's still unclear to me what syntax it uses. —Ostiensis (talk) 20:52, 5 December 2017 (UTC)
Well, there's a preliminary section: Arch_User_Repository#Comment_syntax. --Dettalk 22:28, 13 December 2017 (UTC)
[6] Well, I don't know how to do that, since they only implemented a small part of it? --Dettalk 22:35, 13 December 2017 (UTC)
Here they use the Python-Markdown library, which "is almost completely compliant with the reference implementation, though there are a few very minor differences." -- Lahwaacz (talk) 22:50, 13 December 2017 (UTC)
Thanks for that. FWIW I've never seen that multiline code syntax before, so I wonder if it *is* some strange home-brew markdown. —Ostiensis (talk) 22:37, 13 December 2017 (UTC)

FAQ - outdated package

Do you understand what the comment means "When we are talking about a package which is flagged out of date for more than 3 months and is in general not updated for a long time, please add this in your orphan request. " ? Kewl (talk) 15:49, 13 January 2018 (UTC)

When people request a package to be orphaned because the current maintainer does not respond to out-of-date notifications, it should be clarified in the request to speed up the resolution. -- Lahwaacz (talk) 18:05, 13 January 2018 (UTC)
Yes indeed and what about the 2 weeks vs the 3 months difference in the comments? This is what I don't get, if this is more than 3 months we should say in the comments "it has been 4 months" but if it has been let say 2 months we should not mention it? The rule is not clear and I am wondering if it is more urgent to find an adopter for a package that has not been updated for 2 years or for 3 weeks. In the latter case it does seem more urgent, rather the opposite then. Kewl (talk) 18:57, 13 January 2018 (UTC)
I think that the 2 weeks are for the maintainers to react to the request, even if it is not due to out-of-date package. Anyway, the FAQ entries are not strict, I doubt that the 3 months are obligatory. -- Lahwaacz (talk) 19:15, 13 January 2018 (UTC)
I have rephrased providing some more details in line with the AUR request template. The 3 months does not seems to be anything official, the 2 weeks neither but sounds reasonable. Feel free to amend or revert. Kewl (talk) 19:41, 13 January 2018 (UTC)

Add unsupported label in first paragraph

Due to some people not getting the memo that AUR is not supported and packages should be inspected carefully, and there is no assumption of quality, this should be stated in the first paragraph to avoid confusion and butthurt. Especially for those unfamiliar with Arch Linux —This unsigned comment is by GI Jack‎ (talk) 22:49, 30 March 2018. Please sign your posts with ~~~~!

There is a sufficient warning under the introductory paragraph now. This discussion can be closed. quequotion (talk) 14:41, 23 November 2018 (UTC)

Creating a new package: uploading an existing package to AUR

The "Creating a new package" section should assist two possible workflows: one wherein a user sets out to create an AUR package from scratch, and can thus start with a git clone; and another wherein a user already has a package (be it a git repository or not), then decides to upload it to AUR.

I've added a rewrite of "Uploading packages" to the proposal, hoping to eliminate redundancy between the two sections.

The goals of this proposal are as follows:

  • Reduce listed git commands in the article to those specific to using the AUR (eg, when it is necessary to specify an AUR repository url) by describing the procedure and linking to appropriate sections in the existing Git article. Avoiding a redundant git tutorial has been a point of contention on this article and I think this is the best resolution.
  • Simplify the language of these sections to reduce possible confusion and misinterpretations. I think we can help new users get the hang of this more quickly and reduce the size of the article.
  • Be more technically correct, such as specifying pkgbase instead of "package name" for the AUR remote repository. This may require new users to learn more about PKGBUILDs before attempting to upload one to the AUR, but that is probably a good thing.

With the right wording, and proper integration with other articles in the wiki, we can cover more bases with a smaller article and not leave as many users to bang their heads against the wiki until they figure it out. quequotion (talk) 16:43, 23 November 2018 (UTC)

I think I've done all the nitpicking I need to do here. I'm going to try to leave this alone for a while and wait for feedback. quequotion (talk) 13:58, 24 November 2018 (UTC)
Since you've completely rewritten 2 sections, you need to wait much longer than 3 days. Also, you should gain some positive feedback before merging this. Finally, note that merging proposals from discussion pages or elsewhere is not an excuse to break ArchWiki:Contributing#Do_not_make_complex_edits_at_once, i.e. the merge should not be done in just one edit. -- Lahwaacz (talk) 17:58, 27 November 2018 (UTC)
I understand your concerns. It may have been three days since the last edit, but I have been working on this for a week or so. I did get positive feedback, in #archlinux-wiki. As for splitting up the edits, I wouldn't mind doing one section at a time as long as it's understood that both edits are necessary to avoid redundancy (ie: I can make two edits, one immediately after the other). quequotion (talk) 09:19, 28 November 2018 (UTC)
Hey quequotion, thanks for taking the time to poperly introduce the changes here first, of course as Lahwaacz said it's sensible to wait longer, since there are many proposed modifications and the discussion looked quite "scary" at a glance, I've restructured it a bit also because it wasn't clear how you intended letting other people discuss each change in a tidy way.
About splitting complex changes, ArchWiki:Contributing#Do_not_make_complex_edits_at_once doesn't enforce to apply a specific number of edits (one, two, etc.); it instead recommends to split them "according to the various logical steps needed to complete" them. The edit summary that you used was:
> "Reduce creating and updating package subsections; replace git tutorials with descriptions linked to archwiki git page and git documentation; move comment about remaining git repositories to requests subsection"
I can see at least 4 logical steps there: 1) reduce creating package subsection; 2) reduce updating package subsection; 3) replace git tutorials with descriptions linked to archwiki git page and git documentation; 4) move comment about remaining git repositories to requests subsection.
Based on the number of inline comments in the drafts below, it may even feel more natural to make an edit for each of them, and use your comment as the edit summary ;)
-- Kynikos (talk) 16:43, 28 November 2018 (UTC)
I appreciate that you are trying to support improving the page by recommending a path to merging these changes that might be more acceptable to the other editors. The reason I made the initial edit at once is because it's the cleanest way. Breaking all of the necessary edits into stages will be messy; some things have to be done simultaneously (like moving the warning about git username and email out of one section and into the other, merging a tip into a note in Updating Package Content, etc). If it's really required to be done that way, so long as it is understood that the subsections will be messy and broken until the series of edits is complete. quequotion (talk) 09:50, 29 November 2018 (UTC)
About moving content around, Help:Procedures#Move a section within the same page can easily apply to any portion of content: if you need to move a Warning from one section to another, please open the common supersection (or the whole article) for editing, and move that portion of text in a single edit without changing its content; only reword it in a subsequent edit if needed. In general, those things that have to be done simultaneously as you noted yourself, should indeed be done simultaneously. This doesn't mean doing everything simultaneously, only that specific step. I'm sure that you understand that breaking changes into logical steps means that each small step must be internally coherent, i.e. it should not leave the article in a broken or messy state, unless strictly necessary. It's self evident that splitting a complex change in a series of edits where in the extreme case only one character would be moved at a time is just as illogical and unintelligible as doing everything in a single edit. These patches can be easily merged in a clean and tidy way, this is a good opportunity for you to practise it.
It's already well explained in ArchWiki:Contributing#The 3 fundamental rules, but this is all to make it as easy as possible for everybody now or in the future to follow what you're doing to this article which belongs to all of us.
-- Kynikos (talk) 14:40, 29 November 2018 (UTC)
Subjectively, I agree that making a single edit for each change is a good idea. Objectively, I think in this case it is a recipe for an edit war. I need to know the changes are going to be accepted, in whole, before I break them into stages and make individual edits. I understand the importance of protocol, and I can try to make these edits in as minimal stages as are possible, but I don't want to waste my time. We haven't much discussed the content of my proposal. I am confident these changes are beneficial; they received positive feedback on IRC, but they need feedback on this talk page as well. quequotion (talk) 10:44, 30 November 2018 (UTC)
From the #archlinux-wiki rules:
Always follow the three fundamental rules
Live discussions are not a replacement for proper edit summaries, or article discussion pages. Always follow ArchWiki:Contributing#The 3 fundamental rules.
So yes, you do need to reach an agreement on the talk page; anything on IRC is purely informal. -- Alad (talk) 13:42, 30 November 2018 (UTC)
I've added my feedback. Following the contribution rules isn't a waste of time, maybe a 5kB+ discussion on whether that's actually the case could instead be an example. I'm happy to properly merge the changes on behalf of quequotion. -- Kynikos (talk) 09:56, 2 December 2018 (UTC)

Current: Creating a new package

In order to create a new, empty, local Git repository for a package, simply git clone the remote repository with the corresponding name. If the package does not exist on AUR yet, you will see the following warning:


Terms like "simply" beg the question "In comparison to what?" and, in my opinion, make this sound in fact more difficult. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

AFAIC I like with your reworded version below, except for the following Comment. -- Kynikos (talk) 08:50, 2 December 2018 (UTC)
$ git clone ssh://
Cloning into 'package_name'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

Technically, AUR repository names should correspond to pkgbase. I think that should be specified here. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

Yeah, ok, that's technically more accurate, but I'd still mention that pkgbase most of the times corresponds to the package name.
Also, links shouldn't be further formatted (in this case it should be pkgbase, not pkgbase), see Help:Style/Formatting_and_punctuation#Links.
-- Kynikos (talk) 14:45, 29 November 2018 (UTC)
Italicization does not concern me in the least, but as you admit it is more technically accurate to specify 'pkgbase' here. It does no one any favors to use inspecific terminology like "package name"; the definition of 'pkgbase' is appropriately provided on the PKGBUILD page (as linked in my proposal) and it would be redundant to define it again here. quequotion (talk) 16:33, 29 November 2018 (UTC)
I don't feel very strongly about this, but without a third opinion I still think that ", which often corresponds to the package name" should be appended to the pkgbase link. -- Kynikos (talk) 08:59, 2 December 2018 (UTC)
Note: When a package on the AUR is deleted, the git repository is not deleted so it is possible for a deleted package's repository to not be empty when cloned if someone is creating a package with the same name.

That's quite a sentence. The statement about what happens when an AUR package is deleted probably belongs in #Other_requests' "deletion" subsection. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I like your revised Note below, I'm just mentioning that your proposed patch to #Other requests is only visible in [7] (and I'm ok with that too). -- Kynikos (talk) 09:03, 2 December 2018 (UTC)

If you have already created a git repository, you can simply create a remote for the AUR git repository and then fetch it:

$ git remote add remote_name ssh://
$ git fetch remote_name

As we've been over in regard to this section in particular more than enough times, what is not wanted for the Arch wiki are lists of specific instructions but rather general information from which a procedure can be surmised. Adding git init here may be too specific, but we really should cover the case of converting an existing package into a git repository. If this can be achieved by reducing this section and relying more on existing pages of the wiki I think it would be best all around. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I like your version below. -- Kynikos (talk) 09:20, 2 December 2018 (UTC)

In the case that package_name matches a "deleted" repository, pushes from a package created this way will be rejected. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I'm ok with your new Note below. -- Kynikos (talk) 09:20, 2 December 2018 (UTC)

where remote_name is the name of the remote to create (e.g., "origin"). See Git#Using remotes for more information.


This would be more effective if it used language matching that in the Git article. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

Again, ok from me. -- Kynikos (talk) 09:20, 2 December 2018 (UTC)

The new package will appear on AUR after you push the first commit. You can now add the source files to the local copy of the Git repository. See #Uploading packages.


The first two statements should be in the opposite order. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

True. You'd actually remove them here because that's explained in #Proposal: Updating package content, which I agree it makes sense as well. -- Kynikos (talk) 09:20, 2 December 2018 (UTC)
Warning: Your AUR commits will be authored according to your git user name and email address and it is very difficult to change commits after you push them (see FS#45425). If you want to push to AUR under a different name/email, you can change them for this package via git config [...] and git config [...]. Review your commits before pushing them!

The last bit feels like unnecessary hand-holding. It is important, but isn't this something users should learn to do on their own? -- quequotion (talk) 13:58, 24 November 2018 (UTC)

You're referring to the recommendation to "review your commits", ok with removing it.
Also, you're proposing to move the Warning to #Proposal: Updating package content, ok.
-- Kynikos (talk) 09:24, 2 December 2018 (UTC)

Proposal: 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:

$ git clone ssh://
Cloning into 'pkgbase'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
Note: The repository will not be empty if pkgbase matches a deleted package.

If you already have a package, initialize it as a Git repository if it isn't one, and add an AUR remote:

$ git remote add label ssh://

Then fetch this remote to initialize it in the AUR.

Note: Pull and rebase to resolve conflicts if pkgbase matches a deleted package.

Current: Uploading packages


At least the title of this section should be changed, as "uploading" (in the sense of creating a remote AUR repository for the package) is already handled above. This section serves to inform users on how to update or upload new package content. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I'd go for something that makes it clearer that this is still about "uploading" the new content to the AUR. Maybe something like "Release a new package version" or "Publish new package content" or similar? -- Kynikos (talk) 09:30, 2 December 2018 (UTC)

The procedure for uploading packages to the AUR is the same for new packages and package updates. You need at least PKGBUILD and .SRCINFO in the top-level directory to push your package to AUR.


While we're at it, I'd explicitly remind to update pkgver or at least pkgrel. -- Kynikos (talk) 09:34, 2 December 2018 (UTC)

Note: You need to regenerate the .SRCINFO every time you change PKGBUILD metadata, such as pkgver() updates. Otherwise the AUR will not show the updated version numbers.

@quequotion, why would you merge this Note with the "forgot to commit the .SRCINFO" Tip below? I find it confusing. -- Kynikos (talk) 09:37, 2 December 2018 (UTC)

To upload, add the PKGBUILD, .SRCINFO, and any helper files (like .install files or local source files like .patch) to the staging area with git add, commit them to your local tree with a commit message with git commit, and finally publish the changes to the AUR with git push.

For example:

$ makepkg --printsrcinfo > .SRCINFO
$ git commit -m "useful commit message"
$ git push

This list of specific commands could probably be shortened or removed. -- quequotion (talk) 13:58, 24 November 2018 (UTC)

I don't know, if this was the article for some third-party software I'd agree, but this is the reference document that people use to publish packages to the AUR, I think it can be nice to show an example of how everything is supposed to work together without delving into makepkg or git details of course. -- Kynikos (talk) 09:41, 2 December 2018 (UTC)
  • If you initially forgot to commit the .SRCINFO and added it in a later commit, the AUR will still reject your pushes because the .SRCINFO must exist for every commit. To solve this problem you can use git rebase with the --root option or git filter-branch with the --tree-filter option.
  • To prevent untracked files from commits and to keep the working directory as clean as possible, exclude all files with .gitignore and force-add files instead. See dotfiles#Using gitignore.

The git filter-branch --tree-filter method is rather involved. It may be sufficient to recommend something like "filter the git tree or rewrite the git history, such as with git rebase --root" and let users with greater git expertise figure out about --tree-filter for themselves -- quequotion (talk) 13:58, 24 November 2018 (UTC)

Your draft below has an even shorter version. I'd mention the rebase method before tree-filter, and I'd find a way to explicitly mention the --root option, something like "[...] add it by rebasing with --root or filtering the tree, so [...]". -- Kynikos (talk) 09:48, 2 December 2018 (UTC)

Proposal: Updating package content

Warning: Your commits will be authored with your global Git name and email address. It is very difficult to change commits after pushing them (FS#45425). If you want to push to the AUR under different credentials, you can change them per package with git config "..." and git config "...".

To upload or update a package, add at least PKGBUILD and .SRCINFO, then any additional new or modified helper files (such as .install files or local source files such as patches), commit with a meaningful commit message, and finally push the changes to the AUR.

Note: If .SRCINFO was not included in your first commit, add it by filtering the tree or rebasing all commits, so the AUR will permit your initial push. Be sure to regenerate .SRCINFO whenever PKGBUILD metadata changes, such as pkgver() updates; otherwise the AUR will not show updated version numbers.
Tip: To keep the working directory and commits as clean as possible, create a .gitignore that excludes all files and force-add files as needed.