diff options
author | flz <flz@FreeBSD.org> | 2009-11-17 00:29:41 +0800 |
---|---|---|
committer | flz <flz@FreeBSD.org> | 2009-11-17 00:29:41 +0800 |
commit | 82cc6a2966c9e629bf809a8845696592dff076e0 (patch) | |
tree | a2ad03658904b78ffb72d33ce1c35d37699fa264 /multimedia/banshee | |
parent | a54f4e425720f49a8ed60153916795f818458ed6 (diff) | |
download | freebsd-ports-gnome-82cc6a2966c9e629bf809a8845696592dff076e0.tar.gz freebsd-ports-gnome-82cc6a2966c9e629bf809a8845696592dff076e0.tar.zst freebsd-ports-gnome-82cc6a2966c9e629bf809a8845696592dff076e0.zip |
- Various cleannups.
- Re-enable the bpm-detection plugin (via OPTIONs).
- Fix MusicBrainz so that Banshee can use Audio CD.
- Fix and sort pkg-plist.
PR: ports/140570
Submitted by: Romain Tartiere
Diffstat (limited to 'multimedia/banshee')
6 files changed, 187 insertions, 66 deletions
diff --git a/multimedia/banshee/Makefile b/multimedia/banshee/Makefile index e603474a3f38..09d54be1ffe5 100644 --- a/multimedia/banshee/Makefile +++ b/multimedia/banshee/Makefile @@ -7,6 +7,7 @@ PORTNAME= banshee PORTVERSION= 1.5.1 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= multimedia audio MASTER_SITES= http://download.banshee-project.org/${PORTNAME}/stable/${PORTVERSION}/ @@ -27,17 +28,17 @@ LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/mono.pc:${PORTSDIR}/lang/mono \ ${LOCALBASE}/libdata/pkgconfig/mono-zeroconf.pc:${PORTSDIR}/net/mono-zeroconf \ ${LOCALBASE}/libdata/pkgconfig/mono-addins.pc:${PORTSDIR}/devel/mono-addins -OPTIONS= DOCS "Install documentation" on \ - MTP "Enable MTP support" on -# BPMDETECT "Enable BPM detection" on -# IPOD "Enable iPod support" on \ +OPTIONS= DOCS "Install documentation" on \ + MTP "Enable MTP support" on \ + BPMDETECT "Enable BPM detection" on \ +# IPOD "Enable iPod support" on USE_BZIP2= yes USE_GMAKE= yes USE_PERL5_BUILD=yes GNU_CONFIGURE= yes USE_GNOME= gnomehack gtksharp20 gnomesharp20 -USE_GSTREAMER= yes +USE_GSTREAMER= cdparanoia USE_GETTEXT= yes USE_LDCONFIG= ${PREFIX}/lib/${PORTNAME}-1 USE_XORG= xrandr xxf86vm @@ -72,36 +73,8 @@ CONFIGURE_ARGS+= --disable-mtp PLIST_SUB+= OPT_MTP="@comment " .endif -#.if !defined(WITHOUT_BPMDETECT) -#USE_GSTREAMER+= soundtouch -#.endif - -post-patch: - @${REINPLACE_CMD} "s|!/bin/bash|!${PREFIX}/bin/bash|" \ - ${WRKSRC}/build/icon-theme-installer \ - ${WRKSRC}/build/private-icon-theme-installer \ - ${WRKSRC}/data/desktop-files/update-desktop-file.sh \ - ${WRKSRC}/src/Clients/Booter/banshee-1.in - @${REINPLACE_CMD} 's|sed -r|sed -E|' \ - ${WRKSRC}/data/icon-theme-hicolor/Makefile.in -# ${WRKSRC}/configure \ - -# XXX - This is gross. -post-configure: - @${REINPLACE_CMD} -e 's|^\(MSGFMT =\).*|\1 ${LOCALBASE}/bin/msgfmt|' \ - -e 's|^\(GMSGFMT =\).*|\1 ${LOCALBASE}/bin/msgfmt|' \ - ${WRKSRC}/po/Makefile - -# XXX - Really ugly too. -pre-build: - ${MKDIR} ${WRKSRC}/bin/share/banshee-1/icons/hicolor/scalable/ - -# XXX - This one is the best. -pre-install: -.for i in 16x16 22x22 32x32 48x48 128x128 scalable -. for j in actions categories devices status - @${MKDIR} ${PREFIX}/share/banshee-1/icons/hicolor/$i/$j/ -. endfor -.endfor +.if !defined(WITHOUT_BPMDETECT) +USE_GSTREAMER+= soundtouch +.endif .include <bsd.port.post.mk> diff --git a/multimedia/banshee/files/patch-fix-startup b/multimedia/banshee/files/patch-fix-startup deleted file mode 100644 index 067208416a27..000000000000 --- a/multimedia/banshee/files/patch-fix-startup +++ /dev/null @@ -1,13 +0,0 @@ ---- src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs.orig 2008-10-01 17:43:36.000000000 +0000 -+++ src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs 2009-02-23 09:48:57.000000000 +0000 -@@ -97,7 +97,9 @@ - queue = new Queue <TranscodeContext> (); - - try { -- Banshee.IO.Directory.Delete (cache_dir, true); -+ if (Banshee.IO.Directory.Exists (cache_dir)) { -+ Banshee.IO.Directory.Delete (cache_dir, true); -+ } - } catch {} - - Banshee.IO.Directory.Create (cache_dir); diff --git a/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_Makefile.in b/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_Makefile.in new file mode 100644 index 000000000000..e1cabfda35ed --- /dev/null +++ b/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_Makefile.in @@ -0,0 +1,13 @@ + +$FreeBSD$ + +--- src/Libraries/MusicBrainz/Makefile.in.orig ++++ src/Libraries/MusicBrainz/Makefile.in +@@ -347,6 +347,7 @@ + SOURCES = \ + MusicBrainz/Artist.cs \ + MusicBrainz/Disc.cs \ ++ MusicBrainz/DiscFreeBSD.cs \ + MusicBrainz/DiscLinux.cs \ + MusicBrainz/DiscWin32.cs \ + MusicBrainz/Event.cs \ diff --git a/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_MusicBrainz_DiscFreeBSD.cs b/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_MusicBrainz_DiscFreeBSD.cs new file mode 100644 index 000000000000..7c6464c12b28 --- /dev/null +++ b/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_MusicBrainz_DiscFreeBSD.cs @@ -0,0 +1,140 @@ + +$FreeBSD$ + +--- /dev/null ++++ src/Libraries/MusicBrainz/MusicBrainz/DiscFreeBSD.cs +@@ -0,0 +1,134 @@ ++// DiskFreeBSD.cs ++// ++// Copyright (c) 2009 Romain Tartière <romain@blogreen.org> ++// ++// Permission is hereby granted, free of charge, to any person obtaining a copy ++// of this software and associated documentation files (the "Software"), to deal ++// in the Software without restriction, including without limitation the rights ++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++// copies of the Software, and to permit persons to whom the Software is ++// furnished to do so, subject to the following conditions: ++// ++// The above copyright notice and this permission notice shall be included in ++// all copies or substantial portions of the Software. ++// ++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ++// THE SOFTWARE. ++ ++using System; ++using System.Runtime.InteropServices; ++ ++namespace MusicBrainz ++{ ++ internal sealed class DiscFreeBSD : LocalDisc ++ { ++ ++#region <fcntl.h> ++ const int O_RDONLY = 0x0000; // open for reading only ++ const int O_NONBLOCK = 0x0004; // no delay ++ ++ [DllImport ("libc.so.7", CharSet = CharSet.Auto, SetLastError = true)] ++ static extern int open (string path, int flags); ++#endregion ++ ++#region <unistd.h> ++ [DllImport ("libc.so.7", SetLastError = true)] ++ static extern int close (int d); ++#endregion ++ ++#region <sys/cdio.h> ++ struct msf_lba { ++ public int lba; // network byte order ++ }; ++ ++ [StructLayout (LayoutKind.Explicit)] ++ struct cd_toc_entry { ++ [FieldOffset (2)] ++ public byte track; ++ [FieldOffset (4)] ++ public msf_lba addr; ++ }; ++ ++ // Ioctls for the CD drive ++ ++ const byte CD_LBA_FORMAT = 1; ++ ++ struct ioc_toc_header { ++ public short len; ++ public byte starting_track; ++ public byte ending_track; ++ }; ++ const ulong CDIOREADTOCHEADER = 1074029316; ++ [DllImport ("libc.so.7", EntryPoint = "ioctl")] ++ static extern int cd_read_toc_header (int fd, ulong request, ref ioc_toc_header data); ++ static int cd_read_toc_header (int fd, ref ioc_toc_header data) ++ { ++ return cd_read_toc_header (fd, CDIOREADTOCHEADER, ref data); ++ } ++ ++ struct ioc_read_toc_entry { ++ public byte address_format; ++ public byte starting_track; ++ public ushort data_len; ++ public IntPtr data; // cd_toc_entry* ++ }; ++ const ulong CDIOREADTOCENTRYS = 3222299397; ++ [DllImport ("libc.so.7", EntryPoint = "ioctl")] ++ static extern int cd_read_toc_entrys (int fd, ulong request, ref ioc_read_toc_entry data); ++ static int cd_read_toc_entrys (int fd, ref ioc_read_toc_entry data) ++ { ++ return cd_read_toc_entrys (fd, CDIOREADTOCENTRYS, ref data); ++ } ++ ++#endregion ++ ++ internal DiscFreeBSD (string device) ++ { ++ int fd = open (device, O_RDONLY | O_NONBLOCK); ++ ++ if (fd < 0) throw new LocalDiscException (String.Format ("Cannot open device `{0}'", device)); ++ ++ try { ++ ioc_toc_header h = new ioc_toc_header (); ++ if (cd_read_toc_header (fd, ref h) < 0) throw new LocalDiscException ("Cannot read table of contents header"); ++ if (h.ending_track == 0) throw new LocalDiscException ("This disc has no tracks"); ++ ++ first_track = h.starting_track; ++ last_track = h.ending_track; ++ ++ int n = h.ending_track - h.starting_track + 1; ++ int len = (n + 1) * Marshal.SizeOf (typeof (cd_toc_entry)); ++ ++ ioc_read_toc_entry t = new ioc_read_toc_entry (); ++ t.address_format = CD_LBA_FORMAT; ++ t.starting_track = 0; ++ t.data_len = (ushort) len; ++ t.data = Marshal.AllocHGlobal (len); ++ try { ++ ++ if (cd_read_toc_entrys (fd, ref t) < 0) throw new LocalDiscException ("Cannot read table of contents entries"); ++ ++ for (int i = 0; i <= n; i++) { ++ ulong offset = (ulong) (i * Marshal.SizeOf (typeof (cd_toc_entry))); ++ cd_toc_entry e = (cd_toc_entry) Marshal.PtrToStructure ((IntPtr) ((ulong)t.data + offset), typeof (cd_toc_entry)); ++ track_offsets[first_track + i] = System.Net.IPAddress.NetworkToHostOrder (e.addr.lba) + 150; ++ } ++ // Move Leadout to the beginning. ++ track_offsets [0] = track_offsets [last_track + 1]; ++ track_offsets [last_track + 1] = 0; ++ } finally { ++ Marshal.FreeHGlobal (t.data); ++ } ++ } finally { ++ close (fd); ++ } ++ ++ Init (); ++ } ++ } ++} diff --git a/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_MusicBrainz_LocalDisc.cs b/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_MusicBrainz_LocalDisc.cs new file mode 100644 index 000000000000..530035aab0ca --- /dev/null +++ b/multimedia/banshee/files/patch-src_Libraries_MusicBrainz_MusicBrainz_LocalDisc.cs @@ -0,0 +1,18 @@ + +$FreeBSD$ + +--- src/Libraries/MusicBrainz/MusicBrainz/LocalDisc.cs.orig ++++ src/Libraries/MusicBrainz/MusicBrainz/LocalDisc.cs +@@ -131,7 +131,11 @@ + try { + switch (Environment.OSVersion.Platform){ + case PlatformID.Unix: +- return new DiscLinux (device); ++ try { ++ return new DiscLinux (device); ++ } catch { ++ return new DiscFreeBSD (device); ++ } + //case PlatformID.Win32NT: + //return new DiscWin32NT (device); + default: diff --git a/multimedia/banshee/pkg-plist b/multimedia/banshee/pkg-plist index e40cadfb7b77..b500a04b9df4 100644 --- a/multimedia/banshee/pkg-plist +++ b/multimedia/banshee/pkg-plist @@ -44,14 +44,14 @@ lib/banshee-1/Extensions/Banshee.CoverArt.dll lib/banshee-1/Extensions/Banshee.CoverArt.dll.mdb lib/banshee-1/Extensions/Banshee.Daap.dll lib/banshee-1/Extensions/Banshee.Daap.dll.mdb +%%OPT_IPOD%%lib/banshee-1/Extensions/Banshee.Dap.Ipod.dll +%%OPT_IPOD%%lib/banshee-1/Extensions/Banshee.Dap.Ipod.dll.mdb lib/banshee-1/Extensions/Banshee.Dap.MassStorage.dll lib/banshee-1/Extensions/Banshee.Dap.MassStorage.dll.mdb %%OPT_MTP%%lib/banshee-1/Extensions/Banshee.Dap.Mtp.dll %%OPT_MTP%%lib/banshee-1/Extensions/Banshee.Dap.Mtp.dll.mdb lib/banshee-1/Extensions/Banshee.Dap.dll lib/banshee-1/Extensions/Banshee.Dap.dll.mdb -%%OPT_IPOD%%lib/banshee-1/Extensions/Banshee.Dap.Ipod.dll -%%OPT_IPOD%%lib/banshee-1/Extensions/Banshee.Dap.Ipod.dll.mdb lib/banshee-1/Extensions/Banshee.FileSystemQueue.dll lib/banshee-1/Extensions/Banshee.FileSystemQueue.dll.mdb lib/banshee-1/Extensions/Banshee.InternetRadio.dll @@ -74,10 +74,10 @@ lib/banshee-1/Extensions/Banshee.PlayerMigration.dll lib/banshee-1/Extensions/Banshee.PlayerMigration.dll.mdb lib/banshee-1/Extensions/Banshee.Podcasting.dll lib/banshee-1/Extensions/Banshee.Podcasting.dll.mdb -%%OPT_IPOD%%lib/banshee-1/Extensions/ipod-sharp.dll -%%OPT_IPOD%%lib/banshee-1/Extensions/ipod-sharp.dll.mdb %%OPT_IPOD%%lib/banshee-1/Extensions/ipod-sharp-ui.dll %%OPT_IPOD%%lib/banshee-1/Extensions/ipod-sharp-ui.dll.mdb +%%OPT_IPOD%%lib/banshee-1/Extensions/ipod-sharp.dll +%%OPT_IPOD%%lib/banshee-1/Extensions/ipod-sharp.dll.mdb lib/banshee-1/Halie.exe lib/banshee-1/Halie.exe.mdb lib/banshee-1/Hyena.Gui.dll @@ -138,6 +138,7 @@ share/banshee-1/audio-profiles/vorbis.xml share/banshee-1/audio-profiles/wav.xml share/banshee-1/audio-profiles/wavpack.xml share/banshee-1/audio-profiles/wma.xml +share/banshee-1/icons/hicolor/128x128/devices/phone-htc-g1-white.png share/banshee-1/icons/hicolor/16x16/actions/media-import-audio-cd.png share/banshee-1/icons/hicolor/16x16/actions/media-repeat-all.png share/banshee-1/icons/hicolor/16x16/actions/media-repeat-none.png @@ -202,7 +203,6 @@ share/banshee-1/icons/hicolor/48x48/actions/media-write-cd.png share/banshee-1/icons/hicolor/48x48/categories/podcast.png share/banshee-1/icons/hicolor/48x48/categories/radio.png share/banshee-1/icons/hicolor/48x48/devices/phone-htc-g1-white.png -share/banshee-1/icons/hicolor/128x128/devices/phone-htc-g1-white.png share/banshee-1/icons/hicolor/scalable/categories/radio.svg %%OPT_IPOD%%share/banshee-1/icons/hicolor/scalable/devices/multimedia-player-ipod-U2-color.svg %%OPT_IPOD%%share/banshee-1/icons/hicolor/scalable/devices/multimedia-player-ipod-U2-monochrome.svg @@ -270,28 +270,16 @@ share/locale/vi/LC_MESSAGES/banshee-1.mo share/locale/zh_CN/LC_MESSAGES/banshee-1.mo share/locale/zh_HK/LC_MESSAGES/banshee-1.mo share/locale/zh_TW/LC_MESSAGES/banshee-1.mo -@dirrmtry share/locale/ky/LC_MESSAGES -@dirrm share/banshee-1/icons/hicolor/scalable/status @dirrm share/banshee-1/icons/hicolor/scalable/devices @dirrm share/banshee-1/icons/hicolor/scalable/categories -@dirrm share/banshee-1/icons/hicolor/scalable/actions @dirrm share/banshee-1/icons/hicolor/scalable -@dirrm share/banshee-1/icons/hicolor/128x128/status -@dirrm share/banshee-1/icons/hicolor/128x128/devices -@dirrm share/banshee-1/icons/hicolor/128x128/categories -@dirrm share/banshee-1/icons/hicolor/128x128/actions -@dirrm share/banshee-1/icons/hicolor/128x128 -@dirrm share/banshee-1/icons/hicolor/48x48/status @dirrm share/banshee-1/icons/hicolor/48x48/devices @dirrm share/banshee-1/icons/hicolor/48x48/categories @dirrm share/banshee-1/icons/hicolor/48x48/actions @dirrm share/banshee-1/icons/hicolor/48x48 -@dirrm share/banshee-1/icons/hicolor/32x32/status @dirrm share/banshee-1/icons/hicolor/32x32/devices -@dirrm share/banshee-1/icons/hicolor/32x32/categories @dirrm share/banshee-1/icons/hicolor/32x32/actions @dirrm share/banshee-1/icons/hicolor/32x32 -@dirrm share/banshee-1/icons/hicolor/22x22/status @dirrm share/banshee-1/icons/hicolor/22x22/devices @dirrm share/banshee-1/icons/hicolor/22x22/categories @dirrm share/banshee-1/icons/hicolor/22x22/actions @@ -302,6 +290,8 @@ share/locale/zh_TW/LC_MESSAGES/banshee-1.mo @dirrm share/banshee-1/icons/hicolor/16x16/categories @dirrm share/banshee-1/icons/hicolor/16x16/actions @dirrm share/banshee-1/icons/hicolor/16x16 +@dirrm share/banshee-1/icons/hicolor/128x128/devices +@dirrm share/banshee-1/icons/hicolor/128x128 @dirrm share/banshee-1/icons/hicolor @dirrm share/banshee-1/icons @dirrm share/banshee-1/audio-profiles |