Package: src:vlc Version: 2.2.6-3ukl1 Severity: wishlist Tags: patch Hello,
currently there are two versions of libupnp in the archive (libupnp6 and libupnp-1.8-10). To be able to remove libupnp6 (i.e. the older of the two) it is necessary to port vlc (and all other rdepends) to libupnp-1.8. The patch below implements this for vlc. With this applied I can still playback videos with vlc. Best regards and thanks Uwe ------>8------ From: Uwe Kleine-König <uklei...@debian.org> Date: Wed, 19 Jul 2017 17:26:52 +0200 Subject: [PATCH] Port vlc to libupnp-1.8 --- debian/changelog | 6 ++ debian/control | 2 +- debian/patches/0014-port-to-libupnp-1.8.patch | 107 ++++++++++++++++++++++++++ debian/patches/series | 1 + 4 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 debian/patches/0014-port-to-libupnp-1.8.patch diff --git a/debian/changelog b/debian/changelog index fffe2478af58..c9cc38b82630 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +vlc (2.2.6-4) UNRELEASED; urgency=medium + + * Port to libupnp-1.8 + + -- Uwe Kleine-König <uklei...@debian.org> Wed, 19 Jul 2017 17:25:10 +0200 + vlc (2.2.6-3) unstable; urgency=medium [ Mateusz Łukasik ] diff --git a/debian/control b/debian/control index b9c6addd8c3f..601971f80e55 100644 --- a/debian/control +++ b/debian/control @@ -87,7 +87,7 @@ Build-Depends: autopoint, libtheora-dev (>= 1.0), libtwolame-dev (>= 0.3.8), libudev-dev [linux-any], - libupnp-dev, + libupnp-1.8-dev, libv4l-dev [linux-any], libva-dev [kfreebsd-any linux-any], libvcdinfo-dev (>= 0.7.22), diff --git a/debian/patches/0014-port-to-libupnp-1.8.patch b/debian/patches/0014-port-to-libupnp-1.8.patch new file mode 100644 index 000000000000..a24f42c7417b --- /dev/null +++ b/debian/patches/0014-port-to-libupnp-1.8.patch @@ -0,0 +1,107 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -4040,7 +4040,7 @@ + dnl + dnl UPnP Plugin (Intel SDK) + dnl +-PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto]) ++PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp-1.8], [Intel UPNP SDK],[auto]) + + EXTEND_HELP_STRING([Misc options:]) + +--- a/modules/services_discovery/upnp.hpp ++++ b/modules/services_discovery/upnp.hpp +@@ -28,8 +28,8 @@ + #include <vector> + #include <string> + +-#include <upnp/upnp.h> +-#include <upnp/upnptools.h> ++#include <upnp-1.8/upnp.h> ++#include <upnp-1.8/upnptools.h> + + #include <vlc_common.h> + +--- a/modules/services_discovery/upnp.cpp ++++ b/modules/services_discovery/upnp.cpp +@@ -80,7 +80,7 @@ + /* + * Local prototypes + */ +-static int Callback( Upnp_EventType event_type, void* p_event, void* p_user_data ); ++static int Callback( Upnp_EventType event_type, const void* p_event, void* p_user_data ); + + const char* xml_getChildElementValue( IXML_Element* p_parent, + const char* psz_tag_name ); +@@ -325,7 +325,7 @@ + /* + * Handles all UPnP events + */ +-static int Callback( Upnp_EventType event_type, void* p_event, void* p_user_data ) ++static int Callback( Upnp_EventType event_type, const void* p_event, void* p_user_data ) + { + services_discovery_t* p_sd = ( services_discovery_t* ) p_user_data; + services_discovery_sys_t* p_sys = p_sd->p_sys; +@@ -336,22 +336,23 @@ + case UPNP_DISCOVERY_ADVERTISEMENT_ALIVE: + case UPNP_DISCOVERY_SEARCH_RESULT: + { +- struct Upnp_Discovery* p_discovery = ( struct Upnp_Discovery* )p_event; ++ const UpnpDiscovery* p_discovery = ( const UpnpDiscovery* )p_event; + + IXML_Document *p_description_doc = 0; + + int i_res; +- i_res = UpnpDownloadXmlDoc( p_discovery->Location, &p_description_doc ); ++ i_res = UpnpDownloadXmlDoc( UpnpDiscovery_get_Location_cstr( p_discovery ), ++ &p_description_doc ); + if ( i_res != UPNP_E_SUCCESS ) + { + msg_Warn( p_sd, "Could not download device description! " + "Fetching data from %s failed: %s", +- p_discovery->Location, UpnpGetErrorMessage( i_res ) ); ++ UpnpDiscovery_get_Location_cstr( p_discovery ), UpnpGetErrorMessage( i_res ) ); + return i_res; + } + + MediaServer::parseDeviceDescription( p_description_doc, +- p_discovery->Location, p_sd ); ++ UpnpDiscovery_get_Location_cstr(p_discovery), p_sd ); + + ixmlDocument_free( p_description_doc ); + } +@@ -359,18 +360,18 @@ + + case UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE: + { +- struct Upnp_Discovery* p_discovery = ( struct Upnp_Discovery* )p_event; ++ const UpnpDiscovery* p_discovery = ( const UpnpDiscovery* )p_event; + +- p_sys->p_server_list->removeServer( p_discovery->DeviceId ); ++ p_sys->p_server_list->removeServer( UpnpDiscovery_get_DeviceID_cstr( p_discovery ) ); + + } + break; + + case UPNP_EVENT_RECEIVED: + { +- Upnp_Event* p_e = ( Upnp_Event* )p_event; ++ const UpnpEvent* p_e = ( const UpnpEvent* )p_event; + +- MediaServer* p_server = p_sys->p_server_list->getServerBySID( p_e->Sid ); ++ MediaServer* p_server = p_sys->p_server_list->getServerBySID( UpnpEvent_get_SID_cstr( p_e ) ); + if ( p_server ) p_server->fetchContents(); + } + break; +@@ -380,9 +381,9 @@ + { + /* Re-subscribe. */ + +- Upnp_Event_Subscribe* p_s = ( Upnp_Event_Subscribe* )p_event; ++ const UpnpEventSubscribe* p_s = ( const UpnpEventSubscribe* )p_event; + +- MediaServer* p_server = p_sys->p_server_list->getServerBySID( p_s->Sid ); ++ MediaServer* p_server = p_sys->p_server_list->getServerBySID( UpnpEventSubscribe_get_SID_cstr( p_s ) ); + if ( p_server ) p_server->subscribeToContentDirectory(); + } + break; diff --git a/debian/patches/series b/debian/patches/series index 8733a5586d5e..34b9f10cb668 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -11,3 +11,4 @@ 0011-codec-avcodec-check-avcodec-visible-sizes.patch 0012-decoder-check-visible-size-when-creating-buffer.patch 0013-codec-flac-fix-heap-write-overflow-on-frame-format-c.patch +0014-port-to-libupnp-1.8.patch -- 2.11.0