You are not logged in.
Pages: 1
Hi! I'd like to request a review of the following `PKGBUILD`:
# Maintainer: TornaxO7 <tornax(at)pm.me>
#
# Heavily inspired by `awww`'s PKGBUILD
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=awww-git
pkgname=vibe
pkgver=vibe.v2.3.0.r54.g5cceea6
pkgrel=1
pkgdesc="A desktop audio visualizer for wayland."
arch=('x86_64')
url="https://github.com/TornaxO7/vibe"
license=('AGPL-3.0-or-later')
depends=('libxkbcommon' 'alsa-lib' 'wayland' 'wayland-protocols' 'vulkan-validation-layers' 'vulkan-headers')
optdepends=(
'vulkan-radeon: If you have an AMD GPU',
'vulkan-intel: If you have an Intel GPU',
'vulkan-utils: If you have a Nvidia GPU',
)
makedepends=('rust' 'git')
source=("$pkgname::git+$url.git")
sha256sums=('SKIP')
prepare() {
cd "$pkgname"
export RUSTUP_TOOLCHAIN=stable
cargo update
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
pkgver() {
git -C $pkgname describe --long --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
build() {
cd "$pkgname"
export RUSTUP_TOOLCHAIN=stable CARGO_TARGET_DIR=target
cargo build --frozen --release --all-features
}
check() {
cd "$pkgname"
export RUSTUP_TOOLCHAIN=stable
cargo test --frozen --all-features
}
package() {
install -Dm755 -t "$pkgdir/usr/bin/" "$pkgname/target/release/$pkgname"
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname/" $pkgname/LICENSE
}I'm a bit unsure if the final package name will be set by the `pkgname` variable of the `PKGBUILD` file or the repository name because I'd like the aur package to be called `vibe-audio-visualizer` to avoid collisions with other packages which have the prefix `vibe`.
Offline
# Maintainer: TornaxO7 <tornax(at)pm.me>
#
# Heavily inspired by `awww`'s PKGBUILD
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=awww-git
pkgname=vibe-git
_pkgname=vibe
pkgver=vibe.v2.3.0.r54.g5cceea6
pkgrel=1
pkgdesc="A desktop audio visualizer for wayland."
arch=('x86_64')
url="https://github.com/TornaxO7/vibe"
license=('AGPL-3.0-or-later')
depends=('libxkbcommon' 'alsa-lib' 'wayland' 'wayland-protocols' 'vulkan-validation-layers' 'vulkan-headers')
makedepends=('rust' 'git')
source=("$_pkgname::git+$url.git")
sha256sums=('SKIP')
provides=($_pkgname)
conflicts=($_pkgname)
pkgver() {
printf "r%s.%s" "$(git -C ${_pkgname} rev-list --count HEAD)" "$(git -C ${_pkgname} rev-parse --short HEAD)"
}
build() {
cd "${srcdir}/${_pkgname}/"
export RUSTUP_TOOLCHAIN=stable
export CARGO_TARGET_DIR=target
cargo build --release --all-features
package() {
cd "$_pkgname"
install -Dm755 target/release/vibe "$pkgdir/usr/bin/vibe"
}since you are building the git version, I adapted it to build from the git version
Last edited by killertofus (2025-11-28 17:22:26)
Offline
since you are building the git version, I adapted it to build from the git version
Looks like a big adaption
Could you please explain each change why you did that? Or to be more clear:
Why did you add `_pkgname=vibe`? Is it because `pkgname` will be resulting package name in the AUR? Like, if you'd like to install it with your AUR helper it will be like `paru -S vibe-git`?
Why did you remove my `optdepends` lits?
Why did you replace `cd "$pkgname"` with `cd "${srcdir}/${_pkgname}/"`? Wouldn't `cd $_pkgname` be sufficient?
Why did you remove the LICENSE copy in the `package()` function? I think it's better if it stays there.
Never the less, thank you for your review! ![]()
Offline
optdepends=(
'vulkan-radeon: If you have an AMD GPU',
'vulkan-intel: If you have an Intel GPU',
'vulkan-utils: If you have a Nvidia GPU',
)vulkan-utils is not an archlinux package, you probably meant nvidia-utils .
All vulkan driver packages (incl. nvidia-utils) on archlinux provide vulkan-driver.
If vulkan support is required, add vulkan-driver as depend .
wgsl and glsl support for shaders
Neither of those require vulkan , but https://github.com/TornaxO7/vibe/wiki/Config mentions vulkan as recommended backend.
Does your software require vulkan or wgsl / glsl ?
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
vulkan-utils is not an archlinux package, you probably meant nvidia-utils .
All vulkan driver packages (incl. nvidia-utils) on archlinux provide vulkan-driver.
If vulkan support is required, add vulkan-driver as depend .
Do you mean like this?
depends=('vulkan-driver' ...)Neither of those require vulkan , but https://github.com/TornaxO7/vibe/wiki/Config mentions vulkan as recommended backend.
Does your software require vulkan or wgsl / glsl ?
Hi! My software does require a graphics API. Can be either vulkan or opengl but I recommend vulkan.
Last edited by TornaxO7 (2025-11-28 19:48:44)
Offline
Alright, so I applied some fixes, recommended by you and the new PKGBUILD looks now like this:
# Maintainer: TornaxO7 <tornax(at)pm.me>
#
# Heavily inspired by `awww`'s PKGBUILD
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=awww-git
pkgname=vibe-audio-visualizer-git
_pkgname=vibe
pkgver=vibe.v2.3.0.r54.g5cceea6
pkgrel=1
pkgdesc="A desktop audio visualizer for wayland."
arch=('x86_64')
url="https://github.com/TornaxO7/vibe"
license=('AGPL-3.0-or-later')
depends=('libxkbcommon' 'alsa-lib' 'wayland' 'wayland-protocols' 'vulkan-validation-layers' 'vulkan-headers' 'vulkan-driver')
makedepends=('rust' 'git')
source=("$_pkgname::git+$url.git")
sha256sums=('SKIP')
provides=($_pkgname)
conflicts=($_pkgname)
pkgver() {
git -C $_pkgname describe --long --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable
cargo update
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
build() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable CARGO_TARGET_DIR=target
cargo build --frozen --release --all-features
}
check() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable
cargo test --frozen --all-features
}
package() {
install -Dm755 -t "${_pkgdir}/usr/bin/" "${srcdir}/${_pkgname}/target/release/${_pkgname}"
install -Dm644 -t "${_pkgdir}/usr/share/licenses/${_pkgname}/" ${_pkgname}/LICENSE
}I hope it's fine/better now ![]()
Offline
pkgver=vibe.v2.3.0.r54.g5cceea6From https://wiki.archlinux.org/title/VCS_pa … elines#Git "If tag contains a prefix, like v or project name then it should be cut off:" In this case, you have a very long prefix, not just the v
provides=($_pkgname)So anything that says it requires the vibe package can use this package instead and it should work? If not, it doesn't provide that.
"${_pkgdir}/usr/bin/"What in the world is ${_pkgdir}? This PKGBUILD wouldn't even work.
install -Dm644 -t "${_pkgdir}/usr/share/licenses/${_pkgname}/" ${_pkgname}/LICENSEIf the license needs to be installed, it needs to be to a dir named ${pkgname}, not ${_pkgname}. In this case, you shouldn't be installing it at all as it's a common license.
Online
pkgver=vibe.v2.3.0.r54.g5cceea6From https://wiki.archlinux.org/title/VCS_pa … elines#Git "If tag contains a prefix, like v or project name then it should be cut off:" In this case, you have a very long prefix, not just the v
Oh neat, I didn't knew there would be an article for VCS packages. Thanks!
provides=($_pkgname)So anything that says it requires the vibe package can use this package instead and it should work? If not, it doesn't provide that.
hm... I see your point. I guess it's better to remove it.
"${_pkgdir}/usr/bin/"What in the world is ${_pkgdir}? This PKGBUILD wouldn't even work.
Oops, sorry, my brain somehow thought I should use `pkgdir`... thank you for spotting that ![]()
install -Dm644 -t "${_pkgdir}/usr/share/licenses/${_pkgname}/" ${_pkgname}/LICENSEIf the license needs to be installed, it needs to be to a dir named ${pkgname}, not ${_pkgname}. In this case, you shouldn't be installing it at all as it's a common license.
Oh ok. Thank you for the explanation about why the license shouldn't be installed as well.
So here's the updated version:
# Maintainer: TornaxO7 <tornax(at)pm.me>
#
# Heavily inspired by `awww`'s PKGBUILD
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=awww-git
pkgname=vibe-audio-visualizer-git
_pkgname=vibe
pkgver=v2.3.0.r54.g5cceea6
pkgrel=1
pkgdesc="A desktop audio visualizer for wayland."
arch=('x86_64')
url="https://github.com/TornaxO7/vibe"
license=('AGPL-3.0-or-later')
depends=('libxkbcommon' 'alsa-lib' 'wayland' 'wayland-protocols' 'vulkan-validation-layers' 'vulkan-headers' 'vulkan-driver')
makedepends=('rust' 'git')
source=("$_pkgname::git+$url.git")
sha256sums=('SKIP')
conflicts=($_pkgname)
pkgver() {
git -C $_pkgname describe --long --tags --abbrev=7 | sed 's/^vibe.//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable
cargo update
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
build() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable CARGO_TARGET_DIR=target
cargo build --frozen --release --all-features
}
check() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable
cargo test --frozen --all-features
}
package() {
install -Dm755 -t "${_pkgname}/usr/bin/" "${srcdir}/${_pkgname}/target/release/${_pkgname}"
}Offline
You *do* need to use ${pkgdir}, but you used ${_pkgdir}, which doesn't exist.
And you still have the 'v' prefix in the version that needs to go.
Last edited by Scimmia (Today 16:30:11)
Online
You *do* need to use ${pkgdir}, but you used ${_pkgdir}, which doesn't exist.
And you still have the 'v' prefix in the version that needs to go.
Oh... sorry. I hope that I've applied the fixes correctly now ;-;
# Maintainer: TornaxO7 <tornax(at)pm.me>
#
# Heavily inspired by `awww`'s PKGBUILD
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=awww-git
pkgname=vibe-audio-visualizer-git
_pkgname=vibe
pkgver=2.3.0.r54.g5cceea6
pkgrel=1
pkgdesc="A desktop audio visualizer for wayland."
arch=('x86_64')
url="https://github.com/TornaxO7/vibe"
license=('AGPL-3.0-or-later')
depends=('libxkbcommon' 'alsa-lib' 'wayland' 'wayland-protocols' 'vulkan-validation-layers' 'vulkan-headers' 'vulkan-driver')
makedepends=('rust' 'git')
source=("$_pkgname::git+$url.git")
sha256sums=('SKIP')
conflicts=($_pkgname)
pkgver() {
git -C $_pkgname describe --long --tags --abbrev=7 | sed 's/^vibe.v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable
cargo update
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
build() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable CARGO_TARGET_DIR=target
cargo build --frozen --release --all-features
}
check() {
cd "${srcdir}/${_pkgname}"
export RUSTUP_TOOLCHAIN=stable
cargo test --frozen --all-features
}
package() {
install -Dm755 -t "${pkgdir}/usr/bin/" "${srcdir}/${_pkgname}/target/release/${_pkgname}"
}Offline
Pages: 1