Closed wb9688 closed 4 years ago
When I try to compile it on Debian Unstable it now gives the following error:
make all-recursive make[1]: Entering directory '/home/wb9688/gmrender-resurrect' Making all in src make[2]: Entering directory '/home/wb9688/gmrender-resurrect/src' (echo "#define GM_COMPILE_VERSION \"2018-08-18_a7b0b1b\"" > git-version.h-new; \ cmp -s git-version.h git-version.h-new || cp git-version.h-new git-version.h; \ rm git-version.h-new) 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT upnp_device.o -MD -MP -MF .deps/upnp_device.Tpo -c -o upnp_device.o upnp_device.c 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT webserver.o -MD -MP -MF .deps/webserver.Tpo -c -o webserver.o webserver.c 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT output.o -MD -MP -MF .deps/output.Tpo -c -o output.o output.c 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT logging.o -MD -MP -MF .deps/logging.Tpo -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, ^~ mv -f .deps/logging.Tpo .deps/logging.Po 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); ^~ 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’: 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) { ^~~~~~~~~~~~~~~~~~~~~~ webserver.c:151:8: error: dereferencing pointer to incomplete type ‘struct File_Info’ info->file_length = virtfile->len; ^~ 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); ^~ 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 ^~~~~~~~~~~~~~~~~~ upnp_device.c: In function ‘initialize_device’: 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT xmldoc.o -MD -MP -MF .deps/xmldoc.Tpo -c -o xmldoc.o xmldoc.c upnp_device.c:444:7: error: too few arguments to function ‘UpnpAddVirtualDir’ rc = UpnpAddVirtualDir("/upnp"); ^~~~~~~~~~~~~~~~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2589:71: 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); ~~~~~~~~~~~~~~~~~~~^~~~~~~~ In file included from upnp_device.c:41: /usr/include/upnp/upnp.h:2740:17: note: declared here EXPORT_SPEC int UpnpAddVirtualDir( ^~~~~~~~~~~~~~~~~ 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: /usr/include/upnp/upnp.h:2611:65: 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_OpenCallback(VDCallback_Open callback); ~~~~~~~~~~~~~~~~^~~~~~~~ upnp_device.c:454:10: warning: passing argument 5 of ‘UpnpRegisterRootDevice2’ from incompatible pointer type [-Wincompatible-pointer-types] &event_handler, result_device, ^~~~~~~~~~~~~~ webserver.c:294:41: warning: passing argument 1 of ‘UpnpVirtualDir_set_ReadCallback’ from incompatible pointer type [-Wincompatible-pointer-types] && UpnpVirtualDir_set_ReadCallback(webserver_read) == UPNP_E_SUCCESS ^~~~~~~~~~~~~~ In file included from upnp_device.c:41: /usr/include/upnp/upnp.h:813:14: 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 *)’} Upnp_FunPtr Fun, ~~~~~~~~~~~~^~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2634:65: note: expected ‘VDCallback_Read’ {aka ‘int (*)(void *, char *, long unsigned int, const void *)’} but argument is of type ‘int (*)(void *, char *, size_t)’ {aka ‘int (*)(void *, char *, long unsigned int)’} EXPORT_SPEC int UpnpVirtualDir_set_ReadCallback(VDCallback_Read callback); ~~~~~~~~~~~~~~~~^~~~~~~~ webserver.c:295:42: warning: passing argument 1 of ‘UpnpVirtualDir_set_WriteCallback’ from incompatible pointer type [-Wincompatible-pointer-types] && UpnpVirtualDir_set_WriteCallback(webserver_write) == UPNP_E_SUCCESS ^~~~~~~~~~~~~~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2657:67: note: expected ‘VDCallback_Write’ {aka ‘int (*)(void *, char *, long unsigned int, const void *)’} but argument is of type ‘int (*)(void *, char *, size_t)’ {aka ‘int (*)(void *, char *, long unsigned int)’} EXPORT_SPEC int UpnpVirtualDir_set_WriteCallback(VDCallback_Write callback); ~~~~~~~~~~~~~~~~~^~~~~~~~ webserver.c:296:41: warning: passing argument 1 of ‘UpnpVirtualDir_set_SeekCallback’ from incompatible pointer type [-Wincompatible-pointer-types] && UpnpVirtualDir_set_SeekCallback(webserver_seek) == UPNP_E_SUCCESS ^~~~~~~~~~~~~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2685:65: note: expected ‘VDCallback_Seek’ {aka ‘int (*)(void *, long int, int, const void *)’} but argument is of type ‘int (*)(void *, off_t, int)’ {aka ‘int (*)(void *, long int, int)’} EXPORT_SPEC int UpnpVirtualDir_set_SeekCallback(VDCallback_Seek callback); ~~~~~~~~~~~~~~~~^~~~~~~~ webserver.c:297:42: warning: passing argument 1 of ‘UpnpVirtualDir_set_CloseCallback’ from incompatible pointer type [-Wincompatible-pointer-types] && UpnpVirtualDir_set_CloseCallback(webserver_close) == UPNP_E_SUCCESS); ^~~~~~~~~~~~~~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2704:67: note: expected ‘VDCallback_Close’ {aka ‘int (*)(void *, const void *)’} but argument is of type ‘int (*)(void *)’ EXPORT_SPEC int UpnpVirtualDir_set_CloseCallback(VDCallback_Close callback); ~~~~~~~~~~~~~~~~~^~~~~~~~ make[2]: *** [Makefile:406: upnp_device.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [Makefile:406: webserver.o] Error 1 mv -f .deps/output.Tpo .deps/output.Po mv -f .deps/xmldoc.Tpo .deps/xmldoc.Po make[2]: Leaving directory '/home/wb9688/gmrender-resurrect/src' make[1]: *** [Makefile:366: all-recursive] Error 1 make[1]: Leaving directory '/home/wb9688/gmrender-resurrect' make: *** [Makefile:307: all] Error 2
Edit: after reinstalling libupnp-dev, it gives the following error:
libupnp-dev
make all-recursive make[1]: Entering directory '/home/wb9688/gmrender-resurrect' Making all in src make[2]: Entering directory '/home/wb9688/gmrender-resurrect/src' (echo "#define GM_COMPILE_VERSION \"2018-08-18_a7b0b1b\"" > git-version.h-new; \ cmp -s git-version.h git-version.h-new || cp git-version.h-new git-version.h; \ rm git-version.h-new) 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT upnp_device.o -MD -MP -MF .deps/upnp_device.Tpo -c -o upnp_device.o upnp_device.c 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT webserver.o -MD -MP -MF .deps/webserver.Tpo -c -o webserver.o webserver.c 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT xmlescape.o -MD -MP -MF .deps/xmlescape.Tpo -c -o xmlescape.o xmlescape.c 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT output_gstreamer.o -MD -MP -MF .deps/output_gstreamer.Tpo -c -o output_gstreamer.o output_gstreamer.c mv -f .deps/xmlescape.Tpo .deps/xmlescape.Po 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/local/share/gmediarender\" -g -O2 -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c 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: /usr/include/upnp/upnp.h:2589:71: 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: /usr/include/upnp/upnp.h:2611:65: 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_OpenCallback(VDCallback_Open callback); ~~~~~~~~~~~~~~~~^~~~~~~~ webserver.c:294:41: warning: passing argument 1 of ‘UpnpVirtualDir_set_ReadCallback’ from incompatible pointer type [-Wincompatible-pointer-types] && UpnpVirtualDir_set_ReadCallback(webserver_read) == UPNP_E_SUCCESS ^~~~~~~~~~~~~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2634:65: note: expected ‘VDCallback_Read’ {aka ‘int (*)(void *, char *, long unsigned int, const void *)’} but argument is of type ‘int (*)(void *, char *, size_t)’ {aka ‘int (*)(void *, char *, long unsigned int)’} EXPORT_SPEC int UpnpVirtualDir_set_ReadCallback(VDCallback_Read callback); ~~~~~~~~~~~~~~~~^~~~~~~~ webserver.c:295:42: warning: passing argument 1 of ‘UpnpVirtualDir_set_WriteCallback’ from incompatible pointer type [-Wincompatible-pointer-types] && UpnpVirtualDir_set_WriteCallback(webserver_write) == UPNP_E_SUCCESS ^~~~~~~~~~~~~~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2657:67: note: expected ‘VDCallback_Write’ {aka ‘int (*)(void *, char *, long unsigned int, const void *)’} but argument is of type ‘int (*)(void *, char *, size_t)’ {aka ‘int (*)(void *, char *, long unsigned int)’} EXPORT_SPEC int UpnpVirtualDir_set_WriteCallback(VDCallback_Write callback); ~~~~~~~~~~~~~~~~~^~~~~~~~ webserver.c:296:41: warning: passing argument 1 of ‘UpnpVirtualDir_set_SeekCallback’ from incompatible pointer type [-Wincompatible-pointer-types] && UpnpVirtualDir_set_SeekCallback(webserver_seek) == UPNP_E_SUCCESS ^~~~~~~~~~~~~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2685:65: note: expected ‘VDCallback_Seek’ {aka ‘int (*)(void *, long int, int, const void *)’} but argument is of type ‘int (*)(void *, off_t, int)’ {aka ‘int (*)(void *, long int, int)’} EXPORT_SPEC int UpnpVirtualDir_set_SeekCallback(VDCallback_Seek callback); ~~~~~~~~~~~~~~~~^~~~~~~~ webserver.c:297:42: warning: passing argument 1 of ‘UpnpVirtualDir_set_CloseCallback’ from incompatible pointer type [-Wincompatible-pointer-types] && UpnpVirtualDir_set_CloseCallback(webserver_close) == UPNP_E_SUCCESS); ^~~~~~~~~~~~~~~ In file included from webserver.c:38: /usr/include/upnp/upnp.h:2704:67: note: expected ‘VDCallback_Close’ {aka ‘int (*)(void *, const void *)’} but argument is of type ‘int (*)(void *)’ EXPORT_SPEC int UpnpVirtualDir_set_CloseCallback(VDCallback_Close callback); ~~~~~~~~~~~~~~~~~^~~~~~~~ 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); ^~ make[2]: *** [Makefile:406: webserver.o] Error 1 make[2]: *** Waiting for unfinished jobs.... 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:444:7: error: too few arguments to function ‘UpnpAddVirtualDir’ rc = UpnpAddVirtualDir("/upnp"); ^~~~~~~~~~~~~~~~~ In file included from upnp_device.c:41: /usr/include/upnp/upnp.h:2740:17: note: declared here EXPORT_SPEC int UpnpAddVirtualDir( ^~~~~~~~~~~~~~~~~ upnp_device.c:454: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: /usr/include/upnp/upnp.h:813:14: 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 *)’} Upnp_FunPtr Fun, ~~~~~~~~~~~~^~~ make[2]: *** [Makefile:406: upnp_device.o] Error 1 mv -f .deps/main.Tpo .deps/main.Po mv -f .deps/output_gstreamer.Tpo .deps/output_gstreamer.Po make[2]: Leaving directory '/home/wb9688/gmrender-resurrect/src' make[1]: *** [Makefile:366: all-recursive] Error 1 make[1]: Leaving directory '/home/wb9688/gmrender-resurrect' make: *** [Makefile:307: all] Error 2
You need to apply a patch to make it build with libupnp 1.8, see: https://github.com/hzeller/gmrender-resurrect/pull/173
When I try to compile it on Debian Unstable it now gives the following error:
Edit: after reinstalling
libupnp-dev
, it gives the following error: