Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 669994

Summary: dev-qt/qtgui-5.11.2: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
Product: Gentoo Linux Reporter: Mike Lothian <mike>
Component: Current packagesAssignee: Qt Bug Alias <qt>
Status: RESOLVED FIXED    
Severity: normal CC: heroxbd, me, mmokrejs, prefix, pvhe01, strogdon
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=672856
https://bugs.gentoo.org/show_bug.cgi?id=675858
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: qvkgen: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
qtcore.patch
qt-core-5.13.2.patch
qtcore-5.13.2.patch
qtcore-5.13.2.patch
qtcore.patch
qtcore-metadata.patch
qtcore.patch
qtcore.patch
qtcore-metadata.patch
qtcore.patch
qtcore.patch

Description Mike Lothian 2018-10-30 20:18:35 UTC
I'm adding a bug for this in case anyone else gets stuck bootstrapping Gentoo on WSL

Issue:

https://github.com/Microsoft/WSL/issues/3023

Work around:

strip --remove-section=.note.ABI-tag /usr/lib/libQt5Core.so.5.11.2
Comment 1 tonemgub 2018-12-09 15:01:11 UTC
Created attachment 557410 [details]
qvkgen: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

Confirming bug.  dev-qt/qtgui-5.11.3
Comment 2 tonemgub 2018-12-09 15:04:02 UTC
(In reply to tonemgub from comment #1)
> Created attachment 557410 [details]
> qvkgen: error while loading shared libraries: libQt5Core.so.5: cannot open
> shared object file: No such file or directory
> 
> Confirming bug.  dev-qt/qtgui-5.11.3

Although I would mention this is not on WSL, it's native Gentoo. Bug otherwise seems the same.
Comment 3 Greg Kubaryk 2018-12-10 03:47:08 UTC
(In reply to tonemgub from comment #2)
> (In reply to tonemgub from comment #1)
> > Created attachment 557410 [details]
> > qvkgen: error while loading shared libraries: libQt5Core.so.5: cannot open
> > shared object file: No such file or directory
> > 
> > Confirming bug.  dev-qt/qtgui-5.11.3
> 
> Although I would mention this is not on WSL, it's native Gentoo. Bug
> otherwise seems the same.

QT team, should we file a separate bug for the non-WSL failure?  Because I'm experiencing this too, on plain old Gentoo.

The following is from a buildchroot on my desktop, but I can reproduce on the laptop that's been consuming these binpkgs for the past several years.

Portage 2.3.52 (python 3.6.6-final-0, default/linux/amd64/17.0/desktop, gcc-8.2.0, glibc-2.28-r2, 4.9.122-gentoo x86_64)
=================================================================
System uname: Linux-4.9.122-gentoo-x86_64-AMD_Phenom-tm-_II_X6_1045T_Processor-with-gentoo-2.6
KiB Mem:    16180920 total,  11965440 free
KiB Swap:   23246548 total,  23050816 free
Timestamp of repository gentoo: Sun, 09 Dec 2018 01:45:01 +0000
Head commit of repository gentoo: 165b0822b2b6a111b478fa84809363cf97039511
sh bash 4.4_p23
ld GNU ld (Gentoo 2.31.1 p4) 2.31.1
ccache version 3.5 [disabled]
app-shells/bash:          4.4_p23::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.26.2::gentoo
dev-lang/python:          2.7.15::gentoo, 3.6.6::gentoo
dev-util/ccache:          3.5-r1::gentoo
dev-util/cmake:           3.13.1::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.40.1::gentoo
sys-apps/sandbox:         2.14::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.16.1-r1::gentoo
sys-devel/binutils:       2.31.1-r2::gentoo
sys-devel/gcc:            8.2.0-r5::gentoo
sys-devel/gcc-config:     2.0::gentoo
sys-devel/libtool:        2.4.6-r5::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 4.9::gentoo (virtual/os-headers)
sys-libs/glibc:           2.28-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://hex.kurly.net/gentoo-portage
    priority: -1000
    sync-rsync-verify-metamanifest: no
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-max-age: 24
    sync-rsync-extra-opts: 

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=native"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--buildpkg-exclude "virtual/* x11-drivers/* sys-kernel/*-sources www-plugins/chrome-binary-plugins" --verbose-slot-rebuilds=n"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN 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 config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.lug.udel.edu/pub/gentoo/ http://mirrors.rit.edu/gentoo/ http://gentoo.mirrors.pair.com/"
INSTALL_MASK="/usr/lib64/systemd /lib64/systemd /etc/systemd /usr/lib/systemd /lib/systemd"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j6"
PKGDIR="/usr/portage/packages"
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"
USE="3dnow 3dnowext X a52 aac acl acpi alsa amd64 bash-completion berkdb bidi branding bzip2 cairo cdda cdr cli consolekit crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam flac fontconfig fortran gbm gdbm gif glamor gpm gtk gtk3 iconv icu ipv6 jpeg lcms libnotify libtirpc mad mmx mmxext mng mp3 mp4 mpeg multilib ncurses nls nptl obex offensive ogg opengl openmp pam pango pcre pdf png policykit ppds pulseaudio qt5 readline sdl seccomp spell sse sse2 ssl startup-notification svg tcpd threads tiff truetype udev udisks unicode upower usb vaapi vdpau vorbis wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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 plan sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-1" POSTGRES_TARGETS="postgres9_5 postgres10" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" RUBY_TARGETS="ruby23 ruby24" USERLAND="GNU" VIDEO_CARDS="radeon r600" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 4 Davide Pesavento gentoo-dev 2019-01-19 18:50:06 UTC
Please test with qtcore-5.11.3-r1 or later.
Comment 5 Mike Lothian 2019-02-05 12:20:19 UTC
This is still happening with Qt 5.12.0
Comment 6 Mike Lothian 2019-03-18 09:47:58 UTC
strip --remove-section=.note.ABI-tag /usr/lib64/libQt5Core.so
Comment 7 Steven Trogdon 2019-03-27 20:22:32 UTC
This also happens in Prefix with both dev-qt/qtgui-5.11.3 and dev-qt/qtgui-5.12.2

strip --remove-section=.note.ABI-tag 'EPREFIX'/usr/lib64/libQt5Core.so

fixes the issue here.
Comment 8 Martin Mokrejš 2019-03-30 18:00:52 UTC
I am on Prefix as well but I think the main problem is that a bundled and outdated copy is executed whuile "${EPREFIX}"/usr/bin/qvkgen is not. I ran into the issue because the bundled qvkgen needs old libssl whereas my "${EPREFIX}"/usr/bin/qvkgen is functional.

>>> Source configured.
>>> Compiling source in /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2 ...
 * Running emake in src/tools/qvkgen
make -j4 
x86_64-pc-linux-gnu-g++ -c -O2 -pipe -O2 -pipe -march=native -ftree-vectorize -std=c++1z -fno-exceptions -Wall -W -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -D_REENTRANT -fPIC -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_USE_QSTRINGBUILDER -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -isystem /apps/gentoo/usr/include/qt5 -isystem /apps/gentoo/usr/include/qt5/QtCore -I.moc -I../../../mkspecs/linux-g++ -o .obj/qvkgen.o qvkgen.cpp
x86_64-pc-linux-gnu-g++ -Wl,--as-needed -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../ -o ../../../bin/qvkgen .obj/qvkgen.o   -lQt5Core -lpthread   
 * Running emake in src/gui
make -j4 
/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/src/gui/qvkgen_wrapper.sh vulkan/vk.xml /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/header.LGPL vulkan/qvulkanfunctions
perl /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/mkspecs/features/data/unix/findclasslist.pl < QtGui.version.in > QtGui.version
/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/bin/qvkgen: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
make: *** [Makefile:1590: vulkan/qvulkanfunctions.h] Error 127
make: *** Waiting for unfinished jobs....
 * ERROR: dev-qt/qtgui-5.12.2::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=dev-qt/qtgui-5.12.2::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-qt/qtgui-5.12.2::gentoo'`.
 * The complete build log is located at '/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/temp/build.log'.
 * The ebuild environment file is located at '/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/temp/environment'.
 * Working directory: '/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/src/gui'
 * S: '/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2'



$ ldd /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/bin/qvkgen 
	linux-vdso.so.1 (0x00007fffbd3f4000)
	libQt5Core.so.5 => not found
	libc.so.6 => /apps/gentoo/lib64/libc.so.6 (0x00002aaffe0c5000)
	/apps/gentoo/lib64/ld-linux-x86-64.so.2 (0x00002aaffe05f000)
$ ldd /apps/gentoo/usr/bin/qvkgen
	linux-vdso.so.1 (0x00007ffe94da1000)
	libstdc++.so.6 => /apps/gentoo/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/libstdc++.so.6 (0x00002afee4639000)
	libgcc_s.so.1 => /apps/gentoo/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/libgcc_s.so.1 (0x00002afee4841000)
	libc.so.6 => /apps/gentoo/lib64/libc.so.6 (0x00002afee485b000)
	libm.so.6 => /apps/gentoo/lib64/libm.so.6 (0x00002afee4a30000)
	/apps/gentoo/lib64/ld-linux-x86-64.so.2 (0x00002afee45d2000)
$ 
$ find  /apps/gentoo/usr/lib64 -name libQtCore\*
$
Comment 9 Martin Mokrejš 2019-03-30 18:35:44 UTC
$ diff -u /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/src/gui/qvkgen_wrapper.sh.old /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/src/gui/qvkgen_wrapper.sh
--- /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/src/gui/qvkgen_wrapper.sh.old	2019-03-30 19:04:58.403499348 +0100
+++ /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/src/gui/qvkgen_wrapper.sh	2019-03-30 19:04:28.261688977 +0100
@@ -3,4 +3,4 @@
 export LD_LIBRARY_PATH
 QT_PLUGIN_PATH=/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}
 export QT_PLUGIN_PATH
-exec /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/bin/qvkgen "$@"
+exec /apps/gentoo/usr/bin/qvkgen "$@"
$

But it is not enough:

$ ebuild /apps/gentoo/usr/portage/dev-qt/qtgui/qtgui-5.12.2.ebuild compile
>>> Existing ${T}/environment for 'qtgui-5.12.2' will be sourced. Run
>>> 'clean' to start with a fresh environment.
>>> Checking qtbase-everywhere-src-5.12.2.tar.xz's mtime...
>>> WORKDIR is up-to-date, keeping...
 * checking ebuild checksums ;-) ...                                                                                                                                                                                                  [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                                                                                                 [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                                                                                                [ ok ]
>>> It appears that 'setup' has already executed for 'qtgui-5.12.2'; skipping.
>>> Remove '/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/.setuped' to force setup.
>>> It appears that 'unpack' has already executed for 'qtgui-5.12.2'; skipping.
>>> Remove '/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/.unpacked' to force unpack.
>>> It appears that 'prepare' has already executed for 'qtgui-5.12.2'; skipping.
>>> Remove '/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/.prepared' to force prepare.
>>> It appears that 'configure' has already executed for 'qtgui-5.12.2'; skipping.
>>> Remove '/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/.configured' to force configure.
>>> Compiling source in /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2 ...
 * Running emake in src/tools/qvkgen
make -j4 
make: Nothing to be done for 'first'.
 * Running emake in src/gui
make -j4 
/apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/src/gui/qvkgen_wrapper.sh vulkan/vk.xml /apps/gentoo/var/tmp/portage/dev-qt/qtgui-5.12.2/work/qtbase-everywhere-src-5.12.2/header.LGPL vulkan/qvulkanfunctions
qvkgen: could not exec '/apps/gentoo/usr/lib64/qt5/bin/qvkgen': No such file or directory
make: *** [Makefile:1590: vulkan/qvulkanfunctions.h] Error 1
 * ERROR: dev-qt/qtgui-5.12.2::gentoo failed (compile phase):
 *   emake failed





$ ls -latr /apps/gentoo/usr/bin/qtchooser 
-rwxr-xr-x 1 mmokrejs mmokrejs 59104 Mar 30 12:20 /apps/gentoo/usr/bin/qtchooser
$ equery belongs qtchooser
 * Searching for qtchooser ... 
dev-qt/qtchooser-66 (/apps/gentoo/usr/bin/qtchooser)
dev-qt/qtchooser-66 (/apps/gentoo/etc/xdg/qtchooser)
dev-qt/qtcore-5.12.2 (/apps/gentoo/etc/xdg/qtchooser)
$


...

>>> No outdated packages were found on your system.

!!! existing preserved libs:
>>> package: dev-qt/qtgui-5.9.4-r3
 *  - /apps/gentoo/usr/lib64/libQt5Gui.so.5
 *  - /apps/gentoo/usr/lib64/libQt5Gui.so.5.9.4
 *      used by /apps/gentoo/usr/lib64/libpoppler-qt5.so.1.15.0 (app-text/poppler-0.67.0)
Use emerge @preserved-rebuild to rebuild packages using these libraries


$ equery belongs /apps/gentoo/usr/lib64/qt5/bin/qvkgen
 * Searching for /apps/gentoo/usr/lib64/qt5/bin/qvkgen ... 
$


Aha, so the symlink is not owned by any package?

$ ls -latr /apps/gentoo/usr/bin/qvkgen
lrwxrwxrwx 1 mmokrejs mmokrejs 9 Mar 30 19:11 /apps/gentoo/usr/bin/qvkgen -> qtchooser
$

Well, I unmerged all dev-qt/ package and started re-merging so indeed at the moment I do not have dev-qt/qt-gui installed:


$ emerge -pv dev-qt/qtgui

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] dev-qt/qtgui-5.12.2:5/5.12::gentoo  USE="dbus gif jpeg png vnc xcb -accessibility -debug -egl -eglfs -evdev -gles2 -ibus -libinput -test -tslib -tuio (-udev)" 0 KiB


So now I see my attempt at patching was useless, and that my conclusion that the package runs a bundled copy while ignoring my "${EPREFIX}"/usr/bin/qvkgen was wrong too.

I got into this trap because of libssl-1.0 vs. 1.1 incompatibilities.






$ ls -latr /apps/gentoo//usr/lib64/libQt5Core.so*  
-rwxr-xr-x 1 mmokrejs mmokrejs 6149648 Mar 30 14:50 /apps/gentoo//usr/lib64/libQt5Core.so.5.12.2
lrwxrwxrwx 1 mmokrejs mmokrejs      20 Mar 30 14:50 /apps/gentoo//usr/lib64/libQt5Core.so.5.12 -> libQt5Core.so.5.12.2
lrwxrwxrwx 1 mmokrejs mmokrejs      20 Mar 30 14:50 /apps/gentoo//usr/lib64/libQt5Core.so.5 -> libQt5Core.so.5.12.2
lrwxrwxrwx 1 mmokrejs mmokrejs      20 Mar 30 14:50 /apps/gentoo//usr/lib64/libQt5Core.so -> libQt5Core.so.5.12.2
$ strip --remove-section=.note.ABI-tag /apps/gentoo/usr/lib/libQt5Core.so.5.12.2
$
$ ebuild /apps/gentoo/usr/portage/dev-qt/qtgui/qtgui-5.12.2.ebuild compile
...
Works, thanks to Mike Lothian for the initial report!
Comment 10 Guilherme Amadio gentoo-dev 2019-06-20 06:43:54 UTC
This also happens when trying to emerge qtgui on prefix on Linux.
Comment 11 Guilherme Amadio gentoo-dev 2019-06-20 06:44:55 UTC
>>> Compiling source in /cvmfs/portage/dev-qt/qtgui-5.12.3-r1/work/qtbase-everywhere-src-5.12.3 ...
 * Running emake in src/tools/qvkgen
make -j3 -l3 
x86_64-pc-linux-gnu-g++ -c -O2 -pipe -O2 -pipe -std=c++1z -fno-exceptions -Wall -W -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -D_REENTRANT -fPIC -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_USE_QSTRINGBUILDER -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -isystem /cvmfs/sft.cern.ch/lcg/contrib/gentoo/linux/x86_64/usr/include/qt5 -isystem /cvmfs/sft.cern.ch/lcg/contrib/gentoo/linux/x86_64/usr/include/qt5/QtCore -I.moc -I../../../mkspecs/linux-g++ -o .obj/qvkgen.o qvkgen.cpp
x86_64-pc-linux-gnu-g++ -Wl,-O1 -Wl,--as-needed -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../ -o ../../../bin/qvkgen .obj/qvkgen.o   -lQt5Core -lpthread   
 * Running emake in src/gui
make -j3 -l3 
/cvmfs/portage/dev-qt/qtgui-5.12.3-r1/work/qtbase-everywhere-src-5.12.3/src/gui/qvkgen_wrapper.sh vulkan/vk.xml /cvmfs/portage/dev-qt/qtgui-5.12.3-r1/work/qtbase-everywhere-src-5.12.3/header.LGPL vulkan/qvulkanfunctions
perl /cvmfs/portage/dev-qt/qtgui-5.12.3-r1/work/qtbase-everywhere-src-5.12.3/mkspecs/features/data/unix/findclasslist.pl < QtGui.version.in > QtGui.version
/cvmfs/portage/dev-qt/qtgui-5.12.3-r1/work/qtbase-everywhere-src-5.12.3/bin/qvkgen: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
make: *** [Makefile:1578: vulkan/qvulkanfunctions.h] Error 127
make: *** Waiting for unfinished jobs....
Comment 12 jospezial 2019-06-22 06:16:43 UTC
[39/56] : && /usr/bin/x86_64-pc-linux-gnu-g++ -fPIC -march=native -O2 -pipe -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fdiagnostics-color=always -pedantic -Wzero-as-null-pointer-constant  -Wl,--no-undefined -Wl,--enable-new-dtags -Wl,-O1 -Wl,--as-needed   /usr/lib/libQt5Widgets.so /usr/lib/libQt5Gui.so /usr/lib/libQt5Core.so /usr/lib/libQt5Widgets.so /usr/lib/libQt5Gui.so /usr/lib/libQt5Core.so -shared -Wl,-soname,libKF5JsEmbed.so.5 -o bin/libKF5JsEmbed.so.5.60.0 src/kjsembed/CMakeFiles/KF5JsEmbed.dir/KF5JsEmbed_autogen/mocs_compilation.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/kjseglobal.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/binding_support.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/static_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/variant_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/object_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/builtins.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/fileio.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/jseventmapper.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/eventproxy.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/slotproxy.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/jseventutils.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qobject_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/kjsembed.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/value_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/iosupport.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qwidget_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qaction_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qlayout_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qpainter_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/settings.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/svg_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/filedialog_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/application.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/color.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/dom.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/font.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/image.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/pen.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/pixmap.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/point.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/rect.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/size.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/url.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/brush.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/QBrush_bind.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/quiloader_binding.cpp.o  /usr/lib64/libKF5I18n.so.5.60.0 /usr/lib64/libKF5JS.so.5.60.0 /usr/lib64/libQt5UiTools.a /usr/lib64/libQt5Xml.so.5.13.0 /usr/lib64/libQt5Svg.so.5.13.0 -lpthread /usr/lib/libGL.so /usr/lib64/libQt5Widgets.so.5.13.0 /usr/lib64/libQt5Gui.so.5.13.0 /usr/lib64/libQt5Core.so.5.13.0 && :
FAILED: bin/libKF5JsEmbed.so.5.60.0 
: && /usr/bin/x86_64-pc-linux-gnu-g++ -fPIC -march=native -O2 -pipe -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fdiagnostics-color=always -pedantic -Wzero-as-null-pointer-constant  -Wl,--no-undefined -Wl,--enable-new-dtags -Wl,-O1 -Wl,--as-needed   /usr/lib/libQt5Widgets.so /usr/lib/libQt5Gui.so /usr/lib/libQt5Core.so /usr/lib/libQt5Widgets.so /usr/lib/libQt5Gui.so /usr/lib/libQt5Core.so -shared -Wl,-soname,libKF5JsEmbed.so.5 -o bin/libKF5JsEmbed.so.5.60.0 src/kjsembed/CMakeFiles/KF5JsEmbed.dir/KF5JsEmbed_autogen/mocs_compilation.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/kjseglobal.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/binding_support.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/static_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/variant_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/object_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/builtins.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/fileio.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/jseventmapper.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/eventproxy.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/slotproxy.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/jseventutils.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qobject_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/kjsembed.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/value_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/iosupport.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qwidget_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qaction_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qlayout_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/qpainter_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/settings.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/svg_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/filedialog_binding.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/application.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/color.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/dom.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/font.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/image.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/pen.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/pixmap.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/point.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/rect.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/size.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/url.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/brush.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/QBrush_bind.cpp.o src/kjsembed/CMakeFiles/KF5JsEmbed.dir/quiloader_binding.cpp.o  /usr/lib64/libKF5I18n.so.5.60.0 /usr/lib64/libKF5JS.so.5.60.0 /usr/lib64/libQt5UiTools.a /usr/lib64/libQt5Xml.so.5.13.0 /usr/lib64/libQt5Svg.so.5.13.0 -lpthread /usr/lib/libGL.so /usr/lib64/libQt5Widgets.so.5.13.0 /usr/lib64/libQt5Gui.so.5.13.0 /usr/lib64/libQt5Core.so.5.13.0 && :
x86_64-pc-linux-gnu-g++: error: /usr/lib/libQt5Widgets.so: No such file or directory
x86_64-pc-linux-gnu-g++: error: /usr/lib/libQt5Gui.so: No such file or directory
x86_64-pc-linux-gnu-g++: error: /usr/lib/libQt5Core.so: No such file or directory
x86_64-pc-linux-gnu-g++: error: /usr/lib/libQt5Widgets.so: No such file or directory
x86_64-pc-linux-gnu-g++: error: /usr/lib/libQt5Gui.so: No such file or directory
x86_64-pc-linux-gnu-g++: error: /usr/lib/libQt5Core.so: No such file or directory
ninja: build stopped: subcommand failed.
 * ERROR: kde-frameworks/kjsembed-9999::kde failed (compile phase):
 *   ninja -v -j1 -l0 failed
Comment 13 jospezial 2019-06-22 06:23:18 UTC
I recently did the libdirs move for the new  gentoo profile.

We need something updated, in qt or the failing packages?
Comment 14 Martin Gysel (bearsh) 2019-07-13 16:01:35 UTC
can the title please be adjusted as for me and other people here this happens on 'normal' (no WSL) gentoo
Comment 15 Steven Trogdon 2019-09-12 15:28:52 UTC
This still happens when installing dev-qt/qtgui-5.12.4 in prefix:

 ^[[32;01m*^[[0m Running emake in src/tools/qvkgen
make -j13
x86_64-pc-linux-gnu-g++ -c -march=native -O0 -pipe -g -ggdb -std=c++1z -fno-exceptions -Wall -W -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -Wno-deprecated-copy -Wno-redundant-move -Wno-format-overflow -Wno-init-list-lifetime -D_REENTRANT -fPIC -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_USE_QSTRINGBUILDER -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -isystem /storage/strogdon/gentoo-rap/usr/include/qt5 -isystem /storage/strogdon/gentoo-rap/usr/include/qt5/QtCore -I.moc -I../../../mkspecs/linux-g++ -o .obj/qvkgen.o qvkgen.cpp
x86_64-pc-linux-gnu-g++ -Wl,-O1 -Wl,--as-needed -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../ -o ../../../bin/qvkgen .obj/qvkgen.o   /storage/strogdon/gentoo-rap/usr/lib64/libQt5Core.so -lpthread
 ^[[32;01m*^[[0m Running emake in src/gui
make -j13
/storage/strogdon/gentoo-rap/var/tmp/portage/dev-qt/qtgui-5.12.4/work/qtbase-everywhere-src-5.12.4/src/gui/qvkgen_wrapper.sh vulkan/vk.xml /storage/strogdon/gentoo-rap/var/tmp/portage/dev-qt/qtgui-5.12.4/work/qtbase-everywhere-src-5.12.4/header.LGPL vulkan/qvulkanfunctions
/storage/strogdon/gentoo-rap/var/tmp/portage/dev-qt/qtgui-5.12.4/work/qtbase-everywhere-src-5.12.4/bin/qvkgen: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
make: *** [Makefile:1625: vulkan/qvulkanfunctions.h] Error 127
 ^[[31;01m*^[[0m ERROR: dev-qt/qtgui-5.12.4::gentoo failed (compile phase):
 ^[[31;01m*^[[0m   emake failed

As above

strip --remove-section=.note.ABI-tag 'EPREFIX'/usr/lib64/libQt5Core.so

fixes things.
Comment 17 Benda Xu gentoo-dev 2019-11-18 04:52:03 UTC
Created attachment 596608 [details, diff]
qtcore.patch

I intend to commit this patch with a revbump of qtcore.

commit d5dea1e5b1f5819148dc51c09bb397f4a336a7c7 (HEAD -> qt)
Author: Benda Xu <heroxbd@gentoo.org>
Date:   Mon Nov 18 12:35:34 2019 +0800

    dev-qt/qtcore: disable renameat2 and getentropy for old linux.
    
      Latest Prefix profiles assume >=linux-3.2.  But renameat2() and
      getentropy() are not available until linux-3.17.
    
    Bug: https://bugs.gentoo.org/669994
    Package-Manager: Portage-2.3.79, Repoman-2.3.17
    Signed-off-by: Benda Xu <heroxbd@gentoo.org>


Does it look good to you?
Comment 18 Davide Pesavento gentoo-dev 2019-11-18 05:32:23 UTC
NAK from me.

The problem isn't specific to prefix, and on the other hand not all prefix installations need the workaround. So tying it to USE=prefix seems wrong.
I suggest introducing a "old-kernel" USE flag, similar to what has been proposed in bug 675858, so that users can easily turn it on/off. Then you can default-enable (or even force-enable) the flag in prefix profiles.
Comment 19 Benda Xu gentoo-dev 2019-11-18 09:09:22 UTC
(In reply to Davide Pesavento from comment #18)
> NAK from me.
> 
> The problem isn't specific to prefix, and on the other hand not all prefix
> installations need the workaround. So tying it to USE=prefix seems wrong.
> I suggest introducing a "old-kernel" USE flag, similar to what has been
> proposed in bug 675858, so that users can easily turn it on/off. Then you
> can default-enable (or even force-enable) the flag in prefix profiles.

Davide, I agree!  It has better be managed by a USE flag.

I concern is that USE=old-kernel has relative meaning across time, it could mean linux-3.2 this year, and might mean linux-4.4 2 years later.  A better name is more desirable.
Comment 20 Benda Xu gentoo-dev 2019-11-18 09:29:22 UTC
*** Bug 699194 has been marked as a duplicate of this bug. ***
Comment 21 Benda Xu gentoo-dev 2019-12-17 01:10:19 UTC
Created attachment 599922 [details, diff]
qt-core-5.13.2.patch

Qt Team, how about USE=kernel-3_17?
Comment 22 Benda Xu gentoo-dev 2019-12-22 08:28:59 UTC
Created attachment 600332 [details, diff]
qtcore-5.13.2.patch
Comment 23 Benda Xu gentoo-dev 2019-12-22 08:44:33 UTC
Created attachment 600334 [details, diff]
qtcore-5.13.2.patch
Comment 24 Benda Xu gentoo-dev 2019-12-22 08:52:45 UTC
(In reply to Davide Pesavento from comment #18)
> NAK from me.
> 
> The problem isn't specific to prefix, and on the other hand not all prefix
> installations need the workaround. So tying it to USE=prefix seems wrong.
> I suggest introducing a "old-kernel" USE flag, similar to what has been
> proposed in bug 675858, so that users can easily turn it on/off. Then you
> can default-enable (or even force-enable) the flag in prefix profiles.

Hi Davide, what do you think of the new patch?  I have added a USE flag kernel-3_17.
Comment 25 Davide Pesavento gentoo-dev 2019-12-23 01:40:54 UTC
(In reply to Benda Xu from comment #19)
> I concern is that USE=old-kernel has relative meaning across time, it could
> mean linux-3.2 this year, and might mean linux-4.4 2 years later.  A better
> name is more desirable.

I don't think that's a problem, in fact I'd say it's an advantage. I don't think we want to end up with multiple USE flags for different kernel versions when we'll conditionally enable more syscalls (e.g. statx) in the future. But I don't have a strong opinion on this. What do others think?
Comment 26 Benda Xu gentoo-dev 2019-12-23 03:16:43 UTC
(In reply to Davide Pesavento from comment #25)
> (In reply to Benda Xu from comment #19)
> > I concern is that USE=old-kernel has relative meaning across time, it could
> > mean linux-3.2 this year, and might mean linux-4.4 2 years later.  A better
> > name is more desirable.
> 
> I don't think that's a problem, in fact I'd say it's an advantage. I don't
> think we want to end up with multiple USE flags for different kernel
> versions when we'll conditionally enable more syscalls (e.g. statx) in the
> future. 

In Prefix, we do have multiple levels of compatibility hacks, because there is still kernel-2.6.18 out there running in the wild.

https://gitweb.gentoo.org/repo/gentoo.git/tree/profiles/default/linux/amd64/17.0/no-multilib/prefix

kernel-2.6.16+
kernel-2.6.32+
kernel-3.2+

The version numbers are selected by glibc-2.19 and glibc-2.25.


It does not harm if we end up with only kernel-3_17.  I am replacing "." with "_" because PMS does not permit "." in USE flags, and stripping "+" to avoid confusion like IUSE="+kernel-3_17+".

> But I don't have a strong opinion on this. What do others think?

Chiitoo has given a green light on IRC and said it's up to you to finally decide.
Comment 27 Chiitoo gentoo-dev 2019-12-23 17:33:16 UTC
I just remembered QA pretty much banning underscores in USE-flags, so there is that...

Some discussion here: https://archives.gentoo.org/gentoo-dev/message/d86232277be6bb38076a089ed626ed71

But yes, I'd definitely go with pesa's intuition here.
Comment 28 Benda Xu gentoo-dev 2019-12-24 02:18:34 UTC
(In reply to Chiitoo from comment #27)
> I just remembered QA pretty much banning underscores in USE-flags, so there
> is that...
> 
> Some discussion here:
> https://archives.gentoo.org/gentoo-dev/message/
> d86232277be6bb38076a089ed626ed71
> 
> But yes, I'd definitely go with pesa's intuition here.

OK, let's make the USE flags as "old-kernel".
Comment 29 Martin Mokrejš 2019-12-24 09:17:14 UTC
(In reply to Benda Xu from comment #28)
> (In reply to Chiitoo from comment #27)
> > But yes, I'd definitely go with pesa's intuition here.
> 
> OK, let's make the USE flags as "old-kernel".

Noooo. Will this be explained in metadata.xml what this flag means? It is unclear to me. What is the "property" of the old kernel missing in "newer" kernels?

Hint:


    dev-qt/qtcore: disable renameat2 and getentropy for old linux.
    
      Latest Prefix profiles assume >=linux-3.2.  But renameat2() and
      getentropy() are not available until linux-3.17.


How about pre_linux-3_17?
Comment 30 Mike Lothian 2019-12-24 10:57:50 UTC
Do we really need useflags for this?

Can we not do a kernel version check and do the correct configure options automatically?
Comment 31 Andreas Sturmlechner gentoo-dev 2019-12-24 11:21:46 UTC
Runtime kernel version is outside the scope of the package manager.
Comment 32 Mike Lothian 2019-12-24 11:25:05 UTC
Well yes, ideally this would be done by the configure of Qt

But we could do a uname -r and parse the output if we're on linux - it's better than silently failing, or adding strange useflags
Comment 33 Benda Xu gentoo-dev 2019-12-24 14:14:37 UTC
(In reply to Martin Mokrejš from comment #29)
> (In reply to Benda Xu from comment #28)
> > (In reply to Chiitoo from comment #27)
> > > But yes, I'd definitely go with pesa's intuition here.
> > 
> > OK, let's make the USE flags as "old-kernel".
> 
> Noooo. Will this be explained in metadata.xml what this flag means? It is
> unclear to me. What is the "property" of the old kernel missing in "newer"
> kernels?
> 
> Hint:
> 
>     dev-qt/qtcore: disable renameat2 and getentropy for old linux.
>     
>       Latest Prefix profiles assume >=linux-3.2.  But renameat2() and
>       getentropy() are not available until linux-3.17.
> 
> 
> How about pre_linux-3_17?

It has been discussed in Comment 27 that PMS reserves '_' for USE expansion.
Comment 34 Benda Xu gentoo-dev 2019-12-24 14:32:45 UTC
(In reply to Mike Lothian from comment #32)
> Well yes, ideally this would be done by the configure of Qt
> 
> But we could do a uname -r and parse the output if we're on linux - it's
> better than silently failing, or adding strange useflags

Do you mean a runtime check of kernel version from inside the libQtCore.so.5?
Comment 35 Benda Xu gentoo-dev 2020-03-10 00:26:21 UTC
*** Bug 675858 has been marked as a duplicate of this bug. ***
Comment 36 Benda Xu gentoo-dev 2020-03-10 00:27:22 UTC
Created attachment 617768 [details, diff]
qtcore.patch

Output of `diff -u qtcore-5.14.1-r{1,2}.ebuild` that I intend to commit.  Please review.
Comment 37 Benda Xu gentoo-dev 2020-03-10 00:29:39 UTC
Created attachment 617770 [details, diff]
qtcore-metadata.patch

Corresponding metadata.xml update, the USE flag name is inspired by https://packages.gentoo.org/useflags/modern-kernel .
Comment 38 Benda Xu gentoo-dev 2020-03-16 02:21:25 UTC
Hi, I plan to commit the attached patch in a week if there is no objection.
Comment 39 Andreas Sturmlechner gentoo-dev 2020-03-20 20:24:49 UTC
- I dislike using 'modern-kernel' over 'old-kernel' for which there is precedent as well (net-misc/lldpd). Even if you enable the flag by default, more logically sound is *enabling* the workaround by *enabling* the flag.
- Sorting needed in IUSE, myconf and metadata.xml.
- Add bug reference in comments inside myconf
Comment 40 Benda Xu gentoo-dev 2020-03-22 14:13:24 UTC
Created attachment 624466 [details, diff]
qtcore.patch

No problem, as you wish.  Here is the output of diff -u qtcore-5.14.1-r{1,2}.ebuild.
Comment 41 Benda Xu gentoo-dev 2020-03-22 14:16:19 UTC
Created attachment 624468 [details, diff]
qtcore.patch

Update according to asturm's comments.
Comment 42 Benda Xu gentoo-dev 2020-03-22 14:19:18 UTC
Created attachment 624470 [details, diff]
qtcore-metadata.patch

Replace modern-kernel with old-kernel.
Comment 43 Andreas Sturmlechner gentoo-dev 2020-03-22 16:02:58 UTC
Should we somehow check for runtime kernel in pkg_setup and then warn if e.g. old-kernel is not selected?
Comment 44 Benda Xu gentoo-dev 2020-03-23 00:48:45 UTC
Created attachment 624660 [details, diff]
qtcore.patch

Andreas, sure.  How about this?  BTW, the sanity check is done in pkg_pretend() instead of pkg_setup().
Comment 45 Andreas Sturmlechner gentoo-dev 2020-03-23 12:51:17 UTC
(In reply to Benda Xu from comment #44)
> BTW, the sanity check is done in pkg_pretend() instead of pkg_setup().

If you are sure that qtcore will be successful, yes, if you want to make sure the info reaches the user in any case then pkg_setup is better.
Comment 46 Andreas Sturmlechner gentoo-dev 2020-03-23 17:39:46 UTC
(In reply to Benda Xu from comment #44)
> Created attachment 624660 [details, diff] [details, diff]
> qtcore.patch

I believe this needs at least two amendments:

use kernel_linux # don't warn on non-linux
get_running_version # really get the running version, not the sources
Comment 47 Andreas Sturmlechner gentoo-dev 2020-03-23 17:52:54 UTC
(In reply to Benda Xu from comment #44)
> Created attachment 624660 [details, diff] [details, diff]
> qtcore.patch
How about adding bug ref to the output?
Comment 48 Benda Xu gentoo-dev 2020-03-25 12:51:49 UTC
Created attachment 625750 [details, diff]
qtcore.patch

Thanks for commenting.  How about this?
Comment 49 Andreas Sturmlechner gentoo-dev 2020-03-25 17:58:22 UTC
lgtm, @pesa what do you think now?

@heroxbd, can you create a GitHub PR in qt overlay for this change to 5.14.9999, 5.15.9999 and 5.9999 ebuilds?
Comment 50 Benda Xu gentoo-dev 2020-03-26 03:09:43 UTC
(In reply to Andreas Sturmlechner from comment #49)
> lgtm, @pesa what do you think now?
> 
> @heroxbd, can you create a GitHub PR in qt overlay for this change to
> 5.14.9999, 5.15.9999 and 5.9999 ebuilds?

Hi Andreas, thanks for all the comments and I am glad that it finally evolves into shape.  Unfortunately, I don't think I have time for this task until April 8.  If you think it's ready and not willing to wait, please go ahead.

Yours,
Benda
Comment 51 Benda Xu gentoo-dev 2020-04-08 08:53:16 UTC
(In reply to Andreas Sturmlechner from comment #49)
> lgtm, @pesa what do you think now?
> 
> @heroxbd, can you create a GitHub PR in qt overlay for this change to
> 5.14.9999, 5.15.9999 and 5.9999 ebuilds?

At https://github.com/gentoo/qt/pull/214 please review.
Comment 52 Larry the Git Cow gentoo-dev 2020-04-09 18:10:08 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/qt.git/commit/?id=35678fe2decea3d9de1a317c9e8e6a031437b334

commit 35678fe2decea3d9de1a317c9e8e6a031437b334
Author:     Benda Xu <heroxbd@gentoo.org>
AuthorDate: 2020-04-08 08:50:19 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2020-04-09 18:09:50 +0000

    dev-qt/qtcore: enable renameat2 and getentropy conditionally
    
    Add USE=old-kernel to switch off the new syscalls.
    
    renameat2() and getentropy() are not available until linux-3.17.
    
    Bug: https://bugs.gentoo.org/669994
    Package-Manager: Portage-2.3.88, Repoman-2.3.18
    Signed-off-by: Benda Xu <heroxbd@gentoo.org>
    Closes: https://github.com/gentoo/qt/pull/214
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 dev-qt/qtcore/metadata.xml            |  1 +
 dev-qt/qtcore/qtcore-5.14.9999.ebuild | 16 ++++++++++++++--
 dev-qt/qtcore/qtcore-5.15.9999.ebuild | 16 ++++++++++++++--
 dev-qt/qtcore/qtcore-5.9999.ebuild    | 18 +++++++++++++++---
 4 files changed, 44 insertions(+), 7 deletions(-)
Comment 53 Larry the Git Cow gentoo-dev 2020-04-09 21:37:10 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56acf9bac388533631838ff019e20eb41af0bbe0

commit 56acf9bac388533631838ff019e20eb41af0bbe0
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2020-04-09 20:00:29 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2020-04-09 21:36:28 +0000

    dev-qt: Add Qt 5.14.2
    
    Closes: https://bugs.gentoo.org/669994
    Closes: https://bugs.gentoo.org/710866
    Closes: https://bugs.gentoo.org/713722
    Closes: https://bugs.gentoo.org/716754
    Package-Manager: Portage-2.3.98, Repoman-2.3.22
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 dev-qt/assistant/Manifest                          |   1 +
 dev-qt/assistant/assistant-5.14.2.ebuild           |  55 ++++++
 dev-qt/designer/Manifest                           |   1 +
 dev-qt/designer/designer-5.14.2.ebuild             |  57 +++++++
 dev-qt/linguist-tools/Manifest                     |   1 +
 dev-qt/linguist-tools/linguist-tools-5.14.2.ebuild |  35 ++++
 dev-qt/linguist/Manifest                           |   1 +
 dev-qt/linguist/linguist-5.14.2.ebuild             |  48 ++++++
 dev-qt/pixeltool/Manifest                          |   1 +
 dev-qt/pixeltool/pixeltool-5.14.2.ebuild           |  25 +++
 dev-qt/qdbus/Manifest                              |   1 +
 dev-qt/qdbus/qdbus-5.14.2.ebuild                   |  25 +++
 dev-qt/qdbusviewer/Manifest                        |   1 +
 dev-qt/qdbusviewer/qdbusviewer-5.14.2.ebuild       |  45 +++++
 dev-qt/qdoc/Manifest                               |   1 +
 dev-qt/qdoc/qdoc-5.14.2.ebuild                     |  41 +++++
 dev-qt/qt-docs/Manifest                            |  54 ++++++
 dev-qt/qt-docs/qt-docs-5.14.2_p202003291239.ebuild |  89 ++++++++++
 dev-qt/qt3d/Manifest                               |   1 +
 dev-qt/qt3d/qt3d-5.14.2.ebuild                     |  34 ++++
 dev-qt/qtbluetooth/Manifest                        |   1 +
 dev-qt/qtbluetooth/qtbluetooth-5.14.2.ebuild       |  33 ++++
 dev-qt/qtcharts/Manifest                           |   1 +
 dev-qt/qtcharts/qtcharts-5.14.2.ebuild             |  29 ++++
 dev-qt/qtconcurrent/Manifest                       |   1 +
 dev-qt/qtconcurrent/qtconcurrent-5.14.2.ebuild     |  23 +++
 dev-qt/qtcore/Manifest                             |   1 +
 dev-qt/qtcore/metadata.xml                         |   1 +
 dev-qt/qtcore/qtcore-5.14.2.ebuild                 | 101 +++++++++++
 dev-qt/qtdatavis3d/Manifest                        |   1 +
 dev-qt/qtdatavis3d/qtdatavis3d-5.14.2.ebuild       |  31 ++++
 dev-qt/qtdbus/Manifest                             |   1 +
 dev-qt/qtdbus/qtdbus-5.14.2.ebuild                 |  43 +++++
 dev-qt/qtdeclarative/Manifest                      |   1 +
 dev-qt/qtdeclarative/qtdeclarative-5.14.2.ebuild   |  53 ++++++
 dev-qt/qtdiag/Manifest                             |   1 +
 dev-qt/qtdiag/qtdiag-5.14.2.ebuild                 |  36 ++++
 dev-qt/qtgamepad/Manifest                          |   1 +
 dev-qt/qtgamepad/qtgamepad-5.14.2.ebuild           |  35 ++++
 dev-qt/qtgraphicaleffects/Manifest                 |   1 +
 .../qtgraphicaleffects-5.14.2.ebuild               |  21 +++
 dev-qt/qtgui/Manifest                              |   1 +
 dev-qt/qtgui/qtgui-5.14.2.ebuild                   | 184 +++++++++++++++++++++
 dev-qt/qthelp/Manifest                             |   1 +
 dev-qt/qthelp/qthelp-5.14.2.ebuild                 |  29 ++++
 dev-qt/qtimageformats/Manifest                     |   1 +
 dev-qt/qtimageformats/qtimageformats-5.14.2.ebuild |  30 ++++
 dev-qt/qtlocation/Manifest                         |   1 +
 dev-qt/qtlocation/qtlocation-5.14.2.ebuild         |  46 ++++++
 dev-qt/qtmultimedia/Manifest                       |   1 +
 dev-qt/qtmultimedia/qtmultimedia-5.14.2.ebuild     |  68 ++++++++
 dev-qt/qtnetwork/Manifest                          |   1 +
 dev-qt/qtnetwork/metadata.xml                      |   1 +
 dev-qt/qtnetwork/qtnetwork-5.14.2.ebuild           |  62 +++++++
 dev-qt/qtnetworkauth/Manifest                      |   1 +
 dev-qt/qtnetworkauth/qtnetworkauth-5.14.2.ebuild   |  20 +++
 dev-qt/qtopengl/Manifest                           |   1 +
 dev-qt/qtopengl/qtopengl-5.14.2.ebuild             |  34 ++++
 dev-qt/qtpaths/Manifest                            |   1 +
 dev-qt/qtpaths/qtpaths-5.14.2.ebuild               |  23 +++
 dev-qt/qtplugininfo/Manifest                       |   1 +
 dev-qt/qtplugininfo/qtplugininfo-5.14.2.ebuild     |  23 +++
 dev-qt/qtpositioning/Manifest                      |   1 +
 dev-qt/qtpositioning/qtpositioning-5.14.2.ebuild   |  40 +++++
 dev-qt/qtprintsupport/Manifest                     |   1 +
 dev-qt/qtprintsupport/qtprintsupport-5.14.2.ebuild |  42 +++++
 dev-qt/qtquickcontrols/Manifest                    |   1 +
 .../qtquickcontrols/qtquickcontrols-5.14.2.ebuild  |  32 ++++
 dev-qt/qtquickcontrols2/Manifest                   |   1 +
 .../qtquickcontrols2-5.14.2.ebuild                 |  30 ++++
 dev-qt/qtscript/Manifest                           |   1 +
 dev-qt/qtscript/qtscript-5.14.2.ebuild             |  36 ++++
 dev-qt/qtscxml/Manifest                            |   1 +
 dev-qt/qtscxml/qtscxml-5.14.2.ebuild               |  19 +++
 dev-qt/qtsensors/Manifest                          |   1 +
 dev-qt/qtsensors/qtsensors-5.14.2.ebuild           |  28 ++++
 dev-qt/qtserialbus/Manifest                        |   1 +
 dev-qt/qtserialbus/qtserialbus-5.14.2.ebuild       |  20 +++
 dev-qt/qtserialport/Manifest                       |   1 +
 dev-qt/qtserialport/qtserialport-5.14.2.ebuild     |  27 +++
 dev-qt/qtspeech/Manifest                           |   1 +
 dev-qt/qtspeech/qtspeech-5.14.2.ebuild             |  20 +++
 dev-qt/qtsql/Manifest                              |   1 +
 dev-qt/qtsql/qtsql-5.14.2.ebuild                   |  55 ++++++
 dev-qt/qtsvg/Manifest                              |   1 +
 dev-qt/qtsvg/qtsvg-5.14.2.ebuild                   |  23 +++
 dev-qt/qttest/Manifest                             |   1 +
 dev-qt/qttest/qttest-5.14.2.ebuild                 |  33 ++++
 dev-qt/qttranslations/Manifest                     |   1 +
 dev-qt/qttranslations/qttranslations-5.14.2.ebuild |  19 +++
 dev-qt/qtvirtualkeyboard/Manifest                  |   1 +
 .../qtvirtualkeyboard-5.14.2.ebuild                |  43 +++++
 dev-qt/qtwayland/Manifest                          |   1 +
 dev-qt/qtwayland/qtwayland-5.14.2.ebuild           |  45 +++++
 dev-qt/qtwebchannel/Manifest                       |   1 +
 dev-qt/qtwebchannel/qtwebchannel-5.14.2.ebuild     |  26 +++
 dev-qt/qtwebengine/Manifest                        |   1 +
 dev-qt/qtwebengine/qtwebengine-5.14.2.ebuild       | 146 ++++++++++++++++
 dev-qt/qtwebsockets/Manifest                       |   1 +
 dev-qt/qtwebsockets/qtwebsockets-5.14.2.ebuild     |  27 +++
 dev-qt/qtwebview/Manifest                          |   1 +
 dev-qt/qtwebview/qtwebview-5.14.2.ebuild           |  21 +++
 dev-qt/qtwidgets/Manifest                          |   1 +
 dev-qt/qtwidgets/qtwidgets-5.14.2.ebuild           |  57 +++++++
 dev-qt/qtx11extras/Manifest                        |   1 +
 dev-qt/qtx11extras/qtx11extras-5.14.2.ebuild       |  22 +++
 dev-qt/qtxml/Manifest                              |   1 +
 dev-qt/qtxml/qtxml-5.14.2.ebuild                   |  29 ++++
 dev-qt/qtxmlpatterns/Manifest                      |   1 +
 dev-qt/qtxmlpatterns/qtxmlpatterns-5.14.2.ebuild   |  30 ++++
 110 files changed, 2357 insertions(+)
Comment 54 Larry the Git Cow gentoo-dev 2020-04-10 21:33:32 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/qt.git/commit/?id=9ff0752e1ee3c28818197eaaca45545708035152

commit 9ff0752e1ee3c28818197eaaca45545708035152
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2020-04-10 17:10:52 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2020-04-10 21:08:40 +0000

    dev-qt/qtcore: renameat2 is glibc specific
    
    We let Qt do the detection and only pass -no-foo when old-kernel is requested.
    
    Bug: https://bugs.gentoo.org/669994
    Package-Manager: Portage-2.3.98, Repoman-2.3.22
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 dev-qt/qtcore/qtcore-5.14.9999.ebuild    | 10 ++++++----
 dev-qt/qtcore/qtcore-5.15.0_beta3.ebuild | 10 ++++++----
 dev-qt/qtcore/qtcore-5.15.9999.ebuild    | 10 ++++++----
 dev-qt/qtcore/qtcore-5.9999.ebuild       | 10 ++++++----
 4 files changed, 24 insertions(+), 16 deletions(-)