Skip to content
Tauri

AUR

Publishing To The Arch User Repository

Setup

First go to https://aur.archlinux.org and make an account. Be sure to add the proper ssh keys. Next, clone an empty git repository using this command.

Terminal window
git clone https://aur.archlinux.org/your-repo-name

After completing the steps above, create a file with the name PKGBUILD. Once the file is created you can move onto the next step.

Writing a PKGBUILD file

PKGBUILD
pkgname=<pkgname>
pkgver=1.0.0
pkgrel=1
pkgdesc="Description of your app"
arch=('x86_64' 'aarch64')
url="https://github.com/<user>/<project>"
license=('MIT')
depends=('cairo' 'desktop-file-utils' 'gdk-pixbuf2' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libsoup' 'pango' 'webkit2gtk-4.1')
options=('!strip' '!emptydirs')
install=${pkgname}.install
source_x86_64=("${url}/releases/download/v${pkgver}/appname_${pkgver}_amd64.deb")
source_aarch64=("${url}/releases/download/v${pkgver}/appname_"${pkgver}_arm64.deb")
  • At the top of the file, define your package name and assign it the variable pkgname.
  • Set your pkgver variable. Typically it is best to use this variable in the source variable to increase maintainability.
  • The pkgdesc variable on your aur repo’s page and tells vistors what your app does.
  • The arch variable controls what architectures can install your package.
  • The url variable, while not required, helps to make your package appear more professional.
  • The install variable specifies the name of .install script which will be run when the package is installed, removed or upgraded.
  • The depends variable includes a list of items that are required to make your app run. For any Tauri app you must include all of the dependencies shown above.
  • The source variable is required and defines the location where your upstream package is. You can make a source architecture specific by adding the architecture to the end of the variable name.

Generating .SRCINFO

In order to push your repo to the aur you must generate an .SRCINFO file. This can be done with this command.

Terminal window
makepkg --printsrcinfo > .SRCINFO

Testing

Testing the app is extremely simple. All you have to do is run makepkg within the same directory as the PKGBUILD file and see if it works

Publishing

Finally, after the testing phase is over, you can publish the application to AUR (Arch User Repository) with these commands.

Terminal window
git add .
git commit -m "Initial Commit"
git push

If all goes well, your repository should now appear on the AUR website.

Examples

Extracting From A Debian Package

PKGBUILD
# Maintainer:
# Contributor:
pkgname=<pkgname>
pkgver=1.0.0
pkgrel=1
pkgdesc="Description of your app"
arch=('x86_64' 'aarch64')
url="https://github.com/<user>/<project>"
license=('MIT')
depends=('cairo' 'desktop-file-utils' 'gdk-pixbuf2' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libsoup' 'pango' 'webkit2gtk-4.1')
options=('!strip' '!debug')
install=${pkgname}.install
source_x86_64=("${url}/releases/download/v${pkgver}/appname_${pkgver}_amd64.deb")
source_aarch64=("${url}/releases/download/v${pkgver}/appname_${pkgver}_arm64.deb")
sha256sums_x86_64=('ca85f11732765bed78f93f55397b4b4cbb76685088553dad612c5062e3ec651f')
sha256sums_aarch64=('ed2dc3169d34d91188fb55d39867713856dd02a2360ffe0661cb2e19bd701c3c')
package() {
# Extract package data
tar -xvf data.tar.gz -C "${pkgdir}"
}
my-tauri-app.install
post_install() {
gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
update-desktop-database -q
}
post_upgrade() {
post_install
}
post_remove() {
gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
update-desktop-database -q
}

Building from source

PKGBUILD
# Maintainer:
pkgname=<pkgname>-git
pkgver=<pkgver>
pkgrel=1
pkgdesc="Description of your app"
arch=('x86_64' 'aarch64')
url="https://github.com/<user>/<project>"
license=('MIT')
depends=('cairo' 'desktop-file-utils' 'gdk-pixbuf2' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libsoup' 'pango' 'webkit2gtk-4.1')
makedepends=('git' 'openssl' 'appmenu-gtk-module' 'libappindicator-gtk3' 'librsvg' 'cargo' 'pnpm' 'nodejs')
provides=('<pkgname>')
conflicts=('<binname>' '<pkgname>')
source=("git+${url}.git")
sha256sums=('SKIP')
pkgver() {
cd <project>
( set -o pipefail
git describe --long --abbrev=7 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
)
}
prepare() {
cd <project>
pnpm install
}
build() {
cd <project>
pnpm tauri build -b deb
}
package() {
cp -a <project>/src-tauri/target/release/bundle/deb/<project>_${pkgver}_*/data/* "${pkgdir}"
}

© 2025 Tauri Contributors. CC-BY / MIT