Bug#1057346: qt6-base-dev-tools is wrongly marked Multi-Arch: foreign
Hi Sandro,
On Fri, Dec 13, 2024 at 03:51:58PM +0100, Hefee wrote:
> I think there are also some candidates, that use qt6-base-dev-tools, as they
> are do not need all the other parts of qt6-base-dev to get installed, because
> they simply do not want to compile code, but just need information where to
> find a qt resources.
> One example would be I write a QML app run by python. To get the list of QML
> dependencies I use dh_qmldeps. and dh_qmldeps only needs to know the path
> where to find the qml modules by execute qtpaths.
This ^^^^^^^ is exactly the case
where qt6-base-dev-tools is insufficient as qtpaths is the thing that is
architecture-dependent and whatever you depend on to get qtpaths must
not be M-A:foreign. To make matters worse, any package that uses
qtpaths6 cannot be M-A:foreign either as it inherits the property of
being architecture-dependent.
> Maybe there are more use cases for other binaries in Python code.
Probably.
> That's why I say, that dev-tools should be fine for packages to depend on.
Your example tells otherwise.
> IMO I recommend to do this:
> create qtpaths6 (any:same) and qtpaths6-bin(any:foreign) like for qmake6.
This much technically makes sense for cross building, but I am not
entirely convinced about using many small packages, because the Qt stack
has a web of dependencies, so in most practical situations I end up
with a pile of stuff. Whilst saving space is nice, I don't see the use
case for development tools.
> create dev-tools-config(arch:same) move everything from qmake6 except usr/bin/
This makes sense in principle as qtpaths6 will need to depend on
dev-tools-config (<- this should probably carry "qt" somehwere in the
name).
> rename qt6-base-dev-tools to qt6-base-dev-bin + provides and add qtpaths6.
Can you elaborate what you mean here precisely? This is lacking slightly
too many details for me to fill in the gaps.
When I suggested renaming qt6-base-dev-tools to qt6-base-dev-bin, the
point of the exercise was to actively break all users of
qt6-base-dev-tools such that each of them would require action
transitioning its dependency to whatever was really meant there.
Helmut
Reply to: