Saturday, December 09, 2006

HOWTO: Banshee 0.11.3 on Ubuntu

Update: Banshee 0.13.1 can be installed in Ubuntu 7.10 (Gutsy Gibbon) by running "sudo apt-get install banshee".



Banshee 0.11.3 was released today and features a bunch small new features and bug fixes, but also includes some pretty big performance enhancements. If you're a Banshee user, it's definitely worth upgrading to this new release for the speed improvements alone (switching to your library doesn't take a ridiculously long time anymore.) Since I've already written a HOWTO for Banshee 0.11, I decided to updated it for Banshee 0.11.3. This guide was written for Ubuntu 6.10/Edgy Eft, but there's only one little change necessary for it to work on Ubuntu 6.06/Dapper Drake (which is explained inline below.) On with the installation instructions:

:)

IMPORTANT NOTE:
If you have the QuinnStorm repositories enabled (for Compiz/XGL stuff), you might encounter this compile error: "/bin/grep: can't read /usr/lib/libXrender.la: No such file or directory" or something along those lines. The necessary fix can be found here. (I just ended up removing the "/usr/lib/libXrender.la" part of that line and it fixed it, and I think that's probably a safer route.)

To follow this HOWTO, just punch (ie. copy and paste) the commands listed into a terminal. Good luck!

1. Install prerequisites

First, make sure you have the universe repository enabled. If you're unsure, here's instructions on how to check and enable it.
Next, install the software required to build Banshee:

sudo apt-get build-dep banshee
sudo apt-get install libavahi-cil mono libgconf2.0-cil
sudo apt-get build-dep libipoddevice0
sudo apt-get install libgtop2-7 libgtop2-common libgtop2-dev libsgutils1 libsgutils1-dev
wget \http://banshee-project.org/files/libipoddevice/libipoddevice-0.5.2.tar.gz
wget http://banshee-project.org/files/ipod-sharp/ipod-sharp-0.6.2.tar.gz
tar -xvzf libipoddevice-0.5.2.tar.gz
tar -xvzf ipod-sharp-0.6.2.tar.gz


Note: If you're an Ubuntu 6.06/Dapper Drake user, the above "sudo apt-get install..." line might fail. If it does, try running the following:
sudo apt-get install libsgutils libsgutils-dev
(Note: If this fails, just keep going to with the rest of the HOWTO...)

Now, in order to have iPod support, we're going to install libipoddevice and ipod-sharp:

cd libipoddevice-0.5.2
./configure --prefix=/usr
make
sudo make install
cd ..

cd ipod-sharp-0.6.2
./configure --prefix=/usr --disable-docs
make
sudo make install

(The above iPod steps can be safely left out if you don't need iPod support...)

2. Download Banshee 0.11.3

wget http://banshee-project.org/files/banshee/banshee-0.11.3.tar.gz
wget http://www.banshee-project.org/files/banshee-official\
-plugins/banshee-official-plugins-0.11.3.tar.gz

3. Extract and configure

tar -xvzf banshee-0.11.3.tar.gz
tar -xvzf banshee-official-plugins-0.11.3.tar.gz
cd banshee-0.11.3
./configure --prefix=/usr --enable-avahi --disable-docs

I suggest leaving Avahi enabled here as I did so that DAAP sharing works. (It lets you share your music library with iTunes, Limewire, etc. users, as well as listen to other peoples'.) iPod support should be automatically detected if you followed the iPod steps above.

4. Build and install Banshee

make
sudo make install


5. Configure, build, and install the plugins

cd banshee-official-plugins-0.11.3
./configure --prefix=/usr
make
sudo make install


6. Run Banshee!

Either from the console run "banshee" or launch it from the "Applications->Sound & Video" menu in GNOME.


That's it! I've tested this on Ubuntu 6.10/Edgy Eft machine, but if this doesn't work for you, leave a comment and I can try to help you figure it out. :)

Lastly:
Digg!

30 comments:

Anonymous said...

Sweet, nice tutorial.
liibgtop2 isn't in the repos, though. I think you mean libgtop2-7 and libgtop2-common
Also, I think you mean libsgutils1 and libsgutils1-dev.
Thanks!

Albert said...

Thanks Paul!
Ahh yeah, they changed the package names from Dapper to Edgy, I've updated the guide. :)

Anonymous said...

During step 6, at this command "./configure --prefix=/usr"

I'm getting this error:

"checking for System.Runtime.Remoting.dll... not found
configure: error: missing required Mono Assembly: System.Runtime.Remoting.dll"

Albert said...

Hi anonymous,

It looks like you're missing a mono package. The package you need to install is through Synaptic is "libmono-system-runtime1.0-cil" and/or "libmono-system-runtime2.0-cil".

Give that a shot...

Anonymous said...

Thank you, it worked. I've been wanting to install the latest banshee for a while now.

Unknown said...

Hello, gg...Thx for the tutorial. I was able to compile everything okay, but when I try to start the app, it crashes. Here's what I captured:

joel@baseCamp2go:~/banshee-0.11.3$ banshee

** (/usr/lib/banshee/banshee.exe:32085): WARNING **: The following assembly referenced from /usr/lib/banshee/Banshee.Base.dll could not be loaded:
Assembly: gconf-sharp (assemblyref_index=8)
Version: 2.16.0.0
Public Key: 35e10195dab3c99f
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/usr/lib/banshee).


** (/usr/lib/banshee/banshee.exe:32085): WARNING **: Could not load file or assembly 'gconf-sharp, Version=2.16.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f' or one of its dependencies.

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Stacktrace:

at (wrapper delegate-invoke) System.MulticastDelegate.invoke_void_string[] (string[]) <0x00038>
at (wrapper delegate-invoke) System.MulticastDelegate.invoke_void_string[] (string[]) <0xffffffff>
at Banshee.Gui.CleanRoomStartup.Startup (Banshee.Gui.CleanRoomStartup/StartupInvocationHandler,string[]) <0x000ae>
at Banshee.BansheeEntry.Main (string[]) <0x00038>
at (wrapper runtime-invoke) System.Object.runtime_invoke_void_string[] (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

banshee [0x8159ded]
banshee [0x8124528]
[0xffffe440]
banshee [0x80ae47e]
banshee(mono_class_vtable+0xea) [0x80ae74a]
banshee [0x81258e5]
banshee [0x8138672]
banshee [0x8144426]
banshee [0x8145df1]
banshee [0x8077f82]
[0xb7bf3572]
[0xb7400f37]
[0xb7400259]
[0xb7400063]
banshee(mono_runtime_exec_main+0x62) [0x80b1302]
banshee(mono_runtime_run_main+0x1b9) [0x80b15e9]
banshee(mono_main+0xe41) [0x8058d41]
banshee [0x8057a12]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc) [0xb7d248cc]
banshee [0x8057961]

Debug info from gdb:

Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1211050304 (LWP 32085)]
[New Thread -1220551776 (LWP 32087)]
[New Thread -1214796896 (LWP 32086)]
0xffffe410 in __kernel_vsyscall ()
3 Thread -1214796896 (LWP 32086) 0xffffe410 in __kernel_vsyscall ()
2 Thread -1220551776 (LWP 32087) 0xffffe410 in __kernel_vsyscall ()
1 Thread -1211050304 (LWP 32085) 0xffffe410 in __kernel_vsyscall ()

Thread 3 (Thread -1214796896 (LWP 32086)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7e74bf6 in __nanosleep_nocancel ()
from /lib/tls/i686/cmov/libpthread.so.0
#2 0x08101774 in collection_thread (unused=0x0) at collection.c:34
#3 0xb7e6e504 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#4 0xb7ddc51e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (Thread -1220551776 (LWP 32087)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7e71816 in pthread_cond_wait@@GLIBC_2.3.2 ()
from /lib/tls/i686/cmov/libpthread.so.0
#2 0x08108d8f in timedwait_signal_poll_cond (cond=0xb78e31dc,
mutex=0xb78e31c4, timeout=0x0, alertable=0) at handles.c:1409
#3 0x0810b5af in _wapi_handle_timedwait_signal_handle (handle=0x404,
timeout=0x0, alertable=0) at handles.c:1489
#4 0x0810b62c in _wapi_handle_wait_signal_handle (handle=0x404, alertable=0)
at handles.c:1449
#5 0x0810236f in WaitForSingleObjectEx (handle=0x404, timeout=) at wait.c:200
#6 0x080b405a in finalizer_thread (unused=0x0) at gc.c:816
#7 0x080ab9c4 in start_wrapper (data=0x824efe8) at threads.c:312
#8 0x080fd19e in thread_start_routine (args=0xb7793750) at threads.c:253
#9 0x08120155 in GC_start_routine (arg=0x22f40) at pthread_support.c:1357
#10 0xb7e6e504 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0xb7ddc51e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread -1211050304 (LWP 32085)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7dd5321 in select () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7edbd10 in g_spawn_sync () from /usr/lib/libglib-2.0.so.0
#3 0xb7edc0dc in g_spawn_command_line_sync () from /usr/lib/libglib-2.0.so.0
#4 0x08159e88 in mono_handle_native_sigsegv (signal=11, ctx=0xbf96e4bc)
at mini-exceptions.c:1073
#5 0x08124528 in sigsegv_signal_handler (_dummy=11, info=0xbf96e43c,
context=0xbf96e4bc) at mini.c:10767
#6 < signal handler called >
#7 0x080ae2b2 in compute_class_bitmap (class=< value optimized out >,
bitmap=0xbf96e81c, size=128, offset=0, max_set=0xbf96e82c, static_fields=0)
at object.c:577
#8 0x080ae47e in mono_class_compute_gc_descriptor (class=0x826c8ac)
at object.c:714
#9 0x080ae74a in mono_class_vtable (domain=0x21ed8, class=0x826c8ac)
at object.c:836
#10 0x081258e5 in mono_method_check_inlining (cfg=0x8266ae8, method=0x826cd04)
at mini.c:2990
#11 0x08138672 in mono_method_to_ir (cfg=0x8266ae8, method=0x820dcb4,
start_bblock=0x8286734, end_bblock=0x82867d4, locals_offset=1,
return_var=0x0, dont_inline=0x8269ed0, inline_args=0x0, inline_offset=0,
is_virtual_call=0) at mini.c:4634
#12 0x08144426 in mini_method_compile (method=0x820dcb4, opts=5335551,
domain=0x21ed8, run_cctors=< value optimized out >,
compile_aot=< value optimized out >, parts=0) at mini.c:10023
#13 0x08145df1 in mono_jit_compile_method (method=0x820dcb4) at mini.c:10388
#14 0x08077f82 in mono_delegate_trampoline (regs=0xbf96ee04,
code=0xb7401080 "Y\215e�^[����������u\f\213��p �����\203�\b��",
m=0x820dcb4, tramp=0x0) at mini-trampolines.c:189
#15 0xb7bf3572 in ?? ()
#16 0xbf96ee04 in ?? ()
#17 0xb7401080 in ?? ()
#18 0x0820dcb4 in ?? ()
#19 0x00000000 in ?? ()
#0 0xffffe410 in __kernel_vsyscall ()

Aborted (core dumped)

Thanks for any help you might be able to give!

Albert said...

Hi Joel,
Looks like another case of a missing package.
Try installing "libgconf2.0-cil" package. (If that doesn't work, try installing the "libgconf-cil" package too.)

See if that helps...

Unknown said...

Thanks, gg! I'll give it a shot and let you know how it goes. Appreciate you sharing your knowledge on this. I'm still pretty new at compiling stuff. How can you tell what the package name is? I tried to install (a blind attempt) gconf-sharp, but it's obviously not a package name. That's my biggest problem with compiling this stuff. Some things are more obvious, some of my guesses work, but a lot like this one don't.

Anyway, thank you!

Unknown said...

Hello, gg. I just tried it, and that didn't work. After doing a little more research I found a page at Ubuntu which listed that along with other related libraries (related to gconf-sharp). I did a sudo apt-get install on all of them. So, I know gconf-sharp 2.16 is installed. Still, I get the same message...

** (/usr/lib/banshee/banshee.exe:3900): WARNING **: The following assembly referenced from /usr/lib/banshee/Banshee.Base.dll could not be loaded:
Assembly: gconf-sharp (assemblyref_index=8)
Version: 2.16.0.0
Public Key: 35e10195dab3c99f
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/usr/lib/banshee).


** (/usr/lib/banshee/banshee.exe:3900): WARNING **: Could not load file or assembly 'gconf-sharp, Version=2.16.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f' or one of its dependencies.

Thanks for any further help you might be able to offer.

Albert said...

Hi Joel, as far as I can tell, the gconf-sharp assembly is definitely provided by the "libgconf2.0-cil" package. (sudo apt-get install libgconf2.0-cil, just in case)

Since you've already got that installed though, I would try compiling Banshee again. (Go to the Banshee source directory "banshee-0.11.3", type "make clean", then start following the HOWTO again from the "./configure blah blah blah" line.)

Hopefully that works...

Unknown said...

Thanks again, gg! I meant to ask if there was something I needed to do before recompiling, and you just answered that. ;-)

I already recompiled, but I didn't do the make clean. Hopefully, that will solve it.

I appreciate your help on this.

Albert said...

Hey, no problem Joel. :)

Getting stuff to compile is all about deciphering the error messages and figuring out what package to install. (That's the solution about 95% of the time.)
That's why I find it odd that we haven't figured this out already. There's always a way to get stuff to work...

Anonymous said...

Hi,

On Dapper, the package libgtop2 is also libgtop2-7 now.

Thanks for this how-to, I'm currently traducing it in french. It will be available here: http://jelly.khpon.com

Alex.

Anonymous said...

Great guide, I tried to install the new version and was stuck untill I found this.
In fact, that isn't true, I stil get the same error but at least I know I am not doing anything wrong now, first time I compile anything from source.
The error:

----------------------------------
checking for DBUS... configure: error: Package requirements (dbus-1 dbus-glib-1) were not met:

No package 'dbus-1' found
No package 'dbus-glib-1' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables DBUS_CFLAGS
and DBUS_LIBS to avoid the need to call pkg-config.
----------------------------------

Looked in synaptic, I don't have dbus-1 and dbus-glib-1, and can't find them on the repo's.
I have packages called dbus, dbus-1-utils,libdbus-1-2 and libdbus-1-3 installed.

So I think I should either find the needed packages (on another repo?) or point out which packages to use instead.

Albert said...

Hi Berzoid,

Usually, when you're compiling something and it complains about not finding a dependency, you need to install a _library_.

For example, in this case, there's the DBUS program as well as the DBUS library. You're missing the development packages for the DBUS library.
The packages you need to install are "libdbus-1-dev" and "libdbus-glib-1-dev".

:)

Good luck! (If that doesn't fix it, post another comment and I'll see what I can do.)

Anonymous said...

Great, managed to compile it.

when the dbus was fixed it gave me an error for about all the other dependencies but I succeeded at installing all of them and finally compiled the program.

Is it safe to remove the folder /home/user/banshee-0.11.3 and the other folders I compiled plugins from now that everything is installed?

Albert said...

Hi Berzoid,

You need those directories if you're going to uninstall Banshee, but otherwise, it's safe to delete them. (If you want to uninstall it, you can just download the sources again, and do a "sudo make uninstall".)

Next time you upgrade Banshee or libipodddevice or whatever, chances are you'll just overwrite the old ones. (generally safe) :)

Unknown said...

If nobody is adverse to checkinstall, I'd recommend using it to build nice .deb packages. That way, you can sit back and let apt/synaptic handle the upgrade/uninstallation later.

There's a tutorial on how to use it here.

The skinny is to use "sudo checkinstall" rather then "sudo install" after you've compiled the code.

I just used it for the first time to build the packages in this tutorial for banshee and it worked quite nicely.

Hope this is useful to some.

Anonymous said...

Thanks for the tutorial very helpful. Managed to install Banshee but failed with the ipod-sharp install when running ./configure --prefix=/usr --disable-docs
I get the following message:
checking for gacutil... no
configure: error: You need to install gacutil

Where do I get gacutil from?
Thanks

Albert said...

Hi Mark,

To install gacutil, you just need to do a: "sudo apt-get install mono-gac"

Good luck!

Vaughn Grisham said...

Thanks for the tutorial.

I'm running dapper and I have the universe repositories enabled. I'm hitting a snag, however. When I execute sudo apt-get install libsgutils libsgutils-dev, I get the message: Couldn't find package libsgutils.

The same thing happens when I execut the libgtop step.

Any hints?

Thank you very much.

Albert said...

Hi Vaughn,

If you run the "sudo apt-get install libgtop2-7 libgtop2-common libgtop2-dev libsgutils1 libsgutils1-dev" line and it succeeds, then you won't need to do the latter line (the one that fails for you.)

(I just checked the dapper packages, and it seems the name is the same as the ones for Edgy... I wonder if they've changed...)

I'll update the guide though, thanks!

Anonymous said...

Who ever wrote this should check there work.

Please post a updated and correct guide for Ubuntu 606 lts so we can install the latest banshee thank you

Unknown said...

hey guys, thanks for posting the guide and follow-ups. im trying to install banshee on my g4 - and get a dependency error when i compile -
"checking for GTK... configure: error: Package requirements (gtk+-2.0 >= 2.8) were not met:

No package 'gtk+-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GTK_CFLAGS
and GTK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details."

i am running edgy, with the xubuntu desktop. Any advice on which gtt package i need? thanks in advance

Albert said...

Hi metro414,

The package you're missing is probably "libgtk2.0-cil".
Try installing that and see how it goes...

Good luck!

Anonymous said...

I tried apt-get without the sudo in fc6 but it gave me command not found message. can i install banshee using the commands u gave in fc6?

Albert said...

Sorry hedkandi, this guide only works in Ubuntu!

ale said...

Hi,

I'm trying to get banshee to work on dapper drake, and it says:

** (Banshee:7866): WARNING **: Could not load file or assembly 'gtk-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f' or one of its dependencies.Segmentation fault

But I have only version 2.0 of gtk-sharp, and apt tells me it's the newest version. Is there a way to upgrade this without upsetting all of mono?

Albert said...

Hi ale,

The short answer is, sorry, it's not worth the trouble to try upgrading Mono...

tpjewelry said...

Other ways to unlock trapped cash thomas sabo is in the form of selling thomas sabo shop silverware, silver flatware, sterling silver thomas sabo jewellery and scrap silver.