Control: reassign -1 vlc 2.2.6-4

Hello,

On Fri, Jul 28, 2017 at 05:05:35PM +0200, Jean-Baptiste Kempf wrote:
> Hello Sebastian, Bugreporters,
> 
> On Fri, 21 Jul 2017, at 14:58, Sebastian Ramacher wrote:
> > > On Thu, Jul 20, 2017 at 02:34:42PM +0200, Sebastian Ramacher wrote:
> > > > > 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.
> > > > 
> > > > As long as the adoption to upnp 1.8 requires to add -1.8 everywhere 
> > > > (are we
> > > > supposed to change it to -1.9 next month with the next upstream 
> > > > release?), this
> > > > was explicitly NAKed upstream.
> > > 
> > > Which upstream? vlc I suppose? Do you have a link to the discussion
> > > handy?
> > 
> > Yes, vlc upstream. This was over IRC and I don't have logs. But I'm sure
> > J-B will repeat it if necessary (CCed)
> 
> Sure.
> 
> Since when releasing a new version of a library requires changing all
> the includes and all the pkg-config detection?
> 
> SO names are done to notate API/ABI changes within a library and
> PKG-CONFIG files are done to show where to find the includes folder and
> how to link.
> 
> If you do a moderate breaking change, you change the API, the ABI, and
> bump the library version name majorly. And people linking against you
> will need to adapt, when they bump the requirements. This was done for
> almost every minor C/C++ library, since forever.
> 
> So, sorry, but this way of renaming the headers folder name and changing
> the .pc files is completely backward; and sorry, totally not justified,
> because it's justified for complete rewrites, not for a moderate change.

OK, libupnp-1.8 was fixed in 1.8.2, I added the updated patch at the end
of the mail. I hope it is acceptable as is now. I'm rereassigning back
to vlc accordingly.

One thing I'd like to point out to prevent surprises: Theoretically
libupnp should also compile and work on Windows. Depending on how much
you (vlc) care about your Windows port you might want to evaluate that
first. I quickly tried to compile libupnp on Windows which failed, but
the same is true for the 1.6 branch, so this might just be me being
unable to use the Windows compiler.

Best regards
Uwe

From 7ccf2d2ed3dcc23bbd6f2a3dbf6ba428fc641d1f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <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 | 94 +++++++++++++++++++++++++++
 debian/patches/series                         |  1 +
 4 files changed, 102 insertions(+), 1 deletion(-)
 create mode 100644 debian/patches/0014-port-to-libupnp-1.8.patch

diff --git a/debian/changelog b/debian/changelog
index 767b9c2567eb..7476b8575930 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+vlc (2.2.6-5) UNRELEASED; urgency=medium
+
+  * port to libupnp-1.8
+
+ -- Uwe Kleine-König <uklei...@debian.org>  Tue, 29 Aug 2017 18:48:43 +0000
+
 vlc (2.2.6-4) unstable; urgency=medium
 
   * debian/upstream: Add DEP-12 metadata.
diff --git a/debian/control b/debian/control
index c9ae459a5545..84bcaa7e9eb6 100644
--- a/debian/control
+++ b/debian/control
@@ -86,7 +86,7 @@ Build-Depends: autopoint,
                libtheora-dev (>= 1.0),
                libtwolame-dev (>= 0.3.8),
                libudev-dev [linux-any],
-               libupnp-dev,
+               libupnp1.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..8e842412cd0c
--- /dev/null
+++ b/debian/patches/0014-port-to-libupnp-1.8.patch
@@ -0,0 +1,94 @@
+--- 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;
+--- 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.2], [Intel UPNP 
SDK],[auto])
+ 
+ EXTEND_HELP_STRING([Misc options:])
+ 
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.14.1

Attachment: signature.asc
Description: PGP signature

Reply via email to