xbps-checkvers: error: xbps_dictionary_set
This error is caused by https://github.com/void-linux/void-packages/pull/53941.
When running
xbps-checkvers -D <void-packages location> -sm libdwarf
with libdwarf provided from https://github.com/void-linux/void-packages/pull/53941, xbps-checkvers prints
error: xbps_dictionary_set
without a newline and returns 1.
This is outputted by https://github.com/void-linux/xbps/blob/0.59.2/bin/xbps-checkvers/main.c#L367-L371.
what's the debug output show? -d
[DEBUG] XBPS: 0.60 API: 20200423 GIT: UNSET
[DEBUG] Processing configuration directory: /usr/local/etc/xbps.d
[DEBUG] Processing system configuration directory: /usr/local/share/xbps.d
[DEBUG] libdwarf/template: pkgname libdwarf
[DEBUG] libdwarf/template: reverts 20201020_1 20200825_1 20200719_1 20200114_1 20191104_2 20191104_1
ERROR: xbps_dictionary_set failed
Does it try to parse Bash? It appears to be working when I do
--- a/srcpkgs/libdwarf/template
+++ b/srcpkgs/libdwarf/template
@@ -1,10 +1,7 @@
# Template file for 'libdwarf'
pkgname=libdwarf
# See https://www.prevanders.net/dwarf.html#nfuture
-reverts="20201020_1 20200825_1 20200719_1 20200114_1 20191104_2 20191104_1
- 20191002_1 20190529_1 20190110_1 20180809_1 20180527_1 20180129_1 20170709_2
- 20170709_1 20170416_1 20161124_1 20161021_1 20161001_1 20160923_1 20160613_1
- 20160507_1 20160115_1 20150507_3 20150507_2 20150507_1"
+reverts="20201020_1 20200825_1 20200719_1 20200114_1 20191104_2 20191104_1 20191002_1 20190529_1 20190110_1 20180809_1 20180527_1 20180129_1 20170709_2 20170709_1 20170416_1 20161124_1 20161021_1 20161001_1 20160923_1 20160613_1 20160507_1 20160115_1 20150507_3 20150507_2 20150507_1"
version=0.11.1
revision=1
build_style=gnu-configure
If it's trying to parse Bash, then its parser must be pretty janky.
Here is the original (broken) template file for reference:
# Template file for 'libdwarf'
pkgname=libdwarf
# See https://www.prevanders.net/dwarf.html#nfuture
reverts="20201020_1 20200825_1 20200719_1 20200114_1 20191104_2 20191104_1
20191002_1 20190529_1 20190110_1 20180809_1 20180527_1 20180129_1 20170709_2
20170709_1 20170416_1 20161124_1 20161021_1 20161001_1 20160923_1 20160613_1
20160507_1 20160115_1 20150507_3 20150507_2 20150507_1"
version=0.11.1
revision=1
build_style=gnu-configure
configure_args="--enable-shared --enable-dwarfgen"
makedepends="elfutils-devel"
checkdepends="python3"
short_desc="DWARF Debugging Information Format Library"
maintainer="Orphaned <[email protected]>"
license="LGPL-2.1-only"
homepage="https://www.prevanders.net/dwarf.html"
distfiles="https://www.prevanders.net/libdwarf-${version}.tar.xz"
checksum=b5be211b1bd0c1ee41b871b543c73cbff5822f76994f6b160fc70d01d1b5a1bf
if [ "$CROSS_BUILD" ]; then
hostmakedepends="elfutils-devel"
fi
libdwarf-devel_package() {
short_desc+=" - development files"
depends="${sourcepkg}>=${version}_${revision}"
pkg_install() {
vmove "usr/include/libdwarf-0"
vmove "usr/lib/*.so"
vmove "usr/lib/*.a"
vmove "usr/lib/pkgconfig"
}
}
libdwarf-doc_package() {
short_desc+=" - documentation"
pkg_install() {
for i in README NEWS doc/*.pdf ; do
vdoc $i
done
}
}
I will put all reverts on a single line to fix this error in https://github.com/void-linux/void-packages/pull/53941.
It tries to parse the top most 3 variables, it doesn't even really attempt to parse bash. It just knows variable definitions in the simplest way possible and a few variable substitutions.