Hi all,

On Wed, Dec 11, 2024 at 01:32:46PM +0300, Dmitry Shachnev wrote:
> On Wed, Dec 11, 2024 at 09:38:41AM +0100, Helmut Grohne wrote:
> > 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?
> 
> I do not remember the reasons for recommending against depending on
> qt6-base-dev-tools. However, it is quite clear that people do not read
> the package description, and even if we fix the current 22+4 packages,
> we do not have a good way to prevent this from happening again with
> different packages. So I would go the route A.
> 
> However, we should first ask Patrick, who is the primary maintainer and
> the author of that phrase in package description.

I inquired Patrick on IRC about this and he indicated that he copied
this from earlier packaging of Qt5. I strongly suspect that the -tools
split was due to me enabling cross compilation, but I cannot find a
trace right now. If we were to go for qt6-base-dev-tools-bin (A), we'd
add the same language in stronger tone "must not depend on this package"
to it. I suspect that cross compilation was why -tools was added
initialy and now that packages depend on it, it starts failing its
purpose.

Given the above, I more and more favour B, but with a twist. I think we
should move the symlinks /usr/bin/* from qt6-base-dev-tools to
qt6-base-dev as a means of actively breaking packages that abuse such a
dependency. Then, we may simply install <triplet>-qtpaths6 into
qt6-base-dev as well and have it just work there.

Going for (B) will likely make less than 30 packages FTBFS. Do you think
this can be fixed after breaking them or should we do a rebuild
beforehand?

It may also be that they fall back to /usr/lib/qt6/bin/qtpaths and
continue working for native builds. In that case, we'd only have to fix
the FTCBFS later and the number of FTBFS would be lower. We may also
transition them immediately by renaming qt6-base-dev-tools to
qt6-base-dev-bin and then adding "Provides: qt6-base-dev-tools" to
qt6-base-dev.

Please let me know about your preferences of how to tackle this.

Helmut

Reply via email to