Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 836726 - */* revdeps with BDEPEND=dev-qt/qthelp are queued to update beforehand, then broken by qhelpgenerator: "Cannot mix incompatible Qt library (5.15.3) with this library (5.15.4)" (e.g. KF5Libkleo.qch not found)
Summary: */* revdeps with BDEPEND=dev-qt/qthelp are queued to update beforehand, then ...
Status: IN_PROGRESS
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 2 votes (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InOverlay
: 852794 858092 (view as bug list)
Depends on:
Blocks: build-order
  Show dependency tree
 
Reported: 2022-04-03 19:56 UTC by Jakov Smolić
Modified: 2023-01-09 04:50 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build log (kde,89.41 KB, text/plain)
2022-04-03 19:56 UTC, Jakov Smolić
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jakov Smolić archtester gentoo-dev 2022-04-03 19:56:14 UTC
Created attachment 768644 [details]
build log

[3/4] Install the project...[K
-- Install configuration: "RelWithDebInfo"
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/lib64/cmake/KF5Ldap/KF5LdapConfig.cmake
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/lib64/cmake/KF5Ldap/KF5LdapConfigVersion.cmake
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/lib64/cmake/KF5Ldap/KF5LdapTargets.cmake
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/lib64/cmake/KF5Ldap/KF5LdapTargets-relwithdebinfo.cmake
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/kldap_version.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/lib64/libKF5Ldap.so.5.19.3
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/lib64/libKF5Ldap.so.5
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/lib64/libKF5Ldap.so
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/kldap_export.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ber.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapconnection.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapcontrol.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapdn.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapobject.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapoperation.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapsearch.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapserver.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapdefs.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapurl.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldif.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapconfigwidget.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapclientsearchconfig.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapclientsearch.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/addhostdialog.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapclient.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapconfigurewidget.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapclientsearchconfigwriteconfigjob.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapclientsearchconfigreadconfigjob.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/kldap/ldapsearchclientreadconfigserverjob.h
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/Ber
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapConnection
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapControl
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapDN
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapObject
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapOperation
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapSearch
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapServer
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapDefs
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapUrl
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/Ldif
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapConfigWidget
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapClientSearchConfig
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapClientSearch
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/AddHostDialog
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapClient
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapConfigureWidget
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapClientSearchConfigWriteConfigJob
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapClientSearchConfigReadConfigJob
-- Installing: /var/tmp/portage/kde-apps/kldap-21.12.3-r1/image/usr/include/KF5/KLDAP/KLDAP/LdapSearchClientReadConfigServerJob
[31mCMake Error at src/cmake_install.cmake:150 (file):
  file INSTALL cannot find
  "/var/tmp/portage/kde-apps/kldap-21.12.3-r1/work/kldap-21.12.3_build/src/KF5LDap.qch":
  No such file or directory.
Call Stack (most recent call first):
  cmake_install.cmake:77 (include)

[0m
[31mFAILED: [0mCMakeFiles/install.util 
cd /var/tmp/portage/kde-apps/kldap-21.12.3-r1/work/kldap-21.12.3_build && /usr/bin/cmake -P cmake_install.cmake
ninja: build stopped: subcommand failed.
 * ERROR: kde-apps/kldap-21.12.3-r1::gentoo failed (install phase):
 *   died running ninja install
 * 
 * Call stack:
 *     ebuild.sh, line  127:  Called src_install
 *   environment, line 2449:  Called ecm_src_install
 *   environment, line 1447:  Called cmake_src_install
 *   environment, line 1105:  Called die
 * The specific snippet of code:
 *       DESTDIR="${D}" ${CMAKE_MAKEFILE_GENERATOR} install "$@" || die "died running ${CMAKE_MAKEFILE_GENERATOR} install";
 * 
 * If you need support, post the output of `emerge --info '=kde-apps/kldap-21.12.3-r1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=kde-apps/kldap-21.12.3-r1::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/kde-apps/kldap-21.12.3-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/kde-apps/kldap-21.12.3-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/kde-apps/kldap-21.12.3-r1/work/kldap-21.12.3_build'
 * S: '/var/tmp/portage/kde-apps/kldap-21.12.3-r1/work/kldap-21.12.3'
Comment 1 Jakov Smolić archtester gentoo-dev 2022-04-03 19:56:33 UTC
List of packages I had similar failures with:

=kde-apps/kmime-21.12.3
=kde-apps/akonadi-contacts-21.12.3
=kde-apps/akonadi-mime-21.12.3
=kde-apps/kcalutils-21.12.3
=kde-apps/ksmtp-21.12.3
=kde-apps/kmailtransport-21.12.3
=kde-apps/akonadi-notes-21.12.3
=kde-apps/kldap-21.12.3-r1
=kde-apps/calendarsupport-21.12.3
Comment 2 Jakov Smolić archtester gentoo-dev 2022-04-03 19:57:27 UTC
Portage 3.0.30 (python 3.9.12-final-0, default/linux/arm64/17.0/systemd, gcc-11.2.1, glibc-2.35-r1, 5.15.11-gentoo-dist aarch64)
=================================================================
System uname: Linux-5.15.11-gentoo-dist-aarch64-with-glibc2.35
KiB Mem:    32813516 total,  17295448 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Sun, 03 Apr 2022 19:04:41 +0000
sh bash 5.1_p16
ld GNU ld (Gentoo 2.38 p3) 2.38
app-misc/pax-utils:        1.3.3::gentoo
app-shells/bash:           5.1_p16::gentoo
dev-java/java-config:      2.3.1::gentoo
dev-lang/perl:             5.34.1::gentoo
dev-lang/python:           2.7.18_p15::gentoo, 3.9.12::gentoo, 3.10.4::gentoo
dev-lang/rust:             1.59.0::gentoo
dev-util/cmake:            3.23.0::gentoo
dev-util/meson:            0.61.4-r2::gentoo
sys-apps/baselayout:       2.8::gentoo
sys-apps/sandbox:          2.29::gentoo
sys-apps/systemd:          250.4-r1::gentoo
sys-devel/autoconf:        2.71-r1::gentoo
sys-devel/automake:        1.16.5::gentoo
sys-devel/binutils:        2.38-r1::gentoo
sys-devel/binutils-config: 5.4.1::gentoo
sys-devel/gcc:             11.2.1_p20220115::gentoo
sys-devel/gcc-config:      2.5-r1::gentoo
sys-devel/libtool:         2.4.7::gentoo
sys-devel/llvm:            13.0.1::gentoo, 14.0.0::gentoo
sys-devel/make:            4.3::gentoo
sys-kernel/linux-headers:  5.17::gentoo (virtual/os-headers)
sys-libs/glibc:            2.35-r1::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-metamanifest: yes
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-jobs: 1
    sync-rsync-extra-opts:

ACCEPT_KEYWORDS="arm64 ~arm64"
ACCEPT_LICENSE="* @FREE"
CBUILD="aarch64-unknown-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="aarch64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--jobs=8"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="C.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X acl alsa arm64 bzip2 cli crypt dri fortran gdbm iconv ipv6 libglvnd libtirpc ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl systemd udev unicode xattr zlib" ADA_TARGET="gnat_2020" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_ARM="edsp thumb thumb2 v4 v5 v6 v7 v8 vfp vfp-d32 vfpv3 vfpv4" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="fbdev dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 3 Andreas Sturmlechner gentoo-dev 2022-04-07 20:43:45 UTC
Hm, trying with kde-apps/kldap I couldn't reproduce it, and also haven't seen any such reports otherwise yet.

> # USE=doc emerge -1vqa kldap
> 
> [ebuild  N    ] media-gfx/graphviz-2.49.0  USE="X cairo doc nls pdf python qt5 svg webp -devil -examples -gtk -gts -guile -java -lasi -lefty -perl -postscript -ruby -tcl" PYTHON_SINGLE_TARGET="python3_9 -python3_8 -python3_10" 
> [ebuild  N    ] app-doc/doxygen-1.9.3  USE="doc dot qt5 -clang -debug -doxysearch (-sqlite)" 
> [ebuild  N    ] dev-qt/qt-docs-5.15.2_p202011130614  USE="3d assistant bluetooth concurrent dbus declarative designer gamepad graphicaleffects gui help html imageformats linguist location multimedia network opengl positioning printsupport qch qdoc quickcontrols quickcontrols2 scxml sensors serialbus serialport speech sql svg test wayland webchannel webengine websockets webview widgets x11extras xml xmlpatterns -charts -datavis -networkauth -script -timeline -virtualkeyboard" 
> [ebuild     U ] kde-apps/kldap-21.12.3-r1 [21.12.3] USE="doc* handbook -debug -test" 
> 
> Would you like to merge these packages? [Yes/No] 
> >>> Verifying ebuild manifests
> >>> Emerging (1 of 4) media-gfx/graphviz-2.49.0::gentoo
> >>> Installing (1 of 4) media-gfx/graphviz-2.49.0::gentoo
> >>> Emerging (2 of 4) app-doc/doxygen-1.9.3::gentoo
> >>> Installing (2 of 4) app-doc/doxygen-1.9.3::gentoo
> >>> Emerging (3 of 4) dev-qt/qt-docs-5.15.2_p202011130614::gentoo
> >>> Installing (3 of 4) dev-qt/qt-docs-5.15.2_p202011130614::gentoo
> >>> Emerging (4 of 4) kde-apps/kldap-21.12.3-r1::gentoo
> >>> Installing (4 of 4) kde-apps/kldap-21.12.3-r1::gentoo
> >>> Jobs: 4 of 4 complete                           Load avg: 2.11, 2.70, 2.88

And successfully installs:

/usr/share/qt5-doc
/usr/share/qt5-doc/KF5LDap.qch
/usr/share/qt5-doc/KF5LDap.tags
Comment 4 Andreas Sturmlechner gentoo-dev 2022-04-07 21:01:59 UTC
USE="-* -qch html" on dev-qt/qt-docs didn't trigger it either.
Comment 5 Andreas Sturmlechner gentoo-dev 2022-04-07 21:34:25 UTC
No problem with USE="-*" app-doc/doxygen either.
Comment 6 Andreas Sturmlechner gentoo-dev 2022-05-18 14:07:23 UTC
Please re-open when it happens again...
Comment 7 Staffan Palmroos 2022-06-11 18:37:08 UTC
I had this issue too. I copied the old .qch file from the already installed package to get through the build.

However, after the new Qt5 packages were built in my 'emerge world' the problem seems to have fixed itself. I should add that it's been a while since I emerge world'd so I guess there were some odd backwards compatibility issue at play.
Comment 8 Ivan Lloro 2022-06-12 08:14:41 UTC
In my particular case, the failure to create proper .qch files was related due to "qhelpgenerator" silently aborting during compilation of certain KDE packages. Direct execution of qhelpgenerator showed the program aborted due to "Cannot mix incompatible Qt library (5.15.3) with this library (5.15.4)".

The ultimate reason was that during my last "emerge -uv @world" not all dev-qt libraries where updated from version 5.15.3 to 5.15.4. A fact that was confirmed after a quick look at /var/db/pkg/dev-qt. Therefore, this explains why an "emerge --sync; emerge -uv @world" should fix most of these situations.

If you are unlucky and manual intervention is needed, the following command should fix it (along with many other silent KDE programs coredumps):
emerge --sync && emerge -1uv $(find /var/db/pkg/dev-qt -maxdepth 1 -type d | grep -v qt-docs | cut -d/ -f6- | cut -d- -f1) && emerge -uv @world && emerge @preserved-rebuild
Comment 9 Andreas Sturmlechner gentoo-dev 2022-06-12 09:56:01 UTC
(In reply to Ivan Lloro from comment #8)
> In my particular case, the failure to create proper .qch files was related
> due to "qhelpgenerator" silently aborting during compilation of certain KDE
> packages. Direct execution of qhelpgenerator showed the program aborted due
> to "Cannot mix incompatible Qt library (5.15.3) with this library (5.15.4)".
Now that is very interesting. You don't necessarily have a list of installed Qt packages with versions at that time it happened?

lddtree of qhelpgenerator yields:
libQt5Widgets.so.5 (via libQt5Help.so.5)
libQt5Gui.so.5
libQt5Sql.so.5
libQt5Core.so.5

...all of which are covered by the DEPEND=RDEPEND list of dev-qt/qthelp.

Packages providing USE=doc via ecm.eclass' ECM_QTHELP=true meta variable in turn make sure they depend on dev-qt/qthelp, however do not insist on a particular version of it.

My guess of what happens: 
1) qthelp-5.15.4 gets slated for rebuild on qtcore-5.15.4 upgrade b/c of slot op
2) a couple of Qt revdeps like kde-apps/* are in the queue for the same reason
3) all the while dev-qt/qtgui or qtsql or qtwidgets are still at 5.15.3
4) leaving qhelpgenerator defunct for correctly building (2) with USE=doc
Comment 10 Ivan Lloro 2022-06-12 11:59:24 UTC
Probably not a complete list (as I was upgrading packages while troubleshooting the problem) but the problem was still in place when the following packages were at 5.15.3 (the others were already at version 5.15.4):
designer-5.15.3
linguist-tools-5.15.3
qdbusviewer-5.15.3
qtbluetooth-5.15.3
qtcharts-5.15.3
qtdatavis3d-5.15.3
qtdeclarative-5.15.3-r1
qtgraphicaleffects-5.15.3
qtgui-5.15.3
qthelp-5.15.3
qtimageformats-5.15.3
qtlocation-5.15.3-r1
qtmultimedia-5.15.3
qtnetwork-5.15.3
qtnetworkauth-5.15.3
qtopengl-5.15.3
qtpositioning-5.15.3
qtprintsupport-5.15.3
qtquickcontrols2-5.15.3
qtquickcontrols-5.15.3
qtscript-5.15.3
qtsensors-5.15.3
qtserialport-5.15.3
qtspeech-5.15.3
qtsvg-5.15.3
qttranslations-5.15.3
qtvirtualkeyboard-5.15.3
qtwayland-5.15.3-r1
qtwebchannel-5.15.3
qtwebengine-5.15.3_p20220406
qtwebsockets-5.15.3
qtwidgets-5.15.3
qtx11extras-5.15.3
qtxmlpatterns-5.15.3




(In reply to Andreas Sturmlechner from comment #9)
> (In reply to Ivan Lloro from comment #8)
> > In my particular case, the failure to create proper .qch files was related
> > due to "qhelpgenerator" silently aborting during compilation of certain KDE
> > packages. Direct execution of qhelpgenerator showed the program aborted due
> > to "Cannot mix incompatible Qt library (5.15.3) with this library (5.15.4)".
> Now that is very interesting. You don't necessarily have a list of installed
> Qt packages with versions at that time it happened?
> 
> lddtree of qhelpgenerator yields:
> libQt5Widgets.so.5 (via libQt5Help.so.5)
> libQt5Gui.so.5
> libQt5Sql.so.5
> libQt5Core.so.5
> 
> ...all of which are covered by the DEPEND=RDEPEND list of dev-qt/qthelp.
> 
> Packages providing USE=doc via ecm.eclass' ECM_QTHELP=true meta variable in
> turn make sure they depend on dev-qt/qthelp, however do not insist on a
> particular version of it.
> 
> My guess of what happens: 
> 1) qthelp-5.15.4 gets slated for rebuild on qtcore-5.15.4 upgrade b/c of
> slot op
> 2) a couple of Qt revdeps like kde-apps/* are in the queue for the same
> reason
> 3) all the while dev-qt/qtgui or qtsql or qtwidgets are still at 5.15.3
> 4) leaving qhelpgenerator defunct for correctly building (2) with USE=doc
Comment 11 Ivan Lloro 2022-06-12 12:03:49 UTC
My guess is that the portage repository was not fully updated, yet, when I did the routine "emerge --sync && emerge -DuNavt @world" and only some of the Qt5 libraries got updated to version 5.15.4.


(In reply to Ivan Lloro from comment #10)
> Probably not a complete list (as I was upgrading packages while
> troubleshooting the problem) but the problem was still in place when the
> following packages were at 5.15.3 (the others were already at version
> 5.15.4):
> designer-5.15.3
> linguist-tools-5.15.3
> qdbusviewer-5.15.3
> qtbluetooth-5.15.3
> qtcharts-5.15.3
> qtdatavis3d-5.15.3
> qtdeclarative-5.15.3-r1
> qtgraphicaleffects-5.15.3
> qtgui-5.15.3
> qthelp-5.15.3
> qtimageformats-5.15.3
> qtlocation-5.15.3-r1
> qtmultimedia-5.15.3
> qtnetwork-5.15.3
> qtnetworkauth-5.15.3
> qtopengl-5.15.3
> qtpositioning-5.15.3
> qtprintsupport-5.15.3
> qtquickcontrols2-5.15.3
> qtquickcontrols-5.15.3
> qtscript-5.15.3
> qtsensors-5.15.3
> qtserialport-5.15.3
> qtspeech-5.15.3
> qtsvg-5.15.3
> qttranslations-5.15.3
> qtvirtualkeyboard-5.15.3
> qtwayland-5.15.3-r1
> qtwebchannel-5.15.3
> qtwebengine-5.15.3_p20220406
> qtwebsockets-5.15.3
> qtwidgets-5.15.3
> qtx11extras-5.15.3
> qtxmlpatterns-5.15.3
> 
> 
> 
> 
> (In reply to Andreas Sturmlechner from comment #9)
> > (In reply to Ivan Lloro from comment #8)
> > > In my particular case, the failure to create proper .qch files was related
> > > due to "qhelpgenerator" silently aborting during compilation of certain KDE
> > > packages. Direct execution of qhelpgenerator showed the program aborted due
> > > to "Cannot mix incompatible Qt library (5.15.3) with this library (5.15.4)".
> > Now that is very interesting. You don't necessarily have a list of installed
> > Qt packages with versions at that time it happened?
> > 
> > lddtree of qhelpgenerator yields:
> > libQt5Widgets.so.5 (via libQt5Help.so.5)
> > libQt5Gui.so.5
> > libQt5Sql.so.5
> > libQt5Core.so.5
> > 
> > ...all of which are covered by the DEPEND=RDEPEND list of dev-qt/qthelp.
> > 
> > Packages providing USE=doc via ecm.eclass' ECM_QTHELP=true meta variable in
> > turn make sure they depend on dev-qt/qthelp, however do not insist on a
> > particular version of it.
> > 
> > My guess of what happens: 
> > 1) qthelp-5.15.4 gets slated for rebuild on qtcore-5.15.4 upgrade b/c of
> > slot op
> > 2) a couple of Qt revdeps like kde-apps/* are in the queue for the same
> > reason
> > 3) all the while dev-qt/qtgui or qtsql or qtwidgets are still at 5.15.3
> > 4) leaving qhelpgenerator defunct for correctly building (2) with USE=doc
Comment 12 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-12 12:07:50 UTC
(In reply to Ivan Lloro from comment #11)
> My guess is that the portage repository was not fully updated, yet, when I
> did the routine "emerge --sync && emerge -DuNavt @world" and only some of
> the Qt5 libraries got updated to version 5.15.4.
> 
> 

No, they get pushed and stabled at the same time (separate occasions). Invalid dependencies are forbidden by our CI too.
Comment 13 Ivan Lloro 2022-06-12 14:51:17 UTC
According to the logs what happened was that, during a routine nightly upgrade, only a few dev-qt packages had been updated to version 5.15.4 when the emerge process failed due to a completely unrelated net-libs/libgadu compilation failure. This created a situation where libQt5Core.so.5 and libQt5Sql.so.5  were at version 5.15.4 while libQt5Widgets.so.5 and libQt5Gui.so.5 remained at 5.15.3. In such a situation qhelpgenerator coredumps by default rendering the compilation of Qt5 dependent packages with enabled use flag "doc" to fail as .qch files are not created.



From /var/log/emerge.log:

1654989801:  *** emerge --verbose-conflicts --newuse --tree --update --ask --backtrack=11 --changed-deps=y --deep --keep-going --with-bdeps=y --regex-search-auto=y --verbose @world
[-- COMPILING STUFF --]
1654996474:  >>> emerge (41 of 163) net-libs/libgadu-1.12.2-r1 to /
1654996474:  === (41 of 163) Cleaning (net-libs/libgadu-1.12.2-r1::/usr/portage/net-libs/libgadu/libgadu-1.12.2-r1.ebuild)
1654996510:  *** Finished. Cleaning up...
1654996510:  *** exiting unsuccessfully with status '1'.
1654996518:  *** terminating.


where [-- COMPILING STUFF --] properly formatted by "genlop -l" is:
     Sun Jun 12 01:16:35 2022 >>> dev-qt/qtwebengine-5.15.3_p20220406
     Sun Jun 12 01:22:14 2022 >>> dev-lang/spidermonkey-91.9.1
     Sun Jun 12 01:49:42 2022 >>> dev-util/boost-build-1.79.0
     Sun Jun 12 01:50:13 2022 >>> app-text/libnumbertext-1.0.10
     Sun Jun 12 01:50:33 2022 >>> dev-java/openjdk-bin-8.332_p09
     Sun Jun 12 01:51:35 2022 >>> dev-java/openjdk-bin-11.0.15_p10
     Sun Jun 12 01:53:09 2022 >>> dev-python/more-itertools-8.13.0
     Sun Jun 12 01:53:34 2022 >>> dev-python/certifi-3021.3.16-r2
     Sun Jun 12 01:54:11 2022 >>> dev-python/Babel-2.10.1
     Sun Jun 12 01:54:38 2022 >>> dev-python/six-1.16.0-r1
     Sun Jun 12 01:55:05 2022 >>> dev-python/attrs-21.4.0-r1
     Sun Jun 12 01:55:34 2022 >>> dev-python/nose-1.3.7_p20211111_p1-r1
     Sun Jun 12 01:55:59 2022 >>> dev-python/pluggy-1.0.0-r2
     Sun Jun 12 01:56:25 2022 >>> dev-python/jaraco-classes-3.2.1-r1
     Sun Jun 12 01:57:53 2022 >>> dev-python/toml-0.10.2-r1
     Sun Jun 12 01:58:17 2022 >>> dev-python/sphinx-bootstrap-theme-0.8.1
     Sun Jun 12 02:11:29 2022 >>> gui-libs/egl-wayland-1.1.9_p20211123
     Sun Jun 12 02:11:54 2022 >>> app-i18n/opencc-1.1.3
     Sun Jun 12 02:12:31 2022 >>> sys-libs/zlib-1.2.12-r2
     Sun Jun 12 02:13:23 2022 >>> x11-libs/pango-1.50.7
     Sun Jun 12 02:14:03 2022 >>> net-libs/libpcap-1.10.1-r1
     Sun Jun 12 02:17:15 2022 >>> dev-lang/perl-5.34.1-r3
     Sun Jun 12 02:20:52 2022 >>> net-libs/gnutls-3.7.6
     Sun Jun 12 02:25:46 2022 >>> gnome-base/librsvg-2.54.3
     Sun Jun 12 02:29:16 2022 >>> net-nds/openldap-2.4.58-r2
     Sun Jun 12 02:30:03 2022 >>> net-libs/libmicrohttpd-0.9.73
     Sun Jun 12 02:32:00 2022 >>> net-misc/curl-7.83.1
     Sun Jun 12 02:36:41 2022 >>> sys-apps/systemd-250.6
     Sun Jun 12 02:37:42 2022 >>> app-crypt/gnupg-2.2.34-r1
     Sun Jun 12 02:41:36 2022 >>> dev-qt/qtcore-5.15.4-r2
     Sun Jun 12 02:43:17 2022 >>> net-print/cups-2.3.3_p2-r3
     Sun Jun 12 02:45:37 2022 >>> dev-vcs/git-2.35.1
     Sun Jun 12 02:52:42 2022 >>> x11-libs/gtk+-3.24.34
     Sun Jun 12 02:53:53 2022 >>> dev-qt/qtdbus-5.15.4
     Sun Jun 12 02:54:48 2022 >>> dev-qt/qtxml-5.15.4
     Sun Jun 12 02:56:12 2022 >>> app-crypt/gpgme-1.17.1-r1
     Sun Jun 12 02:57:26 2022 >>> dev-qt/qtconcurrent-5.15.4
     Sun Jun 12 03:00:35 2022 >>> app-editors/emacs-28.1
     Sun Jun 12 03:01:09 2022 >>> media-libs/libass-0.15.2
     Sun Jun 12 03:01:23 2022 >>> virtual/perl-Compress-Raw-Zlib-2.103.0-r1
     Sun Jun 12 03:02:20 2022 >>> dev-qt/qttest-5.15.4
     Sun Jun 12 03:02:47 2022 >>> dev-libs/libzip-1.8.0-r1
     Sun Jun 12 03:04:57 2022 >>> sci-libs/proj-8.2.1
     Sun Jun 12 03:06:07 2022 >>> net-misc/wget-1.21.3
     Sun Jun 12 03:07:18 2022 >>> dev-db/freetds-1.2.18
     Sun Jun 12 03:08:21 2022 >>> dev-qt/qtsql-5.15.4
     Sun Jun 12 03:08:48 2022 >>> net-libs/libvncserver-0.9.13
     Sun Jun 12 03:09:08 2022 >>> dev-qt/qdbus-5.15.4
     Sun Jun 12 03:09:27 2022 >>> dev-qt/qtpaths-5.15.4
     Sun Jun 12 03:10:12 2022 >>> app-text/mupdf-1.19.1
     Sun Jun 12 03:11:22 2022 >>> app-text/qpdf-10.6.3
     Sun Jun 12 03:12:52 2022 >>> dev-db/spatialite-5.0.1-r1
     Sun Jun 12 03:13:25 2022 >>> sci-libs/libgeotiff-1.7.0
     Sun Jun 12 03:13:41 2022 >>> virtual/perl-Compress-Raw-Bzip2-2.103.0-r2
     Sun Jun 12 03:13:56 2022 >>> virtual/perl-IO-Compress-2.103.0-r1
     Sun Jun 12 03:14:34 2022 >>> dev-qt/qtwaylandscanner-5.15.4
Comment 14 Andreas Sturmlechner gentoo-dev 2022-06-14 08:52:58 UTC
Ideas? Revdeps can't do anything to avoid this, so Qt needs changing.

1) Use subslots to prioritise qthelp for rebuild:

 DEPEND="
        =dev-qt/qtcore-${QT5_PV}*:5=
-       =dev-qt/qtgui-${QT5_PV}*
-       =dev-qt/qtsql-${QT5_PV}*[sqlite]
-       =dev-qt/qtwidgets-${QT5_PV}*
+       =dev-qt/qtgui-${QT5_PV}*:5=
+       =dev-qt/qtsql-${QT5_PV}*:5=[sqlite]
+       =dev-qt/qtwidgets-${QT5_PV}*:5=
 "

Downside: Can we be really sure portage still won't queue some dev-qt/qthelp revdep before it?

2) Use blockers to ensure qhelpgenerator can't be in an inconsistent state. However, these blockers must be in qtgui, qtsql, qtwidgets as they are parts of the split qtbase tarball:

-RDEPEND="${DEPEND}"
+RDEPEND="${DEPEND}
+       !<dev-qt/qthelp-${QT5_PV}:5
+"

Downside: Portage may choke on Qt upgrades more often.
Comment 15 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-14 19:00:33 UTC
(In reply to Andreas Sturmlechner from comment #14)
> Ideas? Revdeps can't do anything to avoid this, so Qt needs changing.
> 
> 1) Use subslots to prioritise qthelp for rebuild:

This is my preference. I think the UX is likely to be a bit better than blockers and while subslots are often a pain, we tend to handle them a bit btter than blockers in some cases.
Comment 16 Andreas Sturmlechner gentoo-dev 2022-06-14 20:15:19 UTC
(In reply to Sam James from comment #15)
> (In reply to Andreas Sturmlechner from comment #14)
> > Ideas? Revdeps can't do anything to avoid this, so Qt needs changing.
> > 
> > 1) Use subslots to prioritise qthelp for rebuild:
> 
> This is my preference. I think the UX is likely to be a bit better than
> blockers and while subslots are often a pain, we tend to handle them a bit
> btter than blockers in some cases.
It only works on 2 of 3 packages though. qtwidgets does not have a fine-grained subslot.
Comment 17 Davide Pesavento gentoo-dev 2022-06-14 20:41:44 UTC
This keeps happening from time to time and I maintain that it's a portage bug.

1/ the KDE package in question (kldap?) depends on qthelp:5 (any version)
2/ qthelp depends on =dev-qt/qtcore-${QT5_PV}*:5=
3/ qtcore-5.15.3 and qthelp-5.15.3 are installed (all is fine)
4/ qtcore is upgraded to 5.15.4
5/ now the deps of the installed qthelp are no longer satisfied and the package should be considered temporarily "broken" until it's upgraded
6/ therefore, kldap deps are not satisfied either (because qthelp is broken)
7/ as usual, a package should not be emerged before its deps are satisfied

Am I missing something? why is portage not behaving as above? I understand that in the general case there may be cycles but I don't think it's the case here.
Comment 18 Andreas Sturmlechner gentoo-dev 2022-06-14 20:45:19 UTC
Yes it's a version of bug 787032.
Comment 19 Davide Pesavento gentoo-dev 2022-06-14 20:54:26 UTC
Depends on/Blocks seem logically reversed on bug 689644
Comment 20 Davide Pesavento gentoo-dev 2022-06-14 20:57:22 UTC
(In reply to Andreas Sturmlechner from comment #14)
> 1) Use subslots to prioritise qthelp for rebuild:
> 
>  DEPEND="
>         =dev-qt/qtcore-${QT5_PV}*:5=
> -       =dev-qt/qtgui-${QT5_PV}*
> -       =dev-qt/qtsql-${QT5_PV}*[sqlite]
> -       =dev-qt/qtwidgets-${QT5_PV}*
> +       =dev-qt/qtgui-${QT5_PV}*:5=
> +       =dev-qt/qtsql-${QT5_PV}*:5=[sqlite]
> +       =dev-qt/qtwidgets-${QT5_PV}*:5=
>  "
> 
> Downside: Can we be really sure portage still won't queue some dev-qt/qthelp
> revdep before it?

I don't see how this helps. It's the dep on qtcore that's broken.

> 2) Use blockers to ensure qhelpgenerator can't be in an inconsistent state.
> However, these blockers must be in qtgui, qtsql, qtwidgets as they are parts
> of the split qtbase tarball:
> 
> -RDEPEND="${DEPEND}"
> +RDEPEND="${DEPEND}
> +       !<dev-qt/qthelp-${QT5_PV}:5
> +"
> 
> Downside: Portage may choke on Qt upgrades more often.

I don't like blockers, in fact they could make things worse in other upgrade scenarios. Also, like above, the blocker should go in qtcore (at least).
Comment 21 Davide Pesavento gentoo-dev 2022-06-14 21:10:50 UTC
There doesn't seem to be a reasonable workaround, so I vote for option 3: do nothing (in dev-qt/ ebuilds).
Comment 22 Andreas Sturmlechner gentoo-dev 2022-06-15 04:46:42 UTC
My other option then is to drop IUSE=doc wherever it depends on qhelpgenerator (.qch).
Comment 23 Andreas Sturmlechner gentoo-dev 2022-06-15 06:03:56 UTC
In the case given by original reporter, kde-apps/kldap does not even have a slot op on a dev-qt/* package, which makes it even more puzzling why emerge got to it before.
Comment 24 Andreas Sturmlechner gentoo-dev 2022-06-15 06:27:29 UTC
(In reply to Andreas Sturmlechner from comment #9)
> lddtree of qhelpgenerator yields:
> libQt5Widgets.so.5 (via libQt5Help.so.5)
> libQt5Gui.so.5
> libQt5Sql.so.5
> libQt5Core.so.5
> 
> ...all of which are covered by the DEPEND=RDEPEND list of dev-qt/qthelp.
Additional information for portage team:

All involved Qt packages (qtgui, qtsql, qtwidgets, qthelp) should be triggered for rebuild/upgrade by subslot update of dev-qt/qtcore, but apparently not necessarily soon enough.
Comment 25 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-17 15:08:14 UTC
*** Bug 852794 has been marked as a duplicate of this bug. ***
Comment 26 Andreas Sturmlechner gentoo-dev 2022-06-21 10:13:00 UTC
Here's another option for us (ofc only applicable to users of ecm.eclass):

diff --git a/eclass/ecm.eclass b/eclass/ecm.eclass
index 3cc586b82d82..83a05264a124 100644
--- a/eclass/ecm.eclass
+++ b/eclass/ecm.eclass
@@ -224,7 +224,22 @@ case ${ECM_QTHELP} in
 		COMMONDEPEND+=" doc? ( dev-qt/qt-docs:${KFSLOT} )"
 		BDEPEND+=" doc? (
 			>=app-doc/doxygen-1.8.13-r1
-			dev-qt/qthelp:${KFSLOT}
+			|| (
+				(
+					=dev-qt/qtcore-5.15.4*:5
+					=dev-qt/qtgui-5.15.4*:5
+					=dev-qt/qthelp-5.15.4*:5
+					=dev-qt/qtsql-5.15.4*:5
+					=dev-qt/qtwidgets-5.15.4*:5
+				)
+				(
+					=dev-qt/qtcore-5.15.5*:5
+					=dev-qt/qtgui-5.15.5*:5
+					=dev-qt/qthelp-5.15.5*:5
+					=dev-qt/qtsql-5.15.5*:5
+					=dev-qt/qtwidgets-5.15.5*:5
+				)
+			)
 		)"
 		;;
 	false) ;;

It means ecm.eclass will have to be touched on every single Qt version bump.
Comment 27 Davide Pesavento gentoo-dev 2022-07-01 19:59:07 UTC
(In reply to Andreas Sturmlechner from comment #26)
> Here's another option for us (ofc only applicable to users of ecm.eclass):

That's ugly too, but if the burden of updating ecm.eclass every time is acceptable to you, then I guess it's fine with me as well. IMO this is slightly better than inflicting the pain of the blockers on all our users.

And just to clarify, I'd also be fine with solution 1 (subslot deps) *if* it's shown to improve the situation. I don't see how it can make any difference given that the qtcore dep is the problem, but if for some strange reasons the subslots end up influencing portage's scheduling, then I'm ok with trying that approach.
Comment 28 Andreas Sturmlechner gentoo-dev 2022-07-15 06:15:08 UTC
*** Bug 858092 has been marked as a duplicate of this bug. ***
Comment 29 Larry the Git Cow gentoo-dev 2022-09-14 14:55:51 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/kde.git/commit/?id=1ee2c73aa8b5e0f2d951d3687b23824052673042

commit 1ee2c73aa8b5e0f2d951d3687b23824052673042
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2022-06-21 10:25:05 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2022-09-14 14:55:32 +0000

    ecm.eclass: Workaround Portage depgraph shortcomings from revdeps' side
    
    Bug: https://bugs.gentoo.org/836726
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 eclass/ecm.eclass | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)
Comment 30 Andreas Sturmlechner gentoo-dev 2022-09-14 15:03:15 UTC
Should be picked to ::gentoo before Qt-5.15.6 version bump.
Comment 31 Larry the Git Cow gentoo-dev 2022-11-29 20:51:37 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=98f5475d46518fa7da5ece4bceb1189283eba4f8

commit 98f5475d46518fa7da5ece4bceb1189283eba4f8
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2022-06-21 10:25:05 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2022-11-29 20:50:16 +0000

    ecm.eclass: Workaround Portage depgraph shortcomings from revdeps' side
    
    Bug: https://bugs.gentoo.org/836726
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 eclass/ecm.eclass | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)