Bug#749560: transition: miniupnpc
On 05/28/2014 02:55 PM, Emilio Pozuelo Monfort wrote:
> On 28/05/14 06:40, Thomas Goirand wrote:
>> Note that I would like this transition to happen ASAP, because of #748913.
>
> That seems fixed in 1.6-4 now, so should be fine? We can wait until that migrates.
Yes, I uploaded a patched version (trivial because one line change). It
has migrated already (and Stable isn't affected).
> That would also let libenet and 0ad migrate.
Both libnet and 0ad have also migrated to Testing. By the way, what's
the relation between miniupnpc and libnet? I'm not sure I get it.
> In the meantime, please upload to experimental so that it goes through NEW.
This was done.
I also took time to review all reverse dependency rebuild. Here's the
result, and it doesn't look good. :( The one who builds fine first:
- bitcoin
- sushi
- transmission
Though there's FTBFS issues seemingly related to the new version of
miniupnpc with these:
- 0ad: see [1] below
- megaglest: see [2] below
- warzone2100: see [3] below
And then these seem to have unrelated FTBFS in Sid:
- eiskaltdcpp: FTBFS (in eiskaltdcpp-qt/src/ChatEdit.cpp which doesn't
have UPNP stuff)
- litecoin: FTBFS (but package not in Testing anyway)
What's the next step? Should I ask maintainers of 0ad, megaglest and
warzone2100 to build and upload in experimental against the new version
of miniupnpc first? Advices welcome!
Cheers,
Thomas Goirand (zigo)
[1]
../../../source/network/NetServer.cpp: In static member function ‘static
void* CNetServerWorker::SetupUPnP(void*)’:
../../../source/network/NetServer.cpp:279:36: error: too few arguments
to function ‘int UPNP_GetSpecificPortMappingEntry(const char*, const
char*, const char*, const char*, const char*, char*, char*, char*,
char*, char*)’
NULL/*enabled*/, duration);
^
In file included from ../../../source/network/NetServer.cpp:38:0:
/usr/include/miniupnpc/upnpcommands.h:182:1: note: declared here
UPNP_GetSpecificPortMappingEntry(const char * controlURL,
^
network.make:166: recipe for target 'obj/network_Release/NetServer.o' failed
make[3]: *** [obj/network_Release/NetServer.o] Error 1
I had a quick look. What it's missing is the (new) parameter "const char
* remoteHost". At a glance, it was not obvious where to get the
information in the upstream source code.
[2]
/home/zigo/sources/miniupnp/miniupnpc/rebuild/megaglest/megaglest-3.7.1/source/shared_lib/sources/platform/posix/socket.cpp:
In static member function ‘static int
Shared::Platform::UPNP_Tools::upnp_init(void*)’:
/home/zigo/sources/miniupnp/miniupnpc/rebuild/megaglest/megaglest-3.7.1/source/shared_lib/sources/platform/posix/socket.cpp:2481:115:
error: too few arguments to function ‘void* miniwget_getaddr(const
char*, int*, char*, int, unsigned int)’
descXML = (char *)miniwget_getaddr(dev->descURL, &descXMLsize,
lanaddr, (sizeof(lanaddr) / sizeof(lanaddr[0])));
^
In file included from
/home/zigo/sources/miniupnp/miniupnpc/rebuild/megaglest/megaglest-3.7.1/source/shared_lib/sources/platform/posix/socket.cpp:56:0:
/usr/include/miniupnpc/miniwget.h:21:16: note: declared here
LIBSPEC void * miniwget_getaddr(const char *, int *, char *, int,
unsigned int);
^
/home/zigo/sources/miniupnp/miniupnpc/rebuild/megaglest/megaglest-3.7.1/source/shared_lib/sources/platform/posix/socket.cpp:2487:45:
error: too few arguments to function ‘void GetUPNPUrls(UPNPUrls*,
IGDdatas*, const char*, unsigned int)’
GetUPNPUrls (&urls, &data, dev->descURL);
^
In file included from
/home/zigo/sources/miniupnp/miniupnpc/rebuild/megaglest/megaglest-3.7.1/source/shared_lib/sources/platform/posix/socket.cpp:57:0:
/usr/include/miniupnpc/miniupnpc.h:115:1: note: declared here
GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *,
^
source/shared_lib/CMakeFiles/libmegaglest.dir/build.make:2035: recipe
for target
'source/shared_lib/CMakeFiles/libmegaglest.dir/sources/platform/posix/socket.cpp.o'
failed
[3]
netplay.cpp: In function ‘int upnp_init(void*)’:
netplay.cpp:947:91: error: too few arguments to function ‘void*
miniwget_getaddr(const char*, int*, char*, int, unsigned int)’
descXML = (char *)miniwget_getaddr(dev->descURL, &descXMLsize,
lanaddr, sizeof(lanaddr));
^
In file included from netplay.cpp:44:0:
/usr/include/miniupnpc/miniwget.h:21:16: note: declared here
LIBSPEC void * miniwget_getaddr(const char *, int *, char *, int,
unsigned int);
^
netplay.cpp:953:44: error: too few arguments to function ‘void
GetUPNPUrls(UPNPUrls*, IGDdatas*, const char*, unsigned int)’
GetUPNPUrls (&urls, &data, dev->descURL);
^
In file included from netplay.cpp:45:0:
/usr/include/miniupnpc/miniupnpc.h:115:1: note: declared here
GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *,
^
Makefile:453: recipe for target 'netplay.o' failed
"too few arguments to function" sounds like another API change in
Miniupnpc (I didn't investigate that one much).
Reply to: