aMule Forum
English => Compilation problems => Topic started by: Corin on May 01, 2012, 01:33:03 AM
-
Builing of aMule v2.3.1 fails on i386 Debian Testing during compilation of uPnP Base module.
$PWD/configure --prefix=$X11_DIR --enable-amule-daemon --enable-webserver --enable-amule-gui --enable-geoip --enable-mmap --enable-optimize
checking for libupnp version >= 1.6.6... yes (version 1.8.0~svn20100401)
**** aMule TextClient ****
Should aMule Command Line Client be built? no
**** aMule WebServer ****
Should aMule WebServer be built? yes
**** aMule ED2K Links Handler ****
Should aMule ED2K Links Handler be built? yes
**** aMuleLinkCreator ****
Should aMuleLinkCreator GUI version (alc) be built? no
Should aMuleLinkCreator for console (alcc) be built? no
**** aMule Statistics ****
Should C aMule Statistics (CAS) be built? no
Should aMule GUI Statistics (wxCas) be built? no
Should xas XChat2 plugin be installed? no
Should plasmaMule plasma-applet be build? no
**** General Libraries and Tools ****
Should ccache support be enabled? no
Libraries aMule will use to build:
wxWidgets 2.8.12 (gtk2,shared)
crypto++ 5.6.1 (installed, in /usr)
libupnp 1.8.0~svn20100401
libintl system
libGeoIP system
libpng 1.2.49
zlib 1.2.6
Compiling UPnPBase.cpp
../../../src/UPnPBase.cpp: In constructor ‘CUPnPControlPoint::CUPnPControlPoint(short unsigned int)’:
../../../src/UPnPBase.cpp:871:37: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
../../../src/UPnPBase.cpp: In static member function ‘static int CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)’:
../../../src/UPnPBase.cpp:1189:14: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1186:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1190:56: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1186:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1194:35: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1186:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1197:12: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1186:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1203:12: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1186:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1236:13: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1186:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1236:32: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1186:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1258:16: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1257:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1260:52: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1257:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1264:34: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1257:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1268:38: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1257:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Discovery’
../../../src/UPnPBase.cpp:1276:34: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event’
../../../src/UPnPBase.cpp:1275:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event’
../../../src/UPnPBase.cpp:1278:39: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event’
../../../src/UPnPBase.cpp:1275:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event’
../../../src/UPnPBase.cpp:1278:58: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event’
../../../src/UPnPBase.cpp:1275:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event’
../../../src/UPnPBase.cpp:1295:15: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1293:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1298:24: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1293:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1327:12: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1321:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1333:24: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1321:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1336:39: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1321:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1342:14: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1321:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Event_Subscribe’
../../../src/UPnPBase.cpp:1363:14: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Action_Complete’
../../../src/UPnPBase.cpp:1361:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Action_Complete’
../../../src/UPnPBase.cpp:1366:12: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Action_Complete’
../../../src/UPnPBase.cpp:1361:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Action_Complete’
../../../src/UPnPBase.cpp:1367:12: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Action_Complete’
../../../src/UPnPBase.cpp:1361:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Action_Complete’
../../../src/UPnPBase.cpp:1371:12: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Action_Complete’
../../../src/UPnPBase.cpp:1361:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_Action_Complete’
../../../src/UPnPBase.cpp:1384:15: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_State_Var_Complete’
../../../src/UPnPBase.cpp:1382:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_State_Var_Complete’
../../../src/UPnPBase.cpp:1387:24: error: invalid use of incomplete type ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_State_Var_Complete’
../../../src/UPnPBase.cpp:1382:10: error: forward declaration of ‘struct CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)::Upnp_State_Var_Complete’
make[4]: *** [amuleweb-UPnPBase.o] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
This failure on the amd64 platform has been reported as Debian Bug #670962
<http://bugs.debian.ORG/cgi-bin/bugreport.cgi?bug=670962 (http://bugs.debian.ORG/cgi-bin/bugreport.cgi?bug=670962)>
-
Newer version of libupnp is required.
<http://forum.amule.ORG/index.php?topic=19000.0>
-
You have to use:
libupnp 1.6.6
Other version don't work.
-
You have to use:
libupnp 1.6.6
Other version don't work.
Sorry, I should have written older version, not newer --
apt-get install libupnp3 libupnp3-dev
The following packages will be REMOVED:
libupnp4-dev
I thought this was a new issue when I did the web search and found the bug just reported on April 30th, 2012, but I should have searched more thoroughly here first before posting.
-
Incidentally, Debian are in the process of upgrading from libunp3 to libupn6 (sid then testing) so if amule is not going to move forward from libupnp3 at some time, this could mean that amule will no longer be available to Debian users unless they install the old libupn3 library and compile that and amule from source.
From <http://bugs.debian.ORG/cgi-bin/bugreport.cgi?bug=655912 (http://bugs.debian.ORG/cgi-bin/bugreport.cgi?bug=655912)>
Sat, 14 Jan 2012 18:28:08 +0000
Upstream for libupnp has changed the soname for the stable branch from
libupnp3 to libupnp6, as a result of the ABI changes in version 1.6 over
the last few years.
As the maintainer of libupnp3 in Debian I am planning to follow this
transition.
Thus the question is, are the aMule developers preparing for a transition to libupn6?
-
Hello, i'm the Debian maintainer for amule - as already pointed out by Corin, the upcoming Debian release will ship libupnp6 (where 6 is the SONAME of the library) but amule is unable to build with it (as it's already been reported on the Debian BTS: http://bugs.debian.org/670962).
Are there any plan to update amule to the new libupnp ? Please also note that the debian archive freeze (so where only bigfixes will be accepted for the release) will start in 1-2 months. The only solutions I can see if amule can't cope with libupnp6 are: 1. remove amule from Debian release; 2. disable upnp. Both would be a shame for debian users.
-
Don't worry, I think Stu Redman or Kry
would find a nice solution. 8)
But they need PERSONAL TIME, in order
to spend it on this project (so you have to wait). ;)
See you soon! :)
-
We got luck! A nice fellow Debian developer kindly prepared a patch to migrate amule to libupnp6: you can find it here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670962#17 - it would be nice if you'd give it a look, I'll be play with it this evening in order to see if it's ok-ish
-
Even better, the Debian maintainer for libupnp has provided a patch himself, you can look at here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670962#29
-
I've applied the last patch to amule debian package and it built fine and it's running since 1h (using upnp on the router).
-
libuPnP was developed and integrated in aMule by Phoenix. Maybe he can comment on the issue.
I can't apply the patch to our source since it breaks compilation with libupnp3.
Why would you not keep the libupnp3 package?
You can of course apply the patch to your version of aMule. Just call it something else than 2.3.1 if you patch it, and mind that we (or at least I) do not support binaries built from modified sources.
-
I can see your point, but from a distribution point of view, it's not possible to maintain multiple versions of the same library.
-
I believe Ubuntu provides both libupnp3 and libupnp4 so it should be possible.
You could also patch libupnp6 with something like
class UpnpString {
operator const char * () const { return UpnpString_get_String(this); }
to keep it backwards compatible.
(Mind, "something like". I didn't try it or even look at the source.)
-
Brealing compilation shouldn't be a problem, we solved this issue already for crypto++ where the new version needed an additional define. I'm out of time till at least 14th of May, but a version-check and ifdef should be implementable by some other guy, too. I know that at least Gonosztopi is able to do it right.
-
Since we won't have a new version of aMule out until the Debian freeze and you won't and shouldn't ship an SVN version your patch will be the only solution anyway. Then we can find a way to support both libupnp versions (3 and 6) at leisure.
The important thing is not compilation, but rather if 6 works of course. If you have verified that I see no problem supporting it if there is some UPnP version define.
Still I'd like to see a comment by Phoenix on the subject since UPnP is his realm really. He is pretty much retired (like most devs, sigh), but I have contacted him.
-
Yes it works for me, but upnp is a bad beast: the patched package already landed in the unstable branch of Debian, so I foresee more testing of the patch soon - so we'll know how/if it works on a wider audience.
-
aMule builds just fine with all the 1.6.x versions of libupnp (at least since 1.6.6 up to the current 1.6.17). According to phoenix the 1.8.x branch is unstable and has severe bugs.
-
Are you referring to v2.3.1 or to the SVN version? because 2.3.1 can't be built with libupnp 1.6 (as verified in the mentioned debian bug and reported by the OP).
-
I'm referring to 2.3.1 (and the SVN version, too). I just built aMule-2.3.1 with both libupnp-1.6.6 and 1.6.17. I don't know what patches the debian guys applied to libupnp, but aMule compiles fine with the untouched tarballs from http://sourceforge.net/projects/pupnp/files/
-
I'm very sorry for ths oversight, I sneaked a last minute API change into
the libupnp6 package before the transition and missed this place where it
requires a source change.
Now it clearly describes that it's their own patch that makes aMule compilation fail.
-
hi guys,
i'm on debian testing, and after i updated all packages (a week or so ago), amuled is gone, because it now needs libupnp6, but installing that (upgrading from the existing libupnp3) would uninstall kde, which is not really an option :) is there any way to get amule working again, or, alternatively, does anybody know when this issue will be fixed?
thx!
s.
-
I'm very sorry for ths oversight, I sneaked a last minute API change into
the libupnp6 package before the transition and missed this place where it
requires a source change.
Now it clearly describes that it's their own patch that makes aMule compilation fail.
Now I see - thanks for looking into it
-
installing that (upgrading from the existing libupnp3) would uninstall kde
I love distros. :P
does anybody know when this issue will be fixed?
Wrong forum. You have to ask the Debian guys what they think they are doing.
-
installing that (upgrading from the existing libupnp3) would uninstall kde
I love distros. :P
eheh yeah, but it's worth noting that sarefo is using the testing branch, so even the name says it's in a "testing phase" ;)
does anybody know when this issue will be fixed?
Wrong forum. You have to ask the Debian guys what they think they are doing.
Yep, just ask in https://lists.debian.org/debian-user/ (or any other support forum you prefer) - please note that libupnp is under a transition, so it's somehow expected to break stuff.
-
Hi Folks, sorry for taking so long to answer.
In first place, this issue is not new, it has happened not so long ago. This is because the folks Debian are using an unreleased version of the software in the official distro. As of March 19th, 2012, libUPnP 1.8.0 still does not exist. You can use it, of course, but please realize that you are on your own. The last release of libUPnP is 1.6.17.
Morph, the transition you mention is happening for years. Unfortunately, as in any open source project, we lack developers in libUPnP. This particular branch of the software is, as far as I know, untested. At least, no one has reported back to the developers that he/she is using 1.8.0 reliably. We get zero error reports on it and tons of error reports on 1.6.x, which has been under active development recently, mostly bug fixes.
I make sure that any bug fix applied to 1.6.x is also applied to 1.8.0 if it makes sense.
On the other hand, we might get something useful of this situation. If libUPnP 1.8.0 has been in use in Debian, it would be nice if someone told me what software is linking against it, and if you use any patch to pass it upstream. If I have reports of users and developers linking against it without problems, I'll gladly release the beast.
The whole point of 1.8.0 is to isolate the internal structures of the library, so that the developers can work without breaking the library API, which is a pain in the ass, as any distro maintainer knows.
Another point is that changing aMule to work with (the inexistent :P ) libUPnP 1.8.0 is likely to be very easy. I really currently have no resources to look into this right, sorry, but I am available to help someone willing to do it.
Chrees!
-
libupnp6
Reverse Depends:
wmaloader
vlc-nox
gmediaserver
djmount
amule-daemon
amule
These are in testing now, so at least they build, link and no sreious bugs have been reported.