Talk:Arch User Repository

From ArchWiki
Revision as of 02:18, 28 December 2018 by Kynikos (talk | contribs) (→‎Current: Uploading packages: restore signature lost with
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)

Markdown Syntax

Should there be a Markdown syntax section? [3][4] 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)
[5] 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)

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)
Thank you. I'd rather perform the merges myself. I suppose I should give it a week before I make edits in case there's any further feedback and to avoid giving anyone an aneurysm. By the way, don't be shy about putting Comments in the "Proposal" sections; this is the purpose I created the template for. quequotion (talk) 14:21, 4 December 2018 (UTC)
No worries, you have the right to merge your drafts in accordance with the contribution rules of course. Yes, please especially consider that several users like me often delay answering (maybe even reading) discussions until the weekend because of time shortage during the week. -- Kynikos (talk) 18:42, 7 December 2018 (UTC)
It is done. quequotion (talk) 13:21, 24 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)
What bothers me about it is that we have a pkgname variable, a pkgbase variable, and the words "package name" referring to both. I considered changing the link text to "package name"; but it seems a little dissonant. I think the opportunity to learn about pkgbase is also an important one, in case a user ever decides to upload a split package. quequotion (talk) 12:54, 4 December 2018 (UTC)
I'm fine with your version if we agree on Talk:PKGBUILD#Package name restructuring. -- Kynikos (talk) 17:37, 7 December 2018 (UTC)
Talk:PKGBUILD#Package name restructuring was solved, so I'm ok with your version now. -- Kynikos (talk) 13:14, 9 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 [6] (and I'm ok with that too). -- Kynikos (talk) 09:03, 2 December 2018 (UTC)
I didn't go to the trouble of creating another current/proposal section for this change, but it is implied by proposals for both of these sections. In fact, the "Other requests" section itself is in desperate need of a rewrite, and I may get around to proposing that after these changes go through. I'd probably still want to move this statement as part of the currently proposed changes, but the included language implies the situation with deleted AUR remotes well enough that I wouldn't consider the page in a broken state if it were not explicitly stated. quequotion (talk) 12:54, 4 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)
I like "Publish" because it covers both initial upload and subsequent updates; this is what I was going for with the new title. quequotion (talk) 13:31, 4 December 2018 (UTC)
I see that you changed the draft title to "Publish package content", however omitting "new" misses the "updating" part of the concept, i.e. the section may be mistaken as only regarding the first upload. -- Kynikos (talk) 17:42, 7 December 2018 (UTC)
Makes sense. I also dropped the "-ing"; considering making the same change for the other proposal, (eg. "Creating package repositories" -> "Create a package repository"); not that it matters a great deal. quequotion (talk) 04:51, 12 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)

I was also tempted to do this, but I am on the fence about it. At the moment, AUR does not require every upload to have a new pkgver or pkgrel, and that can be conveniently abused if you are pushing very minor changes (fixing a typo, etc). For comparison, publishing a pacakge in a Launchpad PPA requires a source package with a different package version for every single upload, which can become a nightmare of nonsensical numbers very quickly. pkgver updates are mentioned in the merged .SRCINFO note, and this may be sufficient. quequotion (talk) 13:31, 4 December 2018 (UTC)
Then let's explicitly clarify that pkgver or pkgrel should be updated unless pushing very minor changes that don't require users to reinstall the package. I don't see the point of leaving that unspecified. -- Kynikos (talk) 17:46, 7 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)

Because they both are on the topic of .SRCINFO. I think it is more confusing if you are considering where this text came from than encountering it for the first time. The purpose is to make sure users understand that .SRCINFO should be included and updated in every commit--which overlaps with your concern about pkgrel and pkgver. Perhaps they would make more sense in the opposite order. quequotion (talk) 14:25, 4 December 2018 (UTC)
I don't mind too much if "forgot to commit the .SRCINFO" is a Note or a Tip, but if you want to group it with the .SRCINFO update reminder, I'd say indeed they should be put in the opposite order, and still on separate bullet points. -- Kynikos (talk) 17:51, 7 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)
The lists of git commands have been a contentious issue on this page for some time. I have been in too many discussions of them on this talk page. It's really an issue of ArchWiki style, and there are probably other pages that could stand to reduce their lists of explicit commands to things for which no sufficient ArchWiki or third-party documentation can be linked or that are specific to using Archlinux, the AUR, etc. quequotion (talk) 13:31, 4 December 2018 (UTC)
What has been the contention about? Can you link to a relevant past discussion? I couldn't find much by myself, our current discussion archiving method is mostly based on users' memory actually.
-- Kynikos (talk) 18:26, 7 December 2018 (UTC)
It would take a lot of searching the change log to find the old discussions. In particular I recall having a protracted discussion of the same thing this proposal started with: supporting the case wherein a user already has a package and decides to upload it to AUR. quequotion (talk) 23:47, 11 December 2018 (UTC)
I still stand by what I said: both of us are familiar with git and your instructions would suffice as quick reminders, but users who just want to publish a package in the AUR and are not coders used to version control would need an explicit example to make them feel confident about what they're doing.
-- Kynikos (talk) 18:26, 7 December 2018 (UTC)
I see your point; but I feel like a procedural list implies complexity while the paragraph format looks easy. How about adding a Note in the Submitting packages subheading to effect of "The AUR uses Git as a frontend"; users are expected to be familiar with basic Git commands."? quequotion (talk) 23:47, 11 December 2018 (UTC)
I do not understand how removing the procedure to update the package in AUR will help or clarify the wiki in any way. This removal will only result in making it even harder for those willing to collaborate to AUR to do so. Only those, who in a daily basis update packages can make any sense of the current instructions. When I started with arch ten years ago the best asset it had was ts wiki, the best around. Back then the pages where nearly a step by step procedures. This feature only made people like me fall in love with Arch. Now a new wave of users has arrived which believe that only a few experts deserve to use Arch. As a result, the pages now are far more descriptive, aka not useful. Currently, I find myself checking the wikis of other distros often when in the past was unthinkable. Well, this work for many things but not for Arch specific issues like how to submit things to AUR, that thanks to your changes it took me an hour to submit a package when usually it took me 5 min. Yes, my bad, I do not like to remember commands like: `makepkg --printsrcinfo > .SRCINFO`. Please put back the commands, and help people that do not do this task in a daily bases capable of maintaining arch to be the great distribution it is. Hseara (talk) 11:15, 27 December 2018 (UTC)
It's been replaced by a link to the general documentation for .SRCINFO files, and the first thing on that page is "you can generate it using makepkg --printsrcinfo". I'm not sure I see the problem here...
Especially consider that these instructions have changed, once upon a time you needed to install the pkgbuild-introspection package and use the mksrcinfo tool. Updating these instructions everywhere they are described is a bit silly... -- Eschwartz (talk) 16:28, 27 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)
I can definetly switch them around. I was considering removing the --tree-filter method altogether because I can't figure out how it is supposed to work, but I trust that whoever put it on the page is better at git than I am. My concern with specifying "--root" is the same as with the lists of git commands: the page shouldn't be redundantly a git tutorial. I used language in the link text ("rebasing all commits") that matches language in the linked git documentation ("rebase all commits") in the hopes that someone following this link (to the --root option) will easily figure out what they need to do. quequotion (talk) 13:31, 4 December 2018 (UTC)
I don't think that referring a specific option by its command-line name ("--root") is any more redundant than using a verbose definition excerpted from the same document. If anything, it's more succinct and unequivocal, which is what we need IMO. -- Kynikos (talk) 18:33, 7 December 2018 (UTC)

Proposal: Publish new 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.


I might consider agreeing on a more schematic wording as a compromise, to clarify which are supposed to be the separate commands to run; for example:

To upload a new or updated package:
  1. Regenerate .SRCINFO;
  2. Add at least PKGBUILD and .SRCINFO to the repository index;
  3. Commit with a meaningful commit message;
  4. Push the changes to the AUR.
-- Kynikos (talk) 18:26, 7 December 2018 (UTC)
Note: If .SRCINFO was not included in your first commit, add it by rebasing all commits or filtering the tree 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.