You are not logged in.
Hello everyone, first post. Would someone like to maintain this?
svt-av1-psy is being continued as a fork by lead developer Julio as svt-av1-hdr. Accordingly, this is a complete replacement:
https://github.com/psy-ex/svt-av1-psy -> https://github.com/juliobbv-p/svt-av1-hdr
I know absolutely nothing about programming (which is why I'm asking if anyone wants or can take over
), but here's my first attempt at creating a PKGBUILD. (Copied and adapted from https://aur.archlinux.org/cgit/aur.git/ … 1-psy-git):
# Maintainer : juliobbv <???juliobbv???@gmail.com>
pkgname=svt-av1-hdr-git
pkgver=3.1.0.2025.7.24.gc365615
pkgrel=1
pkgdesc='The Scalable Video Technology for AV1 (SVT-AV1 Encoder) with perceptual enhancements for psychovisually optimal SDR and HDR AV1 encoding'
arch=('x86_64')
url='https://github.com/juliobbv-p/svt-av1-hdr'
license=('BSD' 'custom: Alliance for Open Media Patent License 1.0')
depends=('glibc')
makedepends=('git' 'cmake' 'yasm')
provides=('svt-av1' 'svt-av1-git')
conflicts=('svt-av1' 'svt-av1-git' 'svt-av1-psy-git' 'svt-av1-psy-git-debug')
source=('git+https://github.com/juliobbv-p/svt-av1-hdr')
sha256sums=('SKIP')
pkgver() {
git -C svt-av1-hdr describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//'
}
build() {
export LDFLAGS+=' -Wl,-z,noexecstack'
cmake -B build -S svt-av1-hdr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_AVX512=ON \
-DNATIVE=ON \
-DBUILD_SHARED_LIBS=ON \
-DSVT_AV1_LTO=ON
make -C build
}
package() {
make -C build DESTDIR="$pkgdir" install
install -D -m644 svt-av1-hdr/{LICENSE,PATENTS}.md -t "${pkgdir}/usr/share/licenses/${pkgname}"
}This builds and works.
With
yay -S libhdr10plus-rs dovi_tool-gitadding this works too:
-DLIBDOVI_FOUND=1 \
-DLIBHDR10PLUS_RS_FOUND=1Adding PGO with
-DSVT_AV1_PGO=ONwould gain even more performance, but I simply don't have the knowledge to extract the black magic from https://github.com/juliobbv-p/svt-av1-h … x/build.sh and insert it into the PKGBUILD accordingly. Apart from that, I don't know if this is against the rules for AUR software?
Anyway, this is the download for the benchmark-video https://github.com/juliobbv-p/svt-av1-h … ader.cmake and this for the test run https://github.com/juliobbv-p/svt-av1-h … lper.cmake
Do notifications work here? Test: @BlueSwordM
Thanks for your effort and any help appreciated! ![]()
Offline
A very good friend did some magic foo trickery (PGO+LTO working
) :
# Maintainer : juliobbv <???juliobbv???@gmail.com>
pkgname=svt-av1-hdr-git
pkgver=3.1.0.r3.g76689fd4
pkgrel=1
pkgdesc='The Scalable Video Technology for AV1 (SVT-AV1 Encoder) with perceptual enhancements for psychovisually optimal SDR and HDR AV1 encoding'
arch=('x86_64')
url='https://github.com/juliobbv-p/svt-av1-hdr'
license=('BSD' 'custom: Alliance for Open Media Patent License 1.0')
depends=('glibc')
makedepends=('git' 'cmake' 'yasm')
provides=('svt-av1' 'svt-av1-git')
conflicts=('svt-av1' 'svt-av1-git' 'svt-av1-psy-git' 'svt-av1-psy-git-debug')
source=(
'git+https://github.com/juliobbv-p/svt-av1-hdr'
'https://media.xiph.org/video/derf/y4m/stefan_sif.y4m'
)
sha256sums=(
'SKIP'
'28c0dc1afdd9081d8004cc35f839f8d34cabc0fc8b677f9f70286be6bdbd9f57'
)
pkgver() {
git -C svt-av1-hdr describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//'
}
build() {
export LDFLAGS+=' -Wl,-z,noexecstack'
cmake -B build -S svt-av1-hdr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_AVX512=ON \
-DNATIVE=ON \
-DBUILD_SHARED_LIBS=ON \
-DSVT_AV1_PGO=ON \
-DSVT_AV1_PGO_CUSTOM_VIDEOS='..' \
-DSVT_AV1_PGO_DIR='pgo_profile' \
-DSVT_AV1_LTO=ON \
-DLIBDOVI_FOUND=1 \
-DLIBHDR10PLUS_RS_FOUND=1
make -C build PGOCompileGen
make -C build PGOGenerateProfile
make -C build PGOCompileUse
}
package() {
make -C build DESTDIR="$pkgdir" install
install -D -m644 svt-av1-hdr/{LICENSE,PATENTS}.md -t "${pkgdir}/usr/share/licenses/${pkgname}"
}Offline
pkgdesc='The Scalable Video Technology for AV1 (SVT-AV1 Encoder) with perceptual enhancements for psychovisually optimal SDR and HDR AV1 encoding'Looks like a direct quote from upstream ?
Something like "fork of svt-av1 with big enhancements for HDR & SDR encoding, trunk version" would work better.
provides=('svt-av1' 'svt-av1-git')
conflicts=('svt-av1' 'svt-av1-git' 'svt-av1-psy-git' 'svt-av1-psy-git-debug')Common practice on archlinux is to provide & conflict only the base package and expect other variants to do the same.
Just svt-av1 in provides/conflicts should be enough,
LTO is typically set in makepkg.conf by users, PKGBUILDs that block or force it should use options= array to clarify they're overriding the user preference.
You should review https://wiki.archlinux.org/title/CMake_ … guidelines to ensure you didn't miss common pitfalls .
Would someone like to maintain this?
The best maintainers tend to have an interest in the packages they maintain .
There are many forum users willing to help with packaging issues but not interested in maintaining something.
Why don't you try it ?
Welcome to archlinux forums.
Last edited by Lone_Wolf (2025-08-02 11:37:24)
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
Looks like a direct quote from upstream ?
Something like "fork of svt-av1 with big enhancements for HDR & SDR encoding, trunk version" would work better.
Yes. How about "fork of svt-av1-psy with big enhancements for HDR & SDR encoding", maybe better because it is a fork of a fork. Or was that what you meant by "trunk version"? I'm not familiar with the term.
Common practice on archlinux is to provide & conflict only the base package and expect other variants to do the same.
Just svt-av1 in provides/conflicts should be enough
Ok, done. But https://aur.archlinux.org/cgit/aur.git/ … ential-git also has both. Why?
LTO is typically set in makepkg.conf by users, PKGBUILDs that block or force it should use options= array to clarify they're overriding the user preference.
I have no clue, but https://aur.archlinux.org/cgit/aur.git/ … ential-git and https://aur.archlinux.org/cgit/aur.git/ … v1-psy-git don't have it. Is this bad practice then?
You should review https://wiki.archlinux.org/title/CMake_ … guidelines to ensure you didn't miss common pitfalls.
I did that, but I don't even understand half of it... as I said, I know absolutely nothing about compilers and languages. I have a rough idea of what the respective build flags mean, but that's about it. I see that point 5.1 is supposed to be an example of such an array, but I don't even understand that.
I was able to adapt the existing PKGBUILD by copying it 1:1, and I'm very grateful to my friend for the rest.
The best maintainers tend to have an interest in the packages they maintain .
There are many forum users willing to help with packaging issues but not interested in maintaining something.
Why don't you try it ?
Wise words, this is true. But based on my complete lack of basic knowledge, I would say that I am not the right person for this.
Attempt 3:
# Maintainer : juliobbv <???juliobbv???@gmail.com>
pkgname=svt-av1-hdr-git
pkgver=3.1.0.r3.g76689fd4
pkgrel=1
pkgdesc='fork of svt-av1-psy with big enhancements for HDR & SDR encoding'
arch=('x86_64')
url='https://github.com/juliobbv-p/svt-av1-hdr'
license=('BSD' 'custom: Alliance for Open Media Patent License 1.0')
depends=('glibc')
makedepends=('git' 'cmake' 'yasm')
provides=('svt-av1')
conflicts=('svt-av1')
source=(
'git+https://github.com/juliobbv-p/svt-av1-hdr'
'https://media.xiph.org/video/derf/y4m/stefan_sif.y4m'
)
sha256sums=(
'SKIP'
'28c0dc1afdd9081d8004cc35f839f8d34cabc0fc8b677f9f70286be6bdbd9f57'
)
pkgver() {
git -C svt-av1-hdr describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//'
}
build() {
export LDFLAGS+=' -Wl,-z,noexecstack'
cmake -B build -S svt-av1-hdr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_AVX512=ON \
-DNATIVE=ON \
-DBUILD_SHARED_LIBS=ON \
-DSVT_AV1_PGO=ON \
-DSVT_AV1_PGO_CUSTOM_VIDEOS='..' \
-DSVT_AV1_PGO_DIR='pgo_profile' \
-DSVT_AV1_LTO=ON \
-DLIBDOVI_FOUND=1 \
-DLIBHDR10PLUS_RS_FOUND=1
make -C build PGOCompileGen
make -C build PGOGenerateProfile
make -C build PGOCompileUse
}
package() {
make -C build DESTDIR="$pkgdir" install
install -D -m644 svt-av1-hdr/{LICENSE,PATENTS}.md -t "${pkgdir}/usr/share/licenses/${pkgname}"
}Offline
Or was that what you meant by "trunk version"? I'm not familiar with the term.
The primary development version used to be called master, but some people felt offended by that and switched to main.
Both are still in use. Alternatives that haven't offended someone sofar are git version and trunk version.
conflicting just the base package
Ok, done. But https://aur.archlinux.org/cgit/aur.git/ … ential-git also has both. Why?
Its creator was probably not aware of the best practice.
forcing LTO
I have no clue, but https://aur.archlinux.org/cgit/aur.git/ … ential-git and https://aur.archlinux.org/cgit/aur.git/ … v1-psy-git don't have it. Is this bad practice then?
It's a bit of a grey area. Archlinux default is to enable lto through compiler flags.
Software that honors those flags will built without lto if user has disabled it with !lto in their config.
Software that requires a special flag/option to enable lto will ignore the disabling by the user.
Adding options=(lto) to the PKGBUILD will clarify that this PKGBUILD overrides the user setting.
My personal opinion is that PKGBUILDs that override user settings without telling they do that are doing something wrong.
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