summaryrefslogtreecommitdiff
path: root/audio/goobox
diff options
context:
space:
mode:
authorKoop Mast <kwm@FreeBSD.org>2014-11-19 11:49:04 +0000
committerKoop Mast <kwm@FreeBSD.org>2014-11-19 11:49:04 +0000
commitaf3811313c14afb06fe2d1f6158e3e431bbfc2b6 (patch)
tree1ad98a4e8faecd0e2fa9ac2c18e65da4cf89c236 /audio/goobox
parentCleanup the @dirrm (diff)
The FreeBSD GNOME team proudly presents GNOME 3.14 and Cinnamon 2.2.
Gnome 3.14.1 and Cinnamon 2.2.16 are supported on FreeBSD 9.3-RELEASE and up. This commit removes the old GNOME 2 desktop, bindings and some ports that can't be compiled. A few ports where updated to more recent versions to allow them to compile with this update. Apart from updating ports to newer versions GDM is more integrated with gnome-shell now, and handles several things for the GNOME desktop such as screen locking. If you want to use GNOME 3 via startx, you will have to add your own lock screen/screensaver. For example xscreensaver can be used for sessions started without GDM. Shell Extensions can be installed via https://extensions.gnome.org/ , we have ported a few that can't be installed via this way. The old gnome-utils and gnome-games ports where split up into single ports and where converted to meta-ports. gnome-terminal requires a UTF-8 locale to run, gdm handles this already, but if you use startx you need to do this yourself. Upgrade instructions: Delete the old and conflicting packages: # pkg delete clutter gnome-utils gnome-panel gnome-keyring vala-vapigen \ guile gcalctool gnome-media libgnomekbd # pkg delete gnome-screensaver gnome-applets bug-buddy evolution-exchange \ evolution-webcal gnome-system-tools seahorse-plugins gnome-control-center For package users the following lines will be enough: # pkg upgrade # pkg install gnome3 For ports users should do the following: # portmaster -a # portmaster x11/gnome3 We are currently aware of two issues. The first issue is a bug in the file monitoring code in the glib20 port. This bug causes glib programs to crash when files in a monitored directory are added or removed. Upstream is aware of the problem, but since the problem is quite complex there is no solution yet. This problem isn't restricted to BSD. The second issue is that on certain video cards totem will display a purple/pink overlay on the video. It not clear yet where the issues comes from. Major thanks goes to Gustau Perez for being a driving force behind getting GNOME 3 up to speed again. Also thanks to Antoine Brodin for running the exp-runs. This update was also made possible by: Joe Maloney Kris Moore Beeblebrox Ryan Lortie Antoine Jacoutot and everyone I missed
Notes
Notes: svn path=/head/; revision=372768
Diffstat (limited to 'audio/goobox')
-rw-r--r--audio/goobox/Makefile37
-rw-r--r--audio/goobox/distinfo4
-rw-r--r--audio/goobox/files/patch-port_to_libmusicbrainz3773
-rw-r--r--audio/goobox/files/patch-port_to_libnotify0726
-rw-r--r--audio/goobox/pkg-plist76
5 files changed, 71 insertions, 845 deletions
diff --git a/audio/goobox/Makefile b/audio/goobox/Makefile
index ddd0a56a64b5..5e178be1c47c 100644
--- a/audio/goobox/Makefile
+++ b/audio/goobox/Makefile
@@ -1,41 +1,44 @@
# Created by: Alexander Nedotsukov <bland@FreeBSD.org>
# $FreeBSD$
-# $MCom: ports/audio/goobox/Makefile,v 1.25 2007/08/15 03:03:09 mezz Exp $
+# $MCom: ports/trunk/audio/goobox/Makefile 19823 2014-08-20 09:28:14Z gusi $
PORTNAME= goobox
-PORTVERSION= 2.2.0
-PORTREVISION= 5
+PORTVERSION= 3.3.2
+PORTREVISION= 1
CATEGORIES= audio gnome
MASTER_SITES= GNOME
-DIST_SUBDIR= gnome2
+DIST_SUBDIR= gnome3
MAINTAINER= gnome@FreeBSD.org
COMMENT= CD player and ripper for GNOME Desktop environment
-BUILD_DEPENDS= ${LOCALBASE}/share/icons/gnome/index.theme:${PORTSDIR}/misc/gnome-icon-theme
+BUILD_DEPENDS= itstool:${PORTSDIR}/textproc/itstool
LIB_DEPENDS= libdiscid.so:${PORTSDIR}/audio/libdiscid \
- libmusicbrainz3.so:${PORTSDIR}/audio/libmusicbrainz3 \
- libbrasero-media.so:${PORTSDIR}/sysutils/brasero \
+ libcoverart.so.0:${PORTSDIR}/audio/libcoverart \
+ libmusicbrainz5.so:${PORTSDIR}/audio/libmusicbrainz5 \
+ libbrasero-media3.so:${PORTSDIR}/sysutils/brasero \
libunique-1.0.so:${PORTSDIR}/x11-toolkits/unique
-RUN_DEPENDS= ${LOCALBASE}/share/icons/gnome/index.theme:${PORTSDIR}/misc/gnome-icon-theme
+USES= desktop-file-utils gettext gmake pkgconfig tar:xz
+USE_GNOME= glib20 gtk30 gnomeprefix intlhack
USE_XORG= x11
-USES= gettext gmake desktop-file-utils pathfix pkgconfig tar:bzip2
-USE_GNOME= gnomeprefix intlhack gtk20 gconf2
-USE_GSTREAMER= cdparanoia gconf core gio
+USE_GSTREAMER1= yes
GNU_CONFIGURE= yes
-INSTALLS_OMF= yes
INSTALLS_ICONS= yes
CPPFLAGS+= -I${LOCALBASE}/include
-LIBS+= -L${LOCALBASE}/lib -lm
+LDFLAGS+= -L${LOCALBASE}/lib
INSTALL_TARGET= install-strip
-GCONF_SCHEMAS= goobox.schemas
-
OPTIONS_DEFINE= NOTIFY
OPTIONS_DEFAULT=NOTIFY
-NOTIFY_LIB_DEPENDS= libnotify.so:${PORTSDIR}/devel/libnotify
-NOTIFY_CONFIGURE_ENABLE= notification
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MNOTIFY}
+LIB_DEPENDS+= libnotify.so:${PORTSDIR}/devel/libnotify
+CONFIGURE_ARGS+=--enable-notification
+.else
+CONFIGURE_ARGS+=--disable-notification
+.endif
.include <bsd.port.mk>
diff --git a/audio/goobox/distinfo b/audio/goobox/distinfo
index bda18b5d18e4..e434ca63edff 100644
--- a/audio/goobox/distinfo
+++ b/audio/goobox/distinfo
@@ -1,2 +1,2 @@
-SHA256 (gnome2/goobox-2.2.0.tar.bz2) = d18e343c7621b56cb7bb1925a61c9b78f8aa25bbdbddff40378d7df00950b53a
-SIZE (gnome2/goobox-2.2.0.tar.bz2) = 576966
+SHA256 (gnome3/goobox-3.3.2.tar.xz) = a6461eb0cc204c295173f9f26051923c261898a65b8053d253be8315bc4e47c5
+SIZE (gnome3/goobox-3.3.2.tar.xz) = 550684
diff --git a/audio/goobox/files/patch-port_to_libmusicbrainz3 b/audio/goobox/files/patch-port_to_libmusicbrainz3
deleted file mode 100644
index f6ac31597963..000000000000
--- a/audio/goobox/files/patch-port_to_libmusicbrainz3
+++ /dev/null
@@ -1,773 +0,0 @@
---- configure.orig 2012-03-14 12:11:24.000000000 -0500
-+++ configure 2012-03-14 13:33:57.000000000 -0500
-@@ -14820,7 +14820,7 @@
- GTK_REQUIRED=2.18
- GSTREAMER_REQUIRED=0.10.12
- LIBNOTIFY_REQUIRED=0.4.3
--LIBMUSICBRAINZ_REQUIRED=2.1.0
-+LIBMUSICBRAINZ3_REQUIRED=3.0.0
-
-
-
-@@ -14932,7 +14932,8 @@
- gtk+-2.0 >= \$GTK_REQUIRED
- gstreamer-0.10 >= \$GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= \$LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= \$LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- \""; } >&5
-@@ -14942,7 +14943,8 @@
- gtk+-2.0 >= $GTK_REQUIRED
- gstreamer-0.10 >= $GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= $LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= $LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- ") 2>&5
-@@ -14955,7 +14957,8 @@
- gtk+-2.0 >= $GTK_REQUIRED
- gstreamer-0.10 >= $GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= $LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= $LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- " 2>/dev/null`
-@@ -14977,7 +14980,8 @@
- gtk+-2.0 >= \$GTK_REQUIRED
- gstreamer-0.10 >= \$GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= \$LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= \$LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- \""; } >&5
-@@ -14987,7 +14991,8 @@
- gtk+-2.0 >= $GTK_REQUIRED
- gstreamer-0.10 >= $GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= $LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= $LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- ") 2>&5
-@@ -15000,7 +15005,8 @@
- gtk+-2.0 >= $GTK_REQUIRED
- gstreamer-0.10 >= $GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= $LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= $LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- " 2>/dev/null`
-@@ -15028,7 +15034,8 @@
- gtk+-2.0 >= $GTK_REQUIRED
- gstreamer-0.10 >= $GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= $LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= $LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- "`
-@@ -15039,7 +15046,8 @@
- gtk+-2.0 >= $GTK_REQUIRED
- gstreamer-0.10 >= $GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= $LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= $LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- "`
-@@ -15053,7 +15061,8 @@
- gtk+-2.0 >= $GTK_REQUIRED
- gstreamer-0.10 >= $GSTREAMER_REQUIRED
- libbrasero-media
-- libmusicbrainz >= $LIBMUSICBRAINZ_REQUIRED
-+ libmusicbrainz3 >= $LIBMUSICBRAINZ3_REQUIRED
-+ libdiscid
- gconf-2.0
- unique-1.0
- ) were not met:
-diff --git a/data/ui/properties.ui b/data/ui/properties.ui
-index b28d921..83aaf21 100644
---- data/ui/properties.ui
-+++ data/ui/properties.ui
-@@ -344,7 +344,7 @@
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
-- <object class="GtkImage" id="image2">
-+ <object class="GtkImage" id="info_icon">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-dialog-warning</property>
-diff --git a/src/album-info.c b/src/album-info.c
-index 10c3bc8..7effa35 100644
---- src/album-info.c
-+++ src/album-info.c
-@@ -26,6 +26,7 @@
- #include "album-info.h"
- #include "glib-utils.h"
- #include "gth-user-dir.h"
-+#include "track-info.h"
-
-
- #define MBI_VARIOUS_ARTIST_ID "89ad4ac3-39f7-470e-963a-56509c546377"
-@ -226,18 +227,21 @@ album_info_set_tracks (AlbumInfo *album,
- GList *tracks)
- {
- GList *scan;
--
-+
- if (album->tracks == tracks)
- return;
--
-+
- track_list_free (album->tracks);
- album->tracks = track_list_dup (tracks);
--
-+
- album->n_tracks = 0;
- album->total_length = 0;
- for (scan = album->tracks; scan; scan = scan->next) {
- TrackInfo *track = scan->data;
--
-+
-+ if ((album->artist != NULL) && (track->artist == NULL))
-+ track_info_set_artist (track, album->artist, album->artist_id);
-+
- album->n_tracks++;
- album->total_length += track->length;
- }
-diff --git a/src/dlg-properties.c b/src/dlg-properties.c
-index de56ecd..7cf0d2a 100644
---- src/dlg-properties.c
-+++ src/dlg-properties.c
-@@ -218,49 +218,54 @@ remove_incompatible_albums (GList *albums,
- else
- scan = scan->next;
- }
--
-+
- return albums;
- }
-
-
- static void
--search_cb (GtkWidget *widget,
-+search_cb (GtkWidget *widget,
- DialogData *data)
- {
-- musicbrainz_t mb;
-- char *mb_args[2];
--
-- mb = mb_New ();
-- mb_UseUTF8 (mb, TRUE);
-- mb_SetDepth (mb, 4);
-- /*mb_SetMaxItems(mb, 10);*/
--
-- mb_args[0] = (char*) gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("title_entry")));
-- mb_args[1] = NULL;
-- if (! mb_QueryWithArgs (mb, MBQ_FindAlbumByName, mb_args)) {
-- char mb_error[1024];
-- char *s;
--
-- mb_GetQueryError (mb, mb_error, sizeof (mb_error));
-- s = g_strdup_printf (_("Search failed: %s\n"), mb_error);
-- gtk_label_set_text (GTK_LABEL (GET_WIDGET ("info_label")), s);
-- g_free (s);
-- }
-- else {
-- data->albums = get_album_list (mb);
-- data->albums = remove_incompatible_albums (data->albums, goo_window_get_album (data->window));
-- data->n_albums = g_list_length (data->albums);
--
-- if (data->n_albums == 0) {
-- gtk_label_set_text (GTK_LABEL (GET_WIDGET ("info_label")), _("No album found"));
-- gtk_widget_show (GET_WIDGET ("info_box"));
-- gtk_widget_hide (GET_WIDGET ("navigation_box"));
-- }
-- else
-- show_album (data, 0);
-+ MbReleaseFilter filter;
-+ MbQuery query;
-+ MbResultList list;
-+
-+ gtk_image_set_from_stock (GTK_IMAGE (GET_WIDGET ("info_icon")), GTK_STOCK_FIND, GTK_ICON_SIZE_BUTTON);
-+ gtk_label_set_text (GTK_LABEL (GET_WIDGET ("info_label")), _("Searching disc info..."));
-+ gtk_widget_show (GET_WIDGET ("info_box"));
-+ gtk_widget_hide (GET_WIDGET ("navigation_box"));
-+
-+ /*
-+ metadata_search_album_by_title (gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("title_entry"))),
-+ data->cancellable,
-+ G_CALLBACK (search_album_by_title_ready_cb),
-+ data);
-+ */
-+
-+ filter = mb_release_filter_new ();
-+ mb_release_filter_title (filter, gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("title_entry"))));
-+
-+ query = mb_query_new (NULL, NULL);
-+ list = mb_query_get_releases (query, filter);
-+
-+ data->albums = get_album_list (list);
-+ get_track_info_for_album_list (data->albums);
-+ data->albums = remove_incompatible_albums (data->albums, goo_window_get_album (data->window));
-+ data->n_albums = g_list_length (data->albums);
-+
-+ if (data->n_albums == 0) {
-+ gtk_image_set_from_stock (GTK_IMAGE (GET_WIDGET ("info_icon")), GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_BUTTON);
-+ gtk_label_set_text (GTK_LABEL (GET_WIDGET ("info_label")), _("No album found"));
-+ gtk_widget_show (GET_WIDGET ("info_box"));
-+ gtk_widget_hide (GET_WIDGET ("navigation_box"));
- }
-+ else
-+ show_album (data, 0);
-
-- mb_Delete (mb);
-+ mb_result_list_free (list);
-+ mb_query_free (query);
-+ mb_release_filter_free (filter);
- }
-
-
-diff --git a/src/goo-player.c b/src/goo-player.c
-index 050d1d2..6de4a9a 100644
---- src/goo-player.c
-+++ src/goo-player.c
-@@ -25,8 +25,8 @@
- #include <string.h>
- #include <glib/gi18n.h>
- #include <gst/gst.h>
--#include <musicbrainz/queries.h>
--#include <musicbrainz/mb_c.h>
-+#include <discid/discid.h>
-+#include <musicbrainz3/mb_c.h>
- #include "goo-player.h"
- #include "goo-marshal.h"
- #include "glib-utils.h"
-@@ -74,6 +74,7 @@
- gboolean exiting;
-
- char *rdf;
-+ GList *albums;
- };
-
- enum {
-@@ -348,6 +349,7 @@
- self->priv->current_track_n = -1;
- self->priv->volume_value = 1.0;
- self->priv->update_progress_id = 0;
-+ self->priv->albums = NULL;
- }
-
-
-@@ -457,6 +459,9 @@
- }
-
-
-+#if 0
-+
-+
- static void
- set_cd_metadata_from_rdf (GooPlayer *self,
- char *rdf)
-@@ -552,13 +557,16 @@
- }
-
-
-+#endif
-+
-+
- static int
- check_get_cd_metadata (gpointer data)
- {
- GooPlayer *player = data;
- gboolean done, exiting;
-- char *rdf;
--
-+ GList *albums;
-+
- /* Remove the check. */
-
- g_source_remove (player->priv->check_id);
-@@ -587,45 +595,51 @@
- /**/
-
- g_mutex_lock (player->priv->yes_or_no);
-- rdf = player->priv->rdf;
-- player->priv->rdf = NULL;
-+ albums = player->priv->albums;
-+ player->priv->albums = NULL;
- g_mutex_unlock (player->priv->yes_or_no);
--
-- if (rdf != NULL) {
-- set_cd_metadata_from_rdf (player, rdf);
-- save_rdf_to_cache (player, rdf);
-+
-+ if (albums != NULL) {
-+ AlbumInfo *first_album = albums->data;
-+
-+ /* FIXME: ask the user which album to use if the query
-+ * returned more than one album. */
-+
-+ goo_player_set_album (player, first_album);
- album_info_save_to_cache (player->priv->album, player->priv->discid);
-- g_free (rdf);
-+
-+ album_list_free (albums);
- }
--
-- return FALSE;
-+
-+ return FALSE;
- }
-
-
- static void *
- get_cd_metadata (void *thread_data)
- {
-- GooPlayer *player = thread_data;
-- musicbrainz_t mb;
-- char *rdf = NULL;
--
-- mb = mb_New ();
-- mb_UseUTF8 (mb, TRUE);
-- if (mb_Query (mb, MBQ_GetCDInfo)) {
-- int rdf_len;
--
-- rdf_len = mb_GetResultRDFLen (mb);
-- rdf = g_malloc (rdf_len + 1);
-- mb_GetResultRDF (mb, rdf, rdf_len);
-- }
-- mb_Delete (mb);
-+ GooPlayer *player = thread_data;
-+ MbReleaseFilter filter;
-+ MbQuery query;
-+ MbResultList list;
-+
-+ filter = mb_release_filter_new ();
-+ mb_release_filter_disc_id (filter, player->priv->discid);
-+ mb_release_filter_limit (filter, 1);
-+
-+ query = mb_query_new (NULL, NULL);
-+ list = mb_query_get_releases (query, filter);
-
- g_mutex_lock (player->priv->yes_or_no);
-- g_free (player->priv->rdf);
-- player->priv->rdf = rdf;
-+ album_list_free (player->priv->albums);
-+ player->priv->albums = get_album_list (list);
- player->priv->thread = NULL;
- g_mutex_unlock (player->priv->yes_or_no);
-
-+ mb_result_list_free (list);
-+ mb_query_free (query);
-+ mb_release_filter_free (filter);
-+
- g_thread_exit (NULL);
-
- return NULL;
-@@ -638,8 +652,7 @@
- GooPlayer *player = data;
- gboolean done;
- gboolean exiting;
-- char *rdf;
--
-+
- /* Remove the check. */
-
- g_source_remove (player->priv->check_id);
-@@ -680,13 +693,13 @@
- action_done (player, GOO_PLAYER_ACTION_METADATA);
- return FALSE;
- }
--
-- rdf = read_cached_rdf (player);
-- if (rdf != NULL) {
-- set_cd_metadata_from_rdf (player, rdf);
-- g_free (rdf);
-- return FALSE;
-- }
-+
-+ /*
-+ metadata_get_album_info_from_disc_id (player->priv->discid,
-+ data->cancellable,
-+ G_CALLBACK (album_info_from_disc_id_ready_cb),
-+ data);
-+ */
-
- g_mutex_lock (player->priv->yes_or_no);
- player->priv->thread = g_thread_create (get_cd_metadata, player, FALSE, NULL);
-@@ -701,45 +714,45 @@
- static void *
- get_cd_tracks (void *thread_data)
- {
-- GooPlayer *player = thread_data;
-- GList *tracks = NULL;
-- musicbrainz_t mb;
--
-+ GooPlayer *player = thread_data;
-+ GList *tracks = NULL;
-+ DiscId *disc;
-+
- if (player->priv->pipeline != NULL)
- gst_element_set_state (player->priv->pipeline, GST_STATE_PAUSED);
-
- g_free (player->priv->discid);
- player->priv->discid = NULL;
-
-- mb = mb_New ();
-- mb_UseUTF8 (mb, TRUE);
-- mb_SetDevice (mb, (char *) goo_player_get_device (player));
-- if (mb_Query (mb, MBQ_GetCDTOC)) {
-- char data[256];
-- int n_tracks, i;
--
-- mb_GetResultData(mb, MBE_TOCGetCDIndexId, data, sizeof (data));
-- player->priv->discid = g_strdup (data);
-+ disc = discid_new ();
-+ if (discid_read (disc, goo_player_get_device (player))) {
-+ int first_track;
-+ int last_track;
-+ int i;
-+
-+ player->priv->discid = g_strdup (discid_get_id (disc));
- debug (DEBUG_INFO, "==> [MB] DISC ID: %s\n", player->priv->discid);
--
-- debug (DEBUG_INFO, "==> [MB] FIRST TRACK: %d\n", mb_GetResultInt (mb, MBE_TOCGetFirstTrack));
--
-- n_tracks = mb_GetResultInt (mb, MBE_TOCGetLastTrack);
-- debug (DEBUG_INFO, "==> [MB] LAST TRACK: %d\n", n_tracks);
--
-- for (i = 0; i < n_tracks; i++) {
-+
-+ first_track = discid_get_first_track_num (disc);
-+ debug (DEBUG_INFO, "==> [MB] FIRST TRACK: %d\n", first_track);
-+
-+ last_track = discid_get_last_track_num (disc);
-+ debug (DEBUG_INFO, "==> [MB] LAST TRACK: %d\n", last_track);
-+
-+ for (i = first_track; i <= last_track; i++) {
- gint64 from_sector;
- gint64 n_sectors;
--
-- from_sector = mb_GetResultInt1 (mb, MBE_TOCGetTrackSectorOffset, i + 2);
-- n_sectors = mb_GetResultInt1 (mb, MBE_TOCGetTrackNumSectors, i + 2);
--
-+
-+ from_sector = discid_get_track_offset (disc, i);
-+ n_sectors = discid_get_track_length (disc, i);
-+
- debug (DEBUG_INFO, "==> [MB] Track %d: [%"G_GINT64_FORMAT", %"G_GINT64_FORMAT"]\n", i, from_sector, from_sector + n_sectors);
--
-- tracks = g_list_prepend (tracks, track_info_new (i, from_sector, from_sector + n_sectors));
-+
-+ tracks = g_list_prepend (tracks, track_info_new (i - first_track, from_sector, from_sector + n_sectors));
- }
- }
-- mb_Delete (mb);
-+
-+ discid_free (disc);
-
- tracks = g_list_reverse (tracks);
- album_info_set_tracks (player->priv->album, tracks);
-@@ -821,7 +834,14 @@
- goo_player_empty_list (player);
- goo_player_set_is_busy (player, TRUE);
- create_pipeline (player);
--
-+
-+ /* FIXME
-+ metadata_read_cd_info_from_device (goo_player_get_device (player),
-+ data->cancellable,
-+ G_CALLBACK (cd_info_from_device_ready_cb),
-+ data);
-+ */
-+
- g_mutex_lock (player->priv->yes_or_no);
- player->priv->thread = g_thread_create (get_cd_tracks, player, FALSE, NULL);
- g_mutex_unlock (player->priv->yes_or_no);
-diff --git a/src/metadata.c b/src/metadata.c
-index d5289e7..47d0f5d 100644
---- src/metadata.c
-+++ src/metadata.c
-@@ -22,124 +22,163 @@
-
- #include <config.h>
- #include <stdio.h>
--#include <musicbrainz/queries.h>
--#include <musicbrainz/mb_c.h>
-+#include <string.h>
-+#include <musicbrainz3/mb_c.h>
- #include "glib-utils.h"
- #include "metadata.h"
- #include "album-info.h"
-
-
--static AlbumInfo*
--get_album_info (musicbrainz_t mb,
-- int n_album)
-+static TrackInfo *
-+get_track_info (MbTrack mb_track,
-+ int n_track)
-+{
-+ TrackInfo *track;
-+ char data[1024];
-+ char data2[1024];
-+ MbArtist mb_artist;
-+
-+ track = track_info_new (n_track, 0, 0);
-+
-+ mb_track_get_title (mb_track, data, 1024);
-+ track_info_set_title (track, data);
-+
-+ debug (DEBUG_INFO, "==> [MB] TRACK %d: %s\n", n_track, data);
-+
-+ mb_artist = mb_track_get_artist (mb_track);
-+ if (mb_artist != NULL) {
-+ mb_artist_get_unique_name (mb_artist, data, 1024);
-+ mb_artist_get_id (mb_artist, data2, 1024);
-+ track_info_set_artist (track, data, data2);
-+ }
-+
-+ return track;
-+}
-+
-+
-+static AlbumInfo *
-+get_album_info (MbRelease release)
- {
- AlbumInfo *album;
- char data[1024];
-- int n_track, n_tracks;
-- GList *tracks = NULL;
--
-- /*mb_Select (mb, MBS_Rewind);*/
-- if (! mb_Select1 (mb, MBS_SelectAlbum, n_album))
-- return NULL;
-+ int i;
-+ MbArtist artist;
-+ char data2[1024];
-+ GList *tracks = NULL;
-+ int n_tracks;
-
- album = album_info_new ();
--
-- if (mb_GetResultData (mb, MBE_AlbumGetAlbumId, data, sizeof (data))) {
-- char data2[1024];
-- mb_GetIDFromURL (mb, data, data2, sizeof (data2));
-- debug (DEBUG_INFO, "==> [MB] ALBUM_ID: %s (%s)\n", data, data2);
-- album_info_set_id (album, data2);
-- }
-- else
-- return album;
--
-- if (mb_GetResultData (mb, MBE_AlbumGetAlbumName, data, sizeof (data))) {
-- album_info_set_title (album, data);
-- debug (DEBUG_INFO, "==> [MB] ALBUM NAME: %s\n", data);
-- }
--
-- if (mb_GetResultData (mb, MBE_AlbumGetAmazonAsin, data, sizeof (data))) {
-- album_info_set_asin (album, data);
-- debug (DEBUG_INFO, "==> [MB] ASIN: %s\n", data);
-- }
--
-- if (mb_GetResultInt (mb, MBE_AlbumGetNumReleaseDates) >= 1) {
-- int y = 0, m = 0, d = 0;
--
-- mb_Select1 (mb, MBS_SelectReleaseDate, 1);
--
-- mb_GetResultData (mb, MBE_ReleaseGetDate, data, sizeof (data));
-+
-+ mb_release_get_id (release, data, 1024);
-+ debug (DEBUG_INFO, "==> [MB] ALBUM_ID: %s\n", data);
-+ album_info_set_id (album, strrchr (data, '/') + 1);
-+
-+ mb_release_get_title (release, data, 1024);
-+ debug (DEBUG_INFO, "==> [MB] ALBUM NAME: %s\n", data);
-+ album_info_set_title (album, data);
-+
-+ mb_release_get_asin (release, data, 1024);
-+ debug (DEBUG_INFO, "==> [MB] ASIN: %s\n", data);
-+ album_info_set_asin (album, data);
-+
-+ for (i = 0; i < mb_release_get_num_release_events (release); i++) {
-+ MbReleaseEvent event;
-+ int y = 0, m = 0, d = 0;
-+
-+ event = mb_release_get_release_event (release, i);
-+ mb_release_event_get_date (event, data, 1024);
- debug (DEBUG_INFO, "==> [MB] RELEASE DATE: %s\n", data);
- if (sscanf (data, "%d-%d-%d", &y, &m, &d) > 0) {
- GDate *date;
--
-+
- date = g_date_new_dmy ((d > 0) ? d : 1, (m > 0) ? m : 1, (y > 0) ? y : 1);
- album_info_set_release_date (album, date);
- g_date_free (date);
- }
--
-- mb_GetResultData (mb, MBE_ReleaseGetCountry, data, sizeof (data));
-- debug (DEBUG_INFO, "==> [MB] RELEASE COUNTRY: %s\n", data);
--
-- mb_Select (mb, MBS_Back);
-- }
--
-- if (mb_GetResultData (mb, MBE_AlbumGetAlbumArtistName, data, sizeof (data))) {
-- char data2[1024], data3[1024];
--
-- mb_GetResultData (mb, MBE_AlbumGetArtistId, data2, sizeof (data2));
-- mb_GetIDFromURL (mb, data2, data3, sizeof (data3));
--
-- debug (DEBUG_INFO, "==> [MB] ARTIST_ID: %s (%s)\n", data2, data3);
--
-- album_info_set_artist (album, data, data3);
- }
--
-+
-+ artist = mb_release_get_artist (release);
-+ mb_artist_get_unique_name (artist, data, 1024);
-+ mb_artist_get_id (artist, data2, 1024);
-+ album_info_set_artist (album, data, data2);
-+
- tracks = NULL;
-- n_tracks = mb_GetResultInt (mb, MBE_AlbumGetNumTracks);
-+ n_tracks = mb_release_get_num_tracks (release);
- debug (DEBUG_INFO, "==> [MB] N TRACKS: %d\n", n_tracks);
-- for (n_track = 1; n_track <= n_tracks; n_track++) {
-+ for (i = 0; i < n_tracks; i++) {
-+ MbTrack mb_track;
- TrackInfo *track;
--
-- track = track_info_new (n_track - 1, 0, 0);
-+
-+ mb_track = mb_release_get_track (release, i);
-+ track = get_track_info (mb_track, i);
-+ if (album->artist == NULL)
-+ album_info_set_artist (album, track->artist, KEEP_PREVIOUS_VALUE);
- tracks = g_list_prepend (tracks, track);
--
-- if (mb_GetResultData1 (mb, MBE_AlbumGetTrackName, data, sizeof (data), n_track))
-- track_info_set_title (track, data);
--
-- debug (DEBUG_INFO, "==> [MB] TRACK %d: %s\n", n_track, data);
--
-- if (mb_GetResultData1 (mb, MBE_AlbumGetArtistName, data, sizeof (data), n_track)) {
-- char data2[1024], data3[1024];
--
-- mb_GetResultData1 (mb, MBE_AlbumGetArtistId, data2, sizeof (data2), n_track);
-- mb_GetIDFromURL (mb, data2, data3, sizeof (data3));
-- track_info_set_artist (track, data, data3);
--
-- if (album->artist == NULL)
-- album_info_set_artist (album, data, KEEP_PREVIOUS_VALUE);
-- }
- }
-- mb_Select (mb, MBS_Back);
--
-+
- tracks = g_list_reverse (tracks);
- album_info_set_tracks (album, tracks);
--
-+
- return album;
- }
-
-
--GList*
--get_album_list (musicbrainz_t mb)
-+GList *
-+get_album_list (MbResultList list)
- {
- GList *albums = NULL;
-- int n_albums, i;
--
-- n_albums = mb_GetResultInt (mb, MBE_GetNumAlbums);
-+ int n_albums;
-+ int i;
-+
-+ n_albums = mb_result_list_get_size (list);
- g_print ("[MB] Num Albums: %d\n", n_albums);
--
-- for (i = 1; i <= n_albums; i++)
-- albums = g_list_prepend (albums, get_album_info (mb, i));
--
-+
-+ for (i = 0; i < n_albums; i++) {
-+ MbRelease release;
-+
-+ release = mb_result_list_get_release (list, i);
-+ albums = g_list_prepend (albums, get_album_info (release));
-+ }
-+
- return g_list_reverse (albums);
- }
-+
-+
-+void
-+get_track_info_for_album_list (GList *albums)
-+{
-+ GList *scan;
-+
-+ for (scan = albums; scan; scan = scan->next) {
-+ AlbumInfo *album = scan->data;
-+ MbTrackFilter filter;
-+ GList *tracks;
-+ MbQuery query;
-+ MbResultList list;
-+ int i;
-+
-+ filter = mb_track_filter_new ();
-+ mb_track_filter_release_id (filter, album->id);
-+ query = mb_query_new (NULL, NULL);
-+ list = mb_query_get_tracks (query, filter);
-+
-+ tracks = NULL;
-+ for (i = 0; i < mb_result_list_get_size (list); i++) {
-+ MbTrack mb_track;
-+ TrackInfo *track;
-+
-+ mb_track = mb_result_list_get_track (list, i);
-+ track = get_track_info (mb_track, i);
-+ if ((album->artist == NULL) && (track->artist != NULL))
-+ album_info_set_artist (album, track->artist, KEEP_PREVIOUS_VALUE);
-+ tracks = g_list_prepend (tracks, track);
-+ }
-+
-+ tracks = g_list_reverse (tracks);
-+ album_info_set_tracks (album, tracks);
-+
-+ mb_result_list_free (list);
-+ mb_query_free (query);
-+ mb_track_filter_free (filter);
-+ }
-+}
-diff --git a/src/metadata.h b/src/metadata.h
-index 725de33..45526aa 100644
---- src/metadata.h
-+++ src/metadata.h
-@@ -24,8 +24,9 @@
- #define METADATA_H
-
- #include <glib.h>
--#include <musicbrainz/mb_c.h>
-+#include <musicbrainz3/mb_c.h>
-
--GList* get_album_list (musicbrainz_t mb);
-+GList * get_album_list (MbResultList list);
-+void get_track_info_for_album_list (GList *albums);
-
- #endif /* METADATA_H */
diff --git a/audio/goobox/files/patch-port_to_libnotify07 b/audio/goobox/files/patch-port_to_libnotify07
deleted file mode 100644
index 0301bcd21bdd..000000000000
--- a/audio/goobox/files/patch-port_to_libnotify07
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/main.c b/src/main.c
-index 9c982d7..4286740 100644
---- src/main.c
-+++ src/main.c
-@@ -37,6 +37,9 @@
-
- #ifdef ENABLE_NOTIFICATION
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- static NotifyNotification *notification = NULL;
- #endif /* ENABLE_NOTIFICATION */
-
-@@ -591,7 +594,11 @@ system_notify (GooWindow *window,
- g_list_free (caps);
- }
-
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ notification = notify_notification_new (title, msg, "goobox");
-+#else
- notification = notify_notification_new_with_status_icon (title, msg, "goobox", status_icon);
-+#endif
- notify_notification_set_urgency (notification, NOTIFY_URGENCY_LOW);
-
- if (supports_actions) {
diff --git a/audio/goobox/pkg-plist b/audio/goobox/pkg-plist
index 1a5e31870851..918aed40fb7c 100644
--- a/audio/goobox/pkg-plist
+++ b/audio/goobox/pkg-plist
@@ -1,21 +1,49 @@
bin/goobox
+share/GConf/gsettings/goobox.convert
+share/appdata/goobox.appdata.xml
share/applications/goobox.desktop
-share/gnome/help/goobox/C/goobox.xml
-share/gnome/help/goobox/C/legal.xml
-share/gnome/help/goobox/ca/goobox.xml
-share/gnome/help/goobox/cs/goobox.xml
-share/gnome/help/goobox/de/goobox.xml
-share/gnome/help/goobox/es/goobox.xml
-share/gnome/help/goobox/fr/goobox.xml
-share/gnome/help/goobox/oc/goobox.xml
-share/gnome/help/goobox/sl/goobox.xml
-share/gnome/help/goobox/sv/goobox.xml
-%%DATADIR%%/ui/cover-chooser.ui
-%%DATADIR%%/ui/extract.ui
-%%DATADIR%%/ui/format-options.ui
-%%DATADIR%%/ui/preferences.ui
-%%DATADIR%%/ui/properties.ui
-%%DATADIR%%/ui/ripper.ui
+share/glib-2.0/schemas/org.gnome.Goobox.gschema.xml
+share/help/C/goobox/index.page
+share/help/C/goobox/legal.xml
+share/help/C/goobox/preferences.page
+share/help/C/goobox/shortcuts.page
+share/help/ca/goobox/index.page
+share/help/ca/goobox/legal.xml
+share/help/ca/goobox/preferences.page
+share/help/ca/goobox/shortcuts.page
+share/help/cs/goobox/index.page
+share/help/cs/goobox/legal.xml
+share/help/cs/goobox/preferences.page
+share/help/cs/goobox/shortcuts.page
+share/help/de/goobox/index.page
+share/help/de/goobox/legal.xml
+share/help/de/goobox/preferences.page
+share/help/de/goobox/shortcuts.page
+share/help/el/goobox/index.page
+share/help/el/goobox/legal.xml
+share/help/el/goobox/preferences.page
+share/help/el/goobox/shortcuts.page
+share/help/es/goobox/index.page
+share/help/es/goobox/legal.xml
+share/help/es/goobox/preferences.page
+share/help/es/goobox/shortcuts.page
+share/help/fr/goobox/index.page
+share/help/fr/goobox/legal.xml
+share/help/fr/goobox/preferences.page
+share/help/fr/goobox/shortcuts.page
+share/help/oc/goobox/index.page
+share/help/oc/goobox/legal.xml
+share/help/oc/goobox/preferences.page
+share/help/oc/goobox/shortcuts.page
+share/help/sl/goobox/index.page
+share/help/sl/goobox/legal.xml
+share/help/sl/goobox/preferences.page
+share/help/sl/goobox/shortcuts.page
+share/help/sv/goobox/index.page
+share/help/sv/goobox/legal.xml
+share/help/sv/goobox/preferences.page
+share/help/sv/goobox/shortcuts.page
+share/icons/hicolor/256x256/apps/goobox.png
share/icons/hicolor/48x48/apps/goobox.png
share/locale/ar/LC_MESSAGES/goobox.mo
share/locale/bg/LC_MESSAGES/goobox.mo
@@ -31,6 +59,8 @@ share/locale/es/LC_MESSAGES/goobox.mo
share/locale/eu/LC_MESSAGES/goobox.mo
share/locale/fi/LC_MESSAGES/goobox.mo
share/locale/fr/LC_MESSAGES/goobox.mo
+share/locale/gl/LC_MESSAGES/goobox.mo
+share/locale/he/LC_MESSAGES/goobox.mo
share/locale/hu/LC_MESSAGES/goobox.mo
share/locale/id/LC_MESSAGES/goobox.mo
share/locale/it/LC_MESSAGES/goobox.mo
@@ -46,22 +76,14 @@ share/locale/pa/LC_MESSAGES/goobox.mo
share/locale/pl/LC_MESSAGES/goobox.mo
share/locale/pt/LC_MESSAGES/goobox.mo
share/locale/pt_BR/LC_MESSAGES/goobox.mo
+share/locale/ro/LC_MESSAGES/goobox.mo
share/locale/ru/LC_MESSAGES/goobox.mo
share/locale/rw/LC_MESSAGES/goobox.mo
share/locale/sl/LC_MESSAGES/goobox.mo
share/locale/sq/LC_MESSAGES/goobox.mo
+share/locale/sr/LC_MESSAGES/goobox.mo
+share/locale/sr@latin/LC_MESSAGES/goobox.mo
share/locale/sv/LC_MESSAGES/goobox.mo
share/locale/vi/LC_MESSAGES/goobox.mo
share/locale/zh_CN/LC_MESSAGES/goobox.mo
share/locale/zh_TW/LC_MESSAGES/goobox.mo
-share/omf/goobox/goobox-C.omf
-share/omf/goobox/goobox-ca.omf
-share/omf/goobox/goobox-cs.omf
-share/omf/goobox/goobox-de.omf
-share/omf/goobox/goobox-es.omf
-share/omf/goobox/goobox-fr.omf
-share/omf/goobox/goobox-oc.omf
-share/omf/goobox/goobox-sl.omf
-share/omf/goobox/goobox-sv.omf
-@exec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true
-@unexec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true