Your message dated Thu, 08 Nov 2018 18:04:21 +0000 with message-id <e1gkoff-000gsv...@fasolo.debian.org> and subject line Bug#884996: fixed in amule 1:2.3.2-4 has caused the Debian Bug report #884996, regarding src:amule: FTBFS against upnp 1.8 to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact ow...@bugs.debian.org immediately.) -- 884996: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884996 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
--- Begin Message ---Package: src:amule Version: 1:2.3.2-2 Severity: important Tags: patch sid buster Control: block 884635 by -1 Hello, there is a pending transition of libupnp (see #884635) and amule currently fails to build against the new libupnp-dev that is already in experimental. The patch below fixes that and makes amule compile against both libupnp from the 1.6 branch and the 1.8 branch. Note however that the patch isn't completely suitable for upstream as is because an unmodified libupnp 1.6.24 doesn't ship all needed compatibility defines, but Debian's 1.6.24-4 does (and I expect upstream to merge them for 1.6.25). This is only compile tested. Best regards Uwe --- configure.in | 2 +- debian/control | 2 +- debian/patches/libupnp1.8.patch | 230 ++++++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 4 files changed, 233 insertions(+), 2 deletions(-) create mode 100644 debian/patches/libupnp1.8.patch diff --git a/configure.in b/configure.in index b4e808d3fcec..b897217efa0b 100644 --- a/configure.in +++ b/configure.in @@ -220,7 +220,7 @@ MULE_ARG_ENABLE([upnp], [yes], [do not compile UPnP code]) MULE_IF_ENABLED_ANY([monolithic, amule-daemon],, [MULE_ENABLEVAR([upnp])=no]) MULE_IF_ENABLED([upnp], [ LIBUPNP_CHECK( - [1.6.6], + [1.6.24], [MULE_APPEND([LIBUPNP_CPPFLAGS], [-DENABLE_UPNP=1])], [MULE_ENABLEVAR([upnp])=disabled MULE_WARNING([UPnP code has been disabled because ${libupnp_error}.])] diff --git a/debian/control b/debian/control index 6c1988b3e0a5..d35f08b78ef2 100644 --- a/debian/control +++ b/debian/control @@ -20,7 +20,7 @@ Build-Depends: libpng-dev, libqt4-dev, libreadline-dev, - libupnp-dev, + libupnp-dev (>= 1:1.6.24-4~), libwxgtk3.0-dev, wx3.0-i18n, zlib1g-dev, diff --git a/debian/patches/libupnp1.8.patch b/debian/patches/libupnp1.8.patch new file mode 100644 index 000000000000..4317a66aa094 --- /dev/null +++ b/debian/patches/libupnp1.8.patch @@ -0,0 +1,230 @@ +--- a/src/UPnPBase.cpp ++++ b/src/UPnPBase.cpp +@@ -29,22 +29,12 @@ + + #ifdef ENABLE_UPNP + +-// check for broken Debian-hacked libUPnP + #include <upnp.h> +-#ifdef STRING_H // defined in UpnpString.h Yes, I would have liked UPNPSTRING_H much better. +-#define BROKEN_DEBIAN_LIBUPNP +-#endif + + #include "UPnPBase.h" + + #include <algorithm> // For transform() + +-#ifdef BROKEN_DEBIAN_LIBUPNP +- #define GET_UPNP_STRING(a) UpnpString_get_String(a) +-#else +- #define GET_UPNP_STRING(a) (a) +-#endif +- + std::string stdEmptyString; + + const char s_argument[] = "argument"; +@@ -1127,7 +1117,7 @@ + + + // This function is static +-int CUPnPControlPoint::Callback(Upnp_EventType EventType, void *Event, void * /*Cookie*/) ++int CUPnPControlPoint::Callback(Upnp_EventType EventType, const void *Event, void * /*Cookie*/) + { + std::ostringstream msg; + std::ostringstream msg2; +@@ -1149,24 +1139,24 @@ + msg2<< "UPNP_DISCOVERY_SEARCH_RESULT: "; + // UPnP Discovery + upnpDiscovery: +- struct Upnp_Discovery *d_event = (struct Upnp_Discovery *)Event; ++ UpnpDiscovery *d_event = (UpnpDiscovery *)Event; + IXML_Document *doc = NULL; + int ret; +- if (d_event->ErrCode != UPNP_E_SUCCESS) { +- msg << UpnpGetErrorMessage(d_event->ErrCode) << "."; ++ if (UpnpDiscovery_get_ErrCode(d_event) != UPNP_E_SUCCESS) { ++ msg << UpnpGetErrorMessage(UpnpDiscovery_get_ErrCode(d_event)) << "."; + AddDebugLogLineC(logUPnP, msg); + } + // Get the XML tree device description in doc +- ret = UpnpDownloadXmlDoc(d_event->Location, &doc); ++ ret = UpnpDownloadXmlDoc(UpnpDiscovery_get_Location_cstr(d_event), &doc); + if (ret != UPNP_E_SUCCESS) { + msg << "Error retrieving device description from " << +- d_event->Location << ": " << ++ UpnpDiscovery_get_Location_cstr(d_event) << ": " << + UpnpGetErrorMessage(ret) << + "(" << ret << ")."; + AddDebugLogLineC(logUPnP, msg); + } else { + msg2 << "Retrieving device description from " << +- d_event->Location << "."; ++ UpnpDiscovery_get_Location_cstr(d_event) << "."; + AddDebugLogLineN(logUPnP, msg2); + } + if (doc) { +@@ -1195,7 +1185,7 @@ + } + // Add the root device to our list + upnpCP->AddRootDevice(rootDevice, urlBase, +- d_event->Location, d_event->Expires); ++ UpnpDiscovery_get_Location_cstr(d_event), UpnpDiscovery_get_Expires(d_event)); + } + // Free the XML doc tree + IXML::Document::Free(doc); +@@ -1216,28 +1206,28 @@ + case UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE: { + //fprintf(stderr, "Callback: UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE\n"); + // UPnP Device Removed +- struct Upnp_Discovery *dab_event = (struct Upnp_Discovery *)Event; +- if (dab_event->ErrCode != UPNP_E_SUCCESS) { ++ UpnpDiscovery *dab_event = (UpnpDiscovery *)Event; ++ if (UpnpDiscovery_get_ErrCode(dab_event) != UPNP_E_SUCCESS) { + msg << "error(UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE): " << +- UpnpGetErrorMessage(dab_event->ErrCode) << ++ UpnpGetErrorMessage(UpnpDiscovery_get_ErrCode(dab_event)) << + "."; + AddDebugLogLineC(logUPnP, msg); + } +- std::string devType = dab_event->DeviceType; ++ std::string devType = UpnpDiscovery_get_DeviceType_cstr(dab_event); + // Check for an InternetGatewayDevice and removes it from the list + std::transform(devType.begin(), devType.end(), devType.begin(), tolower); + if (stdStringIsEqualCI(devType, UPnP::Device::IGW)) { +- upnpCP->RemoveRootDevice(dab_event->DeviceId); ++ upnpCP->RemoveRootDevice(UpnpDiscovery_get_DeviceID_cstr(dab_event)); + } + break; + } + case UPNP_EVENT_RECEIVED: { + //fprintf(stderr, "Callback: UPNP_EVENT_RECEIVED\n"); + // Event reveived +- struct Upnp_Event *e_event = (struct Upnp_Event *)Event; +- const std::string Sid = e_event->Sid; ++ UpnpEvent *e_event = (UpnpEvent *)Event; ++ const std::string Sid = UpnpEvent_get_SID_cstr(e_event); + // Parses the event +- upnpCP->OnEventReceived(Sid, e_event->EventKey, e_event->ChangedVariables); ++ upnpCP->OnEventReceived(Sid, UpnpEvent_get_EventKey(e_event), UpnpEvent_get_ChangedVariables(e_event)); + break; + } + case UPNP_EVENT_SUBSCRIBE_COMPLETE: +@@ -1252,16 +1242,15 @@ + //fprintf(stderr, "Callback: UPNP_EVENT_RENEWAL_COMPLETE\n"); + msg << "error(UPNP_EVENT_RENEWAL_COMPLETE): "; + upnpEventRenewalComplete: +- struct Upnp_Event_Subscribe *es_event = +- (struct Upnp_Event_Subscribe *)Event; +- if (es_event->ErrCode != UPNP_E_SUCCESS) { ++ UpnpEventSubscribe *es_event = (UpnpEventSubscribe *)Event; ++ if (UpnpEventSubscribe_get_ErrCode(es_event) != UPNP_E_SUCCESS) { + msg << "Error in Event Subscribe Callback"; + UPnP::ProcessErrorMessage( +- msg.str(), es_event->ErrCode, NULL, NULL); ++ msg.str(), UpnpEventSubscribe_get_ErrCode(es_event), NULL, NULL); + } else { + #if 0 + TvCtrlPointHandleSubscribeUpdate( +- GET_UPNP_STRING(es_event->PublisherUrl), ++ UpnpEventSubscribe_get_PublisherUrl_cstr(es_event), + es_event->Sid, + es_event->TimeOut ); + #endif +@@ -1280,29 +1269,29 @@ + msg << "error(UPNP_EVENT_SUBSCRIPTION_EXPIRED): "; + msg2 << "UPNP_EVENT_SUBSCRIPTION_EXPIRED: "; + upnpEventSubscriptionExpired: +- struct Upnp_Event_Subscribe *es_event = +- (struct Upnp_Event_Subscribe *)Event; ++ UpnpEventSubscribe *es_event = (UpnpEventSubscribe *)Event; + Upnp_SID newSID; + memset(newSID, 0, sizeof(Upnp_SID)); + int TimeOut = 1801; + int ret = UpnpSubscribe( + upnpCP->m_UPnPClientHandle, +- GET_UPNP_STRING(es_event->PublisherUrl), ++ ++ UpnpEventSubscribe_get_PublisherUrl_cstr(es_event), + &TimeOut, + newSID); + if (ret != UPNP_E_SUCCESS) { + msg << "Error Subscribing to EventURL"; + UPnP::ProcessErrorMessage( +- msg.str(), es_event->ErrCode, NULL, NULL); ++ msg.str(), UpnpEventSubscribe_get_ErrCode(es_event), NULL, NULL); + } else { + ServiceMap::iterator it = +- upnpCP->m_ServiceMap.find(GET_UPNP_STRING(es_event->PublisherUrl)); ++ upnpCP->m_ServiceMap.find(UpnpEventSubscribe_get_PublisherUrl_cstr(es_event)); + if (it != upnpCP->m_ServiceMap.end()) { + CUPnPService &service = *(it->second); + service.SetTimeout(TimeOut); + service.SetSID(newSID); + msg2 << "Re-subscribed to EventURL '" << +- GET_UPNP_STRING(es_event->PublisherUrl) << ++ UpnpEventSubscribe_get_PublisherUrl_cstr(es_event) << + "' with SID == '" << + newSID << "'."; + AddDebugLogLineC(logUPnP, msg2); +@@ -1321,17 +1310,16 @@ + case UPNP_CONTROL_ACTION_COMPLETE: { + //fprintf(stderr, "Callback: UPNP_CONTROL_ACTION_COMPLETE\n"); + // This is here if we choose to do this asynchronously +- struct Upnp_Action_Complete *a_event = +- (struct Upnp_Action_Complete *)Event; +- if (a_event->ErrCode != UPNP_E_SUCCESS) { ++ UpnpActionComplete *a_event = (UpnpActionComplete *)Event; ++ if (UpnpActionComplete_get_ErrCode(a_event) != UPNP_E_SUCCESS) { + UPnP::ProcessErrorMessage( + "UpnpSendActionAsync", +- a_event->ErrCode, NULL, +- a_event->ActionResult); ++ UpnpActionComplete_get_ErrCode(a_event), NULL, ++ UpnpActionComplete_get_ActionResult(a_event)); + } else { + // Check the response document + UPnP::ProcessActionResponse( +- a_event->ActionResult, ++ UpnpActionComplete_get_ActionResult(a_event), + "<UpnpSendActionAsync>"); + } + /* No need for any processing here, just print out results. +@@ -1342,12 +1330,11 @@ + case UPNP_CONTROL_GET_VAR_COMPLETE: { + //fprintf(stderr, "Callback: UPNP_CONTROL_GET_VAR_COMPLETE\n"); + msg << "error(UPNP_CONTROL_GET_VAR_COMPLETE): "; +- struct Upnp_State_Var_Complete *sv_event = +- (struct Upnp_State_Var_Complete *)Event; +- if (sv_event->ErrCode != UPNP_E_SUCCESS) { ++ UpnpStateVarComplete *sv_event = (UpnpStateVarComplete *)Event; ++ if (UpnpStateVarComplete_get_ErrCode(sv_event) != UPNP_E_SUCCESS) { + msg << "m_UpnpGetServiceVarStatusAsync"; + UPnP::ProcessErrorMessage( +- msg.str(), sv_event->ErrCode, NULL, NULL); ++ msg.str(), UpnpStateVarComplete_get_ErrCode(sv_event), NULL, NULL); + } else { + #if 0 + // Warning: The use of UpnpGetServiceVarStatus and +--- a/src/UPnPBase.h ++++ b/src/UPnPBase.h +@@ -490,9 +490,19 @@ + // Callback function + static int Callback( + Upnp_EventType EventType, +- void* Event, ++ const void* Event, + void* Cookie); + ++#if UPNP_VERSION < 10800 ++ /* in libupnp 1.6 Event is not const */ ++ static int Callback( ++ Upnp_EventType EventType, ++ void* Event, ++ void* Cookie) { ++ return Callback(EventType, (const void *)Event, Cookie); ++ } ++#endif ++ + private: + void OnEventReceived( + const std::string &Sid, diff --git a/debian/patches/series b/debian/patches/series index 1b5df1026c1e..b757165ce326 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,3 +4,4 @@ cas_configfile.c_good_default_paths.diff use_xdg-open_as_preview_default.diff version_check.diff 17816ed02f59bab9c27310e7f24c73266b0a3003.patch +libupnp1.8.patch -- 2.15.1signature.asc
Description: PGP signature
--- End Message ---
--- Begin Message ---Source: amule Source-Version: 1:2.3.2-4 We believe that the bug you reported is fixed in the latest version of amule, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 884...@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Sandro Tosi <mo...@debian.org> (supplier of updated amule package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmas...@ftp-master.debian.org) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 1.8 Date: Thu, 08 Nov 2018 12:40:33 -0500 Source: amule Binary: amule amule-common amule-utils amule-utils-gui amule-daemon amule-gnome-support Architecture: source all amd64 Version: 1:2.3.2-4 Distribution: unstable Urgency: medium Maintainer: Sandro Tosi <mo...@debian.org> Changed-By: Sandro Tosi <mo...@debian.org> Description: amule - client for the eD2k and Kad networks, like eMule amule-common - common files for the rest of aMule packages amule-daemon - non-graphic version of aMule, a client for the eD2k and Kad netwo amule-gnome-support - ed2k links handling support for GNOME web browsers amule-utils - utilities for aMule (command-line version) amule-utils-gui - graphic utilities for aMule Closes: 884996 Changes: amule (1:2.3.2-4) unstable; urgency=medium . [ Ondřej Nový ] * d/watch: Use https protocol . [ Sandro Tosi ] * [cd2b237] support upnp 1.8; Closes: #884996 * [25c3fdc] bump Standards-Version to 4.2.1 (no changes needed) * [5eb9957] remove Adrian Yanes from Uploaders, thanks for your contributions! Checksums-Sha1: cafcce21504703583162e2cfe44813bffb31c33b 2323 amule_2.3.2-4.dsc 1e108db84628e32213fc7d1aa61f4c2410c5e557 28608 amule_2.3.2-4.debian.tar.xz 53afc732c160aea1e2bdfa64f012ea52b3d58a04 1241296 amule-common_2.3.2-4_all.deb aa4f1c4823607aa8978e95c45aef228e32477542 26122988 amule-daemon-dbgsym_2.3.2-4_amd64.deb b5daa5f51a637e325c4cb03e813587c15c0d12f2 1239496 amule-daemon_2.3.2-4_amd64.deb 324b05191b8ee25bf2c7ba155dd6cfc1cb0544fb 32928928 amule-dbgsym_2.3.2-4_amd64.deb be0541f4e2c8d9573d41159eaa76de782ae265f7 132384 amule-gnome-support_2.3.2-4_all.deb b128c3d81bd642565285c567451b6a0150742771 4248948 amule-utils-dbgsym_2.3.2-4_amd64.deb 458b0a6be4c6a7cd85e4fa2224ad58cd73f3d6d2 20120444 amule-utils-gui-dbgsym_2.3.2-4_amd64.deb 7e6e42557978ec846768504f42a9187b819e9dfa 1377680 amule-utils-gui_2.3.2-4_amd64.deb 59d1789a73b406c66e0d3b4bb5d08e8c252d4dff 583512 amule-utils_2.3.2-4_amd64.deb b21d863d1aa2d009221a95dd104efa6a2f0a5b64 16206 amule_2.3.2-4_amd64.buildinfo 9c38f87762ad8b4d46ca788c433229811ec219ab 1805592 amule_2.3.2-4_amd64.deb Checksums-Sha256: 33a61186563587dfddff1c1e720412cc545ec741a34dc8a543289e97ea31d6ae 2323 amule_2.3.2-4.dsc 5bfbaffcd5671d37049d1669e5316f2e17871c52126957986f6cc1153b53e5c8 28608 amule_2.3.2-4.debian.tar.xz 8df30d90b32b954b9ea83abd931b01f34e42ccb51af7afc70507fbee8dcf62fc 1241296 amule-common_2.3.2-4_all.deb a115bec2381d10637a3649985afcf0df9ac753411774e3e63a4b61b2d5ff10b9 26122988 amule-daemon-dbgsym_2.3.2-4_amd64.deb 8db1a71108bb1312a616bf013bb7cc5b055801cdb048b6b739a58a41d147b82e 1239496 amule-daemon_2.3.2-4_amd64.deb a4b34dbc16235793a01b710408184fa044599890c4b5dc86bdb97e7c8b55bb46 32928928 amule-dbgsym_2.3.2-4_amd64.deb 2c006d0a4d7418b5ac5d7a41f1173342824f7e26e5930f2b868c3d582dfd547d 132384 amule-gnome-support_2.3.2-4_all.deb c5e679a53c762517d38ed9520c24762cd9f2893a0b814ec049bccca867a44cc0 4248948 amule-utils-dbgsym_2.3.2-4_amd64.deb 1ed8112606a69424f2a15ab3de28ee21746d513e14a065a62a0ff7d8643f4746 20120444 amule-utils-gui-dbgsym_2.3.2-4_amd64.deb 52ad5e5924dd07a5a535f423acefb477c41b3c338a2a683f122e8891e7c0fcc3 1377680 amule-utils-gui_2.3.2-4_amd64.deb fe87fb4aa7137307f1a0bcef14aa25fe8a8943202426a38cbefa601cf7e45827 583512 amule-utils_2.3.2-4_amd64.deb 9d460f6e0e69188217e24d980be746b946bb2907f0d60602b9ee79e15522bc06 16206 amule_2.3.2-4_amd64.buildinfo 020640e2361508d25004201ef23a6b1a02be9272bdafe39192f556edc2a688f7 1805592 amule_2.3.2-4_amd64.deb Files: 372740c3e22318ff7dc03945859dc6a9 2323 net optional amule_2.3.2-4.dsc cdc019a1ffb60d4a5b684a71cfe11663 28608 net optional amule_2.3.2-4.debian.tar.xz 690f4e8588af90988d7e174b1f0d764f 1241296 net optional amule-common_2.3.2-4_all.deb 68dfb55b0cb7965a06874ecca727698f 26122988 debug optional amule-daemon-dbgsym_2.3.2-4_amd64.deb 3f8f1a223b8c3b5d95b0b0d18e1c5e21 1239496 net optional amule-daemon_2.3.2-4_amd64.deb 410d72bef52fc35225bc50ed93933d4c 32928928 debug optional amule-dbgsym_2.3.2-4_amd64.deb b3367faa5c3cfe6651e0305e27886c85 132384 net optional amule-gnome-support_2.3.2-4_all.deb 6aa2016aa470449dbe0381a93eeaf20d 4248948 debug optional amule-utils-dbgsym_2.3.2-4_amd64.deb f5460462802bfa825d3821ad916b099d 20120444 debug optional amule-utils-gui-dbgsym_2.3.2-4_amd64.deb 558c52a9388a17e741dcf86774e3524a 1377680 net optional amule-utils-gui_2.3.2-4_amd64.deb 94fd3146074d60c43a6c1068049548ef 583512 net optional amule-utils_2.3.2-4_amd64.deb 235a738d549a7454c55f1edf548c8e46 16206 net optional amule_2.3.2-4_amd64.buildinfo 54b0467be49e4aac20c425eef56fda1e 1805592 net optional amule_2.3.2-4_amd64.deb -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEufrTGSrz5KUwnZ05h588mTgBqU8FAlvkdrAACgkQh588mTgB qU+tCw//QpqrxPTNUbBoHQxBWKWNPBR+ppr5KyYWvq+Rgn+fPMekFRpJ8xSbeQkD Isd2fopTDYWT/J43H4JakXrRbBjL8mxcbokvYsSIiUXZ65ARQ17F5+xNxpdDngO6 51vQo2B/pUJtPdDdRwibhL573oSXGzXKHRXMqXJDyc+0+A4vCOXq8rMVRX9sHxMI 0YRuDB0qc6Bb8ACwfSK8pK3+ixaVmaUIOvshG8n100BNeeVv5v1gJcfE9zt5gzGs 7usFKvsVZbkjb+eIYJjR5r+kUvtn8AMZtDdP+/kLFVxMdtGmNlydfb8cFrVZHDww o4VDSqMm6Y2OCURElCgnji/6XwZIobIvNKfs9endPtPUs92ZOHiqCnxhzxOxPhMM BJgOu52OEc7B4Wm1rz4xKo9UVKXyEoc0FYuEQrrHAF4GCnuNXqVjRUHIDOjbZdOH /m6SQOwMRL39/ahXhkcTIpDQoCbOl/ZvnT9xKiVRqS2hWDn8wpawnXNoE3/nVGMB rw5OY2sBENcKIOUuw2f4UtYRIbSWpHjp0hjyzSXg8bqIMHyiu5rbtUGLOqHFJaFC +zAme0LY2U4CL9TGxcvhuKSHTakkx7n6OxOfxzCVZ83q6HEYpMPKtENxKF8/Oi+R ipPah+tnnt6f4EVujydmCa/4PRepU+3cn4WmWZeVbIFw9hmNPzI= =wk25 -----END PGP SIGNATURE-----
--- End Message ---