My collection of packages I maintain for the Arch User Repository.
In this repository, I keep the PKGBUILD files and other necessary files for
the packages I maintain in the Arch User Repository (AUR). This repository is
used to keep track of changes to the packages and to make it easier to monitor
and update them all at once.
Clone this repository:
git clone git@github.com:jonasgeiler/aur-packages.git
# or
git clone https://github.com/jonasgeiler/aur-packages.gitAnd then add remotes for all AUR packages:
git remote add yaak ssh://aur@aur.archlinux.org/yaak.git
git remote add yaak-appimage ssh://aur@aur.archlinux.org/yaak-appimage.git
git remote add yaak-bin ssh://aur@aur.archlinux.org/yaak-bin.git
git remote add yaak-git ssh://aur@aur.archlinux.org/yaak-git.git
git remote add supercronic ssh://aur@aur.archlinux.org/supercronic.git
git remote add supercronic-bin ssh://aur@aur.archlinux.org/supercronic-bin.git
git remote add supercronic-git ssh://aur@aur.archlinux.org/supercronic-git.git
git remote add drsprinto-appimage ssh://aur@aur.archlinux.org/drsprinto-appimage.gitLastly, register the .githooks directory as a Git hooks directory:
git config core.hooksPath .githooksThe hooks contain some useful scripts that help with the development process,
like automatically updating and adding the .SRCINFO file on commit.
All usages of Bash variables (${var}) in the following steps are
placeholders and should be replaced with the actual values.
- Add a remote for the new package:
git remote add ${package} ssh://aur@aur.archlinux.org/${package}.git
- Add the subtree for the package:
git subtree add --prefix ${package} ${package} master
- Create the
${package}/PKGBUILDfile. - Continue from step 2 in the Updating a package section.
All usages of Bash variables (${var}) in the following steps are
placeholders and should be replaced with the actual values.
-
Pull the latest changes from the AUR repository:
git subtree split --prefix ${package} --rejoin git subtree pull --prefix ${package} ${package} master --message "Merge subtree '${package}'"
-
Bump the
pkgverto the new version and resetpkgrelto1in the${package}/PKGBUILDfile. Also update thepkgdescand other info if necessary. Make sure to read the release notes or changelog of the package to see if there are any breaking changes, new dependencies or anything else that needs to be changed.TIP: Changes to GitHub Action release workflows are usually good sources of information about new dependencies, commands and other build steps.
-
Update the checksums:
updpkgsums ${package}/PKGBUILD -
Check
PKGBUILDfor errors:namcap -i ${package}/PKGBUILD -
Try building the package:
makepkg --dir ${package} --force --cleanbuildTIP: Sometimes a clean build can take a long time. If you're in a hurry, you can rebuild from an already compiled package by removing the
--cleanbuildflag, but generally it is safer to build from scratch.Alternatively, use
extra-x86_64-buildfrom thedevtoolspackage to try building in a clean chroot, which often reveals missing build dependencies:cd ${package} extra-x86_64-build -c cd ..
-
Check the package for errors:
namcap -i ${package}/${package}-${version}-${arch}.pkg.tar.zst
-
(Optional) Install the package and test it out:
makepkg --dir ${package} --install -
Update the
${package}/.SRCINFOfile:makepkg --dir ${package} --printsrcinfo > ${package}/.SRCINFO
-
Stage the changes, commit and push them to this repository:
git add PKGBUILD .SRCINFO git commit -m "feat(${package}): update to ${major}.${minor}.${patch}" git push -
Push the changes to the AUR repository:
git subtree split --prefix ${package} --rejoin git subtree push --prefix ${package} ${package} master
A little collection of copy-paste snippets for various tasks. Run these from the root of the repository.
git subtree split --prefix yaak --rejoin && git subtree pull --prefix yaak yaak master --message "Merge subtree 'yaak'"
git subtree split --prefix yaak-appimage --rejoin && git subtree pull --prefix yaak-appimage yaak-appimage master --message "Merge subtree 'yaak-appimage'"
git subtree split --prefix yaak-bin --rejoin && git subtree pull --prefix yaak-bin yaak-bin master --message "Merge subtree 'yaak-bin'"
git subtree split --prefix yaak-git --rejoin && git subtree pull --prefix yaak-git yaak-git master --message "Merge subtree 'yaak-git'"
git subtree split --prefix supercronic --rejoin && git subtree pull --prefix supercronic supercronic master --message "Merge subtree 'supercronic'"
git subtree split --prefix supercronic-bin --rejoin && git subtree pull --prefix supercronic-bin supercronic-bin master --message "Merge subtree 'supercronic-bin'"
git subtree split --prefix supercronic-git --rejoin && git subtree pull --prefix supercronic-git supercronic-git master --message "Merge subtree 'supercronic-git'"
git subtree split --prefix drsprinto-appimage --rejoin && git subtree pull --prefix drsprinto-appimage drsprinto-appimage master --message "Merge subtree 'drsprinto-appimage'"updpkgsums yaak/PKGBUILD
updpkgsums yaak-appimage/PKGBUILD
updpkgsums yaak-bin/PKGBUILD
updpkgsums yaak-git/PKGBUILD
updpkgsums supercronic/PKGBUILD
updpkgsums supercronic-bin/PKGBUILD
updpkgsums supercronic-git/PKGBUILD
updpkgsums drsprinto-appimage/PKGBUILDnamcap -i yaak/PKGBUILD
namcap -i yaak-appimage/PKGBUILD
namcap -i yaak-bin/PKGBUILD
namcap -i yaak-git/PKGBUILD
namcap -i supercronic/PKGBUILD
namcap -i supercronic-bin/PKGBUILD
namcap -i supercronic-git/PKGBUILD
namcap -i drsprinto-appimage/PKGBUILDmakepkg --dir yaak --force --cleanbuild
makepkg --dir yaak-appimage --force --cleanbuild
makepkg --dir yaak-bin --force --cleanbuild
makepkg --dir yaak-git --force --cleanbuild
makepkg --dir supercronic --force --cleanbuild
makepkg --dir supercronic-bin --force --cleanbuild
makepkg --dir supercronic-git --force --cleanbuild
makepkg --dir drsprinto-appimage --force --cleanbuildmakepkg --dir yaak --printsrcinfo > yaak/.SRCINFO
makepkg --dir yaak-appimage --printsrcinfo > yaak-appimage/.SRCINFO
makepkg --dir yaak-bin --printsrcinfo > yaak-bin/.SRCINFO
makepkg --dir yaak-git --printsrcinfo > yaak-git/.SRCINFO
makepkg --dir supercronic --printsrcinfo > supercronic/.SRCINFO
makepkg --dir supercronic-bin --printsrcinfo > supercronic-bin/.SRCINFO
makepkg --dir supercronic-git --printsrcinfo > supercronic-git/.SRCINFO
makepkg --dir drsprinto-appimage --printsrcinfo > drsprinto-appimage/.SRCINFOgit subtree split --prefix yaak --rejoin
git subtree split --prefix yaak-appimage --rejoin
git subtree split --prefix yaak-bin --rejoin
git subtree split --prefix yaak-git --rejoin
git subtree split --prefix supercronic --rejoin
git subtree split --prefix supercronic-bin --rejoin
git subtree split --prefix supercronic-git --rejoin
git subtree split --prefix drsprinto-appimage --rejoingit subtree split --prefix yaak --rejoin && git subtree push --prefix yaak yaak master
git subtree split --prefix yaak-appimage --rejoin && git subtree push --prefix yaak-appimage yaak-appimage master
git subtree split --prefix yaak-bin --rejoin && git subtree push --prefix yaak-bin yaak-bin master
git subtree split --prefix yaak-git --rejoin && git subtree push --prefix yaak-git yaak-git master
git subtree split --prefix supercronic --rejoin && git subtree push --prefix supercronic supercronic master
git subtree split --prefix supercronic-bin --rejoin && git subtree push --prefix supercronic-bin supercronic-bin master
git subtree split --prefix supercronic-git --rejoin && git subtree push --prefix supercronic-git supercronic-git master
git subtree split --prefix drsprinto-appimage --rejoin && git subtree push --prefix drsprinto-appimage drsprinto-appimage master- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=yay
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=yay-bin
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=yay-git
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=paru
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=paru-bin
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=paru-git
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=joplin-appimage
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=wootility-appimage
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=freecad-appimage
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=voicevox-appimage
- https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=citra-appimage