Comment 1 for bug 493321

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.