[aur-general] AUR Best Practice for New Package Upload

Nuno Araujo nuno.araujo at russo79.com
Thu Sep 18 20:00:43 UTC 2014

On jeu, 2014-09-18 at 11:26 -0700, stef wrote:
> --------------------------------------------
> On Tue, 9/16/14, Nuno Araujo <nuno.araujo at russo79.com> wrote:
>  Subject: Re: [aur-general] AUR Best Practice for New Package Upload
>  To: aur-general at archlinux.org
>  Date: Tuesday, September 16, 2014, 1:42 PM
>  Try to study it and feel
>  free to ask any questions you want about it.
>  -- 
>  Nuno Araujo <nuno.araujo at russo79.com>
>  http://www.russo79.com
> =========================================
> @nuno
> @list
> So, I have studied the PKGBUILD and install file.
> I have some questions, a few of which might be really newb-type but please bear with me.
> All is clear in your PKGBUILD: and it was certainly helpful to see how you went about it; clean and simple.
> 1) Questions regarding the variables $pkgdir and $srcdir .
> My understanding: these 2 babies are directories created by makepkg during the fetch source, configure, build and install to fakeroot process.
> $srcdir is where makepkg stores all source files downloaded.
> $pkgdir is where the build/compiled files are then stored in the fakeroot environment which gets compressed into the final .pkg.tar.xz file. THAT .tar.xz file is a compressed archive which contains the directory structure and installed files which pacman will then extract to user's root system.
> a) Did i get this right?

More or less, the source files are into $SRCDEST, which defaults to the
current directory. (you should take a look at makepkg.conf man page).
$srcdir is a folder where the source files are uncompressed (or

As for $pkgdir, you are right. It should be noted that besides the
built/compiled files, the .install files as well as a .PKGINFO file
providing the package metadata is also in that directory.

> b) what happens to $srcdir and $pkgdir ? I imagine those are just 'temp' dirs which makepkg deletes when it's done compressing the fakeroot?  

makepkg doesn't delete them. It's your work.

> 2) in the PKGBUILD, you are dropping the data/ directory and installing both .svg and .glade files to /usr/share/masshash-launcher/
> In python3/ masshash-launcher:
> L31 #path to glade ui file
> L32 glade_source_dir = '../data/masshash-launcher.glade'
> L33 if os.path.isfile(glade_source_dir):
> L34 glade = glade_source_dir
> L35 else:
> L36 glade = '/usr/share/masshash-launcher/masshash-launcher.glade'
> So you're using L36 as opposed to 32.
> This is your preference? Or for the sake of simplicity? So as not to create an additional dir "data" as unnecessary?
> (Sorry not trying to be "anal" but only to understand.)

Neither. If you give it a look, you'll see that L32 refers to a relative
This is usually used when developing a program.
While coding, you would like to access your work version of the files.
This allows work to be done on a "development" version of the program
without affecting the one installed on your system.

> 3) You are copying the svg file to /usr/share/icons/hicolor/scalable/apps/
> Then you are using the install file to update the gtk icon cache--which I didn't even think of and makes a lot of sense.
> Why the hicolor though? Your choice? Because it is the most basic/core GTK icon theme?
> Sorry, but this is all a bit new to me.

If you give a look at the contents of the hicolor-icon-theme package,
you will see that it has no icons by itself.
Only a "standard" set of directories where icons should to be stored and
a index file describing these directories.
Having this theme installed ensure that you can call
gtk-update-icon-cache without issues.
This "theme" is usually the standard place to store your application
icons (at least in a XDG "compatible" desktop).

> 4) Not important; for the CLI program, the category I would use to upload to AUR would be "system" but since we also have the GUI, (which would be what X11?), which category would you recommend when uploading to AUR? X11?

My personal opinion: I don't care about AUR categories. But if I had to
choose between both, I would pick "system".

> 5) @nuno : Do you want to be listed as contributor?  Would only be (more than) fair (eeer...) but might be a bit of a PITA for you....Just let me know.

Don't care. Seing the time and effort you're putting to study a single
and simple PKGBUILD, you deserve to take all the credit for it. 

> Thanks.

As a generic advice, take the time to read the man pages of Arch Linux
build system utilities and configuration files (e.g. man PKGBUILD, man
makepkg, man pacman, man pacman.conf, and so on...).
Also read other AUR PKGBUILDs (or even better, the one published in core
and extra repositories).

There you would have find answers for some of the questions you asked.

Nuno Araujo <nuno.araujo at russo79.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://mailman.archlinux.org/pipermail/aur-general/attachments/20140918/8b604897/attachment.asc>

More information about the aur-general mailing list