Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 07 Mar 2012 19:50:09 -0800 (PST)
From:      Jason E. Hale <bsdkaffee@gmail.com>
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        gnome@freebsd.org
Subject:   [PATCH] audio/goobox: Remove audio/libmusicbrainz dependency
Message-ID:  <4f582c71.c2b8340a.7ee8.1c48@mx.google.com>

next in thread | raw e-mail | index | archive | help

>Submitter-Id:	current-users
>Originator:	Jason E. Hale
>Organization:	none 
>Confidential:	no 
>Synopsis:	[PATCH] audio/goobox: Remove audio/libmusicbrainz dependency 
>Severity:	non-critical 
>Priority:	low 
>Category:	ports 
>Class:		change-request 
>Release:	FreeBSD 9.0-RELEASE i386
>Environment:
System: FreeBSD mocha.verizon.net 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Thu Jan 19 11:42:41 EST 2012 Jason@mocha.verizon.net:/usr/obj/usr/src/sys/MOCHA9 i386


	
>Description:
- Patch audio/goobox to use audio/libdiscid instead of audio/libmusicbrainz
- audio/libmusicbrainz is deprecated as the MusicBrainz RDF webservice
  is no longer functional
- Patch replaces libmusicbrainz disc functions with libdiscid functions but
  does not restore metadata lookups which would require a considerable amount
  of work
	
>How-To-Repeat:
- Use attached diff
	
>Fix:

	

--- 2012-03-07-goobox.diff begins here ---
diff -ruN goobox.orig/Makefile goobox/Makefile
--- goobox.orig/Makefile	2012-03-07 17:31:53.000000000 -0500
+++ goobox/Makefile	2012-03-07 22:26:47.000000000 -0500
@@ -8,7 +8,7 @@
 
 PORTNAME=	goobox
 PORTVERSION=	1.9.2
-PORTREVISION=	7
+PORTREVISION=	8
 CATEGORIES=	audio gnome
 MASTER_SITES=	GNOME
 DIST_SUBDIR=	gnome2
@@ -16,7 +16,7 @@
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	CD player and ripper for GNOME Desktop environment
 
-LIB_DEPENDS=	musicbrainz.4:${PORTSDIR}/audio/libmusicbrainz
+LIB_DEPENDS=	discid.0:${PORTSDIR}/audio/libdiscid
 
 USE_XORG=	x11
 USE_GETTEXT=	yes
@@ -44,4 +44,9 @@
 CONFIGURE_ARGS+=	--disable-notification
 .endif
 
+post-patch:
+	${REINPLACE_CMD} -e 's|libmusicbrainz|libdiscid|g' \
+			-e 's|LIBMUSICBRAINZ|LIBDISCID|g' \
+			-e 's|2.1.0|0.2.2|g' ${WRKSRC}/configure
+
 .include <bsd.port.post.mk>
diff -ruN goobox.orig/files/patch-src__Makefile.in goobox/files/patch-src__Makefile.in
--- goobox.orig/files/patch-src__Makefile.in	1969-12-31 19:00:00.000000000 -0500
+++ goobox/files/patch-src__Makefile.in	2012-03-07 22:15:04.000000000 -0500
@@ -0,0 +1,28 @@
+--- ./src/Makefile.in.orig	2012-03-07 21:48:57.000000000 -0500
++++ ./src/Makefile.in	2012-03-07 21:48:57.000000000 -0500
+@@ -69,7 +69,7 @@
+ 	goo-player-info.$(OBJEXT) goo-volume-tool-button.$(OBJEXT) \
+ 	goo-window.$(OBJEXT) goo-stock.$(OBJEXT) \
+ 	gtk-file-chooser-preview.$(OBJEXT) gtk-utils.$(OBJEXT) \
+-	main.$(OBJEXT) metadata.$(OBJEXT) preferences.$(OBJEXT) \
++	main.$(OBJEXT) preferences.$(OBJEXT) \
+ 	track-info.$(OBJEXT)
+ goobox_OBJECTS = $(am_goobox_OBJECTS)
+ am__DEPENDENCIES_1 =
+@@ -398,8 +398,6 @@
+ 	gtk-utils.h				\
+ 	main.c					\
+ 	main.h					\
+-	metadata.c				\
+-	metadata.h				\
+ 	preferences.c				\
+ 	preferences.h				\
+ 	track-info.c				\
+@@ -533,7 +531,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-file-chooser-preview.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-utils.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metadata.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preferences.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/track-info.Po@am__quote@
+ 
diff -ruN goobox.orig/files/patch-src__dlg-properties.c goobox/files/patch-src__dlg-properties.c
--- goobox.orig/files/patch-src__dlg-properties.c	1969-12-31 19:00:00.000000000 -0500
+++ goobox/files/patch-src__dlg-properties.c	2012-03-07 22:15:04.000000000 -0500
@@ -0,0 +1,85 @@
+--- ./src/dlg-properties.c.orig	2007-08-14 05:34:20.000000000 -0400
++++ ./src/dlg-properties.c	2012-03-07 21:48:57.000000000 -0500
+@@ -27,7 +27,6 @@
+ #include <glade/glade.h>
+ #include "goo-stock.h"
+ #include "dlg-properties.h"
+-#include "metadata.h"
+ 
+ #define GLADE_PREF_FILE "properties.glade"
+ 
+@@ -253,47 +252,6 @@
+ 
+ 
+ static void
+-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 (data->p_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 (data->p_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 (data->p_info_label), _("No album found"));
+-			gtk_widget_show (data->p_info_box);
+-			gtk_widget_hide (data->p_navigation_box);
+-		} 
+-		else 
+-			show_album (data, 0);
+-	}
+-
+-	mb_Delete (mb);
+-}
+-
+-
+-static void
+ title_cell_edited_cb (GtkCellRendererText *renderer,
+                       char                *path,
+                       char                *new_text,
+@@ -480,7 +438,6 @@
+ 	GtkWidget  *btn_cancel;
+ 	GtkWidget  *btn_ok;
+ 	GtkWidget  *btn_help;
+-	GtkWidget  *btn_search;
+         GtkWidget  *p_prev_album_button;
+         GtkWidget  *p_next_album_button;
+         GtkWidget  *p_reset_album_button;
+@@ -518,7 +475,6 @@
+ 	btn_ok = glade_xml_get_widget (data->gui, "p_okbutton");
+ 	btn_cancel = glade_xml_get_widget (data->gui, "p_cancelbutton");
+ 	btn_help = glade_xml_get_widget (data->gui, "p_helpbutton");
+-	btn_search = glade_xml_get_widget (data->gui, "p_search_button");
+ 	data->p_track_treeview = glade_xml_get_widget (data->gui, "p_track_treeview");
+ 	
+ 	p_prev_album_button = glade_xml_get_widget (data->gui, "p_prev_album_button");
+@@ -560,10 +516,6 @@
+ 			  "clicked",
+ 			  G_CALLBACK (help_cb),
+ 			  data);
+-	g_signal_connect (G_OBJECT (btn_search), 
+-			  "clicked",
+-			  G_CALLBACK (search_cb),
+-			  data);
+ 	g_signal_connect (G_OBJECT (data->p_artist_combobox), 
+ 			  "changed",
+ 			  G_CALLBACK (artist_combobox_changed_cb),
diff -ruN goobox.orig/files/patch-src__goo-player.c goobox/files/patch-src__goo-player.c
--- goobox.orig/files/patch-src__goo-player.c	1969-12-31 19:00:00.000000000 -0500
+++ goobox/files/patch-src__goo-player.c	2012-03-07 22:15:04.000000000 -0500
@@ -0,0 +1,121 @@
+--- ./src/goo-player.c.orig	2007-08-14 05:34:20.000000000 -0400
++++ ./src/goo-player.c	2012-03-07 21:49:41.000000000 -0500
+@@ -27,8 +27,7 @@
+ #include <gst/gst.h>
+ #include <libgnomevfs/gnome-vfs-ops.h>
+ #include <libgnomevfs/gnome-vfs-utils.h>
+-#include <musicbrainz/queries.h>
+-#include <musicbrainz/mb_c.h>
++#include <discid/discid.h>
+ 
+ #include "goo-player.h"
+ #include "goo-marshal.h"
+@@ -36,7 +35,6 @@
+ #include "glib-utils.h"
+ #include "file-utils.h"
+ #include "main.h"
+-#include "metadata.h"
+ 
+ #define TOC_OFFSET 150
+ #define SECTORS_PER_SEC 75
+@@ -650,17 +648,12 @@
+ set_cd_metadata_from_rdf (GooPlayer *player, 
+ 			  char      *rdf)
+ {
+-	musicbrainz_t  mb;
+ 	GList         *albums;
+ 
+ 	if (rdf == NULL)
+ 		return;
+ 
+-	mb = mb_New ();
+-	mb_UseUTF8 (mb, TRUE);
+-	mb_SetResultRDF (mb, rdf);
+-
+-	albums = get_album_list (mb);
++	albums = NULL;
+ 	if (albums != NULL) {
+ 		AlbumInfo *first_album = albums->data;
+ 		
+@@ -671,7 +664,6 @@
+ 		album_list_free (albums);
+ 	}	
+ 
+-	mb_Delete (mb);
+ }
+ 
+ 
+@@ -798,20 +790,8 @@
+ 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);
+-
+ 	g_mutex_lock (player->priv->yes_or_no);
+ 	g_free (player->priv->rdf);
+ 	player->priv->rdf = rdf;
+@@ -895,7 +875,7 @@
+ {
+ 	GooPlayer     *player = thread_data;
+ 	GList         *tracks = NULL;
+-	musicbrainz_t  mb;
++	DiscId        *disc;
+ 	
+ 	if (player->priv->pipeline != NULL)
+ 		gst_element_set_state (player->priv->pipeline, GST_STATE_PAUSED);
+@@ -903,35 +883,32 @@
+ 	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];
++	disc = discid_new();
++	if (discid_read (disc, (char*) goo_player_get_device (player))) {
++		char *data;
+ 		int  n_tracks, i;
+ 		
+-		mb_GetResultData(mb, MBE_TOCGetCDIndexId, data, sizeof (data));
++		data = discid_get_id (disc);
+ 		player->priv->discid = g_strdup (data);	
+ 		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);
++		n_tracks = discid_get_last_track_num (disc);
+ 		debug (DEBUG_INFO, "==> [MB] LAST TRACK: %d\n", n_tracks);
+ 		
+ 		for (i = 0; i < n_tracks; 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 + 1);
++			n_sectors = discid_get_track_length (disc, i + 1);
+ 			
+ 			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));
+ 		}
+ 	}
+-	mb_Delete (mb);
++	discid_free (disc);
+ 
+ 	tracks = g_list_reverse (tracks);
+ 	album_info_set_tracks (player->priv->album, tracks);
--- 2012-03-07-goobox.diff ends here ---





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4f582c71.c2b8340a.7ee8.1c48>