avmedia/source/gtk/gtkplayer.cxx | 4 ++++ configmgr/source/dconf.cxx | 7 ------- configure.ac | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-)
New commits: commit e149f038b6179ac94a613676fb0b1b475541313b Author: Stephan Bergmann <[email protected]> AuthorDate: Tue Mar 14 15:19:30 2023 +0100 Commit: Stephan Bergmann <[email protected]> CommitDate: Wed Mar 15 08:23:36 2023 +0000 Bump dconf minimum version requirement At least building on Fedora 37 with dconf-devel-0.40.0-7.fc37.x86_64 against recent LLVM 17 trunk libc++ started to fail now with > In file included from configmgr/source/dconf.cxx:25: > In file included from /usr/include/dconf/dconf.h:23: > In file included from /usr/include/dconf/common/dconf-enums.h:23: > In file included from /usr/include/glib-2.0/glib.h:34: > In file included from /usr/include/glib-2.0/glib/gasyncqueue.h:34: > In file included from /usr/include/glib-2.0/glib/gthread.h:34: > In file included from /usr/include/glib-2.0/glib/gatomic.h:30: > In file included from /usr/include/glib-2.0/glib/glib-typeof.h:44: > In file included from ~/llvm/inst/bin/../include/c++/v1/type_traits:430: > ~/llvm/inst/bin/../include/c++/v1/__type_traits/aligned_union.h:23:1: error: templates must have C++ linkage > template <size_t _I0, size_t ..._In> > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > configmgr/source/dconf.cxx:19:1: note: extern "C" language linkage specification begins here > extern "C" { > ^ because the missing extern "C" has meanwhile been added to upstream dconf with <https://gitlab.gnome.org/GNOME/dconf/-/commit/f860ddcc6a501b982d82c5630c73936bd611ad8a> "common: Add missing G_BEGIN/END_DECLS" towards tag 0.40.0. So the easiest fix here appears to be to bump our requirements to that dconf version 0.40.0: The one case I'm aware of that explicitly wants dconf support is downstream Fedora and RHEL builds, which already have dconf 0.40.0 (cf. most recent <https://src.fedoraproject.org/rpms/dconf/blob/a9987b0abe15133d091bcd390fd33077881567ae/f/dconf.spec#_4> for f37 and most recent <https://gitlab.com/redhat/centos-stream/rpms/dconf/-/blob/1bb6b46da242b75e5e1864f5c97ab6e592ca60ba/dconf.spec#L4> for e9s). On the other hand, the TDF Linux release builds are done with an explicit --disable-dconf in distro-configs/LibreOfficeLinux.conf (since ecc617e797aa5ed329668114e54ec7ffa5c0e87b "configmgr: support reading from a dconf layer (WIP)") and the Flatpak builds on Flathub are done against an org.freedesktop.Sdk//22.08 where no dconf support is detected at all (for the most recent LO 7.5.1 build on Flathub see > checking for DCONF... no > checking whether to enable dconf... no at <https://buildbot.flathub.org/#/builders/5/builds/3184/steps/8/logs/stdio> for aarch64 and at <https://buildbot.flathub.org/#/builders/5/builds/3184/steps/8/logs/stdio> for x86_64). Change-Id: I559d2ac8712dbe2b40c9b881314b88d1cc8eaf43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148887 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> diff --git a/configmgr/source/dconf.cxx b/configmgr/source/dconf.cxx index 9db51fa17cfb..a63a96c511da 100644 --- a/configmgr/source/dconf.cxx +++ b/configmgr/source/dconf.cxx @@ -16,14 +16,7 @@ #include <limits> #include <vector> -extern "C" { - //TODO: <https://bugzilla.gnome.org/show_bug.cgi?id=754245> - // "common/dconf-changeset.h etc. lack extern "C" wrapper for C++", fixed on current dconf - // master (towards 0.40?) now with - // <https://gitlab.gnome.org/GNOME/dconf/-/commit/db3d4df6d1a763698f27b013dc42da8d4ae02639> - // "Merge branch 'wip/issue-23' into 'master'" #include <dconf/dconf.h> -} #include <com/sun/star/uno/Sequence.hxx> #include <o3tl/safeint.hxx> diff --git a/configure.ac b/configure.ac index 17fa8afac23a..1d388c9dc189 100644 --- a/configure.ac +++ b/configure.ac @@ -11959,7 +11959,7 @@ dnl Check whether to build with dconf support. dnl ================================================= if test $_os != Android -a $_os != iOS -a "$enable_dconf" != no; then - PKG_CHECK_MODULES([DCONF], [dconf >= 0.15.2], [], [ + PKG_CHECK_MODULES([DCONF], [dconf >= 0.40.0], [], [ if test "$enable_dconf" = yes; then AC_MSG_ERROR([dconf not found]) else commit 7a21cba913fe99ea11e0b6a9d4b1e61cf677f2e1 Author: Stephan Bergmann <[email protected]> AuthorDate: Tue Mar 14 22:28:23 2023 +0100 Commit: Stephan Bergmann <[email protected]> CommitDate: Wed Mar 15 08:23:24 2023 +0000 Silence -Werror=deprecated-declarations for now ...as seen with gtk4-devel-4.10.0-3.fc38.x86_64, > avmedia/source/gtk/gtkplayer.cxx: In member function ‘virtual com::sun::star::uno::Reference<com::sun::star::media::XPlayerWindow> avmedia::gtk::GtkPlayer::createPlayerWindow(const com::sun::star::uno::Sequence<com::sun::star::uno::Any>&)’: > avmedia/source/gtk/gtkplayer.cxx:358:20: error: ‘void gtk_widget_show(GtkWidget*)’ is deprecated: Use 'gtk_widget_set_visible or gtk_window_present' instead [-Werror=deprecated-declarations] > 358 | gtk_widget_show(m_pVideo); > | ~~~~~~~~~~~~~~~^~~~~~~~~~ > In file included from /usr/include/gtk-4.0/gtk/gtkapplication.h:27, > from /usr/include/gtk-4.0/gtk/gtkwindow.h:33, > from /usr/include/gtk-4.0/gtk/gtkaboutdialog.h:30, > from /usr/include/gtk-4.0/gtk/gtk.h:34, > from avmedia/source/gtk/gtkplayer.cxx:28: > /usr/include/gtk-4.0/gtk/gtkwidget.h:273:12: note: declared here > 273 | void gtk_widget_show (GtkWidget *widget); > | ^~~~~~~~~~~~~~~ > avmedia/source/gtk/gtkplayer.cxx:359:20: error: ‘void gtk_widget_show(GtkWidget*)’ is deprecated: Use 'gtk_widget_set_visible or gtk_window_present' instead [-Werror=deprecated-declarations] > 359 | gtk_widget_show(pParent); > | ~~~~~~~~~~~~~~~^~~~~~~~~ > /usr/include/gtk-4.0/gtk/gtkwidget.h:273:12: note: declared here > 273 | void gtk_widget_show (GtkWidget *widget); > | ^~~~~~~~~~~~~~~ Change-Id: I1cb2988cec6cda3dd3e43a3773647a3ddaf211e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148899 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> diff --git a/avmedia/source/gtk/gtkplayer.cxx b/avmedia/source/gtk/gtkplayer.cxx index 08b5f10c5b6d..51978c3e5b45 100644 --- a/avmedia/source/gtk/gtkplayer.cxx +++ b/avmedia/source/gtk/gtkplayer.cxx @@ -355,8 +355,12 @@ uno::Reference<::media::XPlayerWindow> GtkWidget* pParent = static_cast<GtkWidget*>(pEnvData->pWidget); gtk_widget_set_can_target(pParent, false); gtk_grid_attach(GTK_GRID(pParent), m_pVideo, 0, 0, 1, 1); + // "‘void gtk_widget_show(GtkWidget*)’ is deprecated: Use 'gtk_widget_set_visible or + // gtk_window_present' instead": + SAL_WNODEPRECATED_DECLARATIONS_PUSH gtk_widget_show(m_pVideo); gtk_widget_show(pParent); + SAL_WNODEPRECATED_DECLARATIONS_POP xRet = new ::avmedia::gstreamer::Window;
