Hello community, here is the log from the commit of package oyranos for openSUSE:Factory checked in at 2020-02-19 12:42:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/oyranos (Old) and /work/SRC/openSUSE:Factory/.oyranos.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oyranos" Wed Feb 19 12:42:24 2020 rev:25 rq:775309 version:0.9.6 Changes: -------- --- /work/SRC/openSUSE:Factory/oyranos/oyranos.changes 2019-06-19 21:13:49.238827077 +0200 +++ /work/SRC/openSUSE:Factory/.oyranos.new.26092/oyranos.changes 2020-02-19 12:42:31.131853172 +0100 @@ -1,0 +2,7 @@ +Thu Feb 6 17:21:35 UTC 2020 - Stefan BrĂ¼ns <[email protected]> + +- Fix a compile error with Qt 5.14, name clash between X11 #define + None and QActionGroup::None. + + 0001-Fix-compile-errors-due-to-None-redefinition-by-X11-X.patch + +------------------------------------------------------------------- New: ---- 0001-Fix-compile-errors-due-to-None-redefinition-by-X11-X.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ oyranos.spec ++++++ --- /var/tmp/diff_new_pack.56TIee/_old 2020-02-19 12:42:32.715856221 +0100 +++ /var/tmp/diff_new_pack.56TIee/_new 2020-02-19 12:42:32.715856221 +0100 @@ -1,7 +1,7 @@ # # spec file for package oyranos # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # Copyright (c) 2011-2017 Kai-Uwe Behrmann <[email protected]> # # All modifications and additions to the file contributed by third parties @@ -13,7 +13,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -32,9 +32,9 @@ Version: 0.9.6 Release: 0 Summary: Color Management System -License: BSD-3-Clause AND GPL-2.0 +License: BSD-3-Clause AND GPL-2.0-only Group: Development/Libraries/C and C++ -Url: http://www.oyranos.org +URL: http://www.oyranos.org Source0: oyranos_%{version}.orig.tar.bz2 Source1: oyranos_%{version}-1.debian.tar.gz Source2: oyranos-rpmlintrc @@ -49,6 +49,8 @@ Patch7: exmpl-update-GLee.h-to-Mesa-18.3.1.patch # PATCH-FIX-UPSTREAM -- https://github.com/oyranos-cms/oyranos/pull/52 Patch8: reproducible.patch +# PATCH-FIX-OPENSUSE +Patch9: 0001-Fix-compile-errors-due-to-None-redefinition-by-X11-X.patch BuildRequires: cmake BuildRequires: color-filesystem BuildRequires: cups-devel @@ -285,7 +287,8 @@ %postun -n lib%{name}0 -p /sbin/ldconfig %files -f %{name}.lang -%doc AUTHORS.md COPYING.md ChangeLog.md README.md +%doc AUTHORS.md ChangeLog.md README.md +%license COPYING.md %{_bindir}/%{name}-compat-gnome %{_bindir}/%{name}-icc %{_bindir}/%{name}-policy ++++++ 0001-Fix-compile-errors-due-to-None-redefinition-by-X11-X.patch ++++++ >From 1b9acc64f4dab266a44ac2bbf5bf6ad6010bb500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]> Date: Thu, 6 Feb 2020 18:15:46 +0100 Subject: [PATCH] Fix compile errors due to None redefinition by X11/X.h X has a #define None 0L, which leads to compile errors when None is used as an identifier, e.g. enum foo { None, ... }; Move the Xcm.h include to the end so the definition does not affect any other included headers. Also move the Qcmse class to the implementation file, so no X11 headers are needed in qcmsevents.h. --- src/tools/qcmsevents/qcmsevents.cpp | 40 ++++++++++++++- src/tools/qcmsevents/qcmsevents.h | 77 ----------------------------- 2 files changed, 38 insertions(+), 79 deletions(-) diff --git a/src/tools/qcmsevents/qcmsevents.cpp b/src/tools/qcmsevents/qcmsevents.cpp index 74c75b0..75e9519 100644 --- a/src/tools/qcmsevents/qcmsevents.cpp +++ b/src/tools/qcmsevents/qcmsevents.cpp @@ -18,13 +18,15 @@ #include "oyProfile_s.h" #include "oyObject_s.h" -#include <X11/Xcm/Xcm.h> - #include <QAction> #include <QActionGroup> #include <QVBoxLayout> #include <QMenu> +#include <QtX11Extras/QX11Info> +#include <X11/Xcm/XcmEvents.h> +#include <X11/Xcm/Xcm.h> + QcmseDialog * dialog = NULL; QcmseDialog::QcmseDialog() @@ -374,6 +376,40 @@ char * getName ( const void * data, } } +class Qcmse : public QApplication, QAbstractNativeEventFilter +{ + XcmeContext_s * c; + public: + Qcmse(int & argc, char ** argv) : QApplication(argc,argv) + { + c = NULL; + QCoreApplication::eventDispatcher()->installNativeEventFilter( this ); + }; + ~Qcmse() + { + XcmeContext_Release( &c ); + }; + void setup() + { + const char * display_name = getenv("DISPLAY"); + if(QX11Info::isPlatformX11()) + c = XcmeContext_Create( display_name ); + }; + // ask Qt for new arriving events + virtual bool nativeEventFilter(const QByteArray &, void *, long *) Q_DECL_OVERRIDE + { + // use Xlib for Xcm's stand alone X11 context + while(XPending(XcmeContext_DisplayGet( c ))) + { + XEvent event; + XNextEvent( XcmeContext_DisplayGet( c ), &event); + XcmeContext_InLoop( c, &event ); + } + + return false; + }; +}; + int main(int argc, char *argv[]) { Q_INIT_RESOURCE(qcmsevents); diff --git a/src/tools/qcmsevents/qcmsevents.h b/src/tools/qcmsevents/qcmsevents.h index d9c2f4b..9e601ad 100644 --- a/src/tools/qcmsevents/qcmsevents.h +++ b/src/tools/qcmsevents/qcmsevents.h @@ -18,17 +18,9 @@ #include <QWidget> #include <QListWidget> #include <QComboBox> -#if QT_VERSION >= 0x050000 -#include <QtX11Extras/QX11Info> -#else -#include <QtGui/QX11Info> -#endif #include <cstdlib> #include <cstring> -#include <X11/Xcm/XcmEvents.h> -#include <X11/Xcm/Xcm.h> - class QcmseDialog : public QDialog { Q_OBJECT @@ -66,74 +58,5 @@ private slots: extern QcmseDialog * dialog; - - -#if QT_VERSION >= 0x050000 -class Qcmse : public QApplication, QAbstractNativeEventFilter -{ - XcmeContext_s * c; - public: - Qcmse(int & argc, char ** argv) : QApplication(argc,argv) - { - c = NULL; - QCoreApplication::eventDispatcher()->installNativeEventFilter( this ); - }; - ~Qcmse() - { - XcmeContext_Release( &c ); - }; - void setup() - { - const char * display_name = getenv("DISPLAY"); - if(QX11Info::isPlatformX11()) - c = XcmeContext_Create( display_name ); - }; - // ask Qt for new arriving events - virtual bool nativeEventFilter(const QByteArray &, void *, long *) Q_DECL_OVERRIDE - { - // use Xlib for Xcm's stand alone X11 context - while(XPending(XcmeContext_DisplayGet( c ))) - { - XEvent event; - XNextEvent( XcmeContext_DisplayGet( c ), &event); - XcmeContext_InLoop( c, &event ); - } - - return false; - }; -}; -#else /* QT_VERSION >= 0x050000 */ -class Qcmse : public QApplication -{ - XcmeContext_s * c; - public: - Qcmse(int & argc, char ** argv) : QApplication(argc,argv) - { - c = XcmeContext_New( ); - }; - ~Qcmse() - { - XcmeContext_Release( &c ); - }; - void setup() - { - const char * display_name = getenv("DISPLAY"); - QDesktopWidget * d = this->desktop(); - QX11Info i = d->x11Info(); - XcmeContext_DisplaySet( c, i.display() ); - XcmeContext_WindowSet( c, dialog->winId() ); - XcmeContext_Setup( c, display_name ); - }; - bool x11EventFilter( XEvent * event ) - { - /* set the actual X11 Display, Qt seems to change the old pointer. */ - XcmeContext_DisplaySet( c, event->xany.display ); - /* process the X event */ - XcmeContext_InLoop( c, event ); - return false; - }; -}; -#endif /* QT_VERSION >= 0x050000 */ - #endif /* QCMSEVENTS_H */ -- 2.25.0
