Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Nov 2002 19:58:51 +0100
From:      Martin Klaffenboeck <martin.klaffenboeck@gmx.at>
To:        gnome@freebsd.org
Subject:   rhythmbox - part of gnome 2.4
Message-ID:  <20021116185851.GA425@martin.kdrache.org>

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

--1yeeQ81UyVL57Vl7
Content-Type: text/plain; format=flowed; charset=ISO-8859-15
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

Hello,

Is anybody else working on rythmbox, which will be in the fifth-toe for 
gnome 2.2 and a part of gnome 2.4?

It's running here.  Please can you have a look at this and report any 
errors back to me?  (Please do that really, sometimes when I submit a 
port, the port will be modified without any feedback to me, which would 
help me to make better ports.)

Note:  monkey-media does not support audio cd right now for FreeBSD.  
(So also rhythmbox cannot support that.)

Install musicbrainz first, than monkey-media and rhythmbox at last.

I'm not sure of the installation and deinstallation of rhythmbox.  
musicbrainz is ready and can be added to the portstree (here I'm really 
sure).
monkey-media is also ready I think. (It will not be useful to add 
monkey-media to the portstree when not adding rhythmbox.)  But on 
rhythmbox please tell me how we have to handle the scrollkeeper things 
on installing and deinstalling:

Further:  rhythmbox crashes when I try to play any song.  Maybe thats a 
problem of gstreamer or not, I don't know at the moment.

This is first a message to find other people who want integrate 
rhythmbox to freebsd, like me.  Lets make that togeter...

- Martin


Btw.

I get the following messages on installing rhythmbox:

Registering /usr/X11R6/share/omf/rhythmbox/rhythmbox-C.omf
Updating /usr/X11R6/share/gnome/omf/gnome-utils/gnome-system-log-C.omf
file:///usr/local/share/xml/catalog:1: error: Start tag expected, '<' 
not found
PUBLIC "-//OASIS//DTD Simplified DocBook RefEntry XML V4.1.2.5//EN" 
"/usr/local
^
Updating 
/usr/X11R6/share/gnome/omf/gnome-utils/gnome-character-map-C.omf
file:///usr/local/share/xml/catalog:1: error: Start tag expected, '<' 
not found
PUBLIC "-//OASIS//DTD Simplified DocBook RefEntry XML V4.1.2.5//EN" 
"/usr/local
^
Updating /usr/X11R6/share/gnome/omf/gnome-utils/gnome-calculator-C.omf
file:///usr/local/share/xml/catalog:1: error: Start tag expected, '<' 
not found
PUBLIC "-//OASIS//DTD Simplified DocBook RefEntry XML V4.1.2.5//EN" 
"/usr/local
^
Updating /usr/X11R6/share/gnome/omf/gnome-utils/gnome-search-tool-C.omf
file:///usr/local/share/xml/catalog:1: error: Start tag expected, '<' 
not found
PUBLIC "-//OASIS//DTD Simplified DocBook RefEntry XML V4.1.2.5//EN" 
"/usr/local
^
Updating /usr/X11R6/share/gnome/omf/gnome-utils/gnome-dictionary-C.omf
file:///usr/local/share/xml/catalog:1: error: Start tag expected, '<' 
not found
PUBLIC "-//OASIS//DTD Simplified DocBook RefEntry XML V4.1.2.5//EN" 
"/usr/local
^
Updating /usr/X11R6/share/gnome/omf/gnome-utils/archive-generator-C.omf
file:///usr/local/share/xml/catalog:1: error: Start tag expected, '<' 
not found
PUBLIC "-//OASIS//DTD Simplified DocBook RefEntry XML V4.1.2.5//EN" 
"/usr/local
^
Updating /usr/X11R6/share/gnome/omf/gnome-games/gnect-C.omf
file:///usr/local/share/xml/catalog:1: error: Start tag expected, '<' 
not found
PUBLIC "-//OASIS//DTD Simplified DocBook RefEntry XML V4.1.2.5//EN" 
"/usr/local

and many more.  What does that mean?

--1yeeQ81UyVL57Vl7
Content-Type: text/x-sh; charset=us-ascii
Content-Disposition: attachment; filename="musicbrainz.sh"

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	musicbrainz
#	musicbrainz/Makefile
#	musicbrainz/distinfo
#	musicbrainz/pkg-descr
#	musicbrainz/pkg-plist
#	musicbrainz/pkg-comment
#
echo c - musicbrainz
mkdir -p musicbrainz > /dev/null 2>&1
echo x - musicbrainz/Makefile
sed 's/^X//' >musicbrainz/Makefile << 'END-of-musicbrainz/Makefile'
X# New ports collection makefile for:	musicbrainz
X# Date created:		14 November 2002
X# Whom:			Martin Klaffenboeck <martin.klaffenboeck@gmx.at>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	musicbrainz
XPORTVERSION=	1.1.0
XCATEGORIES=	audio
XMASTER_SITES=	ftp://ftp.musicbrainz.org/pub/musicbrainz/
X
XMAINTAINER=	martin.klaffenboeck@gmx.at
X
XUSE_GMAKE=	yes
XGNU_CONFIGURE=	yes
X
XCONFIGURE_ARGS+=	--prefix=${PREFIX}
XCONFIGURE_TARGET=	--target=${MACHINE_ARCH}-unknown-freebsd${OSREL}
X
X.include <bsd.port.mk>
END-of-musicbrainz/Makefile
echo x - musicbrainz/distinfo
sed 's/^X//' >musicbrainz/distinfo << 'END-of-musicbrainz/distinfo'
XMD5 (musicbrainz-1.1.0.tar.gz) = 3cb03b32369a8040c5214e964628dae2
END-of-musicbrainz/distinfo
echo x - musicbrainz/pkg-descr
sed 's/^X//' >musicbrainz/pkg-descr << 'END-of-musicbrainz/pkg-descr'
XMusicBrainz is a network of web sites that form an open music 
Xencyclopedia. Like a normal encyclopedia the MusicBrainz 
Xencyclopedia contains numerous facts, specifically about artists,
Xtheir albums, and tracks.
X
XWWW: http://www.musicbrainz.org/
X- Martin Klaffenboeck <martin.klaffenboeck@gmx.at>
END-of-musicbrainz/pkg-descr
echo x - musicbrainz/pkg-plist
sed 's/^X//' >musicbrainz/pkg-plist << 'END-of-musicbrainz/pkg-plist'
Xinclude/musicbrainz/bitprintinfo.h
Xinclude/musicbrainz/bitzi/bitcollider.h
Xinclude/musicbrainz/bitzi/gui_win32.h
Xinclude/musicbrainz/bitzi/list.h
Xinclude/musicbrainz/bitzi/plugin.h
Xinclude/musicbrainz/errors.h
Xinclude/musicbrainz/mb_c.h
Xinclude/musicbrainz/musicbrainz.h
Xinclude/musicbrainz/queries.h
Xlib/libmusicbrainz.a
Xlib/libmusicbrainz.la
Xlib/libmusicbrainz.so
Xlib/libmusicbrainz.so.2
X@dirrm include/musicbrainz/bitzi
X@dirrm include/musicbrainz
END-of-musicbrainz/pkg-plist
echo x - musicbrainz/pkg-comment
sed 's/^X//' >musicbrainz/pkg-comment << 'END-of-musicbrainz/pkg-comment'
XA library for the open music encyclopedia
END-of-musicbrainz/pkg-comment
exit


--1yeeQ81UyVL57Vl7
Content-Type: text/x-sh; charset=us-ascii
Content-Disposition: attachment; filename="monkey-media.sh"

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	monkey-media
#	monkey-media/Makefile
#	monkey-media/distinfo
#	monkey-media/pkg-comment
#	monkey-media/pkg-descr
#	monkey-media/pkg-plist
#	monkey-media/files
#	monkey-media/files/patch-src::monkey-media-audio-cd.c
#	monkey-media/files/patch-configure
#
echo c - monkey-media
mkdir -p monkey-media > /dev/null 2>&1
echo x - monkey-media/Makefile
sed 's/^X//' >monkey-media/Makefile << 'END-of-monkey-media/Makefile'
X# New ports collection makefile for:	monkey-media
X# Date created:		4 November 2002
X# Whom:			Martin Klaffenboeck <martin.klaffenboeck@gmx.at>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	monkey-media
XPORTVERSION=	0.6.0
XCATEGORIES=	audio gnome
XMASTER_SITES=	http://www.rhythmbox.org/download/
X
XMAINTAINER=	martin.klaffenboeck@gmx.at
X
XBUILD_DEPENDS=	gst-launch-ext:${PORTSDIR}/graphics/gstreamer-plugins
XLIB_DEPENDS=	gnomevfs-2.0:${PORTSDIR}/devel/gnomevfs2 \
X		glade-2.0:${PORTSDIR}/devel/libglade2 \
X		vorbis.2:${PORTSDIR}/audio/libvorbis \
X		id3tag.1:${PORTSDIR}/audio/mad \
X		musicbrainz.2:${PORTSDIR}/audio/musicbrainz
X
XUSE_GNOMENG=	yes
XUSE_GMAKE=	yes
XUSE_X_PREFIX=	yes
XGNU_CONFIGURE=	yes
XUSE_LIBTOOL=	yes
XUSE_REINPLACE=	yes
X
XCONFIGURE_ENV=	CPPFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS}" \
X		LIBS="-L${LOCALBASE}/lib -lgnuregex -lcompat"
X
XCONFIGURE_ARGS+=	--prefix=${PREFIX}
XCONFIGURE_TARGET=	--target=${MACHINE_ARCH}-unknown-freebsd${OSREL}
X
Xpre-patch:
X	@find ${WRKSRC} -name Makefile.in | xargs ${REINPLACE_CMD} -e \
X		's|[(]libdir[)]/pkgconfig|(prefix)/libdata/pkgconfig|g'
X
X.include <bsd.port.mk>
END-of-monkey-media/Makefile
echo x - monkey-media/distinfo
sed 's/^X//' >monkey-media/distinfo << 'END-of-monkey-media/distinfo'
XMD5 (monkey-media-0.6.0.tar.gz) = b5a4f8ef0a07a5b9936b409ce8b0fc94
END-of-monkey-media/distinfo
echo x - monkey-media/pkg-comment
sed 's/^X//' >monkey-media/pkg-comment << 'END-of-monkey-media/pkg-comment'
XA library for multimedia playback
END-of-monkey-media/pkg-comment
echo x - monkey-media/pkg-descr
sed 's/^X//' >monkey-media/pkg-descr << 'END-of-monkey-media/pkg-descr'
XMonkeyMedia is a library for multimedia playback (of which only audio 
Xis supported at this point), offering support for seeking, managing 
Xvolume, obtaining stream information like ID3 tags and bitrate, 
Xequalizer, and GStreamer visualization plugins.
X
XMonkeyMedia builds upon the GStreamer multimedia framework, thereby
Xsupporting all formats for which GStreamer plugins have been written.
X
XAll data retreival is done via GnomeVFS, so it is no problem to play data
Xover HTTP, Samba, or whatever GnomeVFS-supported protocol you can think of.
X
X- Martin Klaffenboeck <martin.klaffenboeck@gmx.at>
END-of-monkey-media/pkg-descr
echo x - monkey-media/pkg-plist
sed 's/^X//' >monkey-media/pkg-plist << 'END-of-monkey-media/pkg-plist'
Xetc/gconf/gconf.xml.defaults/schemas/system/monkey_media/%gconf.xml
Xetc/gconf/gconf.xml.defaults/system/monkey_media/%gconf.xml
Xetc/gconf/schemas/monkey-media.schemas
Xinclude/monkey-media/monkey-media-audio-cd.h
Xinclude/monkey-media/monkey-media-audio-quality.h
Xinclude/monkey-media/monkey-media-audio-reencoder.h
Xinclude/monkey-media/monkey-media-audio-stream.h
Xinclude/monkey-media/monkey-media-mixer.h
Xinclude/monkey-media/monkey-media-stream-info.h
Xinclude/monkey-media/monkey-media-stream.h
Xinclude/monkey-media/monkey-media-visualization.h
Xinclude/monkey-media/monkey-media.h
Xlib/libmonkey-media.a
Xlib/libmonkey-media.la
Xlib/libmonkey-media.so
Xlib/libmonkey-media.so.0
Xlibdata/pkgconfig/monkey-media.pc
Xshare/locale/cs/LC_MESSAGES/monkey-media.mo
Xshare/locale/da/LC_MESSAGES/monkey-media.mo
Xshare/locale/de/LC_MESSAGES/monkey-media.mo
Xshare/locale/it/LC_MESSAGES/monkey-media.mo
Xshare/locale/ko/LC_MESSAGES/monkey-media.mo
Xshare/locale/no/LC_MESSAGES/monkey-media.mo
Xshare/locale/sv/LC_MESSAGES/monkey-media.mo
X@dirrm include/monkey-media
X@dirrm etc/gconf/gconf.xml.defaults/system/monkey_media
X@dirrm etc/gconf/gconf.xml.defaults/schemas/system/monkey_media
END-of-monkey-media/pkg-plist
echo c - monkey-media/files
mkdir -p monkey-media/files > /dev/null 2>&1
echo x - monkey-media/files/patch-src::monkey-media-audio-cd.c
sed 's/^X//' >monkey-media/files/patch-src::monkey-media-audio-cd.c << 'END-of-monkey-media/files/patch-src::monkey-media-audio-cd.c'
X--- src/monkey-media-audio-cd.c.orig	Thu Sep 26 17:15:09 2002
X+++ src/monkey-media-audio-cd.c	Sat Nov 16 18:38:44 2002
X@@ -32,7 +32,7 @@
X #include <time.h>
X #include <stdlib.h>
X #include <string.h>
X-#include <linux/cdrom.h>
X+/* #include <linux/cdrom.h>  We don't have this on FreeBSD */
X 
X #include "monkey-media.h"
X #include "monkey-media-private.h"
X@@ -77,13 +77,13 @@
X enum
X {
X 	PROP_0,
X-	PROP_ERROR
X+	PROP_ERROR 
X };
X 
X enum
X {
X 	CD_CHANGED,
X-	LAST_SIGNAL
X+	LAST_SIGNAL 
X };
X 
X static guint monkey_media_audio_cd_signals[LAST_SIGNAL] = { 0 };
X@@ -96,131 +96,27 @@
X GType
X monkey_media_audio_cd_get_type (void)
X {
X-	static GType type = 0;
X-
X-	if (type == 0) 
X-	{
X-		static const GTypeInfo our_info =
X-		{
X-			sizeof (MonkeyMediaAudioCDClass),
X-			NULL,
X-			NULL,
X-			(GClassInitFunc) monkey_media_audio_cd_class_init,
X-			NULL,
X-			NULL,
X-			sizeof (MonkeyMediaAudioCD),
X-			0,
X-			(GInstanceInitFunc) monkey_media_audio_cd_init,
X-		};
X-
X-		type = g_type_register_static (G_TYPE_OBJECT,
X-					       "MonkeyMediaAudioCD",
X-					       &our_info, 0);
X-	}
X-
X-	return type;
X }
X 
X static void
X monkey_media_audio_cd_class_init (MonkeyMediaAudioCDClass *klass)
X {
X-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
X-
X-	parent_class = g_type_class_peek_parent (klass);
X-
X-	object_class->finalize = monkey_media_audio_cd_finalize;
X-
X-	object_class->set_property = monkey_media_audio_cd_set_property;
X-	object_class->get_property = monkey_media_audio_cd_get_property;
X-
X-	g_object_class_install_property (object_class,
X-				         PROP_ERROR,
X-				         g_param_spec_pointer ("error",
X-							       "Error",
X-							       "Failure information",
X-							        G_PARAM_READABLE));
X-
X-	monkey_media_audio_cd_signals[CD_CHANGED] =
X-		g_signal_new ("cd_changed",
X-			      G_OBJECT_CLASS_TYPE (object_class),
X-			      G_SIGNAL_RUN_LAST,
X-			      G_STRUCT_OFFSET (MonkeyMediaAudioCDClass, cd_changed),
X-			      NULL, NULL,
X-			      g_cclosure_marshal_VOID__BOOLEAN,
X-			      G_TYPE_NONE,
X-			      1,
X-			      G_TYPE_BOOLEAN);
X }
X 
X 
X static gboolean
X is_cdrom_device (MonkeyMediaAudioCD *cdrom)
X {
X-	int fd;
X-
X-	fd = open (monkey_media_get_cd_drive (), O_RDONLY | O_NONBLOCK);
X-	if (fd < 0) 
X-	{
X-		return FALSE;
X-	}
X-
X-	/* Fire a harmless ioctl at the device. */
X-	if (ioctl (fd, CDROM_GET_CAPABILITY, 0) < 0)
X-	{
X-		/* Failed, it's not a CDROM drive */
X-		close (fd);
X-		
X-		return FALSE;
X-	}
X-	
X-	close (fd);
X-
X-	return TRUE;
X }
X 
X static void
X monkey_media_audio_cd_init (MonkeyMediaAudioCD *cd)
X {
X-	cd->priv = g_new0 (MonkeyMediaAudioCDPrivate, 1);
X-
X-	cd->priv->lock = g_mutex_new ();
X-
X-	if (!is_cdrom_device (cd))
X-	{
X-		cd->priv->error = g_error_new (MONKEY_MEDIA_AUDIO_CD_ERROR,
X-					       MONKEY_MEDIA_AUDIO_CD_ERROR_NOT_OPENED,
X-					       _("%s does not point to a valid CDRom device. This may be caused by:\n"
X-					         "a) CD support is not compiled into Linux\n"
X-					         "b) You do not have the correct permissions to access the CD drive\n"
X-					         "c) %s is not the CD drive.\n"),
X-					       monkey_media_get_cd_drive (), monkey_media_get_cd_drive ());
X-		return;
X-	}
X-
X-        cd->priv->poll_func_id = g_timeout_add (1000, (GSourceFunc) poll_event_cb, cd);
X-
X-	cd->priv->valid_info = FALSE;
X-	cd->priv->cd_available = monkey_media_audio_cd_available (cd, NULL);
X }
X 
X static void
X monkey_media_audio_cd_finalize (GObject *object)
X {
X-	MonkeyMediaAudioCD *cd;
X-
X-	cd = MONKEY_MEDIA_AUDIO_CD (object);
X-
X-	g_mutex_free (cd->priv->lock);
X-
X-	g_source_remove (cd->priv->poll_func_id);
X-
X-	g_free (cd->priv->cd_id);
X-	g_free (cd->priv->track_lengths);
X-	g_free (cd->priv->track_offsets);
X-
X-	g_free (cd->priv);
X-
X-	G_OBJECT_CLASS (parent_class)->finalize (object);
X }
X 
X static void
X@@ -229,7 +125,6 @@
X 				    const GValue *value,
X 				    GParamSpec *pspec)
X {
X-	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
X }
X 
X static void
X@@ -238,230 +133,46 @@
X 				    GValue *value,
X 				    GParamSpec *pspec)
X {
X-	MonkeyMediaAudioCD *cd = MONKEY_MEDIA_AUDIO_CD (object);
X-
X-	if (prop_id != PROP_ERROR)
X-	{
X-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
X-		return;
X-	}
X-
X-	g_value_set_pointer (value, cd->priv->error);
X }
X 
X void
X monkey_media_audio_cd_unref_if_around (void)
X {
X-	if (global_cd != NULL)
X-		g_object_unref (G_OBJECT (global_cd));
X-	if (global_cd_lock != NULL)
X-		g_mutex_free (global_cd_lock);
X }
X 
X MonkeyMediaAudioCD *
X monkey_media_audio_cd_new (GError **error)
X {
X-	MonkeyMediaAudioCD *cd;
X-	GError *tmp;
X-
X-	if (global_cd_lock == NULL)
X-		global_cd_lock = g_mutex_new ();
X-	g_mutex_lock (global_cd_lock);
X-
X-	/* we fake creating the object, since we need it internally as well
X-	 * and having multiple instances would just be a waste of memory. */
X-	if (global_cd != NULL)
X-	{
X-		g_mutex_unlock (global_cd_lock);
X-		return g_object_ref (G_OBJECT (global_cd));
X-	}
X-
X-	cd = MONKEY_MEDIA_AUDIO_CD (g_object_new (MONKEY_MEDIA_TYPE_AUDIO_CD, NULL));
X-
X-	g_return_val_if_fail (cd->priv != NULL, NULL);
X-
X-	g_object_get (G_OBJECT (cd), "error", &tmp, NULL);
X-
X-	if (tmp != NULL)
X-	{
X-		if (error != NULL)
X-			*error = tmp;
X-		else
X-			g_error_free (tmp);
X-
X-		g_object_unref (G_OBJECT (cd));
X-		cd = NULL;
X-	}
X-
X-	global_cd = cd;
X-
X-	g_mutex_unlock (global_cd_lock);
X-
X-	return g_object_ref (G_OBJECT (cd));
X }
X 
X static gboolean
X monkey_media_audio_cd_open (MonkeyMediaAudioCD *cd,
X 			    GError **error)
X {
X-	if (cd->priv->open_count++ == 0) 
X-	{
X-		cd->priv->fd = open (monkey_media_get_cd_drive (), O_RDONLY | O_NONBLOCK);
X-		
X-		if (cd->priv->fd < 0) 
X-		{
X-			if (errno == EACCES && error != NULL)
X-			{
X-				*error = g_error_new (MONKEY_MEDIA_AUDIO_CD_ERROR,
X-					              MONKEY_MEDIA_AUDIO_CD_ERROR_NOT_OPENED,
X-					              _("You do not seem to have permission to access %s."),
X-					              monkey_media_get_cd_drive ());
X-			} 
X-			else if (error != NULL) 
X-			{
X-				*error = g_error_new (MONKEY_MEDIA_AUDIO_CD_ERROR,
X-					              MONKEY_MEDIA_AUDIO_CD_ERROR_NOT_OPENED,
X-					              _("%s does not appear to point to a valid CD device. This may be because:\n"
X-					                "a) CD support is not compiled into Linux\n"
X-					                "b) You do not have the correct permissions to access the CD drive\n"
X-					                "c) %s is not the CD drive.\n"),
X-					              monkey_media_get_cd_drive (),
X-					              monkey_media_get_cd_drive ());
X-			}
X-				
X-			cd->priv->open_count = 0;
X-			return FALSE;
X-		}
X-	}
X-	
X-	return (cd->priv->fd >= 0);
X }
X 
X static void
X monkey_media_audio_cd_close (MonkeyMediaAudioCD *cd, 
X 			     gboolean force_close)
X {
X-	if (--cd->priv->open_count < 0 || force_close)
X-	{
X-		cd->priv->open_count = 0;
X-	}
X-
X-	if (cd->priv->open_count == 0) 
X-	{
X-		if (cd->priv->fd >= 0)
X-			close (cd->priv->fd);
X-		cd->priv->fd = -1;
X-	}
X }
X 
X void
X monkey_media_audio_cd_open_tray (MonkeyMediaAudioCD *cd,
X 			         GError **error)
X {
X-	int cd_status;
X-
X-	g_return_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd));
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (monkey_media_audio_cd_open (cd, error) == FALSE) 
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return;
X-	}
X-
X-	cd_status = ioctl (cd->priv->fd, CDROM_DRIVE_STATUS, CDSL_CURRENT);
X-
X-	if (cd_status != -1) 
X-	{
X-		if (cd_status != CDS_TRAY_OPEN)
X-		{
X-			if (ioctl (cd->priv->fd, CDROMEJECT, 0) < 0) 
X-			{
X-				if (error != NULL)
X-				{
X-					*error = g_error_new (MONKEY_MEDIA_AUDIO_CD_ERROR,
X-							      MONKEY_MEDIA_AUDIO_CD_ERROR_SYSTEM_ERROR,
X-							      "(monkey_media_audio_cd_open_tray): ioctl failed: %s",
X-							      g_strerror (errno));
X-				}
X-				
X-				monkey_media_audio_cd_close (cd, FALSE);
X-
X-				g_mutex_unlock (cd->priv->lock);
X-
X-				return;
X-			}
X-		} 
X-	}
X-
X-	monkey_media_audio_cd_close (cd, TRUE);
X-
X-	g_mutex_unlock (cd->priv->lock);
X }
X 
X void
X monkey_media_audio_cd_close_tray (MonkeyMediaAudioCD *cd,
X 				  GError **error)
X {
X-	g_return_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd));
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (monkey_media_audio_cd_open (cd, error) == FALSE) 
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return;
X-	}
X-
X-	if (ioctl (cd->priv->fd, CDROMCLOSETRAY) < 0) 
X-	{
X-		if (error != NULL) 
X-		{
X-			*error = g_error_new (MONKEY_MEDIA_AUDIO_CD_ERROR,
X-					      MONKEY_MEDIA_AUDIO_CD_ERROR_SYSTEM_ERROR,
X-					      "(monkey_media_audio_cd_close_tray): ioctl failed %s",
X-					      g_strerror (errno));
X-		}
X-
X-		monkey_media_audio_cd_close (cd, FALSE);
X-		
X-		g_mutex_unlock (cd->priv->lock);
X-		
X-		return;
X-	}
X-
X-	monkey_media_audio_cd_close (cd, TRUE);
X-
X-	g_mutex_unlock (cd->priv->lock);
X }
X 
X gboolean
X monkey_media_audio_cd_available (MonkeyMediaAudioCD *cd,
X 				 GError **error)
X {
X-	int cd_status;
X-	gboolean ret;
X-
X-	g_return_val_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd), FALSE);
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (monkey_media_audio_cd_open (cd, error) == FALSE) 
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return FALSE;
X-	}
X-
X-	cd_status = ioctl (cd->priv->fd, CDROM_DRIVE_STATUS, CDSL_CURRENT);
X-
X-	monkey_media_audio_cd_close (cd, TRUE);
X-
X-	ret = (cd_status == CDS_DISC_OK);
X-
X-	g_mutex_unlock (cd->priv->lock);
X-
X-	return ret;
X }
X 
X /*
X@@ -521,285 +232,24 @@
X 
X unsigned char *rfc822_binary (void *src,unsigned long srcl,unsigned long *len)
X {
X-  unsigned char *ret,*d;
X-  unsigned char *s = (unsigned char *) src;
X-  char *v = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._";
X-  unsigned long i = ((srcl + 2) / 3) * 4;
X-  *len = i += 2 * ((i / 60) + 1);
X-  d = ret = (unsigned char *) malloc ((size_t) ++i);
X-  for (i = 0; srcl; s += 3) {	/* process tuplets */
X-    *d++ = v[s[0] >> 2];	/* byte 1: high 6 bits (1) */
X-				/* byte 2: low 2 bits (1), high 4 bits (2) */
X-    *d++ = v[((s[0] << 4) + (--srcl ? (s[1] >> 4) : 0)) & 0x3f];
X-				/* byte 3: low 4 bits (2), high 2 bits (3) */
X-    *d++ = srcl ? v[((s[1] << 2) + (--srcl ? (s[2] >> 6) : 0)) & 0x3f] : '-';
X-				/* byte 4: low 6 bits (3) */
X-    *d++ = srcl ? v[s[2] & 0x3f] : '-';
X-    if (srcl) srcl--;		/* count third character if processed */
X-    if ((++i) == 15) {		/* output 60 characters? */
X-      i = 0;			/* restart line break count, insert CRLF */
X-      *d++ = '\015'; *d++ = '\012';
X-    }
X-  }
X-  *d = '\0';			/* tie off string */
X-
X-  return ret;			/* return the resulting string */
X }
X 
X static gboolean
X ensure_sync (MonkeyMediaAudioCD *cd,
X 	     GError **error)
X {
X-	int i, j, *track_frames;
X-	struct cdrom_tochdr tochdr;
X-	unsigned char track0, track1;
X-	struct cdrom_tocentry tocentry;
X-	long *frame_offsets;
X-	SHA_INFO sha;
X-	char *tmp;
X-	unsigned char digest[20], *base64;
X-	unsigned long size;
X- 
X-        /* Don't recalculate data, valid_data can be changed from
X-         * callback functions */
X-        if (cd->priv->valid_info == TRUE)
X-		return TRUE;
X-
X-	if (monkey_media_audio_cd_open (cd, error) == FALSE) 
X-		return FALSE;
X-	
X-	if (ioctl (cd->priv->fd, CDROMREADTOCHDR, &tochdr) < 0) 
X-	{
X-		if (error != NULL)
X-		{
X-			*error = g_error_new (MONKEY_MEDIA_AUDIO_CD_ERROR,
X-					      MONKEY_MEDIA_AUDIO_CD_ERROR_SYSTEM_ERROR,
X-					      _("Error reading CD header: %s"),
X-					      g_strerror (errno));
X-		}
X-		monkey_media_audio_cd_close (cd, FALSE);
X-		return FALSE;
X-	}
X-	
X-	track0 = tochdr.cdth_trk0;
X-	track1 = tochdr.cdth_trk1;
X-	cd->priv->n_audio_tracks = track1 - track0 + 1;
X-
X-        if (cd->priv->track_offsets != NULL)
X-        {
X-                g_free (cd->priv->track_offsets);
X-                g_free (cd->priv->track_lengths);
X-        }
X-
X-	cd->priv->track_offsets = g_new0 (int, cd->priv->n_audio_tracks + 1);
X-        cd->priv->track_lengths = g_new0 (int, cd->priv->n_audio_tracks + 1);
X-
X-	frame_offsets = g_new0 (long, 100);
X-	track_frames = g_new0 (int, cd->priv->n_audio_tracks + 1);
X-
X-	for (i = 0, j = track0; i < cd->priv->n_audio_tracks; i++, j++) 
X-	{
X-		/* handle time-based stuff */
X-		tocentry.cdte_track = j;
X-		tocentry.cdte_format = CDROM_MSF;
X-
X-		if (ioctl (cd->priv->fd, CDROMREADTOCENTRY, &tocentry) < 0) 
X-		{
X-			g_warning ("IOCtl failed");
X-			continue;
X-		}
X-
X-		cd->priv->track_offsets[i] = (tocentry.cdte_addr.msf.minute * 60) 
X-                        + tocentry.cdte_addr.msf.second;
X-		track_frames[i] = tocentry.cdte_addr.msf.frame;
X-
X-		/* get frame offest */
X-		tocentry.cdte_track = j;
X-		tocentry.cdte_format = CDROM_LBA;
X-
X-		if (ioctl (cd->priv->fd, CDROMREADTOCENTRY, &tocentry) < 0) 
X-		{
X-			g_warning ("IOCtl failed");
X-			continue;
X-		}
X-		
X-		frame_offsets[i + 1] = tocentry.cdte_addr.lba + 150;
X-	}
X-
X-	/* handle time based stuff */
X-	tocentry.cdte_track = CDROM_LEADOUT;
X-	tocentry.cdte_format = CDROM_MSF;
X-	
X-	if (ioctl (cd->priv->fd, CDROMREADTOCENTRY, &tocentry) < 0) 
X-		goto leadout_error;
X-	
X-	cd->priv->track_offsets[cd->priv->n_audio_tracks] = (tocentry.cdte_addr.msf.minute * 60) 
X-                + tocentry.cdte_addr.msf.second;
X-	track_frames[cd->priv->n_audio_tracks] = tocentry.cdte_addr.msf.frame;
X-
X-	/* get frame offset */
X-	tocentry.cdte_track = CDROM_LEADOUT;
X-	tocentry.cdte_format = CDROM_LBA;
X-
X-	if (ioctl (cd->priv->fd, CDROMREADTOCENTRY, &tocentry) < 0)
X-		goto leadout_error;
X-	
X-	frame_offsets[0] = tocentry.cdte_addr.lba + 150;
X-
X-        for (i = 0; i < cd->priv->n_audio_tracks; i++) 
X-        {
X-                int f1, f2, df;
X-                
X-                /* Convert all addresses to frames */
X-                f1 = cd->priv->track_offsets[i] * CD_FRAMES + track_frames[i];
X-                f2 = cd->priv->track_offsets[i + 1] * CD_FRAMES + track_frames[i + 1];
X-                
X-                df = f2 - f1;
X-                cd->priv->track_lengths[i] = df / CD_FRAMES;
X-        }
X-
X-	/* calculates the musicbrainz disc ID. We do it locally instead of calling
X-	 * the lib for this, since we avoid the cd to be accessed yet another time
X-	 * this way */
X-	sha_init (&sha);
X-
X-	tmp = g_strdup_printf ("%02X", track0);
X-	sha_update (&sha, (unsigned char *) tmp, strlen (tmp));
X-	g_free (tmp);
X-
X-	tmp = g_strdup_printf ("%02X", track1);
X-	sha_update (&sha, (unsigned char *) tmp, strlen (tmp));
X-	g_free (tmp);
X-	
X-	for (i = 0; i < 100; i++)
X-	{
X-		tmp = g_strdup_printf ("%08lX", frame_offsets[i]);
X-		sha_update (&sha, (unsigned char *) tmp, strlen (tmp));
X-		g_free (tmp);
X-	}
X-
X-	sha_final (digest, &sha);
X-
X-	base64 = rfc822_binary (digest, 20, &size);
X-	if (cd->priv->cd_id != NULL)
X-		g_free (cd->priv->cd_id);
X-	cd->priv->cd_id = g_strndup (base64, size);
X-	g_free (base64);
X-
X-	g_free (track_frames);
X-	g_free (frame_offsets);
X-
X-	monkey_media_audio_cd_close (cd, TRUE);
X-
X-        cd->priv->valid_info = TRUE;
X-
X-	return TRUE;
X-
X-leadout_error:
X-	if (error != NULL)
X-	{
X-		*error = g_error_new (MONKEY_MEDIA_AUDIO_CD_ERROR,
X-				      MONKEY_MEDIA_AUDIO_CD_ERROR_SYSTEM_ERROR,
X-				      _("Error getting leadout: %s"),
X-				      g_strerror (errno));
X-	}
X-
X-	monkey_media_audio_cd_close (cd, FALSE);
X-
X-	g_free (track_frames);
X-	g_free (frame_offsets);
X-
X-	return FALSE;
X }
X 
X 
X static gboolean
X poll_event_cb (MonkeyMediaAudioCD *cd)
X {
X-	int cd_status;
X-	gboolean emit_signal = FALSE, available = FALSE;
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (monkey_media_audio_cd_open (cd, NULL) == FALSE)
X-	{
X-		cd->priv->valid_info = FALSE;
X-		cd->priv->cd_available = FALSE;
X-
X-		g_mutex_unlock (cd->priv->lock);
X-
X-		return TRUE;
X-	}
X-	
X-	cd_status = ioctl (cd->priv->fd, CDROM_DRIVE_STATUS, CDSL_CURRENT);
X-	if (cd_status != -1) 
X-	{
X-		switch (cd_status) 
X-		{
X-		case CDS_NO_INFO:
X-		case CDS_NO_DISC:
X-		case CDS_TRAY_OPEN:
X-		case CDS_DRIVE_NOT_READY:
X-			if (cd->priv->cd_available == TRUE)
X-			{
X-				cd->priv->cd_available = FALSE;
X-				cd->priv->valid_info = FALSE;
X-
X-				emit_signal = TRUE;
X-				available = FALSE;
X-			}
X-                        break;
X-		default:
X-			if (cd->priv->cd_available == FALSE)
X-			{
X-				cd->priv->cd_available = TRUE;
X-				cd->priv->valid_info = FALSE;
X-
X-				emit_signal = TRUE;
X-				available = TRUE;
X-                        }
X-			break;
X-		}
X-	} 
X-	else
X-	{
X-		/* so we went out of sync.. */
X-		cd->priv->valid_info = FALSE;
X-	}
X-
X-	monkey_media_audio_cd_close (cd, FALSE);
X-
X-	g_mutex_unlock (cd->priv->lock);
X-
X-	if (emit_signal == TRUE)
X-	{
X-		g_signal_emit (G_OBJECT (cd), monkey_media_audio_cd_signals[CD_CHANGED], 0, available);
X-	}
X-
X-	return TRUE;
X }
X 
X char *
X monkey_media_audio_cd_get_disc_id (MonkeyMediaAudioCD *cd,
X 				   GError **error)
X {
X-	char *ret;
X-
X-	g_return_val_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd), NULL);
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (ensure_sync (cd, error) == FALSE)
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return NULL;
X-	}
X-
X-	ret = g_strdup (cd->priv->cd_id);
X-
X-	g_mutex_unlock (cd->priv->lock);
X-
X-	return ret;
X }
X 
X long
X@@ -807,25 +257,6 @@
X 					  int track,
X 					  GError **error)
X {
X-	long ret;
X-
X-	g_return_val_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd), -1);
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (ensure_sync (cd, error) == FALSE)
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return -1;
X-	}
X-
X-	g_return_val_if_fail (track > 0 && track <= cd->priv->n_audio_tracks, -1);
X-
X-	ret = (long) cd->priv->track_lengths[track - 1];
X-
X-	g_mutex_unlock (cd->priv->lock);
X-
X-	return ret;
X }
X 
X int
X@@ -833,25 +264,6 @@
X 					int track,
X 					GError **error)
X {
X-	int ret;
X-	
X-	g_return_val_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd), -1);
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (ensure_sync (cd, error) == FALSE)
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return -1;
X-	}
X-
X-	g_return_val_if_fail (track > 0 && track <= cd->priv->n_audio_tracks, -1);
X-
X-	ret = cd->priv->track_offsets[track - 1];
X-
X-	g_mutex_unlock (cd->priv->lock);
X-
X-	return ret;
X }
X 
X gboolean
X@@ -859,98 +271,26 @@
X 				  int track,
X 				  GError **error)
X {
X-	gboolean ret;
X-	
X-	g_return_val_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd), FALSE);
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (ensure_sync (cd, error) == FALSE)
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return FALSE;
X-	}
X-
X-	ret = (track > 0 && track <= cd->priv->n_audio_tracks);
X-
X-	g_mutex_unlock (cd->priv->lock);
X-
X-	return ret;
X }
X 
X int
X monkey_media_audio_cd_get_n_tracks (MonkeyMediaAudioCD *cd,
X 				    GError **error)
X {
X-	int ret;
X-
X-	g_return_val_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd), -1);
X-	
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (ensure_sync (cd, error) == FALSE)
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return -1;
X-	}
X-
X-	ret = cd->priv->n_audio_tracks;
X-
X-	g_mutex_unlock (cd->priv->lock);
X-
X-	return ret;
X }
X 
X GList *
X monkey_media_audio_cd_list_tracks (MonkeyMediaAudioCD *cd,
X 				   GError **error)
X {
X-	GList *ret = NULL;
X-	int i;
X-
X-	g_return_val_if_fail (MONKEY_MEDIA_IS_AUDIO_CD (cd), NULL);
X-
X-	g_mutex_lock (cd->priv->lock);
X-
X-	if (ensure_sync (cd, error) == FALSE)
X-	{
X-		g_mutex_unlock (cd->priv->lock);
X-		return NULL;
X-	}
X-
X-	for (i = 0; i < cd->priv->n_audio_tracks; i++)
X-	{
X-		char *uri;
X-
X-		uri = g_strdup_printf ("audiocd://%d", i + 1);
X-
X-		ret = g_list_append (ret, uri);
X-	}
X-
X-	g_mutex_unlock (cd->priv->lock);
X-
X-	return ret;
X }
X 
X void
X monkey_media_audio_cd_free_tracks (GList *list)
X {
X-	GList *l;
X-	
X-	for (l = list; l != NULL; l = g_list_next (l))
X-	{
X-		g_free (l->data);
X-	}
X-
X-	g_list_free (list);
X }
X 
X GQuark
X monkey_media_audio_cd_error_quark (void)
X {
X-	static GQuark quark = 0;
X-	if (!quark) 
X-		quark = g_quark_from_static_string ("monkey_media_audio_cd_error");
X-
X-	return quark;
X }
END-of-monkey-media/files/patch-src::monkey-media-audio-cd.c
echo x - monkey-media/files/patch-configure
sed 's/^X//' >monkey-media/files/patch-configure << 'END-of-monkey-media/files/patch-configure'
X--- configure.orig	Sat Nov 16 18:41:20 2002
X+++ configure	Sat Nov 16 18:42:03 2002
X@@ -8464,13 +8464,13 @@
X 	warning_flags=
X 	;;
X     minimum)
X-	warning_flags="-Wall -Wunused"
X+	warning_flags="-Wunused"
X 	;;
X     yes)
X-	warning_flags="-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations"
X+	warning_flags="-Wunused -Wmissing-prototypes -Wmissing-declarations"
X 	;;
X     maximum|error)
X-	warning_flags="-Wall -Wunused -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
X+	warning_flags="-Wunused -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
X 	CFLAGS="$warning_flags $CFLAGS"
X 	for option in -Wsign-promo -Wno-sign-compare; do
X 		SAVE_CFLAGS="$CFLAGS"
X@@ -11643,7 +11643,7 @@
X LIBS="$LIBS -lmusicbrainz -lstdc++"
X 
X 
X-CFLAGS="$CFLAGS -Wall -Werror"
X+CFLAGS="$CFLAGS -Werror"
X 
X 
X LIBS="$LIBS -lgstcontrol"
END-of-monkey-media/files/patch-configure
exit


--1yeeQ81UyVL57Vl7
Content-Type: text/x-sh; charset=us-ascii
Content-Disposition: attachment; filename="rhythmbox.sh"

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	rhythmbox
#	rhythmbox/Makefile
#	rhythmbox/distinfo
#	rhythmbox/pkg-comment
#	rhythmbox/pkg-descr
#	rhythmbox/pkg-plist
#
echo c - rhythmbox
mkdir -p rhythmbox > /dev/null 2>&1
echo x - rhythmbox/Makefile
sed 's/^X//' >rhythmbox/Makefile << 'END-of-rhythmbox/Makefile'
X# New ports collection makefile for:	rhythmbox
X# Date created:		4 November 2002
X# Whom:			Martin Klaffenboeck <martin.klaffenboeck@gmx.at>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	rhythmbox
XPORTVERSION=	0.4.0
XCATEGORIES=	audio gnome
XMASTER_SITES=	http://www.rhythmbox.org/download/
X
XMAINTAINER=	martin.klaffenboeck@gmx.at
X
XLIB_DEPENDS=	monkey-media.0:${PORTSDIR}/audio/monkey-media
X
XUSE_GNOMENG=	yes
XUSE_GNOME=	gnomehack gnomeprefix
XUSE_X_PREFIX=	yes
XUSE_GMAKE=	yes
XGNU_CONFIGURE=	yes
XUSE_LIBTOOL=	yes
X
XCONFIGURE_ENV=	CPPFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS}" \
X		LIBS="-L${LOCALBASE}/lib -lgnuregex -lcompat"
X
XCONFIGURE_ARGS+=	--prefix=${PREFIX}
XCONFIGURE_TARGET=	--target=${MACHINE_ARCH}-unknown-freebsd${OSREL}
X
X.include <bsd.port.mk>
END-of-rhythmbox/Makefile
echo x - rhythmbox/distinfo
sed 's/^X//' >rhythmbox/distinfo << 'END-of-rhythmbox/distinfo'
XMD5 (rhythmbox-0.4.0.tar.gz) = 0060ed6e9220f90a1c4d07ff3a8a882c
END-of-rhythmbox/distinfo
echo x - rhythmbox/pkg-comment
sed 's/^X//' >rhythmbox/pkg-comment << 'END-of-rhythmbox/pkg-comment'
XPlaying cd's and music files on the Gnome 2 desktop.
END-of-rhythmbox/pkg-comment
echo x - rhythmbox/pkg-descr
sed 's/^X//' >rhythmbox/pkg-descr << 'END-of-rhythmbox/pkg-descr'
XRhythmbox which takes its inspiration from Apple's iTunes application, lets you do everything from importing your audio cd's into mp3 or Ogg Vorbis format, and play these music files and other music files you have. Play your music with an assortment of visualization plugins and burn new audio cd's from your music files. It is a one-stop shopping application for all your music needs.
X
XWWW: http://www.rhythmbox.org/
X- Martin Klaffenboeck <martin.klaffenboeck@gmx.at>
END-of-rhythmbox/pkg-descr
echo x - rhythmbox/pkg-plist
sed 's/^X//' >rhythmbox/pkg-plist << 'END-of-rhythmbox/pkg-plist'
Xbin/rhythmbox
Xetc/gconf/gconf.xml.defaults/apps/rhythmbox/%gconf.xml
Xetc/gconf/gconf.xml.defaults/apps/rhythmbox/state/%gconf.xml
Xetc/gconf/gconf.xml.defaults/apps/rhythmbox/state/library/%gconf.xml
Xetc/gconf/gconf.xml.defaults/apps/rhythmbox/ui/%gconf.xml
Xetc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/%gconf.xml
Xetc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/state/%gconf.xml
Xetc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/state/library/%gconf.xml
Xetc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/ui/%gconf.xml
Xlibdata/bonobo/servers/GNOME_Rhythmbox_Shell.server
Xshare/gnome/application-registry/rhythmbox.applications
Xshare/gnome/applications/rhythmbox.desktop
Xshare/gnome/gnome-2.0/ui/rhythmbox-group-view.xml
Xshare/gnome/gnome-2.0/ui/rhythmbox-library-view.xml
Xshare/gnome/gnome-2.0/ui/rhythmbox-test-view-2.xml
Xshare/gnome/gnome-2.0/ui/rhythmbox-ui.xml
Xshare/gnome/help/rhythmbox/C/authors.xml
Xshare/gnome/help/rhythmbox/C/fdl-appendix.xml
Xshare/gnome/help/rhythmbox/C/legal.xml
Xshare/gnome/help/rhythmbox/C/quick-reference.xml
Xshare/gnome/help/rhythmbox/C/rhythmbox.xml
Xshare/gnome/help/rhythmbox/C/user-guide.xml
Xshare/gnome/omf/rhythmbox/rhythmbox-C.omf
Xshare/gnome/pixmaps/rhythmbox.png
Xshare/gnome/rhythmbox/art/about-logo.png
Xshare/gnome/rhythmbox/art/rhythmbox-album.png
Xshare/gnome/rhythmbox/art/rhythmbox-dnd.png
Xshare/gnome/rhythmbox/art/rhythmbox-group.png
Xshare/gnome/rhythmbox/art/rhythmbox-library.png
Xshare/gnome/rhythmbox/art/rhythmbox-next.png
Xshare/gnome/rhythmbox/art/rhythmbox-no-star.png
Xshare/gnome/rhythmbox/art/rhythmbox-pause.png
Xshare/gnome/rhythmbox/art/rhythmbox-play.png
Xshare/gnome/rhythmbox/art/rhythmbox-playing.png
Xshare/gnome/rhythmbox/art/rhythmbox-playlist.png
Xshare/gnome/rhythmbox/art/rhythmbox-previous.png
Xshare/gnome/rhythmbox/art/rhythmbox-repeat.png
Xshare/gnome/rhythmbox/art/rhythmbox-rewind.png
Xshare/gnome/rhythmbox/art/rhythmbox-set-star.png
Xshare/gnome/rhythmbox/art/rhythmbox-shuffle.png
Xshare/gnome/rhythmbox/art/rhythmbox-stop.png
Xshare/gnome/rhythmbox/art/rhythmbox-tray-icon.png
Xshare/gnome/rhythmbox/art/rhythmbox-unset-star.png
Xshare/gnome/rhythmbox/art/rhythmbox-visuals.png
Xshare/gnome/rhythmbox/art/rhythmbox-volume-max.png
Xshare/gnome/rhythmbox/art/rhythmbox-volume-medium.png
Xshare/gnome/rhythmbox/art/rhythmbox-volume-min.png
Xshare/gnome/rhythmbox/art/rhythmbox-volume-mute.png
Xshare/gnome/rhythmbox/art/rhythmbox-volume-zero.png
Xshare/gnome/rhythmbox/glade/preferences.glade
Xshare/gnome/rhythmbox/glade/song-info.glade
Xshare/gnome/rhythmbox/glade/toolbar-editor.glade
Xshare/gnome/rhythmbox/node-views/rb-node-view-albums.xml
Xshare/gnome/rhythmbox/node-views/rb-node-view-artists.xml
Xshare/gnome/rhythmbox/node-views/rb-node-view-songs.xml
X@dirrm share/gnome/rhythmbox/node-views
X@dirrm share/gnome/rhythmbox/glade
X@dirrm share/gnome/rhythmbox/art
X@dirrm share/gnome/rhythmbox
X@dirrm share/gnome/omf/rhythmbox
X@dirrm etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/ui
X@dirrm etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/state/library
X@dirrm etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox/state
X@dirrm etc/gconf/gconf.xml.defaults/schemas/apps/rhythmbox
X@dirrm etc/gconf/gconf.xml.defaults/apps/rhythmbox/ui
X@dirrm etc/gconf/gconf.xml.defaults/apps/rhythmbox/state/library
X@dirrm etc/gconf/gconf.xml.defaults/apps/rhythmbox/state
X@dirrm etc/gconf/gconf.xml.defaults/apps/rhythmbox
END-of-rhythmbox/pkg-plist
exit


--1yeeQ81UyVL57Vl7--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-gnome" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021116185851.GA425>