[cygport - the Cygwin packaging tool] branch master, updated. 0.37.0

Jon Turney via Cygwin-apps-cvs <[email protected]> Sun, 23 Mar 2025 17:43:21 +0000 (GMT)
Newsgroups gmane.os.cygwin.cvs.apps
Message-ID <[email protected]>



Diff:
---
 .github/workflows/cygwin.yml                       |   9 +-
 NEWS                                               |   9 +
 bin/cygport.in                                     |   2 +-
 cygclass/cmake.cygclass                            |   7 +-
 cygclass/httpd.cygclass                            |   2 +-
 cygclass/meson.cygclass                            |   8 +-
 cygclass/xorg.cygclass                             |   5 +
 cygport.spec                                       |   2 +-
 data/cygport.conf                                  |   7 +
 data/sample.cygport                                |   8 +-
 lib/pkg_info.cygpart                               |   6 +
 lib/pkg_pkg.cygpart                                |  42 ++---
 lib/pkg_upload.cygpart                             |   4 +-
 lib/src_postinst.cygpart                           |  12 +-
 lib/syntax.cygpart                                 |   4 +
 meson.build                                        |   2 +-
 testsuite/R/cran/R-chron.cygport                   |   2 +
 ...-2.3_61-1.hint => R-chron-2.3_61-1-x86_64.hint} |   0
 ....01.1-1.hint => aspell-pa-0.01.1-1-x86_64.hint} |   0
 ...t-2.0.1-1.hint => SDL2_net-2.0.1-1-x86_64.hint} |   0
 ...hint => SDL2_net-debuginfo-2.0.1-1-x86_64.hint} |   0
 ....0.1-2.hint => libtxc_dxtn-1.0.1-2-x86_64.hint} |   0
 ...t => libtxc_dxtn-debuginfo-1.0.1-2-x86_64.hint} |   0
 ....hint => libtxc_dxtn-devel-1.0.1-2-x86_64.hint} |   0
 ... => girepository-Notify0.7-0.7.7-1-x86_64.hint} |   2 +-
 ...-0.7.7-1.hint => libnotify-0.7.7-1-x86_64.hint} |   0
 ...int => libnotify-debuginfo-0.7.7-1-x86_64.hint} |   0
 ...-1.hint => libnotify-devel-0.7.7-1-x86_64.hint} |   0
 ....7-1.hint => libnotify-doc-0.7.7-1-x86_64.hint} |   0
 ...0.7.7-1.hint => libnotify4-0.7.7-1-x86_64.hint} |   0
 ...nt => libpangomm1.4-devel-2.40.1-1-x86_64.hint} |   0
 ...hint => libpangomm1.4-doc-2.40.1-1-x86_64.hint} |   0
 ...1.hint => libpangomm1.4_1-2.40.1-1-x86_64.hint} |   0
 ...t => pangomm1.4-debuginfo-2.40.1-1-x86_64.hint} |   0
 ... girepository-MateMenu2.0-1.18.0-1-x86_64.hint} |   2 +-
 ...int => libmate-menu-devel-1.18.0-1-x86_64.hint} |   0
 ...0-1.hint => libmate-menu2-1.18.0-1-x86_64.hint} |   0
 ...18.0-1.hint => mate-menus-1.18.0-1-x86_64.hint} |   0
 ...t => mate-menus-debuginfo-1.18.0-1-x86_64.hint} |   0
 ...nt => xfce4-hamster-plugin-1.6.1-1-x86_64.hint} |   0
 ...4-hamster-plugin-debuginfo-1.6.1-1-x86_64.hint} |   0
 ...-0.0.8-1.hint => win-iconv-0.0.8-1-x86_64.hint} |   0
 ...int => win-iconv-debuginfo-0.0.8-1-x86_64.hint} |   0
 ...-1.hint => kcolorchooser-17.08.3-1-x86_64.hint} |   0
 ... kcolorchooser-debuginfo-17.08.3-1-x86_64.hint} |   0
 ...1.hint => attica-debuginfo-0.4.2-1-x86_64.hint} |   0
 ...-1.hint => libattica-devel-0.4.2-1-x86_64.hint} |   0
 ...4.2-1.hint => libattica0.4-0.4.2-1-x86_64.hint} |   0
 ...-1.hint => libQt5Xdg-devel-2.0.0-1-x86_64.hint} |   0
 ...2.0.0-1.hint => libQt5Xdg2-2.0.0-1-x86_64.hint} |   0
 ... libQt5XdgIconLoader-devel-2.0.0-1-x86_64.hint} |   0
 ...nt => libQt5XdgIconLoader2-2.0.0-1-x86_64.hint} |   0
 ...int => libqt5xdg-debuginfo-2.0.0-1-x86_64.hint} |   0
 ...2.hint => patch-compressions-3.8-2-noarch.hint} |   0
 ... => mingw64-i686-win-iconv-0.0.8-1-noarch.hint} |   0
 ...4-i686-win-iconv-debuginfo-0.0.8-1-noarch.hint} |   0
 ...1.hint => mingw64-i686-crypt-2.1-1-noarch.hint} |   0
 ...mingw64-i686-crypt-debuginfo-2.1-1-noarch.hint} |   0
 ....hint => mingw64-i686-qt5ct-0.34-1-noarch.hint} |   0
 ...3.0-1.hint => docbook-sgml30-3.0-1-x86_64.hint} |   0
 ...2-2.hint => docbook-xml412-4.1.2-2-x86_64.hint} |   0
 ...0.3.2-1.hint => R-nanotime-0.3.2-1-x86_64.hint} |   0
 ... gtk3-engines-unico-1.0.3-bzr152-1-x86_64.hint} |   0
 testsuite/download/cvs/crypt.cygport               |  13 --
 testsuite/download/cvs/crypt.list                  |   0
 .../dist/crypt/crypt-1.1-1-src.hint                |   9 -
 .../crypt-1.1-1.x86_64/dist/crypt/crypt-1.1-1.hint |   7 -
 testsuite/download/cvs/vars                        |   3 -
 ...rv-1.62-1.hint => cygrunsrv-1.62-1-x86_64.hint} |   0
 ....0-1.hint => gnome-common-3.18.0-1-noarch.hint} |   0
 ...8.0-1.hint => mate-common-1.18.0-1-noarch.hint} |   0
 ...wmtn-0.10-1.hint => viewmtn-0.10-1-noarch.hint} |   0
 ...11-1.hint => perl-Text-Glob-0.11-1-noarch.hint} |   0
 ...10.0-1.hint => python-six-1.10.0-1-noarch.hint} |   0
 ...nt => unfs3-0.9.23-0.1.20151008git-x86_64.hint} |   0
 ...3-debuginfo-0.9.23-0.1.20151008git-x86_64.hint} |   0
 ....hint => xorg-util-macros-1.19.1-1-noarch.hint} |   0
 ...init-1.4.2-2.hint => xinit-1.4.2-2-x86_64.hint} |   0
 ...-2.hint => xinit-debuginfo-1.4.2-2-x86_64.hint} |   0
 ...s-2.0.2-2.hint => sj-fonts-2.0.2-2-noarch.hint} |   0
 ....hint => inconsolata-fonts-1.010-1-noarch.hint} |   0
 ...1.hint => libmultiple-devel-3.14-1-x86_64.hint} |   0
 ...3.14-1.hint => libmultiple1-3.14-1-x86_64.hint} |   0
 ...ple-3.14-1.hint => multiple-3.14-1-x86_64.hint} |   0
 ...gle-2.3.4-1.hint => single-2.3.4-1-x86_64.hint} |   0
 ...1.hint => httpd-mod_geoip-1.2.10-1-x86_64.hint} |   0
 ...httpd-mod_geoip-debuginfo-1.2.10-1-x86_64.hint} |   0
 ...fs-1.8.0-1.hint => lua-lfs-1.8.0-1-x86_64.hint} |   0
 ....hint => lua-lfs-debuginfo-1.8.0-1-x86_64.hint} |   0
 ...{login-1.13-1.hint => login-1.13-1-x86_64.hint} |   0
 ...3-1.hint => login-debuginfo-1.13-1-x86_64.hint} |   0
 ...nt => girepository-Json1.0-1.4.2-1-x86_64.hint} |   2 +-
 ...4.2-1.hint => json-glib1.0-1.4.2-1-x86_64.hint} |   0
 ... => json-glib1.0-debuginfo-1.4.2-1-x86_64.hint} |   0
 ...t => libjson-glib1.0-devel-1.4.2-1-x86_64.hint} |   0
 ...int => libjson-glib1.0-doc-1.4.2-1-x86_64.hint} |   0
 ....hint => libjson-glib1.0_0-1.4.2-1-x86_64.hint} |   0
 ...t-1.5-1.hint => ocaml-result-1.5-1-x86_64.hint} |   0
 ....9.1-6.hint => ocaml-expat-0.9.1-6-x86_64.hint} |   0
 ...rp-1.38-1.hint => perl-Carp-1.38-1-noarch.hint} |   2 +-
 testsuite/perl/ExtUtils-MakeMaker/perl-Carp.list   |   4 +-
 ...-1.01-1.hint => perl-Lchown-1.01-1-x86_64.hint} |   2 +-
 ...nt => perl-Lchown-debuginfo-1.01-1-x86_64.hint} |   0
 testsuite/perl/Module-Build/perl-Lchown.list       |   6 +-
 ...nt => php-Structures_Graph-1.1.1-1-noarch.hint} |   0
 ...3.0.1-1.hint => php-bitset-3.0.1-1-x86_64.hint} |   0
 ...nt => php-bitset-debuginfo-3.0.1-1-x86_64.hint} |   0
 ... => python3-beautifulsoup-4.11.1-1-x86_64.hint} |   2 +-
 .../python/distutils/python-beautifulsoup.list     | 202 ++++++++++-----------
 ....1-1.hint => python3-clang-9.0.1-1-noarch.hint} |   0
 ...1-1.hint => python38-clang-9.0.1-1-noarch.hint} |   0
 ...1-1.hint => python39-clang-9.0.1-1-noarch.hint} |   0
 ....hint => python-six-wheel-1.10.0-1-noarch.hint} |   0
 ....0-1.hint => python37-six-1.10.0-1-noarch.hint} |   0
 ....0-1.hint => python38-six-1.10.0-1-noarch.hint} |   0
 ...-1.hint => libqoauth-devel-2.0.0-1-x86_64.hint} |   0
 ...2.0.0-1.hint => libqoauth1-2.0.0-1-x86_64.hint} |   0
 ...1.hint => qoauth-debuginfo-2.0.0-1-x86_64.hint} |   0
 ...int => libqoauth-qt5-devel-2.0.0-1-x86_64.hint} |   0
 ...-1.hint => libqoauth-qt5_1-2.0.0-1-x86_64.hint} |   0
 ...nt => qoauth-qt5-debuginfo-2.0.0-1-x86_64.hint} |   0
 ....1-1.hint => ruby-rack-ssl-1.4.1-1-noarch.hint} |   0
 ....hint => ruby-rack-ssl-doc-1.4.1-1-noarch.hint} |   0
 ...tion-genericrecommended-20160404-1-noarch.hint} |   0
 ...{lv2-1.18.4-1.hint => lv2-1.18.4-1-x86_64.hint} |   0
 ....18.4-1.hint => lv2-devel-1.18.4-1-x86_64.hint} |   0
 tools/debug-filelist-extract                       |  74 ++++++++
 tools/meson.build                                  |   1 +
 128 files changed, 272 insertions(+), 190 deletions(-)

diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml
index dab677ce..70598943 100644
--- a/.github/workflows/cygwin.yml
+++ b/.github/workflows/cygwin.yml
@@ -40,7 +40,6 @@ jobs:
         automake,^
         bison,^
         cmake,^
-        cvs,^
         diffstat,^
         dos2unix,^
         extra-cmake-modules,^
@@ -70,6 +69,7 @@ jobs:
         libbz2-devel,^
         libcairomm1.0-devel,^
         libcrypt-devel,^
+        libdeflate-devel,^
         libgdk_pixbuf2.0-devel,^
         libgirepository1.0-devel,^
         libglibmm2.4-devel,^
@@ -103,8 +103,7 @@ jobs:
         perl,^
         perl-Module-Build,^
         php-PEAR,^
-        python38-devel,^
-        python27-wheel,^
+        python39-devel,^
         python37-pip,^
         python37-setuptools,^
         python37-wheel,^
@@ -128,10 +127,6 @@ jobs:
     - name: Fixup Cygwin installation
       run: |
         bash --login
-        bash -c '/usr/sbin/alternatives --set python /usr/bin/python3.8'
-        bash -c '/usr/sbin/alternatives --set python3 /usr/bin/python3.8'
-        bash -c '/usr/sbin/alternatives --set python3-config /usr/bin/python3.8-config'
-        bash -c 'sed -i s#/usr/bin/python\$#/usr/bin/python3.9# /usr/bin/pip3.9'
         bash -c 'git config --system --add safe.directory /cygdrive/d/a/cygport/cygport'
         bash -c 'git config --system --add safe.directory /cygdrive/d/a/cygport/cygport/data/gnuconfig'
       continue-on-error: true
diff --git a/NEWS b/NEWS
index b76e2686..de15a906 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,12 @@
+0.37.0:
+	* Include arch tag in output archive/hint filenames
+	* Define CMAKE_SYSTEM_PROCESSOR when cross-compiling with cmake
+	* Add configuration DEBUG_FILELIST_EXTRACT for the command to extract
+           the list of source files for a debuginfo package. Provide
+           debug-filelist-extract script which does that.
+	* httpd.cygclass: Fix with binutils >2.43
+	* Rename meson builddir to avoid bad interaction with cross-pkgconf
+	* Document REQUIRES_EXCLUDE_FROM and T
 0.36.9:
 	* Add repro-build, repro-diff, repro-check and repo-finish commands
 	* Avoid a package's provides appearing in it's requires
diff --git a/bin/cygport.in b/bin/cygport.in
index 15bd559e..368c5994 100755
--- a/bin/cygport.in
+++ b/bin/cygport.in
@@ -61,7 +61,7 @@ source ${_privlibdir}/syntax.cygpart
 #  The Cygport Reference Manual documents cygport, a utility for creating and
 #  building software packages for the Cygwin platform.
 #
-#  |html Copyright &#169; 2006-2024 Cygport authors
+#  |html Copyright &#169; 2006-2025 Cygport authors
 #
 #  Permission is granted to copy, distribute and/or modify this manual
 #  under the terms of the GNU Free Documentation License, Version 1.3 or
diff --git a/cygclass/cmake.cygclass b/cygclass/cmake.cygclass
index d2a7ef09..216a738c 100644
--- a/cygclass/cmake.cygclass
+++ b/cygclass/cmake.cygclass
@@ -40,7 +40,7 @@
 
 inherit ninja
 
-__cmake_system() {
+__cmake_system_name() {
 	local cmsys
 
 	# FIXME: do binutils/gcc really support all these?
@@ -141,7 +141,8 @@ cygcmake() {
 
 	if cross_compiling
 	then
-		crossargs="-DCMAKE_SYSTEM_NAME=$(__cmake_system)
+		crossargs="-DCMAKE_SYSTEM_NAME=$(__cmake_system_name)
+			-DCMAKE_SYSTEM_PROCESSOR=${CHOST%%-*}
 			-D_CMAKE_TOOLCHAIN_PREFIX=${CHOST}-
 			-DCMAKE_FIND_ROOT_PATH=$(${CC} -print-sysroot)
 			-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
@@ -236,4 +237,4 @@ src_install() {
 }
 #****
 
-readonly -f __cmake_system cygcmake
+readonly -f __cmake_system_name cygcmake
diff --git a/cygclass/httpd.cygclass b/cygclass/httpd.cygclass
index 125d1f6e..507f22d0 100644
--- a/cygclass/httpd.cygclass
+++ b/cygclass/httpd.cygclass
@@ -409,7 +409,7 @@ httpd_loadmodules() {
 			esac
 		fi
 
-		if ! ${OBJDUMP} -p ${mod} 2> /dev/null | grep -q "\] ${sym}$"
+		if ! ${OBJDUMP} -p ${mod} 2> /dev/null | grep -q "\].* ${sym}$"
 		then
 			error "Cannot determine module symbol name for ${mod##*/}"
 		fi
diff --git a/cygclass/meson.cygclass b/cygclass/meson.cygclass
index 20df7532..6fc448bc 100644
--- a/cygclass/meson.cygclass
+++ b/cygclass/meson.cygclass
@@ -93,7 +93,7 @@ cygmeson() {
 		--sysconfdir=$(__host_sysconfdir) \
 		--buildtype=plain --wrap-mode=nodownload \
 		--auto-features=enabled \
-		${crossargs} ${CYGMESON_ARGS} "${@}" ${CHOST} \
+		${crossargs} ${CYGMESON_ARGS} "${@}" _build.${CHOST} \
 		|| error "meson failed"
 }
 
@@ -108,7 +108,7 @@ cygmeson() {
 #****
 meson_compile() {
 	cygmeson ${@}
-	cygninja -C ${CHOST}
+	cygninja -C _build.${CHOST}
 }
 
 #****T* meson.cygclass/meson_test
@@ -120,7 +120,7 @@ meson_compile() {
 #  meson_test should be run in the directory containing the top-level meson.build.
 #****
 meson_test() {
-	ninja_test -C ${CHOST}
+	ninja_test -C _build.${CHOST}
 }
 
 #****I* meson.cygclass/meson_install
@@ -132,7 +132,7 @@ meson_test() {
 #  meson_install should be run in the directory containing the top-level meson.build.
 #****
 meson_install() {
-	ninja_install -C ${CHOST}
+	ninja_install -C _build.${CHOST}
 }
 
 #****o* meson.cygclass/src_compile (meson)
diff --git a/cygclass/xorg.cygclass b/cygclass/xorg.cygclass
index 81dddb40..3e06b744 100644
--- a/cygclass/xorg.cygclass
+++ b/cygclass/xorg.cygclass
@@ -120,6 +120,11 @@ case ${ORIG_PN} in
 		xorg_git="xorg/test/xts"
 		;;
 
+	rendercheck)
+		xorg_cat="test"
+		xorg_git="xorg/test/rendercheck"
+		;;
+
 	xorg-server)
 		xorg_cat="xserver"
 		xorg_git="xorg/xserver"
diff --git a/cygport.spec b/cygport.spec
index 579a445c..79b53a2c 100644
--- a/cygport.spec
+++ b/cygport.spec
@@ -1,7 +1,7 @@
 %define debug_package %{nil}
 
 Name:           cygport
-Version:        0.36.9
+Version:        0.37.0
 Release:        1%{?dist}
 Summary:        Cygwin package building tool
 
diff --git a/data/cygport.conf b/data/cygport.conf
index 34ccd291..861bf65b 100644
--- a/data/cygport.conf
+++ b/data/cygport.conf
@@ -69,6 +69,13 @@
 #****
 #SIG=1
 
+#****v* Configuration/DEBUG_FILELIST_EXTRACT
+#  DESCRIPTION
+#  The command used to extract from an unstripped executable the list of source
+#  filenames to be placed into the debuginfo package.
+#****
+#DEBUG_FILELIST_EXTRACT=/usr/share/cygport/tools/debug-filelist-extract
+
 
 #****v* Configuration/BROWSER
 #  DESCRIPTION
diff --git a/data/sample.cygport b/data/sample.cygport
index c6b6ec45..639c4b23 100644
--- a/data/sample.cygport
+++ b/data/sample.cygport
@@ -1,13 +1,13 @@
 inherit meson
 
 NAME="cygport"
-VERSION=0.36.9
+VERSION=0.37.0
 RELEASE=1
 CATEGORY="Devel"
 SUMMARY="Cygwin source packaging tool"
 DESCRIPTION="cygport is the standard method for building and maintaining
 packages for the Cygwin distribution."
-HOMEPAGE="https://cygwin.com/"
+HOMEPAGE="https://sourceware.org/cygwin-apps/cygport.html"
 LICENSE="GPL-3.0-only"
 SRC_URI="https://github.com/cygwin/cygport/${VERSION}/cygport-${VERSION}.tar.gz"
 
@@ -20,8 +20,8 @@ BUILD_REQUIRES="git-archive-all groff help2man robodoc"
 # runtime deps to go in setup.hint, and note the escaped newline
 REQUIRES="autoconf automake binutils bzip2 coreutils diffstat diffutils \
 dos2unix findutils file gawk gcc-core gcc-g++ grep gzip lftp libtool lndir \
-lzip make openssh patch perl-Authen-SASL perl-MIME-tools perl-Net-SMTP-SSL rsync \
-sed tar texinfo unzip util-linux wget which xz"
+lzip make openssh patch perl-common-sense perl-Authen-SASL perl-MIME-tools \
+perl-Net-SMTP-SSL pkg-config rsync sed tar texinfo unzip util-linux wget which xz"
 
 # We use the src_compile and src_test provided by meson.cygclass
 
diff --git a/lib/pkg_info.cygpart b/lib/pkg_info.cygpart
index 7202e5b4..2a9b4f56 100644
--- a/lib/pkg_info.cygpart
+++ b/lib/pkg_info.cygpart
@@ -124,6 +124,12 @@ __list_deps() {
 		fi
 	done
 
+#****v* Information/REQUIRES_EXCLUDE_FROM
+#  DESCRIPTION
+#  A colon-separated list of pathname globs, which are excluded from automatic
+#  dependency detection.
+#****
+
 	for d in ${REQUIRES_EXCLUDE_FROM//:/ }
 	do
 		deps_prune+=" -o -path ${d#/} -prune"
diff --git a/lib/pkg_pkg.cygpart b/lib/pkg_pkg.cygpart
index e41b5cc7..fb0805eb 100644
--- a/lib/pkg_pkg.cygpart
+++ b/lib/pkg_pkg.cygpart
@@ -180,7 +180,7 @@ __pkg_binpkg() {
 		*-[0-9]*) error "Package ${pkg_name[${n}]}: Use underscore instead of hyphen when followed by digit" ;;
 		esac
 
-		__step "${pkg_name[${n}]}-${PVR}.tar.${TAR_COMPRESSION_EXT}";
+		__step "${pkg_name[${n}]}-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT}";
 
 		pkg_contents_var=${pkg_name[${n}]//[-+\.]/_}_CONTENTS;
 		pkg_docs_var=${pkg_name[${n}]//[-+\.]/_}_DOCS;
@@ -214,7 +214,7 @@ __pkg_binpkg() {
 		if defined pkg_contents
 		then
 			mkdir -p ${distdir}/${PN}/${distsubdir};
-			__tar ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.tar.${TAR_COMPRESSION_EXT} \
+			__tar ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT} \
 				--exclude=usr/lib/debug --exclude=usr/src \
 				--exclude=${autoloaddir} \
 				${pkg_contents} \
@@ -223,7 +223,7 @@ __pkg_binpkg() {
 		else
 			inform "Creating empty package"
 			mkdir -p ${distdir}/${PN}/${distsubdir};
-			__tar ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.tar.${TAR_COMPRESSION_EXT} \
+			__tar ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT} \
 				--files-from /dev/null \
 				|| error "Empty package creation failed"
 			> ${T}/.${pkg_name[${n}]}.lst
@@ -237,9 +237,9 @@ __pkg_binpkg() {
 		[ -d ${autoloaddir} ] || autoloaddir=
 		local dbg_contents_var=${PN//[-+\.]/_}_debuginfo_CONTENTS;
 
-		__step "${PN}-debuginfo-${PVR}.tar.${TAR_COMPRESSION_EXT}";
+		__step "${PN}-debuginfo-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT}";
 		mkdir -p ${distdir}/${PN}/${PN}-debuginfo;
-		__tar ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}.tar.${TAR_COMPRESSION_EXT} \
+		__tar ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT} \
 			usr/*/debug/ ${autoloaddir} ${!dbg_contents_var} \
 			| tee ${T}/.${PN}-debuginfo.lst \
 			|| error "Debuginfo package creation failed: ${PN}-debuginfo"
@@ -268,7 +268,7 @@ __pkg_pkgcheck() {
 		n+=1
 	done
 
-	if ! defined _CYGPORT_RESTRICT_debuginfo_ && [ -f ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}.tar.${TAR_COMPRESSION_EXT} ]
+	if ! defined _CYGPORT_RESTRICT_debuginfo_ && [ -f ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT} ]
 	then
 		grep -Ev "/$" ${T}/.${PN}-debuginfo.lst >> ${tmp1}
 	fi
@@ -335,7 +335,7 @@ __pkg_diff() {
 		 *.mo *.gmo *.orig *.rej *.spec *.temp *.whl *~ *.stackdump";
 
 	# as an alternative build directory to ${B}
-	default_excludes+=" ${CHOST}";
+	default_excludes+=" _build.* ${CHOST}";
 
 	if __config_equals with_aclocal 1
 	then
@@ -897,7 +897,7 @@ __pkg_dist() {
 
 		if [ -f ${C}/${pkg_hint[${n}]%.hint}.hint ]
 		then
-			cp ${C}/${pkg_hint[${n}]%.hint}.hint ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint;
+			cp ${C}/${pkg_hint[${n}]%.hint}.hint ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint;
 		elif [ -n "${!pkg_category_var:-${CATEGORY}}" -a -n "${!pkg_summary_var:-${SUMMARY}}" ]
 		then
 			if [ "${CBUILD##*-}" = "cygwin" ]
@@ -915,10 +915,10 @@ __pkg_dist() {
 				__step "${pkg_name[${n}]} requires: ${pkg_bin_requires} ${!pkg_requires_var}"
 			else
 				pkg_bin_requires=
-				inform "ADD ${distsubdir:-${PN}} DLL DEPENDENCIES TO ${PN}${distsubdir:+/}${distsubdir}/${pkg_name[${n}]}-${PVR}.hint"
+				inform "ADD ${distsubdir:-${PN}} DLL DEPENDENCIES TO ${PN}${distsubdir:+/}${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint"
 			fi
 
-			cat > ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint <<-_EOF
+			cat > ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint <<-_EOF
 category: $(__squeeze_whitespace ${!pkg_category_var:-${CATEGORY}})
 requires: $(__squeeze_whitespace ${pkg_bin_requires} ${!pkg_requires_var})
 sdesc: "${!pkg_summary_var:-${SUMMARY}}"
@@ -926,38 +926,38 @@ ldesc: "${!pkg_description_var:-${DESCRIPTION:-${!pkg_summary_var:-${SUMMARY}}}}
 _EOF
 			if [ -n "${!pkg_obsoletes_var}" ]
 			then
-				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint <<-_EOF
+				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint <<-_EOF
 obsoletes: $(__squeeze_whitespace ${!pkg_obsoletes_var})
 _EOF
 			fi
 
 			if [ -n "${!pkg_provides_var}" ]
 			then
-				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint <<-_EOF
+				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint <<-_EOF
 provides: $(__squeeze_whitespace ${!pkg_provides_var})
 _EOF
 			fi
 
 			if [ -n "${!pkg_conflicts_var}" ]
 			then
-				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint <<-_EOF
+				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint <<-_EOF
 conflicts: $(__squeeze_whitespace ${!pkg_conflicts_var})
 _EOF
 			fi
 
 			if defined distsubdir
 			then
-				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint <<-_EOF
+				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint <<-_EOF
 external-source: ${PN}
 _EOF
 			fi
 			if defined ${pkg_message_var}
 			then
-				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint <<-_EOF
+				cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint <<-_EOF
 message: ${pkg_name[${n}]} "${!pkg_message_var}"
 _EOF
 			fi
-			cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint <<-_EOF
+			cat >> ${distdir}/${PN}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint <<-_EOF
 ${pkg_tag}
 _EOF
 		else
@@ -967,20 +967,20 @@ _EOF
 		n+=1;
 	done
 
-	if ! defined _CYGPORT_RESTRICT_debuginfo_ && [ -f ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}.tar.${TAR_COMPRESSION_EXT} ]
+	if ! defined _CYGPORT_RESTRICT_debuginfo_ && [ -f ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT} ]
 	then
 		if [ -f ${C}/${PN}-debuginfo.hint ]
 		then
-			cp ${C}/${PN}-debuginfo.hint ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}.hint
+			cp ${C}/${PN}-debuginfo.hint ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}-${ARCH}.hint
 		elif [ -f ${C}/debuginfo.hint ]
 		then
-			cp ${C}/debuginfo.hint ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}.hint
+			cp ${C}/debuginfo.hint ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}-${ARCH}.hint
 		else
 			if [ "${PN}" != "cygwin" ]
 			then
 				pkg_debug_requires=cygwin-debuginfo
 			fi
-			cat > ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}.hint <<-_EOF
+			cat > ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}-${ARCH}.hint <<-_EOF
 category: Debug
 requires: ${pkg_debug_requires}
 external-source: ${PN}
@@ -991,7 +991,7 @@ ${pkg_tag}
 _EOF
 			if [ -n "${!dbg_obsoletes_var}" ]
 			then
-				cat >> ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}.hint <<-_EOF
+				cat >> ${distdir}/${PN}/${PN}-debuginfo/${PN}-debuginfo-${PVR}-${ARCH}.hint <<-_EOF
 obsoletes: $(__squeeze_whitespace ${!dbg_obsoletes_var})
 _EOF
 			fi
diff --git a/lib/pkg_upload.cygpart b/lib/pkg_upload.cygpart
index 5f3a91be..50322b57 100644
--- a/lib/pkg_upload.cygpart
+++ b/lib/pkg_upload.cygpart
@@ -90,13 +90,13 @@ __pkg_upload() {
 		*)      distsubdir=${pkg_name[${n}]} ;;
 		esac
 
-		pkg_files+=("${NAME}/${distsubdir}/${pkg_name[${n}]}-${PVR}.tar.${TAR_COMPRESSION_EXT}" "${NAME}/${distsubdir}/${pkg_name[${n}]}-${PVR}.hint")
+		pkg_files+=("${NAME}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT}" "${NAME}/${distsubdir}/${pkg_name[${n}]}-${PVR}-${ARCH}.hint")
 		n+=1
 	done
 
 	if [ -d ${NAME}/${NAME}-debuginfo ]
 	then
-		pkg_files+=("${NAME}/${NAME}-debuginfo/${NAME}-debuginfo-${PVR}.tar.${TAR_COMPRESSION_EXT}" "${NAME}/${NAME}-debuginfo/${NAME}-debuginfo-${PVR}.hint")
+		pkg_files+=("${NAME}/${NAME}-debuginfo/${NAME}-debuginfo-${PVR}-${ARCH}.tar.${TAR_COMPRESSION_EXT}" "${NAME}/${NAME}-debuginfo/${NAME}-debuginfo-${PVR}-${ARCH}.hint")
 	fi
 
 	for file in "${pkg_files[@]}"
diff --git a/lib/src_postinst.cygpart b/lib/src_postinst.cygpart
index f06004e4..570431a4 100644
--- a/lib/src_postinst.cygpart
+++ b/lib/src_postinst.cygpart
@@ -1096,7 +1096,12 @@ __prepstrip_one() {
 	else
 		dbg="/usr/lib/debug/${exe}.dbg";
 
-		lines=$(${objdump} -d -l "${exe}" 2>/dev/null | sed -ne "s|.*\(/usr/src/debug/${PF}/.*\):[0-9]*$|\1|gp" | sort -u | tee -a ${T}/.dbgsrc.out.${oxt} | wc -l);
+		if defined DEBUG_FILELIST_EXTRACT
+		then
+			lines=$(OBJDUMP=${objdump} ${DEBUG_FILELIST_EXTRACT} /usr/src/debug/${PF}/ "${exe}" | tee -a ${T}/.dbgsrc.out.${oxt} | wc -l);
+		else
+			lines=$(${objdump} -d -l "${exe}" 2>/dev/null | sed -ne "s|.*\(/usr/src/debug/${PF}/.*\):[0-9]*$|\1|gp" | sort -u | tee -a ${T}/.dbgsrc.out.${oxt} | wc -l);
+		fi
 
 		# we expect --add-gnu-debuglink to fail if a
 		# .gnu_debuglink section already exists (e.g. binutils,
@@ -1142,7 +1147,12 @@ __prepstrip() {
 		return 0;
 	fi
 
+	if defined DEBUG_FILELIST_EXTRACT
+	then
+		inform "Using ${DEBUG_FILELIST_EXTRACT} to build debuginfo source files list"
+	fi
 	echo "Stripping executables:";
+
 	echo "    ... starting" >> ${T}/.dbgsrc.dbg
 
 	local start="$(date --iso-8601=ns)";
diff --git a/lib/syntax.cygpart b/lib/syntax.cygpart
index 3d215b7d..8608e0c9 100644
--- a/lib/syntax.cygpart
+++ b/lib/syntax.cygpart
@@ -377,6 +377,10 @@ __target_is_embedded() {
 #  The installation staging directory.  All installation and postinstall steps
 #  occur in or into this directory.
 #****
+#****d* Globals/T
+#  DESCRIPTION
+#  The temporary directory, where cygport creates its working files.
+#****
 
 #****** Format/State
 #****
diff --git a/meson.build b/meson.build
index 199c3405..37a7af71 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project('cygport',
-        version: '0.36.9')
+        version: '0.37.0')
 
 bindir = join_paths(get_option('prefix'), get_option('bindir'))
 datadir = join_paths(get_option('prefix'), get_option('datadir'))
diff --git a/testsuite/R/cran/R-chron.cygport b/testsuite/R/cran/R-chron.cygport
index 0c86ced6..4fd38a39 100644
--- a/testsuite/R/cran/R-chron.cygport
+++ b/testsuite/R/cran/R-chron.cygport
@@ -6,3 +6,5 @@ RELEASE=1
 CATEGORY="Math"
 SUMMARY="Chronological Objects for R"
 DESCRIPTION="Provides chronological objects which can handle dates and times."
+
+DEPS_PATH="/usr/lib"
diff --git a/testsuite/R/cran/hints/R-chron-2.3_61-1.x86_64/dist/R-chron/R-chron-2.3_61-1.hint b/testsuite/R/cran/hints/R-chron-2.3_61-1.x86_64/dist/R-chron/R-chron-2.3_61-1-x86_64.hint
similarity index 100%
rename from testsuite/R/cran/hints/R-chron-2.3_61-1.x86_64/dist/R-chron/R-chron-2.3_61-1.hint
rename to testsuite/R/cran/hints/R-chron-2.3_61-1.x86_64/dist/R-chron/R-chron-2.3_61-1-x86_64.hint
diff --git a/testsuite/aspell/dict/hints/aspell-pa-0.01.1-1.x86_64/dist/aspell-pa/aspell-pa-0.01.1-1.hint b/testsuite/aspell/dict/hints/aspell-pa-0.01.1-1.x86_64/dist/aspell-pa/aspell-pa-0.01.1-1-x86_64.hint
similarity index 100%
rename from testsuite/aspell/dict/hints/aspell-pa-0.01.1-1.x86_64/dist/aspell-pa/aspell-pa-0.01.1-1.hint
rename to testsuite/aspell/dict/hints/aspell-pa-0.01.1-1.x86_64/dist/aspell-pa/aspell-pa-0.01.1-1-x86_64.hint
diff --git a/testsuite/autotools/SDL/hints/SDL2_net-2.0.1-1.x86_64/dist/SDL2_net/SDL2_net-2.0.1-1.hint b/testsuite/autotools/SDL/hints/SDL2_net-2.0.1-1.x86_64/dist/SDL2_net/SDL2_net-2.0.1-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/SDL/hints/SDL2_net-2.0.1-1.x86_64/dist/SDL2_net/SDL2_net-2.0.1-1.hint
rename to testsuite/autotools/SDL/hints/SDL2_net-2.0.1-1.x86_64/dist/SDL2_net/SDL2_net-2.0.1-1-x86_64.hint
diff --git a/testsuite/autotools/SDL/hints/SDL2_net-2.0.1-1.x86_64/dist/SDL2_net/SDL2_net-debuginfo/SDL2_net-debuginfo-2.0.1-1.hint b/testsuite/autotools/SDL/hints/SDL2_net-2.0.1-1.x86_64/dist/SDL2_net/SDL2_net-debuginfo/SDL2_net-debuginfo-2.0.1-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/SDL/hints/SDL2_net-2.0.1-1.x86_64/dist/SDL2_net/SDL2_net-debuginfo/SDL2_net-debuginfo-2.0.1-1.hint
rename to testsuite/autotools/SDL/hints/SDL2_net-2.0.1-1.x86_64/dist/SDL2_net/SDL2_net-debuginfo/SDL2_net-debuginfo-2.0.1-1-x86_64.hint
diff --git a/testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-1.0.1-2.hint b/testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-1.0.1-2-x86_64.hint
similarity index 100%
rename from testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-1.0.1-2.hint
rename to testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-1.0.1-2-x86_64.hint
diff --git a/testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-debuginfo/libtxc_dxtn-debuginfo-1.0.1-2.hint b/testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-debuginfo/libtxc_dxtn-debuginfo-1.0.1-2-x86_64.hint
similarity index 100%
rename from testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-debuginfo/libtxc_dxtn-debuginfo-1.0.1-2.hint
rename to testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-debuginfo/libtxc_dxtn-debuginfo-1.0.1-2-x86_64.hint
diff --git a/testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-devel/libtxc_dxtn-devel-1.0.1-2.hint b/testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-devel/libtxc_dxtn-devel-1.0.1-2-x86_64.hint
similarity index 100%
rename from testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-devel/libtxc_dxtn-devel-1.0.1-2.hint
rename to testsuite/autotools/c/hints/libtxc_dxtn-1.0.1-2.x86_64/dist/libtxc_dxtn/libtxc_dxtn-devel/libtxc_dxtn-devel-1.0.1-2-x86_64.hint
diff --git a/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/girepository-Notify0.7/girepository-Notify0.7-0.7.7-1.hint b/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/girepository-Notify0.7/girepository-Notify0.7-0.7.7-1-x86_64.hint
similarity index 61%
rename from testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/girepository-Notify0.7/girepository-Notify0.7-0.7.7-1.hint
rename to testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/girepository-Notify0.7/girepository-Notify0.7-0.7.7-1-x86_64.hint
index 8651df8d..c11ee267 100644
--- a/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/girepository-Notify0.7/girepository-Notify0.7-0.7.7-1.hint
+++ b/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/girepository-Notify0.7/girepository-Notify0.7-0.7.7-1-x86_64.hint
@@ -1,5 +1,5 @@
 category: Libs
-requires: girepository-GdkPixbuf2.0 girepository-GLib2.0 libnotify4
+requires: girepository-GdkPixbuf2.0 girepository-GLib2.0 libglib2.0-devel libnotify4
 sdesc: "GObject desktop notification utility"
 ldesc: "GNOME desktop notification library"
 external-source: libnotify
diff --git a/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-0.7.7-1.hint b/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-0.7.7-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-0.7.7-1.hint
rename to testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-0.7.7-1-x86_64.hint
diff --git a/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-debuginfo/libnotify-debuginfo-0.7.7-1.hint b/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-debuginfo/libnotify-debuginfo-0.7.7-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-debuginfo/libnotify-debuginfo-0.7.7-1.hint
rename to testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-debuginfo/libnotify-debuginfo-0.7.7-1-x86_64.hint
diff --git a/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-devel/libnotify-devel-0.7.7-1.hint b/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-devel/libnotify-devel-0.7.7-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-devel/libnotify-devel-0.7.7-1.hint
rename to testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-devel/libnotify-devel-0.7.7-1-x86_64.hint
diff --git a/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-doc/libnotify-doc-0.7.7-1.hint b/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-doc/libnotify-doc-0.7.7-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-doc/libnotify-doc-0.7.7-1.hint
rename to testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify-doc/libnotify-doc-0.7.7-1-x86_64.hint
diff --git a/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify4/libnotify4-0.7.7-1.hint b/testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify4/libnotify4-0.7.7-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify4/libnotify4-0.7.7-1.hint
rename to testsuite/autotools/gnome/hints/libnotify-0.7.7-1.x86_64/dist/libnotify/libnotify4/libnotify4-0.7.7-1-x86_64.hint
diff --git a/testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4-devel/libpangomm1.4-devel-2.40.1-1.hint b/testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4-devel/libpangomm1.4-devel-2.40.1-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4-devel/libpangomm1.4-devel-2.40.1-1.hint
rename to testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4-devel/libpangomm1.4-devel-2.40.1-1-x86_64.hint
diff --git a/testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4-doc/libpangomm1.4-doc-2.40.1-1.hint b/testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4-doc/libpangomm1.4-doc-2.40.1-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4-doc/libpangomm1.4-doc-2.40.1-1.hint
rename to testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4-doc/libpangomm1.4-doc-2.40.1-1-x86_64.hint
diff --git a/testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4_1/libpangomm1.4_1-2.40.1-1.hint b/testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4_1/libpangomm1.4_1-2.40.1-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4_1/libpangomm1.4_1-2.40.1-1.hint
rename to testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/libpangomm1.4_1/libpangomm1.4_1-2.40.1-1-x86_64.hint
diff --git a/testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/pangomm1.4-debuginfo/pangomm1.4-debuginfo-2.40.1-1.hint b/testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/pangomm1.4-debuginfo/pangomm1.4-debuginfo-2.40.1-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/pangomm1.4-debuginfo/pangomm1.4-debuginfo-2.40.1-1.hint
rename to testsuite/autotools/gtkmm/hints/pangomm1.4-2.40.1-1.x86_64/dist/pangomm1.4/pangomm1.4-debuginfo/pangomm1.4-debuginfo-2.40.1-1-x86_64.hint
diff --git a/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/girepository-MateMenu2.0/girepository-MateMenu2.0-1.18.0-1.hint b/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/girepository-MateMenu2.0/girepository-MateMenu2.0-1.18.0-1-x86_64.hint
similarity index 80%
rename from testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/girepository-MateMenu2.0/girepository-MateMenu2.0-1.18.0-1.hint
rename to testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/girepository-MateMenu2.0/girepository-MateMenu2.0-1.18.0-1-x86_64.hint
index fe8a3ed7..4591335c 100644
--- a/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/girepository-MateMenu2.0/girepository-MateMenu2.0-1.18.0-1.hint
+++ b/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/girepository-MateMenu2.0/girepository-MateMenu2.0-1.18.0-1-x86_64.hint
@@ -1,5 +1,5 @@
 category: Libs
-requires: girepository-GLib2.0 libmate-menu2
+requires: girepository-GLib2.0 libglib2.0-devel libmate-menu2
 sdesc: "MATE Desktop Menu Specification library (GObject Introspection)"
 ldesc: "MATE is a fork of the GNOME 2 desktop. It provides an intuitive
 and attractive desktop to Linux users using traditional metaphors."
diff --git a/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/libmate-menu-devel/libmate-menu-devel-1.18.0-1.hint b/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/libmate-menu-devel/libmate-menu-devel-1.18.0-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/libmate-menu-devel/libmate-menu-devel-1.18.0-1.hint
rename to testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/libmate-menu-devel/libmate-menu-devel-1.18.0-1-x86_64.hint
diff --git a/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/libmate-menu2/libmate-menu2-1.18.0-1.hint b/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/libmate-menu2/libmate-menu2-1.18.0-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/libmate-menu2/libmate-menu2-1.18.0-1.hint
rename to testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/libmate-menu2/libmate-menu2-1.18.0-1-x86_64.hint
diff --git a/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/mate-menus-1.18.0-1.hint b/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/mate-menus-1.18.0-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/mate-menus-1.18.0-1.hint
rename to testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/mate-menus-1.18.0-1-x86_64.hint
diff --git a/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/mate-menus-debuginfo/mate-menus-debuginfo-1.18.0-1.hint b/testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/mate-menus-debuginfo/mate-menus-debuginfo-1.18.0-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/mate-menus-debuginfo/mate-menus-debuginfo-1.18.0-1.hint
rename to testsuite/autotools/mate/hints/mate-menus-1.18.0-1.x86_64/dist/mate-menus/mate-menus-debuginfo/mate-menus-debuginfo-1.18.0-1-x86_64.hint
diff --git a/testsuite/autotools/xfce/hints/xfce4-hamster-plugin-1.6.1-1.x86_64/dist/xfce4-hamster-plugin/xfce4-hamster-plugin-1.6.1-1.hint b/testsuite/autotools/xfce/hints/xfce4-hamster-plugin-1.6.1-1.x86_64/dist/xfce4-hamster-plugin/xfce4-hamster-plugin-1.6.1-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/xfce/hints/xfce4-hamster-plugin-1.6.1-1.x86_64/dist/xfce4-hamster-plugin/xfce4-hamster-plugin-1.6.1-1.hint
rename to testsuite/autotools/xfce/hints/xfce4-hamster-plugin-1.6.1-1.x86_64/dist/xfce4-hamster-plugin/xfce4-hamster-plugin-1.6.1-1-x86_64.hint
diff --git a/testsuite/autotools/xfce/hints/xfce4-hamster-plugin-1.6.1-1.x86_64/dist/xfce4-hamster-plugin/xfce4-hamster-plugin-debuginfo/xfce4-hamster-plugin-debuginfo-1.6.1-1.hint b/testsuite/autotools/xfce/hints/xfce4-hamster-plugin-1.6.1-1.x86_64/dist/xfce4-hamster-plugin/xfce4-hamster-plugin-debuginfo/xfce4-hamster-plugin-debuginfo-1.6.1-1-x86_64.hint
similarity index 100%
rename from testsuite/autotools/xfce/hints/xfce4-hamster-plugin-1.6.1-1.x86_64/dist/xfce4-hamster-plugin/xfce4-hamster-plugin-debuginfo/xfce4-hamster-plugin-debuginfo-1.6.1-1.hint
rename to testsuite/autotools/xfce/hints/xfce4-hamster-plugin-1.6.1-1.x86_64/dist/xfce4-hamster-plugin/xfce4-hamster-plugin-debuginfo/xfce4-hamster-plugin-debuginfo-1.6.1-1-x86_64.hint
diff --git a/testsuite/cmake/c/hints/win-iconv-0.0.8-1.x86_64/dist/win-iconv/win-iconv-0.0.8-1.hint b/testsuite/cmake/c/hints/win-iconv-0.0.8-1.x86_64/dist/win-iconv/win-iconv-0.0.8-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/c/hints/win-iconv-0.0.8-1.x86_64/dist/win-iconv/win-iconv-0.0.8-1.hint
rename to testsuite/cmake/c/hints/win-iconv-0.0.8-1.x86_64/dist/win-iconv/win-iconv-0.0.8-1-x86_64.hint
diff --git a/testsuite/cmake/c/hints/win-iconv-0.0.8-1.x86_64/dist/win-iconv/win-iconv-debuginfo/win-iconv-debuginfo-0.0.8-1.hint b/testsuite/cmake/c/hints/win-iconv-0.0.8-1.x86_64/dist/win-iconv/win-iconv-debuginfo/win-iconv-debuginfo-0.0.8-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/c/hints/win-iconv-0.0.8-1.x86_64/dist/win-iconv/win-iconv-debuginfo/win-iconv-debuginfo-0.0.8-1.hint
rename to testsuite/cmake/c/hints/win-iconv-0.0.8-1.x86_64/dist/win-iconv/win-iconv-debuginfo/win-iconv-debuginfo-0.0.8-1-x86_64.hint
diff --git a/testsuite/cmake/kf5/hints/kcolorchooser-17.08.3-1.x86_64/dist/kcolorchooser/kcolorchooser-17.08.3-1.hint b/testsuite/cmake/kf5/hints/kcolorchooser-17.08.3-1.x86_64/dist/kcolorchooser/kcolorchooser-17.08.3-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/kf5/hints/kcolorchooser-17.08.3-1.x86_64/dist/kcolorchooser/kcolorchooser-17.08.3-1.hint
rename to testsuite/cmake/kf5/hints/kcolorchooser-17.08.3-1.x86_64/dist/kcolorchooser/kcolorchooser-17.08.3-1-x86_64.hint
diff --git a/testsuite/cmake/kf5/hints/kcolorchooser-17.08.3-1.x86_64/dist/kcolorchooser/kcolorchooser-debuginfo/kcolorchooser-debuginfo-17.08.3-1.hint b/testsuite/cmake/kf5/hints/kcolorchooser-17.08.3-1.x86_64/dist/kcolorchooser/kcolorchooser-debuginfo/kcolorchooser-debuginfo-17.08.3-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/kf5/hints/kcolorchooser-17.08.3-1.x86_64/dist/kcolorchooser/kcolorchooser-debuginfo/kcolorchooser-debuginfo-17.08.3-1.hint
rename to testsuite/cmake/kf5/hints/kcolorchooser-17.08.3-1.x86_64/dist/kcolorchooser/kcolorchooser-debuginfo/kcolorchooser-debuginfo-17.08.3-1-x86_64.hint
diff --git a/testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/attica-debuginfo/attica-debuginfo-0.4.2-1.hint b/testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/attica-debuginfo/attica-debuginfo-0.4.2-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/attica-debuginfo/attica-debuginfo-0.4.2-1.hint
rename to testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/attica-debuginfo/attica-debuginfo-0.4.2-1-x86_64.hint
diff --git a/testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/libattica-devel/libattica-devel-0.4.2-1.hint b/testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/libattica-devel/libattica-devel-0.4.2-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/libattica-devel/libattica-devel-0.4.2-1.hint
rename to testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/libattica-devel/libattica-devel-0.4.2-1-x86_64.hint
diff --git a/testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/libattica0.4/libattica0.4-0.4.2-1.hint b/testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/libattica0.4/libattica0.4-0.4.2-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/libattica0.4/libattica0.4-0.4.2-1.hint
rename to testsuite/cmake/qt4/hints/attica-0.4.2-1.x86_64/dist/attica/libattica0.4/libattica0.4-0.4.2-1-x86_64.hint
diff --git a/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5Xdg-devel/libQt5Xdg-devel-2.0.0-1.hint b/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5Xdg-devel/libQt5Xdg-devel-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5Xdg-devel/libQt5Xdg-devel-2.0.0-1.hint
rename to testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5Xdg-devel/libQt5Xdg-devel-2.0.0-1-x86_64.hint
diff --git a/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5Xdg2/libQt5Xdg2-2.0.0-1.hint b/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5Xdg2/libQt5Xdg2-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5Xdg2/libQt5Xdg2-2.0.0-1.hint
rename to testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5Xdg2/libQt5Xdg2-2.0.0-1-x86_64.hint
diff --git a/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5XdgIconLoader-devel/libQt5XdgIconLoader-devel-2.0.0-1.hint b/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5XdgIconLoader-devel/libQt5XdgIconLoader-devel-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5XdgIconLoader-devel/libQt5XdgIconLoader-devel-2.0.0-1.hint
rename to testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5XdgIconLoader-devel/libQt5XdgIconLoader-devel-2.0.0-1-x86_64.hint
diff --git a/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5XdgIconLoader2/libQt5XdgIconLoader2-2.0.0-1.hint b/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5XdgIconLoader2/libQt5XdgIconLoader2-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5XdgIconLoader2/libQt5XdgIconLoader2-2.0.0-1.hint
rename to testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libQt5XdgIconLoader2/libQt5XdgIconLoader2-2.0.0-1-x86_64.hint
diff --git a/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libqt5xdg-debuginfo/libqt5xdg-debuginfo-2.0.0-1.hint b/testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libqt5xdg-debuginfo/libqt5xdg-debuginfo-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libqt5xdg-debuginfo/libqt5xdg-debuginfo-2.0.0-1.hint
rename to testsuite/cmake/qt5/hints/libqt5xdg-2.0.0-1.x86_64/dist/libqt5xdg/libqt5xdg-debuginfo/libqt5xdg-debuginfo-2.0.0-1-x86_64.hint
diff --git a/testsuite/compressions/patch-compressions/hints/patch-compressions-3.8-2.noarch/dist/patch-compressions/patch-compressions-3.8-2.hint b/testsuite/compressions/patch-compressions/hints/patch-compressions-3.8-2.noarch/dist/patch-compressions/patch-compressions-3.8-2-noarch.hint
similarity index 100%
rename from testsuite/compressions/patch-compressions/hints/patch-compressions-3.8-2.noarch/dist/patch-compressions/patch-compressions-3.8-2.hint
rename to testsuite/compressions/patch-compressions/hints/patch-compressions-3.8-2.noarch/dist/patch-compressions/patch-compressions-3.8-2-noarch.hint
diff --git a/testsuite/cross/cmake/hints/mingw64-i686-win-iconv-0.0.8-1.noarch/dist/mingw64-i686-win-iconv/mingw64-i686-win-iconv-0.0.8-1.hint b/testsuite/cross/cmake/hints/mingw64-i686-win-iconv-0.0.8-1.noarch/dist/mingw64-i686-win-iconv/mingw64-i686-win-iconv-0.0.8-1-noarch.hint
similarity index 100%
rename from testsuite/cross/cmake/hints/mingw64-i686-win-iconv-0.0.8-1.noarch/dist/mingw64-i686-win-iconv/mingw64-i686-win-iconv-0.0.8-1.hint
rename to testsuite/cross/cmake/hints/mingw64-i686-win-iconv-0.0.8-1.noarch/dist/mingw64-i686-win-iconv/mingw64-i686-win-iconv-0.0.8-1-noarch.hint
diff --git a/testsuite/cross/cmake/hints/mingw64-i686-win-iconv-0.0.8-1.noarch/dist/mingw64-i686-win-iconv/mingw64-i686-win-iconv-debuginfo/mingw64-i686-win-iconv-debuginfo-0.0.8-1.hint b/testsuite/cross/cmake/hints/mingw64-i686-win-iconv-0.0.8-1.noarch/dist/mingw64-i686-win-iconv/mingw64-i686-win-iconv-debuginfo/mingw64-i686-win-iconv-debuginfo-0.0.8-1-noarch.hint
similarity index 100%
rename from testsuite/cross/cmake/hints/mingw64-i686-win-iconv-0.0.8-1.noarch/dist/mingw64-i686-win-iconv/mingw64-i686-win-iconv-debuginfo/mingw64-i686-win-iconv-debuginfo-0.0.8-1.hint
rename to testsuite/cross/cmake/hints/mingw64-i686-win-iconv-0.0.8-1.noarch/dist/mingw64-i686-win-iconv/mingw64-i686-win-iconv-debuginfo/mingw64-i686-win-iconv-debuginfo-0.0.8-1-noarch.hint
diff --git a/testsuite/cross/make/hints/mingw64-i686-crypt-2.1-1.noarch/dist/mingw64-i686-crypt/mingw64-i686-crypt-2.1-1.hint b/testsuite/cross/make/hints/mingw64-i686-crypt-2.1-1.noarch/dist/mingw64-i686-crypt/mingw64-i686-crypt-2.1-1-noarch.hint
similarity index 100%
rename from testsuite/cross/make/hints/mingw64-i686-crypt-2.1-1.noarch/dist/mingw64-i686-crypt/mingw64-i686-crypt-2.1-1.hint
rename to testsuite/cross/make/hints/mingw64-i686-crypt-2.1-1.noarch/dist/mingw64-i686-crypt/mingw64-i686-crypt-2.1-1-noarch.hint
diff --git a/testsuite/cross/make/hints/mingw64-i686-crypt-2.1-1.noarch/dist/mingw64-i686-crypt/mingw64-i686-crypt-debuginfo/mingw64-i686-crypt-debuginfo-2.1-1.hint b/testsuite/cross/make/hints/mingw64-i686-crypt-2.1-1.noarch/dist/mingw64-i686-crypt/mingw64-i686-crypt-debuginfo/mingw64-i686-crypt-debuginfo-2.1-1-noarch.hint
similarity index 100%
rename from testsuite/cross/make/hints/mingw64-i686-crypt-2.1-1.noarch/dist/mingw64-i686-crypt/mingw64-i686-crypt-debuginfo/mingw64-i686-crypt-debuginfo-2.1-1.hint
rename to testsuite/cross/make/hints/mingw64-i686-crypt-2.1-1.noarch/dist/mingw64-i686-crypt/mingw64-i686-crypt-debuginfo/mingw64-i686-crypt-debuginfo-2.1-1-noarch.hint
diff --git a/testsuite/cross/qt5/hints/mingw64-i686-qt5ct-0.34-1.noarch/dist/mingw64-i686-qt5ct/mingw64-i686-qt5ct-0.34-1.hint b/testsuite/cross/qt5/hints/mingw64-i686-qt5ct-0.34-1.noarch/dist/mingw64-i686-qt5ct/mingw64-i686-qt5ct-0.34-1-noarch.hint
similarity index 100%
rename from testsuite/cross/qt5/hints/mingw64-i686-qt5ct-0.34-1.noarch/dist/mingw64-i686-qt5ct/mingw64-i686-qt5ct-0.34-1.hint
rename to testsuite/cross/qt5/hints/mingw64-i686-qt5ct-0.34-1.noarch/dist/mingw64-i686-qt5ct/mingw64-i686-qt5ct-0.34-1-noarch.hint
diff --git a/testsuite/docbook/sgml/hints/docbook-sgml30-3.0-1.x86_64/dist/docbook-sgml30/docbook-sgml30-3.0-1.hint b/testsuite/docbook/sgml/hints/docbook-sgml30-3.0-1.x86_64/dist/docbook-sgml30/docbook-sgml30-3.0-1-x86_64.hint
similarity index 100%
rename from testsuite/docbook/sgml/hints/docbook-sgml30-3.0-1.x86_64/dist/docbook-sgml30/docbook-sgml30-3.0-1.hint
rename to testsuite/docbook/sgml/hints/docbook-sgml30-3.0-1.x86_64/dist/docbook-sgml30/docbook-sgml30-3.0-1-x86_64.hint
diff --git a/testsuite/docbook/xml/hints/docbook-xml412-4.1.2-2.x86_64/dist/docbook-xml412/docbook-xml412-4.1.2-2.hint b/testsuite/docbook/xml/hints/docbook-xml412-4.1.2-2.x86_64/dist/docbook-xml412/docbook-xml412-4.1.2-2-x86_64.hint
similarity index 100%
rename from testsuite/docbook/xml/hints/docbook-xml412-4.1.2-2.x86_64/dist/docbook-xml412/docbook-xml412-4.1.2-2.hint
rename to testsuite/docbook/xml/hints/docbook-xml412-4.1.2-2.x86_64/dist/docbook-xml412/docbook-xml412-4.1.2-2-x86_64.hint
diff --git a/testsuite/download/R/hints/R-nanotime-0.3.2-1.x86_64/dist/R-nanotime/R-nanotime-0.3.2-1.hint b/testsuite/download/R/hints/R-nanotime-0.3.2-1.x86_64/dist/R-nanotime/R-nanotime-0.3.2-1-x86_64.hint
similarity index 100%
rename from testsuite/download/R/hints/R-nanotime-0.3.2-1.x86_64/dist/R-nanotime/R-nanotime-0.3.2-1.hint
rename to testsuite/download/R/hints/R-nanotime-0.3.2-1.x86_64/dist/R-nanotime/R-nanotime-0.3.2-1-x86_64.hint
diff --git a/testsuite/download/bzr/hints/gtk3-engines-unico-1.0.3-bzr152-1.x86_64/dist/gtk3-engines-unico/gtk3-engines-unico-1.0.3-bzr152-1.hint b/testsuite/download/bzr/hints/gtk3-engines-unico-1.0.3-bzr152-1.x86_64/dist/gtk3-engines-unico/gtk3-engines-unico-1.0.3-bzr152-1-x86_64.hint
similarity index 100%
rename from testsuite/download/bzr/hints/gtk3-engines-unico-1.0.3-bzr152-1.x86_64/dist/gtk3-engines-unico/gtk3-engines-unico-1.0.3-bzr152-1.hint
rename to testsuite/download/bzr/hints/gtk3-engines-unico-1.0.3-bzr152-1.x86_64/dist/gtk3-engines-unico/gtk3-engines-unico-1.0.3-bzr152-1-x86_64.hint
diff --git a/testsuite/download/cvs/crypt.cygport b/testsuite/download/cvs/crypt.cygport
deleted file mode 100644
index c2d8bf47..00000000
--- a/testsuite/download/cvs/crypt.cygport
+++ /dev/null
@@ -1,13 +0,0 @@
-CVS_URI=":pserver:[email protected]:/cvs/cygwin-apps"
-CVS_MODULE="crypt"
-inherit cvs test-fetch
-
-NAME="crypt"
-VERSION=1.1
-RELEASE=1
-CATEGORY="Libs"
-SUMMARY="Encryption/Decryption utility and library"
-DESCRIPTION="This packages provides a library which exports the functions
-crypt(3), encrypt(3), and setkey(3).  The created passwords are 56 bit DES
-encrypted and are 100% identical to those created by the Linux crypt(3)."
-HOMEPAGE="http://cygwin.com/"
diff --git a/testsuite/download/cvs/crypt.list b/testsuite/download/cvs/crypt.list
deleted file mode 100644
index e69de29b..00000000
diff --git a/testsuite/download/cvs/hints/crypt-1.1-1.x86_64/dist/crypt/crypt-1.1-1-src.hint b/testsuite/download/cvs/hints/crypt-1.1-1.x86_64/dist/crypt/crypt-1.1-1-src.hint
deleted file mode 100644
index f1bd6558..00000000
--- a/testsuite/download/cvs/hints/crypt-1.1-1.x86_64/dist/crypt/crypt-1.1-1-src.hint
+++ /dev/null
@@ -1,9 +0,0 @@
-category: Libs
-build-depends: cygport 
-sdesc: "Encryption/Decryption utility and library"
-ldesc: "This packages provides a library which exports the functions
-crypt(3), encrypt(3), and setkey(3).  The created passwords are 56 bit DES
-encrypted and are 100% identical to those created by the Linux crypt(3)."
-skip:
-
-homepage: http://cygwin.com/
diff --git a/testsuite/download/cvs/hints/crypt-1.1-1.x86_64/dist/crypt/crypt-1.1-1.hint b/testsuite/download/cvs/hints/crypt-1.1-1.x86_64/dist/crypt/crypt-1.1-1.hint
deleted file mode 100644
index 35823ddb..00000000
--- a/testsuite/download/cvs/hints/crypt-1.1-1.x86_64/dist/crypt/crypt-1.1-1.hint
+++ /dev/null
@@ -1,7 +0,0 @@
-category: Libs
-requires: 
-sdesc: "Encryption/Decryption utility and library"
-ldesc: "This packages provides a library which exports the functions
-crypt(3), encrypt(3), and setkey(3).  The created passwords are 56 bit DES
-encrypted and are 100% identical to those created by the Linux crypt(3)."
-
diff --git a/testsuite/download/cvs/vars b/testsuite/download/cvs/vars
deleted file mode 100644
index b034a307..00000000
--- a/testsuite/download/cvs/vars
+++ /dev/null
@@ -1,3 +0,0 @@
-declare -r ARCHES="all"
-declare -- CROSS_HOST=""
-declare -- INHERITED="test-fetch cvs autotools "
diff --git a/testsuite/download/git/hints/cygrunsrv-1.62-1.x86_64/dist/cygrunsrv/cygrunsrv-1.62-1.hint b/testsuite/download/git/hints/cygrunsrv-1.62-1.x86_64/dist/cygrunsrv/cygrunsrv-1.62-1-x86_64.hint
similarity index 100%
rename from testsuite/download/git/hints/cygrunsrv-1.62-1.x86_64/dist/cygrunsrv/cygrunsrv-1.62-1.hint
rename to testsuite/download/git/hints/cygrunsrv-1.62-1.x86_64/dist/cygrunsrv/cygrunsrv-1.62-1-x86_64.hint
diff --git a/testsuite/download/gnome.org/hints/gnome-common-3.18.0-1.noarch/dist/gnome-common/gnome-common-3.18.0-1.hint b/testsuite/download/gnome.org/hints/gnome-common-3.18.0-1.noarch/dist/gnome-common/gnome-common-3.18.0-1-noarch.hint
similarity index 100%
rename from testsuite/download/gnome.org/hints/gnome-common-3.18.0-1.noarch/dist/gnome-common/gnome-common-3.18.0-1.hint
rename to testsuite/download/gnome.org/hints/gnome-common-3.18.0-1.noarch/dist/gnome-common/gnome-common-3.18.0-1-noarch.hint
diff --git a/testsuite/download/mate/hints/mate-common-1.18.0-1.noarch/dist/mate-common/mate-common-1.18.0-1.hint b/testsuite/download/mate/hints/mate-common-1.18.0-1.noarch/dist/mate-common/mate-common-1.18.0-1-noarch.hint
similarity index 100%
rename from testsuite/download/mate/hints/mate-common-1.18.0-1.noarch/dist/mate-common/mate-common-1.18.0-1.hint
rename to testsuite/download/mate/hints/mate-common-1.18.0-1.noarch/dist/mate-common/mate-common-1.18.0-1-noarch.hint
diff --git a/testsuite/download/mtn/hints/viewmtn-0.10-1.noarch/dist/viewmtn/viewmtn-0.10-1.hint b/testsuite/download/mtn/hints/viewmtn-0.10-1.noarch/dist/viewmtn/viewmtn-0.10-1-noarch.hint
similarity index 100%
rename from testsuite/download/mtn/hints/viewmtn-0.10-1.noarch/dist/viewmtn/viewmtn-0.10-1.hint
rename to testsuite/download/mtn/hints/viewmtn-0.10-1.noarch/dist/viewmtn/viewmtn-0.10-1-noarch.hint
diff --git a/testsuite/download/perl/hints/perl-Text-Glob-0.11-1.noarch/dist/perl-Text-Glob/perl-Text-Glob-0.11-1.hint b/testsuite/download/perl/hints/perl-Text-Glob-0.11-1.noarch/dist/perl-Text-Glob/perl-Text-Glob-0.11-1-noarch.hint
similarity index 100%
rename from testsuite/download/perl/hints/perl-Text-Glob-0.11-1.noarch/dist/perl-Text-Glob/perl-Text-Glob-0.11-1.hint
rename to testsuite/download/perl/hints/perl-Text-Glob-0.11-1.noarch/dist/perl-Text-Glob/perl-Text-Glob-0.11-1-noarch.hint
diff --git a/testsuite/download/python.org/hints/python-six-1.10.0-1.noarch/dist/python-six/python-six-1.10.0-1.hint b/testsuite/download/python.org/hints/python-six-1.10.0-1.noarch/dist/python-six/python-six-1.10.0-1-noarch.hint
similarity index 100%
rename from testsuite/download/python.org/hints/python-six-1.10.0-1.noarch/dist/python-six/python-six-1.10.0-1.hint
rename to testsuite/download/python.org/hints/python-six-1.10.0-1.noarch/dist/python-six/python-six-1.10.0-1-noarch.hint
diff --git a/testsuite/download/svn/hints/unfs3-0.9.23-0.1.20151008git.x86_64/dist/unfs3/unfs3-0.9.23-0.1.20151008git.hint b/testsuite/download/svn/hints/unfs3-0.9.23-0.1.20151008git.x86_64/dist/unfs3/unfs3-0.9.23-0.1.20151008git-x86_64.hint
similarity index 100%
rename from testsuite/download/svn/hints/unfs3-0.9.23-0.1.20151008git.x86_64/dist/unfs3/unfs3-0.9.23-0.1.20151008git.hint
rename to testsuite/download/svn/hints/unfs3-0.9.23-0.1.20151008git.x86_64/dist/unfs3/unfs3-0.9.23-0.1.20151008git-x86_64.hint
diff --git a/testsuite/download/svn/hints/unfs3-0.9.23-0.1.20151008git.x86_64/dist/unfs3/unfs3-debuginfo/unfs3-debuginfo-0.9.23-0.1.20151008git.hint b/testsuite/download/svn/hints/unfs3-0.9.23-0.1.20151008git.x86_64/dist/unfs3/unfs3-debuginfo/unfs3-debuginfo-0.9.23-0.1.20151008git-x86_64.hint
similarity index 100%
rename from testsuite/download/svn/hints/unfs3-0.9.23-0.1.20151008git.x86_64/dist/unfs3/unfs3-debuginfo/unfs3-debuginfo-0.9.23-0.1.20151008git.hint
rename to testsuite/download/svn/hints/unfs3-0.9.23-0.1.20151008git.x86_64/dist/unfs3/unfs3-debuginfo/unfs3-debuginfo-0.9.23-0.1.20151008git-x86_64.hint
diff --git a/testsuite/download/x.org/hints/xorg-util-macros-1.19.1-1.noarch/dist/xorg-util-macros/xorg-util-macros-1.19.1-1.hint b/testsuite/download/x.org/hints/xorg-util-macros-1.19.1-1.noarch/dist/xorg-util-macros/xorg-util-macros-1.19.1-1-noarch.hint
similarity index 100%
rename from testsuite/download/x.org/hints/xorg-util-macros-1.19.1-1.noarch/dist/xorg-util-macros/xorg-util-macros-1.19.1-1.hint
rename to testsuite/download/x.org/hints/xorg-util-macros-1.19.1-1.noarch/dist/xorg-util-macros/xorg-util-macros-1.19.1-1-noarch.hint
diff --git a/testsuite/files/xinit/hints/xinit-1.4.2-2.x86_64/dist/xinit/xinit-1.4.2-2.hint b/testsuite/files/xinit/hints/xinit-1.4.2-2.x86_64/dist/xinit/xinit-1.4.2-2-x86_64.hint
similarity index 100%
rename from testsuite/files/xinit/hints/xinit-1.4.2-2.x86_64/dist/xinit/xinit-1.4.2-2.hint
rename to testsuite/files/xinit/hints/xinit-1.4.2-2.x86_64/dist/xinit/xinit-1.4.2-2-x86_64.hint
diff --git a/testsuite/files/xinit/hints/xinit-1.4.2-2.x86_64/dist/xinit/xinit-debuginfo/xinit-debuginfo-1.4.2-2.hint b/testsuite/files/xinit/hints/xinit-1.4.2-2.x86_64/dist/xinit/xinit-debuginfo/xinit-debuginfo-1.4.2-2-x86_64.hint
similarity index 100%
rename from testsuite/files/xinit/hints/xinit-1.4.2-2.x86_64/dist/xinit/xinit-debuginfo/xinit-debuginfo-1.4.2-2.hint
rename to testsuite/files/xinit/hints/xinit-1.4.2-2.x86_64/dist/xinit/xinit-debuginfo/xinit-debuginfo-1.4.2-2-x86_64.hint
diff --git a/testsuite/font/install/hints/sj-fonts-2.0.2-2.noarch/dist/sj-fonts/sj-fonts-2.0.2-2.hint b/testsuite/font/install/hints/sj-fonts-2.0.2-2.noarch/dist/sj-fonts/sj-fonts-2.0.2-2-noarch.hint
similarity index 100%
rename from testsuite/font/install/hints/sj-fonts-2.0.2-2.noarch/dist/sj-fonts/sj-fonts-2.0.2-2.hint
rename to testsuite/font/install/hints/sj-fonts-2.0.2-2.noarch/dist/sj-fonts/sj-fonts-2.0.2-2-noarch.hint
diff --git a/testsuite/font/sfd2ttf/hints/inconsolata-fonts-1.010-1.noarch/dist/inconsolata-fonts/inconsolata-fonts-1.010-1.hint b/testsuite/font/sfd2ttf/hints/inconsolata-fonts-1.010-1.noarch/dist/inconsolata-fonts/inconsolata-fonts-1.010-1-noarch.hint
similarity index 100%
rename from testsuite/font/sfd2ttf/hints/inconsolata-fonts-1.010-1.noarch/dist/inconsolata-fonts/inconsolata-fonts-1.010-1.hint
rename to testsuite/font/sfd2ttf/hints/inconsolata-fonts-1.010-1.noarch/dist/inconsolata-fonts/inconsolata-fonts-1.010-1-noarch.hint
diff --git a/testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/libmultiple-devel/libmultiple-devel-3.14-1.hint b/testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/libmultiple-devel/libmultiple-devel-3.14-1-x86_64.hint
similarity index 100%
rename from testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/libmultiple-devel/libmultiple-devel-3.14-1.hint
rename to testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/libmultiple-devel/libmultiple-devel-3.14-1-x86_64.hint
diff --git a/testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/libmultiple1/libmultiple1-3.14-1.hint b/testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/libmultiple1/libmultiple1-3.14-1-x86_64.hint
similarity index 100%
rename from testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/libmultiple1/libmultiple1-3.14-1.hint
rename to testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/libmultiple1/libmultiple1-3.14-1-x86_64.hint
diff --git a/testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/multiple-3.14-1.hint b/testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/multiple-3.14-1-x86_64.hint
similarity index 100%
rename from testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/multiple-3.14-1.hint
rename to testsuite/hints/multiple/hints/multiple-3.14-1.x86_64/dist/multiple/multiple-3.14-1-x86_64.hint
diff --git a/testsuite/hints/single/hints/single-2.3.4-1.x86_64/dist/single/single-2.3.4-1.hint b/testsuite/hints/single/hints/single-2.3.4-1.x86_64/dist/single/single-2.3.4-1-x86_64.hint
similarity index 100%
rename from testsuite/hints/single/hints/single-2.3.4-1.x86_64/dist/single/single-2.3.4-1.hint
rename to testsuite/hints/single/hints/single-2.3.4-1.x86_64/dist/single/single-2.3.4-1-x86_64.hint
diff --git a/testsuite/httpd/apxs/hints/httpd-mod_geoip-1.2.10-1.x86_64/dist/httpd-mod_geoip/httpd-mod_geoip-1.2.10-1.hint b/testsuite/httpd/apxs/hints/httpd-mod_geoip-1.2.10-1.x86_64/dist/httpd-mod_geoip/httpd-mod_geoip-1.2.10-1-x86_64.hint
similarity index 100%
rename from testsuite/httpd/apxs/hints/httpd-mod_geoip-1.2.10-1.x86_64/dist/httpd-mod_geoip/httpd-mod_geoip-1.2.10-1.hint
rename to testsuite/httpd/apxs/hints/httpd-mod_geoip-1.2.10-1.x86_64/dist/httpd-mod_geoip/httpd-mod_geoip-1.2.10-1-x86_64.hint
diff --git a/testsuite/httpd/apxs/hints/httpd-mod_geoip-1.2.10-1.x86_64/dist/httpd-mod_geoip/httpd-mod_geoip-debuginfo/httpd-mod_geoip-debuginfo-1.2.10-1.hint b/testsuite/httpd/apxs/hints/httpd-mod_geoip-1.2.10-1.x86_64/dist/httpd-mod_geoip/httpd-mod_geoip-debuginfo/httpd-mod_geoip-debuginfo-1.2.10-1-x86_64.hint
similarity index 100%
rename from testsuite/httpd/apxs/hints/httpd-mod_geoip-1.2.10-1.x86_64/dist/httpd-mod_geoip/httpd-mod_geoip-debuginfo/httpd-mod_geoip-debuginfo-1.2.10-1.hint
rename to testsuite/httpd/apxs/hints/httpd-mod_geoip-1.2.10-1.x86_64/dist/httpd-mod_geoip/httpd-mod_geoip-debuginfo/httpd-mod_geoip-debuginfo-1.2.10-1-x86_64.hint
diff --git a/testsuite/lua/all/hints/lua-lfs-1.8.0-1.x86_64/dist/lua-lfs/lua-lfs-1.8.0-1.hint b/testsuite/lua/all/hints/lua-lfs-1.8.0-1.x86_64/dist/lua-lfs/lua-lfs-1.8.0-1-x86_64.hint
similarity index 100%
rename from testsuite/lua/all/hints/lua-lfs-1.8.0-1.x86_64/dist/lua-lfs/lua-lfs-1.8.0-1.hint
rename to testsuite/lua/all/hints/lua-lfs-1.8.0-1.x86_64/dist/lua-lfs/lua-lfs-1.8.0-1-x86_64.hint
diff --git a/testsuite/lua/all/hints/lua-lfs-1.8.0-1.x86_64/dist/lua-lfs/lua-lfs-debuginfo/lua-lfs-debuginfo-1.8.0-1.hint b/testsuite/lua/all/hints/lua-lfs-1.8.0-1.x86_64/dist/lua-lfs/lua-lfs-debuginfo/lua-lfs-debuginfo-1.8.0-1-x86_64.hint
similarity index 100%
rename from testsuite/lua/all/hints/lua-lfs-1.8.0-1.x86_64/dist/lua-lfs/lua-lfs-debuginfo/lua-lfs-debuginfo-1.8.0-1.hint
rename to testsuite/lua/all/hints/lua-lfs-1.8.0-1.x86_64/dist/lua-lfs/lua-lfs-debuginfo/lua-lfs-debuginfo-1.8.0-1-x86_64.hint
diff --git a/testsuite/meson/c/hints/login-1.13-1.x86_64/dist/login/login-1.13-1.hint b/testsuite/meson/c/hints/login-1.13-1.x86_64/dist/login/login-1.13-1-x86_64.hint
similarity index 100%
rename from testsuite/meson/c/hints/login-1.13-1.x86_64/dist/login/login-1.13-1.hint
rename to testsuite/meson/c/hints/login-1.13-1.x86_64/dist/login/login-1.13-1-x86_64.hint
diff --git a/testsuite/meson/c/hints/login-1.13-1.x86_64/dist/login/login-debuginfo/login-debuginfo-1.13-1.hint b/testsuite/meson/c/hints/login-1.13-1.x86_64/dist/login/login-debuginfo/login-debuginfo-1.13-1-x86_64.hint
similarity index 100%
rename from testsuite/meson/c/hints/login-1.13-1.x86_64/dist/login/login-debuginfo/login-debuginfo-1.13-1.hint
rename to testsuite/meson/c/hints/login-1.13-1.x86_64/dist/login/login-debuginfo/login-debuginfo-1.13-1-x86_64.hint
diff --git a/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/girepository-Json1.0/girepository-Json1.0-1.4.2-1.hint b/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/girepository-Json1.0/girepository-Json1.0-1.4.2-1-x86_64.hint
similarity index 65%
rename from testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/girepository-Json1.0/girepository-Json1.0-1.4.2-1.hint
rename to testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/girepository-Json1.0/girepository-Json1.0-1.4.2-1-x86_64.hint
index 2769bc00..2f9fc5b5 100644
--- a/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/girepository-Json1.0/girepository-Json1.0-1.4.2-1.hint
+++ b/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/girepository-Json1.0/girepository-Json1.0-1.4.2-1-x86_64.hint
@@ -1,5 +1,5 @@
 category: Libs
-requires: girepository-GLib2.0 libjson-glib1.0_0
+requires: girepository-GLib2.0 libglib2.0-devel libjson-glib1.0_0
 sdesc: "GObject JSON parser library"
 ldesc: "GLib JSON manipulation library"
 external-source: json-glib1.0
diff --git a/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/json-glib1.0-1.4.2-1.hint b/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/json-glib1.0-1.4.2-1-x86_64.hint
similarity index 100%
rename from testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/json-glib1.0-1.4.2-1.hint
rename to testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/json-glib1.0-1.4.2-1-x86_64.hint
diff --git a/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/json-glib1.0-debuginfo/json-glib1.0-debuginfo-1.4.2-1.hint b/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/json-glib1.0-debuginfo/json-glib1.0-debuginfo-1.4.2-1-x86_64.hint
similarity index 100%
rename from testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/json-glib1.0-debuginfo/json-glib1.0-debuginfo-1.4.2-1.hint
rename to testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/json-glib1.0-debuginfo/json-glib1.0-debuginfo-1.4.2-1-x86_64.hint
diff --git a/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0-devel/libjson-glib1.0-devel-1.4.2-1.hint b/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0-devel/libjson-glib1.0-devel-1.4.2-1-x86_64.hint
similarity index 100%
rename from testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0-devel/libjson-glib1.0-devel-1.4.2-1.hint
rename to testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0-devel/libjson-glib1.0-devel-1.4.2-1-x86_64.hint
diff --git a/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0-doc/libjson-glib1.0-doc-1.4.2-1.hint b/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0-doc/libjson-glib1.0-doc-1.4.2-1-x86_64.hint
similarity index 100%
rename from testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0-doc/libjson-glib1.0-doc-1.4.2-1.hint
rename to testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0-doc/libjson-glib1.0-doc-1.4.2-1-x86_64.hint
diff --git a/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0_0/libjson-glib1.0_0-1.4.2-1.hint b/testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0_0/libjson-glib1.0_0-1.4.2-1-x86_64.hint
similarity index 100%
rename from testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0_0/libjson-glib1.0_0-1.4.2-1.hint
rename to testsuite/meson/gnome/hints/json-glib1.0-1.4.2-1.x86_64/dist/json-glib1.0/libjson-glib1.0_0/libjson-glib1.0_0-1.4.2-1-x86_64.hint
diff --git a/testsuite/ocaml/dune/hints/ocaml-result-1.5-1.x86_64/dist/ocaml-result/ocaml-result-1.5-1.hint b/testsuite/ocaml/dune/hints/ocaml-result-1.5-1.x86_64/dist/ocaml-result/ocaml-result-1.5-1-x86_64.hint
similarity index 100%
rename from testsuite/ocaml/dune/hints/ocaml-result-1.5-1.x86_64/dist/ocaml-result/ocaml-result-1.5-1.hint
rename to testsuite/ocaml/dune/hints/ocaml-result-1.5-1.x86_64/dist/ocaml-result/ocaml-result-1.5-1-x86_64.hint
diff --git a/testsuite/ocaml/findlib/hints/ocaml-expat-0.9.1-6.x86_64/dist/ocaml-expat/ocaml-expat-0.9.1-6.hint b/testsuite/ocaml/findlib/hints/ocaml-expat-0.9.1-6.x86_64/dist/ocaml-expat/ocaml-expat-0.9.1-6-x86_64.hint
similarity index 100%
rename from testsuite/ocaml/findlib/hints/ocaml-expat-0.9.1-6.x86_64/dist/ocaml-expat/ocaml-expat-0.9.1-6.hint
rename to testsuite/ocaml/findlib/hints/ocaml-expat-0.9.1-6.x86_64/dist/ocaml-expat/ocaml-expat-0.9.1-6-x86_64.hint
diff --git a/testsuite/perl/ExtUtils-MakeMaker/hints/perl-Carp-1.38-1.noarch/dist/perl-Carp/perl-Carp-1.38-1.hint b/testsuite/perl/ExtUtils-MakeMaker/hints/perl-Carp-1.38-1.noarch/dist/perl-Carp/perl-Carp-1.38-1-noarch.hint
similarity index 88%
rename from testsuite/perl/ExtUtils-MakeMaker/hints/perl-Carp-1.38-1.noarch/dist/perl-Carp/perl-Carp-1.38-1.hint
rename to testsuite/perl/ExtUtils-MakeMaker/hints/perl-Carp-1.38-1.noarch/dist/perl-Carp/perl-Carp-1.38-1-noarch.hint
index a63ee913..06e30d30 100644
--- a/testsuite/perl/ExtUtils-MakeMaker/hints/perl-Carp-1.38-1.noarch/dist/perl-Carp/perl-Carp-1.38-1.hint
+++ b/testsuite/perl/ExtUtils-MakeMaker/hints/perl-Carp-1.38-1.noarch/dist/perl-Carp/perl-Carp-1.38-1-noarch.hint
@@ -1,5 +1,5 @@
 category: Perl
-requires: perl5_036 perl_base
+requires: perl5_040 perl_base
 sdesc: "Perl Carp distribution"
 ldesc: "The Carp routines are useful in your own modules because they act
 like die() or warn(), but with a message which is more likely to be useful
diff --git a/testsuite/perl/ExtUtils-MakeMaker/perl-Carp.list b/testsuite/perl/ExtUtils-MakeMaker/perl-Carp.list
index 0354e922..79a924b2 100644
--- a/testsuite/perl/ExtUtils-MakeMaker/perl-Carp.list
+++ b/testsuite/perl/ExtUtils-MakeMaker/perl-Carp.list
@@ -1,5 +1,5 @@
 /usr/share/doc/perl-Carp/Changes
 /usr/share/doc/perl-Carp/README
 /usr/share/man/man3/Carp.3pm.gz
-/usr/share/perl5/vendor_perl/5.36/Carp.pm
-/usr/share/perl5/vendor_perl/5.36/Carp/Heavy.pm
+/usr/share/perl5/vendor_perl/5.40/Carp.pm
+/usr/share/perl5/vendor_perl/5.40/Carp/Heavy.pm
diff --git a/testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-1.01-1.hint b/testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-1.01-1-x86_64.hint
similarity index 84%
rename from testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-1.01-1.hint
rename to testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-1.01-1-x86_64.hint
index 147b0b08..b4045ff3 100644
--- a/testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-1.01-1.hint
+++ b/testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-1.01-1-x86_64.hint
@@ -1,5 +1,5 @@
 category: Perl
-requires: cygwin libgcc1 perl5_036 perl_base
+requires: cygwin libgcc1 perl5_040 perl_base
 sdesc: "Perl Lchown distribution"
 ldesc: "The Lchown module provides a perl interface to the lchown(2) UNIX
 system call, on systems that support lchown.  The lchown(2) call is used to
diff --git a/testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-debuginfo/perl-Lchown-debuginfo-1.01-1.hint b/testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-debuginfo/perl-Lchown-debuginfo-1.01-1-x86_64.hint
similarity index 100%
rename from testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-debuginfo/perl-Lchown-debuginfo-1.01-1.hint
rename to testsuite/perl/Module-Build/hints/perl-Lchown-1.01-1.x86_64/dist/perl-Lchown/perl-Lchown-debuginfo/perl-Lchown-debuginfo-1.01-1-x86_64.hint
diff --git a/testsuite/perl/Module-Build/perl-Lchown.list b/testsuite/perl/Module-Build/perl-Lchown.list
index 423b7ecd..ca5a1fd4 100644
--- a/testsuite/perl/Module-Build/perl-Lchown.list
+++ b/testsuite/perl/Module-Build/perl-Lchown.list
@@ -1,6 +1,6 @@
-/usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/Lchown.pm
-/usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/auto/Lchown/Lchown.bs
-/usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/auto/Lchown/Lchown.dll
+/usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/Lchown.pm
+/usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/auto/Lchown/Lchown.bs
+/usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/auto/Lchown/Lchown.dll
 /usr/share/doc/perl-Lchown/Changes
 /usr/share/doc/perl-Lchown/README
 /usr/share/doc/perl/html/html3/site/lib/Lchown.html
diff --git a/testsuite/php/pear/hints/php-Structures_Graph-1.1.1-1.noarch/dist/php-Structures_Graph/php-Structures_Graph-1.1.1-1.hint b/testsuite/php/pear/hints/php-Structures_Graph-1.1.1-1.noarch/dist/php-Structures_Graph/php-Structures_Graph-1.1.1-1-noarch.hint
similarity index 100%
rename from testsuite/php/pear/hints/php-Structures_Graph-1.1.1-1.noarch/dist/php-Structures_Graph/php-Structures_Graph-1.1.1-1.hint
rename to testsuite/php/pear/hints/php-Structures_Graph-1.1.1-1.noarch/dist/php-Structures_Graph/php-Structures_Graph-1.1.1-1-noarch.hint
diff --git a/testsuite/php/pecl/hints/php-bitset-3.0.1-1.x86_64/dist/php-bitset/php-bitset-3.0.1-1.hint b/testsuite/php/pecl/hints/php-bitset-3.0.1-1.x86_64/dist/php-bitset/php-bitset-3.0.1-1-x86_64.hint
similarity index 100%
rename from testsuite/php/pecl/hints/php-bitset-3.0.1-1.x86_64/dist/php-bitset/php-bitset-3.0.1-1.hint
rename to testsuite/php/pecl/hints/php-bitset-3.0.1-1.x86_64/dist/php-bitset/php-bitset-3.0.1-1-x86_64.hint
diff --git a/testsuite/php/pecl/hints/php-bitset-3.0.1-1.x86_64/dist/php-bitset/php-bitset-debuginfo/php-bitset-debuginfo-3.0.1-1.hint b/testsuite/php/pecl/hints/php-bitset-3.0.1-1.x86_64/dist/php-bitset/php-bitset-debuginfo/php-bitset-debuginfo-3.0.1-1-x86_64.hint
similarity index 100%
rename from testsuite/php/pecl/hints/php-bitset-3.0.1-1.x86_64/dist/php-bitset/php-bitset-debuginfo/php-bitset-debuginfo-3.0.1-1.hint
rename to testsuite/php/pecl/hints/php-bitset-3.0.1-1.x86_64/dist/php-bitset/php-bitset-debuginfo/php-bitset-debuginfo-3.0.1-1-x86_64.hint
diff --git a/testsuite/python/distutils/hints/python3-beautifulsoup-4.11.1-1.x86_64/dist/python3-beautifulsoup/python3-beautifulsoup-4.11.1-1.hint b/testsuite/python/distutils/hints/python3-beautifulsoup-4.11.1-1.x86_64/dist/python3-beautifulsoup/python3-beautifulsoup-4.11.1-1-x86_64.hint
similarity index 88%
rename from testsuite/python/distutils/hints/python3-beautifulsoup-4.11.1-1.x86_64/dist/python3-beautifulsoup/python3-beautifulsoup-4.11.1-1.hint
rename to testsuite/python/distutils/hints/python3-beautifulsoup-4.11.1-1.x86_64/dist/python3-beautifulsoup/python3-beautifulsoup-4.11.1-1-x86_64.hint
index c0dec61a..fd4568ab 100644
--- a/testsuite/python/distutils/hints/python3-beautifulsoup-4.11.1-1.x86_64/dist/python3-beautifulsoup/python3-beautifulsoup-4.11.1-1.hint
+++ b/testsuite/python/distutils/hints/python3-beautifulsoup-4.11.1-1.x86_64/dist/python3-beautifulsoup/python3-beautifulsoup-4.11.1-1-x86_64.hint
@@ -1,5 +1,5 @@
 category: Python
-requires: python38 python38-pytest
+requires: python39 python39-pytest
 sdesc: "Python HTML/XML parser"
 ldesc: "Beautiful Soup is a Python HTML/XML parser designed for quick
 turnaround projects like screen-scraping. Beautiful Soup parses anything you
diff --git a/testsuite/python/distutils/python-beautifulsoup.list b/testsuite/python/distutils/python-beautifulsoup.list
index b0922eb7..3fc2a0ce 100644
--- a/testsuite/python/distutils/python-beautifulsoup.list
+++ b/testsuite/python/distutils/python-beautifulsoup.list
@@ -1,104 +1,104 @@
-/usr/lib/python3.8/site-packages/beautifulsoup4-4.11.1-py3.8.egg-info/PKG-INFO
-/usr/lib/python3.8/site-packages/beautifulsoup4-4.11.1-py3.8.egg-info/SOURCES.txt
-/usr/lib/python3.8/site-packages/beautifulsoup4-4.11.1-py3.8.egg-info/dependency_links.txt
-/usr/lib/python3.8/site-packages/beautifulsoup4-4.11.1-py3.8.egg-info/requires.txt
-/usr/lib/python3.8/site-packages/beautifulsoup4-4.11.1-py3.8.egg-info/top_level.txt
-/usr/lib/python3.8/site-packages/bs4/__init__.py
-/usr/lib/python3.8/site-packages/bs4/__pycache__/__init__.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/__init__.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/__init__.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/dammit.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/dammit.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/dammit.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/diagnose.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/diagnose.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/diagnose.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/element.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/element.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/element.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/formatter.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/formatter.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/__pycache__/formatter.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__init__.py
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/__init__.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/__init__.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/__init__.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_html5lib.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_html5lib.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_html5lib.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_lxml.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_lxml.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/__pycache__/_lxml.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/builder/_html5lib.py
-/usr/lib/python3.8/site-packages/bs4/builder/_htmlparser.py
-/usr/lib/python3.8/site-packages/bs4/builder/_lxml.py
-/usr/lib/python3.8/site-packages/bs4/dammit.py
-/usr/lib/python3.8/site-packages/bs4/diagnose.py
-/usr/lib/python3.8/site-packages/bs4/element.py
-/usr/lib/python3.8/site-packages/bs4/formatter.py
-/usr/lib/python3.8/site-packages/bs4/tests/__init__.py
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/__init__.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/__init__.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/__init__.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_builder.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_builder.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_builder.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_dammit.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_dammit.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_dammit.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_docs.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_docs.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_docs.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_element.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_element.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_element.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_formatter.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_formatter.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_formatter.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_htmlparser.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_htmlparser.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_htmlparser.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_lxml.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_lxml.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_lxml.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_soup.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_soup.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_soup.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_tag.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_tag.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_tag.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_tree.cpython-38.opt-1.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_tree.cpython-38.opt-2.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/__pycache__/test_tree.cpython-38.pyc
-/usr/lib/python3.8/site-packages/bs4/tests/test_builder.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_builder_registry.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_dammit.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_docs.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_element.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_formatter.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_html5lib.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_htmlparser.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_lxml.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_navigablestring.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_pageelement.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_soup.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_tag.py
-/usr/lib/python3.8/site-packages/bs4/tests/test_tree.py
+/usr/lib/python3.9/site-packages/beautifulsoup4-4.11.1-py3.9.egg-info/PKG-INFO
+/usr/lib/python3.9/site-packages/beautifulsoup4-4.11.1-py3.9.egg-info/SOURCES.txt
+/usr/lib/python3.9/site-packages/beautifulsoup4-4.11.1-py3.9.egg-info/dependency_links.txt
+/usr/lib/python3.9/site-packages/beautifulsoup4-4.11.1-py3.9.egg-info/requires.txt
+/usr/lib/python3.9/site-packages/beautifulsoup4-4.11.1-py3.9.egg-info/top_level.txt
+/usr/lib/python3.9/site-packages/bs4/__init__.py
+/usr/lib/python3.9/site-packages/bs4/__pycache__/__init__.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/__init__.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/__init__.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/dammit.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/dammit.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/dammit.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/diagnose.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/diagnose.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/diagnose.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/element.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/element.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/element.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/formatter.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/formatter.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/__pycache__/formatter.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__init__.py
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/__init__.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/__init__.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/__init__.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_html5lib.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_html5lib.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_html5lib.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_lxml.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_lxml.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/__pycache__/_lxml.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/builder/_html5lib.py
+/usr/lib/python3.9/site-packages/bs4/builder/_htmlparser.py
+/usr/lib/python3.9/site-packages/bs4/builder/_lxml.py
+/usr/lib/python3.9/site-packages/bs4/dammit.py
+/usr/lib/python3.9/site-packages/bs4/diagnose.py
+/usr/lib/python3.9/site-packages/bs4/element.py
+/usr/lib/python3.9/site-packages/bs4/formatter.py
+/usr/lib/python3.9/site-packages/bs4/tests/__init__.py
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/__init__.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/__init__.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/__init__.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_builder.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_builder.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_builder.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_builder_registry.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_dammit.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_dammit.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_dammit.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_docs.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_docs.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_docs.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_element.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_element.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_element.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_formatter.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_formatter.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_formatter.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_html5lib.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_htmlparser.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_htmlparser.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_htmlparser.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_lxml.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_lxml.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_lxml.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_navigablestring.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_pageelement.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_soup.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_soup.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_soup.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_tag.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_tag.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_tag.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_tree.cpython-39.opt-1.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_tree.cpython-39.opt-2.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/__pycache__/test_tree.cpython-39.pyc
+/usr/lib/python3.9/site-packages/bs4/tests/test_builder.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_builder_registry.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_dammit.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_docs.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_element.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_formatter.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_html5lib.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_htmlparser.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_lxml.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_navigablestring.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_pageelement.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_soup.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_tag.py
+/usr/lib/python3.9/site-packages/bs4/tests/test_tree.py
 /usr/share/doc/python3-beautifulsoup/COPYING.txt
 /usr/share/doc/python3-beautifulsoup/LICENSE
 /usr/share/doc/python3-beautifulsoup/NEWS.txt
diff --git a/testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python3-clang/python3-clang-9.0.1-1.hint b/testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python3-clang/python3-clang-9.0.1-1-noarch.hint
similarity index 100%
rename from testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python3-clang/python3-clang-9.0.1-1.hint
rename to testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python3-clang/python3-clang-9.0.1-1-noarch.hint
diff --git a/testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python38-clang/python38-clang-9.0.1-1.hint b/testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python38-clang/python38-clang-9.0.1-1-noarch.hint
similarity index 100%
rename from testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python38-clang/python38-clang-9.0.1-1.hint
rename to testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python38-clang/python38-clang-9.0.1-1-noarch.hint
diff --git a/testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python39-clang/python39-clang-9.0.1-1.hint b/testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python39-clang/python39-clang-9.0.1-1-noarch.hint
similarity index 100%
rename from testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python39-clang/python39-clang-9.0.1-1.hint
rename to testsuite/python/python-clang/hints/python-clang-9.0.1-1.noarch/dist/python-clang/python39-clang/python39-clang-9.0.1-1-noarch.hint
diff --git a/testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python-six-wheel/python-six-wheel-1.10.0-1.hint b/testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python-six-wheel/python-six-wheel-1.10.0-1-noarch.hint
similarity index 100%
rename from testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python-six-wheel/python-six-wheel-1.10.0-1.hint
rename to testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python-six-wheel/python-six-wheel-1.10.0-1-noarch.hint
diff --git a/testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python37-six/python37-six-1.10.0-1.hint b/testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python37-six/python37-six-1.10.0-1-noarch.hint
similarity index 100%
rename from testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python37-six/python37-six-1.10.0-1.hint
rename to testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python37-six/python37-six-1.10.0-1-noarch.hint
diff --git a/testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python38-six/python38-six-1.10.0-1.hint b/testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python38-six/python38-six-1.10.0-1-noarch.hint
similarity index 100%
rename from testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python38-six/python38-six-1.10.0-1.hint
rename to testsuite/python/wheel/hints/python-six-1.10.0-1.noarch/dist/python-six/python38-six/python38-six-1.10.0-1-noarch.hint
diff --git a/testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/libqoauth-devel/libqoauth-devel-2.0.0-1.hint b/testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/libqoauth-devel/libqoauth-devel-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/libqoauth-devel/libqoauth-devel-2.0.0-1.hint
rename to testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/libqoauth-devel/libqoauth-devel-2.0.0-1-x86_64.hint
diff --git a/testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/libqoauth1/libqoauth1-2.0.0-1.hint b/testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/libqoauth1/libqoauth1-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/libqoauth1/libqoauth1-2.0.0-1.hint
rename to testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/libqoauth1/libqoauth1-2.0.0-1-x86_64.hint
diff --git a/testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/qoauth-debuginfo/qoauth-debuginfo-2.0.0-1.hint b/testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/qoauth-debuginfo/qoauth-debuginfo-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/qoauth-debuginfo/qoauth-debuginfo-2.0.0-1.hint
rename to testsuite/qmake/qt4/hints/qoauth-2.0.0-1.x86_64/dist/qoauth/qoauth-debuginfo/qoauth-debuginfo-2.0.0-1-x86_64.hint
diff --git a/testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/libqoauth-qt5-devel/libqoauth-qt5-devel-2.0.0-1.hint b/testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/libqoauth-qt5-devel/libqoauth-qt5-devel-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/libqoauth-qt5-devel/libqoauth-qt5-devel-2.0.0-1.hint
rename to testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/libqoauth-qt5-devel/libqoauth-qt5-devel-2.0.0-1-x86_64.hint
diff --git a/testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/libqoauth-qt5_1/libqoauth-qt5_1-2.0.0-1.hint b/testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/libqoauth-qt5_1/libqoauth-qt5_1-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/libqoauth-qt5_1/libqoauth-qt5_1-2.0.0-1.hint
rename to testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/libqoauth-qt5_1/libqoauth-qt5_1-2.0.0-1-x86_64.hint
diff --git a/testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/qoauth-qt5-debuginfo/qoauth-qt5-debuginfo-2.0.0-1.hint b/testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/qoauth-qt5-debuginfo/qoauth-qt5-debuginfo-2.0.0-1-x86_64.hint
similarity index 100%
rename from testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/qoauth-qt5-debuginfo/qoauth-qt5-debuginfo-2.0.0-1.hint
rename to testsuite/qmake/qt5/hints/qoauth-qt5-2.0.0-1.x86_64/dist/qoauth-qt5/qoauth-qt5-debuginfo/qoauth-qt5-debuginfo-2.0.0-1-x86_64.hint
diff --git a/testsuite/ruby/gem/hints/ruby-rack-ssl-1.4.1-1.noarch/dist/ruby-rack-ssl/ruby-rack-ssl-1.4.1-1.hint b/testsuite/ruby/gem/hints/ruby-rack-ssl-1.4.1-1.noarch/dist/ruby-rack-ssl/ruby-rack-ssl-1.4.1-1-noarch.hint
similarity index 100%
rename from testsuite/ruby/gem/hints/ruby-rack-ssl-1.4.1-1.noarch/dist/ruby-rack-ssl/ruby-rack-ssl-1.4.1-1.hint
rename to testsuite/ruby/gem/hints/ruby-rack-ssl-1.4.1-1.noarch/dist/ruby-rack-ssl/ruby-rack-ssl-1.4.1-1-noarch.hint
diff --git a/testsuite/ruby/gem/hints/ruby-rack-ssl-1.4.1-1.noarch/dist/ruby-rack-ssl/ruby-rack-ssl-doc/ruby-rack-ssl-doc-1.4.1-1.hint b/testsuite/ruby/gem/hints/ruby-rack-ssl-1.4.1-1.noarch/dist/ruby-rack-ssl/ruby-rack-ssl-doc/ruby-rack-ssl-doc-1.4.1-1-noarch.hint
similarity index 100%
rename from testsuite/ruby/gem/hints/ruby-rack-ssl-1.4.1-1.noarch/dist/ruby-rack-ssl/ruby-rack-ssl-doc/ruby-rack-ssl-doc-1.4.1-1.hint
rename to testsuite/ruby/gem/hints/ruby-rack-ssl-1.4.1-1.noarch/dist/ruby-rack-ssl/ruby-rack-ssl-doc/ruby-rack-ssl-doc-1.4.1-1-noarch.hint
diff --git a/testsuite/texlive/collection/hints/texlive-collection-genericrecommended-20160404-1.noarch/dist/texlive-collection-genericrecommended/texlive-collection-genericrecommended-20160404-1.hint b/testsuite/texlive/collection/hints/texlive-collection-genericrecommended-20160404-1.noarch/dist/texlive-collection-genericrecommended/texlive-collection-genericrecommended-20160404-1-noarch.hint
similarity index 100%
rename from testsuite/texlive/collection/hints/texlive-collection-genericrecommended-20160404-1.noarch/dist/texlive-collection-genericrecommended/texlive-collection-genericrecommended-20160404-1.hint
rename to testsuite/texlive/collection/hints/texlive-collection-genericrecommended-20160404-1.noarch/dist/texlive-collection-genericrecommended/texlive-collection-genericrecommended-20160404-1-noarch.hint
diff --git a/testsuite/waf/all/hints/lv2-1.18.4-1.x86_64/dist/lv2/lv2-1.18.4-1.hint b/testsuite/waf/all/hints/lv2-1.18.4-1.x86_64/dist/lv2/lv2-1.18.4-1-x86_64.hint
similarity index 100%
rename from testsuite/waf/all/hints/lv2-1.18.4-1.x86_64/dist/lv2/lv2-1.18.4-1.hint
rename to testsuite/waf/all/hints/lv2-1.18.4-1.x86_64/dist/lv2/lv2-1.18.4-1-x86_64.hint
diff --git a/testsuite/waf/all/hints/lv2-1.18.4-1.x86_64/dist/lv2/lv2-devel/lv2-devel-1.18.4-1.hint b/testsuite/waf/all/hints/lv2-1.18.4-1.x86_64/dist/lv2/lv2-devel/lv2-devel-1.18.4-1-x86_64.hint
similarity index 100%
rename from testsuite/waf/all/hints/lv2-1.18.4-1.x86_64/dist/lv2/lv2-devel/lv2-devel-1.18.4-1.hint
rename to testsuite/waf/all/hints/lv2-1.18.4-1.x86_64/dist/lv2/lv2-devel/lv2-devel-1.18.4-1-x86_64.hint
diff --git a/tools/debug-filelist-extract b/tools/debug-filelist-extract
new file mode 100755
index 00000000..bda04225
--- /dev/null
+++ b/tools/debug-filelist-extract
@@ -0,0 +1,74 @@
+#!perl -w
+#
+# Run 'objdump -Wl' to dump out the raw DWARF .debug_line section.
+#
+# Parse the human readable output to extract the list of source files
+#
+# Only output pathnames which match a filter string (the package source
+# directory, after file-prefix-map is taken into account), to omit unrelated
+# source files (e.g system headers and external libraries)
+#
+# N.B. DWARF v5 information is assumed
+#
+
+use common::sense;
+use List::Util qw( sum );
+
+my $debug = 0;
+
+my $filter = shift @ARGV
+    or die "not enough arguments";
+my $obj = shift @ARGV
+    or die "not enough arguments";
+
+my $objdump = $ENV{OBJDUMP} || "/usr/bin/objdump";
+open my $DWARF, "-|", $objdump, "-WNl", $obj
+    or die "can't invoke objdump\n$!";
+
+my ( @dirs, @files, %fn, %rn );
+
+# loop over multiple CUs
+while (<$DWARF>) {
+    # collect directory list
+    if (/^ The Directory Table/../^$/) {
+	if (/^  \d+/) {
+	    my ( $entry, $dir ) = m/^  (\d+)\t.+: (.+)$/;
+	    $dir = "$dirs[0]/$dir" if ($dir =~ m:^[^/]:);  # if relative, make absolute (using current directory in first entry)
+	    push @dirs, $dir;
+	}
+    }
+    # collect file list
+    if (/^ The File Name Table/../^$/) {
+	if (/^  \d+/) {
+	    my ( $idx, $fn ) = m/^  \d+\t(\d+)\t.+: (.+)$/;
+	    $rn{"$dirs[$idx]/$fn"}++;
+	    push @files, "$dirs[$idx]/$fn";  # prepend with directory name looked up by index
+	}
+    }
+    # line number statements
+    if (my $rc = /^ Line Number Statements/../^  Offset:/) {
+	$fn{"$files[0]"}++ if ($rc == 1);  # the first entry in the file name table is used by default
+	$fn{"$files[$1]"}++  if m/ Set File Name to entry (\d+) in the File Name Table/;
+	# reset file and directory lists for next CU at end of range
+	@files = () if ($rc =~ m/E0$/);
+	@dirs  = () if ($rc =~ m/E0$/);
+    }
+    if (/^ No Line Number Statements./../^$/) {
+	# ... also reset if there are no line number statements
+	@files = ();
+	@dirs  = ();
+    }
+}
+
+# output filenames matching filter
+foreach my $fn (grep m:^$filter:, sort keys %fn) {
+    say sprintf "%s", $fn;
+}
+
+say STDERR sprintf "\tLNS: %6d (%6d locations) <=> FNT: %6d ( %6d locations)",
+    0+grep( m:^$filter:, keys %fn ), sum( values %fn ),
+    0+grep( m:^$filter:, keys %rn ), sum( values %rn )
+    if ($debug);
+
+close $DWARF
+    or die "failed to close objdump\n$!";
diff --git a/tools/meson.build b/tools/meson.build
index acd83926..12211f7f 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -1,5 +1,6 @@
 tools = files(
     'deb2targz',
+    'debug-filelist-extract',
     'pkgrip',
     'sysrootize'
 )