AURPUBLISH(1)
π¦ aurpublish β the manual, but make it make sense
okay so first things first: this is the manual page for aurpublish (section 1 of the man pages, iykyk), and honestly? if you're an AUR maintainer you're gonna want this in your bookmarks. it's the PKGBUILD management framework for the Arch User Repository, and it's lowkey iconic. π
β¨ NAME β¨
aurpublish β a PKGBUILD management framework for the Arch User Repository π
πΈ SYNOPSIS πΈ
aurpublish [options] PACKAGE
aurpublish log [<options>] PACKAGE
aurpublish setup
that's it. three shapes. pick your fighter. π«Ά
π DESCRIPTION π
aurpublish is a utility that helps maintainers of aur packages submit updates. that's the whole vibe β it's your little helper bestie for getting your stuff out to the AUR. β¨
π§ HOW IT WORKS π§
so the move is: you commit PKGBUILDs in named subdirectories. then you export them to the AUR with the aurpublish command, using the subtree push stratagem. and the way that this preserves an independent history for third-party hosting, pull requestsβ¦ π the semicolon-and-winky-face at the end of that sentence in the original is genuinely sending me ;) β but fr fr it's a real feature, not just aesthetics. π
π COMMANDS π
setupβ initialize a new repository with git hooks. it's giving "fresh start, new me" β¨log <PACKAGE>β view the git log of a package subtree. history class but make it cute π¦
π OPTIONS π
-p<PACKAGE>β instead of publishing, pull changes from the AUR. and yes, it can also import packages into a new subtree. so it's the inverse option, the uno reverse card of this whole program. π-s,--speedup<PACKAGE>β speedup future publishing by recording the subtree history during a push. heads up though: this creates a merge commit and a second copy of all commits in the subtree. for more details, see the--rejoinoption ingit-subtree(1). so it's faster later but you're duplicating history now β trade-offs, bestie. βοΈ-u,--url<URL>β specify the URL of the server that should be used for git operations. yes you can point this somewhere other than the default, we'll get to that. π₯-h,--helpβ prints a usage page. the classic. the reliable. the "i forgot the flags again" option. π
π HOOKS π
these are the git hooks that setup installs, and they're genuinely doing the most so you don't have to:
pre-commitβ warns you about whitespace errors, fails if checksums don't match, and auto-generates.SRCINFOfor all changed PKGBUILDs. so basically it's the friend who checks your outfit before you leave the house. πprepare-commit-msgβ prefills the commit message with a list of added/updated/deleted packages + versions (if any). chef's kiss. it ate. π
π SPECIFYING AUR SERVER URL π
okay this is the part where it gets customizable. β¨
you can use aurpublish to interact with a git server other than the default AUR git server at aur.archlinux.org. this may be useful if you are running your own AUR server. (main character energy: you, hosting your own infra. π)
the upstream git server URL can be configured in two ways. you can set the URL with the -u/--url options when you run aurpublish. or you can configure the server persistently in git by setting the aurpublish.remoteUrl option. pick your lane, both slay. π
β Set the URL with --url
aurpublish --url ssh://me@example.com mypackage
one-off, no commitment, just this once. π¦
β Set the URL for the current git directory with git config
git config aurpublish.remoteUrl ssh://me@example.com
scoped to this repo. cozy. π
β Set the URL globally with git config
git config --global aurpublish.remoteUrl ssh://me@example.com
for every repo, forever. bold. iconic. π₯
for more details on git options see git-config(1).
π EXAMPLES π
aurpublish setupinitialize a new repository with git hooks. refer to the Hooks section for more info. (scroll up bestie, it's right there β¬οΈ)aurpublish -p ansible-core-gitclone existing package from aur and add its url as a git subtree to the currently existing git repository. the import route. π«Άaurpublish ansible-core-gitpush an existing subtree to AUR. the classic. the bread and butter. β¨aurpublish logview the git log of a package subtree. πaurpublish --url ssh://me@example.com ansible-core-gitpush the subtree to a server atssh://example.com. custom destination, same energy. π
πΈ AUTHORS πΈ
Eli Schwartz <eschwartz@archlinux.org> β shoutout to the actual author, no cap. π
small but important note: your pre-commit hook will literally fail if your checksums don't match. that's not a vibe check you can skip, that's the whole point. π
okay that's the whole page!! this manual is AURPUBLISH(1) and it was last dated 04/09/2026 β so like, remember that date for citations and stuff. go forth, push your subtrees, and don't forget the .SRCINFO bestie πβ¨π
π¦ where this page comes from
- arch rolling: aurpublish r43.g3b978be-3 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms