From 1b9578b20c069b2683fb6a53ebf50c4585407c38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= Date: Mon, 8 Aug 2022 20:11:02 +0200 Subject: [PATCH] xbps-src: explicitly disallow pattern on build deps It is not possible to use version other than currently in template. Specifying pattern breaks build if dependency isn't in binary repo already. That it worked when in repo was a coincidence. Let's detect exact version requirement with regex equivalent to `xbps-uhelper getpkgname`. bash-5.1$ for x in a-{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}; do [[ $x = *[\>\<]* || $x =~ -[^-_]*[0-9][^-_]*_[0-9_]+$ ]]; bash=$?; xbps-uhelper getpkgname $x > /dev/null 2> /dev/null; xbps=$?; if [ $bash != $xbps ]; then echo $x; fi; done bash-5.1$ Co-authored-by: Duncaen --- common/xbps-src/shutils/common.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/xbps-src/shutils/common.sh b/common/xbps-src/shutils/common.sh index 1aeeaddc268..fdc0c5eedd9 100644 --- a/common/xbps-src/shutils/common.sh +++ b/common/xbps-src/shutils/common.sh @@ -477,6 +477,12 @@ setup_pkg() { fi fi + for x in ${hostmakedepends} ${makedepends} ${checkdepends}; do + if [[ $x = *[\<\>]* || $x =~ -[^-_]*[0-9][^-_]*_[0-9_]+$ ]]; then + msg_error "$pkgver: specifying version in build dependency '$x' is invalid, template version is used always\n" + fi + done + FILESDIR=$XBPS_SRCPKGDIR/$sourcepkg/files PATCHESDIR=$XBPS_SRCPKGDIR/$sourcepkg/patches DESTDIR=$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/${sourcepkg}-${version}