Bug 1185203 - libqt5-qttools-doc should not require clang7
Summary: libqt5-qttools-doc should not require clang7
Status: RESOLVED FIXED
: 1185653 (view as bug list)
Alias: None
Product: openSUSE Distribution
Classification: openSUSE
Component: Development (show other bugs)
Version: Leap 15.3
Hardware: Other Other
: P5 - None : Critical (vote)
Target Milestone: ---
Assignee: Antonio Larrosa
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 1184920
  Show dependency treegraph
 
Reported: 2021-04-22 22:00 UTC by Aaron Puchert
Modified: 2021-05-18 11:44 UTC (History)
4 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aaron Puchert 2021-04-22 22:00:00 UTC
Since we're using llvm11 by default since bug 1184920, two packages are unresolvable because libqt5-qttools-doc requires clang7: openSUSE:Backports:SLE-15-SP3/kdevelop5 and openSUSE:Backports:SLE-15-SP3/python3-pyside2.

The problem is that due to packaging changes clang7 conflicts with newer Clang versions, so libqt5-qttools-doc cannot be installed in parallel with them.

The requirement is probably because clang contained the "builtin headers" before I moved them to libclang in https://build.opensuse.org/request/show/684104, but this never made it to SLE.

Either we can convince SUSE to bring this change to SLE, or maybe we can relax the Requires to Recommends? I don't have a better solution right now. I'm pretty sure kdevelop5 doesn't actually need libqt5-qttools-doc, it's just an accidental dependency.
Comment 1 Aaron Puchert 2021-04-22 22:08:23 UTC
Alternatively libqt5-qttools-doc could be built with llvm11 directly.
Comment 2 Christophe Marin 2021-04-22 22:23:15 UTC
libqt5-qttools-doc requires the version that was present at build time.

So the obvious question is: was it rebuilt?

As you removed the split libraries in recent llvm versions, I don't think it can build successfully in Leap 15.3 unless it gets patched to link to clang-cpp.
Comment 3 Aaron Puchert 2021-04-22 23:32:07 UTC
(In reply to Christophe Giboudeaux from comment #2)
> libqt5-qttools-doc requires the version that was present at build time.
> 
> So the obvious question is: was it rebuilt?
Problem is that libqt5-qttools-doc is in SLE, and I couldn't convince SUSE to update the metapackage there. So if you're using the metapackage in SLE you're going to get llvm7 despite llvm9 and llvm11 being available in SLE. Only Leap packages default to llvm11.

> As you removed the split libraries in recent llvm versions, I don't think it
> can build successfully in Leap 15.3 unless it gets patched to link to
> clang-cpp.
That might be another problem.

There is a bunch of unfortunate dependencies/conflicts here, and getting rid of any one of them would solve the issue. Moving the builtin headers from clang7 to libclang7 should be safe and would allow you to drop the clang7 dependency. I could try to patch the CMake files shipped by LLVM to not be so picky, but I'm not sure if that works. And lastly I'm not sure whether either of the unresolvable packages really need libqt5-qttools-doc to build. I don't have it installed but kdevelop builds fine locally.
Comment 4 Aaron Puchert 2021-04-22 23:36:19 UTC
(In reply to Aaron Puchert from comment #3)
> I don't have it installed but kdevelop builds fine locally.
Ah, I guess it might be missing some features then:

-- Could NOT find Qt5Help (missing: Qt5Help_DIR)

But I'm not sure whether we need (lib)clang to build the QtHelp plugin.
Comment 5 Christophe Marin 2021-04-23 05:48:54 UTC
(In reply to Aaron Puchert from comment #4)
> (In reply to Aaron Puchert from comment #3)
> > I don't have it installed but kdevelop builds fine locally.
> Ah, I guess it might be missing some features then:
> 
> -- Could NOT find Qt5Help (missing: Qt5Help_DIR)
> 
> But I'm not sure whether we need (lib)clang to build the QtHelp plugin.

It's a build and runtime requirement and it must have the version it was built with. See https://bugzilla.opensuse.org/show_bug.cgi?id=1109367
Comment 6 Christophe Marin 2021-04-23 05:54:52 UTC
(In reply to Aaron Puchert from comment #3)
> 
> There is a bunch of unfortunate dependencies/conflicts here, and getting rid
> of any one of them would solve the issue. Moving the builtin headers from
> clang7 to libclang7 should be safe and would allow you to drop the clang7
> dependency. I could try to patch the CMake files shipped by LLVM to not be
> so picky, but I'm not sure if that works. And lastly I'm not sure whether
> either of the unresolvable packages really need libqt5-qttools-doc to build.
> I don't have it installed but kdevelop builds fine locally.

It wouldn't help for Qt5 packages. They use qmake. The issue here is that you removed the split libraries to save space and only have libclang-cpp.so.

This part can be patched but first I need to be sure libqt5-qttools (and libqt5-qtdoc as well) will be rebuilt.
Comment 7 Christophe Marin 2021-04-23 05:55:48 UTC
(In reply to Christophe Giboudeaux from comment #6)
> (In reply to Aaron Puchert from comment #3)
> 
> It wouldn't help for Qt5 packages. They use qmake. The issue here is that
> you removed the split libraries to save space and only have libclang-cpp.so.
> 
> This part can be patched but first I need to be sure libqt5-qttools (and
> libqt5-qtdoc as well) will be rebuilt.

as in: having the changes in Leap:15.3:Update is not acceptable.
Comment 8 Christophe Marin 2021-04-23 06:24:46 UTC
Another note: due to https://bugreports.qt.io/browse/QTCREATORBUG-21972, libqt5-creator will also need to be patched if llvm 11 becomes the default version now.
Comment 9 Aaron Puchert 2021-04-23 11:53:41 UTC
(In reply to Christophe Giboudeaux from comment #5)
> It's a build and runtime requirement and it must have the version it was
> built with. See https://bugzilla.opensuse.org/show_bug.cgi?id=1109367
But it only needs libclang plus the builtin headers and not the clang binaries, right?
Comment 10 Christophe Marin 2021-04-23 12:22:15 UTC
(In reply to Aaron Puchert from comment #9)
> (In reply to Christophe Giboudeaux from comment #5)
> > It's a build and runtime requirement and it must have the version it was
> > built with. See https://bugzilla.opensuse.org/show_bug.cgi?id=1109367
> But it only needs libclang plus the builtin headers and not the clang
> binaries, right?

True since 15.2. We already changed that in our 5.15 package: https://build.opensuse.org/request/show/838363. This change would be necessary if the llvm package is updated for 15.3.
Comment 11 Christophe Marin 2021-04-23 12:24:11 UTC
To summarize: yes we can fix the Qt packages, we even already have the fixes but it requires llvm11 being in the standard repository and the Qt packages to be rebuilt there as well.
Comment 12 Aaron Puchert 2021-04-23 14:34:54 UTC
(In reply to Christophe Giboudeaux from comment #10)
> (In reply to Aaron Puchert from comment #9)
> > But it only needs libclang plus the builtin headers and not the clang
> > binaries, right?
> 
> True since 15.2. We already changed that in our 5.15 package:
> https://build.opensuse.org/request/show/838363. This change would be
> necessary if the llvm package is updated for 15.3.
So then we could also relax the requirement to libclang7, i.e. without an update to llvm11, once Antonio has moved the headers there. (See bug 118492, comment 14.)
Comment 13 Aaron Puchert 2021-04-23 14:37:14 UTC
(In reply to Aaron Puchert from comment #12)
> So then we could also relax the requirement to libclang7, i.e. without an
> update to llvm11, once Antonio has moved the headers there. (See bug 118492,
> comment 14.)
I should use copy/paste, it's bug 1184920, comment 14.
Comment 14 Fabian Vogt 2021-05-06 12:19:35 UTC
*** Bug 1185653 has been marked as a duplicate of this bug. ***
Comment 15 Fabian Vogt 2021-05-06 12:25:04 UTC
Antonio submitted the llvm7 and libqt5-qttools changes as https://maintenance.suse.de/incident/19402/ to SLE some time ago.

Adjusting severity to be the same as bug 1185653.

As a temporary fix it might be possible to rebuild lilbqt5-qttools in backports as well, to pick up the matching version of clang. I would suggest that only if it can be undone at a later point though, but due to the vendor change that might not be easy.
Comment 16 Fabian Vogt 2021-05-06 12:34:00 UTC
*** Bug 1185653 has been marked as a duplicate of this bug. ***
Comment 17 Aaron Puchert 2021-05-18 11:44:43 UTC
With the update mentioned in bug 1184920, comment 18, both kdevelop5 and python3-pyside2 are resolvable again and seem to build successfully.