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

Bug 641812

Summary: app-office/libreoffice-5.4.4.2[-gtk,gtk3]: gtk3gtkframe.cxx:1401:51: error: invalid static_cast from type ‘SalMenu*’ to type ‘GtkSalMenu*’
Product: Gentoo Linux Reporter: Perfect Gentleman <perfect007gentleman>
Component: Current packagesAssignee: Gentoo Office Team <office>
Status: RESOLVED FIXED    
Severity: normal CC: carlphilippreh, leonard, olof.kindgren, ostash
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Perfect Gentleman 2017-12-20 13:49:14 UTC
```````
glib-2.0 -isystem /usr/lib64/glib-2.0/include    
[CXX] vcl/unx/gtk3/gtk3hudawareness.cxx
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx: In member function ‘virtual void GtkSalFrame::SetMenu(SalMenu*)’:
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx:1401:51: error: invalid static_cast from type ‘SalMenu*’ to type ‘GtkSalMenu*’
     m_pSalMenu = static_cast<GtkSalMenu*>(pSalMenu);
                                                   ^
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx: In member function ‘SalMenu* GtkSalFrame::GetMenu()’:
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx:1406:12: error: cannot convert ‘GtkSalMenu*’ to ‘SalMenu*’ in return
     return m_pSalMenu;
            ^~~~~~~~~~
In file included from /tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx:20:0:
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/inc/unx/gtk/gtkframe.hxx:71:7: note: class type ‘GtkSalMenu’ is incomplete
 class GtkSalMenu;
       ^~~~~~~~~~
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx: In member function ‘void GtkSalFrame::SetScreen(unsigned int, GtkSalFrame::SetType, tools::Rectangle*)’:
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx:1928:65: error: invalid use of incomplete type ‘class GtkSalMenu’
     GtkWidget* pMenuBarContainerWidget = m_pSalMenu ? m_pSalMenu->GetMenuBarContainerWidget() : nullptr;
                                                                 ^~
In file included from /tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx:20:0:
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/inc/unx/gtk/gtkframe.hxx:71:7: note: forward declaration of ‘class GtkSalMenu’
 class GtkSalMenu;
       ^~~~~~~~~~
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx:1928:67: error: invalid use of incomplete type ‘class GtkSalMenu’
     GtkWidget* pMenuBarContainerWidget = m_pSalMenu ? m_pSalMenu->GetMenuBarContainerWidget() : nullptr;
                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/unx/gtk3/gtk3gtkframe.cxx:20:0:
/tmp/portage/app-office/libreoffice-5.4.4.2/work/libreoffice-5.4.4.2/vcl/inc/unx/gtk/gtkframe.hxx:71:7: note: forward declaration of ‘class GtkSalMenu’
 class GtkSalMenu;
       ^~~~~~~~~~
```````
 ~ $ emerge --info
Portage 2.3.19 (python 3.6.3-final-0, default/linux/amd64/17.0/desktop/plasma, gcc-7.2.0, glibc-2.26-r3, 4.14.7-gentoo x86_64)
=================================================================
System uname: Linux-4.14.7-gentoo-x86_64-Intel-R-_Core-TM-_i7-4770K_CPU_@_3.50GHz-with-gentoo-2.4.1
KiB Mem:    15832372 total,   3769036 free
KiB Swap:   13904892 total,  13904892 free
Timestamp of repository gentoo: Wed, 20 Dec 2017 13:26:21 +0000
Head commit of repository gentoo: 8b5f344de947c5c7e7234439eaaf0ab4a474e5ce

Head commit of repository gnome: 14aadaaa2a8eaf806d3cdaf4708855fca846ab04

Head commit of repository mozilla: 771b6a27b21ced5f134b1eae6f9f0ef83ced7cc5

Head commit of repository kde: 56fdfd670a7aefaf62718c9d7465d0a3568ce458

Head commit of repository qt: 8e488dabaa7ea2058ed9fefc1986b2ddedaebe5c

Head commit of repository pg_overlay: aedc5e437fde688a3451970f0463aaeecb428682

sh bash 4.4_p12
ld GNU gold (Gentoo 2.29.1 p3 2.29.1) 1.14
ccache version 3.3.4 [disabled]
app-shells/bash:          4.4_p12::gentoo
dev-lang/perl:            5.26.1-r1::gentoo
dev-lang/python:          2.7.14-r1::gentoo, 3.6.3-r1::gentoo
dev-util/ccache:          3.3.4-r1::gentoo
dev-util/cmake:           3.10.1::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.4.1-r2::gentoo
sys-apps/openrc:          0.34.11::gentoo
sys-apps/sandbox:         2.12::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.15.1-r1::gentoo
sys-devel/binutils:       2.29.1-r1::gentoo
sys-devel/gcc:            7.2.0::gentoo
sys-devel/gcc-config:     1.9.1::gentoo
sys-devel/libtool:        2.4.6-r4::gentoo
sys-devel/make:           4.2.1-r1::gentoo
sys-kernel/linux-headers: 4.13::gentoo (virtual/os-headers)
sys-libs/glibc:           2.26-r3::gentoo
Repositories:                                                                                                                                                
                                                                                                                                                             
gentoo                                                                                                                                                       
    location: /usr/portage                                                                                                                                   
    sync-type: git                                                                                                                                           
    sync-uri: https://anongit.gentoo.org/git/repo/sync/gentoo.git                                                                                            
    priority: 1                                                                                                                                              
    eclass-overrides: gentoo mozilla qt kde pg_overlay                                                                                                       
    sync-git-clone-extra-opts: --single-branch --branch master                                                                                               
                                                                                                                                                             
gnome                                                                                                                                                        
    location: /usr/portage/proj/gnome                                                                                                                        
    sync-type: git                                                                                                                                           
    sync-uri: https://anongit.gentoo.org/git/proj/gnome.git                                                                                                  
    masters: gentoo                                                                                                                                          
    priority: 3                                                                                                                                              
    eclass-overrides: gentoo mozilla qt kde pg_overlay                                                                                                       

mozilla
    location: /usr/portage/proj/mozilla
    sync-type: git
    sync-uri: https://anongit.gentoo.org/git/proj/mozilla.git
    masters: gentoo
    priority: 3
    eclass-overrides: gentoo mozilla qt kde pg_overlay
    sync-git-clone-extra-opts: --single-branch --branch master

kde
    location: /usr/portage/proj/kde
    sync-type: git
    sync-uri: https://anongit.gentoo.org/git/proj/kde.git
    masters: gentoo
    priority: 5
    eclass-overrides: gentoo mozilla qt kde pg_overlay

qt
    location: /usr/portage/proj/qt
    sync-type: git
    sync-uri: https://anongit.gentoo.org/git/proj/qt.git
    masters: gentoo
    priority: 5
    eclass-overrides: gentoo mozilla qt kde pg_overlay
    sync-git-clone-extra-opts: --single-branch --branch master

pg_overlay
    location: /usr/portage/overlay/pg_overlay
    sync-type: git
    sync-uri: https://github.com/perfect7gentleman/pg_overlay.git
    masters: gentoo
    priority: 7
    eclass-overrides: gentoo mozilla qt kde pg_overlay

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -mtune=native -O2 -pipe -fomit-frame-pointer -fno-stack-protector -ftree-vectorize"
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"
CXXFLAGS="-march=native -mtune=native -O2 -pipe -fomit-frame-pointer -fno-stack-protector -ftree-vectorize"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch parallel-install 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.yandex.ru/gentoo-distfiles/ http://mirrors.rit.edu/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O2 -Wl,--as-needed"
MAKEOPTS="-j9"
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="/tmp"
USE="X acl acpi activities adns alsa amd64 bash-completion branding bzip2 cairo cli consolekit cracklib cups custom-cflags cxx dbus declarative dri encode exif fam ffmpeg flac fontconfig gif glamor gmp iconv icu introspection jabber jit jpeg kipi kwallet lcms libass libnotify lm_sensors lua lzma lzo matroska mmap mng modules multilib ncurses nls nptl ntpl ogg opengl openmp orc pam pango pch pcre pdf phonon png policykit ppds pulseaudio qml qt3support readline seccomp session smp sox spell ssl svg symlink szip threads tiff truetype udev udisks unicode usb v4l vaapi vorbis wavpack webp widgets wxwidgets x264 xattr xcb xcomposite xml xmpp 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="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en en-US ru" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US ru ru_RU" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-0" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python3_6" RUBY_TARGETS="ruby24" USERLAND="GNU" VIDEO_CARDS="intel i965" 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_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Andreas Sturmlechner gentoo-dev 2017-12-20 13:54:47 UTC
...your LO use flags?
Comment 2 Perfect Gentleman 2017-12-20 14:04:34 UTC
(In reply to Andreas Sturmlechner from comment #1)
> ...your LO use flags?

app-office/libreoffice-5.4.4.2::gentoo [5.4.4.2_pre::pg_overlay] USE="branding cups dbus gtk3* jemalloc -bluetooth -coinmp -collada -debug -eds -firebird -gltf -googledrive -gstreamer -gtk -java -kde -libressl -mysql -odk -pdfimport -postgres -quickstarter {-test} -vlc" LIBREOFFICE_EXTENSIONS="-nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python3_6 -python2_7 -python3_4 -python3_5" PYTHON_TARGETS="python3_6 -python2_7 -python3_4 -python3_5" 0 KiB
Comment 3 Andreas Sturmlechner gentoo-dev 2017-12-20 14:29:01 UTC
Did you have USE=gnome set previously, on older LO versions?
Comment 4 Perfect Gentleman 2017-12-20 14:30:24 UTC
(In reply to Andreas Sturmlechner from comment #3)
> Did you have USE=gnome set previously, on older LO versions?
never as I use KDE
Comment 5 Andreas Sturmlechner gentoo-dev 2017-12-20 14:58:40 UTC
I can confirm the build failure with USE="-gtk,gtk3" but with USE="gtk,gtk3" it seems to have gotten past that point now. Question being if that is a regression from 5.4.3 to 5.4.4 or result of the ebuild changes (though I would not see why).
Comment 6 Perfect Gentleman 2017-12-20 15:12:51 UTC
(In reply to Andreas Sturmlechner from comment #5)
> I can confirm the build failure with USE="-gtk,gtk3" but with USE="gtk,gtk3"
> it seems to have gotten past that point now. Question being if that is a
> regression from 5.4.3 to 5.4.4 or result of the ebuild changes (though I
> would not see why).

it's regression as i used bumped ebuild for 5.4.3.2 too.
Comment 7 Andreas Sturmlechner gentoo-dev 2017-12-20 15:32:51 UTC
Thanks for the testing input.
Comment 8 Andreas Sturmlechner gentoo-dev 2017-12-20 16:08:33 UTC
I have no problem with gtk3 requiring gtk. But I guess some people will object.
Comment 10 Ostashevskyi Viktor 2017-12-21 12:07:12 UTC
(In reply to Ostashevskyi Viktor from comment #9)
> Guilty commit is here:
> 
> https://cgit.freedesktop.org/libreoffice/core/commit/vcl?h=libreoffice-5-
> 4&id=33b194c2b8eb51facc452f5f7e2b4cef7ee34339

Adding

#include <unx/gtk/gtksalmenu.hxx>

to 

vcl/unx/gtk3/gtk3gtkframe.cxx

fixes build.
Comment 11 younky.yang 2017-12-21 13:07:07 UTC
(In reply to Ostashevskyi Viktor from comment #10)
> (In reply to Ostashevskyi Viktor from comment #9)
> > Guilty commit is here:
> > 
> > https://cgit.freedesktop.org/libreoffice/core/commit/vcl?h=libreoffice-5-
> > 4&id=33b194c2b8eb51facc452f5f7e2b4cef7ee34339
> 
> Adding
> 
> #include <unx/gtk/gtksalmenu.hxx>
> 
> to 
> 
> vcl/unx/gtk3/gtk3gtkframe.cxx
> 
> fixes build.

#include <unx/gtk/gtksalmenu.hxx> is there already but depends on the definition of ENABLE_DBUS && ENABLE_GIO
Comment 12 Larry the Git Cow gentoo-dev 2017-12-21 13:27:56 UTC
The bug has been closed via the following commit(s):

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

commit 7226ed963a079dbffc4cb3d19fa0f1670ea2eb89
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2017-12-21 12:22:55 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2017-12-21 13:27:43 +0000

    app-office/libreoffice: Fix build with USE="gtk3 -gtk"
    
    Thanks-to: Ostashevskyi Viktor <ostash@ostash.kiev.ua>
    Closes: https://bugs.gentoo.org/641812
    Package-Manager: Portage-2.3.19, Repoman-2.3.6

 .../files/libreoffice-5.4.4.2-gtk3-no-gtk-build.patch       | 13 +++++++++++++
 app-office/libreoffice/libreoffice-5.4.4.2.ebuild           |  1 +
 2 files changed, 14 insertions(+)
Comment 13 Andreas Sturmlechner gentoo-dev 2018-02-17 00:14:36 UTC
*** Bug 647896 has been marked as a duplicate of this bug. ***