[EmptyEpsilon] Rebase to version 2020.11.23
by Michal Schorm
commit 2dd2f0eddfc76ba3ed13154762676a00134fd4e1
Author: Michal Schorm <mschorm(a)redhat.com>
Date: Tue Nov 24 00:29:00 2020 +0100
Rebase to version 2020.11.23
.gitignore | 2 ++
EmptyEpsilon.spec | 7 +++++--
sources | 4 ++--
3 files changed, 9 insertions(+), 4 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 014f730..3a935ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,5 @@
/EmptyEpsilon-EE-2019.05.21.zip
/EmptyEpsilon-EE-2020.08.25.zip
/SeriousProton-EE-2020.08.25.zip
+/EmptyEpsilon-EE-2020.11.23.zip
+/SeriousProton-EE-2020.11.23.zip
diff --git a/EmptyEpsilon.spec b/EmptyEpsilon.spec
index 64a47be..d7c31f2 100644
--- a/EmptyEpsilon.spec
+++ b/EmptyEpsilon.spec
@@ -1,6 +1,6 @@
%global version_major 2020
-%global version_minor 08
-%global version_patch 25
+%global version_minor 11
+%global version_patch 23
%undefine __cmake_in_source_build
@@ -78,6 +78,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%{_datadir}/applications/%{name}.desktop
%changelog
+* Tue Nov 24 2020 Michal Schorm <mschorm(a)redhat.com> - 2020.11.23-1
+- Rebase to version 2020.11.23
+
* Sun Nov 01 2020 Michal Schorm <mschorm(a)redhat.com> - 2020.08.25-1
- Rebase to version 2020.08.25
diff --git a/sources b/sources
index acd57b3..e63c528 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (EmptyEpsilon-EE-2020.08.25.zip) = b1f8f4643d1b556cf3062c3dba8f41a45cba01264cb350bb10c249d1cf7b1edcd18a00cfbcdabb29d99ad117b7d2998dfc3b684aafff995e7ff9d65f65e88ef2
-SHA512 (SeriousProton-EE-2020.08.25.zip) = 456664261ae59c26f3b09ea7bdef350b52446ea1504b6cb2d270fe71537472712780ce5cc2bc994cbefddc00b3122472336ce2694fd22a358772202122b31504
+SHA512 (EmptyEpsilon-EE-2020.11.23.zip) = 9cbd9217216aa6836eea6e816c3be0c9f6bee9f0547e9dbdc994fb2a39ee22980055830238444a7a312d4da6ea3cc5981e0fdda49d31da10d01e0dafecb377db
+SHA512 (SeriousProton-EE-2020.11.23.zip) = 64790a8117f933a1c2e11d859d08dfab6954e594808db0c6fb0db75129ef44f9431ba84e7436649825b947e1884e8e5261fbf452241a6d714126c9f3cb438a4f
3 years, 12 months
[megasync] Update to 4.3.7.0.
by Vasiliy Glazov
commit 25a9ad9781b7f3111c0b8a1650e761a4c00d228a
Author: vascom <vascom2(a)gmail.com>
Date: Mon Nov 23 23:51:10 2020 +0300
Update to 4.3.7.0.
.gitignore | 2 ++
megasync.spec | 9 ++++++---
sources | 4 ++--
3 files changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index ab2e95b..8906a6c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,5 @@
/v4.3.3.0_Linux.tar.gz
/v3.7.5.tar.gz
/v4.3.5.0_Linux.tar.gz
+/v3.7.3e.tar.gz
+/v4.3.7.0_Linux.tar.gz
diff --git a/megasync.spec b/megasync.spec
index 2a07c69..fd00aa4 100644
--- a/megasync.spec
+++ b/megasync.spec
@@ -1,4 +1,4 @@
-%global sdk_version 3.7.5
+%global sdk_version 3.7.3e
%undefine __cmake_in_source_build
%bcond_without dolphin
@@ -12,7 +12,7 @@
%global enable_lto 0
Name: megasync
-Version: 4.3.5.0
+Version: 4.3.7.0
Release: 1%{?dist}
Summary: Easy automated syncing between your computers and your MEGA cloud drive
# MEGAsync is under a proprietary license, except the SDK which is BSD
@@ -250,7 +250,10 @@ popd
%endif
%changelog
-* Wed Oct 21 2020 Vasiliy N. Glazov <vascom2(a)gmail.com> - 4.3.5.0-1
+* Mon Nov 23 2020 Vasiliy N. Glazov <vascom2(a)gmail.com> - 4.3.7.0-1
+- Update to 4.3.7.0
+
+* Wed Nov 11 2020 Vasiliy N. Glazov <vascom2(a)gmail.com> - 4.3.5.0-1
- Update to 4.3.5.0
* Wed Aug 19 2020 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 4.3.3.0-2
diff --git a/sources b/sources
index ad1bd11..a7fd839 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (v3.7.5.tar.gz) = c75d1deeda8027220c78b5839422a720d8619346eaf18ebd8797e479a44a6cc44109d1b5accb46474af18b741a375eb52383a0a2d4dd2d3e867ebf8e8f3af9a0
-SHA512 (v4.3.5.0_Linux.tar.gz) = 1f927731a633330c96c25dee4976eb2f221b7356bb30e48806397d2309c7ae71f2eead4fc7cf5a19a510500fb15b84294da36c5fdc688590bda83959a0e8488d
+SHA512 (v3.7.3e.tar.gz) = a3de29614ca45d3099cf84823726901aa7d586b0f09df9f55539d962f292822608cc481eaddca2f8ac1e63931ccfc48ab65c349b06a57db25e8996332fcc2d69
+SHA512 (v4.3.7.0_Linux.tar.gz) = 6852390e05da13effd059a5e0dc7fe400f3456668925fbed5e34bc5018b3664d72aebd78847dfdb4f6dda39fe615a79e5c0eb99e72a401fb833d4eba8216010c
3 years, 12 months
[nvidia-kmod] Add patch to reduce kmalloc limit
by Leigh Scott
commit f70422bffbc8fe3b183601f84a143e8b2d9591a1
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Mon Nov 23 10:56:24 2020 +0000
Add patch to reduce kmalloc limit
nvidia-kmod.spec | 8 +++++++-
reduce-kmalloc-limit-455.38.patch | 14 ++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
---
diff --git a/nvidia-kmod.spec b/nvidia-kmod.spec
index 18ab4fe..94451d0 100644
--- a/nvidia-kmod.spec
+++ b/nvidia-kmod.spec
@@ -12,12 +12,14 @@ Name: nvidia-kmod
Epoch: 3
Version: 455.45.01
# Taken over by kmodtool
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: NVIDIA display driver kernel module
License: Redistributable, no modification permitted
URL: http://www.nvidia.com/
Source11: nvidia-kmodtool-excludekernel-filterfile
+# https://forums.developer.nvidia.com/t/455-23-04-page-allocation-failure-i...
+Patch0: reduce-kmalloc-limit-455.38.patch
# needed for plague to make sure it builds for i586 and i686
ExclusiveArch: x86_64
@@ -41,6 +43,7 @@ kmodtool --target %{_target_cpu} --repo rpmfusion --kmodname %{name} --filterf
%setup -T -c
tar --use-compress-program xz -xf %{_datadir}/%{name}-%{version}/%{name}-%{version}-%{_target_cpu}.tar.xz
# patch loop
+%patch0 -p0
for kernel_version in %{?kernel_versions} ; do
cp -a kernel _kmod_build_${kernel_version%%___*}
@@ -75,6 +78,9 @@ done
%changelog
+* Mon Nov 23 2020 Leigh Scott <leigh123linux(a)gmail.com> - 3:455.45.01-3
+- Add patch to reduce kmalloc limit
+
* Mon Nov 23 2020 Nicolas Chauvet <kwizart(a)gmail.com> - 3:455.45.01-2
- Allow to disable the build of nvidia_{modeset,uvm}
diff --git a/reduce-kmalloc-limit-455.38.patch b/reduce-kmalloc-limit-455.38.patch
new file mode 100644
index 0000000..e6ac51a
--- /dev/null
+++ b/reduce-kmalloc-limit-455.38.patch
@@ -0,0 +1,14 @@
+diff -Naur kernel.orig/nvidia-modeset/nvidia-modeset-linux.c kernel/nvidia-modeset/nvidia-modeset-linux.c
+--- kernel.orig/nvidia-modeset/nvidia-modeset-linux.c 2020-10-21 23:17:41.000000000 -0700
++++ kernel/nvidia-modeset/nvidia-modeset-linux.c 2020-11-04 10:35:44.113986369 -0800
+@@ -282,8 +282,8 @@
+ * are called while nvkms_lock is held.
+ *************************************************************************/
+
+-/* Don't use kmalloc for allocations larger than 128k */
+-#define KMALLOC_LIMIT (128 * 1024)
++/* Don't use kmalloc for allocations larger than one page */
++#define KMALLOC_LIMIT PAGE_SIZE
+
+ void* NVKMS_API_CALL nvkms_alloc(size_t size, NvBool zero)
+ {
3 years, 12 months
[nvidia-kmod] Update changelog
by Nicolas Chauvet
commit f8caa21d831db7970f4e7da7f1b04d1b6450bba2
Author: Nicolas Chauvet <kwizart(a)gmail.com>
Date: Mon Nov 23 11:52:37 2020 +0100
Update changelog
nvidia-kmod.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/nvidia-kmod.spec b/nvidia-kmod.spec
index af1bbdb..18ab4fe 100644
--- a/nvidia-kmod.spec
+++ b/nvidia-kmod.spec
@@ -12,7 +12,7 @@ Name: nvidia-kmod
Epoch: 3
Version: 455.45.01
# Taken over by kmodtool
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: NVIDIA display driver kernel module
License: Redistributable, no modification permitted
URL: http://www.nvidia.com/
@@ -75,6 +75,9 @@ done
%changelog
+* Mon Nov 23 2020 Nicolas Chauvet <kwizart(a)gmail.com> - 3:455.45.01-2
+- Allow to disable the build of nvidia_{modeset,uvm}
+
* Wed Nov 18 2020 Leigh Scott <leigh123linux(a)gmail.com> - 3:455.45.01-1
- Update to 455.45.01 release
3 years, 12 months
[nvidia-kmod] Allow to disable the build of nvidia_{modeset,uvm}
by Nicolas Chauvet
commit 3aae4e8dfc645618a98bc5f8ad39cd7c484c3da6
Author: Nicolas Chauvet <kwizart(a)gmail.com>
Date: Mon Nov 23 11:47:18 2020 +0100
Allow to disable the build of nvidia_{modeset,uvm}
nvidia-kmod.spec | 7 +++++++
1 file changed, 7 insertions(+)
---
diff --git a/nvidia-kmod.spec b/nvidia-kmod.spec
index a0cbac5..af1bbdb 100644
--- a/nvidia-kmod.spec
+++ b/nvidia-kmod.spec
@@ -47,6 +47,13 @@ for kernel_version in %{?kernel_versions} ; do
done
%build
+%if 0%{?_without_nvidia_uvm:1}
+export NV_EXCLUDE_KERNEL_MODULES="${NV_EXCLUDE_KERNEL_MODULES} nvidia_uvm "
+%endif
+%if 0%{?_without_nvidia_modeset:1}
+export NV_EXCLUDE_KERNEL_MODULES="${NV_EXCLUDE_KERNEL_MODULES} nvidia_modeset "
+%endif
+
for kernel_version in %{?kernel_versions}; do
pushd _kmod_build_${kernel_version%%___*}/
make V=1 %{?_smp_mflags} \
3 years, 12 months
[deepin-movie] Fix mpv and qt build issues
by Leigh Scott
commit d7ab1a13098ffffe60174c52df727e56020e3e4b
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Mon Nov 23 10:21:14 2020 +0000
Fix mpv and qt build issues
add_missing-qt_includes.patch | 11 ++
add_qthelper.patch | 422 ++++++++++++++++++++++++++++++++++++++++++
deepin-movie.spec | 6 +-
3 files changed, 437 insertions(+), 2 deletions(-)
---
diff --git a/add_missing-qt_includes.patch b/add_missing-qt_includes.patch
new file mode 100644
index 0000000..8ee59ea
--- /dev/null
+++ b/add_missing-qt_includes.patch
@@ -0,0 +1,11 @@
+--- a/src/widgets/tip.cpp
++++ b/src/widgets/tip.cpp
+@@ -33,6 +33,7 @@
+ #include <QHBoxLayout>
+ #include <QLabel>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QGraphicsDropShadowEffect>
+ #include <QPropertyAnimation>
+ #include <QGraphicsOpacityEffect>
+
diff --git a/add_qthelper.patch b/add_qthelper.patch
new file mode 100644
index 0000000..e36fd7d
--- /dev/null
+++ b/add_qthelper.patch
@@ -0,0 +1,422 @@
+--- a/src/backends/mpv/mpv_glwidget.h
++++ b/src/backends/mpv/mpv_glwidget.h
+@@ -33,7 +33,7 @@
+ #include <QtWidgets>
+ #include <mpv/opengl_cb.h>
+ #undef Bool
+-#include <mpv/qthelper.hpp>
++#include "../common/qthelper.hpp"
+
+ namespace dmr {
+ class MpvGLWidget : public QOpenGLWidget
+--- a/src/backends/mpv/mpv_proxy.h
++++ b/src/backends/mpv/mpv_proxy.h
+@@ -34,7 +34,7 @@
+ #include <player_engine.h>
+ #include <xcb/xproto.h>
+ #undef Bool
+-#include <mpv/qthelper.hpp>
++#include "../common/qthelper.hpp"
+
+ namespace dmr {
+ using namespace mpv::qt;
+--- a/src/libdmr/compositing_manager.cpp
++++ b/src/libdmr/compositing_manager.cpp
+@@ -44,7 +44,7 @@
+ #include <GL/glx.h>
+ #include <GL/glxext.h>
+ #undef Bool
+-#include <mpv/qthelper.hpp>
++#include "../common/qthelper.hpp"
+
+ typedef const char * glXGetScreenDriver_t (Display *dpy, int scrNum);
+
+--- /dev/null
++++ b/src/common/qthelper.hpp
+@@ -0,0 +1,386 @@
++/* Copyright (C) 2017 the mpv developers
++ *
++ * Permission to use, copy, modify, and/or distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#ifndef MPV_CLIENT_API_QTHELPER_H_
++#define MPV_CLIENT_API_QTHELPER_H_
++
++#include <mpv/client.h>
++
++#if !MPV_ENABLE_DEPRECATED
++#error "This helper is deprecated. Copy it into your project instead."
++#else
++
++/**
++ * Note: these helpers are provided for convenience for C++/Qt applications.
++ * This is based on the public API in client.h, and it does not encode any
++ * knowledge that is not known or guaranteed outside of the C client API. You
++ * can even copy and modify this code as you like, or implement similar things
++ * for other languages.
++ */
++
++#include <cstring>
++
++#include <QVariant>
++#include <QString>
++#include <QList>
++#include <QHash>
++#include <QSharedPointer>
++#include <QMetaType>
++
++namespace mpv {
++namespace qt {
++
++// Wrapper around mpv_handle. Does refcounting under the hood.
++class Handle
++{
++ struct container {
++ container(mpv_handle *h) : mpv(h) {}
++ ~container() { mpv_terminate_destroy(mpv); }
++ mpv_handle *mpv;
++ };
++ QSharedPointer<container> sptr;
++public:
++ // Construct a new Handle from a raw mpv_handle with refcount 1. If the
++ // last Handle goes out of scope, the mpv_handle will be destroyed with
++ // mpv_terminate_destroy().
++ // Never destroy the mpv_handle manually when using this wrapper. You
++ // will create dangling pointers. Just let the wrapper take care of
++ // destroying the mpv_handle.
++ // Never create multiple wrappers from the same raw mpv_handle; copy the
++ // wrapper instead (that's what it's for).
++ static Handle FromRawHandle(mpv_handle *handle) {
++ Handle h;
++ h.sptr = QSharedPointer<container>(new container(handle));
++ return h;
++ }
++
++ // Return the raw handle; for use with the libmpv C API.
++ operator mpv_handle*() const { return sptr ? (*sptr).mpv : 0; }
++};
++
++static inline QVariant node_to_variant(const mpv_node *node)
++{
++ switch (node->format) {
++ case MPV_FORMAT_STRING:
++ return QVariant(QString::fromUtf8(node->u.string));
++ case MPV_FORMAT_FLAG:
++ return QVariant(static_cast<bool>(node->u.flag));
++ case MPV_FORMAT_INT64:
++ return QVariant(static_cast<qlonglong>(node->u.int64));
++ case MPV_FORMAT_DOUBLE:
++ return QVariant(node->u.double_);
++ case MPV_FORMAT_NODE_ARRAY: {
++ mpv_node_list *list = node->u.list;
++ QVariantList qlist;
++ for (int n = 0; n < list->num; n++)
++ qlist.append(node_to_variant(&list->values[n]));
++ return QVariant(qlist);
++ }
++ case MPV_FORMAT_NODE_MAP: {
++ mpv_node_list *list = node->u.list;
++ QVariantMap qmap;
++ for (int n = 0; n < list->num; n++) {
++ qmap.insert(QString::fromUtf8(list->keys[n]),
++ node_to_variant(&list->values[n]));
++ }
++ return QVariant(qmap);
++ }
++ default: // MPV_FORMAT_NONE, unknown values (e.g. future extensions)
++ return QVariant();
++ }
++}
++
++struct node_builder {
++ node_builder(const QVariant& v) {
++ set(&node_, v);
++ }
++ ~node_builder() {
++ free_node(&node_);
++ }
++ mpv_node *node() { return &node_; }
++private:
++ Q_DISABLE_COPY(node_builder)
++ mpv_node node_;
++ mpv_node_list *create_list(mpv_node *dst, bool is_map, int num) {
++ dst->format = is_map ? MPV_FORMAT_NODE_MAP : MPV_FORMAT_NODE_ARRAY;
++ mpv_node_list *list = new mpv_node_list();
++ dst->u.list = list;
++ if (!list)
++ goto err;
++ list->values = new mpv_node[num]();
++ if (!list->values)
++ goto err;
++ if (is_map) {
++ list->keys = new char*[num]();
++ if (!list->keys)
++ goto err;
++ }
++ return list;
++ err:
++ free_node(dst);
++ return NULL;
++ }
++ char *dup_qstring(const QString &s) {
++ QByteArray b = s.toUtf8();
++ char *r = new char[b.size() + 1];
++ if (r)
++ std::memcpy(r, b.data(), b.size() + 1);
++ return r;
++ }
++ bool test_type(const QVariant &v, QMetaType::Type t) {
++ // The Qt docs say: "Although this function is declared as returning
++ // "QVariant::Type(obsolete), the return value should be interpreted
++ // as QMetaType::Type."
++ // So a cast really seems to be needed to avoid warnings (urgh).
++ return static_cast<int>(v.type()) == static_cast<int>(t);
++ }
++ void set(mpv_node *dst, const QVariant &src) {
++ if (test_type(src, QMetaType::QString)) {
++ dst->format = MPV_FORMAT_STRING;
++ dst->u.string = dup_qstring(src.toString());
++ if (!dst->u.string)
++ goto fail;
++ } else if (test_type(src, QMetaType::Bool)) {
++ dst->format = MPV_FORMAT_FLAG;
++ dst->u.flag = src.toBool() ? 1 : 0;
++ } else if (test_type(src, QMetaType::Int) ||
++ test_type(src, QMetaType::LongLong) ||
++ test_type(src, QMetaType::UInt) ||
++ test_type(src, QMetaType::ULongLong))
++ {
++ dst->format = MPV_FORMAT_INT64;
++ dst->u.int64 = src.toLongLong();
++ } else if (test_type(src, QMetaType::Double)) {
++ dst->format = MPV_FORMAT_DOUBLE;
++ dst->u.double_ = src.toDouble();
++ } else if (src.canConvert<QVariantList>()) {
++ QVariantList qlist = src.toList();
++ mpv_node_list *list = create_list(dst, false, qlist.size());
++ if (!list)
++ goto fail;
++ list->num = qlist.size();
++ for (int n = 0; n < qlist.size(); n++)
++ set(&list->values[n], qlist[n]);
++ } else if (src.canConvert<QVariantMap>()) {
++ QVariantMap qmap = src.toMap();
++ mpv_node_list *list = create_list(dst, true, qmap.size());
++ if (!list)
++ goto fail;
++ list->num = qmap.size();
++ for (int n = 0; n < qmap.size(); n++) {
++ list->keys[n] = dup_qstring(qmap.keys()[n]);
++ if (!list->keys[n]) {
++ free_node(dst);
++ goto fail;
++ }
++ set(&list->values[n], qmap.values()[n]);
++ }
++ } else {
++ goto fail;
++ }
++ return;
++ fail:
++ dst->format = MPV_FORMAT_NONE;
++ }
++ void free_node(mpv_node *dst) {
++ switch (dst->format) {
++ case MPV_FORMAT_STRING:
++ delete[] dst->u.string;
++ break;
++ case MPV_FORMAT_NODE_ARRAY:
++ case MPV_FORMAT_NODE_MAP: {
++ mpv_node_list *list = dst->u.list;
++ if (list) {
++ for (int n = 0; n < list->num; n++) {
++ if (list->keys)
++ delete[] list->keys[n];
++ if (list->values)
++ free_node(&list->values[n]);
++ }
++ delete[] list->keys;
++ delete[] list->values;
++ }
++ delete list;
++ break;
++ }
++ default: ;
++ }
++ dst->format = MPV_FORMAT_NONE;
++ }
++};
++
++/**
++ * RAII wrapper that calls mpv_free_node_contents() on the pointer.
++ */
++struct node_autofree {
++ mpv_node *ptr;
++ node_autofree(mpv_node *a_ptr) : ptr(a_ptr) {}
++ ~node_autofree() { mpv_free_node_contents(ptr); }
++};
++
++#if MPV_ENABLE_DEPRECATED
++
++/**
++ * Return the given property as mpv_node converted to QVariant, or QVariant()
++ * on error.
++ *
++ * @deprecated use get_property() instead
++ *
++ * @param name the property name
++ */
++static inline QVariant get_property_variant(mpv_handle *ctx, const QString &name)
++{
++ mpv_node node;
++ if (mpv_get_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, &node) < 0)
++ return QVariant();
++ node_autofree f(&node);
++ return node_to_variant(&node);
++}
++
++/**
++ * Set the given property as mpv_node converted from the QVariant argument.
++
++ * @deprecated use set_property() instead
++ */
++static inline int set_property_variant(mpv_handle *ctx, const QString &name,
++ const QVariant &v)
++{
++ node_builder node(v);
++ return mpv_set_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node());
++}
++
++/**
++ * Set the given option as mpv_node converted from the QVariant argument.
++ *
++ * @deprecated use set_property() instead
++ */
++static inline int set_option_variant(mpv_handle *ctx, const QString &name,
++ const QVariant &v)
++{
++ node_builder node(v);
++ return mpv_set_option(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node());
++}
++
++/**
++ * mpv_command_node() equivalent. Returns QVariant() on error (and
++ * unfortunately, the same on success).
++ *
++ * @deprecated use command() instead
++ */
++static inline QVariant command_variant(mpv_handle *ctx, const QVariant &args)
++{
++ node_builder node(args);
++ mpv_node res;
++ if (mpv_command_node(ctx, node.node(), &res) < 0)
++ return QVariant();
++ node_autofree f(&res);
++ return node_to_variant(&res);
++}
++
++#endif
++
++/**
++ * This is used to return error codes wrapped in QVariant for functions which
++ * return QVariant.
++ *
++ * You can use get_error() or is_error() to extract the error status from a
++ * QVariant value.
++ */
++struct ErrorReturn
++{
++ /**
++ * enum mpv_error value (or a value outside of it if ABI was extended)
++ */
++ int error;
++
++ ErrorReturn() : error(0) {}
++ explicit ErrorReturn(int err) : error(err) {}
++};
++
++/**
++ * Return the mpv error code packed into a QVariant, or 0 (success) if it's not
++ * an error value.
++ *
++ * @return error code (<0) or success (>=0)
++ */
++static inline int get_error(const QVariant &v)
++{
++ if (!v.canConvert<ErrorReturn>())
++ return 0;
++ return v.value<ErrorReturn>().error;
++}
++
++/**
++ * Return whether the QVariant carries a mpv error code.
++ */
++static inline bool is_error(const QVariant &v)
++{
++ return get_error(v) < 0;
++}
++
++/**
++ * Return the given property as mpv_node converted to QVariant, or QVariant()
++ * on error.
++ *
++ * @param name the property name
++ * @return the property value, or an ErrorReturn with the error code
++ */
++static inline QVariant get_property(mpv_handle *ctx, const QString &name)
++{
++ mpv_node node;
++ int err = mpv_get_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, &node);
++ if (err < 0)
++ return QVariant::fromValue(ErrorReturn(err));
++ node_autofree f(&node);
++ return node_to_variant(&node);
++}
++
++/**
++ * Set the given property as mpv_node converted from the QVariant argument.
++ *
++ * @return mpv error code (<0 on error, >= 0 on success)
++ */
++static inline int set_property(mpv_handle *ctx, const QString &name,
++ const QVariant &v)
++{
++ node_builder node(v);
++ return mpv_set_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node());
++}
++
++/**
++ * mpv_command_node() equivalent.
++ *
++ * @param args command arguments, with args[0] being the command name as string
++ * @return the property value, or an ErrorReturn with the error code
++ */
++static inline QVariant command(mpv_handle *ctx, const QVariant &args)
++{
++ node_builder node(args);
++ mpv_node res;
++ int err = mpv_command_node(ctx, node.node(), &res);
++ if (err < 0)
++ return QVariant::fromValue(ErrorReturn(err));
++ node_autofree f(&res);
++ return node_to_variant(&res);
++}
++
++}
++}
++
++Q_DECLARE_METATYPE(mpv::qt::ErrorReturn)
++
++#endif /* else #if MPV_ENABLE_DEPRECATED */
++
++#endif
diff --git a/deepin-movie.spec b/deepin-movie.spec
index 412e31f..607c348 100644
--- a/deepin-movie.spec
+++ b/deepin-movie.spec
@@ -9,6 +9,8 @@ License: GPLv3
URL: https://github.com/linuxdeepin/deepin-movie-reborn
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
Source1: %{name}-appdata.xml
+Patch0: add_qthelper.patch
+Patch1: add_missing-qt_includes.patch
BuildRequires: cmake(Qt5Concurrent)
BuildRequires: cmake(Qt5DBus)
@@ -27,7 +29,7 @@ BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavresample)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libpulse-simple)
-BuildRequires: pkgconfig(mpv)
+BuildRequires: mpv-libs-devel
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(xtst)
BuildRequires: pkgconfig(xcb-aux)
@@ -52,7 +54,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
Header files and libraries for %{name}.
%prep
-%setup -q -n %{name}-reborn-%{version}
+%autosetup -p1 -n %{name}-reborn-%{version}
sed -i '/dtk2/s|lib|libexec|' src/CMakeLists.txt
%build
3 years, 12 months
[celluloid] fix
by Leigh Scott
commit bcf80572c53e78ca3a581085c77da6f98a615d50
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Mon Nov 23 09:10:47 2020 +0000
fix
celluloid.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/celluloid.spec b/celluloid.spec
index ffbb579..1035777 100644
--- a/celluloid.spec
+++ b/celluloid.spec
@@ -15,7 +15,7 @@ BuildRequires: pkgconfig(gtk+-3.0) >= 3.18
BuildRequires: intltool >= 0.40.6
BuildRequires: libappstream-glib
BuildRequires: pkgconfig(epoxy)
-BuildRequires: pkgconfig(mpv) >= 1.20
+BuildRequires: mpv-libs-devel
Requires: youtube-dl >= 2016.03.06
Requires: hicolor-icon-theme
3 years, 12 months