[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1057346: qt6-base-dev-tools is wrongly marked Multi-Arch: foreign



Hi Sandro and Dmitry,

On Mon, Dec 04, 2023 at 12:27:39PM +0300, Dmitry Shachnev wrote:
> Wrapping qtpaths6 should be possible. It accepts --qtconf <path> option
> just like qmake.

I also had some talk with Sandro about this and this got me started on a
patch (attached). Once we have the wrapper, the next and more
significant question arises where to put it.

There are two basic requirements:
 1. The qtconf cross wrapper must end up in some package that is marked
    Multi-Arch: same.
 2. The package(s) that others depend on when they expect a working
    qtconf must be marked Multi-Arch: same.

At this time qtconf is installed to qt6-base-dev-tools and that is
marked Multi-Arch: foreign (violating 1). Despite qt6-base-dev-tools
saying that you should not depend on it, 22 packages do just that.
Presumably they do it for using qtpaths (violating 2). There is also
four binary packages that depend on it.

I see two paths forward and we need a lasting decision on which one to
take as either of them is non-trivial effort.

 A. Give up on marking qt6-base-dev-tools as an implementation detail
    and agree that the present use is ok. As a result, the package must
    be split and we get practically rename qt6-base-dev-tools into
    qt6-base-dev-tools-bin and then add a new qt6-base-dev-tools that
    ends up being Arch:any + M-A:same + D:qt6-base-dev-tools-bin and
    it contains very little beyond /usr/bin/<triplet>-qtpaths6. Also
    bear in mind that since the qt6.conf resides in the qmake6 binary
    package, the new qt6-base-dev-tools must also D:qmake6 enlarging it
    installation set in non-trivial ways. Alternatively, qt6.conf must
    be moved to yet another M-A:same package that is more fundamental.

 B. Double down on qt6-base-dev-tools and file rc bugs against 22
    source package users and 4 binary package users asking them to move
    their dependency to qt6-base-dev. Then, we can add
    /usr/bin/<triplet>-qtpaths6 to qt6-base-dev and stuff will work.

Given the above, can you make a decision? Would you need any further
information?

Helmut
diff --minimal -Nru qt6-base-6.7.2+dfsg/debian/changelog qt6-base-6.7.2+dfsg/debian/changelog
--- qt6-base-6.7.2+dfsg/debian/changelog	2024-12-08 22:49:21.000000000 +0100
+++ qt6-base-6.7.2+dfsg/debian/changelog	2024-12-11 08:08:34.000000000 +0100
@@ -1,3 +1,10 @@
+qt6-base (6.7.2+dfsg-5.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Draft for cross-qtpaths.
+
+ -- Helmut Grohne <helmut@subdivi.de>  Wed, 11 Dec 2024 08:08:34 +0100
+
 qt6-base (6.7.2+dfsg-5) unstable; urgency=medium
 
   [ Patrick Franz ]
diff --minimal -Nru qt6-base-6.7.2+dfsg/debian/qtpaths-cross-wrapper.in qt6-base-6.7.2+dfsg/debian/qtpaths-cross-wrapper.in
--- qt6-base-6.7.2+dfsg/debian/qtpaths-cross-wrapper.in	1970-01-01 01:00:00.000000000 +0100
+++ qt6-base-6.7.2+dfsg/debian/qtpaths-cross-wrapper.in	2024-12-11 08:01:55.000000000 +0100
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+exec /usr/lib/qt6/bin/qtpaths \
+	-qtconf /usr/lib/@DEB_HOST_MULTIARCH@/qt6/qt6.conf \
+	"$@"
diff --minimal -Nru qt6-base-6.7.2+dfsg/debian/rules qt6-base-6.7.2+dfsg/debian/rules
--- qt6-base-6.7.2+dfsg/debian/rules	2024-06-29 12:34:01.000000000 +0200
+++ qt6-base-6.7.2+dfsg/debian/rules	2024-12-11 08:05:03.000000000 +0100
@@ -94,12 +94,14 @@
 	sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/' debian/qt.conf.in \
 		> debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/qt6/qt6.conf
 
-	# Inject cross-wrapper for qmake6
+	# Inject cross-wrapper for qmake6 and qtpaths
 	mkdir -p debian/tmp/usr/bin
 	sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \
 		-e 's/@DEB_HOST_GNU_TYPE@/$(DEB_HOST_GNU_TYPE)/g' \
 		< debian/qmake-cross-wrapper.in > debian/tmp/usr/bin/$(DEB_HOST_GNU_TYPE)-qmake6
-	chmod +x debian/tmp/usr/bin/$(DEB_HOST_GNU_TYPE)-qmake6
+	sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \
+		< debian/qtpaths-cross-wrapper.in > debian/tmp/usr/bin/$(DEB_HOST_GNU_TYPE)-qtpaths6
+	chmod +x debian/tmp/usr/bin/$(DEB_HOST_GNU_TYPE)-qmake6 debian/tmp/usr/bin/$(DEB_HOST_GNU_TYPE)-qtpaths6
 
 	# Fix Qt6::qmake IMPORTED_LOCATION, see https://bugs.debian.org/1030980
 	sed -i 's,lib/qt6/bin/qmake,bin/$(DEB_HOST_GNU_TYPE)-qmake6,' \

Reply to: