Unable to load any extension except gmusic [SOLVED]

First of all, great work on this project!
I am running mopidy on archlinux on a pogoplug series 4. It works great with the gmusic extension, and I have been streaming music from google play music - all access for a month or so without a hiccup.
However, I am unable to load any extensions other than gmusic. I have tried various web clients and other back end extensions and none of them load on startup. Perhaps this is related to some compatibility issues with the armv5 architecture. I previously installed mopidy on a raspberry pi with debian and all of the extensions loaded without a hitch.

Any suggestions?

here is my ~/.config/mopidy/mopidy.conf

# For further information about options in this file see:
#   http://docs.mopidy.com/
#
# The initial commented out values reflect the defaults as of:
#   Mopidy 0.19.4
#   Mopidy-HTTP 0.19.4
#   Mopidy-Local 0.19.4
#   Mopidy-MPD 0.19.4
#   Mopidy-SoftwareMixer 0.19.4
#   Mopidy-Stream 0.19.4
#
# Available options and defaults might have changed since then,
# run `mopidy config` to see the current effective config and
# `mopidy --version` to check the current version.

[logging]
#color = true
#console_format = %(levelname)-8s %(message)s
#debug_format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n  %(message)s
#debug_file = mopidy.log
#config_file =

[audio]
#mixer = software
mixer_volume = 50
#output = autoaudiosink
#visualizer = 

[proxy]
#scheme = 
#hostname = 
#port = 
#username = 
#password = 

[local]
enabled = false
#library = json
media_dir = /media
#data_dir = $XDG_DATA_DIR/mopidy/local
#playlists_dir = $XDG_DATA_DIR/mopidy/local/playlists
#scan_timeout = 1000
#scan_flush_threshold = 1000
#excluded_file_extensions = 
#  .directory
#  .html
#  .jpeg
#  .jpg
#  .log
#  .nfo
#  .png
#  .txt

[mpd]
#enabled = false
hostname = ::
#port = 6600
#password = 
#max_connections = 20
#connection_timeout = 60
#zeroconf = Mopidy MPD server on $hostname

[softwaremixer]
#enabled = true

[http]
#enabled = true
hostname = ::
#port = 6680
#static_dir =
#zeroconf = Mopidy HTTP server on $hostname

[stream]
#enabled = true
#protocols = 
#  file
#  http
#  https
#  mms
#  rtmp
#  rtmps
#  rtsp
#metadata_blacklist = 
#timeout = 5000

[spotify]
#enabled = false 
username = hunterwesson
password = *********

[tunein]
#enabled = false
timeout = 5000

[http-kuechenradio]
#enabled = false
title = Mopidy Küchenradio

[mopidy-moped]
#enabled = false

[websettings]
enabled = true
musicbox = false
config_file = /etc/mopidy/mopidy.conf

[rompr]
enabled = true

[mopidy-simple-webclient]
enabled = true

[gmusic]
#enabled = false
username = huntercwesson@gmail.com
password = *********
deviceid = 38B248C26469DF2B
all_access = true
show_radio_stations_browse = true
show_radio_stations_playlist = false
max_radio_stations = 0  	
max_radio_tracks = 25

and here is the output when starting mopidy

[hunchan@alarm ~]# mopidy
** Message: pygobject_register_sinkfunc is deprecated (GstObject)
INFO     Starting Mopidy 0.19.4
INFO     Loading config from: builtin defaults, /etc/xdg/mopidy/mopidy.conf, /root/.config/mopidy/mopidy.conf, command line options
INFO     Enabled extensions: gmusic, softwaremixer, http, mpd, stream
INFO     Disabled extensions: local
INFO     Starting Mopidy mixer: SoftwareMixer
INFO     Mixing using GStreamer software mixing
INFO     Mixer volume set to 50
INFO     Starting Mopidy audio
INFO     Starting Mopidy backends: GMusicBackend, StreamBackend
INFO     Mopidy uses Google Music
INFO     Audio output set to "autoaudiosink"
INFO     Starting Mopidy core
INFO     Start refreshing Google Music library
INFO     Starting Mopidy frontends: MpdFrontend, HttpFrontend
INFO     MPD server running at [::]:6600
INFO     HTTP server running at [::]:6680
INFO     Loaded 10 playlists from Google Music
INFO     Finished refreshing Google Music content in 97s

Can you please provide the output of which mopidy, mopidy deps and mopidy config.

Here they are:

 [root@alarm ~]# which mopidy
    /usr/bin/mopidy

[root@alarm ~]# mopidy deps
** Message: pygobject_register_sinkfunc is deprecated (GstObject)
Platform: Linux-3.17.2-1-ARCH-armv5tel-with-glibc2.4
Python: CPython 2.7.8 from /usr/lib/python2.7
Mopidy: 0.19.4 from /usr/lib/python2.7/site-packages
  setuptools: 7.0 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  tornado>=2.3: 4.0.2 from /usr/lib/python2.7/site-packages
    backports.ssl-match-hostname: 3.4.0.2 from /usr/lib/python2.7/site-packages
Mopidy-GMusic: 0.3.0 from /usr/lib/python2.7/site-packages
  setuptools: 7.0 from /usr/lib/python2.7/site-packages
  Mopidy>=0.18: 0.19.4 from /usr/lib/python2.7/site-packages
    setuptools: 7.0 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.0.2 from /usr/lib/python2.7/site-packages
      backports.ssl-match-hostname: 3.4.0.2 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  gmusicapi>=4.0.0: 4.0.0 from /usr/lib/python2.7/site-packages
    validictory>=0.8.0,!=0.9.2: 0.9.3 from /usr/lib/python2.7/site-packages
    decorator>=3.3.1: 3.4.0 from /usr/lib/python2.7/site-packages
    mutagen>=1.18: 1.26 from /usr/lib/python2.7/site-packages
    protobuf>=2.4.1: 2.6.1 from /usr/lib/python2.7/site-packages
      setuptools: 7.0 from /usr/lib/python2.7/site-packages
    requests>=1.1.0,!=1.2.0,!=2.2.1: 2.4.3 from /usr/lib/python2.7/site-packages
    python-dateutil>=1.3,!=2.0: 2.2 from /usr/lib/python2.7/site-packages
      six: 1.8.0 from /usr/lib/python2.7/site-packages
    proboscis>=1.2.5.1: 1.2.6.0 from /usr/lib/python2.7/site-packages
    oauth2client>=1.1: 1.4.1 from /usr/lib/python2.7/site-packages
      httplib2>=0.8: 0.9 from /usr/lib/python2.7/site-packages
      pyasn1==0.1.7: 0.1.7 from /usr/lib/python2.7/site-packages
      pyasn1-modules==0.0.5: 0.0.5 from /usr/lib/python2.7/site-packages
        pyasn1>=0.1.4: 0.1.7 from /usr/lib/python2.7/site-packages
      rsa==3.1.4: 3.1.4 from /usr/lib/python2.7/site-packages
        pyasn1>=0.1.3: 0.1.7 from /usr/lib/python2.7/site-packages
      six: 1.8.0 from /usr/lib/python2.7/site-packages
    mock>=0.7.0: 1.0.1 from /usr/lib/python2.7/site-packages
    appdirs>=1.1.0: 1.4.0 from /usr/lib/python2.7/site-packages
GStreamer: 0.10.36.0 from /usr/lib/python2.7/site-packages/gst-0.10/gst
  Detailed information:
    Python wrapper: gst-python 0.10.22.0
    Relevant elements:
      Found:
        uridecodebin
        souphttpsrc
        appsrc
        alsasink
        osssink
        oss4sink
        pulsesink
        id3demux
        id3v2mux
        lame
        mad
        vorbisdec
        vorbisenc
        vorbisparse
        oggdemux
        oggmux
        oggparse
        flacdec
        flacparse
        shout2send
      Not found:
        flump3dec
        mp3parse

[root@alarm ~]# mopidy config
** Message: pygobject_register_sinkfunc is deprecated (GstObject)
[logging]
color = true
console_format = %(levelname)-8s %(message)s
debug_format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n  %(message)s
debug_file = mopidy.log
config_file =

[audio]
mixer = software
mixer_volume = 50
output = autoaudiosink
visualizer =

[proxy]
scheme =
hostname =
port =
username =
password =

[gmusic]
enabled = true
username = huntercwesson@gmail.com
password = ********
deviceid = 38B248C26469DF2B
all_access = true
refresh_library = 1440
refresh_playlists = 60
show_radio_stations_browse = true
show_radio_stations_playlist = false
max_radio_stations = 0
max_radio_tracks = 25

[local]
enabled = false  ; Extension disabled by user config.

[mpd]
enabled = true
hostname = ::
port = 6600
password =
max_connections = 20
connection_timeout = 60
zeroconf = Mopidy MPD server on $hostname

[softwaremixer]
enabled = true

[http]
enabled = true
hostname = ::
port = 6680
static_dir =
zeroconf = Mopidy HTTP server on $hostname

[stream]
enabled = true
protocols =
  file
  http
  https
  mms
  rtmp
  rtmps
  rtsp
metadata_blacklist =
timeout = 5000

Hmm so do all the extensions, including the missing ones, come from AUR? I haven’t actually used Arch for many years (since I retired my pogoplug v2, as it happens!). Do the missing ones exist in /usr/lib/python2.7/site-packages?

Perhaps someone more familiar with Arch can be of more help (@trygveaa) ? Failing that, there are usually a couple of Arch people in the #mopidy IRC channel so try asking in there directly.

Yeah, I installed/built most of them using the PKGBUILDs available on AUR, but some were installed with yaourt and pip. You may be on to something, because the extensions are not in

/usr/lib/python2.7/site-packages. Instead they are in:
/usr/lib/python3.4/site-packages

Thanks for your help, I’ll try out the #mopidy IRC channel.

So far, Mopidy only runs on Python 2.7, so there’s your problem. I don’t have any Arch fu, so I’m not sure what’s the proper way to fix this.

The extensions you installed from AUR should be under python2.7. To install extensions with pip and get them under 2.7 you have to use the pip2 command.

Thanks trygveaa!!!
That worked like a charm. I uninstalled the extensions and reinstalled them using pip2. Now all of the web clients and backend extenstions load up and work beautifully, with the exception of mopidy-spotfy.

When I try to start mopidy with spotify enabled I get:

ImportError: libspotify.so.12: cannot open shared object file: No such file or directory

libspotify.so.12 is in the /usr/local/lib directory, or at least a symlink called libspotify.so.12 which is linked to libspotify.so.12.1.51.

Anyway, everything else is is working great. Much appreciated!!!

Hm, seems like pyspotify doesn’t look for libraries in /usr/local/lib.

Have you tried installing mopidy-spotify from AUR? It should install all it’s dependencies correctly.

Yeah, I tried to install mopidy-spotify using yaourt first, but unfortunately the PKGBUILD for libspotify does not include instructions for armv5, so it fails to build. The file looks like this:

# Maintainer: Benjamin Hedrich <kiwisauce@pagenotfound.de> Contributor: 
# Thomas Jost <schnouki@schnouki.net> Contributor: Tomas Strand 
# <tomas@fik1.net>
pkgname=libspotify
pkgver=12.1.51
pkgrel=3
pkgdesc="C API package allowing third-party developers to write applications that utilize the Spotify music streaming service"
arch=(i686 x86_64 armv7h armv6h)
url="https://developer.spotify.com/technologies/libspotify/"
license=('custom')
depends=('glibc')

if [ "$CARCH" == "armv6h" ]; then
    pkgver=12.1.103
    SPOTIFY_ARCH="armv6-bcm2708hardfp"
    md5sums=('bf9afc8c7b966841735734b248f9c7a7')
    sha256sums=('d658e6c1978fb46cf33376eb8367a51d024f4014f21beac1dd264532bcc54b24')
fi

if [ "$CARCH" == "armv7h" ]; then
    SPOTIFY_ARCH="armv7"
    md5sums=('eb7e98849b3bb6d364fa74034602afbf')
    sha256sums=('ad27b6c5aee5382b66b39bfea3b1752076b7abcc445979ce25c1ec9d7ff3aeda')
fi

if [ "$CARCH" == "x86_64" ]; then
    SPOTIFY_ARCH="x86_64"
    md5sums=('83efddcc195d6ff12b24c97c767a5e45')
    sha256sums=('43a14e0732ba6ae30078fac105d0e2998d04d5f5c396a4968386bc4e22491058')
fi

if [ "$CARCH" == "i686" ]; then
    SPOTIFY_ARCH="i686"
    md5sums=('04735b890da0b1fc7f1f14e68a5293de')
    sha256sums=('941ab4ba10bcd6ec4e96127afd095a39e11bc955de0882734c97e4f588b155ae')

fi

source=(http://developer.spotify.com/download/libspotify/libspotify-${pkgver}-Linux-${SPOTIFY_ARCH}-release.tar.gz)

build() {
    cd "$srcdir/$pkgname-$pkgver-Linux-${SPOTIFY_ARCH}-release"

    # Don't do stupid things from a Makefile
    msg2 "Patching Makefile..."
    sed -i 's/ldconfig//' Makefile
}

package() {
    cd "$srcdir/$pkgname-$pkgver-Linux-${SPOTIFY_ARCH}-release"

    make prefix="$pkgdir/usr" install

    # Install documentation
    cp -R share "$pkgdir"/usr/share
    mkdir -p "$pkgdir"/usr/share/man
    mv "$pkgdir"/usr/share/man3 "$pkgdir"/usr/share/man/man3

    # Correct pkgconfig file
    sed -e s:PKG_PREFIX:/usr:g \
          < lib/pkgconfig/libspotify.pc \
          > "$pkgdir"/usr/lib/pkgconfig/libspotify.pc

    # Custom license
    install -Dm644 LICENSE licenses.xhtml "$pkgdir"/usr/share/doc/libspotify
    mkdir -p "$pkgdir"/usr/share/licenses/libspotify
    ln -s ../../doc/libspotify/LICENSE "$pkgdir"/usr/share/licenses/libspotify/LICENSE
}

Where to look for the library isn’t controlled by pyspotify, but by /etc/ld.so.conf. If you add /usr/local/lib to that file, and then run sudo ldconfig, pyspotify should be able to find libspotify even when installed in /usr/local/lib.

Euraka! You solved it. That did the trick. I installed mopidy-spotify and pyspotify using pip2, and libspotify using the binary downloaded from: https://developer.spotify.com/technologies/libspotify/
Then I followed your instruction and the extension loaded up without a hitch.

Thanks a lot, maybe this can help anyone else out there trying to hack the pogolug series 4 into a music streamer (doubtful). It is a brilliant device… now. It’s amazing what 128MBs of ram can do!