intel / dleyna-renderer

dleyna-renderer is a library for implementing services that allow clients to discover and manipulate Digital Media Renderers. An implementation of such a service for linux is also included
https://01.org/dleyna/
GNU Lesser General Public License v2.1
16 stars 19 forks source link

0.6.0: does not build against gupnp 1.2 #166

Open kloczek opened 5 years ago

kloczek commented 5 years ago
[tkloczko@domek dleyna-renderer-0.6.0]$ make
make  all-recursive
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/dleyna-renderer-0.6.0'
Making all in libdleyna/renderer
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/dleyna-renderer-0.6.0/libdleyna/renderer'
/bin/sh ../../libtool  --tag=CC   --mode=link gcc -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -I/usr/include/dleyna-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gupnp-1.2 -I/usr/include/libsoup-2.4 -I/usr/include/libxml2  -I/usr/include/gssdp-1.2  -I/usr/include/gupnp-1.2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libsoup-2.4 -I/usr/include/libxml2  -I/usr/include/gupnp-av-1.0  -I/usr/include/gupnp-dlna-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread  -I/usr/include/libsoup-2.4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -include config.h -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto -Os -Wno-format-extra-args -Wl,--no-undefined -version-info 1:3:0 -no-undefined -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto -fuse-linker-plugin -o libdleyna-renderer-1.0.la -rpath /usr/lib64/dleyna-renderer  async.lo device.lo host-service.lo manager.lo server.lo task.lo upnp.lo -lglib-2.0  -lgio-2.0 -lgobject-2.0 -lglib-2.0  -ldleyna-core-1.0 -Wl,--export-dynamic -pthread -lgmodule-2.0 -lgupnp-1.2 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lxml2  -lgssdp-1.2  -lgupnp-1.2 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lxml2  -lgupnp-av-1.0  -lgupnp-dlna-2.0 -lgobject-2.0 -lglib-2.0  -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0  -lm 
libtool: link: gcc -shared  -fPIC -DPIC  .libs/async.o .libs/device.o .libs/host-service.o .libs/manager.o .libs/server.o .libs/task.o .libs/upnp.o  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -pthread -pthread -O2 -g -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -flto -Os -Wl,--no-undefined -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -flto -fuse-linker-plugin -Wl,--export-dynamic -pthread   -pthread  -ldleyna-core-1.0 -lgmodule-2.0 -lgssdp-1.2 -lgupnp-1.2 -lxml2 -lgupnp-av-1.0 -lgupnp-dlna-2.0 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lm -Wl,-soname -Wl,libdleyna-renderer-1.0.so.1 -o .libs/libdleyna-renderer-1.0.so.1.0.3
/usr/bin/ld: /tmp/libdleyna-renderer-1.0.so.1.0.3.cSmCjy.ltrans0.ltrans.o: in function `prv_props_update.isra.0':
/home/tkloczko/rpmbuild/BUILD/dleyna-renderer-0.6.0/libdleyna/renderer/device.c:2150: undefined reference to `gupnp_service_info_get_introspection'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/dleyna-renderer-0.6.0/libdleyna/renderer/device.c:2218: undefined reference to `gupnp_service_info_get_introspection'
/usr/bin/ld: /tmp/libdleyna-renderer-1.0.so.1.0.3.cSmCjy.ltrans0.ltrans.o: in function `prv_server_unavailable_cb':
/home/tkloczko/rpmbuild/BUILD/dleyna-renderer-0.6.0/libdleyna/renderer/upnp.c:247: undefined reference to `gupnp_context_get_host_ip'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:502: libdleyna-renderer-1.0.la] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/dleyna-renderer-0.6.0/libdleyna/renderer'
make[1]: *** [Makefile:442: all-recursive] Error 1
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/dleyna-renderer-0.6.0'
LocutusOfBorg commented 5 years ago
        /* TODO: this weak_ref hack is needed as
           gupnp_service_info_get_introspection iterates the main loop.
           This can result in our device getting deleted before this
           function returns.  Ultimately, this code needs to be re-written
           to use gupnp_service_info_get_introspection_async but this cannot
           really be done until GUPnP provides a way to cancel this function. */

Hello, not sure what does it mean, is now GUPnP providing it?

paulie4 commented 5 years ago

This is the commit in the gupnp project that removed the deprecated functions, and was committed way back on Sep 30, 2016. That commit is part of every tag, which goes all the way back to gupnp-1.1.0, so the subject of this ticket should probably say "against gupnp 1.1.0 and later". Also, gupnp_service_info_get_introspection_async_full(), which is cancelable, has existed probably as long as gupnp_service_info_get_introspection_async() has, but maybe there wasn't documentation about it whenever that comment was written.

phako commented 5 years ago

This is basically the result of never finishing https://github.com/intel/dleyna-renderer/issues/104. gupnp_service_info_get_introspection_async_full(), was introduced explicitly for this.

andhe commented 5 years ago

Note: for anyone interested in the patch series needded see PR https://github.com/intel/dleyna-renderer/pull/167

phako commented 5 years ago

Ah. Forgot to put the issue on the PR