xbps icon indicating copy to clipboard operation
xbps copied to clipboard

xbps-checkvers: error: xbps_dictionary_set

Open meator opened this issue 11 months ago • 5 comments

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.

meator avatar Jan 12 '25 14:01 meator

what's the debug output show? -d

classabbyamp avatar Jan 12 '25 14:01 classabbyamp

[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

meator avatar Jan 12 '25 14:01 meator

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.

meator avatar Jan 12 '25 15:01 meator

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.

meator avatar Jan 12 '25 15:01 meator

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.

Duncaen avatar May 21 '25 01:05 Duncaen