Bug#868936: vlc: port to libupnp-1.8

Sebastian Ramacher sramacher at debian.org
Tue Aug 29 19:24:08 UTC 2017


Control: clone -1 -2
Control: reassign -2 libupnp1.8-dev 1:1.8.2-1
Control: retitle -2 libupnp1.8-dev: Please take over libupnp-dev
Control: block -1 by -2

As the title says, please take over libupnp-dev and coordinate the transition
with the release team.

Cheers

On 2017-08-29 21:05:27, Uwe Kleine-König wrote:
> 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?= <ukleinek at 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 <ukleinek at 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
> 



-- 
Sebastian Ramacher
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20170829/3591ab33/attachment-0001.sig>


More information about the pkg-multimedia-maintainers mailing list