Skip to content
/ AUR Public
forked from samarthj/AUR

Packages that I maintain or contribute towards on the AUR.

License

Notifications You must be signed in to change notification settings

antdking/AUR

 
 

Repository files navigation

Sam's AUR Packages

Build packages AUR version AUR version AUR version AUR version AUR version AUR version AUR version AUR version AUR version AUR version AUR version AUR version AUR version

Python packages AUR version AUR version AUR version AUR version

Python custom AUR version AUR version AUR version

Git releases AUR version

Things that I am maintaining on the arch user repository.

All git packages have automated build release cycles every (n) day. (At some point I will implement following upstreams directly rather than having an arbitrary schedule, but this works well enough for now.).

Note: At the recommendation from a trusted user, I have stopped automatic aur releases for the *-git packages. They will still keep their build states fresh here on github, but I will be switching to manual releases for them as needed.

The packages are available as release assets, however it is recommended to install directly from your package manager (since a few builds depend on system configuration discovery).

Doing builds

I use containerized builds using archlinux:base-devel.

Automated Build Setup

I built an action to do so that is tailor-ed for my purposes. https://github.com/marketplace/actions/archlinux-pkgbuild

I use these under different use-cases (the workflows are mentioned on the shields above):

  • git-packages
  • python-named packages
  • python non-standard named packages
  • git release tracking packages

Local Build Setup

Local Image

Containerfile

FROM docker.io/archlinux:base-devel

RUN pacman --noconfirm -Sy
RUN useradd builder
RUN \
 mkdir -p /home/builder/work && \
 mkdir -p /home/builder/packages && \
 mkdir -p /home/builder/sources
ADD ./makepkg.conf /home/builder/.makepkg.conf
RUN \
 chown -R builder:builder /home/builder && \
 echo "builder ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers

WORKDIR /home/builder/work
USER builder
ENTRYPOINT [ "/usr/bin/makepkg", "-csf", "--noconfirm" ]

makepkg.conf

#-- Destination: specify a fixed directory where all packages will be placed
PKGDEST=/home/builder/packages
#-- Source cache: specify a fixed directory where source files will be cached
SRCDEST=/home/builder/sources

finally make the image

podman build -f Containerfile -t arch:makepkg .

Note 1: No added packages from makedepends (emulate as clean of an install as possible). Note 2: No additional repositories. Use the -I parameter to explicitly include packages needed from AUR or other repos.

Local Build

podman run --rm -i -t \
  -v ./<package-name>:/home/builder/work \
  -v ./packages:/home/builder/packages \
  -v ./sources:/home/builder/sources \
  --userns=keep-id \
  localhost/arch:makepkg

Note: I am using the --userns=keep-id flag since I use rootless podman and the builder user won't have permission to access data in the mounted volume otherwise. There is also the new keep-groups flag for group-add, but you will have to tweak the Containerfile if your default groups don't match (as is the case for me). This setup should work for most default user configurations. And no, I am not going to run makepkg as root in the container.

Always namcap

namcap ./<package-name>/PKGBUILD ./packages/<package-name>*.tar.zst

Tip: You may also just use the devtools chroot process for local builds on archlinux (though I find that the process isn't as clean as one might think, since parts of making the chroot still depend on your specific system's configuration).


Credits

No longer in use (but very helpful in the early stages)

  • aurpublish for the releases to AUR. These our now managed by my own github action.

About

Packages that I maintain or contribute towards on the AUR.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 100.0%