Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 702340 - dev-db/mysql-workbench-8.0.18 - ../../../library/mysql.canvas/src/libmdcanvasgtk.so.8.0.18: error: undefined reference to 'glXQueryVersion'
Summary: dev-db/mysql-workbench-8.0.18 - ../../../library/mysql.canvas/src/libmdcanvas...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Deadline: 2020-09-21
Assignee: Hans de Graaff
URL:
Whiteboard:
Keywords: PMASKED
Depends on:
Blocks:
 
Reported: 2019-12-09 13:01 UTC by Alex
Modified: 2021-08-27 07:29 UTC (History)
4 users (show)

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


Attachments
gzipped build.log (build.log.gz,50.12 KB, application/gzip)
2019-12-09 18:56 UTC, Alex
Details
patch which makes it emerging (mysqlwbopengl.patch,399 bytes, patch)
2020-01-26 14:25 UTC, Alex
Details | Diff
patch making mysql-workbench-8.0.19 emerging and running (mysqlwb19.patch,1.36 KB, patch)
2020-01-28 09:23 UTC, Alex
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alex 2019-12-09 13:01:35 UTC
Hi there,

I struggle with not able to emerge in-tree mysql-workbench.

This is what I get as the crucial error message:
../../../library/mysql.canvas/src/libmdcanvasgtk.so.8.0.18: error: undefined reference to 'glXQueryVersion'
collect2: error: ld returned 1 exit status
make[2]: *** [frontend/linux/workbench/CMakeFiles/mysql-workbench-bin.dir/build.make:283: frontend/linux/workbench/mysql-workbench-bin] Error 1

I have version 8.0.14 installed but updating to a newer one fails. I want to understand, why?

Stable (8.0.16) and unstable (8.0.18) give the same effect. Compiled with GCC 9.1 then with 9.2 with ld.bfd and ld.gold. On two machines. One with hyprid graphyics, another just intel (presumed some mess up of mesa and nvidia glx implementations). Error is the same.

emerge -ev world

did not do the job either. Tried to see broken links to libraries - did not spot any.

No way.

Any comments from the community are welcome.

Alex
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2019-12-09 15:41:00 UTC
Please attach the entire build log to this bug report.
Please post your `emerge --info' output in a comment.
Comment 2 Alex 2019-12-09 18:56:32 UTC
Created attachment 598958 [details]
gzipped build.log

alex@novo ~ $  emerge --info
Portage 2.3.79 (python 3.6.9-final-0, default/linux/amd64/17.1/desktop, gcc-9.2.0, glibc-2.29-r2, 5.4.2-gentoo-novo x86_64)
=================================================================
System uname: Linux-5.4.2-gentoo-novo-x86_64-Intel-R-_Core-TM-_i7-6700HQ_CPU_@_2.60GHz-with-gentoo-2.6
KiB Mem:    32743372 total,  13956012 free
KiB Swap:   16777212 total,  16679420 free
Timestamp of repository gentoo: Mon, 09 Dec 2019 08:30:01 +0000
Head commit of repository gentoo: 209ff4c2b8f722f145ba24f67044b98c639397b7
sh bash 4.4_p23-r1
ld GNU gold (Gentoo 2.32 p2 2.32.0) 1.16
app-shells/bash:          4.4_p23-r1::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.30.1::gentoo
dev-lang/python:          2.7.16::gentoo, 3.6.9::gentoo, 3.7.5-r1::gentoo
dev-util/cmake:           3.14.6::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.41.2::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.13.4-r2::gentoo, 1.16.1-r1::gentoo
sys-devel/binutils:       2.32-r1::gentoo
sys-devel/gcc:            9.2.0-r2::gentoo
sys-devel/gcc-config:     2.1::gentoo
sys-devel/libtool:        2.4.6-r3::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 5.3-r1::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r2::gentoo
Repositories:

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

local
    location: /usr/local/portage
    masters: gentoo

sage-on-gentoo
    location: /var/lib/layman/sage-on-gentoo
    sync-type: laymansync
    sync-uri: git://github.com/cschwan/sage-on-gentoo.git
    masters: gentoo
    priority: 50

science
    location: /var/lib/layman/science
    sync-type: laymansync
    sync-uri: https://anongit.gentoo.org/git/proj/sci.git
    masters: gentoo
    priority: 50

stefantalpalaru
    location: /var/lib/layman/stefantalpalaru
    sync-type: laymansync
    sync-uri: https://github.com/stefantalpalaru/gentoo-overlay.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/stunnel/stunnel.conf /usr/lib64/libreoffice/program/sofficerc /usr/share/config /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/php/apache2-php7.3/ext-active/ /etc/php/cgi-php7.3/ext-active/ /etc/php/cli-php7.3/ext-active/ /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 /etc/vmware-installer"
CXXFLAGS="-O2 -pipe -march=native"
DISTDIR="/usr/portage/distfiles"
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 -march=native"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs 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 sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe -march=native"
GENTOO_MIRRORS="http://mirror.netcologne.de/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
LINGUAS="en fr pt pt-PT ru"
MAKEOPTS="-j8"
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="/mnt/tmp"
USE="X a52 aac aacplus acl acpi aes alsa amd64 apache2 applet avx avx2 bbswitch berkdb bluetooth bluray branding bzip2 cairo cdda cdr clang cli colord crypt cuda cups cxx dbus dhcpcd djvu dri dri3 dts dv dvd dvdr emboss encode espeak exif f16c faac faad fam fbcon fdk ffmpeg flac fma3 fontconfig fortran frei0r gd gdbm gif glamor gold gpm gps graphite gstreamer gtk gtk3 iconv icu ipv6 jack jpeg jpeg2k latex lcms ldap libnotify libtirpc llvm lto lua luajit luatex mad matroska mbox mmx mmxext mng mp3 mp4 mpeg mpx mtp multilib ncurses networkmanager nls nptl nsplugin ntfs ntfsprogs nvidia ocr ogg opencl openexr opengl openmp opus pam pango pclmul pcre pcre16 pdf pgo plotutils png policykit popcnt postproc postscript ppds pulseaudio q16 qt5 raw readline sasl scanner sdl seccomp smp sna snmp speex spell split-usr sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 startup-notification svg systemd tcpd tesseract theora threads tiff truetype udev udisks unicode upower usb user-session v4l v4l2 vaapi vdpau vim-syntax vorbis vpx wayland webp widevine wifi wxwidgets x264 x265 xattr xcb xcomposite xetex xinerama xml xmp xv xvfb xvid xvmc zlib" ABI_X86="64" ADA_TARGET="gnat_2018" 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 sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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 nmea0183 nmea2000" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" L10N="en fr pt pt-PT ru" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" QEMU_SOFTMMU_TARGETS="x86_64 arm" RUBY_TARGETS="ruby24 ruby25" USERLAND="GNU" VIDEO_CARDS="intel i965 modesetting nvidia nouveau" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 Hans de Graaff gentoo-dev Security 2019-12-15 07:29:44 UTC
glXQueryVersion is defined in include files from media-libs/mesa. Do you have that installed?
Comment 4 Alex 2019-12-15 07:43:49 UTC
(In reply to Hans de Graaff from comment #3)
> glXQueryVersion is defined in include files from media-libs/mesa. Do you
> have that installed?

I believe, yes, as I do not tackle too much manually.

Moreover, I have mesa-progs installed. It has glxinfo which works normally and has a call to the same function in its source to report exactly the glX version.

My mesa is from unstable, but I'm not seeing any other problematic packages to build against it.

I may suspect a conflict with nvidia-drivers but I have no clue why all the rest is merging/running well then.

Right now I'm emerging the very last mesa synced today and will try to re-emerge mysql-workbench. Will report on the outcome.
Comment 5 Alex 2019-12-15 08:07:07 UTC
No, the most recent mesa did not do the job ...

Moreover, you see, it is the linker who returns the error. Looks like headers are already seemed good for the compiler. I mean, it seems like the Makefile expects libs in some other place. Am I wrong?

This is what I have as perhaps relevant info:

alex@novo ~ $ eselect opengl list
Available OpenGL implementations:
  [1]   nvidia
  [2]   xorg-x11 *
alex@novo ~ $ equery f mesa
 * Searching for mesa ...
 * Contents of media-libs/mesa-19.3.0:
/etc
/etc/OpenCL
/etc/OpenCL/vendors
/etc/OpenCL/vendors/mesa.icd
/usr
/usr/include
/usr/include/EGL
/usr/include/EGL/egl.h
/usr/include/EGL/eglext.h
/usr/include/EGL/eglextchromium.h
/usr/include/EGL/eglmesaext.h
/usr/include/EGL/eglplatform.h
/usr/include/GL
/usr/include/GL/gl.h
/usr/include/GL/glcorearb.h
/usr/include/GL/glext.h
/usr/include/GL/glx.h
/usr/include/GL/glxext.h
/usr/include/GL/internal
/usr/include/GL/internal/dri_interface.h
/usr/include/GLES2
/usr/include/GLES2/gl2.h
/usr/include/GLES2/gl2ext.h
/usr/include/GLES2/gl2platform.h
/usr/include/GLES3
/usr/include/GLES3/gl3.h
/usr/include/GLES3/gl31.h
/usr/include/GLES3/gl32.h
/usr/include/GLES3/gl3ext.h
/usr/include/GLES3/gl3platform.h
/usr/include/KHR
/usr/include/KHR/khrplatform.h
/usr/include/gbm.h
/usr/lib64
/usr/lib64/dri
/usr/lib64/dri/i965_dri.so
/usr/lib64/dri/kms_swrast_dri.so
/usr/lib64/dri/nouveau_dri.so
/usr/lib64/dri/nouveau_vieux_dri.so
/usr/lib64/dri/swrast_dri.so
/usr/lib64/gallium-pipe
/usr/lib64/gallium-pipe/pipe_nouveau.so
/usr/lib64/gallium-pipe/pipe_swrast.so
/usr/lib64/libEGL.so -> libEGL.so.1
/usr/lib64/libEGL.so.1 -> libEGL.so.1.0.0
/usr/lib64/libEGL.so.1.0.0
/usr/lib64/libGL.so -> libGL.so.1
/usr/lib64/libGL.so.1 -> libGL.so.1.2.0
/usr/lib64/libGL.so.1.2.0
/usr/lib64/libGLESv2.so -> libGLESv2.so.2
/usr/lib64/libGLESv2.so.2 -> libGLESv2.so.2.0.0
/usr/lib64/libGLESv2.so.2.0.0
/usr/lib64/libMesaOpenCL.so -> libMesaOpenCL.so.1
/usr/lib64/libMesaOpenCL.so.1 -> libMesaOpenCL.so.1.0.0
/usr/lib64/libMesaOpenCL.so.1.0.0
/usr/lib64/libXvMCnouveau.so
/usr/lib64/libgbm.so -> libgbm.so.1
/usr/lib64/libgbm.so.1 -> libgbm.so.1.0.0
/usr/lib64/libgbm.so.1.0.0
/usr/lib64/libglapi.so -> libglapi.so.0
/usr/lib64/libglapi.so.0 -> libglapi.so.0.0.0
/usr/lib64/libglapi.so.0.0.0
/usr/lib64/pkgconfig
/usr/lib64/pkgconfig/dri.pc
/usr/lib64/pkgconfig/egl.pc
/usr/lib64/pkgconfig/gbm.pc
/usr/lib64/pkgconfig/gl.pc
/usr/lib64/pkgconfig/glesv2.pc
/usr/lib64/va
/usr/lib64/va/drivers
/usr/lib64/va/drivers/nouveau_drv_video.so
/usr/lib64/vdpau
/usr/lib64/vdpau/libvdpau_nouveau.so -> libvdpau_nouveau.so.1.0.0
/usr/lib64/vdpau/libvdpau_nouveau.so.1 -> libvdpau_nouveau.so.1.0.0
/usr/lib64/vdpau/libvdpau_nouveau.so.1.0 -> libvdpau_nouveau.so.1.0.0
/usr/lib64/vdpau/libvdpau_nouveau.so.1.0.0
/usr/share
/usr/share/doc
/usr/share/doc/mesa-19.3.0
/usr/share/doc/mesa-19.3.0/README.rst.bz2
/usr/share/drirc.d
/usr/share/drirc.d/00-mesa-defaults.conf
Comment 6 Alex 2020-01-26 10:06:46 UTC
Well, strange enough. I still cannot get it done.

I tried to make connector-c and connector-c++ unstable, matching version 8.0.18, now even 8.0.19. This did not work out immediately though. This has thrown bunch of errors including ld errors and they were resolved by updating SANDBOX to unstable.
At the same time I upgraded dev-db/mysql to unstable 8.0.19. Also, this was possible only after the SANDBOX was upgraded.
AND after a patch of finding properly cppconn include files was adapted from BUG 702666.

To advance even more I have updated cmake to unstable but I'm sure this does nothing special.

Still,
workbench throws the same error about glXQueryVersion at the same stage.

This is what exists in CMakeCache.txt in the build directory:
==================================================================
//Path to a library.
OPENGL_egl_LIBRARY:FILEPATH=/usr/lib64/libEGL.so

//Path to a library.
OPENGL_gl_LIBRARY:FILEPATH=/usr/lib64/libGL.so

//Path to a library.
OPENGL_glu_LIBRARY:FILEPATH=/usr/lib64/libGLU.so

//Path to a library.
OPENGL_glx_LIBRARY:FILEPATH=OPENGL_glx_LIBRARY-NOTFOUND

//Path to a library.
OPENGL_opengl_LIBRARY:FILEPATH=OPENGL_opengl_LIBRARY-NOTFOUND

//Path to a file.
OPENGL_xmesa_INCLUDE_DIR:PATH=OPENGL_xmesa_INCLUDE_DIR-NOTFOUND
==================================================================

However, glXQueryVersion should be inside /usr/lib64/libGL.so and as such reachable.

This is the exact spot where things break down:
==================================================================
cd /mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/frontend/linux/workbench && /usr/bin/cmake -E cmake_link_script CMakeFiles/mysql-workbench-bin.dir/link.txt --verbose=1
/usr/bin/x86_64-pc-linux-gnu-g++  -O2 -pipe -march=native -std=c++11  -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu CMakeFiles/mysql-workbench-bin.dir/main.cpp.o CMakeFiles/mysql-workbench-bin.dir/program.cpp.o CMakeFiles/mysql-workbench-bin.dir/main_form.cpp.o CMakeFiles/mysql-workbench-bin.dir/overview_panel.cpp.o CMakeFiles/mysql-workbench-bin.dir/model_panel.cpp.o CMakeFiles/mysql-workbench-bin.dir/model_diagram_panel.cpp.o CMakeFiles/mysql-workbench-bin.dir/properties_tree.cpp.o CMakeFiles/mysql-workbench-bin.dir/navigator_box.cpp.o CMakeFiles/mysql-workbench-bin.dir/documentation_box.cpp.o CMakeFiles/mysql-workbench-bin.dir/diagram_size_form.cpp.o CMakeFiles/mysql-workbench-bin.dir/sqlide_form.cpp.o CMakeFiles/mysql-workbench-bin.dir/sqlide_output_view.cpp.o CMakeFiles/mysql-workbench-bin.dir/sqlide_main.cpp.o  -o mysql-workbench-bin  -Wl,-rpath,/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/frontend/linux/sqlide:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/backend/wbprivate:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/backend/wbpublic:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/cdbc:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/parsers:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/ssh:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/forms:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/frontend/linux/linux_utilities:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/mysql.canvas/src:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/ext/scintilla/gtk:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/grt/src:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/mtemplate:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/base: ../sqlide/libsqlide.so.8.0.18 ../../../backend/wbprivate/libwbprivate.so.8.0.18 ../../../backend/wbpublic/libwbpublic.so.8.0.18 ../../../library/cdbc/libcdbc.so.8.0.18 ../../../library/parsers/libparsers.so.8.0.18 /usr/lib64/libSM.so /usr/lib64/libICE.so /usr/lib64/libX11.so /usr/lib64/libXext.so -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lgio-2.0 -lcairomm-1.0 -lcairo -lsigc-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lglib-2.0 -lgmodule-2.0 -lglib-2.0 -lpcre -lpcrecpp -lzip -L/usr/lib64 -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl /usr/lib64/libgdal.so ../../../library/forms/libmforms.so.8.0.18 ../linux_utilities/liblinux_utilities.so.8.0.18 ../../../library/mysql.canvas/src/libmdcanvasgtk.so.8.0.18 -lsecret-1 ../../../ext/scintilla/gtk/libwbscintilla.so.4.1.5 /usr/lib64/libmysqlcppconn.so ../../../library/mysql.canvas/src/libmdcanvas.so.8.0.18 -L/usr/lib64 -lvsqlitepp -L/usr/lib64 -lantlr4-runtime ../../../library/grt/src/libgrt.so.8.0.18 /usr/lib64/libxml2.so -luuid ../../../library/base/libwbbase.so.8.0.18 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgio-2.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lpcre -lpcrecpp -lzip -Wl,-rpath-link,/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/ssh:/mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/library/mtemplate 
../../../library/mysql.canvas/src/libmdcanvasgtk.so.8.0.18: error: undefined reference to 'glXQueryVersion'
collect2: error: ld returned 1 exit status
==================================================================

Obviously, library libGL is not referenced.

Adding by hand -lGL in /mnt/tmp/portage/dev-db/mysql-workbench-8.0.18/work/mysql-workbench-8.0.18_build/frontend/linux/workbench/CMakeFiles/mysql-workbench-bin.dir/link.txt
makes the thing and the make command finishes succesfully!

I'm not familiar with all of that, I need time to figure out how to patch the stuff to have this -lGL automagically.

Hope for your help, guys.

PS: really confused, why I'm alone to notice this? Why no one else had this? What is not like for others in my system?
Comment 7 Alex 2020-01-26 14:25:05 UTC
Created attachment 604622 [details, diff]
patch which makes it emerging
Comment 8 Alex 2020-01-26 14:34:48 UTC
Well, I patched it and it is emerging ... but not running.
The patch seems to be some overshooting because now I have even 2 instances of -lGL in the linker command line. Still, it creates the whole object.

Now, this is what I get on starting the stuff:
==================================================================
kas@novo ~ $ mysql-workbench
Found /usr/lib64/libproj.so.9
/usr/bin/mysql-workbench-bin: symbol lookup error: /usr/lib64/mysql-workbench/libwbprivate.so.8.0.18: undefined symbol: _ZN7pcrecpp2RED1Ev
==================================================================

On the other hand I have:
==================================================================
kas@novo ~ $ nm /usr/lib64/mysql-workbench/libwbprivate.so.8.0.18|grep pcrecpp2
nm: /usr/lib64/mysql-workbench/libwbprivate.so.8.0.18: no symbols

kas@novo ~ $ nm /usr/lib64/mysql-workbench/libwbprivate.so.8.0.18 -D|grep pcrecpp2
                 U _ZN7pcrecpp2RE4InitERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_10RE_OptionsE
                 U _ZN7pcrecpp2RED1Ev
                 U _ZNK7pcrecpp2RE13GlobalReplaceERKNS_11StringPieceEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
==================================================================

I believe this issue is unrelated to openGL or whatever before. Having pcrecpp in the suspect symbol I updated both libpcre and libpcre2 packages even though WB depends only on libpcre. I re-emerged WB. It did re-emerge.

But not running.

Does it mean some deeper discrepancy is in the system?
Comment 9 Alex 2020-01-26 16:28:12 UTC
Just noticed WB 8.0.19, synced, and emerged. Still there. After adjusting patches it emerges but the result is:

kas@novo ~ $ mysql-workbench
Found /usr/lib64/libproj.so.9
/usr/bin/mysql-workbench-bin: symbol lookup error: /usr/lib64/mysql-workbench/libwbprivate.so.8.0.19: undefined symbol: _ZN7pcrecpp2RED1Ev

I will really appreciate any advise on fixing this.
Comment 10 Alex 2020-01-28 09:23:30 UTC
Created attachment 605878 [details, diff]
patch making mysql-workbench-8.0.19 emerging and running

So, I have boiled done some stuff which makes mysql-workbench emerging AND running on my machines.
To start with, I have no clue why I'm alone with this as the problem seems general. I may suspect gcc-9.2.0-r3 in a sense it is stricter than previous versions?

Anyway, this patch fixes 3 files (the previous patch is fast, ugly, and does not make the stuff running).
1. ./build/cmake/Modules/FindMySQLCppConn.cmake
This has to be fixed to add /usr/include/jdbc to find headers from mysql-connector-c++-8.0.19 version. This is adopted from BUG 702666.
2. ./library/mysql.canvas/src/CMakeLists.txt
This file is adjusted to fix the original problem and link libmdcanvasgtk.so.8.0.18 against libGL which was missing. This was blocking the final executable to be successfully linked.

These 2 fixes guarantee emerging BUT NOT RUNNING yet.
To have mysql-workbench starting at all I had to implement one more fix:

3 ./backend/wbprivate/CMakeLists.txt
This file is adjusted to make libwbprivate.so.8.0.19 linked against libpcre and libzip Without that mysql-workbench exits with undefined references on startup.

The last fix guarantees the stuff is starting and working.

As a further comment: mentioned before upgrades of libpcre, libpcre2 and cmake to unstable are unnecessary.

However, my machines could emerge mysql-connector-c-8.0.19 and dev-db/mysql-8.0.19 ONLY AFTER upgrading to sandbox unstable.

To end up, I'm still puzzled even though have succeeded. Am I alone with this? Do I have some weird setup? Way too new gcc? Or untested combination of USE flags? I'm confused.
Thanks in advance for any feedback
Comment 11 Heiko 2020-02-28 14:24:32 UTC
> To end up, I'm still puzzled even though have succeeded. Am I alone with
> this? Do I have some weird setup? Way too new gcc? Or untested combination
> of USE flags? I'm confused.
> Thanks in advance for any feedback

First of all, you are not alone with this. I have the very same issue with undefined reference to 'glXQueryVersion' going on ever since mysql-workbench-8.0.14.

I think upgrading mesa to 19.x (i have that on ~amd64) broke the build for me, and obviously i only noticed much later when mysql-workbench wanted to rebuild/upgrade for whatever reason.

When trying to apply your your latest iteration patch, it failed on build/cmake/Modules/FindMySQLCppConn.cmake.

I couldn't spot the issue at first glance, so i removed the changes for this file from the patch, and suddenly mysql-workbench-8.0.19 built and it even runs.  TYVM!

I did not need unstable sandbox btw, gcc is 9.2.0-r4
Comment 12 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2020-09-21 06:13:57 UTC
removed.
Comment 13 Martin Andres Gomez Gimenez 2021-08-23 18:47:36 UTC
The same happens in the stable version: dev-db/mysql-workbench-8.0.23::gentoo


~ # emerge --info dev-db/mysql-workbench
Portage 3.0.20 (python 3.9.6-final-0, default/linux/amd64/17.1/desktop/gnome, gcc-10.3.0, glibc-2.33-r1, 5.10.52-gentoo-x86_64 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.10.52-gentoo-x86_64-x86_64-Intel-R-_Core-TM-_i5-3340M_CPU_@_2.70GHz-with-glibc2.33
KiB Mem:    16296488 total,  11144616 free
KiB Swap:     131068 total,    131068 free
Timestamp of repository gentoo: Mon, 23 Aug 2021 07:00:02 +0000
Head commit of repository gentoo: 7105d27ef6e0dcf90a5c2368c1fed8b3fd3ed487

sh bash 5.1_p8
ld GNU gold (Gentoo 2.35.2 p1 2.35.2) 1.16
distcc 3.4 x86_64-pc-linux-gnu [disabled]
app-shells/bash:          5.1_p8::gentoo
dev-java/java-config:     2.3.1::gentoo
dev-lang/perl:            5.34.0::gentoo
dev-lang/python:          2.7.18_p11::gentoo, 3.9.6_p1::gentoo
dev-lang/rust-bin:        1.53.0::gentoo
dev-util/cmake:           3.20.5::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/openrc:          0.43.5::gentoo
sys-apps/sandbox:         2.24::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.13.4-r2::gentoo, 1.15.1-r2::gentoo, 1.16.3-r1::gentoo
sys-devel/binutils:       2.35.2::gentoo, 2.36.1-r2::gentoo
sys-devel/gcc:            10.3.0-r2::gentoo
sys-devel/gcc-config:     2.4::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.33-r1::gentoo
Repositories:

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

backup-cron
    location: /usr/local/portage/backup-cron
    sync-type: git
    sync-uri: https://github.com/i-nis/gentoo-portage-backup-cron
    masters: gentoo

gentoo-portage-overlay
    location: /usr/local/portage/gentoo-portage-overlay
    sync-type: git
    sync-uri: https://github.com/i-nis/gentoo-portage-overlay.git
    masters: gentoo

odoo
    location: /usr/local/portage/odoo
    sync-type: git
    sync-uri: https://github.com/i-nis/gentoo-portage-odoo.git
    masters: gentoo

x-portage
    location: /usr/local/portage
    masters: gentoo
    priority: 0

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=ivybridge -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /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 /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=ivybridge -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS=" --keep-going=y"
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="-march=ivybridge -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs clean-logs config-protect-if-modified distlocks ebuild-locks fail-clean 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="-march=ivybridge -O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="es_AR.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="es es_AR es_ES"
MAKEOPTS="-j5 -l4"
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"
USE="X a52 aac acl acpi alisp alsa amd64 amr amrenc anacron androiddump anjuta ao appindicator appstream aqbanking archive argyllcms atm autoipd avs ayatana bidi bl bluetooth bluetooth-sound branding bs2b btpclient bzip2 cairo caps cdda cddb cdio cdparanoia cdr chromaprint chromium clang cli client clippy clockdiff colord compressed-lumas connection-sharing contrast corefonts cplugins crypt cryptsetup css cups dav1d dbus dc1394 default-compiler-rt default-gold default-lld device-mapper dga dhcp djvu drafts dri dri3 drm dts dundee dv dvb dvd dvdr eap eap-sim eap-tls eds efiemu egl eigen elogind emboss empathy encode epiphany equalizer evdev evo exif expat experimental extra-print-profiles f2fs faac faad farp fat ffmpeg fftw file-attr firmware fits flac flashback flickr fluidsynth fontconfig fortran fpx freebox frei0r ftp fuse gbm gd gdbm gdm geckodriver geo geoip geolocation geos gif gimp git glade gles gles2 glib gme gmp gnome gnome-keyring gnome-online-accounts gold google googledrive gpg gphoto2 gpm gps graphite graphviz gsl gsm gssapi gstreamer gstvideo gtk gtk3 gui guile harfbuzz hdf5 hdri hfs highlight howl-compat hpijs http2 hwaccel ibus iconv icu id3tag idn ieee1394 imlib infinality int-quality introspection iproute2 iptables ipv6 irc javafx javascript jbig jce jemalloc jfs jingle jit joystick jpeg jpeg2k jumbo-build justify kate kdenlive kdrive ladspa lame lash lasi lcms leaps_timezone lensfun libass libevent libffi libglvnd libinput libkms libmpv libnotify libopts libproxy libsamplerate libsecret libtiger libtirpc libv4l libvisual linguas_es linsys lirc live llvm lm-sensors lm_sensors lqr lto lz4 lzma lzo macvtap mad map math matroska mclib md5sum mdadm mdev mdnsresponder-compat meanwhile media melt mhash midi mime minizip mjpeg mktemp mmap mms mng modplug mount mp3 mp4 mpeg mplayer mtp multiwriter musepack nas native-headset natspec nautilus ncurses netlink network networkmanager newnet nfs nfsdcld nfsv41 nls nptl nscd nsplugin ntfs ntfsdecrypt ntfsprogs numa nut nuv ocr offensive office offlinehelp ofono ofono-headset ofx ogg omxil openal openconnect openexr opengl openh264 openmp openssl openvpn opus osmesa ovs p2p pam pam_ssh pango parse-clocks parted pcap pcapnav pch pcre pcre16 pdf pdfimport perl phyp pkcs11 playlist plugins png pnm policykit postproc postscript ppds ppp prediction printsupport projectm pulseaudio pvr python qemu qml quicktime radio rar raw rdp readline resolvconf rfc3779 rle rss rtaudio rtc rtmp rubberband rustfmt s3 sasl sbc scanner screencast script sctp sdl sdl-image sdlgfx seccomp secure-delete sendto sftp shm shout sid simple-scan sip sipe slang slp smartcard smi smp sna snappy sndfile soap sound soundtouch sox soxr speex spell spice split-usr sqlite srt ssh sshdump ssl startup-notification static-analyzer stats stemmer strongswan_plugins_aesni strongswan_plugins_blowfish strongswan_plugins_ccm strongswan_plugins_chapoly strongswan_plugins_forecast strongswan_plugins_gcm strongswan_plugins_ipseckey strongswan_plugins_newhope strongswan_plugins_rdrand strongswan_plugins_whitelist stunnel subtitles subversion svg symlink sysprof system-harfbuzz system-icu system-jpeg system-libevent system-libs system-libvpx system-llvm system-mesa system-sqlite szip taglib tahoma tcpd terminal tevent text tfshark tga theora thetvdb threads tiff timezone toolame toolbar tools trace tracker tremor truetype twolame udev udisks umfpack uml unicode upnp upnp-av upower urandom usb usbredir user-permissions utils uxa v4l vala vamp vde vdr verify-file vhost-net video vimeo virgl virt-network virtfs vnc vorbis vpx vte vulkan vulkan-overlay wavpack wayland webdav webkit webp widgets wifi wma-fixed wmf wps wxwidgets x264 x265 xattr xcb xdg xephyr xetex xine xinerama xkb xml xmp xmpp xpm xrandr xscreensaver xv xvfb xvid ytnef zlib zvbi" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="hda-intel usb-audio" 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_X86="aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="openssl" 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="evdev joystick libinput synaptics" KERNEL="linux" L10N="en es es-AR es-ES" LCD_DEVICES="ncurses text X xosd" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" QEMU_SOFTMMU_TARGETS="arm i386 x86_64" QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby26" USERLAND="GNU" VIDEO_CARDS="intel i965" 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:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS