summaryrefslogtreecommitdiff
path: root/audio/picard
diff options
context:
space:
mode:
authorMario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>2006-04-07 18:18:07 +0000
committerMario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>2006-04-07 18:18:07 +0000
commit41c0e03be9096c872a1a8ccea0a77c239581fb49 (patch)
treecaf66ba6ffeeb35a8170a971d085bdc9bd38a29a /audio/picard
parent- Take MAINTAINER (diff)
New port picard version 0.6.0: Next generation MusicBrainzTagger
Notes
Notes: svn path=/head/; revision=159068
Diffstat (limited to 'audio/picard')
-rw-r--r--audio/picard/Makefile96
-rw-r--r--audio/picard/distinfo3
-rw-r--r--audio/picard/files/__init__.py37
-rw-r--r--audio/picard/files/extra-psyco-patch-tagger.py16
-rw-r--r--audio/picard/files/setup.py40
-rw-r--r--audio/picard/pkg-descr15
-rw-r--r--audio/picard/pkg-plist157
7 files changed, 364 insertions, 0 deletions
diff --git a/audio/picard/Makefile b/audio/picard/Makefile
new file mode 100644
index 000000000000..215a470d6ecf
--- /dev/null
+++ b/audio/picard/Makefile
@@ -0,0 +1,96 @@
+# New ports collection makefile for: picard
+# Date created: Sat Aug 20 15:26:15 UTC 2005
+# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= picard
+DISTVERSION= 0.6.0
+CATEGORIES= audio python
+MASTER_SITES= #https://helixcommunity.org/
+
+MAINTAINER= lioux@FreeBSD.org
+COMMENT= Next generation MusicBrainzTagger
+
+RUN_DEPENDS= \
+ ${PYTHON_SITELIBDIR}/tunepimp/__init__.py:${PORTSDIR}/audio/py-libtunepimp \
+ ${PYTHON_SITELIBDIR}/musicbrainz.py:${PORTSDIR}/audio/py-musicbrainz \
+ ${PYTHON_SITELIBDIR}/wx-2.6-gtk2-unicode/wxPython/__init__.py:${PORTSDIR}/x11-toolkits/py-wxPython26-unicode
+
+USE_PYTHON= yes
+USE_PYDISTUTILS=yes
+
+SOURCEFILE= ${DISTNAME}${EXTRACT_SUFX}
+PICARD_MODULES= browser lib ui
+
+post-extract:
+# build a fake module directory structure
+ @${MKDIR} ${WRKSRC}/${PORTNAME}
+.for dir in ${PICARD_MODULES}
+ @${MV} ${WRKSRC}/${dir} ${WRKSRC}/${PORTNAME}
+.endfor
+# use a locally made __init__.py to enable the fake
+# directory structure to work
+ @${SED} -E \
+ -e 's|%%VERSION%%|${DISTVERSION}|' \
+ ${FILESDIR}/__init__.py \
+ > ${WRKSRC}/${PORTNAME}/__init__.py
+# use a locally made setup
+ @${CP} ${FILESDIR}/setup.py ${WRKSRC}
+
+post-patch:
+# avoid using such a generic script name
+ @${MV} ${WRKSRC}/tagger.py ${WRKSRC}/mb_tagger.py
+# update the launch script
+ @${REINPLACE_CMD} -E \
+ -e 's|/usr/bin/env python|${PYTHON_CMD}|' \
+ -e 's|tagger.py|${PREFIX}/bin/mb_tagger.py|' \
+ ${WRKSRC}/MBTagger
+# update modules to the fake module directory structure
+.for module in ${PICARD_MODULES}
+ @${FIND} ${WRKSRC}/ -type f -name "*py" \
+ -print0 | ${XARGS} -0 -n 1 \
+ ${REINPLACE_CMD} -E \
+ -e 's|^from[[:space:]]+(${module})|from ${PORTNAME}.\1|'
+.endfor
+
+post-install:
+ @${LN} -sf MBTagger ${PREFIX}/bin/${PORTNAME}
+
+pre-everything::
+.ifndef(WITHOUT_PSYCO)
+ @${ECHO_MSG} '===> Define WITHOUT_PSYCO to disable devel/py-psyco optimization'
+.endif
+
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 500000
+IGNORE= Systems prior to FreeBSD 5.0 do not support Unicode
+.endif
+
+.if ${ARCH} != "i386"
+WITHOUT_PSYCO= yes
+.endif
+
+.ifndef(WITHOUT_PSYCO)
+RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/psyco/_psyco.so:${PORTSDIR}/devel/py-psyco
+
+EXTRA_PATCHES+= ${FILESDIR}/extra-psyco-patch-tagger.py
+.endif
+
+## idea taken from ports/java/jdk14/Makefile written by
+## Alexey Zelkin <phantom@FreeBSD.org>
+#
+# Check for sources
+.if !exists(${DISTDIR}/${SOURCEFILE}) && !defined(PACKAGE_BUILDING)
+ECHO_MSG=/usr/bin/printf
+IGNORE= :\n\
+Because of licensing restrictions, you must fetch the source distribution\n\
+manually. Please access http://musicbrainz.org/wd/PicardDownload\n\
+with a web browser and download the \"Linux tarball\" ${SOURCEFILE}\n\
+just below \"Download Picard\" title.\n\
+Please place this file in ${DISTDIR}.\n
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/audio/picard/distinfo b/audio/picard/distinfo
new file mode 100644
index 000000000000..7db8ecef5391
--- /dev/null
+++ b/audio/picard/distinfo
@@ -0,0 +1,3 @@
+MD5 (picard-0.6.0.tar.gz) = 82c2da853ba4c5a0ab8e1baf3fb494eb
+SHA256 (picard-0.6.0.tar.gz) = c7d036382df15726c83a4f2dafdda002611eee1e26004e5aecceb50937d411db
+SIZE (picard-0.6.0.tar.gz) = 234607
diff --git a/audio/picard/files/__init__.py b/audio/picard/files/__init__.py
new file mode 100644
index 000000000000..2f8f644f2894
--- /dev/null
+++ b/audio/picard/files/__init__.py
@@ -0,0 +1,37 @@
+""" picard modules for Python
+
+Copyright (c) 2005 Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+ $Id$
+
+"""
+# (note that subpackages have their own version number)
+__version__ = '%%VERSION%%'
+
+# Copyright notice string
+__copyright__ = """\
+ See the documentation for information on copyrights,
+ or contact the author. All Rights Reserved.
+"""
diff --git a/audio/picard/files/extra-psyco-patch-tagger.py b/audio/picard/files/extra-psyco-patch-tagger.py
new file mode 100644
index 000000000000..9e8324e37fab
--- /dev/null
+++ b/audio/picard/files/extra-psyco-patch-tagger.py
@@ -0,0 +1,16 @@
+--- tagger.py.orig Thu Apr 6 16:48:21 2006
++++ tagger.py Thu Apr 6 16:48:47 2006
+@@ -54,6 +54,13 @@
+ # ***** END LICENSE BLOCK *****
+
+ try:
++ import psyco
++ assert psyco.__version__ >= 0x010300f0
++ psyco.full()
++except:
++ pass
++
++try:
+ import wxversion
+ wxversion.select(["2.6-unicode"])
+ except:
diff --git a/audio/picard/files/setup.py b/audio/picard/files/setup.py
new file mode 100644
index 000000000000..7dba8e77d33a
--- /dev/null
+++ b/audio/picard/files/setup.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2005 Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $Id$
+
+from distutils.core import setup
+
+import glob
+
+scripts = ["MBTagger", "mb_tagger.py"]
+
+setup(
+ name = "Picard",
+ url = "http://wiki.musicbrainz.org/PicardTagger",
+ scripts = scripts,
+ packages = ["picard", "picard/browser", "picard/lib", "picard/ui", "picard/ui/options"],
+ )
diff --git a/audio/picard/pkg-descr b/audio/picard/pkg-descr
new file mode 100644
index 000000000000..e8eee027ae31
--- /dev/null
+++ b/audio/picard/pkg-descr
@@ -0,0 +1,15 @@
+[ excerpt from developer's www site with modifications ]
+
+The PicardTagger is the next generation MusicBrainzTagger. This
+version of the tagging application is album oriented, as opposed
+to track oriented as the old tagger was. This new application is
+also cross platform, which means the same code runs on Windows as
+well as Unix.
+
+The PicardTagger will implement most of the MBTaggerImprovements.
+See also the project page https://musicbrainz.helixcommunity.org/
+for more details on Picard.
+
+WWW: http://wiki.musicbrainz.org/PicardTagger
+
+-- lioux@FreeBSD.org
diff --git a/audio/picard/pkg-plist b/audio/picard/pkg-plist
new file mode 100644
index 000000000000..347f99b8b32b
--- /dev/null
+++ b/audio/picard/pkg-plist
@@ -0,0 +1,157 @@
+bin/MBTagger
+bin/mb_tagger.py
+bin/picard
+%%PYTHON_SITELIBDIR%%/picard/__init__.py
+%%PYTHON_SITELIBDIR%%/picard/__init__.pyc
+%%PYTHON_SITELIBDIR%%/picard/__init__.pyo
+%%PYTHON_SITELIBDIR%%/picard/browser/__init__.py
+%%PYTHON_SITELIBDIR%%/picard/browser/__init__.pyc
+%%PYTHON_SITELIBDIR%%/picard/browser/__init__.pyo
+%%PYTHON_SITELIBDIR%%/picard/browser/browser.py
+%%PYTHON_SITELIBDIR%%/picard/browser/browser.pyc
+%%PYTHON_SITELIBDIR%%/picard/browser/browser.pyo
+%%PYTHON_SITELIBDIR%%/picard/browser/filelookup.py
+%%PYTHON_SITELIBDIR%%/picard/browser/filelookup.pyc
+%%PYTHON_SITELIBDIR%%/picard/browser/filelookup.pyo
+%%PYTHON_SITELIBDIR%%/picard/browser/launch.py
+%%PYTHON_SITELIBDIR%%/picard/browser/launch.pyc
+%%PYTHON_SITELIBDIR%%/picard/browser/launch.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/__init__.py
+%%PYTHON_SITELIBDIR%%/picard/lib/__init__.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/__init__.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/album.py
+%%PYTHON_SITELIBDIR%%/picard/lib/album.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/album.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/albummanager.py
+%%PYTHON_SITELIBDIR%%/picard/lib/albummanager.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/albummanager.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/artist.py
+%%PYTHON_SITELIBDIR%%/picard/lib/artist.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/artist.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/cluster.py
+%%PYTHON_SITELIBDIR%%/picard/lib/cluster.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/cluster.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/countries.py
+%%PYTHON_SITELIBDIR%%/picard/lib/countries.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/countries.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/coverartcache.py
+%%PYTHON_SITELIBDIR%%/picard/lib/coverartcache.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/coverartcache.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/cuesheet.py
+%%PYTHON_SITELIBDIR%%/picard/lib/cuesheet.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/cuesheet.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/dataobjs.py
+%%PYTHON_SITELIBDIR%%/picard/lib/dataobjs.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/dataobjs.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/debug.py
+%%PYTHON_SITELIBDIR%%/picard/lib/debug.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/debug.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/dircache.py
+%%PYTHON_SITELIBDIR%%/picard/lib/dircache.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/dircache.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/events.py
+%%PYTHON_SITELIBDIR%%/picard/lib/events.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/events.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/playlist.py
+%%PYTHON_SITELIBDIR%%/picard/lib/playlist.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/playlist.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/tpmanager.py
+%%PYTHON_SITELIBDIR%%/picard/lib/tpmanager.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/tpmanager.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/track.py
+%%PYTHON_SITELIBDIR%%/picard/lib/track.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/track.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/util.py
+%%PYTHON_SITELIBDIR%%/picard/lib/util.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/util.pyo
+%%PYTHON_SITELIBDIR%%/picard/lib/wpath.py
+%%PYTHON_SITELIBDIR%%/picard/lib/wpath.pyc
+%%PYTHON_SITELIBDIR%%/picard/lib/wpath.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/__init__.py
+%%PYTHON_SITELIBDIR%%/picard/ui/__init__.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/__init__.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/albumpanel.py
+%%PYTHON_SITELIBDIR%%/picard/ui/albumpanel.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/albumpanel.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/coverartpanel.py
+%%PYTHON_SITELIBDIR%%/picard/ui/coverartpanel.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/coverartpanel.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/dirctrl.py
+%%PYTHON_SITELIBDIR%%/picard/ui/dirctrl.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/dirctrl.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/fileselection.py
+%%PYTHON_SITELIBDIR%%/picard/ui/fileselection.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/fileselection.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/images.py
+%%PYTHON_SITELIBDIR%%/picard/ui/images.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/images.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/infopanel.py
+%%PYTHON_SITELIBDIR%%/picard/ui/infopanel.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/infopanel.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/mdatapanel.py
+%%PYTHON_SITELIBDIR%%/picard/ui/mdatapanel.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/mdatapanel.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/__init__.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/__init__.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/__init__.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/about.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/about.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/about.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/advanced.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/advanced.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/advanced.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/colors.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/colors.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/colors.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/controls.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/controls.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/controls.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/dirs.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/dirs.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/dirs.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/encodings.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/encodings.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/encodings.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/general.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/general.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/general.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/language.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/language.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/language.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/login.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/login.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/login.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/lookup.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/lookup.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/lookup.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/naming.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/naming.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/naming.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/naminghelp.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/naminghelp.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/naminghelp.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/optionsdialog.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/optionsdialog.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/optionsdialog.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/page.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/page.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/page.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/proxy.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/proxy.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/proxy.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/options/tags.py
+%%PYTHON_SITELIBDIR%%/picard/ui/options/tags.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/options/tags.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/pydirctrl.py
+%%PYTHON_SITELIBDIR%%/picard/ui/pydirctrl.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/pydirctrl.pyo
+%%PYTHON_SITELIBDIR%%/picard/ui/toolbar.py
+%%PYTHON_SITELIBDIR%%/picard/ui/toolbar.pyc
+%%PYTHON_SITELIBDIR%%/picard/ui/toolbar.pyo
+@dirrm %%PYTHON_SITELIBDIR%%/picard/ui/options
+@dirrm %%PYTHON_SITELIBDIR%%/picard/ui
+@dirrm %%PYTHON_SITELIBDIR%%/picard/lib
+@dirrm %%PYTHON_SITELIBDIR%%/picard/browser
+@dirrm %%PYTHON_SITELIBDIR%%/picard
+@dirrmtry %%PYTHON_SITELIBDIR%%
+@dirrmtry %%PYTHON_LIBDIR%%