Update to 0.9.6.90.

This commit is contained in:
Joe Marcus Clarke 2006-12-15 04:29:40 +00:00
parent 5fac53d34c
commit 8aa3b3ce4e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=179820
10 changed files with 192 additions and 658 deletions

View file

@ -7,8 +7,7 @@
#
PORTNAME= rhythmbox
PORTVERSION= 0.9.6
PORTREVISION= 4
PORTVERSION= 0.9.6.90
CATEGORIES= audio gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/${PORTNAME}/0.9
@ -47,7 +46,8 @@ OPTIONS= DAAP "Enable iTunes music sharing" off \
FAAD "Enable FAAD decoder support" off \
NOTIFY "Enable libnotify support" on \
VORBIS "Enable Ogg/Vorbis support" on \
GDA "Enable GDA database storage" off
GDA "Enable GDA database storage" off \
LIRC "Enable Infrared syncing support" off
.include <bsd.port.pre.mk>
@ -72,14 +72,25 @@ CONFIGURE_ARGS+=--with-database=libgda
CONFIGURE_ARGS+=--with-database=tree
.endif
.if defined(WITH_LIRC)
LIB_DEPENDS+= lirc_client.so:${PORTSDIR}/comms/lirc
PLIST_SUB+= LIRC=""
CONFIGURE_ARGS+=--enable-lirc
.else
CONFIGURE_ARGS+=--disable-lirc
PLIST_SUB+= LIRC="@comment "
.endif
.if defined(WITH_DAAP)
CONFIGURE_ARGS+= --enable-daap --with-mdns=avahi
LIB_DEPENDS+= avahi-client:${PORTSDIR}/net/avahi
PLIST_SUB+= DAAP=""
.else
.if exists(${LOCALBASE}/lib/libavahi-client.a)
LIB_DEPENDS+= avahi-client:${PORTSDIR}/net/avahi
.endif
CONFIGURE_ARGS+= --disable-daap
PLIST_SUB+= DAAP="@comment "
.endif
.if !defined(WITHOUT_NOTIFY)
@ -108,4 +119,8 @@ CONFIGURE_ARGS+=--without-ipod
PLIST_SUB+= IPOD="@comment "
.endif
post-patch:
@${CP} ${FILESDIR}/audioscrobbler-ui.xml \
${WRKSRC}/plugins/audioscrobbler
.include <bsd.port.post.mk>

View file

@ -1,3 +1,3 @@
MD5 (gnome2/rhythmbox-0.9.6.tar.bz2) = 805459eafd670b18c663ba478ad2ebd4
SHA256 (gnome2/rhythmbox-0.9.6.tar.bz2) = fe73b49d9008a9b487c93b5d4d99aa34350b87fde2c0978a6f126fdef3126973
SIZE (gnome2/rhythmbox-0.9.6.tar.bz2) = 3129839
MD5 (gnome2/rhythmbox-0.9.6.90.tar.bz2) = 8f50283c06359d7aa83317c0175e1d0e
SHA256 (gnome2/rhythmbox-0.9.6.90.tar.bz2) = 31a10103c6e031fa2a96c26b2e6b62fe06ddb998359751175224e65dcc8d8a92
SIZE (gnome2/rhythmbox-0.9.6.90.tar.bz2) = 3235154

View file

@ -0,0 +1,8 @@
<ui>
<popup name="LastfmSourceViewPopup">
<menuitem name="DeleteLibraryPopup" action="EditDelete"/>
</popup>
<popup name="LastfmSourcePopup">
</popup>
</ui>

View file

@ -1,317 +0,0 @@
--- podcast/rb-podcast-manager.c.orig Sun Sep 24 07:03:53 2006
+++ podcast/rb-podcast-manager.c Sun Nov 19 12:31:44 2006
@@ -85,8 +85,6 @@ struct RBPodcastManagerPrivate
guint next_time;
guint source_sync;
guint update_interval_notify_id;
- GMutex *mutex_job;
- GMutex *download_list_mutex;
gboolean remove_files;
@@ -102,7 +100,6 @@ typedef struct
RBPodcastChannel *channel;
} RBPodcastManagerEvent;
-/* used on donwload thread */
typedef struct
{
RBPodcastManager *pd;
@@ -111,14 +108,12 @@ typedef struct
GnomeVFSURI *write_uri;
GnomeVFSURI *read_uri;
char *query_string;
- GMutex *mutex_working;
guint total_size;
guint progress;
gboolean canceled;
} RBPodcastManagerInfo;
-/* used on subscribe thread */
typedef struct
{
RBPodcastManager *pd;
@@ -175,7 +170,6 @@ static guint download_progress_update_cb
/* internal functions */
static void download_info_free (RBPodcastManagerInfo *data);
-static RBPodcastManagerInfo *download_info_new (void);
static void start_job (RBPodcastManagerInfo *data);
static void end_job (RBPodcastManagerInfo *data);
static void cancel_job (RBPodcastManagerInfo *pd);
@@ -272,8 +266,6 @@ rb_podcast_manager_init (RBPodcastManage
pd->priv = RB_PODCAST_MANAGER_GET_PRIVATE (pd);
pd->priv->source_sync = 0;
- pd->priv->mutex_job = g_mutex_new();
- pd->priv->download_list_mutex = g_mutex_new();
pd->priv->event_queue = g_async_queue_new ();
pd->priv->db = NULL;
eel_gconf_monitor_add (CONF_STATE_PODCAST_PREFIX);
@@ -321,8 +313,6 @@ rb_podcast_manager_finalize (GObject *ob
g_list_free (pd->priv->download_list);
}
- g_mutex_free (pd->priv->mutex_job);
- g_mutex_free (pd->priv->download_list_mutex);
g_async_queue_unref (pd->priv->event_queue);
G_OBJECT_CLASS (rb_podcast_manager_parent_class)->finalize (object);
@@ -418,12 +408,12 @@ rb_podcast_manager_download_entry (RBPod
g_value_unset (&status_val);
}
rb_debug ("Try insert entry for download.");
- data = download_info_new();
+
+ data = g_new0 (RBPodcastManagerInfo, 1);
data->pd = pd;
data->entry = entry;
- g_mutex_lock (pd->priv->download_list_mutex);
+
pd->priv->download_list = g_list_append (pd->priv->download_list, data);
- g_mutex_unlock (pd->priv->download_list_mutex);
g_idle_add ((GtkFunction) rb_podcast_manager_next_file , pd);
}
}
@@ -535,23 +525,15 @@ rb_podcast_manager_head_query_cb (GtkTre
static gboolean
rb_podcast_manager_next_file (RBPodcastManager * pd)
{
+ gint size;
+
GDK_THREADS_ENTER ();
-
rb_debug ("try lock file_process mutex");
- if (g_mutex_trylock (pd->priv->mutex_job) == TRUE) {
- gint size;
- g_mutex_lock (pd->priv->download_list_mutex);
- size = g_list_length (pd->priv->download_list);
- g_mutex_unlock (pd->priv->download_list_mutex);
-
- if (size > 0)
- rb_podcast_manager_copy_post (pd);
- else
- g_mutex_unlock (pd->priv->mutex_job);
- } else {
- rb_debug ("not start");
- }
+ size = g_list_length (pd->priv->download_list);
+
+ if (size > 0)
+ rb_podcast_manager_copy_post (pd);
GDK_THREADS_LEAVE ();
return FALSE;
@@ -565,9 +547,7 @@ rb_podcast_manager_copy_post (RBPodcastM
char *query_string;
/* get first element of list */
- g_mutex_lock (pd->priv->download_list_mutex);
data = (RBPodcastManagerInfo *) g_list_first (pd->priv->download_list)->data;
- g_mutex_unlock (pd->priv->download_list_mutex);
g_assert (data != NULL);
g_assert (data->entry != NULL);
@@ -765,13 +745,9 @@ rb_podcast_manager_abort_download (RBPod
{
RBPodcastManager *mgr = data->pd;
- g_mutex_lock (mgr->priv->download_list_mutex);
mgr->priv->download_list = g_list_remove (mgr->priv->download_list, (gconstpointer) data);
- g_mutex_unlock (mgr->priv->download_list_mutex);
-
download_info_free (data);
- g_mutex_unlock (mgr->priv->mutex_job);
g_idle_add ((GtkFunction) rb_podcast_manager_next_file, mgr);
}
@@ -1021,6 +997,8 @@ write_job_data (RBPodcastManagerInfo *da
gnome_vfs_uri_to_string (data->write_uri, GNOME_VFS_URI_HIDE_NONE));
rhythmdb_commit (db);
+
+ end_job (data);
}
static void
@@ -1040,19 +1018,9 @@ download_info_free (RBPodcastManagerInfo
data->query_string = NULL;
}
- g_mutex_free (data->mutex_working);
-
g_free (data);
}
-static RBPodcastManagerInfo*
-download_info_new (void)
-{
- RBPodcastManagerInfo *data = g_new0 (RBPodcastManagerInfo, 1);
- data->mutex_working = g_mutex_new ();
- return data;
-}
-
static void
start_job (RBPodcastManagerInfo *data)
{
@@ -1070,8 +1038,6 @@ start_job (RBPodcastManagerInfo *data)
source_uri_list = g_list_prepend (source_uri_list, data->read_uri);
target_uri_list = g_list_prepend (target_uri_list, data->write_uri);
- g_mutex_lock (data->mutex_working);
-
rb_debug ("start async copy");
gnome_vfs_async_xfer ( &data->read_handle,
source_uri_list,
@@ -1094,9 +1060,7 @@ rb_podcast_manager_cancel_all (RBPodcast
guint lst_len;
GList *lst;
- g_mutex_lock (pd->priv->download_list_mutex);
lst = g_list_reverse (pd->priv->download_list);
- g_mutex_unlock (pd->priv->download_list_mutex);
rb_debug ("cancel all job %d", g_list_length (lst));
lst_len = g_list_length (lst);
@@ -1107,11 +1071,6 @@ rb_podcast_manager_cancel_all (RBPodcast
cancel_job (data);
rb_debug ("cancel next job");
}
-
- if (lst_len > 0) {
- g_mutex_lock (pd->priv->mutex_job);
- g_mutex_unlock (pd->priv->mutex_job);
- }
}
static void
@@ -1120,12 +1079,7 @@ end_job (RBPodcastManagerInfo *data)
RBPodcastManager *pd = data->pd;
rb_debug ("end_job");
-
- g_mutex_lock (data->pd->priv->download_list_mutex);
data->pd->priv->download_list = g_list_remove (data->pd->priv->download_list, (gconstpointer) data);
- g_mutex_unlock (data->pd->priv->download_list_mutex);
-
- g_mutex_unlock (data->mutex_working);
if (data->canceled != TRUE) {
GDK_THREADS_ENTER ();
@@ -1137,7 +1091,6 @@ end_job (RBPodcastManagerInfo *data)
}
download_info_free (data);
- g_mutex_unlock (pd->priv->mutex_job);
g_idle_add ((GtkFunction) rb_podcast_manager_next_file, pd);
}
@@ -1145,22 +1098,12 @@ end_job (RBPodcastManagerInfo *data)
static void
cancel_job (RBPodcastManagerInfo *data)
{
- if (g_mutex_trylock (data->mutex_working) == FALSE) {
- rb_debug ("async cancel");
- data->canceled = TRUE;
- }
- else {
- rb_debug ("job cancel");
-
- g_mutex_lock (data->pd->priv->download_list_mutex);
- data->pd->priv->download_list = g_list_remove (data->pd->priv->download_list, (gconstpointer ) data);
- g_mutex_unlock (data->pd->priv->download_list_mutex);
+ rb_debug ("job cancel");
- g_mutex_unlock (data->mutex_working);
+ data->pd->priv->download_list = g_list_remove (data->pd->priv->download_list, (gconstpointer ) data);
- download_info_free (data);
- data = NULL;
- }
+ download_info_free (data);
+ data = NULL;
}
static guint
@@ -1175,16 +1118,16 @@ download_progress_cb (GnomeVFSXferProgre
if (info->status != GNOME_VFS_XFER_PROGRESS_STATUS_OK ||
((info->phase == GNOME_VFS_XFER_PHASE_COMPLETED) && (info->file_size == 0))) {
GValue val = {0, };
+
rb_debug ("error on download");
+
g_value_init (&val, G_TYPE_ULONG);
g_value_set_ulong (&val, RHYTHMDB_PODCAST_STATUS_ERROR);
- GDK_THREADS_ENTER ();
rhythmdb_entry_set (data->pd->priv->db, data->entry, RHYTHMDB_PROP_STATUS, &val);
rhythmdb_commit (data->pd->priv->db);
- GDK_THREADS_LEAVE ();
g_value_unset (&val);
- end_job (data);
- data = NULL;
+
+ g_idle_add ((GSourceFunc)end_job, data);
return GNOME_VFS_XFER_ERROR_ACTION_ABORT;
}
@@ -1208,9 +1151,9 @@ download_progress_cb (GnomeVFSXferProgre
rb_debug ("download completed");
data->total_size = info->file_size;
write_job_data (data);
+ } else {
+ g_idle_add ((GSourceFunc)end_job, data);
}
- end_job (data);
- data = NULL;
return GNOME_VFS_XFER_ERROR_ACTION_SKIP;
}
@@ -1226,7 +1169,6 @@ download_progress_cb (GnomeVFSXferProgre
static guint
download_progress_update_cb (GnomeVFSAsyncHandle *handle, GnomeVFSXferProgressInfo *info, gpointer cb_data)
{
-
RBPodcastManagerInfo *data = (RBPodcastManagerInfo *) cb_data;
if (data == NULL) {
@@ -1243,17 +1185,18 @@ download_progress_update_cb (GnomeVFSAsy
if (local_progress != data->progress) {
GValue val = {0,};
+ GDK_THREADS_ENTER ();
+
g_value_init (&val, G_TYPE_ULONG);
g_value_set_ulong (&val, local_progress);
rhythmdb_entry_set (data->pd->priv->db, data->entry, RHYTHMDB_PROP_STATUS, &val);
g_value_unset (&val);
- GDK_THREADS_ENTER ();
-
g_signal_emit (data->pd, rb_podcast_manager_signals[STATUS_CHANGED],
0, data->entry, local_progress);
GDK_THREADS_LEAVE ();
+
data->progress = local_progress;
}
}
@@ -1368,8 +1311,6 @@ rb_podcast_manager_cancel_download (RBPo
{
GList *lst;
- g_mutex_lock (pd->priv->download_list_mutex);
-
lst = pd->priv->download_list;
while (lst) {
RBPodcastManagerInfo *data = (RBPodcastManagerInfo *) lst->data;
@@ -1379,7 +1320,6 @@ rb_podcast_manager_cancel_download (RBPo
}
lst = lst->next;
}
- g_mutex_unlock (pd->priv->download_list_mutex);
if (lst)
cancel_job (lst->data);

View file

@ -13,7 +13,12 @@ bin/rhythmbox-client
%%PYTHON%%lib/rhythmbox/plugins/artdisplay/__init__.py
%%PYTHON%%lib/rhythmbox/plugins/artdisplay/__init__.pyc
%%PYTHON%%lib/rhythmbox/plugins/artdisplay/__init__.pyo
lib/rhythmbox/plugins/audiocd.rb-plugin
lib/rhythmbox/plugins/audiocd/audiocd.rb-plugin
lib/rhythmbox/plugins/audiocd/libaudiocd.a
lib/rhythmbox/plugins/audiocd/libaudiocd.la
lib/rhythmbox/plugins/audiocd/libaudiocd.so
lib/rhythmbox/plugins/audiocd/multiple-album.glade
lib/rhythmbox/plugins/audioscrobbler/audioscrobbler-ui.xml
lib/rhythmbox/plugins/audioscrobbler/audioscrobbler.rb-plugin
lib/rhythmbox/plugins/audioscrobbler/libaudioscrobbler.a
lib/rhythmbox/plugins/audioscrobbler/libaudioscrobbler.la
@ -22,6 +27,12 @@ lib/rhythmbox/plugins/cd-recorder/cd-recorder.rb-plugin
lib/rhythmbox/plugins/cd-recorder/libcd-recorder.a
lib/rhythmbox/plugins/cd-recorder/libcd-recorder.la
lib/rhythmbox/plugins/cd-recorder/libcd-recorder.so
%%DAAP%%lib/rhythmbox/plugins/daap/daap-prefs.glade
%%DAAP%%lib/rhythmbox/plugins/daap/daap-ui.xml
%%DAAP%%lib/rhythmbox/plugins/daap/daap.rb-plugin
%%DAAP%%lib/rhythmbox/plugins/daap/libdaap.a
%%DAAP%%lib/rhythmbox/plugins/daap/libdaap.la
%%DAAP%%lib/rhythmbox/plugins/daap/libdaap.so
lib/rhythmbox/plugins/generic-player/generic-player.rb-plugin
lib/rhythmbox/plugins/generic-player/libgeneric-player.a
lib/rhythmbox/plugins/generic-player/libgeneric-player.la
@ -30,13 +41,42 @@ lib/rhythmbox/plugins/generic-player/libgeneric-player.so
%%IPOD%%lib/rhythmbox/plugins/ipod/libipod.a
%%IPOD%%lib/rhythmbox/plugins/ipod/libipod.la
%%IPOD%%lib/rhythmbox/plugins/ipod/libipod.so
lib/rhythmbox/plugins/libaudiocd.a
lib/rhythmbox/plugins/libaudiocd.la
lib/rhythmbox/plugins/libaudiocd.so
lib/rhythmbox/plugins/iradio/iradio-ui.xml
lib/rhythmbox/plugins/iradio/iradio.rb-plugin
lib/rhythmbox/plugins/iradio/libiradio.a
lib/rhythmbox/plugins/iradio/libiradio.la
lib/rhythmbox/plugins/iradio/libiradio.so
%%LIRC%%lib/rhythmbox/plugins/lirc/librblirc.a
%%LIRC%%lib/rhythmbox/plugins/lirc/librblirc.la
%%LIRC%%lib/rhythmbox/plugins/lirc/librblirc.so
%%LIRC%%lib/rhythmbox/plugins/lirc/lirc.rb-plugin
%%PYTHON%%lib/rhythmbox/plugins/lyrics/lyrics.py
%%PYTHON%%lib/rhythmbox/plugins/lyrics/lyrics.pyc
%%PYTHON%%lib/rhythmbox/plugins/lyrics/lyrics.pyo
%%PYTHON%%lib/rhythmbox/plugins/lyrics/lyrics.rb-plugin
%%PYTHON%%lib/rhythmbox/plugins/magnatune/BuyAlbumHandler.py
%%PYTHON%%lib/rhythmbox/plugins/magnatune/BuyAlbumHandler.pyc
%%PYTHON%%lib/rhythmbox/plugins/magnatune/BuyAlbumHandler.pyo
%%PYTHON%%lib/rhythmbox/plugins/magnatune/MagnatuneSource.py
%%PYTHON%%lib/rhythmbox/plugins/magnatune/MagnatuneSource.pyc
%%PYTHON%%lib/rhythmbox/plugins/magnatune/MagnatuneSource.pyo
%%PYTHON%%lib/rhythmbox/plugins/magnatune/TrackListHandler.py
%%PYTHON%%lib/rhythmbox/plugins/magnatune/TrackListHandler.pyc
%%PYTHON%%lib/rhythmbox/plugins/magnatune/TrackListHandler.pyo
%%PYTHON%%lib/rhythmbox/plugins/magnatune/__init__.py
%%PYTHON%%lib/rhythmbox/plugins/magnatune/__init__.pyc
%%PYTHON%%lib/rhythmbox/plugins/magnatune/__init__.pyo
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune-loading.glade
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune-prefs.glade
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune-purchase.glade
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune.rb-plugin
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune_circle_small.png
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune_logo_color_small.png
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune_logo_color_tiny.png
lib/rhythmbox/plugins/power-manager/libpower-manager.a
lib/rhythmbox/plugins/power-manager/libpower-manager.la
lib/rhythmbox/plugins/power-manager/libpower-manager.so
lib/rhythmbox/plugins/power-manager/power-manager.rb-plugin
%%PYTHON%%lib/rhythmbox/plugins/python-console/pythonconsole.py
%%PYTHON%%lib/rhythmbox/plugins/python-console/pythonconsole.pyc
%%PYTHON%%lib/rhythmbox/plugins/python-console/pythonconsole.pyo
@ -145,6 +185,20 @@ share/gnome/help/rhythmbox/C/figures/rb-window-small.png
share/gnome/help/rhythmbox/C/figures/rb-window.png
share/gnome/help/rhythmbox/C/legal.xml
share/gnome/help/rhythmbox/C/rhythmbox.xml
share/gnome/help/rhythmbox/el/figures/rb-iradio-main.png
share/gnome/help/rhythmbox/el/figures/rb-notification-area-menu.png
share/gnome/help/rhythmbox/el/figures/rb-notification-window.png
share/gnome/help/rhythmbox/el/figures/rb-notification-zone.png
share/gnome/help/rhythmbox/el/figures/rb-podcast-main.png
share/gnome/help/rhythmbox/el/figures/rb-statusbar.png
share/gnome/help/rhythmbox/el/figures/rb-toolbar-prevplaynext.png
share/gnome/help/rhythmbox/el/figures/rb-toolbar-repeat.png
share/gnome/help/rhythmbox/el/figures/rb-toolbar-shuffle.png
share/gnome/help/rhythmbox/el/figures/rb-toolbar.png
share/gnome/help/rhythmbox/el/figures/rb-volume-changer.png
share/gnome/help/rhythmbox/el/figures/rb-window-small.png
share/gnome/help/rhythmbox/el/figures/rb-window.png
share/gnome/help/rhythmbox/el/rhythmbox.xml
share/gnome/help/rhythmbox/es/figures/rb-iradio-main.png
share/gnome/help/rhythmbox/es/figures/rb-notification-area-menu.png
share/gnome/help/rhythmbox/es/figures/rb-notification-window.png
@ -216,6 +270,7 @@ share/gnome/help/rhythmbox/zh_CN/figures/rb-window-small.png
share/gnome/help/rhythmbox/zh_CN/figures/rb-window.png
share/gnome/help/rhythmbox/zh_CN/rhythmbox.xml
share/gnome/omf/rhythmbox/rhythmbox-C.omf
share/gnome/omf/rhythmbox/rhythmbox-el.omf
share/gnome/omf/rhythmbox/rhythmbox-es.omf
share/gnome/omf/rhythmbox/rhythmbox-fr.omf
share/gnome/omf/rhythmbox/rhythmbox-ru.omf
@ -228,11 +283,9 @@ share/gnome/rhythmbox/art/rhythmbox-podcast.png
share/gnome/rhythmbox/art/rhythmbox-set-star.png
share/gnome/rhythmbox/art/rhythmbox-tray-icon.png
share/gnome/rhythmbox/art/rhythmbox-unset-star.png
share/gnome/rhythmbox/daap-ui.xml
share/gnome/rhythmbox/generic-player-ui.xml
share/gnome/rhythmbox/glade/audioscrobbler-prefs.glade
share/gnome/rhythmbox/glade/create-playlist.glade
share/gnome/rhythmbox/glade/daap-prefs.glade
share/gnome/rhythmbox/glade/druid.glade
share/gnome/rhythmbox/glade/general-prefs.glade
share/gnome/rhythmbox/glade/library-prefs.glade
@ -322,17 +375,25 @@ share/locale/zh_TW/LC_MESSAGES/rhythmbox.mo
@dirrm share/gnome/help/rhythmbox/fr
@dirrm share/gnome/help/rhythmbox/es/figures
@dirrm share/gnome/help/rhythmbox/es
@dirrm share/gnome/help/rhythmbox/el/figures
@dirrm share/gnome/help/rhythmbox/el
@dirrm share/gnome/help/rhythmbox/C/figures
@dirrm share/gnome/help/rhythmbox/C
@dirrm share/gnome/help/rhythmbox
@dirrm %%DOCSDIR%%
%%PYTHON%%@dirrm lib/rhythmbox/plugins/rb
%%PYTHON%%@dirrm lib/rhythmbox/plugins/python-console
@dirrm lib/rhythmbox/plugins/power-manager
%%PYTHON%%@dirrm lib/rhythmbox/plugins/magnatune
%%PYTHON%%@dirrm lib/rhythmbox/plugins/lyrics
%%LIRC%%@dirrm lib/rhythmbox/plugins/lirc
@dirrm lib/rhythmbox/plugins/iradio
%%IPOD%%@dirrm lib/rhythmbox/plugins/ipod
@dirrm lib/rhythmbox/plugins/generic-player
%%DAAP%%@dirrm lib/rhythmbox/plugins/daap
@dirrm lib/rhythmbox/plugins/cd-recorder
@dirrm lib/rhythmbox/plugins/audioscrobbler
@dirrm lib/rhythmbox/plugins/audiocd
%%PYTHON%%@dirrm lib/rhythmbox/plugins/artdisplay
@dirrm lib/rhythmbox/plugins
@dirrm lib/rhythmbox

View file

@ -7,8 +7,7 @@
#
PORTNAME= rhythmbox
PORTVERSION= 0.9.6
PORTREVISION= 4
PORTVERSION= 0.9.6.90
CATEGORIES= audio gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/${PORTNAME}/0.9
@ -47,7 +46,8 @@ OPTIONS= DAAP "Enable iTunes music sharing" off \
FAAD "Enable FAAD decoder support" off \
NOTIFY "Enable libnotify support" on \
VORBIS "Enable Ogg/Vorbis support" on \
GDA "Enable GDA database storage" off
GDA "Enable GDA database storage" off \
LIRC "Enable Infrared syncing support" off
.include <bsd.port.pre.mk>
@ -72,14 +72,25 @@ CONFIGURE_ARGS+=--with-database=libgda
CONFIGURE_ARGS+=--with-database=tree
.endif
.if defined(WITH_LIRC)
LIB_DEPENDS+= lirc_client.so:${PORTSDIR}/comms/lirc
PLIST_SUB+= LIRC=""
CONFIGURE_ARGS+=--enable-lirc
.else
CONFIGURE_ARGS+=--disable-lirc
PLIST_SUB+= LIRC="@comment "
.endif
.if defined(WITH_DAAP)
CONFIGURE_ARGS+= --enable-daap --with-mdns=avahi
LIB_DEPENDS+= avahi-client:${PORTSDIR}/net/avahi
PLIST_SUB+= DAAP=""
.else
.if exists(${LOCALBASE}/lib/libavahi-client.a)
LIB_DEPENDS+= avahi-client:${PORTSDIR}/net/avahi
.endif
CONFIGURE_ARGS+= --disable-daap
PLIST_SUB+= DAAP="@comment "
.endif
.if !defined(WITHOUT_NOTIFY)
@ -108,4 +119,8 @@ CONFIGURE_ARGS+=--without-ipod
PLIST_SUB+= IPOD="@comment "
.endif
post-patch:
@${CP} ${FILESDIR}/audioscrobbler-ui.xml \
${WRKSRC}/plugins/audioscrobbler
.include <bsd.port.post.mk>

View file

@ -1,3 +1,3 @@
MD5 (gnome2/rhythmbox-0.9.6.tar.bz2) = 805459eafd670b18c663ba478ad2ebd4
SHA256 (gnome2/rhythmbox-0.9.6.tar.bz2) = fe73b49d9008a9b487c93b5d4d99aa34350b87fde2c0978a6f126fdef3126973
SIZE (gnome2/rhythmbox-0.9.6.tar.bz2) = 3129839
MD5 (gnome2/rhythmbox-0.9.6.90.tar.bz2) = 8f50283c06359d7aa83317c0175e1d0e
SHA256 (gnome2/rhythmbox-0.9.6.90.tar.bz2) = 31a10103c6e031fa2a96c26b2e6b62fe06ddb998359751175224e65dcc8d8a92
SIZE (gnome2/rhythmbox-0.9.6.90.tar.bz2) = 3235154

View file

@ -0,0 +1,8 @@
<ui>
<popup name="LastfmSourceViewPopup">
<menuitem name="DeleteLibraryPopup" action="EditDelete"/>
</popup>
<popup name="LastfmSourcePopup">
</popup>
</ui>

View file

@ -1,317 +0,0 @@
--- podcast/rb-podcast-manager.c.orig Sun Sep 24 07:03:53 2006
+++ podcast/rb-podcast-manager.c Sun Nov 19 12:31:44 2006
@@ -85,8 +85,6 @@ struct RBPodcastManagerPrivate
guint next_time;
guint source_sync;
guint update_interval_notify_id;
- GMutex *mutex_job;
- GMutex *download_list_mutex;
gboolean remove_files;
@@ -102,7 +100,6 @@ typedef struct
RBPodcastChannel *channel;
} RBPodcastManagerEvent;
-/* used on donwload thread */
typedef struct
{
RBPodcastManager *pd;
@@ -111,14 +108,12 @@ typedef struct
GnomeVFSURI *write_uri;
GnomeVFSURI *read_uri;
char *query_string;
- GMutex *mutex_working;
guint total_size;
guint progress;
gboolean canceled;
} RBPodcastManagerInfo;
-/* used on subscribe thread */
typedef struct
{
RBPodcastManager *pd;
@@ -175,7 +170,6 @@ static guint download_progress_update_cb
/* internal functions */
static void download_info_free (RBPodcastManagerInfo *data);
-static RBPodcastManagerInfo *download_info_new (void);
static void start_job (RBPodcastManagerInfo *data);
static void end_job (RBPodcastManagerInfo *data);
static void cancel_job (RBPodcastManagerInfo *pd);
@@ -272,8 +266,6 @@ rb_podcast_manager_init (RBPodcastManage
pd->priv = RB_PODCAST_MANAGER_GET_PRIVATE (pd);
pd->priv->source_sync = 0;
- pd->priv->mutex_job = g_mutex_new();
- pd->priv->download_list_mutex = g_mutex_new();
pd->priv->event_queue = g_async_queue_new ();
pd->priv->db = NULL;
eel_gconf_monitor_add (CONF_STATE_PODCAST_PREFIX);
@@ -321,8 +313,6 @@ rb_podcast_manager_finalize (GObject *ob
g_list_free (pd->priv->download_list);
}
- g_mutex_free (pd->priv->mutex_job);
- g_mutex_free (pd->priv->download_list_mutex);
g_async_queue_unref (pd->priv->event_queue);
G_OBJECT_CLASS (rb_podcast_manager_parent_class)->finalize (object);
@@ -418,12 +408,12 @@ rb_podcast_manager_download_entry (RBPod
g_value_unset (&status_val);
}
rb_debug ("Try insert entry for download.");
- data = download_info_new();
+
+ data = g_new0 (RBPodcastManagerInfo, 1);
data->pd = pd;
data->entry = entry;
- g_mutex_lock (pd->priv->download_list_mutex);
+
pd->priv->download_list = g_list_append (pd->priv->download_list, data);
- g_mutex_unlock (pd->priv->download_list_mutex);
g_idle_add ((GtkFunction) rb_podcast_manager_next_file , pd);
}
}
@@ -535,23 +525,15 @@ rb_podcast_manager_head_query_cb (GtkTre
static gboolean
rb_podcast_manager_next_file (RBPodcastManager * pd)
{
+ gint size;
+
GDK_THREADS_ENTER ();
-
rb_debug ("try lock file_process mutex");
- if (g_mutex_trylock (pd->priv->mutex_job) == TRUE) {
- gint size;
- g_mutex_lock (pd->priv->download_list_mutex);
- size = g_list_length (pd->priv->download_list);
- g_mutex_unlock (pd->priv->download_list_mutex);
-
- if (size > 0)
- rb_podcast_manager_copy_post (pd);
- else
- g_mutex_unlock (pd->priv->mutex_job);
- } else {
- rb_debug ("not start");
- }
+ size = g_list_length (pd->priv->download_list);
+
+ if (size > 0)
+ rb_podcast_manager_copy_post (pd);
GDK_THREADS_LEAVE ();
return FALSE;
@@ -565,9 +547,7 @@ rb_podcast_manager_copy_post (RBPodcastM
char *query_string;
/* get first element of list */
- g_mutex_lock (pd->priv->download_list_mutex);
data = (RBPodcastManagerInfo *) g_list_first (pd->priv->download_list)->data;
- g_mutex_unlock (pd->priv->download_list_mutex);
g_assert (data != NULL);
g_assert (data->entry != NULL);
@@ -765,13 +745,9 @@ rb_podcast_manager_abort_download (RBPod
{
RBPodcastManager *mgr = data->pd;
- g_mutex_lock (mgr->priv->download_list_mutex);
mgr->priv->download_list = g_list_remove (mgr->priv->download_list, (gconstpointer) data);
- g_mutex_unlock (mgr->priv->download_list_mutex);
-
download_info_free (data);
- g_mutex_unlock (mgr->priv->mutex_job);
g_idle_add ((GtkFunction) rb_podcast_manager_next_file, mgr);
}
@@ -1021,6 +997,8 @@ write_job_data (RBPodcastManagerInfo *da
gnome_vfs_uri_to_string (data->write_uri, GNOME_VFS_URI_HIDE_NONE));
rhythmdb_commit (db);
+
+ end_job (data);
}
static void
@@ -1040,19 +1018,9 @@ download_info_free (RBPodcastManagerInfo
data->query_string = NULL;
}
- g_mutex_free (data->mutex_working);
-
g_free (data);
}
-static RBPodcastManagerInfo*
-download_info_new (void)
-{
- RBPodcastManagerInfo *data = g_new0 (RBPodcastManagerInfo, 1);
- data->mutex_working = g_mutex_new ();
- return data;
-}
-
static void
start_job (RBPodcastManagerInfo *data)
{
@@ -1070,8 +1038,6 @@ start_job (RBPodcastManagerInfo *data)
source_uri_list = g_list_prepend (source_uri_list, data->read_uri);
target_uri_list = g_list_prepend (target_uri_list, data->write_uri);
- g_mutex_lock (data->mutex_working);
-
rb_debug ("start async copy");
gnome_vfs_async_xfer ( &data->read_handle,
source_uri_list,
@@ -1094,9 +1060,7 @@ rb_podcast_manager_cancel_all (RBPodcast
guint lst_len;
GList *lst;
- g_mutex_lock (pd->priv->download_list_mutex);
lst = g_list_reverse (pd->priv->download_list);
- g_mutex_unlock (pd->priv->download_list_mutex);
rb_debug ("cancel all job %d", g_list_length (lst));
lst_len = g_list_length (lst);
@@ -1107,11 +1071,6 @@ rb_podcast_manager_cancel_all (RBPodcast
cancel_job (data);
rb_debug ("cancel next job");
}
-
- if (lst_len > 0) {
- g_mutex_lock (pd->priv->mutex_job);
- g_mutex_unlock (pd->priv->mutex_job);
- }
}
static void
@@ -1120,12 +1079,7 @@ end_job (RBPodcastManagerInfo *data)
RBPodcastManager *pd = data->pd;
rb_debug ("end_job");
-
- g_mutex_lock (data->pd->priv->download_list_mutex);
data->pd->priv->download_list = g_list_remove (data->pd->priv->download_list, (gconstpointer) data);
- g_mutex_unlock (data->pd->priv->download_list_mutex);
-
- g_mutex_unlock (data->mutex_working);
if (data->canceled != TRUE) {
GDK_THREADS_ENTER ();
@@ -1137,7 +1091,6 @@ end_job (RBPodcastManagerInfo *data)
}
download_info_free (data);
- g_mutex_unlock (pd->priv->mutex_job);
g_idle_add ((GtkFunction) rb_podcast_manager_next_file, pd);
}
@@ -1145,22 +1098,12 @@ end_job (RBPodcastManagerInfo *data)
static void
cancel_job (RBPodcastManagerInfo *data)
{
- if (g_mutex_trylock (data->mutex_working) == FALSE) {
- rb_debug ("async cancel");
- data->canceled = TRUE;
- }
- else {
- rb_debug ("job cancel");
-
- g_mutex_lock (data->pd->priv->download_list_mutex);
- data->pd->priv->download_list = g_list_remove (data->pd->priv->download_list, (gconstpointer ) data);
- g_mutex_unlock (data->pd->priv->download_list_mutex);
+ rb_debug ("job cancel");
- g_mutex_unlock (data->mutex_working);
+ data->pd->priv->download_list = g_list_remove (data->pd->priv->download_list, (gconstpointer ) data);
- download_info_free (data);
- data = NULL;
- }
+ download_info_free (data);
+ data = NULL;
}
static guint
@@ -1175,16 +1118,16 @@ download_progress_cb (GnomeVFSXferProgre
if (info->status != GNOME_VFS_XFER_PROGRESS_STATUS_OK ||
((info->phase == GNOME_VFS_XFER_PHASE_COMPLETED) && (info->file_size == 0))) {
GValue val = {0, };
+
rb_debug ("error on download");
+
g_value_init (&val, G_TYPE_ULONG);
g_value_set_ulong (&val, RHYTHMDB_PODCAST_STATUS_ERROR);
- GDK_THREADS_ENTER ();
rhythmdb_entry_set (data->pd->priv->db, data->entry, RHYTHMDB_PROP_STATUS, &val);
rhythmdb_commit (data->pd->priv->db);
- GDK_THREADS_LEAVE ();
g_value_unset (&val);
- end_job (data);
- data = NULL;
+
+ g_idle_add ((GSourceFunc)end_job, data);
return GNOME_VFS_XFER_ERROR_ACTION_ABORT;
}
@@ -1208,9 +1151,9 @@ download_progress_cb (GnomeVFSXferProgre
rb_debug ("download completed");
data->total_size = info->file_size;
write_job_data (data);
+ } else {
+ g_idle_add ((GSourceFunc)end_job, data);
}
- end_job (data);
- data = NULL;
return GNOME_VFS_XFER_ERROR_ACTION_SKIP;
}
@@ -1226,7 +1169,6 @@ download_progress_cb (GnomeVFSXferProgre
static guint
download_progress_update_cb (GnomeVFSAsyncHandle *handle, GnomeVFSXferProgressInfo *info, gpointer cb_data)
{
-
RBPodcastManagerInfo *data = (RBPodcastManagerInfo *) cb_data;
if (data == NULL) {
@@ -1243,17 +1185,18 @@ download_progress_update_cb (GnomeVFSAsy
if (local_progress != data->progress) {
GValue val = {0,};
+ GDK_THREADS_ENTER ();
+
g_value_init (&val, G_TYPE_ULONG);
g_value_set_ulong (&val, local_progress);
rhythmdb_entry_set (data->pd->priv->db, data->entry, RHYTHMDB_PROP_STATUS, &val);
g_value_unset (&val);
- GDK_THREADS_ENTER ();
-
g_signal_emit (data->pd, rb_podcast_manager_signals[STATUS_CHANGED],
0, data->entry, local_progress);
GDK_THREADS_LEAVE ();
+
data->progress = local_progress;
}
}
@@ -1368,8 +1311,6 @@ rb_podcast_manager_cancel_download (RBPo
{
GList *lst;
- g_mutex_lock (pd->priv->download_list_mutex);
-
lst = pd->priv->download_list;
while (lst) {
RBPodcastManagerInfo *data = (RBPodcastManagerInfo *) lst->data;
@@ -1379,7 +1320,6 @@ rb_podcast_manager_cancel_download (RBPo
}
lst = lst->next;
}
- g_mutex_unlock (pd->priv->download_list_mutex);
if (lst)
cancel_job (lst->data);

View file

@ -13,7 +13,12 @@ bin/rhythmbox-client
%%PYTHON%%lib/rhythmbox/plugins/artdisplay/__init__.py
%%PYTHON%%lib/rhythmbox/plugins/artdisplay/__init__.pyc
%%PYTHON%%lib/rhythmbox/plugins/artdisplay/__init__.pyo
lib/rhythmbox/plugins/audiocd.rb-plugin
lib/rhythmbox/plugins/audiocd/audiocd.rb-plugin
lib/rhythmbox/plugins/audiocd/libaudiocd.a
lib/rhythmbox/plugins/audiocd/libaudiocd.la
lib/rhythmbox/plugins/audiocd/libaudiocd.so
lib/rhythmbox/plugins/audiocd/multiple-album.glade
lib/rhythmbox/plugins/audioscrobbler/audioscrobbler-ui.xml
lib/rhythmbox/plugins/audioscrobbler/audioscrobbler.rb-plugin
lib/rhythmbox/plugins/audioscrobbler/libaudioscrobbler.a
lib/rhythmbox/plugins/audioscrobbler/libaudioscrobbler.la
@ -22,6 +27,12 @@ lib/rhythmbox/plugins/cd-recorder/cd-recorder.rb-plugin
lib/rhythmbox/plugins/cd-recorder/libcd-recorder.a
lib/rhythmbox/plugins/cd-recorder/libcd-recorder.la
lib/rhythmbox/plugins/cd-recorder/libcd-recorder.so
%%DAAP%%lib/rhythmbox/plugins/daap/daap-prefs.glade
%%DAAP%%lib/rhythmbox/plugins/daap/daap-ui.xml
%%DAAP%%lib/rhythmbox/plugins/daap/daap.rb-plugin
%%DAAP%%lib/rhythmbox/plugins/daap/libdaap.a
%%DAAP%%lib/rhythmbox/plugins/daap/libdaap.la
%%DAAP%%lib/rhythmbox/plugins/daap/libdaap.so
lib/rhythmbox/plugins/generic-player/generic-player.rb-plugin
lib/rhythmbox/plugins/generic-player/libgeneric-player.a
lib/rhythmbox/plugins/generic-player/libgeneric-player.la
@ -30,13 +41,42 @@ lib/rhythmbox/plugins/generic-player/libgeneric-player.so
%%IPOD%%lib/rhythmbox/plugins/ipod/libipod.a
%%IPOD%%lib/rhythmbox/plugins/ipod/libipod.la
%%IPOD%%lib/rhythmbox/plugins/ipod/libipod.so
lib/rhythmbox/plugins/libaudiocd.a
lib/rhythmbox/plugins/libaudiocd.la
lib/rhythmbox/plugins/libaudiocd.so
lib/rhythmbox/plugins/iradio/iradio-ui.xml
lib/rhythmbox/plugins/iradio/iradio.rb-plugin
lib/rhythmbox/plugins/iradio/libiradio.a
lib/rhythmbox/plugins/iradio/libiradio.la
lib/rhythmbox/plugins/iradio/libiradio.so
%%LIRC%%lib/rhythmbox/plugins/lirc/librblirc.a
%%LIRC%%lib/rhythmbox/plugins/lirc/librblirc.la
%%LIRC%%lib/rhythmbox/plugins/lirc/librblirc.so
%%LIRC%%lib/rhythmbox/plugins/lirc/lirc.rb-plugin
%%PYTHON%%lib/rhythmbox/plugins/lyrics/lyrics.py
%%PYTHON%%lib/rhythmbox/plugins/lyrics/lyrics.pyc
%%PYTHON%%lib/rhythmbox/plugins/lyrics/lyrics.pyo
%%PYTHON%%lib/rhythmbox/plugins/lyrics/lyrics.rb-plugin
%%PYTHON%%lib/rhythmbox/plugins/magnatune/BuyAlbumHandler.py
%%PYTHON%%lib/rhythmbox/plugins/magnatune/BuyAlbumHandler.pyc
%%PYTHON%%lib/rhythmbox/plugins/magnatune/BuyAlbumHandler.pyo
%%PYTHON%%lib/rhythmbox/plugins/magnatune/MagnatuneSource.py
%%PYTHON%%lib/rhythmbox/plugins/magnatune/MagnatuneSource.pyc
%%PYTHON%%lib/rhythmbox/plugins/magnatune/MagnatuneSource.pyo
%%PYTHON%%lib/rhythmbox/plugins/magnatune/TrackListHandler.py
%%PYTHON%%lib/rhythmbox/plugins/magnatune/TrackListHandler.pyc
%%PYTHON%%lib/rhythmbox/plugins/magnatune/TrackListHandler.pyo
%%PYTHON%%lib/rhythmbox/plugins/magnatune/__init__.py
%%PYTHON%%lib/rhythmbox/plugins/magnatune/__init__.pyc
%%PYTHON%%lib/rhythmbox/plugins/magnatune/__init__.pyo
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune-loading.glade
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune-prefs.glade
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune-purchase.glade
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune.rb-plugin
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune_circle_small.png
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune_logo_color_small.png
%%PYTHON%%lib/rhythmbox/plugins/magnatune/magnatune_logo_color_tiny.png
lib/rhythmbox/plugins/power-manager/libpower-manager.a
lib/rhythmbox/plugins/power-manager/libpower-manager.la
lib/rhythmbox/plugins/power-manager/libpower-manager.so
lib/rhythmbox/plugins/power-manager/power-manager.rb-plugin
%%PYTHON%%lib/rhythmbox/plugins/python-console/pythonconsole.py
%%PYTHON%%lib/rhythmbox/plugins/python-console/pythonconsole.pyc
%%PYTHON%%lib/rhythmbox/plugins/python-console/pythonconsole.pyo
@ -145,6 +185,20 @@ share/gnome/help/rhythmbox/C/figures/rb-window-small.png
share/gnome/help/rhythmbox/C/figures/rb-window.png
share/gnome/help/rhythmbox/C/legal.xml
share/gnome/help/rhythmbox/C/rhythmbox.xml
share/gnome/help/rhythmbox/el/figures/rb-iradio-main.png
share/gnome/help/rhythmbox/el/figures/rb-notification-area-menu.png
share/gnome/help/rhythmbox/el/figures/rb-notification-window.png
share/gnome/help/rhythmbox/el/figures/rb-notification-zone.png
share/gnome/help/rhythmbox/el/figures/rb-podcast-main.png
share/gnome/help/rhythmbox/el/figures/rb-statusbar.png
share/gnome/help/rhythmbox/el/figures/rb-toolbar-prevplaynext.png
share/gnome/help/rhythmbox/el/figures/rb-toolbar-repeat.png
share/gnome/help/rhythmbox/el/figures/rb-toolbar-shuffle.png
share/gnome/help/rhythmbox/el/figures/rb-toolbar.png
share/gnome/help/rhythmbox/el/figures/rb-volume-changer.png
share/gnome/help/rhythmbox/el/figures/rb-window-small.png
share/gnome/help/rhythmbox/el/figures/rb-window.png
share/gnome/help/rhythmbox/el/rhythmbox.xml
share/gnome/help/rhythmbox/es/figures/rb-iradio-main.png
share/gnome/help/rhythmbox/es/figures/rb-notification-area-menu.png
share/gnome/help/rhythmbox/es/figures/rb-notification-window.png
@ -216,6 +270,7 @@ share/gnome/help/rhythmbox/zh_CN/figures/rb-window-small.png
share/gnome/help/rhythmbox/zh_CN/figures/rb-window.png
share/gnome/help/rhythmbox/zh_CN/rhythmbox.xml
share/gnome/omf/rhythmbox/rhythmbox-C.omf
share/gnome/omf/rhythmbox/rhythmbox-el.omf
share/gnome/omf/rhythmbox/rhythmbox-es.omf
share/gnome/omf/rhythmbox/rhythmbox-fr.omf
share/gnome/omf/rhythmbox/rhythmbox-ru.omf
@ -228,11 +283,9 @@ share/gnome/rhythmbox/art/rhythmbox-podcast.png
share/gnome/rhythmbox/art/rhythmbox-set-star.png
share/gnome/rhythmbox/art/rhythmbox-tray-icon.png
share/gnome/rhythmbox/art/rhythmbox-unset-star.png
share/gnome/rhythmbox/daap-ui.xml
share/gnome/rhythmbox/generic-player-ui.xml
share/gnome/rhythmbox/glade/audioscrobbler-prefs.glade
share/gnome/rhythmbox/glade/create-playlist.glade
share/gnome/rhythmbox/glade/daap-prefs.glade
share/gnome/rhythmbox/glade/druid.glade
share/gnome/rhythmbox/glade/general-prefs.glade
share/gnome/rhythmbox/glade/library-prefs.glade
@ -322,17 +375,25 @@ share/locale/zh_TW/LC_MESSAGES/rhythmbox.mo
@dirrm share/gnome/help/rhythmbox/fr
@dirrm share/gnome/help/rhythmbox/es/figures
@dirrm share/gnome/help/rhythmbox/es
@dirrm share/gnome/help/rhythmbox/el/figures
@dirrm share/gnome/help/rhythmbox/el
@dirrm share/gnome/help/rhythmbox/C/figures
@dirrm share/gnome/help/rhythmbox/C
@dirrm share/gnome/help/rhythmbox
@dirrm %%DOCSDIR%%
%%PYTHON%%@dirrm lib/rhythmbox/plugins/rb
%%PYTHON%%@dirrm lib/rhythmbox/plugins/python-console
@dirrm lib/rhythmbox/plugins/power-manager
%%PYTHON%%@dirrm lib/rhythmbox/plugins/magnatune
%%PYTHON%%@dirrm lib/rhythmbox/plugins/lyrics
%%LIRC%%@dirrm lib/rhythmbox/plugins/lirc
@dirrm lib/rhythmbox/plugins/iradio
%%IPOD%%@dirrm lib/rhythmbox/plugins/ipod
@dirrm lib/rhythmbox/plugins/generic-player
%%DAAP%%@dirrm lib/rhythmbox/plugins/daap
@dirrm lib/rhythmbox/plugins/cd-recorder
@dirrm lib/rhythmbox/plugins/audioscrobbler
@dirrm lib/rhythmbox/plugins/audiocd
%%PYTHON%%@dirrm lib/rhythmbox/plugins/artdisplay
@dirrm lib/rhythmbox/plugins
@dirrm lib/rhythmbox