Add dleyna-core package version 0.6.0 (#4837)
* dleyna-core: Add package version 0.6.0 - Patch to use gupnp api version 1.6 * dleyna-core: cgmanifest add package entry * dleyna-core: licenses add package entry
This commit is contained in:
Родитель
449dff8a1f
Коммит
c21cb51672
|
@ -0,0 +1,162 @@
|
|||
From 99244a4a19ee208e757df90602723278007c1b58 Mon Sep 17 00:00:00 2001
|
||||
From: Debarshi Ray <debarshir@freedesktop.org>
|
||||
Date: Fri, 4 Dec 2020 02:17:48 +0100
|
||||
Subject: [PATCH] Don't remove a queue more than once
|
||||
|
||||
Currently, the dleyna_task_processor_remove_queues_for_sink and
|
||||
dleyna_task_processor_remove_queues_for_source APIs can corrupt the
|
||||
memory of the hash table of queues in the processor.
|
||||
|
||||
These APIs iterate through the queues in the hash table using
|
||||
g_hash_table_foreach_remove, and let the callbacks return TRUE when a
|
||||
queue is to be removed. Unfortunately, the callbacks use prv_cancel,
|
||||
which might have already removed the queue using g_hash_table_remove.
|
||||
It happens specifically for queues that have no current_task and have
|
||||
the DLEYNA_TASK_QUEUE_FLAG_AUTO_REMOVE flag set.
|
||||
|
||||
dleyna-renderer-service has such a queue, whose task_delete_cb handler
|
||||
is set to dleyna_gasync_task_delete_cb. When dleyna-renderer-service
|
||||
loses it's last D-Bus client, it first invokes
|
||||
dleyna_task_processor_remove_queues_for_source, followed by
|
||||
dleyna_task_processor_set_quitting. The former corrupts the hash
|
||||
table. The latter invokes prv_cancel_all_queues, which again goes
|
||||
through the hash table and tries to remove them. This leads to crashes
|
||||
with backtraces containing dleyna_gasync_task_delete_cb, GPtrArray,
|
||||
prv_task_cancel_and_free_cb, or similar code paths originating from
|
||||
prv_cancel_only.
|
||||
|
||||
Here's an example:
|
||||
|
||||
%0 prv_task_cancel_and_free_cb (data=0x56246f2425f0,
|
||||
user_data=<optimized out>)
|
||||
at libdleyna/core/task-processor.c:180
|
||||
%1 g_ptr_array_foreach (array=0x56246f68b5a0,
|
||||
func=0x7f41d2335850 <prv_task_cancel_and_free_cb>,
|
||||
user_data=0x56246f4ea1a0)
|
||||
at ../glib/garray.c:2091
|
||||
%2 prv_cancel_only (queue_id=<optimized out>,
|
||||
task_queue=0x56246f4ea1a0)
|
||||
at libdleyna/core/task-processor.c:193
|
||||
%3 prv_cancel_cb (key=<optimized out>,
|
||||
value=0x56246f4ea1a0,
|
||||
user_data=<optimized out>)
|
||||
at libdleyna/core/task-processor.c:229
|
||||
%4 g_hash_table_foreach_remove_or_steal (hash_table=0x56246f1e82a0,
|
||||
func=func@entry=0x7f41d2335c10 <prv_cancel_cb>,
|
||||
user_data=user_data@entry=0x0,
|
||||
notify=notify@entry=1)
|
||||
at ../glib/ghash.c:1947
|
||||
%5 g_hash_table_foreach_remove (hash_table=<optimized out>,
|
||||
func=func@entry=0x7f41d2335c10 <prv_cancel_cb>,
|
||||
user_data=user_data@entry=0x0)
|
||||
at ../glib/ghash.c:1993
|
||||
%6 prv_cancel_all_queues (processor=0x56246f1f3510)
|
||||
at libdleyna/core/task-processor.c:244
|
||||
%7 dleyna_task_processor_set_quitting (processor=0x56246f1f3510)
|
||||
at libdleyna/core/task-processor.c:259
|
||||
%8 prv_lost_client (connection=<optimized out>,
|
||||
name=0x56246f24e5d0 ":1.47515",
|
||||
user_data=<optimized out>)
|
||||
at src/connector-dbus.c:283
|
||||
%9 actually_do_call (call_type=CALL_TYPE_NAME_VANISHED,
|
||||
name_owner=<optimized out>,
|
||||
connection=<optimized out>,
|
||||
client=0x56246f24efb0)
|
||||
at ../gio/gdbusnamewatching.c:171
|
||||
%10 actually_do_call (call_type=CALL_TYPE_NAME_VANISHED,
|
||||
name_owner=<optimized out>,
|
||||
connection=<optimized out>,
|
||||
client=0x56246f24efb0)
|
||||
at ../gio/gdbusnamewatching.c:149
|
||||
%11 do_call (client=0x56246f24efb0, call_type=CALL_TYPE_NAME_VANISHED)
|
||||
at ../gio/gdbusnamewatching.c:224
|
||||
%12 call_vanished_handler (client=0x56246f24efb0)
|
||||
at ../gio/gdbusnamewatching.c:249
|
||||
%13 call_vanished_handler (client=0x56246f24efb0)
|
||||
at ../gio/gdbusnamewatching.c:242
|
||||
%14 on_name_owner_changed (connection=<optimized out>,
|
||||
sender_name=0x56246f24a260 "org.freedesktop.DBus",
|
||||
object_path=0x56246f7ad950 "/org/freedesktop/DBus",
|
||||
interface_name=0x56246f27a2a0 "org.freedesktop.DBus",
|
||||
signal_name=<optimized out>,
|
||||
parameters=0x56246f21ee90, user_data=0x1)
|
||||
at ../gio/gdbusnamewatching.c:352
|
||||
%15 emit_signal_instance_in_idle_cb (data=data@entry=0x56246f236950)
|
||||
at ../gio/gdbusconnection.c:3777
|
||||
%16 g_idle_dispatch (source=source@entry=0x56246f7080a0,
|
||||
callback=0x7f41d1e1e640 <emit_signal_instance_in_idle_cb>,
|
||||
user_data=0x56246f236950)
|
||||
at ../glib/gmain.c:5836
|
||||
%17 g_main_dispatch (context=0x56246f1f2920) at ../glib/gmain.c:3325
|
||||
%18 g_main_context_dispatch (context=0x56246f1f2920)
|
||||
at ../glib/gmain.c:4043
|
||||
%19 g_main_context_iterate.constprop.0 (context=0x56246f1f2920,
|
||||
block=block@entry=1,
|
||||
dispatch=dispatch@entry=1,
|
||||
self=<optimized out>)
|
||||
at ../glib/gmain.c:4119
|
||||
%20 g_main_loop_run (loop=0x56246f2337a0) at ../glib/gmain.c:4317
|
||||
%21 dleyna_main_loop_start (server=<optimized out>,
|
||||
control_point=<optimized out>,
|
||||
user_data=<optimized out>)
|
||||
at libdleyna/core/main-loop.c:154
|
||||
%22 __libc_start_main (main=0x56246d8b40d0 <main>,
|
||||
argc=1,
|
||||
argv=0x7ffd4b757768,
|
||||
init=<optimized out>,
|
||||
fini=<optimized out>,
|
||||
rtld_fini=<optimized out>,
|
||||
stack_end=0x7ffd4b757758)
|
||||
at ../csu/libc-start.c:314
|
||||
%23 _start ()
|
||||
|
||||
Looking at the innards of the task_queue, it's seen that all the
|
||||
function pointers have the same value, which doesn't match with the
|
||||
reality of the code and is indicative of a memory error:
|
||||
|
||||
(gdb) print *task_queue
|
||||
$2 = {tasks = 0x56210d62385a,
|
||||
task_process_cb = 0x9595959595959595,
|
||||
task_cancel_cb = 0x9595959595959595,
|
||||
task_delete_cb = 0x9595959595959595,
|
||||
task_queue_finally_cb = 0x9595959595959595,
|
||||
current_task = 0x9595959595959595,
|
||||
idle_id = 2509608341,
|
||||
defer_remove = -1785358955,
|
||||
flags = 2509608341,
|
||||
user_data = 0x9595959595959595,
|
||||
cancelled = -1785358955}
|
||||
|
||||
Based on initial work done by Robert Tiemann.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1903139
|
||||
https://github.com/phako/dleyna-core/pull/1
|
||||
---
|
||||
libdleyna/core/task-processor.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libdleyna/core/task-processor.c b/libdleyna/core/task-processor.c
|
||||
index 39529a3dc967..f50dd569ed61 100644
|
||||
--- a/libdleyna/core/task-processor.c
|
||||
+++ b/libdleyna/core/task-processor.c
|
||||
@@ -285,7 +285,7 @@ static gboolean prv_free_queue_for_source(gpointer key, gpointer value,
|
||||
|
||||
if (!strcmp(source, queue_key->source) && !queue->defer_remove) {
|
||||
queue->defer_remove = (queue->current_task != NULL);
|
||||
- prv_cancel(queue_key, queue);
|
||||
+ prv_cancel_only(queue_key, queue);
|
||||
|
||||
if (!queue->defer_remove) {
|
||||
DLEYNA_LOG_DEBUG("Removing queue <%s,%s>",
|
||||
@@ -320,7 +320,7 @@ static gboolean prv_free_queue_for_sink(gpointer key, gpointer value,
|
||||
|
||||
if (!strcmp(sink, queue_key->sink) && !queue->defer_remove) {
|
||||
queue->defer_remove = (queue->current_task != NULL);
|
||||
- prv_cancel(queue_key, queue);
|
||||
+ prv_cancel_only(queue_key, queue);
|
||||
|
||||
if (!queue->defer_remove) {
|
||||
DLEYNA_LOG_DEBUG("Removing queue <%s,%s>",
|
||||
--
|
||||
2.28.0
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
From 5a63a38a0f7dc23725903ee9a38efe68efe693c0 Mon Sep 17 00:00:00 2001
|
||||
From: Debarshi Ray <debarshir@freedesktop.org>
|
||||
Date: Fri, 4 Dec 2020 14:47:13 +0100
|
||||
Subject: [PATCH 1/2] Remove any pending task processing handlers when
|
||||
destroying a queue
|
||||
|
||||
https://github.com/phako/dleyna-core/pull/2
|
||||
---
|
||||
libdleyna/core/task-processor.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/libdleyna/core/task-processor.c b/libdleyna/core/task-processor.c
|
||||
index 39529a3dc967..2a126df66f6c 100644
|
||||
--- a/libdleyna/core/task-processor.c
|
||||
+++ b/libdleyna/core/task-processor.c
|
||||
@@ -96,6 +96,11 @@ static void prv_free_cb(gpointer data)
|
||||
|
||||
DLEYNA_LOG_DEBUG("Enter");
|
||||
|
||||
+ if (task_queue->idle_id) {
|
||||
+ g_source_remove(task_queue->idle_id);
|
||||
+ task_queue->idle_id = 0;
|
||||
+ }
|
||||
+
|
||||
g_ptr_array_foreach(task_queue->tasks, prv_task_free_cb, task_queue);
|
||||
g_ptr_array_unref(task_queue->tasks);
|
||||
|
||||
--
|
||||
2.28.0
|
||||
|
||||
|
||||
From 8455170d145e712d03824211efdba44e3960d051 Mon Sep 17 00:00:00 2001
|
||||
From: Debarshi Ray <debarshir@freedesktop.org>
|
||||
Date: Fri, 4 Dec 2020 20:24:20 +0100
|
||||
Subject: [PATCH 2/2] Remove queues only if dleyna_task_processor_t->on_quit_cb
|
||||
is scheduled
|
||||
|
||||
See commit 1de3325c201dc0e1 for the original reason why all the queues
|
||||
need to be removed before dleyna_task_processor_t->on_quit_cb is run.
|
||||
However, if we remove them too early then there might still be tasks
|
||||
in flight that need to use them.
|
||||
|
||||
https://github.com/phako/dleyna-core/pull/2
|
||||
---
|
||||
libdleyna/core/task-processor.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libdleyna/core/task-processor.c b/libdleyna/core/task-processor.c
|
||||
index 2a126df66f6c..dc57c086cbd1 100644
|
||||
--- a/libdleyna/core/task-processor.c
|
||||
+++ b/libdleyna/core/task-processor.c
|
||||
@@ -257,12 +257,12 @@ void dleyna_task_processor_set_quitting(dleyna_task_processor_t *processor)
|
||||
DLEYNA_LOG_DEBUG("Enter");
|
||||
|
||||
processor->quitting = TRUE;
|
||||
+ prv_cancel_all_queues(processor);
|
||||
|
||||
- if (processor->running_tasks == 0)
|
||||
+ if (processor->running_tasks == 0) {
|
||||
g_idle_add(processor->on_quit_cb, NULL);
|
||||
-
|
||||
- prv_cancel_all_queues(processor);
|
||||
- g_hash_table_remove_all(processor->task_queues);
|
||||
+ g_hash_table_remove_all(processor->task_queues);
|
||||
+ }
|
||||
|
||||
DLEYNA_LOG_DEBUG("Exit");
|
||||
}
|
||||
--
|
||||
2.28.0
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"Signatures": {
|
||||
"dleyna-core-0.6.0.tar_3.gz": "e999ef3829837b777d04dc964e564704327533f5401b158ce1da8ab9be5cb61b"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,157 @@
|
|||
%define api 1.0
|
||||
Summary: Utilities for higher level dLeyna libraries
|
||||
Name: dleyna-core
|
||||
Version: 0.6.0
|
||||
Release: 15%{?dist}
|
||||
License: LGPLv2
|
||||
Vendor: Microsoft Corporation
|
||||
Distribution: Mariner
|
||||
URL: https://01.org/dleyna/
|
||||
Source0: https://01.org/sites/default/files/downloads/dleyna/%{name}-%{version}.tar_3.gz
|
||||
# Backported from upstream
|
||||
Patch0: port-to-gupnp-1.6.patch
|
||||
Patch1: dleyna-core-Don-t-remove-a-queue-more-than-once.patch
|
||||
Patch2: dleyna-core-Make-the-task-processor-more-robust.patch
|
||||
Patch3: port_gupnp_1.6_context_filter.patch
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
BuildRequires: make
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(gio-2.0)
|
||||
BuildRequires: pkgconfig(glib-2.0)
|
||||
BuildRequires: pkgconfig(gmodule-2.0)
|
||||
BuildRequires: pkgconfig(gupnp-1.6)
|
||||
|
||||
%description
|
||||
A set of utility functions that are used by the higher level dLeyna libraries
|
||||
to communicate with DLNA devices. It provides APIs for logging, error, settings
|
||||
and task management, and an IPC abstraction.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
The %{name}-devel package contains libraries and header files for
|
||||
developing applications that use %{name}.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
autoreconf -f -i
|
||||
%configure \
|
||||
--disable-silent-rules \
|
||||
--disable-static
|
||||
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%make_install
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
|
||||
%ldconfig_scriptlets
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc AUTHORS
|
||||
%doc ChangeLog
|
||||
%doc README
|
||||
%{_libdir}/libdleyna-core-%{api}.so.*
|
||||
|
||||
%files devel
|
||||
%{_libdir}/libdleyna-core-%{api}.so
|
||||
%{_libdir}/pkgconfig/%{name}-%{api}.pc
|
||||
%dir %{_includedir}/dleyna-%{api}
|
||||
%dir %{_includedir}/dleyna-%{api}/libdleyna
|
||||
%{_includedir}/dleyna-%{api}/libdleyna/core
|
||||
|
||||
%changelog
|
||||
* Wed Feb 01 2023 Sumedh Sharma <sumsharma@microsoft.com> - 0.6.0-15
|
||||
- Initial CBL-Mariner import from Fedora 37 (license: MIT)
|
||||
- Port to gupnp api version 1.6
|
||||
- License verified
|
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Aug 20 2021 Kalev Lember <klember@redhat.com> - 0.6.0-12
|
||||
- Rebuilt for gupnp soname bump
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Fri Dec 04 2020 Debarshi Ray <rishi@fedoraproject.org> - 0.6.0-9
|
||||
- Don't remove a queue more than once (RH #1903139)
|
||||
- Remove any pending task processing handlers when destroying a queue
|
||||
(RH #1890618)
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Thu Mar 12 2020 Kalev Lember <klember@redhat.com> - 0.6.0-7
|
||||
- Port to gupnp 1.2
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Oct 05 2017 Debarshi Ray <rishi@fedoraproject.org> - 0.6.0-1
|
||||
- Update to 0.6.0
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Sep 15 2016 Debarshi Ray <rishi@fedoraproject.org> - 0.5.0-4
|
||||
- Don't schedule dleyna_task_processor_t->on_quit_cb more than once
|
||||
(RH #1251366)
|
||||
- Remove all queues before dleyna_task_processor_t->on_quit_cb is run
|
||||
(RH #1205574, #1360209)
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Wed May 06 2015 Debarshi Ray <rishi@fedoraproject.org> - 0.5.0-1
|
||||
- Update to 0.5.0
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Wed Jan 15 2014 Bastien Nocera <bnocera@redhat.com> - 0.4.0-1
|
||||
- Update to 0.4.0
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Wed Jun 26 2013 Debarshi Ray <rishi@fedoraproject.org> - 0.1.0-1
|
||||
- Initial spec.
|
|
@ -0,0 +1,22 @@
|
|||
diff -Naur dleyna-core-0.6.0-orig/configure.ac dleyna-core-0.6.0/configure.ac
|
||||
--- dleyna-core-0.6.0-orig/configure.ac 2017-03-04 23:40:11.000000000 +0530
|
||||
+++ dleyna-core-0.6.0/configure.ac 2023-02-01 12:48:56.378813142 +0530
|
||||
@@ -39,7 +39,7 @@
|
||||
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28])
|
||||
PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28])
|
||||
PKG_CHECK_MODULES([GMODULE], [gmodule-2.0 >= 2.28])
|
||||
-PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5])
|
||||
+PKG_CHECK_MODULES([GUPNP], [gupnp-1.6 >= 1.6.3])
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([stdlib.h string.h syslog.h])
|
||||
diff -Naur dleyna-core-0.6.0-orig/dleyna-core-1.0.pc.in dleyna-core-0.6.0/dleyna-core-1.0.pc.in
|
||||
--- dleyna-core-0.6.0-orig/dleyna-core-1.0.pc.in 2017-03-04 23:40:11.000000000 +0530
|
||||
+++ dleyna-core-0.6.0/dleyna-core-1.0.pc.in 2023-02-01 12:49:20.250643806 +0530
|
||||
@@ -8,5 +8,5 @@
|
||||
Description: UPnP & DLNA core library
|
||||
Libs: -L${libdir} -ldleyna-core-1.0
|
||||
Cflags: -I${includedir}/dleyna-1.0
|
||||
-Requires: glib-2.0 gio-2.0 gmodule-2.0 gupnp-1.0
|
||||
+Requires: glib-2.0 gio-2.0 gmodule-2.0 gupnp-1.6
|
||||
Version: @VERSION@
|
|
@ -0,0 +1,113 @@
|
|||
diff -Naur dleyna-core-0.6.0-orig/libdleyna/core/service-task.c dleyna-core-0.6.0/libdleyna/core/service-task.c
|
||||
--- dleyna-core-0.6.0-orig/libdleyna/core/service-task.c 2017-03-04 23:40:11.000000000 +0530
|
||||
+++ dleyna-core-0.6.0/libdleyna/core/service-task.c 2023-02-01 16:44:47.831113876 +0530
|
||||
@@ -21,6 +21,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <gio/gio.h>
|
||||
#include "log.h"
|
||||
#include "service-task.h"
|
||||
#include "task-processor.h"
|
||||
@@ -102,9 +103,14 @@
|
||||
dleyna_service_task_t *task = (dleyna_service_task_t *)atom;
|
||||
|
||||
if (task->p_action) {
|
||||
- if (task->proxy)
|
||||
- gupnp_service_proxy_cancel_action(task->proxy,
|
||||
- task->p_action);
|
||||
+ if (task->proxy) {
|
||||
+ GError *error = NULL;
|
||||
+ GCancellable *cancellable = g_cancellable_new ();
|
||||
+ gupnp_service_proxy_call_action (task->proxy,
|
||||
+ task->p_action,
|
||||
+ cancellable,
|
||||
+ &error);
|
||||
+ }
|
||||
task->p_action = NULL;
|
||||
|
||||
dleyna_task_queue_task_completed(task->base.queue_id);
|
||||
diff -Naur dleyna-core-0.6.0-orig/libdleyna/core/white-list.c dleyna-core-0.6.0/libdleyna/core/white-list.c
|
||||
--- dleyna-core-0.6.0-orig/libdleyna/core/white-list.c 2017-03-04 23:40:11.000000000 +0530
|
||||
+++ dleyna-core-0.6.0/libdleyna/core/white-list.c 2023-02-01 15:57:11.697278291 +0530
|
||||
@@ -26,15 +26,15 @@
|
||||
#include "log.h"
|
||||
|
||||
struct dleyna_white_list_t_ {
|
||||
- GUPnPWhiteList *gupnp_wl;
|
||||
+ GUPnPContextFilter *gupnp_wl;
|
||||
};
|
||||
|
||||
#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG
|
||||
-static void prv_dump_wl_entries(GUPnPWhiteList *wl)
|
||||
+static void prv_dump_wl_entries(GUPnPContextFilter *wl)
|
||||
{
|
||||
GList *l;
|
||||
|
||||
- l = gupnp_white_list_get_entries(wl);
|
||||
+ l = gupnp_context_filter_get_entries(wl);
|
||||
|
||||
DLEYNA_LOG_DEBUG_NL();
|
||||
DLEYNA_LOG_DEBUG("White List entries:");
|
||||
@@ -52,7 +52,7 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-dleyna_white_list_t *dleyna_white_list_new(GUPnPWhiteList *gupnp_wl)
|
||||
+dleyna_white_list_t *dleyna_white_list_new(GUPnPContextFilter *gupnp_wl)
|
||||
{
|
||||
dleyna_white_list_t *wl;
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
gboolean enabled)
|
||||
{
|
||||
if (wl->gupnp_wl != NULL) {
|
||||
- gupnp_white_list_set_enabled(wl->gupnp_wl, enabled);
|
||||
+ gupnp_context_filter_set_enabled(wl->gupnp_wl, enabled);
|
||||
|
||||
DLEYNA_LOG_DEBUG("White List enabled: %d", enabled);
|
||||
}
|
||||
@@ -96,7 +96,7 @@
|
||||
(void) g_variant_iter_init(&viter, entries);
|
||||
|
||||
while (g_variant_iter_next(&viter, "&s", &entry))
|
||||
- (void) gupnp_white_list_add_entry(wl->gupnp_wl, entry);
|
||||
+ (void) gupnp_context_filter_add_entry(wl->gupnp_wl, entry);
|
||||
|
||||
#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG
|
||||
prv_dump_wl_entries(wl->gupnp_wl);
|
||||
@@ -116,7 +116,7 @@
|
||||
(void) g_variant_iter_init(&viter, entries);
|
||||
|
||||
while (g_variant_iter_next(&viter, "&s", &entry))
|
||||
- (void) gupnp_white_list_remove_entry(wl->gupnp_wl,
|
||||
+ (void) gupnp_context_filter_remove_entry(wl->gupnp_wl,
|
||||
entry);
|
||||
|
||||
#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG
|
||||
@@ -129,7 +129,7 @@
|
||||
{
|
||||
if (wl->gupnp_wl != NULL) {
|
||||
DLEYNA_LOG_DEBUG("Clear white list");
|
||||
- gupnp_white_list_clear(wl->gupnp_wl);
|
||||
+ gupnp_context_filter_clear(wl->gupnp_wl);
|
||||
|
||||
#if DLEYNA_LOG_LEVEL & DLEYNA_LOG_LEVEL_DEBUG
|
||||
prv_dump_wl_entries(wl->gupnp_wl);
|
||||
diff -Naur dleyna-core-0.6.0-orig/libdleyna/core/white-list.h dleyna-core-0.6.0/libdleyna/core/white-list.h
|
||||
--- dleyna-core-0.6.0-orig/libdleyna/core/white-list.h 2017-03-04 23:40:11.000000000 +0530
|
||||
+++ dleyna-core-0.6.0/libdleyna/core/white-list.h 2023-02-01 15:53:54.282735424 +0530
|
||||
@@ -24,11 +24,11 @@
|
||||
#define DLEYNA_WHITE_LIST_H__
|
||||
|
||||
#include <glib.h>
|
||||
-#include <libgupnp/gupnp-white-list.h>
|
||||
+#include <libgupnp/gupnp-context-filter.h>
|
||||
|
||||
typedef struct dleyna_white_list_t_ dleyna_white_list_t;
|
||||
|
||||
-dleyna_white_list_t *dleyna_white_list_new(GUPnPWhiteList *gupnp_wl);
|
||||
+dleyna_white_list_t *dleyna_white_list_new(GUPnPContextFilter *gupnp_wl);
|
||||
|
||||
void dleyna_white_list_delete(dleyna_white_list_t *wl);
|
||||
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -164,6 +164,7 @@
|
|||
"discount",
|
||||
"distribution-gpg-keys",
|
||||
"dleyna-connector-dbus",
|
||||
"dleyna-core",
|
||||
"dmraid",
|
||||
"dnf",
|
||||
"dnf-plugins-core",
|
||||
|
|
|
@ -2603,6 +2603,16 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"component": {
|
||||
"type": "other",
|
||||
"other": {
|
||||
"name": "dleyna-core",
|
||||
"version": "0.6.0",
|
||||
"downloadUrl": "https://01.org/sites/default/files/downloads/dleyna/dleyna-core-0.6.0.tar_3.gz"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"component": {
|
||||
"type": "other",
|
||||
|
|
Загрузка…
Ссылка в новой задаче