Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8

2018-10-01 Thread Niels Thykier
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

2018-08-26 Thread Tobias Frost
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

2018-05-20 Thread Tobias Frost
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

2018-05-19 Thread Uwe Kleine-König
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

2017-12-18 Thread James Cowgill
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

2017-12-18 Thread Sebastian Ramacher
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(>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]
> >|   _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 

Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8

2017-12-18 Thread Tobias Frost
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(>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]
>|   _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 

Bug#884246: gmrender-resurrect: FTBFS against upnp 1.8

2017-12-12 Thread 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(>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]
|   _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