diff options
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/gstreamer-buffer-reset-offset.patch | 59 | ||||
-rw-r--r-- | gnu/packages/patches/kwindowsystem-qt-compat.patch | 97 | ||||
-rw-r--r-- | gnu/packages/patches/mesa-timespec-test-32bit.patch | 17 | ||||
-rw-r--r-- | gnu/packages/patches/orc-typedef-enum.patch | 17 | ||||
-rw-r--r-- | gnu/packages/patches/qtbase-old-kernel.patch | 25 | ||||
-rw-r--r-- | gnu/packages/patches/sdl2-mesa-compat.patch | 21 |
6 files changed, 152 insertions, 84 deletions
diff --git a/gnu/packages/patches/gstreamer-buffer-reset-offset.patch b/gnu/packages/patches/gstreamer-buffer-reset-offset.patch deleted file mode 100644 index 024892a60f..0000000000 --- a/gnu/packages/patches/gstreamer-buffer-reset-offset.patch +++ /dev/null @@ -1,59 +0,0 @@ -Fix a buffer offset problem in GStreamer 1.16. Initially reported by Mark H. -Weaver in <https://lists.gnu.org/archive/html/guix-devel/2019-06/msg00140.html>. - -See also <https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/316>. - -From 1734c9fc1a4f99b165383ae1eb02f04e0844a00c Mon Sep 17 00:00:00 2001 -From: Nicolas Dufresne <nicolas.dufresne@collabora.com> -Date: Sat, 29 Jun 2019 09:22:05 -0400 -Subject: [PATCH] bufferpool: Fix the buffer size reset code - -The offset in gst_buffer_resize() is additive. So to move back the -offset to zero, we need to pass the opposite of the current offset. This -was raised through the related unit test failingon 32bit as on 64bit -the alignment padding was enough to hide the issue. The test was -modified to also fail on 64bit. This patch will remove spurious -assertions like: - - assertion 'bufmax >= bufoffs + offset + size' failed - -Fixes #316 ---- - gst/gstbufferpool.c | 7 +++++-- - tests/check/gst/gstbufferpool.c | 2 +- - 2 files changed, 6 insertions(+), 3 deletions(-) - -diff --git a/gst/gstbufferpool.c b/gst/gstbufferpool.c -index e5c7a5872..619860e63 100644 ---- a/gst/gstbufferpool.c -+++ b/gst/gstbufferpool.c -@@ -1222,8 +1222,11 @@ default_reset_buffer (GstBufferPool * pool, GstBuffer * buffer) - GST_BUFFER_OFFSET_END (buffer) = GST_BUFFER_OFFSET_NONE; - - /* if the memory is intact reset the size to the full size */ -- if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_TAG_MEMORY)) -- gst_buffer_resize (buffer, 0, pool->priv->size); -+ if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_TAG_MEMORY)) { -+ gsize offset; -+ gst_buffer_get_sizes (buffer, &offset, NULL); -+ gst_buffer_resize (buffer, -offset, pool->priv->size); -+ } - - /* remove all metadata without the POOLED flag */ - gst_buffer_foreach_meta (buffer, remove_meta_unpooled, pool); -diff --git a/tests/check/gst/gstbufferpool.c b/tests/check/gst/gstbufferpool.c -index f0c3c8d8e..dd9b2dc03 100644 ---- a/tests/check/gst/gstbufferpool.c -+++ b/tests/check/gst/gstbufferpool.c -@@ -190,7 +190,7 @@ GST_START_TEST (test_buffer_modify_discard) - gst_buffer_pool_acquire_buffer (pool, &buf, NULL); - buffer_track_destroy (buf, &dcount); - /* do resize, as we didn't modify the memory, pool should reuse this buffer */ -- gst_buffer_resize (buf, 5, 2); -+ gst_buffer_resize (buf, 8, 2); - gst_buffer_unref (buf); - - /* buffer should've gone back into pool */ --- -2.22.0 - diff --git a/gnu/packages/patches/kwindowsystem-qt-compat.patch b/gnu/packages/patches/kwindowsystem-qt-compat.patch new file mode 100644 index 0000000000..ef31636917 --- /dev/null +++ b/gnu/packages/patches/kwindowsystem-qt-compat.patch @@ -0,0 +1,97 @@ +Fix test failure with Qt 5.12. + +Taken from upstream: +https://cgit.kde.org/kwindowsystem.git/commit/?id=14998613603c7d8f91b011a2c9c20396067add0e + +diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt +index f8e67f0..c1121a7 100644 +--- a/autotests/CMakeLists.txt ++++ b/autotests/CMakeLists.txt +@@ -12,12 +12,12 @@ add_subdirectory(helper) + + if (NOT APPLE) + find_package(X11) +- find_package(XCB COMPONENTS XCB KEYSYMS) ++ find_package(XCB COMPONENTS XCB ICCCM KEYSYMS) + endif() + + macro(KWINDOWSYSTEM_UNIT_TESTS) + foreach(_testname ${ARGN}) +- set(libs KF5::WindowSystem Qt5::Test Qt5::Widgets Qt5::X11Extras XCB::KEYSYMS) ++ set(libs KF5::WindowSystem Qt5::Test Qt5::Widgets Qt5::X11Extras XCB::ICCCM XCB::KEYSYMS) + if(X11_FOUND) + list(APPEND libs ${XCB_XCB_LIBRARY}) + endif() +diff --git a/autotests/kwindowinfox11test.cpp b/autotests/kwindowinfox11test.cpp +index 634c650..f483c46 100644 +--- a/autotests/kwindowinfox11test.cpp ++++ b/autotests/kwindowinfox11test.cpp +@@ -25,8 +25,11 @@ + #include <qtest_widgets.h> + #include <QScreen> + #include <QSignalSpy> ++#include <QSysInfo> + #include <QX11Info> + ++#include <xcb/xcb_icccm.h> ++ + #include <unistd.h> + + Q_DECLARE_METATYPE(WId) +@@ -598,19 +601,23 @@ void KWindowInfoX11Test::testWindowRole() + + void KWindowInfoX11Test::testClientMachine() + { ++ const QByteArray oldHostName = QSysInfo::machineHostName().toLocal8Bit(); ++ + KWindowInfo info(window->winId(), NET::Properties(), NET::WM2ClientMachine); +- QVERIFY(info.clientMachine().isNull()); ++ QCOMPARE(info.clientMachine(), oldHostName); + + // client machine needs to be set through xcb ++ const QByteArray newHostName = oldHostName + "2"; + xcb_change_property(QX11Info::connection(), XCB_PROP_MODE_REPLACE, window->winId(), +- XCB_ATOM_WM_CLIENT_MACHINE, XCB_ATOM_STRING, 8, 9, "localhost"); ++ XCB_ATOM_WM_CLIENT_MACHINE, XCB_ATOM_STRING, 8, newHostName.count(), ++ newHostName.data()); + xcb_flush(QX11Info::connection()); + + // it's just a property change so we can easily refresh + QX11Info::getTimestamp(); + + KWindowInfo info2(window->winId(), NET::Properties(), NET::WM2ClientMachine); +- QCOMPARE(info2.clientMachine(), QByteArrayLiteral("localhost")); ++ QCOMPARE(info2.clientMachine(), newHostName); + } + + void KWindowInfoX11Test::testName() +@@ -680,11 +687,25 @@ void KWindowInfoX11Test::testTransientFor() + + void KWindowInfoX11Test::testGroupLeader() + { +- KWindowInfo info(window->winId(), NET::Properties(), NET::WM2GroupLeader); +- QCOMPARE(info.groupLeader(), WId(0)); ++ // WM_CLIENT_LEADER is set by default ++ KWindowInfo info1(window->winId(), NET::Properties(), NET::WM2GroupLeader); ++ QVERIFY(info1.groupLeader() != XCB_WINDOW_NONE); ++ ++ xcb_connection_t *connection = QX11Info::connection(); ++ xcb_window_t rootWindow = QX11Info::appRootWindow(); ++ ++ xcb_window_t leader = xcb_generate_id(connection); ++ xcb_create_window(connection, XCB_COPY_FROM_PARENT, leader, rootWindow, 0, 0, 1, 1, ++ 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT, 0, nullptr); ++ ++ xcb_icccm_wm_hints_t hints = {}; ++ hints.flags = XCB_ICCCM_WM_HINT_WINDOW_GROUP; ++ hints.window_group = leader; ++ xcb_icccm_set_wm_hints(connection, leader, &hints); ++ xcb_icccm_set_wm_hints(connection, window->winId(), &hints); + +- // TODO: here we should try to set a group leader and re-read it +- // this needs setting and parsing the WMHints ++ KWindowInfo info2(window->winId(), NET::Properties(), NET::WM2GroupLeader); ++ QCOMPARE(info2.groupLeader(), leader); + } + + void KWindowInfoX11Test::testExtendedStrut() diff --git a/gnu/packages/patches/mesa-timespec-test-32bit.patch b/gnu/packages/patches/mesa-timespec-test-32bit.patch new file mode 100644 index 0000000000..3e4890f3a4 --- /dev/null +++ b/gnu/packages/patches/mesa-timespec-test-32bit.patch @@ -0,0 +1,17 @@ +Fix a test failure on 32-bit systems. + +Taken from upstream: +https://gitlab.freedesktop.org/mesa/mesa/commit/dd1dba80b9ee74ec8b90761285a8262e374bf8ef + +diff --git a/src/util/tests/timespec/timespec_test.cpp b/src/util/tests/timespec/timespec_test.cpp +--- a/src/util/tests/timespec/timespec_test.cpp ++++ b/src/util/tests/timespec/timespec_test.cpp +@@ -206,7 +206,7 @@ TEST(timespec_test, timespec_from_nsec) + + timespec_from_nsec(&a, UINT64_MAX); + EXPECT_EQ(a.tv_nsec, UINT64_MAX % NSEC_PER_SEC); +- EXPECT_EQ(a.tv_sec, UINT64_MAX / NSEC_PER_SEC); ++ EXPECT_EQ(a.tv_sec, (time_t)(UINT64_MAX / NSEC_PER_SEC)); + } + + TEST(timespec_test, timespec_from_usec) diff --git a/gnu/packages/patches/orc-typedef-enum.patch b/gnu/packages/patches/orc-typedef-enum.patch new file mode 100644 index 0000000000..207bf32ba9 --- /dev/null +++ b/gnu/packages/patches/orc-typedef-enum.patch @@ -0,0 +1,17 @@ +Orc 0.4.30 has a bug that causes duplicate symbols due to a missing typedef. + +Taken from upstream: +https://gitlab.freedesktop.org/gstreamer/orc/merge_requests/32 + +diff --git a/orc/orctarget.h b/orc/orctarget.h +--- a/orc/orctarget.h ++++ b/orc/orctarget.h +@@ -19,7 +19,7 @@ enum { + ORC_TARGET_FAST_DENORMAL = (1<<31) + }; + +-enum { ++typedef enum { + ORC_TARGET_POWERPC_64BIT = (1<<0), + ORC_TARGET_POWERPC_LE = (1<<1), + ORC_TARGET_POWERPC_ALTIVEC = (1<<2), diff --git a/gnu/packages/patches/qtbase-old-kernel.patch b/gnu/packages/patches/qtbase-old-kernel.patch deleted file mode 100644 index aa26fb6c4f..0000000000 --- a/gnu/packages/patches/qtbase-old-kernel.patch +++ /dev/null @@ -1,25 +0,0 @@ -https://672856.bugs.gentoo.org/attachment.cgi?id=557978 -https://bugs.gentoo.org/672856 - -The patch fixes building qtbase with linux kernels < 4.11. -See bug #34431. - -diff -Naurp a/src/corelib/global/minimum-linux_p.h b/src/corelib/global/minimum-linux_p.h ---- a/src/corelib/global/minimum-linux_p.h 2018-11-25 15:51:11.000000000 +0300 -+++ b/src/corelib/global/minimum-linux_p.h 2018-12-17 13:25:38.176823753 +0300 -@@ -75,14 +75,9 @@ QT_BEGIN_NAMESPACE - * - accept4 2.6.28 - * - renameat2 3.16 QT_CONFIG(renameat2) - * - getrandom 3.17 QT_CONFIG(getentropy) -- * - statx 4.11 QT_CONFIG(statx) - */ - --#if QT_CONFIG(statx) --# define MINLINUX_MAJOR 4 --# define MINLINUX_MINOR 11 --# define MINLINUX_PATCH 0 --#elif QT_CONFIG(getentropy) -+#if QT_CONFIG(getentropy) - # define MINLINUX_MAJOR 3 - # define MINLINUX_MINOR 17 - # define MINLINUX_PATCH 0 diff --git a/gnu/packages/patches/sdl2-mesa-compat.patch b/gnu/packages/patches/sdl2-mesa-compat.patch new file mode 100644 index 0000000000..8182e582e7 --- /dev/null +++ b/gnu/packages/patches/sdl2-mesa-compat.patch @@ -0,0 +1,21 @@ +Do not include GLES header when OpenGL headers are already included. + +Taken from upstream: +https://hg.libsdl.org/SDL/rev/369b01006eb2 + +diff -r 4cbaffd0083b -r 369b01006eb2 src/video/SDL_video.c +--- a/src/video/SDL_video.c Fri Oct 11 06:18:24 2019 +0200 ++++ b/src/video/SDL_video.c Sat Oct 12 18:47:56 2019 +0200 +@@ -37,9 +37,9 @@ + #include "SDL_opengl.h" + #endif /* SDL_VIDEO_OPENGL */ + +-#if SDL_VIDEO_OPENGL_ES ++#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL + #include "SDL_opengles.h" +-#endif /* SDL_VIDEO_OPENGL_ES */ ++#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */ + + /* GL and GLES2 headers conflict on Linux 32 bits */ + #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL + |