pragha-music-player / pragha

Pragha is a Lightweight Music Player for GNU/Linux.
GNU General Public License v3.0
178 stars 35 forks source link

rygel-server version is hardcoded to 2.2 #82

Open LazyKent opened 9 years ago

LazyKent commented 9 years ago

rygel-server version is hardcoded to 2.2 in configure dependencies, and no other rygel versions are accepted.

openSUSE 13.2:

[   42s] now installing cumulated packages
...
[   62s] rygel-devel-0.24.1-1.1                ########################################
...
[   69s] checking for optional package rygel-server-2.2 >= 0.20.0... not found
...
[   70s]    * Share music library on DLNA............(Need rygel-server-2.2 >= 0.20).: no

https://build.opensuse.org/build/X11:xfce/openSUSE_13.2/i586/pragha/_log

openSUSE Factory:

[   97s] now installing cumulated packages
...
[  145s] rygel-devel-0.26.1-1.2                ########################################
...
[  161s] checking for optional package rygel-server-2.2 >= 0.20.0... not found
...
[  165s]    * Share music library on DLNA............(Need rygel-server-2.2 >= 0.20).: no

https://build.opensuse.org/build/X11:xfce/openSUSE_Factory/i586/pragha/_log

openSUSE 13.1:

[   30s] now installing cumulated packages
...
[   47s] rygel-devel-0.20.1-1.1                ########################################
...
[   51s] checking for optional package rygel-server-2.2 >= 0.20.0... not found
...
[   52s]    * Share music library on DLNA............(Need rygel-server-2.2 >= 0.20).: no

https://build.opensuse.org/build/X11:xfce/openSUSE_13.1/i586/pragha/_log

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/25622584-rygel-server-version-is-hardcoded-to-2-2?utm_campaign=plugin&utm_content=tracker%2F352350&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F352350&utm_medium=issues&utm_source=github).
matiasdelellis commented 9 years ago

Hi LazyKent, Rygel changes the library name in each version.. do not know why .. :disappointed:

In my case, fedora 22 has rygel-server-2.6,

Remember that Pragha can be compiled with dependencies to 2 years ago.. this is not a law, but rygel is the only libary that continually changes its name. Suppose that change my dependence.. so, stop allow compiling with other versions when the code works correctly. (I verified that my code works on both rygel-server-2.0 and 2.6..)

Therefore I can not change my dependence if rygel in next update will cause problems again, and to make matters I stop supporting other versions unnecessarily.

GvMariani commented 7 years ago

Having forced grilo-0.3 and rygel-server-2.6 recognition by directly patching configure (see issues #115 and #116), it looks like something is unsupported... Now the build fails while making the dlna plugin:


Making all in dlna make[3]: Entering directory '/tmp/abf/rpmbuild/BUILD/pragha-1.3.3/plugins/dlna' CC libdlna_la-pragha-dlna-plugin.lo pragha-dlna-plugin.c: In function 'pragha_dlna_plugin_append_track': pragha-dlna-plugin.c:87:3: warning: implicit declaration of function 'rygel_music_item_set_artist' [-Wimplicit-function-declaration] rygel_music_item_set_artist (item, pragha_musicobject_get_artist(mobj)); ^ pragha-dlna-plugin.c:88:3: warning: implicit declaration of function 'rygel_music_item_set_album' [-Wimplicit-function-declaration] rygel_music_item_set_album (item, pragha_musicobject_get_album(mobj)); ^ pragha-dlna-plugin.c:95:3: warning: implicit declaration of function 'rygel_media_item_set_mime_type' [-Wimplicit-function-declaration] rygel_media_item_set_mime_type (RYGEL_MEDIA_ITEM (item), content_type); ^ In file included from /usr/include/glib-2.0/gobject/gobject.h:24:0, from /usr/include/glib-2.0/gobject/gbinding.h:29, from /usr/include/glib-2.0/glib-object.h:23, from pragha-dlna-plugin.c:31: pragha-dlna-plugin.c:101:45: error: 'RygelMediaObject {aka struct _RygelMediaObject}' has no member named 'uris' gee_collection_add (GEE_COLLECTION (object->uris), uri); ^ /usr/include/glib-2.0/gobject/gtype.h:2207:57: note: in definition of macro '_G_TYPE_CIC' ((ct) g_type_check_instance_cast ((GTypeInstance) ip, gt)) ^ /usr/include/gee-0.8/gee.h:51:30: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'

define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))

                          ^

pragha-dlna-plugin.c:101:23: note: in expansion of macro 'GEE_COLLECTION' gee_collection_add (GEE_COLLECTION (object->uris), uri);


Perhaps rygel 2.6 is not so supported as you stated...

matiasdelellis commented 7 years ago

Hi @GvMariani

This is proven to work .. :wink: http://pkgs.fedoraproject.org/cgit/rpms/pragha.git/commit/?id=a9915e130fcf0a01e9341ea8e18bf2431a3e058d

GvMariani commented 7 years ago

Hi. I fear the git commit you referenced above does not solve the problem I'm seeing, because it only forces configure to find grilo-0.3... As I stated above, I already managed to directly edit configure to force it to find both grilo-0.3 and rygel 2.6 (patch attached) pragha-1.3.3-fix-finding-grilo-and-rygel.txt, since issue #116 still stands true for me. However once this is done, the build still fails with the error described above...

It looks like that pragha ATM is not really compatible with rygel 2.6:

Bottom line: I fear that pragha 1.3.3 is not so compatible with latest rygel sources as you stated above.

matiasdelellis commented 7 years ago

Hi @GvMariani

I fear the git commit you referenced above does not solve the problem I'm seeing, because it only forces configure to find grilo-0.3...

You are right but you can use the same logic to make it work, and the result is the same as your patch ..

It looks like that pragha ATM is not really compatible with rygel 2.6:

the 3 warnings about implicit definition of functions named rygel-* look suspiciously as a consequence of a removing (or a changing) of their definition from the rygel sources;
the actual error comes from a reference to a missing field in a RygelXXXXX structure: for this one I checked the rygel sources and found that commit:
2179c5273e38f0ef858eadb76ee77839d7e2687c
This changed the field "uris" from public to private to the RygelMediaObject struct, rendering it actually inaccessible from pragha code...

Ok.. This really needs changes. I'll investigate next week ..

Thanks for all, Regards, Matias