Skip to content

Add AUR package for Arch Linux #80

@steveclarke

Description

@steveclarke

Summary

Add a superthread package to the Arch User Repository (AUR), and automate publishing via the existing GitHub Actions release workflow.

Context

SuperThread is already distributed via RubyGems and Homebrew. Adding an AUR package extends distribution to Arch Linux users. The release workflow already publishes to RubyGems and updates the Homebrew formula — this adds a third publishing target.

AUR Account

  • Username: sclarke77
  • SSH key: ~/.ssh/aur (dedicated ed25519 key, configured in ~/.ssh/config)

Implementation Plan

1. Create the PKGBUILD

A superthread AUR package that installs the gem from RubyGems. Key considerations:

  • Ruby is managed by mise on Arch/Omarchy — the PKGBUILD needs to handle this correctly
  • The Homebrew formula uses write_env_script to pin Ruby in PATH — the AUR package needs an equivalent approach
  • Dependencies: ruby (>= 3.2.0), plus native extension deps if any (check gemspec)
  • Executable: suth

Reference the Homebrew formula for how gem installation and PATH control works:

ENV["GEM_HOME"] = libexec
ENV["GEM_PATH"] = libexec
system "gem", "build", "superthread.gemspec"
system "gem", "install", "--no-document", "superthread-#{version}.gem"

2. Test locally

makepkg -si
suth version

3. Push to AUR

git clone ssh://aur@aur.archlinux.org/superthread.git
# Add PKGBUILD and .SRCINFO
git push

4. Automate in CI

Add an update-aur job to .github/workflows/release.yml (alongside push-to-rubygems and update-homebrew-tap):

  1. Generate PKGBUILD from template with new version
  2. Update checksums
  3. Generate .SRCINFO
  4. Push to AUR git repo via SSH

Secrets needed: AUR_KEY — contents of the ~/.ssh/aur private key (unencrypted ed25519)

5. Dotfiles install script

Already created at ~/.local/share/dotfiles/install/arch/cli/superthread.sh:

#!/usr/bin/env bash
installing_banner "superthread"
omarchy-pkg-aur-add superthread

Key gem dependencies (from gemspec)

activesupport, faraday, glamour, gum, reverse_markdown, shale, thor, unicode-display_width, zeitwerk

Note: gum is a Charmbracelet binary — needs to be an AUR dependency (gum is in official Arch repos).

Reference

  • Gemspec: superthread.gemspec
  • Release workflow: .github/workflows/release.yml
  • Homebrew formula: steveclarke/homebrew-tap (Formula/superthread.rb)
  • RubyGems: https://rubygems.org/gems/superthread

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions