You are not logged in.
I saw that the futhark-bin package was outdated by a few versions, and had been marked outdated since 2025-09-28, with Futhark having been updated 5 times since the latest version submitted to the AUR. I thought that it would serve as a a good entry into starting to contribute to the AUR and wanted to give maintainership a try since I use Futhark myself, use the AUR frequently, and built it successfully using 'makepkg' on the below PKGBUILD. I wrote an email to redponike on 2026-01-03 to tell them that the PKGBUILD below installed the latest stable release, and as of this date I have not received an answer.
I do have a few questions, however.
AUR submission guidelines section 1.3 writes about cloning repositories (when creating a new one), but if I were to orphan the package, would I simply push to the same Git Clone URL listed on the package (having set up an existing SSH key pair for AUR as described in 1.2 of the above link)?
From the same page, section 1.4: This would involve me using
makepkg --printsrcinfo > .SRCINFOto update the .SRCINFO each time I update the PKGBUILD, right?
Is the 'make configure' step of a manual install handled by the depends in the PKGBUILD? Or should users themselves install dependencies if they're not using an AUR helper like yay or paru? And can I run 'makepkg' in the folder to check that it builds correctly before using something like 'Pacman -U', or can it affect my user build beforehand? I'm trying to think ahead where I'd want to test it before pushing it.
Following Creating packages, I ran 'namcap PKGBUILD', and it said that 'x86_64' should be cahnged to $CARCH, but this does not seem to work?
'namcap futhark-bin-0.25.34-1-x86_64.pkg.tar.zst' produces
futhark-bin W: ELF file ('usr/bin/futhark') lacks FULL RELRO, check LDFLAGS.
futhark-bin W: ELF file ('usr/bin/futhark') lacks PIE.
futhark-bin E: custom:ISC is not a valid SPDX license identifier. See https://spdx.org/licenses/ for valid identifiers, or prefix the identifier with 'LicenseRef-', if it is custom.
futhark-bin W: Dependency included, but may not be needed ('ncurses5-compat-libs')
futhark-bin W: Dependency included, but may not be needed ('zlib')
futhark-bin W: Dependency included, but may not be needed ('gmp')This is why I added 'LicenseRef-' instead of 'custom:', which made the warning go away on subsequent 'makepkg' runs. How should I interpret the other warnings?
Looking up the ELF file errors, I found Error: ELF file ('usr/bin/onedrive') lacks FULL RELRO, check LDFLAGS. and namcap: many warnings on ELF files - lacks FULL RELRO and lacks PIE, but I'm unable to find any flags in the Makefile in 'src/futhark-0.25.34-linux-x86_64/Makefile', unless 'PREFIX' is a flag that is somehow used wrongly in the below PKGBUILD, or if I should somehow use 'MANPREFIX',. I also don't quite understand the point about PIE, and how I would check whether it's a good idea for this package.
PKGBUILD:
# Maintainer: Sebastian Larsen Prehn <slp (at) sebastianprehn (dot) dk>
# Contributor: redponike <proton (dot) me>
# Contributor: Mikael Blomstrand <gmail.com: kmbloms>
pkgname=futhark-bin
provides=('futhark')
conflicts=('futhark')
pkgver=0.25.34
pkgrel=1
pkgdesc="A data-parallel functional programming language."
arch=('x86_64')
url='https://futhark-lang.org/'
license=('LicenseRef-ISC')
depends=('ncurses5-compat-libs' 'zlib' 'gmp')
optdepends=('opencl-headers: OpenCL backend'
'cuda: CUDA backend'
'python-pyopencl: PyOpenCL backend')
source=("https://github.com/diku-dk/futhark/releases/download/v${pkgver}/futhark-${pkgver}-linux-x86_64.tar.xz"
"https://raw.githubusercontent.com/diku-dk/futhark/v${pkgver}/LICENSE")
sha256sums=('b860a39613b17dfa14d3068ff8b8b23fc83c5b1ac6a1a0010256d269bdf0bf78'
'd029ffa271dcee84cc883fb9e83744f703401e2abb097b8ef084fff0674d935b')
package() {
cd "${srcdir}/futhark-${pkgver}-linux-x86_64"
make PREFIX="${pkgdir}/usr" install
install -Dm644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}Mentioned Makefile, since I reference it:
# High-performance purely functional data-parallel array programming on the GPU
# See LICENSE file for copyright and license details.
include config.mk
BINARIES=bin/*
all:
@echo "This is a precompiled binary distribution of Futhark - no building necessary."
@echo "But you may want to check out config.mk to ensure that 'make install' installs to the right place."
install:
@echo \# Installing executable files to ${PREFIX}/bin
@mkdir -p ${PREFIX}/bin/
install bin/* ${PREFIX}/bin/
@echo \# Installing manual page to ${MANPREFIX}/man1
@mkdir -p ${MANPREFIX}/man1/
@echo \# Installing manpages to ${MANPREFIX}/man1/
install -D -m 644 share/man/man1/* ${MANPREFIX}/man1/
.PHONY: all installEDIT:
I also looked into PKGBUILD, and saw that it had a changelog entry. Considering each release of Futhark has a changelog (as seen here), should I include something there?
EDIT 2:
Looking into the dependencies after checking over the 'namcap' output once more, I tried to remove the built PKGBUILD, removed all hard dependencies and then built a new .SRCINFO, and tried to 'makepkg' again, succeeding. I tried to remove it once again, removed 'ncurses5-compat-libs' from my computer along with my futhark installation, rebuilt the PKGBUILD again, and it succeeded, and Futhark worked when I then ran 'makepkg --install' to add it to pacman. Does this mean I should remove those dependencies, as they seem to be what is needed when building from source as this link says: Futhark Installation documentation
Last edited by sebastianprehn (2026-01-17 20:32:04)
Offline
Following Creating packages, I ran 'namcap PKGBUILD', and it said that 'x86_64' should be cahnged to $CARCH, but this does not seem to work?
namcap is overzealous with that message
Is the 'make configure' step of a manual install handled by the depends in the PKGBUILD? Or should users themselves install dependencies if they're not using an AUR helper like yay or paru? And can I run 'makepkg' in the folder to check that it builds correctly before using something like 'Pacman -U', or can it affect my user build beforehand? I'm trying to think ahead where I'd want to test it before pushing it.
https://wiki.archlinux.org/title/Arch_U … requisites
make is a member of base-devel
Best way to check what deps are needed at compiletime is to perform a clean chroot build
The package is named incorrectly, it should be futhark .
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
https://wiki.archlinux.org/title/Arch_U … requisites
make is a member of base-develBest way to check what deps are needed at compiletime is to perform a clean chroot build
I might misunderstand how 'pkgctl' works, but after trying to run 'pkgctl build' inside the repository of the PKGBUILD with only the PKGBUILD and .SRCINFO file present, I got the output of [1]. It resulted in the files:
futhark-0.25.34-linux-x86_64.tar.xz
futhark-bin-0.25.34-1-x86_64.pkg.tar.zst
futhark-bin-debug-0.25.34-1-x86_64.pkg.tar.zst
LICENSE
PKGBUILD-namcap.log
futhark-bin-0.25.34-1-x86_64-package.log
futhark-bin-0.25.34-1-x86_64.pkg.tar.zst-namcap.log
futhark-bin-debug-0.25.34-1-x86_64.pkg.tar.zst-namcap.log
The package is named incorrectly, it should be futhark .
I trust that you are right, but was just curious, as when I read AUR submission guidelines, in section 1.1, it has the following line
Packages that use prebuilt deliverables, when the sources are available, must use the -bin suffix.
and when I run 'makepkg' in the repository, I get the following files (with futhark executables boldened)
futhark-0.25.34-linux-x86_64.tar.xz
futhark-bin-debug-0.25.34-1-x86_64.pkg.tar.zst
pkg
pkg/futhark-bin
pkg/futhark-bin/usr/
pkg/futhark-bin/usr/bin/futhark
pkg/futhark-bin/usr/share/
pkg/futhark-bin/usr/share/licenses/futhark-bin/LICENSE
pkg/futhark-bin/usr/share/man/man1/{lot of futhark-x.1.gz files} (x being different topics like autotune, bench, c etc.)
pkg/futhark-bin-debug
pkg/futhark-bin-debug/usr/lib/debug/usr/bin/futhark.debug
pkg/futhark-bin-debug/usr/src/debug/futhark-bin/ (empty folder)
src
src/futhark-0.25.34-linux-x86_64
src/futhark-0.25.34-linux-x86_64/bin/futhark
src/futhark-0.25.34-linux-x86_64/commit-id
src/futhark-0.25.34-linux-x86_64/config.mk
src/futhark-0.25.34-linux-x86_64/LICENSE
src/futhark-0.25.34-linux-x86_64/Makefile
src/futhark-0.25.34-linux-x86_64/README.md
src/futhark-0.25.34-linux-x86_64/share/man/man1/{same situation as in pkg}
futhark-0.25.34-linux-x86_64.tar.xz
LICENSE
futhark-bin-0.25.34-1-x86_64.pkg.tar.zst
LICENSE
I thought that meant we had prebuilt deliverables? Another reason why I suspected it was a binary installation is that when I run 'futhark --version', it has the information that it was Compiled with GHC 9.8.4, while my own ghc is GHC 9.14.1.
And in case I'm just misunderstanding that line, how would the process to orphan and rename the package go?
1. orphan the package on the AUR (and get this orphan request accepted. How do I then become the maintainer? Simply by pushing to the repository?)
1.2 It seems like a matthewq337 have requested the package to be orphaned, so this whole thread might be redundant seeing how they beat me to it.
2. Set the line 'replaces=('futhark-bin')' and change 'pkgname=futhark'?
For how long should a 'replaces' line exist?
It also seems from the 'conflicts' line that there used to be a 'futhark' package, as that is also what is linked in the Futhark documentation alongside a 'futhark-nightly' (which coincidentally is most likely the second package I would look into making, but one step at a time). What could a reason be that the 'futhark' package was deleted, and only this 'futhark-bin' persisted?
[1]
ebastian@archibald ~/pkgs/aur/futhark-bin (master) $ pkgctl build
==> Updating pacman database cache
:: Synchronizing package databases...
core downloading...
extra downloading...
multilib downloading...
==> Building futhark-bin
-> repo: extra
-> arch: x86_64
-> worker: sebastian-0
==> Building futhark-bin for [extra] (x86_64)
[sudo] password for sebastian:
:: Synchronizing package databases...
core downloading...
extra downloading...
:: Starting full system upgrade...
there is nothing to do
==> Building in chroot for [extra] (x86_64)...
==> Synchronizing chroot copy [/var/lib/archbuild/extra-x86_64/root] -> [sebastian-0]...done
==> Making package: futhark-bin 0.25.34-1 (Thu Jan 15 12:41:04 2026)
==> Retrieving sources...
-> Downloading futhark-0.25.34-linux-x86_64.tar.xz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 0
100 7.75M 100 7.75M 0 0 17.06M 0 0
-> Downloading LICENSE...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 767 100 767 0 0 3998 0 0
==> Validating source files with sha256sums...
futhark-0.25.34-linux-x86_64.tar.xz ... Passed
LICENSE ... Passed
==> Making package: futhark-bin 0.25.34-1 (Thu Jan 15 11:41:08 2026)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found futhark-0.25.34-linux-x86_64.tar.xz
-> Found LICENSE
==> WARNING: Skipping all source file integrity checks.
==> Extracting sources...
-> Extracting futhark-0.25.34-linux-x86_64.tar.xz with bsdtar
==> Entering fakeroot environment...
==> Starting package()...
# Installing executable files to /build/futhark-bin/pkg/futhark-bin/usr/bin
install bin/* /build/futhark-bin/pkg/futhark-bin/usr/bin/
# Installing manual page to /build/futhark-bin/pkg/futhark-bin/usr/share/man/man1
# Installing manpages to /build/futhark-bin/pkg/futhark-bin/usr/share/man/man1/
install -D -m 644 share/man/man1/* /build/futhark-bin/pkg/futhark-bin/usr/share/man/man1/
==> Tidying install...
-> Removing libtool files...
-> Removing static library files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "futhark-bin"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Creating package "futhark-bin-debug"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: futhark-bin 0.25.34-1 (Thu Jan 15 11:41:23 2026)
==> Installing package futhark-bin with pacman -U...
loading packages...
resolving dependencies...
looking for conflicting packages...
Package (2) New Version Net Change
futhark-bin 0.25.34-1 48.77 MiB
futhark-bin-debug 0.25.34-1 0.00 MiB
Total Installed Size: 48.77 MiB
:: Proceed with installation? [Y/n]
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
installing futhark-bin...
Optional dependencies for futhark-bin
opencl-headers: OpenCL backend
cuda: CUDA backend
python-pyopencl: PyOpenCL backend
installing futhark-bin-debug...
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
resolving dependencies...
looking for conflicting packages...
Package (9) New Version Net Change
core/elfutils 0.194-1 3.56 MiB
core/licenses 20240728-1 1.54 MiB
core/mpdecimal 4.0.1-1 0.33 MiB
extra/pyalpm 0.11.1-1 0.23 MiB
core/python 3.14.2-2 72.04 MiB
extra/python-boolean.py 5.0-2 0.36 MiB
extra/python-license-expression 30.4.4-2 1.24 MiB
extra/python-pyelftools 0.32-2 2.17 MiB
extra/namcap 3.6.0-3 1.00 MiB
Total Installed Size: 82.48 MiB
:: Proceed with installation? [Y/n]
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
installing elfutils...
installing licenses...
installing mpdecimal...
installing python...
Optional dependencies for python
python-setuptools: for building Python packages using tooling that is usually bundled with Python
python-pip: for installing Python packages using tooling that is usually bundled with Python
python-pipx: for installing Python software not packaged on Arch Linux
sqlite: for a default database integration [installed]
xz: for lzma [installed]
tk: for tkinter
installing pyalpm...
installing python-boolean.py...
installing python-license-expression...
installing python-pyelftools...
installing namcap...
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
Checking PKGBUILD
PKGBUILD (futhark-bin) W: Reference to x86_64 should be changed to $CARCH
PKGBUILD (futhark-bin) W: Reference to x86_64 should be changed to $CARCH
Checking futhark-bin-0.25.34-1-x86_64.pkg.tar.zst
futhark-bin W: ELF file ('usr/bin/futhark') lacks FULL RELRO, check LDFLAGS.
futhark-bin W: ELF file ('usr/bin/futhark') lacks PIE.
Checking futhark-bin-debug-0.25.34-1-x86_64.pkg.tar.zst
futhark-bin-debug W: Directory (usr/src/debug/futhark-bin) is empty
==> Running checkpkg
error: target not found: futhark-bin
==> WARNING: Skipped checkpkg due to missing repo packages
==> Generating .SRCINFO...doneLast edited by sebastianprehn (2026-01-15 13:18:54)
Offline
The log files produced by pkgctl are the interesting part, especially the checks done at the end of the compilation .
If pkgctl finishes building you can be sure you didn't miss makedeps.
https://lists.archlinux.org/archives/li … 4OGULBJDZ/
Looks like futhark was abandoned and futhark-bin was considered the better choice.
The repo is still present , if you clone it over ssh and push to it you'll be the new maintainer and it will be visible again in the aurweb interface.
Prebuild binaries are binaries compiled by others that are downloaded in -bin packages and repackaged for use on arch (often with some small adjustments).
Look into https://futhark-lang.org/releases/futha … _64.tar.xz , it contains a /usr/bin/futhark binary which seems to be created on the nixOS distro. That's a prebuilt binary.
Example :
cnrdrvcups-lb-bin and cnrdrvcups-lb both provide the same driver. The former uses the driver as compiled by canon for rpm / deb distros, the latter builds from source.
(some canon printer models only work with one of those packages) .
replaces are rarely useful for aur packages and there are reasons for having both sourcebuilds and -bin versions.
The source build of a stable version is considered the primary package and other variants need to coexist or conflict with it.
Last edited by Lone_Wolf (2026-01-16 22:08:26)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
The log files produced by pkgctl are the interesting part, especially the checks done at the end of the compilation .
If pkgctl finishes building you can be sure you didn't miss makedeps.
The last part:
==> Running checkpkg
error: target not found: futhark-bin
==> WARNING: Skipped checkpkg due to missing repo packages
==> Generating .SRCINFO...doneGave me reason to pause, considering I did not get pkg and src file I get when simply running 'makepkg'.
Is that considered finishing building, or did it quit because of the error?
futhark-bin-0.25.34-1-x86_64-package.log contains:
# Installing executable files to /build/futhark-bin/pkg/futhark-bin/usr/bin
install bin/* /build/futhark-bin/pkg/futhark-bin/usr/bin/
# Installing manual page to /build/futhark-bin/pkg/futhark-bin/usr/share/man/man1
# Installing manpages to /build/futhark-bin/pkg/futhark-bin/usr/share/man/man1/
install -D -m 644 share/man/man1/* /build/futhark-bin/pkg/futhark-bin/usr/share/man/man1/PKGBUILD-namcap.log contains:
PKGBUILD (futhark-bin) W: Reference to x86_64 should be changed to $CARCH
PKGBUILD (futhark-bin) W: Reference to x86_64 should be changed to $CARCHfuthark-bin-0.25.34-1-x86_64.pkg.tar.zst-namcap.log
futhark-bin W: ELF file ('usr/bin/futhark') lacks FULL RELRO, check LDFLAGS.
futhark-bin W: ELF file ('usr/bin/futhark') lacks PIE.futhark-bin-debug-0.25.34-1-x86_64.pkg.tar.zst-namcap.log contains:
futhark-bin-debug W: Directory (usr/src/debug/futhark-bin) is emptyhttps://lists.archlinux.org/archives/li … 4OGULBJDZ/
Looks like futhark was abandoned and futhark-bin was considered the better choice.The repo is still present , if you clone it over ssh and push to it you'll be the new maintainer and it will be visible again in the aurweb interface.
Prebuild binaries are binaries compiled by others that are downloaded in -bin packages and repackaged for use on arch (often with some small adjustments).
Look into https://futhark-lang.org/releases/futha … _64.tar.xz , it contains a /usr/bin/futhark binary which seems to be created on the nixOS distro. That's a prebuilt binary.Example :
cnrdrvcups-lb-bin and cnrdrvcups-lb both provide the same driver. The former uses the driver as compiled by canon for rpm / deb distros, the latter builds from source.
(some canon printer models only work with one of those packages) .replaces are rarely useful for aur packages and there are reasons for having both sourcebuilds and -bin versions.
The source build of a stable version is considered the primary package and other variants need to coexist or conflict with it.
The link to futhark-lang.org contains the exact same .tar.xz that my PKGBUILD contains, simply getting it from a different source, namely GitHub. I downloaded both and they contain exactly the same files. I ran 'sha256sum' on both of them, and got the same:
b860a39613b17dfa14d3068ff8b8b23fc83c5b1ac6a1a0010256d269bdf0bf78 (which is also the sha256sum I have written in my PKGBUILD)
I'm really sorry for asking so many questions, and really thankful that you're taking the time to respond to them. I'm trying to get a proper grasp on how 'pkgctl' works and differs from 'makepkg', as it seems like 'pkgctl' is a very good tool to be able to use if I were to maintain some AUR packages.
Offline
==> Running checkpkg
error: target not found: futhark-bin
==> WARNING: Skipped checkpkg due to missing repo packagespkgctl is designed to be used by arch devs and checkpkg compares new builds with older versions in repos.
For aur packages that check will always fail.
My statement that this would need to be futhark instead of futhark-bin appears to have been made too hasty and is wrong .
The PKGBUILD you use now is indeed providing prebuilt binaries .
In case you want to try a futhark source build at some point, look at https://futhark.readthedocs.io/en/stabl … rom-source .
Clean chroot building is useful for aur maintainers and pkgctl is one of the methods that provides that.
I typically build packages with makepkg, but before uploading changes to AUR I test them with a clean chroot build.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
I feel like I've gotten a lot of gold nuggets from asking here, so thank you very much Lone_Wolf!
I have linked this topic on the orphan request for futhark-bin in the hopes it will be useful, and will mark this as [FINISHED] as I would feel comfortable releasing the PKGBUILD I ended up with.
Offline