Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8
On Sun, 26 Aug 2018 14:33:46 +0200 Tobias Frost wrote: > I tagged it help because maybe someone with more libupnp knowledge can > help me... Or if there is some migration guide, please let me know... > (I could not find anything...) > > Hi, We received some pointers in the following mail, which should probably have been sent to this bug: https://lists.debian.org/debian-release/2018/10/msg2.html Thanks, ~Niels
Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8
I tagged it help because maybe someone with more libupnp knowledge can help me... Or if there is some migration guide, please let me know... (I could not find anything...)
Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8
On Sat, May 19, 2018 at 10:28:11PM +0200, Uwe Kleine-König wrote: > Hello, > > [adding Marcelo as upstream maintainer to Cc: for the UpnpAddVirtualDir > problem] > > On Mon, Dec 18, 2017 at 02:26:57PM +, James Cowgill wrote: > > On 18/12/17 09:30, Sebastian Ramacher wrote: > > > On 2017-12-18 09:48:57, Tobias Frost wrote: > > >> Am 12. Dezember 2017 22:08:24 MEZ schrieb Sebastian Ramacher > > >> : > > >>> | upnp_device.c: In function 'handle_subscription_request': > > >>> | upnp_device.c:165:12: error: dereferencing pointer to incomplete type > > >>> 'struct Upnp_Subscription_Request' > > >>> | sr_event->ServiceId, sr_event->UDN); > > >>> | ^~ > > >>> | upnp_device.c: At top level: > > >>> | upnp_device.c:243:17: warning: 'struct Upnp_State_Var_Request' > > >>> declared inside parameter list will not be visible outside of this > > >>> definition or declaration > > >>> | struct Upnp_State_Var_Request *var_event) { > > >>> | ^~ > > >>> | upnp_device.c: In function 'handle_var_request': > > >>> | upnp_device.c:245:18: error: dereferencing pointer to incomplete type > > >>> 'struct Upnp_State_Var_Request' > > >>> | var_event->ServiceID); > > >>> | ^~ > > >>> | upnp_device.c: In function 'initialize_device': > > >>> | upnp_device.c:433:7: error: too few arguments to function > > >>> 'UpnpAddVirtualDir' > > >>> | rc = UpnpAddVirtualDir("/upnp"); > > > > > > Uwe, James, can you help with that? > > > > pupnp 1.8.3 changed the signature of UpnpAddVirtualDir to allow user > > data to be associated with a virtual directory. You probably want > > something like this (untested): > > > > #if UPNP_VERSION >= 10803 > > rc = UpnpAddVirtualDir("/upnp", NULL, NULL); > > #else > > rc = UpnpAddVirtualDir("/upnp"); > > #endif > > This is unfortunate and I wonder if that can be smoothend with a cpp > macro like > > #define UpnpAddVirtualDir(a) UpnpAddVirtualDir((a), NULL, NULL) > > defined in libupnp's headers. I didn't test this, maybe this results in > compiler warnings? Alternatively symbol versioning might help (if not > considered too heavy). > > I wonder about the state of gmrender-resurrect and if it's still in the > way to bump libupnp-dev to the upnp-1.8 series in Debian. Tobias, please > tell if you need help here. Sorry, I didn't find time yet to investigate, but a quick check showed that there are more tweaks needed. I'll try to work on it in the next few days. > Best regards > Uwe -- tobi
Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8
Hello, [adding Marcelo as upstream maintainer to Cc: for the UpnpAddVirtualDir problem] On Mon, Dec 18, 2017 at 02:26:57PM +, James Cowgill wrote: > On 18/12/17 09:30, Sebastian Ramacher wrote: > > On 2017-12-18 09:48:57, Tobias Frost wrote: > >> Am 12. Dezember 2017 22:08:24 MEZ schrieb Sebastian Ramacher > >> : > >>> | upnp_device.c: In function 'handle_subscription_request': > >>> | upnp_device.c:165:12: error: dereferencing pointer to incomplete type > >>> 'struct Upnp_Subscription_Request' > >>> | sr_event->ServiceId, sr_event->UDN); > >>> | ^~ > >>> | upnp_device.c: At top level: > >>> | upnp_device.c:243:17: warning: 'struct Upnp_State_Var_Request' > >>> declared inside parameter list will not be visible outside of this > >>> definition or declaration > >>> | struct Upnp_State_Var_Request *var_event) { > >>> | ^~ > >>> | upnp_device.c: In function 'handle_var_request': > >>> | upnp_device.c:245:18: error: dereferencing pointer to incomplete type > >>> 'struct Upnp_State_Var_Request' > >>> | var_event->ServiceID); > >>> | ^~ > >>> | upnp_device.c: In function 'initialize_device': > >>> | upnp_device.c:433:7: error: too few arguments to function > >>> 'UpnpAddVirtualDir' > >>> | rc = UpnpAddVirtualDir("/upnp"); > > > > Uwe, James, can you help with that? > > pupnp 1.8.3 changed the signature of UpnpAddVirtualDir to allow user > data to be associated with a virtual directory. You probably want > something like this (untested): > > #if UPNP_VERSION >= 10803 > rc = UpnpAddVirtualDir("/upnp", NULL, NULL); > #else > rc = UpnpAddVirtualDir("/upnp"); > #endif This is unfortunate and I wonder if that can be smoothend with a cpp macro like #define UpnpAddVirtualDir(a) UpnpAddVirtualDir((a), NULL, NULL) defined in libupnp's headers. I didn't test this, maybe this results in compiler warnings? Alternatively symbol versioning might help (if not considered too heavy). I wonder about the state of gmrender-resurrect and if it's still in the way to bump libupnp-dev to the upnp-1.8 series in Debian. Tobias, please tell if you need help here. Best regards Uwe signature.asc Description: PGP signature
Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8
Hi, On 18/12/17 09:30, Sebastian Ramacher wrote: > On 2017-12-18 09:48:57, Tobias Frost wrote: >> Am 12. Dezember 2017 22:08:24 MEZ schrieb Sebastian Ramacher >> : >>> | upnp_device.c: In function 'handle_subscription_request': >>> | upnp_device.c:165:12: error: dereferencing pointer to incomplete type >>> 'struct Upnp_Subscription_Request' >>> | sr_event->ServiceId, sr_event->UDN); >>> | ^~ >>> | upnp_device.c: At top level: >>> | upnp_device.c:243:17: warning: 'struct Upnp_State_Var_Request' >>> declared inside parameter list will not be visible outside of this >>> definition or declaration >>> | struct Upnp_State_Var_Request *var_event) { >>> | ^~ >>> | upnp_device.c: In function 'handle_var_request': >>> | upnp_device.c:245:18: error: dereferencing pointer to incomplete type >>> 'struct Upnp_State_Var_Request' >>> | var_event->ServiceID); >>> | ^~ >>> | upnp_device.c: In function 'initialize_device': >>> | upnp_device.c:433:7: error: too few arguments to function >>> 'UpnpAddVirtualDir' >>> | rc = UpnpAddVirtualDir("/upnp"); > > Uwe, James, can you help with that? pupnp 1.8.3 changed the signature of UpnpAddVirtualDir to allow user data to be associated with a virtual directory. You probably want something like this (untested): #if UPNP_VERSION >= 10803 rc = UpnpAddVirtualDir("/upnp", NULL, NULL); #else rc = UpnpAddVirtualDir("/upnp"); #endif Related: https://github.com/mrjimenez/pupnp/issues/57 James signature.asc Description: OpenPGP digital signature
Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8
Hi On 2017-12-18 09:48:57, Tobias Frost wrote: > Am 12. Dezember 2017 22:08:24 MEZ schrieb Sebastian Ramacher > : > >Source: gmrender-resurrect > >Version: 0.0.7~git20170910+repack-1 > >Severity: important > >Tags: sid buster > > > >gmrender-resurrect FTBFS against upnp 1.8 (available in experimental): > >| gcc -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/glib-2.0 > >-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread > >-I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 > >-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread > >-I/usr/include/upnp -DPKG_DATADIR=\"/usr/share/gmediarender\" > >-Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 > >-fdebug-prefix-map=/<>/gmrender-resurrect-0.0.7~git20170910+repack=. > >-fstack-protector-strong -Wformat -Werror=format-security -Wall > >-Wpointer-arith -Wmissing-prototypes -Wmissing-declarations > >-Wwrite-strings -c -o logging.o logging.c > >| upnp_device.c: In function 'upnp_add_response': > >| upnp_device.c:75:46: error: dereferencing pointer to incomplete type > >'struct Upnp_Action_Request' > >| rc = UpnpAddToActionResponse(&event->request->ActionResult, In 1.8 you'll need to use functions to get access to those values now. 1.6.24 introduced some compat macros for an easier transition: https://sources.debian.org/src/libupnp/1:1.6.24-2/upnp/inc/upnp.h/#L618 To prepare for 1.8 I'd B-D >= 1.6.24 and simply use the new functions. > >| ^~ > >| upnp_device.c: At top level: > >| upnp_device.c:156:47: warning: 'struct Upnp_Subscription_Request' > >declared inside parameter list will not be visible outside of this > >definition or declaration > >| struct > >Upnp_Subscription_Request > >| > >^ This is now UpnpSubscriptionRequest. 1.6.24 has compat typedefs. > >| upnp_device.c: In function 'handle_subscription_request': > >| upnp_device.c:165:12: error: dereferencing pointer to incomplete type > >'struct Upnp_Subscription_Request' > >| sr_event->ServiceId, sr_event->UDN); > >| ^~ > >| upnp_device.c: At top level: > >| upnp_device.c:243:17: warning: 'struct Upnp_State_Var_Request' > >declared inside parameter list will not be visible outside of this > >definition or declaration > >| struct Upnp_State_Var_Request *var_event) { > >| ^~ > >| upnp_device.c: In function 'handle_var_request': > >| upnp_device.c:245:18: error: dereferencing pointer to incomplete type > >'struct Upnp_State_Var_Request' > >| var_event->ServiceID); > >| ^~ > >| upnp_device.c: In function 'initialize_device': > >| upnp_device.c:433:7: error: too few arguments to function > >'UpnpAddVirtualDir' > >| rc = UpnpAddVirtualDir("/upnp"); Uwe, James, can you help with that? > >|^ > >| In file included from upnp_device.c:41:0: > >| /usr/include/upnp/upnp.h:2741:17: note: declared here > >| EXPORT_SPEC int UpnpAddVirtualDir( > >| ^ > >| upnp_device.c:443:10: warning: passing argument 5 of > >'UpnpRegisterRootDevice2' from incompatible pointer type > >[-Wincompatible-pointer-types] > >| &event_handler, result_device, > >| ^ > >| In file included from upnp_device.c:41:0: > >| /usr/include/upnp/upnp.h:800:17: note: expected 'Upnp_FunPtr {aka int > >(*)(enum Upnp_EventType_e, const void *, void *)}' but argument is of > >type 'int (*)(Upnp_EventType, void *, void *) {aka int (*)(enum > >Upnp_EventType_e, void *, void *)}' > >| EXPORT_SPEC int UpnpRegisterRootDevice2( > >| ^~~ > >| Makefile:396: recipe for target 'upnp_device.o' failed > >| make[3]: *** [upnp_device.o] Error 1 > >| make[3]: *** Waiting for unfinished jobs > >| webserver.c:145:60: warning: 'struct File_Info' declared inside > >parameter list will not be visible outside of this definition or > >declaration > >| static int webserver_get_info(const char *filename, struct File_Info > >*info) > >| ^ > >| webserver.c: In function 'webserver_get_info': > >| webserver.c:151:8: error: dereferencing pointer to incomplete type > >'struct File_Info' > >| info->file_length = virtfile->len; > >| ^~ > >| webserver.c: In function 'webserver_register_callbacks': > >| webserver.c:292:41: warning: passing argument 1 of > >'UpnpVirtualDir_set_GetInfoCallback' from incompatible pointer type > >[-Wincompatible-pointer-types] > >| (UpnpVirtualDir_set_GetInfoCallback(webserver_get_info) == > >UPNP_E_SUCCESS > >| ^~ > >| In file included from webserver.c:38:0: > >| /usr/include/upnp/upnp.h:2590:17: note: expected 'VDCallback_GetInfo > >{aka int (*)(const char *, struct s_UpnpFileInfo *, const void *)}' but > >argument is of type 'int (*)(const char *, s
Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8
Am 12. Dezember 2017 22:08:24 MEZ schrieb Sebastian Ramacher : >Source: gmrender-resurrect >Version: 0.0.7~git20170910+repack-1 >Severity: important >Tags: sid buster > >gmrender-resurrect FTBFS against upnp 1.8 (available in experimental): >| gcc -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/glib-2.0 >-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread >-I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 >-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread >-I/usr/include/upnp -DPKG_DATADIR=\"/usr/share/gmediarender\" >-Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 >-fdebug-prefix-map=/<>/gmrender-resurrect-0.0.7~git20170910+repack=. >-fstack-protector-strong -Wformat -Werror=format-security -Wall >-Wpointer-arith -Wmissing-prototypes -Wmissing-declarations >-Wwrite-strings -c -o logging.o logging.c >| upnp_device.c: In function 'upnp_add_response': >| upnp_device.c:75:46: error: dereferencing pointer to incomplete type >'struct Upnp_Action_Request' >| rc = UpnpAddToActionResponse(&event->request->ActionResult, >| ^~ >| upnp_device.c: At top level: >| upnp_device.c:156:47: warning: 'struct Upnp_Subscription_Request' >declared inside parameter list will not be visible outside of this >definition or declaration >| struct >Upnp_Subscription_Request >| >^ >| upnp_device.c: In function 'handle_subscription_request': >| upnp_device.c:165:12: error: dereferencing pointer to incomplete type >'struct Upnp_Subscription_Request' >| sr_event->ServiceId, sr_event->UDN); >| ^~ >| upnp_device.c: At top level: >| upnp_device.c:243:17: warning: 'struct Upnp_State_Var_Request' >declared inside parameter list will not be visible outside of this >definition or declaration >| struct Upnp_State_Var_Request *var_event) { >| ^~ >| upnp_device.c: In function 'handle_var_request': >| upnp_device.c:245:18: error: dereferencing pointer to incomplete type >'struct Upnp_State_Var_Request' >| var_event->ServiceID); >| ^~ >| upnp_device.c: In function 'initialize_device': >| upnp_device.c:433:7: error: too few arguments to function >'UpnpAddVirtualDir' >| rc = UpnpAddVirtualDir("/upnp"); >|^ >| In file included from upnp_device.c:41:0: >| /usr/include/upnp/upnp.h:2741:17: note: declared here >| EXPORT_SPEC int UpnpAddVirtualDir( >| ^ >| upnp_device.c:443:10: warning: passing argument 5 of >'UpnpRegisterRootDevice2' from incompatible pointer type >[-Wincompatible-pointer-types] >| &event_handler, result_device, >| ^ >| In file included from upnp_device.c:41:0: >| /usr/include/upnp/upnp.h:800:17: note: expected 'Upnp_FunPtr {aka int >(*)(enum Upnp_EventType_e, const void *, void *)}' but argument is of >type 'int (*)(Upnp_EventType, void *, void *) {aka int (*)(enum >Upnp_EventType_e, void *, void *)}' >| EXPORT_SPEC int UpnpRegisterRootDevice2( >| ^~~ >| Makefile:396: recipe for target 'upnp_device.o' failed >| make[3]: *** [upnp_device.o] Error 1 >| make[3]: *** Waiting for unfinished jobs >| webserver.c:145:60: warning: 'struct File_Info' declared inside >parameter list will not be visible outside of this definition or >declaration >| static int webserver_get_info(const char *filename, struct File_Info >*info) >| ^ >| webserver.c: In function 'webserver_get_info': >| webserver.c:151:8: error: dereferencing pointer to incomplete type >'struct File_Info' >| info->file_length = virtfile->len; >| ^~ >| webserver.c: In function 'webserver_register_callbacks': >| webserver.c:292:41: warning: passing argument 1 of >'UpnpVirtualDir_set_GetInfoCallback' from incompatible pointer type >[-Wincompatible-pointer-types] >| (UpnpVirtualDir_set_GetInfoCallback(webserver_get_info) == >UPNP_E_SUCCESS >| ^~ >| In file included from webserver.c:38:0: >| /usr/include/upnp/upnp.h:2590:17: note: expected 'VDCallback_GetInfo >{aka int (*)(const char *, struct s_UpnpFileInfo *, const void *)}' but >argument is of type 'int (*)(const char *, struct File_Info *)' >| EXPORT_SPEC int >UpnpVirtualDir_set_GetInfoCallback(VDCallback_GetInfo callback); >| ^~ >| webserver.c:293:41: warning: passing argument 1 of >'UpnpVirtualDir_set_OpenCallback' from incompatible pointer type >[-Wincompatible-pointer-types] >| && UpnpVirtualDir_set_OpenCallback(webserver_open) == >UPNP_E_SUCCESS >| ^~ >| In file included from webserver.c:38:0: >| /usr/include/upnp/upnp.h:2612:17: note: expected 'VDCallback_Open >{aka void * (*)(const char *, enum UpnpOpenFileMode, co
Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8
Source: gmrender-resurrect Version: 0.0.7~git20170910+repack-1 Severity: important Tags: sid buster gmrender-resurrect FTBFS against upnp 1.8 (available in experimental): | gcc -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/upnp -DPKG_DATADIR=\"/usr/share/gmediarender\" -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/<>/gmrender-resurrect-0.0.7~git20170910+repack=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -c -o logging.o logging.c | upnp_device.c: In function 'upnp_add_response': | upnp_device.c:75:46: error: dereferencing pointer to incomplete type 'struct Upnp_Action_Request' | rc = UpnpAddToActionResponse(&event->request->ActionResult, | ^~ | upnp_device.c: At top level: | upnp_device.c:156:47: warning: 'struct Upnp_Subscription_Request' declared inside parameter list will not be visible outside of this definition or declaration | struct Upnp_Subscription_Request |^ | upnp_device.c: In function 'handle_subscription_request': | upnp_device.c:165:12: error: dereferencing pointer to incomplete type 'struct Upnp_Subscription_Request' | sr_event->ServiceId, sr_event->UDN); | ^~ | upnp_device.c: At top level: | upnp_device.c:243:17: warning: 'struct Upnp_State_Var_Request' declared inside parameter list will not be visible outside of this definition or declaration | struct Upnp_State_Var_Request *var_event) { | ^~ | upnp_device.c: In function 'handle_var_request': | upnp_device.c:245:18: error: dereferencing pointer to incomplete type 'struct Upnp_State_Var_Request' | var_event->ServiceID); | ^~ | upnp_device.c: In function 'initialize_device': | upnp_device.c:433:7: error: too few arguments to function 'UpnpAddVirtualDir' | rc = UpnpAddVirtualDir("/upnp"); |^ | In file included from upnp_device.c:41:0: | /usr/include/upnp/upnp.h:2741:17: note: declared here | EXPORT_SPEC int UpnpAddVirtualDir( | ^ | upnp_device.c:443:10: warning: passing argument 5 of 'UpnpRegisterRootDevice2' from incompatible pointer type [-Wincompatible-pointer-types] | &event_handler, result_device, | ^ | In file included from upnp_device.c:41:0: | /usr/include/upnp/upnp.h:800:17: note: expected 'Upnp_FunPtr {aka int (*)(enum Upnp_EventType_e, const void *, void *)}' but argument is of type 'int (*)(Upnp_EventType, void *, void *) {aka int (*)(enum Upnp_EventType_e, void *, void *)}' | EXPORT_SPEC int UpnpRegisterRootDevice2( | ^~~ | Makefile:396: recipe for target 'upnp_device.o' failed | make[3]: *** [upnp_device.o] Error 1 | make[3]: *** Waiting for unfinished jobs | webserver.c:145:60: warning: 'struct File_Info' declared inside parameter list will not be visible outside of this definition or declaration | static int webserver_get_info(const char *filename, struct File_Info *info) | ^ | webserver.c: In function 'webserver_get_info': | webserver.c:151:8: error: dereferencing pointer to incomplete type 'struct File_Info' | info->file_length = virtfile->len; | ^~ | webserver.c: In function 'webserver_register_callbacks': | webserver.c:292:41: warning: passing argument 1 of 'UpnpVirtualDir_set_GetInfoCallback' from incompatible pointer type [-Wincompatible-pointer-types] | (UpnpVirtualDir_set_GetInfoCallback(webserver_get_info) == UPNP_E_SUCCESS | ^~ | In file included from webserver.c:38:0: | /usr/include/upnp/upnp.h:2590:17: note: expected 'VDCallback_GetInfo {aka int (*)(const char *, struct s_UpnpFileInfo *, const void *)}' but argument is of type 'int (*)(const char *, struct File_Info *)' | EXPORT_SPEC int UpnpVirtualDir_set_GetInfoCallback(VDCallback_GetInfo callback); | ^~ | webserver.c:293:41: warning: passing argument 1 of 'UpnpVirtualDir_set_OpenCallback' from incompatible pointer type [-Wincompatible-pointer-types] | && UpnpVirtualDir_set_OpenCallback(webserver_open) == UPNP_E_SUCCESS | ^~ | In file included from webserver.c:38:0: | /usr/include/upnp/upnp.h:2612:17: note: expected 'VDCallback_Open {aka void * (*)(const char *, enum UpnpOpenFileMode, const void *)}' but argument is of type 'void * (*)(const char *, enum UpnpOpenFileMode)' | EXPORT_SPEC int UpnpVirtualDir_set_OpenCallb