Difference between revisions of "AUR Metadata"
(→How it works: “depends” not yet renamed in live AUR) |
|||
Line 9: | Line 9: | ||
== How it works == | == How it works == | ||
− | By adding a metadata file called ".AURINFO" to source tarballs to overwrite specific PKGBUILD fields. {{ic|.AURINFO}} files are parsed line-by-line. The syntax for each line is {{ic|1=key = value}}, where {{ic|key}} is any of the following field names: | + | By adding a metadata file called ".AURINFO" to source tarballs to overwrite specific PKGBUILD fields. The format of this file is described in the [https://mailman.archlinux.org/pipermail/aur-dev/2013-March/002428.html AUR 2.1.0 release announcement]. {{ic|.AURINFO}} files are parsed line-by-line. The syntax for each line is {{ic|1=key = value}}, where {{ic|key}} is any of the following field names: |
+ | |||
* pkgname | * pkgname | ||
* pkgver | * pkgver | ||
Line 15: | Line 16: | ||
* url | * url | ||
* license | * license | ||
− | * depends | + | * depend (to be renamed ''depends'' in a future AUR release) |
− | Multiple {{ic| | + | Fields with other names are ignored. Multiple {{ic|depend}} lines can be specified to add multiple dependencies. This format closely matches the {{ic|.PKGINFO}} format that is used for binary packages in [[pacman|pacman/libalpm]]. It can be extended by field name prefixes or sections to support split packages later. |
== Working with makepkg --source == | == Working with makepkg --source == |
Revision as of 01:29, 22 April 2014
In order to display information in the AUR web interface, the AUR's back-end code attempts to parse PKGBUILD files and salvage package name, version, and other information from it. PKGBUILD
s are Bash scripts, and correctly parsing Bash scripts without executing them is a huge challenge, which is why makepkg is a Bash script itself: it includes the PKGBUILD of the package being built via the source
directive. AUR metadata files were created to get rid of some hacks, used by AUR package maintainers to work around incorrect parsing in the web interface. See also FS#25210, FS#15043, and FS#16394.
Contents
How it works
By adding a metadata file called ".AURINFO" to source tarballs to overwrite specific PKGBUILD fields. The format of this file is described in the AUR 2.1.0 release announcement. .AURINFO
files are parsed line-by-line. The syntax for each line is key = value
, where key
is any of the following field names:
- pkgname
- pkgver
- pkgdesc
- url
- license
- depend (to be renamed depends in a future AUR release)
Fields with other names are ignored. Multiple depend
lines can be specified to add multiple dependencies. This format closely matches the .PKGINFO
format that is used for binary packages in pacman/libalpm. It can be extended by field name prefixes or sections to support split packages later.
Working with makepkg --source
Note that makepkg --source
will not automatically include an .AURINFO file that you've created in the src tarball. You can fix this by adding .AURINFO
to the source
array in your PKGBUILD
.
source=(.AURINFO ...) md5sums=(SKIP ...)
What does not work
- Split packages
- Multiple architectures (
x86_64
dependencies tend to be more numerous, so just put them)
pkgbuild_reflection and mkaurball
pkgbuild-introspection is a set of tools for generating .AURINFO
files. One of the provided tools is mkaurball
, which is a script that runs makepkg --source
, generates an .AURINFO
file, and inserts it into the resulting source package.
mkaurball
is a wrapper for makepkg --source
. When creating source packages for inclusion in the AUR, use mkaurball
instead of running makepkg --source
directly.Install the package pkgbuild-introspection-gitAUR from the Arch User Repository.