Hi,

Here's an update of exaile to the latest version. This moves it away from
gstreamer-0.10, though it's still using python 2. Upstream appears to be
actively working on porting it to python 3 though.

This update worked for me during some limited testing; more testing and
OKs welcome.

-- 
jasper

Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/exaile/Makefile,v
retrieving revision 1.40
diff -u -p -r1.40 Makefile
--- Makefile    20 Mar 2020 16:44:21 -0000      1.40
+++ Makefile    30 Mar 2020 12:24:52 -0000
@@ -4,13 +4,12 @@ COMMENT =     music manager and player for G
 
 # on Python 3 support: https://github.com/exaile/exaile/issues/246
 
-V =            3.4.5
+V =            4.0.2
 DISTNAME =     exaile-${V}
-REVISION =     2
 
 CATEGORIES =   audio x11
 
-HOMEPAGE =     http://www.exaile.org/
+HOMEPAGE =     https://www.exaile.org/
 MAINTAINER =   Brian Callahan <bcal...@openbsd.org>
 
 MASTER_SITES = https://github.com/exaile/exaile/releases/download/${V}/
@@ -20,28 +19,26 @@ PERMIT_PACKAGE =    Yes
 
 MODULES =      lang/python
 
-COMMON_DEPENDS =x11/dbus-python>=0.82.1 \
-               devel/py-notify>=0.1.1 \
-               audio/py-mutagen>=1.11 \
-               audio/py-cddb>=1.4 \
-               x11/py-gtk2>=2.17 \
-               devel/libglade2 \
-               multimedia/gstreamer-0.10/core \
-               multimedia/gstreamer-0.10/plugins-good \
-               multimedia/gstreamer-0.10/plugins-ffmpeg \
-               multimedia/gstreamer-0.10/py-gstreamer
+COMMON_DEPENDS = audio/py-cddb>=1.4${MODPY_FLAVOR} \
+               audio/py-mutagen>=1.11${MODPY_FLAVOR} \
+               devel/py-gobject3${MODPY_FLAVOR} \
+               devel/py-notify>=0.1.1${MODPY_FLAVOR} \
+               multimedia/gstreamer1/core \
+               multimedia/gstreamer1/plugins-good \
+               x11/dbus-python>=0.82.1${MODPY_FLAVOR}
 
 BUILD_DEPENDS =        ${COMMON_DEPENDS} \
                devel/gettext,-tools
 RUN_DEPENDS =  ${COMMON_DEPENDS} \
-               devel/desktop-file-utils
+               ${MODPY_RUN_DEPENDS},-bsddb \
+               devel/desktop-file-utils
 
 USE_GMAKE =    Yes
 
 TEST_TARGET=   test
 PORTHOME =     ${WRKDIR}
-TEST_DEPENDS=  devel/py-nose \
-               devel/py-mox
+TEST_DEPENDS=  devel/py-nose${MODPY_FLAVOR} \
+               devel/py-mox${MODPY_FLAVOR}
 TEST_ENV=      EXAILE_DIR=${WRKOBJ}/test
 
 CONFIGURE_STYLE =none
Index: distinfo
===================================================================
RCS file: /cvs/ports/audio/exaile/distinfo,v
retrieving revision 1.11
diff -u -p -r1.11 distinfo
--- distinfo    9 Jul 2017 10:03:05 -0000       1.11
+++ distinfo    30 Mar 2020 12:24:52 -0000
@@ -1,2 +1,2 @@
-SHA256 (exaile-3.4.5.tar.gz) = UxSet8jY4SZQJxe/9Jgygl5fDo+D2Zg7YEIHhTJQAHs=
-SIZE (exaile-3.4.5.tar.gz) = 3734454
+SHA256 (exaile-4.0.2.tar.gz) = ngG3F2AHCsuSPWe4D4W52PIj83AZDPpUp9Tf7KLhDdA=
+SIZE (exaile-4.0.2.tar.gz) = 3635296
Index: patches/patch-Makefile
===================================================================
RCS file: /cvs/ports/audio/exaile/patches/patch-Makefile,v
retrieving revision 1.9
diff -u -p -r1.9 patch-Makefile
--- patches/patch-Makefile      10 Nov 2017 11:07:44 -0000      1.9
+++ patches/patch-Makefile      30 Mar 2020 12:24:52 -0000
@@ -2,77 +2,50 @@ $OpenBSD: patch-Makefile,v 1.9 2017/11/1
 Index: Makefile
 --- Makefile.orig
 +++ Makefile
-@@ -1,17 +1,17 @@
- PYTHON2_CMD   ?= `command -v python2`
- 
--PREFIX                ?= /usr/local
-+PREFIX                ?= ${TRUEPREFIX}
- LIBINSTALLDIR         ?= /lib
--XDGCONFDIR    ?= /etc/xdg
-+XDGCONFDIR    ?= ${PREFIX}/share/exaile/xdg
- 
- EXAILEBINDIR  = ${DESTDIR}${PREFIX}/bin
--EXAILELIBDIR  = ${DESTDIR}${PREFIX}${LIBINSTALLDIR}/exaile
--EXAILESHAREDIR        = ${DESTDIR}${PREFIX}/share/exaile
-+EXAILELIBDIR  = ${DESTDIR}${MODPY_SITEPKG}/exaile
-+EXAILESHAREDIR        = ${DESTDIR}${TRUEPREFIX}/share/exaile
- EXAILECONFDIR         = ${DESTDIR}${XDGCONFDIR}/exaile
- 
- .PHONY: dist test coverage clean sanitycheck
- 
--all: compile locale manpage
-+all: compile locale
-       @echo "Ready to install..."
- 
- # The no_locale stuff is by request of BSD people, please ensure
-@@ -53,11 +53,10 @@ make-install-dirs:
-       mkdir -p ${EXAILESHAREDIR}/data/ui/widgets
-       mkdir -p ${EXAILESHAREDIR}/data/migrations
-       mkdir -p ${EXAILESHAREDIR}/data/migrations/migration_200907100931
--      mkdir -p ${DESTDIR}${PREFIX}/share/pixmaps
--      mkdir -p ${DESTDIR}${PREFIX}/share/appdata
--      mkdir -p ${DESTDIR}${PREFIX}/share/applications
--      mkdir -p ${DESTDIR}${PREFIX}/share/man/man1
--      mkdir -p ${DESTDIR}${PREFIX}/share/dbus-1/services
-+      mkdir -p ${DESTDIR}${TRUEPREFIX}/share/pixmaps
-+      mkdir -p ${DESTDIR}${TRUEPREFIX}/share/appdata
-+      mkdir -p ${DESTDIR}${TRUEPREFIX}/share/applications
-+      mkdir -p ${DESTDIR}${TRUEPREFIX}/share/dbus-1/services
-       mkdir -p ${EXAILECONFDIR}
- 
- uninstall:
-@@ -110,7 +109,7 @@ install-target: make-install-dirs
-       install -m 644 data/images/scalable/*.svg 
${EXAILESHAREDIR}/data/images/scalable
-       install -m 644 data/images/*.png ${EXAILESHAREDIR}/data/images
-       install -m 644 data/images/128x128/exaile.png \
--              ${DESTDIR}${PREFIX}/share/pixmaps/exaile.png
-+              ${DESTDIR}${TRUEPREFIX}/share/pixmaps/exaile.png
-       install -m 644 data/ui/*.ui ${EXAILESHAREDIR}/data/ui
-       install -m 644 data/ui/panel/*.ui ${EXAILESHAREDIR}/data/ui/panel
-       install -m 644 data/ui/preferences/*.ui 
${EXAILESHAREDIR}/data/ui/preferences
-@@ -119,10 +118,10 @@ install-target: make-install-dirs
-       install -m 644 data/migrations/migration_200907100931/*.py \
-               ${EXAILESHAREDIR}/data/migrations/migration_200907100931/
-       install -m 644 data/exaile.desktop \
--              ${DESTDIR}${PREFIX}/share/applications/
-+              ${DESTDIR}${TRUEPREFIX}/share/applications/
+@@ -2,15 +2,14 @@ PYTHON2_CMD   ?= python2
+ PYTEST        ?= py.test
+ BLACK         ?= black
+ 
+-PREFIX         = /usr/local
++PREFIX         = ${TRUEPREFIX}
+ EPREFIX        = $(PREFIX)
+ 
+ LIBINSTALLDIR  = $(EPREFIX)/lib
+ DATADIR        = $(PREFIX)/share
+-MANPREFIX      = $(PREFIX)/share
+-# /etc if PREFIX is /usr, $PREFIX/etc otherwise.
+-ETCDIR        := $(shell [ "$(PREFIX)" = "/usr" ] && echo /etc || echo 
"$(PREFIX)/etc")
+-XDGCONFDIR     = $(ETCDIR)/xdg
++MANPREFIX      = $(PREFIX)
++ETCDIR         = ${SYSCONFDIR}
++XDGCONFDIR     = ${DATADIR}/exaile/xdg/
+ 
+ # Find bash-completion's completions directory, first by checking pkg-config,
+ # then using a hard-coded path. Override BASHCOMPDIR if it's still wrong for
+@@ -25,7 +24,7 @@ FISHCOMPDIR   := $(shell pkg-config \
+   || echo "$(PREFIX)/share/fish/vendor_completions.d")
+ 
+ EXAILEBINDIR   = $(DESTDIR)$(EPREFIX)/bin
+-EXAILELIBDIR   = $(DESTDIR)$(LIBINSTALLDIR)/exaile
++EXAILELIBDIR   = $(DESTDIR)${MODPY_SITEPKG}/exaile
+ EXAILESHAREDIR = $(DESTDIR)$(DATADIR)/exaile
+ EXAILECONFDIR  = $(DESTDIR)$(XDGCONFDIR)/exaile
+ EXAILEMANDIR   = $(DESTDIR)$(MANPREFIX)/man
+@@ -155,7 +154,7 @@ install-target: make-install-dirs
+               $(DESTDIR)$(DATADIR)/applications/
        install -m 644 data/exaile.appdata.xml \
-               ${DESTDIR}${PREFIX}/share/appdata/      
--      -install -m 644 exaile.1.gz ${DESTDIR}${PREFIX}/share/man/man1/
-+      -install -m 644 exaile.1.gz ${DESTDIR}${TRUEPREFIX}/share/man/man1/
-       install -m 644 data/config/settings.ini ${EXAILECONFDIR}
-       tools/generate-launcher "${DESTDIR}" "${PREFIX}" "${LIBINSTALLDIR}" \
-               "${PYTHON2_CMD}" && \
-@@ -137,10 +136,10 @@ locale:
- install-locale:
-       for f in `find po -name exaile.mo` ; do \
-         install -d -m 755 \
--          `echo $$f | sed "s|^po|${DESTDIR}${PREFIX}/share/locale|" | \
-+          `echo $$f | sed "s|^po|${DESTDIR}${TRUEPREFIX}/share/locale|" | \
-             xargs dirname` && \
-         install -m 644 $$f \
--          `echo $$f | sed "s|^po|${DESTDIR}${PREFIX}/share/locale|"` ; \
-+          `echo $$f | sed "s|^po|${DESTDIR}${TRUEPREFIX}/share/locale|"` ; \
-         done
+               $(DESTDIR)$(DATADIR)/appdata/
+-      -install -m 644 build/exaile.1.gz $(EXAILEMANDIR)/man1/
++      -install -m 644 build/exaile.1 $(EXAILEMANDIR)/man1/
+       -install -m 644 build/exaile.bash-completion 
$(DESTDIR)$(BASHCOMPDIR)/exaile
+       -install -m 644 build/exaile.fish-completion 
$(DESTDIR)$(FISHCOMPDIR)/exaile.fish
+       install -m 644 data/config/settings.ini $(EXAILECONFDIR)
+@@ -198,7 +197,7 @@ plugins_dist:
+ 
+ manpage: builddir
+       LC_ALL=C help2man -n "music manager and player" -N ./exaile \
+-        | gzip -9 > build/exaile.1.gz
++        > build/exaile.1
  
- plugins_dist:
+ completion: builddir
+       $(PYTHON2_CMD) tools/generate-completion.py bash > 
build/exaile.bash-completion
Index: patches/patch-data_exaile_desktop
===================================================================
RCS file: /cvs/ports/audio/exaile/patches/patch-data_exaile_desktop,v
retrieving revision 1.6
diff -u -p -r1.6 patch-data_exaile_desktop
--- patches/patch-data_exaile_desktop   28 Mar 2011 07:26:16 -0000      1.6
+++ patches/patch-data_exaile_desktop   30 Mar 2020 12:24:52 -0000
@@ -1,12 +1,13 @@
 $OpenBSD: patch-data_exaile_desktop,v 1.6 2011/03/28 07:26:16 giovanni Exp $
---- data/exaile.desktop.orig   Sun Feb 13 16:17:38 2011
-+++ data/exaile.desktop        Thu Mar 24 18:48:50 2011
-@@ -33,7 +33,7 @@ Comment[pl]=S??uchanie, przegl??danie i modyfikowanie 
+Index: data/exaile.desktop
+--- data/exaile.desktop.orig
++++ data/exaile.desktop
+@@ -36,7 +36,7 @@ Comment[pl]=S??uchanie, przegl??danie i modyfikowanie 
  Comment[sv]=Spela, utforska och hantera din musiksamling
  Comment[pt_BR]=Escute, gerencie ou edite sua cole????o de m??sicas
  Comment[ro]=Asculta??i, r??sfoi??i sau edita??i-v?? colec??ia de muzic??
 -Icon=exaile
 +Icon=${TRUEPREFIX}/share/pixmaps/exaile.png
- Exec=exaile %F
+ Exec=exaile --quiet %F
  Terminal=false
- 
MimeType=audio/musepack;application/musepack;application/x-ape;audio/ape;audio/x-ape;audio/x-musepack;application/x-musepack;audio/x-mp3;application/x-id3;audio/mpeg;audio/x-mpeg;audio/x-mpeg-3;audio/mpeg3;audio/mp3;audio/x-m4a;audio/mpc;audio/x-mpc;audio/mp;audio/x-mp;application/ogg;application/x-ogg;audio/vorbis;audio/x-vorbis;audio/ogg;audio/x-ogg;audio/x-flac;application/x-flac;audio/flac;
+ StartupWMClass=exaile.py
Index: patches/patch-plugins_Makefile
===================================================================
RCS file: /cvs/ports/audio/exaile/patches/patch-plugins_Makefile,v
retrieving revision 1.6
diff -u -p -r1.6 patch-plugins_Makefile
--- patches/patch-plugins_Makefile      10 Nov 2017 11:07:44 -0000      1.6
+++ patches/patch-plugins_Makefile      30 Mar 2020 12:24:52 -0000
@@ -11,23 +11,36 @@ Index: plugins/Makefile
  
  INSTALL_PLUGINS = `${PYTHON2_CMD} list.py main`
  EXTRA_PLUGINS = `${PYTHON2_CMD} list.py extra`
-@@ -18,15 +18,15 @@ compile:
+@@ -18,24 +18,24 @@ compile:
        -${PYTHON2_CMD} -O -m compileall -q .
  
  install:
--      mkdir -p ${DESTDIR}${PREFIX}${PLUGINSDIR} && \
-+      mkdir -p ${DESTDIR}${TRUEPREFIX}${PLUGINSDIR} && \
+-      install -d -m 755 ${DESTDIR}${PREFIX}${PLUGINSDIR}
++      install -d -m 755 ${DESTDIR}${TRUEPREFIX}${PLUGINSDIR}
        for plugin in ${INSTALL_PLUGINS}; do \
--          cp -r $${plugin} ${DESTDIR}${PREFIX}${PLUGINSDIR} ; \
-+          cp -r $${plugin} ${DESTDIR}${TRUEPREFIX}${PLUGINSDIR} ; \
-           done ;
+-              install -d -m 755 ${DESTDIR}${PREFIX}${PLUGINSDIR}$$plugin && \
++              install -d -m 755 ${DESTDIR}${TRUEPREFIX}${PLUGINSDIR}$$plugin 
&& \
+               for f in `find $$plugin -type f` ; do \
+-                      install -d -m 755 `echo 
${DESTDIR}${PREFIX}${PLUGINSDIR}$$f | \
++                      install -d -m 755 `echo 
${DESTDIR}${TRUEPREFIX}${PLUGINSDIR}$$f | \
+                               xargs dirname` && \
+-                      install -m 644 $$f ${DESTDIR}${PREFIX}${PLUGINSDIR}$$f 
; \
++                      install -m 644 $$f 
${DESTDIR}${TRUEPREFIX}${PLUGINSDIR}$$f ; \
+               done ; \
+     done
  
  extra_install:
--      mkdir -p ${DESTDIR}${PREFIX}${PLUGINSDIR} && \
-+      mkdir -p ${DESTDIR}${TRUEPREFIX}${PLUGINSDIR} && \
+-      install -d -m 755 ${DESTDIR}${PREFIX}${PLUGINSDIR}
++      install -d -m 755 ${DESTDIR}${TRUEPREFIX}${PLUGINSDIR}
        for plugin in ${EXTRA_PLUGINS}; do \
--          cp -r $${plugin} ${DESTDIR}${PREFIX}${PLUGINSDIR} ; \
-+          cp -r $${plugin} ${DESTDIR}${TRUEPREFIX}${PLUGINSDIR} ; \
-           done ;
+-              install -d -m 755 ${DESTDIR}${PREFIX}${PLUGINSDIR}$$plugin && \
++              install -d -m 755 ${DESTDIR}${TRUEPREFIX}${PLUGINSDIR}$$plugin 
&& \
+               for f in `find $$plugin -type f` ; do \
+-                      install -d -m 755 `echo 
${DESTDIR}${PREFIX}${PLUGINSDIR}$$f | \
++                      install -d -m 755 `echo 
${DESTDIR}${TRUEPREFIX}${PLUGINSDIR}$$f | \
+                               xargs dirname` && \
+-                      install -m 644 $$f ${DESTDIR}${PREFIX}${PLUGINSDIR}$$f 
; \
++                      install -m 644 $$f 
${DESTDIR}${TRUEPREFIX}${PLUGINSDIR}$$f ; \
+               done ; \
+     done
  
- uninstall:
Index: patches/patch-plugins_daapserver_spydaap_metadata_py
===================================================================
RCS file: patches/patch-plugins_daapserver_spydaap_metadata_py
diff -N patches/patch-plugins_daapserver_spydaap_metadata_py
--- patches/patch-plugins_daapserver_spydaap_metadata_py        15 Jul 2010 
09:58:47 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-plugins_daapserver_spydaap_metadata_py,v 1.2 2010/07/15 
09:58:47 giovanni Exp $
---- plugins/daapserver/spydaap/metadata.py.orig        Mon May 31 21:10:10 2010
-+++ plugins/daapserver/spydaap/metadata.py     Wed Jun  9 19:01:48 2010
-@@ -15,7 +15,7 @@
- 
- from __future__ import with_statement
- import warnings
--with warnings.catch_warnings():
-+class catch_warnings():
-     warnings.simplefilter("ignore")
-     import md5
- 
Index: patches/patch-tests_xl_trax_test_track_py
===================================================================
RCS file: /cvs/ports/audio/exaile/patches/patch-tests_xl_trax_test_track_py,v
retrieving revision 1.1
diff -u -p -r1.1 patch-tests_xl_trax_test_track_py
--- patches/patch-tests_xl_trax_test_track_py   21 Apr 2010 07:02:42 -0000      
1.1
+++ patches/patch-tests_xl_trax_test_track_py   30 Mar 2020 12:24:52 -0000
@@ -1,21 +1,22 @@
 $OpenBSD: patch-tests_xl_trax_test_track_py,v 1.1 2010/04/21 07:02:42 giovanni 
Exp $
---- tests/xl/trax/test_track.py.orig   Mon Apr 12 12:00:02 2010
-+++ tests/xl/trax/test_track.py        Mon Apr 12 12:00:12 2010
-@@ -188,7 +188,7 @@ class TestTrack(unittest.TestCase):
-                 shutil.copyfileobj(open(tr_url, 'r'), temp_copy)
-                 tr = track.Track(temp_copy.name)
-                 del tr
--                os.chmod(temp_copy.name, 0o000)
-+                os.chmod(temp_copy.name, 0x000)
-                 tr = track.Track(temp_copy.name)
-                 # Remove the artist tag and reread from file. This is done
-                 # because of the whole flyweight thing
-@@ -214,7 +214,7 @@ class TestTrack(unittest.TestCase):
-             with tempfile.NamedTemporaryFile(suffix=suffix) as temp_copy:
-                 # Copy and write new file
-                 shutil.copyfileobj(open(tr_url, 'r'), temp_copy)
--                os.chmod(temp_copy.name, 0o444)
-+                os.chmod(temp_copy.name, 0x444)
-                 tr = track.Track(temp_copy.name)
-                 tr.set_tag_raw('artist', 'Delerium')
-                 self.assertFalse(tr.write_tags())
+Index: tests/xl/trax/test_track.py
+--- tests/xl/trax/test_track.py.orig
++++ tests/xl/trax/test_track.py
+@@ -185,7 +185,7 @@ class TestTrack(object):
+         # first, ensure that we can actually read the tags to begin with
+         assert tr.read_tags()
+ 
+-        os.chmod(test_track_fp.name, 0o000)
++        os.chmod(test_track_fp.name, 0x000)
+ 
+         # opening the file should fail...
+         with pytest.raises(IOError):
+@@ -197,7 +197,7 @@ class TestTrack(object):
+ 
+     def test_write_tags_no_perms(self, test_track_fp):
+ 
+-        os.chmod(test_track_fp.name, 0o444)
++        os.chmod(test_track_fp.name, 0x444)
+ 
+         tr = track.Track(test_track_fp.name)
+         tr.set_tag_raw('artist', random_str())
Index: patches/patch-tools_generate-launcher
===================================================================
RCS file: /cvs/ports/audio/exaile/patches/patch-tools_generate-launcher,v
retrieving revision 1.3
diff -u -p -r1.3 patch-tools_generate-launcher
--- patches/patch-tools_generate-launcher       11 Jan 2013 10:17:19 -0000      
1.3
+++ patches/patch-tools_generate-launcher       30 Mar 2020 12:24:52 -0000
@@ -1,19 +1,21 @@
 $OpenBSD: patch-tools_generate-launcher,v 1.3 2013/01/11 10:17:19 giovanni Exp 
$
---- tools/generate-launcher.orig       Thu Nov 15 18:28:50 2012
-+++ tools/generate-launcher    Thu Jan  3 18:21:13 2013
-@@ -27,14 +27,14 @@ cat <<EOF > exaile
+Index: tools/generate-launcher
+--- tools/generate-launcher.orig
++++ tools/generate-launcher
+@@ -5,7 +5,7 @@
+ printf "Generating launcher script\n"
  
- # Exaile launcher script (automatically generated)
- 
--EXAILE_PREFIX=${PREFIX}
-+EXAILE_PREFIX=${TRUEPREFIX}
- 
- if test -z "\${XDG_DATA_DIRS}"; then
-       XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
+ DESTDIR=${1:-}
+-PREFIX=${2:-/usr/local}
++PREFIX=${2:-${TRUEPREFIX}}
+ EPREFIX=${3:-${PREFIX}}
+ LIBDIR=${4:-${EPREFIX}/lib}
+ PYTHON2_CMD=${5:-python2}
+@@ -25,7 +25,7 @@ if test -z "\${XDG_DATA_DIRS}"; then
  fi
  XDG_DATA_DIRS="\${EXAILE_PREFIX}/share/:\${XDG_DATA_DIRS}"
  export XDG_DATA_DIRS
--exec ${PYTHON2_CMD} \${EXAILE_PREFIX}${LIBDIR}/exaile/exaile.py 
--datadir=\${EXAILE_PREFIX}/share/exaile/data --startgui ${DEFAULTARGS} "\$@"
+-exec ${PYTHON2_CMD} \${EXAILE_LIBDIR}/exaile/exaile.py 
--datadir=\${EXAILE_PREFIX}/share/exaile/data --startgui ${DEFAULTARGS} "\$@"
 +exec ${PYTHON2_CMD} \${MODPY_SITEPKG}/exaile/exaile.py 
--datadir=\${EXAILE_PREFIX}/share/exaile/data --startgui ${DEFAULTARGS} "\$@"
  exit \$?
  
Index: patches/patch-xl_main_py
===================================================================
RCS file: /cvs/ports/audio/exaile/patches/patch-xl_main_py,v
retrieving revision 1.5
diff -u -p -r1.5 patch-xl_main_py
--- patches/patch-xl_main_py    9 Jul 2017 10:03:05 -0000       1.5
+++ patches/patch-xl_main_py    30 Mar 2020 12:24:52 -0000
@@ -2,9 +2,9 @@ $OpenBSD: patch-xl_main_py,v 1.5 2017/07
 Index: xl/main.py
 --- xl/main.py.orig
 +++ xl/main.py
-@@ -698,6 +698,8 @@ class Exaile(object):
+@@ -864,6 +864,8 @@ class Exaile(object):
                  context.iteration(True)
-             except:
+             except Exception:
                  pass
 +            finally:
 +                gtk.gdk.threads_leave()
Index: patches/patch-xlgui___init___py
===================================================================
RCS file: patches/patch-xlgui___init___py
diff -N patches/patch-xlgui___init___py
--- patches/patch-xlgui___init___py     9 Jul 2017 10:03:05 -0000       1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-xlgui___init___py,v 1.4 2017/07/09 10:03:05 bcallah Exp $
-Index: xlgui/__init__.py
---- xlgui/__init__.py.orig
-+++ xlgui/__init__.py
-@@ -352,7 +352,6 @@ class Main(object):
- 
-         # save open tabs
-         self.main.playlist_container.save_current_tabs()
--        gtk.gdk.threads_leave()
- 
-     @guiutil.idle_add()
-     def add_device_panel(self, type, obj, device):
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/audio/exaile/pkg/DESCR,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 DESCR
--- pkg/DESCR   23 Jul 2009 08:02:36 -0000      1.1.1.1
+++ pkg/DESCR   30 Mar 2020 12:24:52 -0000
@@ -1,4 +1,4 @@
-Exaile is a music manager and player for GTK+ written in Python.
-It incorporates automatic fetching of album art, handling of large
-libraries, lyrics fetching, artist/album information via Wikipedia,
-Last.fm submission support, and optional iPod support via a plugin. 
+Exaile is a music player with a simple interface and powerful music
+management capabilities. Features include automatic fetching of album
+art, lyrics fetching, streaming internet radio, tabbed playlists, smart
+playlists with extensive filtering/search capabilities, and much more.
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/audio/exaile/pkg/PLIST,v
retrieving revision 1.15
diff -u -p -r1.15 PLIST
--- pkg/PLIST   27 Jun 2018 21:03:35 -0000      1.15
+++ pkg/PLIST   30 Mar 2020 12:24:52 -0000
@@ -28,69 +28,21 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/__init__.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/__init__.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/__init__.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_apev2.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_apev2.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_apev2.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_base.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_base.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_base.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_id3.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_id3.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_id3.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_matroska.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_matroska.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/_matroska.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/ape.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/ape.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/ape.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/asf.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/asf.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/asf.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/flac.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/flac.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/flac.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mka.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mka.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mka.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mod.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mod.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mod.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mp3.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mp3.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mp3.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mp4.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mp4.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mp4.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mpc.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mpc.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/mpc.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/ogg.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/ogg.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/ogg.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/sid.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/sid.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/sid.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/speex.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/speex.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/speex.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/tags.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/tags.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/tags.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/tta.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/tta.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/tta.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/wav.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/wav.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/wav.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/wv.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/wv.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/wv.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/gi_composites.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/gi_composites.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/gi_composites.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/sigint.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/sigint.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/externals/sigint.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/formatter.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/formatter.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/formatter.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/hal.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/hal.pyc
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/hal.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/logger_setup.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/logger_setup.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/logger_setup.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/lyrics.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/lyrics.pyc
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/lyrics.${MODPY_PYOEXTENSION}
@@ -113,6 +65,9 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/_matroska.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/_matroska.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/_matroska.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/aiff.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/aiff.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/aiff.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/ape.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/ape.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/metadata/ape.${MODPY_PYOEXTENSION}
@@ -166,13 +121,22 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/__init__.py
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/__init__.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/__init__.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/covers_1to2.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/covers_1to2.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/covers_1to2.${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/from1to2.py
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/from1to2.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/from1to2.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/to_bsddb.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/to_bsddb.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/database/to_bsddb.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/__init__.py
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/__init__.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/__init__.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/engine.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/engine.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/engine.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/osd.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/osd.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/migrations/settings/osd.${MODPY_PYOEXTENSION}
@@ -186,30 +150,43 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/__init__.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/__init__.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/__init__.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/_base.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/_base.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/_base.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/adapters.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/adapters.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/adapters.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine_normal.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine_normal.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine_normal.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine_unified.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine_unified.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine_unified.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/pipe.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/pipe.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/pipe.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/engine.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/__init__.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/__init__.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/__init__.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/dynamic_sink.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/dynamic_sink.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/dynamic_sink.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/engine.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/engine.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/engine.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/gst_utils.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/gst_utils.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/gst_utils.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/missing_plugin.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/missing_plugin.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/missing_plugin.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/sink.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/sink.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/sink.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/sink_windows.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/sink_windows.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/gst/sink_windows.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/player.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/player.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/player.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/queue.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/queue.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/queue.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/sink_osx.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/sink_osx.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/sink_osx.${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/sink_windows.py
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/sink_windows.pyc
-lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/sink_windows.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/track_fader.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/track_fader.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/player/track_fader.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/playlist.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/playlist.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/playlist.${MODPY_PYOEXTENSION}
@@ -244,6 +221,9 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/trax/util.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/trax/util.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/trax/util.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/unicode.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/unicode.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xl/unicode.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/version.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xl/version.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xl/version.${MODPY_PYOEXTENSION}
@@ -297,6 +277,9 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/flatplaylist.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/flatplaylist.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/flatplaylist.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/lyrics.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/lyrics.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/lyrics.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/menus.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/menus.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/panel/menus.${MODPY_PYOEXTENSION}
@@ -325,6 +308,9 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/cover.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/cover.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/cover.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/lyrics.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/lyrics.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/lyrics.${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/playback.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/playback.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/preferences/playback.${MODPY_PYOEXTENSION}
@@ -386,21 +372,25 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/widgets/rating.py
 lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/widgets/rating.pyc
 
lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/widgets/rating.${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/widgets/smart_playlist_editor.py
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/widgets/smart_playlist_editor.pyc
+lib/python${MODPY_VERSION}/site-packages/exaile/xlgui/widgets/smart_playlist_editor.${MODPY_PYOEXTENSION}
+@man man/man1/exaile.1
 share/appdata/
 share/appdata/exaile.appdata.xml
 share/applications/exaile.desktop
+share/bash-completion/completions/exaile
 share/dbus-1/services/org.exaile.Exaile.service
 share/exaile/
 share/exaile/data/
 share/exaile/data/images/
+share/exaile/data/images/128x128
 share/exaile/data/images/16x16/
 share/exaile/data/images/16x16/artist.png
-share/exaile/data/images/16x16/audio-x-generic.png
 share/exaile/data/images/16x16/exaile-pause.png
 share/exaile/data/images/16x16/exaile-play.png
 share/exaile/data/images/16x16/exaile.png
 share/exaile/data/images/16x16/extension.png
-share/exaile/data/images/16x16/folder-music.png
 share/exaile/data/images/16x16/genre.png
 share/exaile/data/images/16x16/media-playlist-dynamic.png
 share/exaile/data/images/16x16/media-playlist-repeat.png
@@ -413,7 +403,6 @@ share/exaile/data/images/22x22/exaile-pa
 share/exaile/data/images/22x22/exaile-play.png
 share/exaile/data/images/22x22/exaile.png
 share/exaile/data/images/22x22/extension.png
-share/exaile/data/images/22x22/folder-music.png
 share/exaile/data/images/22x22/genre.png
 share/exaile/data/images/22x22/media-playlist-dynamic.png
 share/exaile/data/images/22x22/media-playlist-repeat.png
@@ -426,7 +415,6 @@ share/exaile/data/images/24x24/exaile-pa
 share/exaile/data/images/24x24/exaile-play.png
 share/exaile/data/images/24x24/exaile.png
 share/exaile/data/images/24x24/extension.png
-share/exaile/data/images/24x24/folder-music.png
 share/exaile/data/images/24x24/genre.png
 share/exaile/data/images/24x24/media-playlist-dynamic.png
 share/exaile/data/images/24x24/media-playlist-repeat.png
@@ -439,7 +427,6 @@ share/exaile/data/images/32x32/exaile-pa
 share/exaile/data/images/32x32/exaile-play.png
 share/exaile/data/images/32x32/exaile.png
 share/exaile/data/images/32x32/extension.png
-share/exaile/data/images/32x32/folder-music.png
 share/exaile/data/images/32x32/genre.png
 share/exaile/data/images/32x32/media-playlist-dynamic.png
 share/exaile/data/images/32x32/media-playlist-repeat.png
@@ -451,14 +438,13 @@ share/exaile/data/images/48x48/exaile-pa
 share/exaile/data/images/48x48/exaile-play.png
 share/exaile/data/images/48x48/exaile.png
 share/exaile/data/images/48x48/extension.png
-share/exaile/data/images/48x48/folder-music.png
 share/exaile/data/images/48x48/genre.png
 share/exaile/data/images/48x48/office-calendar.png
-share/exaile/data/images/emptystar.png
 share/exaile/data/images/exailelogo.png
 share/exaile/data/images/nocover.png
 share/exaile/data/images/scalable/
 share/exaile/data/images/scalable/artist.svg
+share/exaile/data/images/scalable/exaile-noshadow.svg
 share/exaile/data/images/scalable/exaile-pause.svg
 share/exaile/data/images/scalable/exaile-play.svg
 share/exaile/data/images/scalable/exaile.svg
@@ -466,15 +452,6 @@ share/exaile/data/images/scalable/extens
 share/exaile/data/images/scalable/genre.svg
 share/exaile/data/images/scalable/office-calendar.svg
 share/exaile/data/images/splash.png
-share/exaile/data/images/star.png
-share/exaile/data/migrations/
-share/exaile/data/migrations/__init__.py
-share/exaile/data/migrations/migration_200907100931/
-share/exaile/data/migrations/migration_200907100931/__init__.py
-share/exaile/data/migrations/migration_200907100931/olddb.py
-share/exaile/data/migrations/migration_200907100931/oldexailelib.py
-share/exaile/data/migrations/migration_200907100931/oldtrack.py
-share/exaile/data/migrations/migration_200907100931/xlmisc.py
 share/exaile/data/plugins/
 share/exaile/data/plugins/abrepeat/
 share/exaile/data/plugins/abrepeat/PLUGININFO
@@ -519,29 +496,21 @@ share/exaile/data/plugins/audioscrobbler
 share/exaile/data/plugins/audioscrobbler/icons/16x16/audioscrobbler.png
 share/exaile/data/plugins/audioscrobbler/icons/22x22/
 share/exaile/data/plugins/audioscrobbler/icons/22x22/audioscrobbler.png
-share/exaile/data/plugins/awn/
-share/exaile/data/plugins/awn/PLUGININFO
-share/exaile/data/plugins/awn/__init__.py
-share/exaile/data/plugins/awn/__init__.pyc
-share/exaile/data/plugins/awn/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/awn/awn_prefs.py
-share/exaile/data/plugins/awn/awn_prefs.pyc
-share/exaile/data/plugins/awn/awn_prefs.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/awn/awn_prefs_pane.ui
 share/exaile/data/plugins/bookmarks/
 share/exaile/data/plugins/bookmarks/PLUGININFO
 share/exaile/data/plugins/bookmarks/__init__.py
 share/exaile/data/plugins/bookmarks/__init__.pyc
 share/exaile/data/plugins/bookmarks/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/bookmarks/bookmarks_pane.ui
-share/exaile/data/plugins/bookmarks/bookmarksprefs.py
-share/exaile/data/plugins/bookmarks/bookmarksprefs.pyc
-share/exaile/data/plugins/bookmarks/bookmarksprefs.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/bpm/
 share/exaile/data/plugins/bpm/PLUGININFO
 share/exaile/data/plugins/bpm/__init__.py
 share/exaile/data/plugins/bpm/__init__.pyc
 share/exaile/data/plugins/bpm/__init__.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/bpm/bpm.ui
+share/exaile/data/plugins/bpm/bpmdetect.py
+share/exaile/data/plugins/bpm/bpmdetect.pyc
+share/exaile/data/plugins/bpm/bpmdetect.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/bpm/msg.ui
 share/exaile/data/plugins/cd/
 share/exaile/data/plugins/cd/PLUGININFO
 share/exaile/data/plugins/cd/__init__.py
@@ -554,53 +523,12 @@ share/exaile/data/plugins/cd/cdprefs.py
 share/exaile/data/plugins/cd/cdprefs.pyc
 share/exaile/data/plugins/cd/cdprefs.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/cd/cdprefs_pane.ui
-share/exaile/data/plugins/cd/importer.py
-share/exaile/data/plugins/cd/importer.pyc
-share/exaile/data/plugins/cd/importer.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/contextinfo/
-share/exaile/data/plugins/contextinfo/PLUGININFO
-share/exaile/data/plugins/contextinfo/__init__.py
-share/exaile/data/plugins/contextinfo/__init__.pyc
-share/exaile/data/plugins/contextinfo/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/contextinfo/classic/
-share/exaile/data/plugins/contextinfo/classic/artist.html
-share/exaile/data/plugins/contextinfo/classic/default.html
-share/exaile/data/plugins/contextinfo/classic/images/
-share/exaile/data/plugins/contextinfo/classic/images/bg-bottom.png
-share/exaile/data/plugins/contextinfo/classic/images/bg-top.png
-share/exaile/data/plugins/contextinfo/classic/images/img-back100.png
-share/exaile/data/plugins/contextinfo/classic/images/img-back60.png
-share/exaile/data/plugins/contextinfo/classic/images/light.png
-share/exaile/data/plugins/contextinfo/classic/js/
-share/exaile/data/plugins/contextinfo/classic/js/util.js
-share/exaile/data/plugins/contextinfo/classic/lyrics.html
-share/exaile/data/plugins/contextinfo/classic/playing.html
-share/exaile/data/plugins/contextinfo/classic/style.css
-share/exaile/data/plugins/contextinfo/classic/tag.html
-share/exaile/data/plugins/contextinfo/context.ui
-share/exaile/data/plugins/contextinfo/context_pane.ui
-share/exaile/data/plugins/contextinfo/contextprefs.py
-share/exaile/data/plugins/contextinfo/contextprefs.pyc
-share/exaile/data/plugins/contextinfo/contextprefs.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/contextinfo/extended/
-share/exaile/data/plugins/contextinfo/extended/artist.html
-share/exaile/data/plugins/contextinfo/extended/default.html
-share/exaile/data/plugins/contextinfo/extended/images/
-share/exaile/data/plugins/contextinfo/extended/images/bg-bottom.png
-share/exaile/data/plugins/contextinfo/extended/images/bg-top.png
-share/exaile/data/plugins/contextinfo/extended/images/img-back100.png
-share/exaile/data/plugins/contextinfo/extended/images/img-back60.png
-share/exaile/data/plugins/contextinfo/extended/images/light.png
-share/exaile/data/plugins/contextinfo/extended/js/
-share/exaile/data/plugins/contextinfo/extended/js/util.js
-share/exaile/data/plugins/contextinfo/extended/lyrics.html
-share/exaile/data/plugins/contextinfo/extended/playing.html
-share/exaile/data/plugins/contextinfo/extended/style.css
-share/exaile/data/plugins/contextinfo/extended/tag.html
-share/exaile/data/plugins/contextinfo/inspector.py
-share/exaile/data/plugins/contextinfo/inspector.pyc
-share/exaile/data/plugins/contextinfo/inspector.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/contextinfo/loader.gif
+share/exaile/data/plugins/console/
+share/exaile/data/plugins/console/PLUGININFO
+share/exaile/data/plugins/console/__init__.py
+share/exaile/data/plugins/console/__init__.pyc
+share/exaile/data/plugins/console/__init__.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/console/console_window.ui
 share/exaile/data/plugins/currentsong/
 share/exaile/data/plugins/currentsong/PLUGININFO
 share/exaile/data/plugins/currentsong/__init__.py
@@ -611,21 +539,18 @@ share/exaile/data/plugins/daapclient/PLU
 share/exaile/data/plugins/daapclient/__init__.py
 share/exaile/data/plugins/daapclient/__init__.pyc
 share/exaile/data/plugins/daapclient/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapclient/daap.py
-share/exaile/data/plugins/daapclient/daap.pyc
-share/exaile/data/plugins/daapclient/daap.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapclient/daap_data.py
-share/exaile/data/plugins/daapclient/daap_data.pyc
-share/exaile/data/plugins/daapclient/daap_data.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/daapclient/client.py
+share/exaile/data/plugins/daapclient/client.pyc
+share/exaile/data/plugins/daapclient/client.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/daapclient/daapclient_prefs.ui
 share/exaile/data/plugins/daapclient/daapclientprefs.py
 share/exaile/data/plugins/daapclient/daapclientprefs.pyc
 share/exaile/data/plugins/daapclient/daapclientprefs.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/daapclient/test.py
+share/exaile/data/plugins/daapclient/test.pyc
+share/exaile/data/plugins/daapclient/test.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/daapserver/
-share/exaile/data/plugins/daapserver/COPYING
 share/exaile/data/plugins/daapserver/PLUGININFO
-share/exaile/data/plugins/daapserver/README
-share/exaile/data/plugins/daapserver/TODO
 share/exaile/data/plugins/daapserver/__init__.py
 share/exaile/data/plugins/daapserver/__init__.pyc
 share/exaile/data/plugins/daapserver/__init__.${MODPY_PYOEXTENSION}
@@ -636,65 +561,12 @@ share/exaile/data/plugins/daapserver/daa
 share/exaile/data/plugins/daapserver/daapserverprefs.py
 share/exaile/data/plugins/daapserver/daapserverprefs.pyc
 share/exaile/data/plugins/daapserver/daapserverprefs.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/daapserver/exaile_parser.py
+share/exaile/data/plugins/daapserver/exaile_parser.pyc
+share/exaile/data/plugins/daapserver/exaile_parser.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/daapserver/server.py
 share/exaile/data/plugins/daapserver/server.pyc
 share/exaile/data/plugins/daapserver/server.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/
-share/exaile/data/plugins/daapserver/spydaap.py
-share/exaile/data/plugins/daapserver/spydaap.pyc
-share/exaile/data/plugins/daapserver/spydaap.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/__init__.py
-share/exaile/data/plugins/daapserver/spydaap/__init__.pyc
-share/exaile/data/plugins/daapserver/spydaap/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/cache.py
-share/exaile/data/plugins/daapserver/spydaap/cache.pyc
-share/exaile/data/plugins/daapserver/spydaap/cache.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/containers.py
-share/exaile/data/plugins/daapserver/spydaap/containers.pyc
-share/exaile/data/plugins/daapserver/spydaap/containers.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/daap.py
-share/exaile/data/plugins/daapserver/spydaap/daap.pyc
-share/exaile/data/plugins/daapserver/spydaap/daap.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/daap_data.py
-share/exaile/data/plugins/daapserver/spydaap/daap_data.pyc
-share/exaile/data/plugins/daapserver/spydaap/daap_data.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/metadata.py
-share/exaile/data/plugins/daapserver/spydaap/metadata.pyc
-share/exaile/data/plugins/daapserver/spydaap/metadata.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/parser/
-share/exaile/data/plugins/daapserver/spydaap/parser/__init__.py
-share/exaile/data/plugins/daapserver/spydaap/parser/__init__.pyc
-share/exaile/data/plugins/daapserver/spydaap/parser/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/parser/avi.py
-share/exaile/data/plugins/daapserver/spydaap/parser/avi.pyc
-share/exaile/data/plugins/daapserver/spydaap/parser/avi.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/parser/exaile.py
-share/exaile/data/plugins/daapserver/spydaap/parser/exaile.pyc
-share/exaile/data/plugins/daapserver/spydaap/parser/exaile.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/parser/flac.py
-share/exaile/data/plugins/daapserver/spydaap/parser/flac.pyc
-share/exaile/data/plugins/daapserver/spydaap/parser/flac.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/parser/mov.py
-share/exaile/data/plugins/daapserver/spydaap/parser/mov.pyc
-share/exaile/data/plugins/daapserver/spydaap/parser/mov.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/parser/mp3.py
-share/exaile/data/plugins/daapserver/spydaap/parser/mp3.pyc
-share/exaile/data/plugins/daapserver/spydaap/parser/mp3.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/parser/ogg.py
-share/exaile/data/plugins/daapserver/spydaap/parser/ogg.pyc
-share/exaile/data/plugins/daapserver/spydaap/parser/ogg.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/parser/vorbis.py
-share/exaile/data/plugins/daapserver/spydaap/parser/vorbis.pyc
-share/exaile/data/plugins/daapserver/spydaap/parser/vorbis.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/playlists.py
-share/exaile/data/plugins/daapserver/spydaap/playlists.pyc
-share/exaile/data/plugins/daapserver/spydaap/playlists.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/server.py
-share/exaile/data/plugins/daapserver/spydaap/server.pyc
-share/exaile/data/plugins/daapserver/spydaap/server.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/daapserver/spydaap/zeroconf.py
-share/exaile/data/plugins/daapserver/spydaap/zeroconf.pyc
-share/exaile/data/plugins/daapserver/spydaap/zeroconf.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/desktopcover/
 share/exaile/data/plugins/desktopcover/PLUGININFO
 share/exaile/data/plugins/desktopcover/__init__.py
@@ -704,28 +576,18 @@ share/exaile/data/plugins/desktopcover/d
 share/exaile/data/plugins/desktopcover/desktopcover_preferences.pyc
 
share/exaile/data/plugins/desktopcover/desktopcover_preferences.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/desktopcover/desktopcover_preferences.ui
-share/exaile/data/plugins/droptrayicon/
-share/exaile/data/plugins/droptrayicon/PLUGININFO
-share/exaile/data/plugins/droptrayicon/__init__.py
-share/exaile/data/plugins/droptrayicon/__init__.pyc
-share/exaile/data/plugins/droptrayicon/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/droptrayicon/drop_target_window.ui
+share/exaile/data/plugins/developer/
+share/exaile/data/plugins/developer/PLUGININFO
+share/exaile/data/plugins/developer/__init__.py
+share/exaile/data/plugins/developer/__init__.pyc
+share/exaile/data/plugins/developer/__init__.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/developer/developer_window.ui
 share/exaile/data/plugins/equalizer/
 share/exaile/data/plugins/equalizer/PLUGININFO
 share/exaile/data/plugins/equalizer/__init__.py
 share/exaile/data/plugins/equalizer/__init__.pyc
 share/exaile/data/plugins/equalizer/__init__.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/equalizer/equalizer.ui
-share/exaile/data/plugins/exfalso/
-share/exaile/data/plugins/exfalso/PLUGININFO
-share/exaile/data/plugins/exfalso/__init__.py
-share/exaile/data/plugins/exfalso/__init__.pyc
-share/exaile/data/plugins/exfalso/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/gnomemmkeys/
-share/exaile/data/plugins/gnomemmkeys/PLUGININFO
-share/exaile/data/plugins/gnomemmkeys/__init__.py
-share/exaile/data/plugins/gnomemmkeys/__init__.pyc
-share/exaile/data/plugins/gnomemmkeys/__init__.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/grouptagger/
 share/exaile/data/plugins/grouptagger/PLUGININFO
 share/exaile/data/plugins/grouptagger/__init__.py
@@ -734,6 +596,9 @@ share/exaile/data/plugins/grouptagger/__
 share/exaile/data/plugins/grouptagger/gt_common.py
 share/exaile/data/plugins/grouptagger/gt_common.pyc
 share/exaile/data/plugins/grouptagger/gt_common.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/grouptagger/gt_export.py
+share/exaile/data/plugins/grouptagger/gt_export.pyc
+share/exaile/data/plugins/grouptagger/gt_export.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/grouptagger/gt_import.py
 share/exaile/data/plugins/grouptagger/gt_import.pyc
 share/exaile/data/plugins/grouptagger/gt_import.${MODPY_PYOEXTENSION}
@@ -777,24 +642,9 @@ share/exaile/data/plugins/ipconsole/ipco
 share/exaile/data/plugins/ipconsole/ipconsoleprefs.py
 share/exaile/data/plugins/ipconsole/ipconsoleprefs.pyc
 share/exaile/data/plugins/ipconsole/ipconsoleprefs.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/ipconsole/ipython_view/
-share/exaile/data/plugins/ipconsole/ipython_view/__init__.py
-share/exaile/data/plugins/ipconsole/ipython_view/__init__.pyc
-share/exaile/data/plugins/ipconsole/ipython_view/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view.py
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view.pyc
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view2.py
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view2.pyc
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view2.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view2gi.py
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view2gi.pyc
-share/exaile/data/plugins/ipconsole/ipython_view/ipython_view2gi.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/ipod/
-share/exaile/data/plugins/ipod/PLUGININFO
-share/exaile/data/plugins/ipod/__init__.py
-share/exaile/data/plugins/ipod/__init__.pyc
-share/exaile/data/plugins/ipod/__init__.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/ipconsole/ipython_view.py
+share/exaile/data/plugins/ipconsole/ipython_view.pyc
+share/exaile/data/plugins/ipconsole/ipython_view.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/jamendo/
 share/exaile/data/plugins/jamendo/PLUGININFO
 share/exaile/data/plugins/jamendo/__init__.py
@@ -809,71 +659,6 @@ share/exaile/data/plugins/jamendo/jamtre
 share/exaile/data/plugins/jamendo/menu.py
 share/exaile/data/plugins/jamendo/menu.pyc
 share/exaile/data/plugins/jamendo/menu.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/
-share/exaile/data/plugins/jamendo/simplejson/__init__.py
-share/exaile/data/plugins/jamendo/simplejson/__init__.pyc
-share/exaile/data/plugins/jamendo/simplejson/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/decoder.py
-share/exaile/data/plugins/jamendo/simplejson/decoder.pyc
-share/exaile/data/plugins/jamendo/simplejson/decoder.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/encoder.py
-share/exaile/data/plugins/jamendo/simplejson/encoder.pyc
-share/exaile/data/plugins/jamendo/simplejson/encoder.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/scanner.py
-share/exaile/data/plugins/jamendo/simplejson/scanner.pyc
-share/exaile/data/plugins/jamendo/simplejson/scanner.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/
-share/exaile/data/plugins/jamendo/simplejson/tests/__init__.py
-share/exaile/data/plugins/jamendo/simplejson/tests/__init__.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_check_circular.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_check_circular.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_check_circular.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_decode.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_decode.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_decode.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_default.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_default.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_default.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_dump.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_dump.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_dump.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_encode_basestring_ascii.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_encode_basestring_ascii.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_encode_basestring_ascii.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_fail.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_fail.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_fail.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_float.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_float.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_float.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_indent.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_indent.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_indent.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass1.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass1.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass1.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass2.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass2.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass2.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass3.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass3.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_pass3.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_recursion.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_recursion.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_recursion.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_scanstring.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_scanstring.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_scanstring.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_separators.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_separators.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_separators.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tests/test_unicode.py
-share/exaile/data/plugins/jamendo/simplejson/tests/test_unicode.pyc
-share/exaile/data/plugins/jamendo/simplejson/tests/test_unicode.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/jamendo/simplejson/tool.py
-share/exaile/data/plugins/jamendo/simplejson/tool.pyc
-share/exaile/data/plugins/jamendo/simplejson/tool.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/jamendo/ui/
 share/exaile/data/plugins/jamendo/ui/jamendo_panel.ui
 share/exaile/data/plugins/karaoke/
@@ -881,6 +666,11 @@ share/exaile/data/plugins/karaoke/PLUGIN
 share/exaile/data/plugins/karaoke/__init__.py
 share/exaile/data/plugins/karaoke/__init__.pyc
 share/exaile/data/plugins/karaoke/__init__.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/keybinder/
+share/exaile/data/plugins/keybinder/PLUGININFO
+share/exaile/data/plugins/keybinder/__init__.py
+share/exaile/data/plugins/keybinder/__init__.pyc
+share/exaile/data/plugins/keybinder/__init__.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/lastfmcovers/
 share/exaile/data/plugins/lastfmcovers/PLUGININFO
 share/exaile/data/plugins/lastfmcovers/__init__.py
@@ -937,18 +727,6 @@ share/exaile/data/plugins/lyricsmania/PL
 share/exaile/data/plugins/lyricsmania/__init__.py
 share/exaile/data/plugins/lyricsmania/__init__.pyc
 share/exaile/data/plugins/lyricsmania/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/lyricsviewer/
-share/exaile/data/plugins/lyricsviewer/PLUGININFO
-share/exaile/data/plugins/lyricsviewer/__init__.py
-share/exaile/data/plugins/lyricsviewer/__init__.pyc
-share/exaile/data/plugins/lyricsviewer/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/lyricsviewer/images/
-share/exaile/data/plugins/lyricsviewer/images/loading.gif
-share/exaile/data/plugins/lyricsviewer/lyricsviewer.ui
-share/exaile/data/plugins/lyricsviewer/lyricsviewer_prefs.ui
-share/exaile/data/plugins/lyricsviewer/lyricsviewerprefs.py
-share/exaile/data/plugins/lyricsviewer/lyricsviewerprefs.pyc
-share/exaile/data/plugins/lyricsviewer/lyricsviewerprefs.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/lyricwiki/
 share/exaile/data/plugins/lyricwiki/PLUGININFO
 share/exaile/data/plugins/lyricwiki/__init__.py
@@ -991,30 +769,33 @@ share/exaile/data/plugins/moodbar/PLUGIN
 share/exaile/data/plugins/moodbar/__init__.py
 share/exaile/data/plugins/moodbar/__init__.pyc
 share/exaile/data/plugins/moodbar/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/moodbar/moodbarprefs.py
-share/exaile/data/plugins/moodbar/moodbarprefs.pyc
-share/exaile/data/plugins/moodbar/moodbarprefs.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/moodbar/moodbarprefs_pane.ui
-share/exaile/data/plugins/mpris/
-share/exaile/data/plugins/mpris/PLUGININFO
-share/exaile/data/plugins/mpris/__init__.py
-share/exaile/data/plugins/mpris/__init__.pyc
-share/exaile/data/plugins/mpris/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/mpris/exaile_mpris.py
-share/exaile/data/plugins/mpris/exaile_mpris.pyc
-share/exaile/data/plugins/mpris/exaile_mpris.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/mpris/mpris_player.py
-share/exaile/data/plugins/mpris/mpris_player.pyc
-share/exaile/data/plugins/mpris/mpris_player.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/mpris/mpris_root.py
-share/exaile/data/plugins/mpris/mpris_root.pyc
-share/exaile/data/plugins/mpris/mpris_root.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/mpris/mpris_tag_converter.py
-share/exaile/data/plugins/mpris/mpris_tag_converter.pyc
-share/exaile/data/plugins/mpris/mpris_tag_converter.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/mpris/mpris_tracklist.py
-share/exaile/data/plugins/mpris/mpris_tracklist.pyc
-share/exaile/data/plugins/mpris/mpris_tracklist.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/moodbar/cache.py
+share/exaile/data/plugins/moodbar/cache.pyc
+share/exaile/data/plugins/moodbar/cache.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/moodbar/generator.py
+share/exaile/data/plugins/moodbar/generator.pyc
+share/exaile/data/plugins/moodbar/generator.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/moodbar/painter.py
+share/exaile/data/plugins/moodbar/painter.pyc
+share/exaile/data/plugins/moodbar/painter.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/moodbar/prefs.py
+share/exaile/data/plugins/moodbar/prefs.pyc
+share/exaile/data/plugins/moodbar/prefs.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/moodbar/prefs.ui
+share/exaile/data/plugins/moodbar/widget.py
+share/exaile/data/plugins/moodbar/widget.pyc
+share/exaile/data/plugins/moodbar/widget.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/mpris2/
+share/exaile/data/plugins/mpris2/PLUGININFO
+share/exaile/data/plugins/mpris2/__init__.py
+share/exaile/data/plugins/mpris2/__init__.pyc
+share/exaile/data/plugins/mpris2/__init__.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/mpris2/dbushelper.py
+share/exaile/data/plugins/mpris2/dbushelper.pyc
+share/exaile/data/plugins/mpris2/dbushelper.${MODPY_PYOEXTENSION}
+share/exaile/data/plugins/mpris2/mprisobject.py
+share/exaile/data/plugins/mpris2/mprisobject.pyc
+share/exaile/data/plugins/mpris2/mprisobject.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/multialarmclock/
 share/exaile/data/plugins/multialarmclock/PLUGININFO
 share/exaile/data/plugins/multialarmclock/__init__.py
@@ -1030,29 +811,10 @@ share/exaile/data/plugins/multialarmcloc
 share/exaile/data/plugins/multialarmclock/macprefs.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/multialarmclock/malrmclk.ui
 share/exaile/data/plugins/musicbrainzcovers/
-share/exaile/data/plugins/musicbrainzcovers/CHANGES
-share/exaile/data/plugins/musicbrainzcovers/COPYING
 share/exaile/data/plugins/musicbrainzcovers/PLUGININFO
-share/exaile/data/plugins/musicbrainzcovers/README.md
 share/exaile/data/plugins/musicbrainzcovers/__init__.py
 share/exaile/data/plugins/musicbrainzcovers/__init__.pyc
 share/exaile/data/plugins/musicbrainzcovers/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/__init__.py
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/__init__.pyc
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/compat.py
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/compat.pyc
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/compat.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/mbxml.py
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/mbxml.pyc
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/mbxml.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/musicbrainz.py
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/musicbrainz.pyc
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/musicbrainz.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/util.py
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/util.pyc
-share/exaile/data/plugins/musicbrainzcovers/musicbrainzngs/util.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/notify/
 share/exaile/data/plugins/notify/PLUGININFO
 share/exaile/data/plugins/notify/__init__.py
@@ -1062,26 +824,11 @@ share/exaile/data/plugins/notify/notifyp
 share/exaile/data/plugins/notify/notifyprefs.pyc
 share/exaile/data/plugins/notify/notifyprefs.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/notify/notifyprefs_pane.ui
-share/exaile/data/plugins/notifyosd/
-share/exaile/data/plugins/notifyosd/PLUGININFO
-share/exaile/data/plugins/notifyosd/__init__.py
-share/exaile/data/plugins/notifyosd/__init__.pyc
-share/exaile/data/plugins/notifyosd/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/notifyosd/notifyosdprefs.py
-share/exaile/data/plugins/notifyosd/notifyosdprefs.pyc
-share/exaile/data/plugins/notifyosd/notifyosdprefs.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/notifyosd/notifyosdprefs_pane.ui
 share/exaile/data/plugins/osd/
 share/exaile/data/plugins/osd/PLUGININFO
 share/exaile/data/plugins/osd/__init__.py
 share/exaile/data/plugins/osd/__init__.pyc
 share/exaile/data/plugins/osd/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/osd/alphacolor.py
-share/exaile/data/plugins/osd/alphacolor.pyc
-share/exaile/data/plugins/osd/alphacolor.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/osd/migration.py
-share/exaile/data/plugins/osd/migration.pyc
-share/exaile/data/plugins/osd/migration.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/osd/osd_preferences.py
 share/exaile/data/plugins/osd/osd_preferences.pyc
 share/exaile/data/plugins/osd/osd_preferences.${MODPY_PYOEXTENSION}
@@ -1111,9 +858,6 @@ share/exaile/data/plugins/podcasts/PLUGI
 share/exaile/data/plugins/podcasts/__init__.py
 share/exaile/data/plugins/podcasts/__init__.pyc
 share/exaile/data/plugins/podcasts/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/podcasts/_feedparser.py
-share/exaile/data/plugins/podcasts/_feedparser.pyc
-share/exaile/data/plugins/podcasts/_feedparser.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/podcasts/podcasts.ui
 share/exaile/data/plugins/previewdevice/
 share/exaile/data/plugins/previewdevice/PLUGININFO
@@ -1166,9 +910,6 @@ share/exaile/data/plugins/wikipedia/PLUG
 share/exaile/data/plugins/wikipedia/__init__.py
 share/exaile/data/plugins/wikipedia/__init__.pyc
 share/exaile/data/plugins/wikipedia/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/wikipedia/config.py
-share/exaile/data/plugins/wikipedia/config.pyc
-share/exaile/data/plugins/wikipedia/config.${MODPY_PYOEXTENSION}
 share/exaile/data/plugins/wikipedia/data/
 share/exaile/data/plugins/wikipedia/data/preferences.ui
 share/exaile/data/plugins/wikipedia/data/wikipanel.ui
@@ -1180,11 +921,6 @@ share/exaile/data/plugins/winmmkeys/PLUG
 share/exaile/data/plugins/winmmkeys/__init__.py
 share/exaile/data/plugins/winmmkeys/__init__.pyc
 share/exaile/data/plugins/winmmkeys/__init__.${MODPY_PYOEXTENSION}
-share/exaile/data/plugins/xkeys/
-share/exaile/data/plugins/xkeys/PLUGININFO
-share/exaile/data/plugins/xkeys/__init__.py
-share/exaile/data/plugins/xkeys/__init__.pyc
-share/exaile/data/plugins/xkeys/__init__.${MODPY_PYOEXTENSION}
 share/exaile/data/ui/
 share/exaile/data/ui/about_dialog.ui
 share/exaile/data/ui/collection_manager.ui
@@ -1198,6 +934,7 @@ share/exaile/data/ui/panel/collection.ui
 share/exaile/data/ui/panel/device.ui
 share/exaile/data/ui/panel/files.ui
 share/exaile/data/ui/panel/flatplaylist.ui
+share/exaile/data/ui/panel/lyrics.ui
 share/exaile/data/ui/panel/playlists.ui
 share/exaile/data/ui/panel/radio.ui
 share/exaile/data/ui/playlist.ui
@@ -1205,22 +942,28 @@ share/exaile/data/ui/preferences/
 share/exaile/data/ui/preferences/appearance.ui
 share/exaile/data/ui/preferences/collection.ui
 share/exaile/data/ui/preferences/cover.ui
-share/exaile/data/ui/preferences/general.ui
+share/exaile/data/ui/preferences/lyrics.ui
 share/exaile/data/ui/preferences/playback.ui
 share/exaile/data/ui/preferences/playlists.ui
 share/exaile/data/ui/preferences/plugin.ui
 share/exaile/data/ui/preferences/preferences_dialog.ui
-share/exaile/data/ui/queue_dialog.ui
+share/exaile/data/ui/preferences/widgets/
+share/exaile/data/ui/preferences/widgets/selection_list_preference.ui
+share/exaile/data/ui/shortcuts_dialog.ui
 share/exaile/data/ui/splash.ui
 share/exaile/data/ui/trackproperties_dialog.ui
 share/exaile/data/ui/trackproperties_dialog_cover_row.ui
 share/exaile/data/ui/widgets/
+share/exaile/data/ui/widgets/filter_dialog.ui
+share/exaile/data/ui/widgets/progress.ui
 share/exaile/data/ui/widgets/track_info.ui
-share/exaile/data/ui/widgets/tracklist_info.ui
 share/exaile/data/ui/widgets/volume_control.ui
 share/exaile/xdg/
 share/exaile/xdg/exaile/
 share/exaile/xdg/exaile/settings.ini
+share/fish/
+share/fish/vendor_completions.d/
+share/fish/vendor_completions.d/exaile.fish
 share/locale/af/LC_MESSAGES/exaile.mo
 share/locale/ar/LC_MESSAGES/exaile.mo
 share/locale/ast/LC_MESSAGES/exaile.mo
@@ -1237,7 +980,6 @@ share/locale/cy/LC_MESSAGES/exaile.mo
 share/locale/da/LC_MESSAGES/exaile.mo
 share/locale/de/LC_MESSAGES/exaile.mo
 share/locale/el/LC_MESSAGES/exaile.mo
-share/locale/en/LC_MESSAGES/exaile.mo
 share/locale/en_AU/LC_MESSAGES/exaile.mo
 share/locale/en_CA/LC_MESSAGES/exaile.mo
 share/locale/en_GB/LC_MESSAGES/exaile.mo
@@ -1249,11 +991,7 @@ share/locale/fa/LC_MESSAGES/exaile.mo
 share/locale/fi/LC_MESSAGES/exaile.mo
 share/locale/fo/LC_MESSAGES/exaile.mo
 share/locale/fr/LC_MESSAGES/exaile.mo
-share/locale/frp/
-share/locale/frp/LC_MESSAGES/
 share/locale/frp/LC_MESSAGES/exaile.mo
-share/locale/fy/
-share/locale/fy/LC_MESSAGES/
 share/locale/fy/LC_MESSAGES/exaile.mo
 share/locale/gl/LC_MESSAGES/exaile.mo
 share/locale/gu/LC_MESSAGES/exaile.mo
@@ -1262,6 +1000,9 @@ share/locale/hi/LC_MESSAGES/exaile.mo
 share/locale/hr/LC_MESSAGES/exaile.mo
 share/locale/hu/LC_MESSAGES/exaile.mo
 share/locale/id/LC_MESSAGES/exaile.mo
+share/locale/ie/
+share/locale/ie/LC_MESSAGES/
+share/locale/ie/LC_MESSAGES/exaile.mo
 share/locale/it/LC_MESSAGES/exaile.mo
 share/locale/ja/LC_MESSAGES/exaile.mo
 share/locale/ka/LC_MESSAGES/exaile.mo
@@ -1283,8 +1024,6 @@ share/locale/pt/LC_MESSAGES/exaile.mo
 share/locale/pt_BR/LC_MESSAGES/exaile.mo
 share/locale/ro/LC_MESSAGES/exaile.mo
 share/locale/ru/LC_MESSAGES/exaile.mo
-share/locale/sc/
-share/locale/sc/LC_MESSAGES/
 share/locale/sc/LC_MESSAGES/exaile.mo
 share/locale/si/LC_MESSAGES/exaile.mo
 share/locale/sk/LC_MESSAGES/exaile.mo

Reply via email to