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

Bug 646406

Summary: app-office/libreoffice-6.0.0.3 kde - ACCESS VIOLATION - /dev/dri/card0
Product: Gentoo Linux Reporter: Marian Kyral <mkyral>
Component: Current packagesAssignee: Gentoo Office Team <office>
Status: RESOLVED FIXED    
Severity: normal CC: gentoo, jstein
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 570624    
Bug Blocks:    
Attachments: build.log
emerge --info

Description Marian Kyral 2018-02-02 10:34:32 UTC
Created attachment 517546 [details]
build.log

Installation of libreoffice-6.0.0.3 fails in configure phase

# emerge -1uavtDN libreoffice 

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

Calculating dependencies... done!
[ebuild     U *] app-office/libreoffice-6.0.0.3::gentoo [5.4.4.2::gentoo] USE="bluetooth branding cups dbus gstreamer gtk* java jemalloc kde -coinmp -debug -eds -firebird -googledrive -gtk2% -libressl -mysql -odk -pdfimport -postgres {-test} -vlc (-collada%) (-gltf%) (-gtk3%) (-quickstarter%)" LIBREOFFICE_EXTENSIONS="-nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python3_5 -python2_7 -python3_4 -python3_6" PYTHON_TARGETS="python2_7 python3_5 python3_6 -python3_4" 201 455 KiB
[ebuild     U *]  dev-libs/liborcus-0.13.2:0/0.13::gentoo [0.12.1:0/0.12::gentoo] USE="python spreadsheet-model -static-libs -tools" PYTHON_SINGLE_TARGET="python3_5 -python3_4 -python3_6" PYTHON_TARGETS="python3_5 python3_6 -python3_4" 1 775 KiB
[ebuild     U *]   dev-libs/libixion-0.13.0:0/0.13::gentoo [0.12.2:0/0.12::gentoo] USE="python threads -debug -static-libs" PYTHON_SINGLE_TARGET="python3_5 -python3_4 -python3_6" PYTHON_TARGETS="python3_5 python3_6 -python3_4" 405 KiB
[ebuild  N    ~]  app-text/libepubgen-0.1.0::gentoo  USE="-debug -doc {-test}" 313 KiB
[ebuild  N    ~]  app-text/libqxp-0.0.1::gentoo  USE="-debug -doc {-test} -tools" 333 KiB
[ebuild     U *]  app-office/libreoffice-l10n-6.0.0.3::gentoo [5.4.4.2::gentoo] USE="-offlinehelp" L10N="cs -af -am -ar -as -ast -be -bg -bn -bn-IN -bo -br -brx -bs -ca -ca-valencia -cy -da -de -dgo -dz -el -en -en-GB -en-ZA -eo -es -et -eu -fa -fi -fr -ga -gd -gl -gu -gug -he -hi -hr -hu -id -is -it -ja -ka -kk -km -kmr-Latn -kn -ko -kok -ks -lb -lo -lt -lv -mai -mk -ml -mn -mni -mr -my -nb -ne -nl -nn -nr -nso -oc -om -or -pa -pl -pt -pt-BR -ro -ru -rw -sa -sat -sd -si -sid -sk -sl -sq -sr -sr-Latn -ss -st -sv -sw-TZ -ta -te -tg -th -tn -tr -ts -tt -ug -uk -uz -ve -vi -xh -zh-CN -zh-TW -zu" 3 099 KiB

Total: 6 packages (4 upgrades, 2 new), Size of downloads: 207 376 KiB

------------------------
checking for qmake-qt5... no
checking for qmake... /usr/lib64/qt5/bin/..//bin/qmake
checking for Qt5 headers... /usr/include/qt5
checking for Qt5 libraries... /usr/lib64
checking for moc-qt5... no
checking for moc... /usr/bin/moc
checking for glib-2.0 >= 2.4... yes
checking for kf5-config... /usr/bin/kf5-config
libva info: VA-API version 0.39.4
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
libva info: VA-API version 0.39.4
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
 * ACCESS DENIED:  open_wr:      /dev/dri/renderD128
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
libva info: VA-API version 0.39.4
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
libva info: VA-API version 0.39.4
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
 * ACCESS DENIED:  open_wr:      /dev/dri/renderD128
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
checking for KF5 headers... /usr/include//KF5
checking for KF5 libraries... /usr/lib64/
checking for xcb... yes
checking whether KDE is >= 5.0... yes
----------------------

>>> Source configured.
 * --------------------------- ACCESS VIOLATION SUMMARY ---------------------------
 * LOG FILE: "/var/log/sandbox/sandbox-21759.log"
 * 
VERSION 1.0
FORMAT: F - Function called
FORMAT: S - Access Status
FORMAT: P - Path as passed to function
FORMAT: A - Absolute Path (not canonical)
FORMAT: R - Canonical Path
FORMAT: C - Command Line

F: open_wr
S: deny
P: /dev/dri/card0
A: /dev/dri/card0
R: /dev/dri/card0
C: /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l 

F: open_wr
S: deny
P: /dev/dri/card0
A: /dev/dri/card0
R: /dev/dri/card0
C: /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l 

F: open_wr
S: deny
P: /dev/dri/renderD128
A: /dev/dri/renderD128
R: /dev/dri/renderD128
C: /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l 

F: open_wr
S: deny
P: /dev/dri/card0
A: /dev/dri/card0
R: /dev/dri/card0
C: /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l 

F: open_wr
S: deny
P: /dev/dri/card0
A: /dev/dri/card0
R: /dev/dri/card0
C: /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l 

F: open_wr
S: deny
P: /dev/dri/card0
A: /dev/dri/card0
R: /dev/dri/card0
C: /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l 

F: open_wr
S: deny
P: /dev/dri/renderD128
A: /dev/dri/renderD128
R: /dev/dri/renderD128
C: /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l 

F: open_wr
S: deny
P: /dev/dri/card0
A: /dev/dri/card0
R: /dev/dri/card0
C: /usr/lib64/gstreamer-1.0/gst-plugin-scanner -l 
 * --------------------------------------------------------------------------------
!!! When you file a bug report, please include the following information:
GENTOO_VM=icedtea-bin-7  CLASSPATH="" JAVA_HOME="/opt/icedtea-bin-7.2.6.11"
JAVACFLAGS="-source 1.6 -target 1.6" COMPILER=""
and of course, the output of emerge --info =libreoffice-6.0.0.3
Comment 1 Marian Kyral 2018-02-02 10:35:15 UTC
Created attachment 517548 [details]
emerge --info
Comment 2 Marian Kyral 2018-02-02 10:39:10 UTC
I also get following kf5-config message:

Configuration file "/var/tmp/notmpfs/portage/app-office/libreoffice-6.0.0.3/homedir/.config/kf5-configrc" not writable.
Please contact your system administrator.
Comment 3 Marian Kyral 2018-02-02 10:45:06 UTC
With USE="-kde" I'm able pass configuration.
Comment 4 Matt Whitlock 2018-02-12 20:19:51 UTC
(In reply to Marian Kyral from comment #2)
> I also get following kf5-config message:
> 
> Configuration file
> "/var/tmp/notmpfs/portage/app-office/libreoffice-6.0.0.3/homedir/.config/kf5-
> configrc" not writable.
> Please contact your system administrator.

I get this message too. It actually pops up in a graphical window in my X session. Yikes!

Concomitantly, the build output shows this:

Failed to create /var/tmp/portage/app-office/libreoffice-6.0.1.1/homedir/.cache/mesa_shader_cache for shader cache (Permission denied)---disabling.
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
 * ACCESS DENIED:  open_wr:      /dev/dri/renderD128
 * ACCESS DENIED:  open_wr:      /dev/dri/card0
Comment 5 Matt Whitlock 2018-03-06 09:29:40 UTC
(In reply to Marian Kyral from comment #3)
> With USE="-kde" I'm able pass configuration.

What do you give up by disabling this USE flag? I'm considering it since I am now stuck at 6.0.0.3, which isn't in the tree anymore.

app-office/libreoffice-6.0.2.1 continues to exhibit the access violation.
Comment 6 Marian Kyral 2018-03-06 09:48:06 UTC
(In reply to Matt Whitlock from comment #5)
> (In reply to Marian Kyral from comment #3)
> > With USE="-kde" I'm able pass configuration.
> 
> What do you give up by disabling this USE flag? I'm considering it since I
> am now stuck at 6.0.0.3, which isn't in the tree anymore.
> 
> app-office/libreoffice-6.0.2.1 continues to exhibit the access violation.

I'm not sure. I just tested because of the "kdialog" error window. And it worked.

Currently I have:
[I] app-office/libreoffice
     Installed versions:  6.0.2.1(18:47:59 2.3.2018)(branding cups dbus gstreamer gtk java jemalloc -bluetooth -coinmp -debug -eds -firebird -googledrive -gtk2 -kde -libressl -mysql -odk -pdfimport -postgres -test -vlc ELIBC="-FreeBSD" LIBREOFFICE_EXTENSIONS="-nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python3_5 -python2_7 -python3_4 -python3_6" PYTHON_TARGETS="python2_7 python3_5 python3_6 -python3_4")
     Homepage:            https://www.libreoffice.org
     Description:         A full office productivity suite


I've tested it just now. With kde USE flag enabled - configure phase fails on ACCESS VIOLATION. With kde USE flag enabled, there is no ACCESS VIOLATION message, configure script finish and LO continue with compilation.
Comment 7 Marian Kyral 2018-03-06 09:49:27 UTC
(In reply to Marian Kyral from comment #6)
> With kde USE flag enabled, 

... disabled should be there...
Comment 8 Andreas Sturmlechner gentoo-dev 2018-03-06 19:43:47 UTC
(In reply to Matt Whitlock from comment #5)
> What do you give up by disabling this USE flag? I'm considering it since I
> am now stuck at 6.0.0.3, which isn't in the tree anymore.
Native KF5 filedialogs.

The problem is kf5-config, but we need to find out why it happens for some of you.
Comment 9 Marian Kyral 2018-03-06 20:02:00 UTC
I've second laptop and there I have LO compiled with kde USE flag. The dialog is still there, but no ACCESS VIOLATION.

[I] app-office/libreoffice
     Installed versions:  6.0.2.1(08:52:50 3.3.2018)(bluetooth branding cups dbus gstreamer gtk kde -coinmp -debug -eds -firebird -googledrive -gtk2 -java -jemalloc -libressl -mysql -odk -pdfimport -postgres -test -vlc ELIBC="-FreeBSD" LIBREOFFICE_EXTENSIONS="-nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python3_5 -python2_7 -python3_4 -python3_6" PYTHON_TARGETS="python2_7 python3_5 python3_6 -python3_4")
     Homepage:            https://www.libreoffice.org
     Description:         A full office productivity suite


checking whether to enable the new GStreamer 1.0 avmedia backend... yes
checking for gstreamer-1.0 gstreamer-plugins-base-1.0 gstreamer-pbutils-1.0 gstreamer-video-1.0 ... yes
checking whether to enable the GStreamer 0.10 avmedia backend... no
checking whether to enable the VLC avmedia backend... no
checking for glBegin in -lGL... yes
checking for dconf >= 0.15.2... yes
checking whether to enable dconf... yes
checking whether to build the PDF import feature... no
checking whether to build PDFium... no
checking which gpgmepp to use... external
checking gpgme++/gpgmepp_version.h usability... yes
checking gpgme++/gpgmepp_version.h presence... yes
checking for gpgme++/gpgmepp_version.h... yes
checking for progress_callback in -lgpgmepp... yes
checking gpgme.h usability... yes
checking gpgme.h presence... yes
checking for gpgme.h... yes
checking for gpg... /usr/bin/gpg
checking whether to build the Wiki Publisher extension... no
checking whether to build the Report Builder... no
checking whether to build support for scripts in BeanShell... no
checking whether to build support for scripts in JavaScript... no
checking for qmake-qt5... no
checking for qmake... /usr/lib64/qt5/bin/..//bin/qmake
checking for Qt5 headers... /usr/include/qt5
checking for Qt5 libraries... /usr/lib64
checking for moc-qt5... no
checking for moc... /usr/bin/moc
checking for glib-2.0 >= 2.4... yes
checking for kf5-config... /usr/bin/kf5-config
Fontconfig error: "/etc/fonts/local.conf", line 13: junk after document element


One remarkable difference - the first one has only Intel graphics, second one has Intel and Nvidia.
Comment 10 Matt Whitlock 2018-03-06 21:16:30 UTC
1.) kf5-config checks whether it can write to ${HOME}/.config/kf5-config. libsandbox.so intercepts the access() syscall and returns -EPERM.

2.) kf5-config execs kdialog to display a message complaining about its inability to write to ${HOME}/.config/kf5-config.

3.) kdialog loads the system's OpenGL library, which attempts to open the DRI, which causes libsandbox.so to raise an access violation.

The main problem is that kf5-config wants to display its error in a graphical dialog box because it detects that it is running in an X session.

All problems disappear if you invoke Portage with a sanitized environment:

# env -i PATH="${PATH}" emerge -1 app-office/libreoffice

Alternatively, you can invoke Portage in a console login shell (i.e., outside of X), and you'll have no problems there either.

<rant> I have to wonder why Portage doesn't nuke the environment before populating it. Does it really make sense that the behavior of ebuilds can vary depending on the environment that emerge inherits from the invoking shell? Wouldn't it make more sense to require that all environment variables relevant to ebuilds be specified in /etc/portage/env and have Portage wipe the environment before running ebuild phases? </rant>
Comment 11 Marian Kyral 2018-03-07 08:29:27 UTC
> The main problem is that kf5-config wants to display its error in a graphical dialog box because it detects that it is running in an X session.

On both laptops I've run this from KDE Konsole with KDE (X.org) running. Only difference is the nVidia card. I'm using original nVidia drivers that does not use dri.
Comment 12 Larry the Git Cow gentoo-dev 2018-03-07 12:58:04 UTC
The bug has been closed via the following commit(s):

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

commit bbd141f5e863c63ea0d432eea62f8e8d334fc64c
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2018-03-07 11:25:26 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2018-03-07 12:57:47 +0000

    app-office/libreoffice: Disable running kf5-config
    
    We don't need it, and it is causing sandbox violations.
    
    Closes: https://bugs.gentoo.org/646406
    Package-Manager: Portage-2.3.24, Repoman-2.3.6

 app-office/libreoffice/libreoffice-6.0.2.1.ebuild  | 5 +++++
 app-office/libreoffice/libreoffice-6.0.9999.ebuild | 5 +++++
 app-office/libreoffice/libreoffice-9999.ebuild     | 5 +++++
 3 files changed, 15 insertions(+)