New Rhythmbox 3.3 release for Ubuntu 14.04, 15.04 and 15.10


The official GTK 3.18 release of the Gnome stack of software was last september … but most unusually Rhythmbox never featured with a new release.

Well its here – and its now available for 14.04 (trusty), 15.04 (vivid) and 15.10 (wily) users.

trusty - VMware Player (Non-commercial use only)_116

(screenshot taken with rhythmbox 3.3 + my alternative-toolbar plugin)

Thanks to the key Rhythmbox maintainer Jonathan Matthew we have a good release that fixes a whole bunch of crashers and gives us new automatic Android compatibility.

TIP – if you are going to sync to an external card on you phone – rename your “Music” folder on the internal storage, create a “Music” folder at the top-level of your external card. Launch rhythmbox. Using the new android capability, you can automatically find and sync with the Music folder on your external card.

This version contains the following:

Overview of changes in Rhythmbox 3.3

  • New plugin supporting Android devices via gvfs-mtp
  • Encoding settings are now configurable per device type
  • Encoding settings can force lossless files to be transcoded

Bugs fixed:

733830 While extracting music from CDs, information in the “Year” field is lost
748857 Typos in documentation
749015 audioscrobbler: Fix displaying icon for libre.fm
751265 JSON import errors
751630 Sync Preferences Missing
751961 iradio: remove Radio GFM
752433 [PATCH] data: Add various mod files as supported MIME types
753359 Don’t handle RTL icons manually for GTK+ >= 3.12
753767 error: conflicting types for ‘rhythmdb_metadata_cache_purge’
755881 crash when adding files found during startup scan
756992 hangs after handling mod/xm/it (modplug) file when crossfade is enabled
757225 Freezing with crossfade backend and Pulseaudio with GStreamer 1.6.x
760192 commit 85c185d breaks compilation with -Wl,-as-needed
761030 Album-Art caching issue

Stock Ubuntu 14.04 users should definitely benefit for 24+ months worth of bug-fixes and refinements. Note – upstream has bumped the minimum GTK version above that found in Trusty … but don’t worry I’ve backed out those changes – you guys and girls aren’t missing anything vital!

We are not past Debian package import freeze to 16.04 so I expect Debian will upload v3.3 soon and this will make it into 16.04 proper.  Thus, I’ve not this time produced a build for 16.04 users … but may do so with future rhythmbox releases.

If you are looking to have the latest, I’ve packaged this together and is now available in my Rhythmbox PPA. This PPA contains the existing Ubuntu patchwork – hide on close, support for local and global menu etc. N.B. – I tend to update my PPA as and when I’m investigating what is new in upstream Rhythmbox.

sudo add-apt-repository ppa:fossfreedom/rhythmbox
sudo apt-get update
sudo apt full-upgrade

Note: sometimes the upgrade doesn’t quite work.  If you get a segmentation fault repeatedly on startup then uninstall and reinstall rhythmbox

sudo apt-get purge rhythmbox rhythmbox-plugins rhythmbox-data librhythmbox-core9
sudo apt-get update
sudo apt-get install rhythmbox

Grilo is supported just enable the plugin found in the Plugins menu – this will give you the new media sources in Rhythmbox – the key being Jamendo – Royalty free music is just a click away. You also get UPnP & DLNA support as well.

New Rhythmbox 3.2 release for 14.04, 14.10 and 15.04


The official GTK 3.16 release of the Gnome stack of software was last week but what was missing was a new release of Rhythmbox.

Well its here – and its now available for 14.04 (trusty), 14.10 (utopic) and 15.04 (vivid) users.

trusty - VMware Player (Non-commercial use only)_048

Thanks to the key Rhythmbox maintainer Jonathan Matthew together with the many visual styling enhancements of Trinh Anh Ngoc we have a good release that fixes a whole bunch of crashers, reworks album-art display and gives a refreshed visual look-and-feel.

This version contains the following:

Overview of changes in Rhythmbox 3.2

  • Support for disc and track total tags (Hubert Figuiere)
  • Soundcloud plugin
  • Ability to clear, re-fetch and manually set cover art using the song info
    window
  • Build fixes for Mac OS X (Andrew Brown)
  • Many style and layout fixes (Trinh Anh Ngoc)

Bugs fixed:

330686 – same songs played after reading a playlist
554574 – no easy way to unselect the browse by album,artist,genre option
592706 – Unclear string “in” for translation
601747 – rhythmbox skips one or two songs after playing certain songs
733795 – configure warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
737058 – Add track count and disc count to the database
737655 – data: Add Vorbis aliases as supported mime-types
738101 – Failure to build with tdb 1.3
738529 – Crash when right clicking the track list in the library
743012 – Rhythmbox fails to import MP3 files with ID3 v2.4 tags created by PicardQT
743493 – Tracks with no embedded covert art show a random cover art from the music collection
743761 – Right click on any file in ‘Tracks list’ clashes the application
745395 – Duplicate symbol _rb_metadata_iface_xml
745399 – gdkx.h explicitly included; prevents building on Mac
746047 – symbolic icon is broken

Notable in this release is the new SoundCloud plugin.

trusty - VMware Player (Non-commercial use only)_047Also is the ability to change the album-art in a new dedicated window (right click a track and choose properties):

trusty - VMware Player (Non-commercial use only)_050

Stock Ubuntu 14.04 users should definitely benefit for 18 months worth of bug-fixes and refinements.  We are well past feature freeze so I’m doubtful that v3.2 will hit the 15.04 repositories – expect it to be in 15.10.  Thus, I’ve produced a build for 15.04 users as well.

If you are looking to have the latest, I’ve packaged this together and is now available in my Rhythmbox PPA. This PPA contains the existing Ubuntu patchwork – hide on close, support for local and global menu etc. N.B. – I tend to update my PPA as and when I’m investigating what is new in upstream Rhythmbox.

sudo add-apt-repository ppa:fossfreedom/rhythmbox
sudo apt-get update
sudo apt full-upgrade

I’ve also included the visualisation plugin as a dependency together with the Context plugin which is not available in stock Ubuntu.

Grilo is supported just enable the new plugin found in the Plugins menu.

sudo apt-get install grilo-plugins-0.2 grilo-plugins-0.2-mediascanner

The above will give you the new media sources in Rhythmbox – the key being Jamendo – Royalty free music is just a click away. You also get UPnP & DLNA support as well.


Post Note:

Looking for a more radical look for Rhythmbox…?

trusty - VMware Player (Non-commercial use only)_049The above is part of another plugin I’m currently working on – more on that in a later article.


Rhythmbox 3.2.1

A bug fix has been released today (19 Apr 2015) with the following changes:

746975 – core dump when using shuffle and playing track changes
747053 – Rhythmbox plugins fail to connect to signal handlers with libpeas 1.14.0

plus a smattering of translation updates.

How to fix no shared folders in vmware player 7


A quick note for those that have seen shared folder support and copy-to-clipboard issues when running a ubuntu 14.04 virtual machine in VMWare Player / VMWare Workstation.

Ubuntu has recently just bumped its kernel version to 3.13.0-46-generic i.e. run uname -a to see what kernel you are running.

The default vmware tools that comes with VMWare Player 7 now does not compile correctly.  When you run vmware-install.pl in the extracted vmware-tools package you see the following error:


from /tmp/modconfig-ABCdEFgH/vmhgfs-only/inode.c:29:
include/linux/kernel.h:793:27: error: ‘struct dentry’ has no member named ‘d_alias’
const typeof( ((type *)0)->member ) *__mptr = (ptr); \

The hint I found to fix this was here – however the instructions were not clear how to apply this.


From the VMWare Player menu choose Virtual Machine – Reinstall VMWare Tools.

Click Install on the dialog to mount the virtual disc

Copy the VMWareTools-9.9.2-2496486.tar.gz file displayed in Nautilus to your ~/Downloads folder.

Dip into your terminal:

cd ~/Downloads
tar -xvf VMWareTools-9.9.2-2496486.tar.gz
cd vmware-tools-distrib/lib/modules/source/
tar -xvf vmhgfs.tar
cd vmhgfs-only

then copy and paste the following as a file called inode.patch

1924a1925
> #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0) 
1925a1927,1929 
> #else
>              d_u.d_alias) {
> #endif
1977a1982
> #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0) 
1978a1984,1987 
> #else
>          struct dentry *dentry = list_entry(pos, struct dentry, d_u.d_alias);
> #endif
> 

Run the following to fix the errant file the cannot be compiled:

patch inode.c < inode.patch

This will complain about the file being read-only – but will patch the file never-the-less.

Finally – recompress the sources you’ve modified back as a tar file and re-run the vmware-tools installer:


cd ..
mv vmhgfs.tar vmhgfs.tar.orig
tar cvf vmhgfs.tar vmhgfs-only
cd ~/Downloads/vmware-tools-distrib
sudo ./vmware-install.pl

What do you do when your Android phone is not recognised by Ubuntu?


Panic!

Well maybe not – after you’ve finished cursing and threatening to go back to Windows – I would recommend you dig deep, rollup your sleeves and get creative…

TLDR; skip to the bottom and add my PPA to get the latest version of libmtp

My wife gave me a Vodafone Smart Turbo Android phone running Kitkat (v4.4) for Christmas and I’ve just got around to looking at its music capabilities.  First things first – adding some music to the phone.  Except my favourite music player – Rhythmbox nor Nautilus – refused to see the phone.

Rhythmbox, Nautilus – and many other music players in Linux use the underlying MTP library – libmtp to talk to modern Android phones & tablets.

In Trusty this is v1.1.6 – upstream the latest is v1.1.8 (at the time of writing)

Thus I took the vivid sources and rebuilt this on trusty.

However, this still did not work. Next visit was to the libmtp project. The key recommendation is to file a bug-report on their source tracker. They need the vendor ID and device ID of your phone. You get this by:

running lsusb
then plugin your phone and re-run lsusb

You should now see a new entry being listed:

for example:

foss@emachine:~$ lsusb
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0402:9665 ALi Corp. Gateway Webcam
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
foss@emachine:~$ lsusb
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 1ebf:7f29
Bus 001 Device 003: ID 0402:9665 ALi Corp. Gateway Webcam
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The new entry was 1ebf:7f29 – the vendor ID is the first part (1ebf) and the device ID is 7f29

That’s all well and good – but you’ll need to wait until someone does something with your bug report … and then you’ll need to wait until the next version of libmtp appears in some future version of Ubuntu.

Lets not wait…

On the project website it mentions that you can edit one of the source files – src/music-players.h

So lets create our own debian package. The easiest way to take someone elses pre-made package … mine for example


sudo add-apt-repository ppa:fossfreedom/libmtp
sudo apt-get update
apt-get source libmtp

Edit the music-players.h file


cd libmtp-1.1.8*/src
gedit music-players.h

Scroll to the end and add your new phone entry remembering to suffix a “,” to the end of the last line i.e.

{ “Isabella”, 0x0b20, “Her Prototype”, 0xddee, DEVICE_FLAG_NONE }

change to

{ “Isabella”, 0x0b20, “Her Prototype”, 0xddee, DEVICE_FLAG_NONE },
{ “YU Yureka”, 0x1ebf, “Vodafone smart turbo 4”, 0x7f29, DEVICE_FLAGS_ANDROID_BUGS }

where “YU Yureka” is the Vendor Name, 0x1ebf is your Vendor ID (prefixed with “0x”), “Vodafone smart turbo 4” is the Device description, 0x7f29 is the Device ID (prefixed with “0x”) and DEVICE_FLAGS_ANDROID_BUGS is the common flag because Android MTP is just full of bugs…

Save. Install the prerequisite packages:

sudo apt-get build-dep libmtp
sudo apt-get install devscripts build-essential libtool

Create your own patch for the package and compile:
dpkg-source --commit
debuild -us -uc

Note – if you see the following error:

configure.ac:14: error: required file ‘./ltmain.sh’ not found
configure.ac:5: installing ‘./missing’

Then copy the missing file and repeat the compilation:

cp /usr/share/libtool/config/ltmain.sh ./
debuild -us -uc

This will eventually create a series of Debian packages in the folder above libmtp-1.1.8*

Install the following packages – libmtp-common, libmtp-runtime & libmtp9, with the format sudo dpkg -i libmtp<packagename>

Too complicated? Maybe – but its worth learning the basics of compiling to understand what really goes into producing your favourite software.

Alternatively, find a friendly developer, beg/buy them a coffee and maybe they’ll add your phone to their package 😉


If you’ve skipped this far, install v1.1.8 of libmtp for Trusty (14.04) or Utopic (14.10) and cross your fingers that your phone is in this release:

sudo add-apt-repository ppa:fossfreedom/libmtp
sudo apt-get update && sudo apt-get upgrade

What was interesting examining the vivid package was that Canonical has added the new BQ Aquarius 4.5 Ubuntu Edition to this package. So I’ve included that also in my PPA.

Also, Canonical has added a new phone/phone like device to the vivid package

Description: Adding Arale device id (mtp and mtp+adb)
Forwarded: not-needed
Author: Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>

This is the temporary id used by this device, once the final
one is in place, it’ll be forwarded to upstream.

I wonder what that is??

How to upgrade to the 3.16 LTS Utopic kernel and graphics for Ubuntu 14.04


Long-term Support for Ubuntu 14.04 also means that you can get the latest stable kernel and graphics as well.  Importantly, these remain supported by the kernel and graphics teams and you’ll receive a regular supply of updates for 9 months.

Remember – you’ll need to update just before 9 months to get the next LTS kernel and graphics before support is officially withdrawn.  If this sounds like too much hassle – best stick with the 3.13 kernel and graphics – they remain supported for 5 years!


The community wiki page describes how to install the latest kernel and graphics – but you need to be very careful.

For me the instructions meant that I could have destroyed my wine + pipelight installation but more importantly, bcmwl wireless could have been left in a broken state because the bcmwl package has not yet been backported.

The wiki page stated that to upgrade the kernel and graphics you use the following:

sudo apt-get install --install-recommends linux-generic-lts-utopic xserver-xorg-lts-utopic libgl1-mesa-glx-lts-utopic

Remember the magic “-s” parameter; with “-s” added you can simulate what would happen when you run an install command – for me, it revealed that amongst the packages it would have removed were vital wine & QT5 packages:

sudo apt-get -s install --install-recommends linux-generic-lts-utopic xserver-xorg-lts-utopic libgl1-mesa-glx-lts-utopic | more

N.B. press q to exit the paused display

Instead I preserved my wine & QT5 installation through this simulated command:

sudo apt-get -s install --install-recommends linux-generic-lts-utopic xserver-xorg-lts-utopic libqt5gui5 libgles1-mesa-lts-utopic libgles2-mesa-lts-utopic libgl1-mesa-glx-lts-utopic libgl1-mesa-glx-lts-utopic:i386 libglapi-mesa-lts-utopic:i386 libegl1-mesa-drivers-lts-utopic | more

Try the above and examine which packages would be removed. Once you are happy – go ahead and remove the “-s” after the apt-get.

What the above didn’t forsee thought was the following error:


Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 3.16.0-30-generic /boot/vmlinuz-3.16.0-30-generic
Error! Could not locate dkms.conf file.
File: does not exist.
Error! Bad return status for module build on kernel: 3.16.0-30-generic (x86_64)
Consult /var/lib/dkms/bcmwl/6.30.223.141+bdcom/build/make.log for more information.

Until the ubuntu devs backport the utopic bcmwl package you can safely download this package yourself and install it (64bit Ubuntu):


wget http://mirrors.kernel.org/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.248+bdcom-0ubuntu1_amd64.deb
sudo dpkg -i bcmwl-kernel-source_6.30.223.248+bdcom-0ubuntu1_amd64.deb

If you are still using 32bit Ubuntu (why??) then download the 32bit package


wget http://mirrors.kernel.org/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.248+bdcom-0ubuntu1_i386.deb
sudo dpkg -i http://mirrors.kernel.org/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.248+bdcom-0ubuntu1_i386.deb