Subject: Re: Rygel created UPnP stream help please
Date: Mon, 11 Mar 2013 19:09:50 +1300
> error: Package `gupnp-dlna-2.0' not found in specified Vala API
> directories or GObject-Introspection GIR directories
see below for gupnp-dlna. Also this looks like valac is not pointing to
valac-0.18 (because of the missing gstreamer-* things).
Anyhow - I was missing gobject-introspection.pc that is in -devel package, and gupnp-dlna was silently skipping the whole thing with no indication anything is missing.... great!
After spending two days installing, uninstalling and recompiling, and that is, just to be able to compile Rygel, I am now at another compile error; I have decided this time to document my progress, as a reference and a sanity check (and as it turned out, as a warning to others that may wish to compile Rygel).
/usr/bin/ld: /usr/src/gupnp-dlna/gupnp-dlna-0.9.3/libgupnp-dlna/tmp-introspectYyb9P9/GUPnPDLNA-2.0.o: undefined reference to symbol 'g_module_open'
/usr/bin/ld: note: 'g_module_open' is defined in DSO /usr/lib/libgmodule-2.0.so.0 so try adding it to the linker command line /usr/lib/libgmodule-2.0.so.0: could not read symbols: Invalid operation collect2: ld returned 1 exit status
linking of temporary binary failed: Command '['/bin/sh', '../libtool', '--mode=link', '--tag=CC', '--silent', 'gcc', '-o', '/usr/src/gupnp-dlna/gupnp-dlna-0.9.3/libgupnp-dlna/tmp-introspectYyb9P9/GUPnPDLNA-2.0', '-export-dynamic', '-L.', 'libgupnp-dlna-2.0.la', '-pthread', '-lgio-2.0', '-lgobject-2.0', '-lgthread-2.0', '-lrt', '-lglib-2.0', '/usr/src/gupnp-dlna/gupnp-dlna-0.9.3/libgupnp-dlna/tmp-introspectYyb9P9/GUPnPDLNA-2.0.o']' returned non-zero exit status 1
make: *** [GUPnPDLNA-2.0.gir] Error 1
Same error in gupnp-dlna-0.9.4 and gupnp-dlna-0.10.0
After another few hours, this was fixed with: make distclean
libtoolize --force autoreconf -vif
After which I arrived to:
With gupnp-dlna-0.10.0: (same with With gupnp-dlna-0.9.4)
** (g-ir-compiler:23903): ERROR **: Invalid typelib for module 'GUPnPDLNA': In directory (Context: ProfileGuesser)): The argument contains invalid characters: 'dlna:(allow-none)(transfer none)'
/bin/sh: line 1: 23903 Trace/breakpoint trap /usr/bin/g-ir-compiler --includedir=.. --includedir=. GUPnPDLNA-2.0.gir -o GUPnPDLNA-2.0.typelib
3 hours later, I found out that
GOBJECT_INTROSPECTION_CHECK([1.31.1])
but my gobject-introspection-1.0.pc was Version: 1.30.0
Not that anything indicated that, it just silently skipped anything remotely related....
So now I had to download/compile gobject-introspection 1.31.22.... Which passed ./configure and failed with
GISCAN Gio-2.0.gir ....
/usr/include/glib-2.0/gio/gpollableoutputstream.h:92: Fatal: Gio: can't find parameter size referenced by parameter buffer of 'pollable_output_stream_write_nonblocking'
So I went back to minimum required 1.31.1 which failed just the same
So I tried latest, 1.35.8, which compiled successfully....
Back in gstreamer-1.0.5, INTROSPECTION_COMPILER='/usr/bin/g-ir-compiler' is finally correct
Gst-1.0.gir builds, installs.
back to gupnp-dlna-0.9.3; make distclean; libtoolize --force; autoreconf -vif; ./configure --prefix=/usr
Making all in vala make[2]: Entering directory `/usr/src/gupnp-dlna/gupnp-dlna-0.9.3/vala'
GEN gupnp-dlna-2.0.stamp GUPnPDLNA-2.0.gir:32.11-32.34: error: expected start element of `parameter' <instance-parameter name="profile" transfer-ownership="none"> ^^^^^^^^^^^^^^^^^^^^^^^^
GUPnPDLNA-2.0.gir:35.11-35.10: error: expected end element of `parameter' </instance-parameter>
... etc etc....
Try same with gupnp-dlna-0.10.0: GISCAN GUPnPDLNAGst-2.0.gir
Couldn't find include 'GstPbutils-1.0.gir' (search path: ['.', 'gir-1.0', '/usr/share/gir-1.0', '/usr/share/gir-1.0', '/usr/share/gir-1.0'])
Same with gupnp-dlna-0.9.4
Found GstPbutils-1.0.gir target in gstreamer/gst-plugins-base-1.0.5/gst-libs/gst/pbutils/Makefile that was compiled without Vala / introspection configured... reconfigure... make.... install... GstPbutils-1.0.gir was *NOT* installed
cd gst-libs/gst/pbutils; make install GstPbutils-1.0.gir was installed to /usr/share/gir-1.0
Back to gupnp-dlna-0.9.4: Making all in vala make[2]: Entering directory `/usr/src/gupnp-dlna/gupnp-dlna-0.9.4/vala'
GEN gupnp-dlna-2.0.stamp GUPnPDLNA-2.0.gir:838.11-838.36: error: expected start element of `parameter' <instance-parameter name="fraction" transfer-ownership="none"> ^^^^^^^^^^^^^^^^^^^^^^^^^^
GUPnPDLNA-2.0.gir:841.11-841.10: error: expected end element of `parameter' </instance-parameter>
Back to rygel-0.17.9: make distclean; libtoolize --force; autoreconf -vif ./configure --prefix=/usr --enable-uninstalled --with-media-engine=gstreamer --without-ui --enable-gst-launch-plugin --disable-tracker-plugin --enable-vala
rygel 0.17.9 ============
Prefix: /usr Source code location: . Compiler: gcc CFLAGS: -g -O2 -w
VALAFLAGS: --target-glib=2.32 uninstalled: yes preferences ui: no Media Engine: gstreamer Plugins: examples: no
tracker: no version: mediathek: no media-export yes external: yes MPRIS2: yes
gst-launch: yes playbin: yes
make.... Fails:
rygel-media-object.vala:197.20-197.41: error: The type name `DIDLLiteFragmentResult' could not be found
internal async DIDLLiteFragmentResult apply_fragments ^^^^^^^^^^^^^^^^^^^^^^ rygel-serializer.vala:32.13-32.27: error: The type name `MediaCollection' could not be found private MediaCollection collection;
^^^^^^^^^^^^^^^ Compilation failed: 2 error(s), 0 warning(s)
Google for "DIDLLiteFragmentResult": 7 results (0.20 seconds)
All in Rygel .
It's now 18:59. On day 3.
Either I'm stupid, or something is seriously wrong with Vala and therefore Rygel.