hzeller / gmrender-resurrect

Resource efficient UPnP/DLNA renderer, optimal for Raspberry Pi, CuBox or a general MediaServer. Fork of GMediaRenderer to add some features to make it usable.
GNU General Public License v2.0
832 stars 202 forks source link

Unable to compile #176

Closed wb9688 closed 4 years ago

wb9688 commented 5 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:

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
whyman commented 5 years ago

You need to apply a patch to make it build with libupnp 1.8, see: https://github.com/hzeller/gmrender-resurrect/pull/173