Package not backwards compatible and seems broken

Bug #493321 reported by MNLipp
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libupnp4 (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: libupnp4

The libupnp4 is not backward compatible to libupnp3 which causes at least one dependent program (vlc) to fail during compilation.

Trying to adapt vlc to the new version, I found the libupnp4 seems to be inconsistent within itself. It uses s struct s_UpnpDiscovery in a typedef, but the struct is never defined.

Revision history for this message
Nick Leverton (nick-leverton) wrote :

I'm the Debian libupnp4 maintainer, so not directly responsible for the Ubuntu package but maybe I can help you.

Libupnp 1.8 is a major API change in order to hide more of the internal implementation, which is why it is packaged as a different library (libupnp4) than version 1.6 (libupnp3). I am keeping both packages in Debian until I can help the dependent packages such as vlc perform a transition to the new API. Presumably Ubuntu will do the same.

The non-definition of "struct s_UpnpDiscovery *" and similar types is apparently deliberate by upstream, because some (*coughwindows*) compilers cannot cope with empty structs such as "struct {} s_UpnpDiscovery *". In the external API the type is only ever used via pointers, and it is cast to a real struct internally. Although it looks odd, I have found that the code does compile cleanly on gcc.

I have looked into what's needed to adapt vlc and other clients to the new API. If you mail me at <email address hidden> I'll be happy to discuss with you. I hope to be able to get the transition started for Debian once Squeeze is released.

A newer version of libupnp4 (svn20090323-1) should be entering Debian soon and may be worth a look for Ubuntu too.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.