rhythmbox-0.11.2-3 and libsoup

monipol <[email protected]> Wed, 22 Jul 2009 16:19:19 -0300
Newsgroups gmane.os.apple.fink.gnome
Message-ID <[email protected]>
Rhythmbox fails to build if libsoup2.4.1-ssl is installed, and it  
builds differently depending on whether libsoup2.2.8-ssl is installed.

It's possible to build rhythmbox-0.11.2-3 without libsoup:

$ fink rebuild rhythmbox
(...)
checking for SOUP... no
checking for SOUP... no
checking for uncompress in -lz... yes
checking for MUSICBRAINZ... yes
(...)
dpkg-deb: building package `rhythmbox' in `/sw/fink/10.5/unstable/main/ 
binary-darwin-i386/gnome/rhythmbox_0.11.2-3_darwin-i386.deb'.
(...)
Preparing to replace rhythmbox 0.11.2-3 (using .../ 
rhythmbox_0.11.2-3_darwin-i386.deb) ...
(...)

$ otool -L /sw/bin/rhythmbox | grep soup
$


If libsoup2.2.8-ssl (2.2.105-3) is installed then it links against  
libsoup:

$ grep -i soupuri /sw/include/libsoup-2.2/libsoup/soup-types.h
typedef struct SoupUri               SoupUri;

$ fink rebuild rhythmbox
(...)
checking for SOUP... yes
checking for uncompress in -lz... yes
(...)
dpkg-deb: building package `rhythmbox' in `/sw/fink/10.5/unstable/main/ 
binary-darwin-i386/gnome/rhythmbox_0.11.2-3_darwin-i386.deb'.
(...)
Preparing to replace rhythmbox 0.11.2-3 (using .../ 
rhythmbox_0.11.2-3_darwin-i386.deb) ...
(...)

$ otool -L /sw/bin/rhythmbox | grep soup
	/sw/lib/libsoup-2.2.8.dylib (compatibility version 14.0.0, current  
version 14.0.0)


If libsoup2.4.1-ssl (2.26.3-1) is installed (conflicts/replaces  
libsoup2.2.8-ssl) then rhythmbox fails to build because libsoup  
changed SoupUri to SoupURI (and possibly other differences too):

$ grep -i soupuri /sw/include/libsoup-2.4/libsoup/soup-types.h
typedef struct _SoupURI               SoupURI;

$ fink rebuild rhythmbox
(...)
checking for SOUP... no
checking for SOUP... yes
checking for uncompress in -lz... yes
checking for MUSICBRAINZ... yes
(...)
  gcc -DHAVE_CONFIG_H -I. -I.. -DGNOMELOCALEDIR=\"/sw/share/locale\" - 
DG_LOG_DOMAIN=\"Rhythmbox\" -DSHARE_DIR=\"/sw/share/rhythmbox\" - 
DDATADIR=\"/sw/share\" -I.. -I../widgets -I/sw/include/libsoup-2.4 -I/ 
sw/include/libxml2 -I/sw/include -I/sw/include/glib-2.0 -I/sw/lib/ 
glib-2.0/include -I/sw/include/pango-1.0 -I/sw/lib/fontconfig2/include  
-I/sw/include/freetype2 -I/sw/include -I/sw/include/gtk-2.0 -I/sw/lib/ 
gtk-2.0/include -I/sw/include/atk-1.0 -I/sw/include/cairo -I/sw/ 
include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/include/pixman-1 -I/ 
sw/include/libpng12 -I/sw/include/libgnomeui-2.0 -I/sw/include/ 
libart-2.0 -I/sw/include/gconf/2 -I/sw/include/gnome-keyring-1 -I/sw/ 
include/libgnome-2.0 -I/sw/include/libbonoboui-2.0 -I/sw/include/ 
libgnomecanvas-2.0 -I/sw/include/gnome-vfs-2.0 -I/sw/lib/gnome-vfs2.16/ 
gnome-vfs-2.0/include -I/sw/include/orbit-2.0 -I/sw/include/dbus-1.0 - 
I/sw/lib/dbus-1.0/include -I/sw/include/libbonobo-2.0 -I/sw/include/ 
bonobo-activation-2.0 -I/sw/include/libxml2 -I/sw/include/gail-1.0 -I/ 
sw/include/libglade-2.0 -I/sw/include/gnome-vfs-module-2.0 -I/usr/ 
X11R6/include -I/usr/X11/include -DORBIT2=1 -I/sw/include/ 
gstreamer-0.10 -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/ 
include/libxml2 -I/sw/include -I/sw/include -fno-common -I/sw/lib/ 
pango-ft219/include/pango-1.0 -I/sw/lib/pango-ft219/include -I/sw/lib/ 
freetype219/include/freetype2 -I/sw/lib/freetype219/include -I/sw/lib/ 
fontconfig2/include -I/sw/include -Os -pipe -c rb-proxy-config.c  -fno- 
common -DPIC -o .libs/rb-proxy-config.o
In file included from rb-proxy-config.c:26:
rb-proxy-config.h:69: error: syntax error before '*' token
rb-proxy-config.h:69: warning: data definition has no type or storage  
class
rb-proxy-config.c:235: error: syntax error before '*' token
rb-proxy-config.c: In function 'rb_proxy_config_get_libsoup_uri':
rb-proxy-config.c:238: error: 'SoupUri' undeclared (first use in this  
function)
rb-proxy-config.c:238: error: (Each undeclared identifier is reported  
only once
rb-proxy-config.c:238: error: for each function it appears in.)
rb-proxy-config.c:238: error: 'uri' undeclared (first use in this  
function)
rb-proxy-config.c:243: error: syntax error before ')' token
rb-proxy-config.c:244: error: 'SOUP_PROTOCOL_HTTP' undeclared (first  
use in this function)
make[3]: *** [rb-proxy-config.lo] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
### execution of /var/tmp/tmp.1.x56DOo failed, exit code 2

config.log shows that rhythmbox checks for both libsoup-2.2 and  
libsoup-2.4:

(...)
configure:14118: $PKG_CONFIG --exists --print-errors "libsoup-2.2"
(...)
configure:14197: $PKG_CONFIG --exists --print-errors "libsoup-2.4"
(...)


Cheers,

--
monipol
http://finkers.wordpress.com


------------------------------------------------------------------------------