1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-26 05:02:18 +00:00

- 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
This commit is contained in:
Florent Thoumie 2009-11-16 16:29:41 +00:00
parent 2d46cceb53
commit 301316157f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=244335
6 changed files with 187 additions and 66 deletions

View File

@ -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>

View File

@ -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);

View File

@ -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 \

View File

@ -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 ();
+ }
+ }
+}

View File

@ -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:

View File

@ -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