

















The PKGBUILD file I provided is also independent of the requires versions set in file pyproject.toml. And it does not require a patch in prepare(). Tested with versions 1.0.5 and 1.1.1. Note: the Arch Wiki has no "Python uv" build guidelines (yet).
After I added a note to the existing bug report, the developer reacted quickly and released a corrected version 1.1.2. The package can now be built without errors again; simply set pkgver=1.1.2 in the PKGBUILD and update the checksum with updpkgsums, that's all you need to do.
As I understand the developer Werner Robitza's comment, it should be the package maintainer's responsibility to set the version at the time the package is built. I tried this:
prepare() {
cd ${_name}-${pkgver}
UV_BUILD_VER=$(pacman -Q python-uv-build | awk '{print $2}' | cut -d- -f1)
sed -i "/\[build-system\]/,/build-backend/ s/requires = .*/requires = [\"uv_build>=$UV_BUILD_VER\"]/" pyproject.toml
}
This would cause the current version to be determined by pacman before the package is built and set in pyproject.toml. This would make us independent of upstream dependencies, because the entry would always match the currently installed version of uv-build.
I tried it with the unmodified version 1.1.1 and it worked.
Similar to using uv in python-ffmpeg-progress-yield-git, this PKGBUILD file does build:
# Maintainer: Jason Nader <jason.nader [] protonmail.com>
# Contributor: willemw <willemw12@gmail.com>
# Contributor: Sian1468 <sian1468-aur@.39011468.xyz>
pkgname=python-ffmpeg-progress-yield
_name=${pkgname#python-}
pkgver=1.1.1
pkgrel=1
pkgdesc="Run an ffmpeg command with its progress yielded."
arch=('any')
url="https://github.com/slhck/ffmpeg-progress-yield"
license=('MIT')
depends=('ffmpeg' 'python-tqdm')
checkdepends=('ffmpeg' 'python-pytest' 'python-pytest-asyncio' 'procps-ng')
makedepends=('python-installer' 'python-build' 'python-uv-build' uv)
source=("$pkgname-$pkgver.tar.gz::$url/archive/v${pkgver}.tar.gz")
sha512sums=('fd9af9bb7acf9d5242d7549fda6c97c1ec49946aa18f118134b8efd5d766a633a1516708157cb8cb4c77624104fea75c6d1eefca31d3f2c0226d1525c7b8230f')
build() {
cd ${_name}-${pkgver}
#python -m build --wheel --no-isolation
uv --no-cache --offline build --no-build-isolation --out-dir=dist --wheel .
}
check() {
cd ${_name}-${pkgver}
uv venv --system-site-packages
uv --offline --no-cache pip install --link-mode=copy --no-deps dist/*.whl
PATH=".venv/bin:$PATH" ./.venv/bin/python -m pytest tests
}
package() {
cd ${_name}-${pkgver}
install -Dm644 LICENSE.md "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
python -m installer --destdir="$pkgdir" dist/*.whl
}
This problem isn't new: https://github.com/slhck/ffmpeg-progress-yield/issues/32
Back then, the package couldn't be built against uv_build > 0.9, and now, after version 0.10.0 was released in the official repository on 2026-02-06, it's broken again.
You can try updating the variable requires = ["uv_build>=0.8.14,<0.10.0"] in pyproject.toml to a current value, or better yet, report the problem upstream so the developer can check if the current version is compatible with their project and fix it if necessary.
And the PKGBUILD should be updated to the current version 1.1.1.
Not compatible with package python-uv-build 0.10.0-1:
==> Starting build()...
* Getting build dependencies for wheel...
ERROR Missing dependencies:
uv_build<0.10.0,>=0.8.14
==> ERROR: A failure occurred in build().
Aborting...
Do not use quotes around the value. Using "function" (with quotes) in a .ini file causes pytest-asyncio to read the literal string including the quotes, which is not recognized.
However, the PKGBUILD is outdated, as a newer version 1.0.5 has been available since November 9th, in which the described problem no longer occurs. However, the additional dependency 'python-uv-build' must be set, the check function must be revised, because pytest no longer finds 'test/test.py' and 'LICENSE' has been renamed to 'LICENSE.md'.
For a fast solution, remove the quotes in the .ini file, or wait until the maintainer updated the PKGBUILD to the latest release.
==> Starting check()...
ERROR: '"function"' is not a valid asyncio_default_fixture_loop_scope. Valid scopes are: function, class, module, package, session.
@ruahcra: FYI, procps-ng is required for the test as it needs pgrep.
Fails to build. python-pytest-asyncio (was pytest-asyncio) is missing from checkdepends.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。
Since the package maintainer had previously implemented the necessary corrections using
sed, I felt it made more sense to continue with this approach rather than creating another dependency withuv. However, the package maintainer should decide which approach to use in the future.After developer Werner Robitza released version 1.1.2 yesterday, which included the change
requires = ["uv_build>=0.8.14"], thus setting only a minimum requirement and removing the upper limit, we should be safe for the future without further action.