Hello community,
here is the log from the commit of package libqt5-qtwayland for
openSUSE:Factory checked in at 2020-01-19 20:55:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtwayland (Old)
and /work/SRC/openSUSE:Factory/.libqt5-qtwayland.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtwayland"
Sun Jan 19 20:55:12 2020 rev:31 rq:758900 version:5.14.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtwayland/libqt5-qtwayland.changes
2019-09-09 12:31:10.681513625 +0200
+++
/work/SRC/openSUSE:Factory/.libqt5-qtwayland.new.26092/libqt5-qtwayland.changes
2020-01-19 20:56:57.688035245 +0100
@@ -1,0 +2,70 @@
+Sun Dec 22 22:52:51 UTC 2019 - Fabian Vogt <[email protected]>
+
+- Remove unneeded parentheses in License tag
+
+-------------------------------------------------------------------
+Mon Dec 16 09:42:21 UTC 2019 - Christophe Giboudeaux <[email protected]>
+
+- Update the license tags.
+
+-------------------------------------------------------------------
+Thu Dec 12 12:55:17 UTC 2019 - Fabian Vogt <[email protected]>
+
+- Update to 5.14.0:
+ * New bugfix release
+ * For the changes between 5.13.2 and 5.14.0 please see:
+ https://code.qt.io/cgit/qt/qtwayland.git/tree/dist/changes-5.14.0?h=v5.14.0
+ * For the changes between 5.13.1 and 5.13.2 please see:
+ https://code.qt.io/cgit/qt/qtwayland.git/tree/dist/changes-5.13.2?h=v5.14.0
+
+-------------------------------------------------------------------
+Wed Dec 4 14:38:13 UTC 2019 - Fabian Vogt <[email protected]>
+
+- Update to 5.14.0-rc:
+ * New bugfix release
+ * No changelog available
+ * For more details please see:
+ * For more details about Qt 5.14 please see:
+ https://wiki.qt.io/New_Features_in_Qt_5.14
+- Add patch to address performance regression (kde#412924):
+ * 0001-Avoid-animating-single-frame-cursors.patch
+
+-------------------------------------------------------------------
+Tue Nov 12 13:03:32 UTC 2019 - Fabian Vogt <[email protected]>
+
+- Update to 5.14.0-beta3:
+ * New bugfix release
+ * No changelog available
+
+-------------------------------------------------------------------
+Thu Oct 24 13:23:10 UTC 2019 - Fabian Vogt <[email protected]>
+
+- Update to 5.14.0-beta2:
+ * New bugfix release
+ * No changelog available
+
+-------------------------------------------------------------------
+Tue Oct 15 12:34:55 UTC 2019 - Fabian Vogt <[email protected]>
+
+- Update to 5.14.0-beta1:
+ * New bugfix release
+ * No changelog available
+
+-------------------------------------------------------------------
+Mon Sep 30 13:30:40 UTC 2019 - Fabian Vogt <[email protected]>
+
+- Update to 5.14.0-alpha:
+ * New feature release
+ * No changelog available
+ * For more details about Qt 5.14 please see:
+ https://wiki.qt.io/New_Features_in_Qt_5.14
+- Drop patch, cause of the regression was reverted in qtbase:
+ * 0003-Client-Don-t-send-fake-SurfaceCreated-Destroyed-even.patch
+- Drop patch, now upstream:
+ * 0004-Client-Make-handleUpdate-aware-of-exposure-changes.patch
+- Drop patch, it's (hopefully) no longer necessary:
+ * workaround-null-object.patch
+- Add patch to fix build:
+ * fix-return-nonvoid-function.patch
+
+-------------------------------------------------------------------
Old:
----
0003-Client-Don-t-send-fake-SurfaceCreated-Destroyed-even.patch
0004-Client-Make-handleUpdate-aware-of-exposure-changes.patch
qtwayland-everywhere-src-5.13.1.tar.xz
workaround-null-object.patch
New:
----
0001-Avoid-animating-single-frame-cursors.patch
fix-return-nonvoid-function.patch
qtwayland-everywhere-src-5.14.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libqt5-qtwayland.spec ++++++
--- /var/tmp/diff_new_pack.AL8s2u/_old 2020-01-19 20:56:58.580035713 +0100
+++ /var/tmp/diff_new_pack.AL8s2u/_new 2020-01-19 20:56:58.596035722 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libqt5-qtwayland
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,40 +12,35 @@
# 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/
#
%define qt5_snapshot 0
%define libname libQt5WaylandCompositor5
%define base_name libqt5
-%define real_version 5.13.1
-%define so_version 5.13.1
-%define tar_version qtwayland-everywhere-src-5.13.1
+%define real_version 5.14.0
+%define so_version 5.14.0
+%define tar_version qtwayland-everywhere-src-5.14.0
Name: libqt5-qtwayland
-Version: 5.13.1
+Version: 5.14.0
Release: 0
Summary: Qt 5 Wayland Addon
-License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only
+# The wayland compositor files are GPL-3.0-or-later
+License: GPL-3.0-or-later AND (LGPL-3.0-only OR GPL-2.0-only OR
GPL-3.0-or-later)
Group: Development/Libraries/X11
-Url: https://www.qt.io
-Source:
https://download.qt.io/official_releases/qt/5.13/%{real_version}/submodules/%{tar_version}.tar.xz
+URL: https://www.qt.io
+Source:
https://download.qt.io/official_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz
Source1: baselibs.conf
-# Those aren't merged upstream yet
-# https://codereview.qt-project.org/c/qt/qtwayland/+/265999
-Patch3: 0003-Client-Don-t-send-fake-SurfaceCreated-Destroyed-even.patch
-# https://codereview.qt-project.org/c/qt/qtwayland/+/265998
-Patch4: 0004-Client-Make-handleUpdate-aware-of-exposure-changes.patch
+# PATCH-FIX-UPSTREAM
+Patch1: 0001-Avoid-animating-single-frame-cursors.patch
# PATCH-FIX-OPENSUSE
-Patch100: workaround-null-object.patch
+Patch100: fix-return-nonvoid-function.patch
BuildRequires: fdupes
BuildRequires: libqt5-qtbase-private-headers-devel >= %{version}
BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{version}
+BuildRequires: pkgconfig
BuildRequires: xz
-%if 0%{?suse_version} < 1330
-# It does not build with the default compiler (GCC 4.8) on Leap 42.x
-BuildRequires: gcc7-c++
-%endif
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(wayland-client) >= 1.1.0
BuildRequires: pkgconfig(wayland-egl)
@@ -53,6 +48,10 @@
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xkbcommon) >= 0.2.0
Conflicts: qtwayland
+%if 0%{?suse_version} < 1330
+# It does not build with the default compiler (GCC 4.8) on Leap 42.x
+BuildRequires: gcc7-c++
+%endif
%if %{qt5_snapshot}
#to create the forwarding headers
BuildRequires: perl
@@ -75,9 +74,9 @@
%package private-headers-devel
Summary: Qt 5 Wayland Addon Non-ABI stable experimental API files
Group: Development/Libraries/C and C++
-BuildArch: noarch
Requires: %{name}-devel = %{version}
Requires: libqt5-qtbase-private-headers-devel
+BuildArch: noarch
%description private-headers-devel
This package provides private headers of libqt5-qtwayland that are normally
@@ -104,6 +103,7 @@
%package examples
Summary: Qt5 wayland examples
Group: Development/Libraries/X11
+License: BSD-3-Clause
Recommends: %{name}-devel
%description examples
@@ -113,15 +113,10 @@
%autosetup -p1 -n %{tar_version}
%post -n libQt5WaylandCompositor5 -p /sbin/ldconfig
-
%postun -n libQt5WaylandCompositor5 -p /sbin/ldconfig
-
%post -n libQt5WaylandClient5 -p /sbin/ldconfig
-
%postun -n libQt5WaylandClient5 -p /sbin/ldconfig
-
%post -p /sbin/ldconfig
-
%postun -p /sbin/ldconfig
%build
@@ -140,10 +135,10 @@
export CXX=g++-7
%endif
-%{make_jobs}
+%make_jobs
%install
-%{qmake5_install}
+%qmake5_install
find %{buildroot}%{_libdir} -type f -name '*la' -print -exec perl -pi -e 's,
-L%{_builddir}/\S+,,g' {} \;
find %{buildroot}%{_libdir}/pkgconfig -type f -name '*pc' -print -exec perl
-pi -e 's, -L%{_builddir}/\S+,,g' {} \;
@@ -153,25 +148,21 @@
fdupes -s %{buildroot}
%files
-%defattr(-,root,root,-)
-%doc LICENSE.*
+%license LICENSE.*
%{_libqt5_bindir}/qtwaylandscanner
%{_libqt5_plugindir}/
%{_libqt5_archdatadir}/qml/QtWayland/
%files -n libQt5WaylandCompositor5
-%defattr(-,root,root,-)
-%doc LICENSE.*
+%license LICENSE.*
%{_libqt5_libdir}/libQt5WaylandCompositor.so.*
%files -n libQt5WaylandClient5
-%defattr(-,root,root,-)
-%doc LICENSE.*
+%license LICENSE.*
%{_libqt5_libdir}/libQt5WaylandClient.so.*
%files devel
-%defattr(-,root,root,-)
-%doc LICENSE.*
+%license LICENSE.*
%{_libqt5_libdir}/*.prl
%{_libqt5_libdir}/*.so
%{_libqt5_libdir}/pkgconfig/*
@@ -181,13 +172,11 @@
%{_libqt5_includedir}/Qt*
%files private-headers-devel
-%defattr(-,root,root,755)
-%doc LICENSE.*
+%license LICENSE.*
%{_libqt5_includedir}/Qt*/%{so_version}
%files examples
-%defattr(-,root,root,755)
-%doc LICENSE.*
+%license LICENSE.*
%{_libqt5_examplesdir}/
%changelog
++++++ 0001-Avoid-animating-single-frame-cursors.patch ++++++
>From 8a200369acf25841cb4fbfbc6b3866d851388306 Mon Sep 17 00:00:00 2001
From: David Edmundson <[email protected]>
Date: Thu, 28 Nov 2019 02:31:17 +0100
Subject: [PATCH] Avoid animating single frame cursors
Currently to determine if a cursor is animated or not we check the
cursor theme delay.
This doesn't work in practice as by default many cursor themes have a
delay of 50 set even if they don't animate.
This comes from xcursorgen which specifies a delay of 50ms if there
isn't anything set in the config.
(https://github.com/freedesktop/xcursorgen/blob/master/xcursorgen.c#L92)
Given many themes will have a delay we should also check the number of
images in a given cursor.
In order to do that without a double lookup QWaylandCursor needed to
return the native wl_cursor, not wl_cursor_image and move the relevant
logic.
Change-Id: Ie782ace8054910ae76e61cab33ceca0377194929
Reviewed-by: Johan Helsing <[email protected]>
---
src/client/qwaylandcursor.cpp | 12 ++----------
src/client/qwaylandcursor_p.h | 3 +--
src/client/qwaylandinputdevice.cpp | 16 ++++++++++++----
3 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/src/client/qwaylandcursor.cpp b/src/client/qwaylandcursor.cpp
index 4356b23a..1d3d88be 100644
--- a/src/client/qwaylandcursor.cpp
+++ b/src/client/qwaylandcursor.cpp
@@ -219,7 +219,7 @@ wl_cursor *QWaylandCursorTheme::requestCursor(WaylandCursor
shape)
return nullptr;
}
-::wl_cursor_image *QWaylandCursorTheme::cursorImage(Qt::CursorShape shape,
uint millisecondsIntoAnimation)
+::wl_cursor *QWaylandCursorTheme::cursor(Qt::CursorShape shape)
{
struct wl_cursor *waylandCursor = nullptr;
@@ -237,15 +237,7 @@ wl_cursor
*QWaylandCursorTheme::requestCursor(WaylandCursor shape)
return nullptr;
}
- int frame = wl_cursor_frame(waylandCursor, millisecondsIntoAnimation);
- ::wl_cursor_image *image = waylandCursor->images[frame];
- ::wl_buffer *buffer = wl_cursor_image_get_buffer(image);
- if (!buffer) {
- qCWarning(lcQpaWayland) << "Could not find buffer for cursor";
- return nullptr;
- }
-
- return image;
+ return waylandCursor;
}
QWaylandCursor::QWaylandCursor(QWaylandDisplay *display)
diff --git a/src/client/qwaylandcursor_p.h b/src/client/qwaylandcursor_p.h
index a4605f3d..751ffa68 100644
--- a/src/client/qwaylandcursor_p.h
+++ b/src/client/qwaylandcursor_p.h
@@ -75,7 +75,7 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandCursorTheme
public:
static QWaylandCursorTheme *create(QWaylandShm *shm, int size, const
QString &themeName);
~QWaylandCursorTheme();
- ::wl_cursor_image *cursorImage(Qt::CursorShape shape, uint
millisecondsIntoAnimation = 0);
+ ::wl_cursor *cursor(Qt::CursorShape shape);
private:
enum WaylandCursor {
@@ -129,7 +129,6 @@ public:
void setPos(const QPoint &pos) override;
static QSharedPointer<QWaylandBuffer> cursorBitmapBuffer(QWaylandDisplay
*display, const QCursor *cursor);
- struct wl_cursor_image *cursorImage(Qt::CursorShape shape);
private:
QWaylandDisplay *mDisplay = nullptr;
diff --git a/src/client/qwaylandinputdevice.cpp
b/src/client/qwaylandinputdevice.cpp
index a4098edd..d812918e 100644
--- a/src/client/qwaylandinputdevice.cpp
+++ b/src/client/qwaylandinputdevice.cpp
@@ -283,8 +283,8 @@ void QWaylandInputDevice::Pointer::updateCursorTheme()
if (!mCursor.theme)
return; // A warning has already been printed in loadCursorTheme
- if (auto *arrow = mCursor.theme->cursorImage(Qt::ArrowCursor)) {
- int arrowPixelSize = qMax(arrow->width, arrow->height); // Not all
cursor themes are square
+ if (auto *arrow = mCursor.theme->cursor(Qt::ArrowCursor)) {
+ int arrowPixelSize = qMax(arrow->images[0]->width,
arrow->images[0]->height); // Not all cursor themes are square
while (scale > 1 && arrowPixelSize / scale < cursorSize())
--scale;
} else {
@@ -326,12 +326,20 @@ void QWaylandInputDevice::Pointer::updateCursor()
// Set from shape using theme
uint time = seat()->mCursor.animationTimer.elapsed();
- if (struct ::wl_cursor_image *image = mCursor.theme->cursorImage(shape,
time)) {
+
+ if (struct ::wl_cursor *waylandCursor = mCursor.theme->cursor(shape)) {
+ int frame = wl_cursor_frame(waylandCursor, time);
+ ::wl_cursor_image *image = waylandCursor->images[frame];
+
struct wl_buffer *buffer = wl_cursor_image_get_buffer(image);
+ if (!buffer) {
+ qCWarning(lcQpaWayland) << "Could not find buffer for cursor" <<
shape;
+ return;
+ }
int bufferScale = mCursor.themeBufferScale;
QPoint hotspot = QPoint(image->hotspot_x, image->hotspot_y) /
bufferScale;
QSize size = QSize(image->width, image->height) / bufferScale;
- bool animated = image->delay > 0;
+ bool animated = waylandCursor->image_count > 1 && image->delay > 0;
getOrCreateCursorSurface()->update(buffer, hotspot, size, bufferScale,
animated);
return;
}
--
2.23.0
++++++ fix-return-nonvoid-function.patch ++++++
Index: qtwayland-everywhere-src-5.14.0-alpha/src/client/qwaylandinputdevice.cpp
===================================================================
---
qtwayland-everywhere-src-5.14.0-alpha.orig/src/client/qwaylandinputdevice.cpp
+++ qtwayland-everywhere-src-5.14.0-alpha/src/client/qwaylandinputdevice.cpp
@@ -968,6 +968,9 @@ bool QWaylandInputDevice::Pointer::Frame
case axis_source_finger:
case axis_source_continuous:
return !delta.isNull();
+ default:
+ Q_UNREACHABLE();
+ return false;
}
}
++++++ qtwayland-everywhere-src-5.13.1.tar.xz ->
qtwayland-everywhere-src-5.14.0.tar.xz ++++++
++++ 35390 lines of diff (skipped)