AURPUBLISH(1)

πŸ“¦ version 43.g3b978be, in arch rolling

πŸ¦‹ 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 --rejoin option in git-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 .SRCINFO for 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 setup initialize 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-git clone existing package from aur and add its url as a git subtree to the currently existing git repository. the import route. 🫢
  • aurpublish ansible-core-git push an existing subtree to AUR. the classic. the bread and butter. ✨
  • aurpublish log view the git log of a package subtree. πŸ“œ
  • aurpublish --url ssh://me@example.com ansible-core-git push the subtree to a server at ssh://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