From fa22046509f2a8ac2b98b05ad04e7e32c014b730 Mon Sep 17 00:00:00 2001 From: jmcneill Date: Fri, 26 Dec 2008 15:35:51 +0000 Subject: Add HAL and ipod support; tested with an iPod Shuffle and a PSP-2000. --- audio/rhythmbox/Makefile | 26 +++++++++++++----- audio/rhythmbox/PLIST | 6 ++++- audio/rhythmbox/distinfo | 3 ++- audio/rhythmbox/patches/patch-ae | 57 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 audio/rhythmbox/patches/patch-ae diff --git a/audio/rhythmbox/Makefile b/audio/rhythmbox/Makefile index 8963efb9526..17b6029794c 100644 --- a/audio/rhythmbox/Makefile +++ b/audio/rhythmbox/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.58 2008/10/29 01:39:57 wiz Exp $ +# $NetBSD: Makefile,v 1.59 2008/12/26 15:35:51 jmcneill Exp $ # DISTNAME= rhythmbox-0.11.6 +PKGREVISION= 1 CATEGORIES= audio gnome MASTER_SITES= ${MASTER_SITE_GNOME:=sources/rhythmbox/0.11/} EXTRACT_SUFX= .tar.bz2 @@ -12,6 +13,13 @@ COMMENT= Music management application for GNOME PKG_DESTDIR_SUPPORT= user-destdir +PKG_OPTIONS_VAR= rhythmbox +PKG_SUPPORTED_OPTIONS= hal +PKG_SUGGESTED_OPTIONS= hal +PLIST_VARS+= ${PKG_SUPPORTED_OPTIONS} + +.include "../../mk/bsd.options.mk" + GNU_CONFIGURE= YES USE_DIRS+= gnome2-1.5 USE_TOOLS+= gmake intltool msgfmt pkg-config @@ -20,10 +28,18 @@ USE_PKGLOCALEDIR= YES CONFIGURE_ARGS+= --disable-python CONFIGURE_ARGS+= --with-html-dir=${PREFIX}/share/doc -# need newer HAL -#CONFIGURE_ARGS+= --with-ipod +.if !empty(PKG_OPTIONS:Mhal) +CONFIGURE_ARGS+= --with-ipod +.include "../../audio/libgpod/buildlink3.mk" +# needs a newer libmtp #CONFIGURE_ARGS+= --with-mtp +#.include "../../devel/libmtp/buildlink3.mk" +CONFIGURE_ARGS+= --with-hal +PLIST.hal= yes +.include "../../sysutils/hal/buildlink3.mk" +.else CONFIGURE_ARGS+= --without-hal +.endif GCONF_SCHEMAS= rhythmbox.schemas @@ -31,16 +47,12 @@ BUILDLINK_API_DEPENDS.gtk2+= gtk2+>=2.6.0 BUILDLINK_API_DEPENDS.musicbrainz+= musicbrainz>=2.1.0 BUILDLINK_API_DEPENDS.totem+= {totem,totem-xine}>=1.1.5 -# needs newer HAL -#.include "../../audio/libgpod/buildlink3.mk" .include "../../audio/musicbrainz/buildlink3.mk" .include "../../devel/GConf/schemas.mk" .include "../../devel/gettext-lib/buildlink3.mk" .include "../../devel/glib2/buildlink3.mk" .include "../../devel/libglade/buildlink3.mk" .include "../../devel/libgnomeui/buildlink3.mk" -# needs newer HAL -#.include "../../devel/libmtp/buildlink3.mk" .include "../../devel/libsexy/buildlink3.mk" .include "../../graphics/hicolor-icon-theme/buildlink3.mk" .include "../../multimedia/gnome-media/buildlink3.mk" diff --git a/audio/rhythmbox/PLIST b/audio/rhythmbox/PLIST index 8de91db8d6b..4345a9e385d 100644 --- a/audio/rhythmbox/PLIST +++ b/audio/rhythmbox/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.17 2008/10/29 01:39:57 wiz Exp $ +@comment $NetBSD: PLIST,v 1.18 2008/12/26 15:35:51 jmcneill Exp $ bin/rhythmbox bin/rhythmbox-client lib/librhythmbox-core.la @@ -21,6 +21,9 @@ lib/rhythmbox/plugins/daap/libdaap.la lib/rhythmbox/plugins/generic-player/generic-player-ui.xml lib/rhythmbox/plugins/generic-player/generic-player.rb-plugin lib/rhythmbox/plugins/generic-player/libgeneric-player.la +${PLIST.hal}lib/rhythmbox/plugins/ipod/ipod-ui.xml +${PLIST.hal}lib/rhythmbox/plugins/ipod/ipod.rb-plugin +${PLIST.hal}lib/rhythmbox/plugins/ipod/libipod.la lib/rhythmbox/plugins/iradio/iradio-initial.pls lib/rhythmbox/plugins/iradio/iradio-ui.xml lib/rhythmbox/plugins/iradio/iradio.rb-plugin @@ -460,6 +463,7 @@ share/rhythmbox/rhythmbox-ui.xml @dirrm lib/rhythmbox/plugins/power-manager @dirrm lib/rhythmbox/plugins/mmkeys @dirrm lib/rhythmbox/plugins/iradio +${PLIST.hal}@dirrm lib/rhythmbox/plugins/ipod @dirrm lib/rhythmbox/plugins/generic-player @dirrm lib/rhythmbox/plugins/daap @dirrm lib/rhythmbox/plugins/cd-recorder diff --git a/audio/rhythmbox/distinfo b/audio/rhythmbox/distinfo index d54904d8ff3..b33df1f048a 100644 --- a/audio/rhythmbox/distinfo +++ b/audio/rhythmbox/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.22 2008/10/29 01:39:57 wiz Exp $ +$NetBSD: distinfo,v 1.23 2008/12/26 15:35:51 jmcneill Exp $ SHA1 (rhythmbox-0.11.6.tar.bz2) = 4364447bd4f6fb0e969039213cea37d6d3e4fb58 RMD160 (rhythmbox-0.11.6.tar.bz2) = 3fd6b8595705a91c779c458a26333575ba5e2233 @@ -6,3 +6,4 @@ Size (rhythmbox-0.11.6.tar.bz2) = 4683400 bytes SHA1 (patch-aa) = fa82e1d8176f4ee0b82e8fc307d506444ae22600 SHA1 (patch-ac) = c2cad1c4b074910797a21117f6809d8e00d12f30 SHA1 (patch-ad) = 64139d56a250543b82d5d5586f58f38912a2cdc4 +SHA1 (patch-ae) = a8c940cc300d49a2908aec4568b5ff2ad9131dc3 diff --git a/audio/rhythmbox/patches/patch-ae b/audio/rhythmbox/patches/patch-ae new file mode 100644 index 00000000000..d4e8d774ac1 --- /dev/null +++ b/audio/rhythmbox/patches/patch-ae @@ -0,0 +1,57 @@ +$NetBSD: patch-ae,v 1.5 2008/12/26 15:35:51 jmcneill Exp $ + +From http://svn.gnome.org/viewvc/rhythmbox?view=revision&revision=5992 + +--- plugins/generic-player/rb-generic-player-source.c 2008/10/01 19:28:24 5961 ++++ plugins/generic-player/rb-generic-player-source.c 2008/10/23 11:50:40 5992 +@@ -824,21 +824,43 @@ + char *udi = get_hal_udi_for_player (ctx, mount); + if (udi != NULL) { + DBusError error; ++ char **proplist; + char *prop; + + rb_debug ("Checking udi %s", udi); + /* check that it can be accessed as mass-storage */ + dbus_error_init (&error); +- prop = libhal_device_get_property_string (ctx, udi, "portable_audio_player.access_method", &error); +- if (prop != NULL && strcmp (prop, "storage") == 0 && !dbus_error_is_set (&error)) { +- /* the device has passed all tests, so it should be a usable player */ +- result = TRUE; +- } else { ++ proplist = libhal_device_get_property_strlist (ctx, udi, "portable_audio_player.access_method.protocols", &error); ++ if (proplist != NULL && !dbus_error_is_set (&error)) { ++ int i; ++ for (i = 0; proplist[i] != NULL; i++) { ++ rb_debug ("device access method: %s", proplist[i]); ++ if (strcmp (proplist[i], "storage") == 0) { ++ result = TRUE; ++ break; ++ } ++ } ++ ++ libhal_free_string_array (proplist); ++ } ++ free_dbus_error ("checking device access method", &error); ++ ++ if (result == FALSE) { ++ dbus_error_init (&error); ++ prop = libhal_device_get_property_string (ctx, udi, "portable_audio_player.access_method", &error); ++ if (prop != NULL && strcmp (prop, "storage") == 0 && !dbus_error_is_set (&error)) { ++ /* the device has passed all tests, so it should be a usable player */ ++ result = TRUE; ++ } ++ ++ libhal_free_string (prop); ++ free_dbus_error ("checking device access method", &error); ++ } ++ ++ if (result == FALSE) { + rb_debug ("device cannot be accessed via storage"); + } +- libhal_free_string (prop); + +- free_dbus_error ("checking device access method", &error); + } else { + rb_debug ("device is not an audio player"); + } -- cgit v1.2.3