Hi again, This diff updates Mutagen to its latest version. I've also added a patch to handle TXXX frames, as requested by Scot Bontrager.
Regression tests suite 100% successful on amd64 and sparc64. OK?? Index: Makefile =================================================================== RCS file: /cvs/ports/audio/py-mutagen/Makefile,v retrieving revision 1.4 diff -u -p -r1.4 Makefile --- Makefile 18 Oct 2010 16:52:47 -0000 1.4 +++ Makefile 27 May 2011 09:33:26 -0000 @@ -2,15 +2,14 @@ COMMENT = Python module to handle audio metadata -MODPY_EGG_VERSION = 1.15 +MODPY_EGG_VERSION = 1.20 DISTNAME = mutagen-${MODPY_EGG_VERSION} PKGNAME = py-${DISTNAME} -REVISION = 1 CATEGORIES = audio -HOMEPAGE = http://code.google.com/p/quodlibet/wiki/Development/Mutagen +HOMEPAGE = http://mutagen.googlecode.com/ -MASTER_SITES = http://quodlibet.googlecode.com/files/ +MASTER_SITES = ${HOMEPAGE}/files/ # GPLv2 PERMIT_PACKAGE_CDROM = Yes @@ -20,8 +19,23 @@ PERMIT_DISTFILES_FTP = Yes MODULES = lang/python -USE_GROFF = Yes +MODPY_ADJ_FILES = mutagen/__init__.py \ + tools/mid3iconv \ + tools/mid3v2 \ + tools/moggsplit \ + tools/mutagen-inspect \ + tools/mutagen-pony + +REGRESS_DEPENDS = audio/faad \ + audio/flac \ + audio/py-eyed3 \ + audio/py-vorbis \ + audio/vorbis-tools \ + multimedia/oggz REGRESS_TARGET = test + +pre-build: + @rm ${WRKDIST}/tools/*.orig do-regress: ${_MODPY_CMD} ${REGRESS_TARGET} Index: distinfo =================================================================== RCS file: /cvs/ports/audio/py-mutagen/distinfo,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 distinfo --- distinfo 29 Jan 2009 17:44:27 -0000 1.1.1.1 +++ distinfo 27 May 2011 09:33:26 -0000 @@ -1,5 +1,5 @@ -MD5 (mutagen-1.15.tar.gz) = c346e1290711a38c123727c31f3602f8 -RMD160 (mutagen-1.15.tar.gz) = 2763d311941e8408d800d929a731a89f443c66b6 -SHA1 (mutagen-1.15.tar.gz) = 831e618f6f0778a5cc285332d3d1e363dd31d652 -SHA256 (mutagen-1.15.tar.gz) = 636d816aa4c7e754496b9daec8a00d7e5f62b67d640440c91dea6d694c83c944 -SIZE (mutagen-1.15.tar.gz) = 590439 +MD5 (mutagen-1.20.tar.gz) = rbFtn2BWvIZKXIbG+IWveQ== +RMD160 (mutagen-1.20.tar.gz) = 6O3OuhHWcM3TAhQp3rz0VOEdTZY= +SHA1 (mutagen-1.20.tar.gz) = eowZGBYOa10krNFG9XwI7ZQqL6g= +SHA256 (mutagen-1.20.tar.gz) = flbEeN4VT9zQDSV+vHe+hxgYjxoNuRb1HxKbfKAd5uc= +SIZE (mutagen-1.20.tar.gz) = 651649 Index: patches/patch-man_mid3v2_1 =================================================================== RCS file: patches/patch-man_mid3v2_1 diff -N patches/patch-man_mid3v2_1 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-man_mid3v2_1 27 May 2011 09:33:26 -0000 @@ -0,0 +1,25 @@ +$OpenBSD$ + +Add --TXXX support to mid3v2 +(upstream revision r97) + +--- man/mid3v2.1.orig Sun Dec 13 05:11:56 2009 ++++ man/mid3v2.1 Thu May 26 12:28:04 2011 +@@ -1,4 +1,4 @@ +-.TH mid3v2 1 "December 12th, 2009" ++.TH mid3v2 1 "October 30th, 2010" + .SH NAME + mid3v2 \- audio tag editor similar to 'id3v2' + .SH SYNOPSIS +@@ -60,6 +60,11 @@ Set the track number (TRCK). + Any text or URL frame (those beginning with T or W) can be modified or + added by prefixing the name of the frame with "\-\-". For example, + \fB\-\-TIT3 "Monkey!"\fR will set the TIT3 (subtitle) frame to \fBMonkey!\fR. ++.PP ++The TXXX frame requires a colon-separated description key; many TXXX ++frames may be set in the file as long as they have different keys. To ++set this key, just separate the text with a colon, e.g. ++\fB\-\-TXXX "ALBUMARTISTSORT:Examples,\ The"\fR. + .SH BUGS + No sanity checking is done on the editing operations you perform, so + mid3v2 will happily accept \-\-TSIZ when editing an ID3v2.4 frame. However, Index: patches/patch-setup_py =================================================================== RCS file: /cvs/ports/audio/py-mutagen/patches/patch-setup_py,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-setup_py --- patches/patch-setup_py 29 Jan 2009 17:44:27 -0000 1.1.1.1 +++ patches/patch-setup_py 27 May 2011 09:33:26 -0000 @@ -1,8 +1,8 @@ $OpenBSD: patch-setup_py,v 1.1.1.1 2009/01/29 17:44:27 sthen Exp $ ---- setup.py.orig Mon Jan 19 19:19:52 2009 -+++ setup.py Mon Jan 19 19:20:13 2009 -@@ -191,7 +191,7 @@ class coverage_cmd(Command): - 100.0 * (total_lines - bad_lines) / float(total_lines)) +--- setup.py.orig Thu Oct 8 09:26:23 2009 ++++ setup.py Thu May 26 12:02:03 2011 +@@ -196,7 +196,7 @@ class coverage_cmd(Command): + raise SystemExit("Coverage percentage went up; change setup.py.") if os.name == "posix": - data_files = [('share/man/man1', glob.glob("man/*.1"))] Index: patches/patch-tests_test___init___py =================================================================== RCS file: patches/patch-tests_test___init___py diff -N patches/patch-tests_test___init___py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-tests_test___init___py 27 May 2011 09:33:26 -0000 @@ -0,0 +1,27 @@ +$OpenBSD$ +--- tests/test___init__.py.orig Thu May 26 14:34:47 2011 ++++ tests/test___init__.py Thu May 26 14:35:05 2011 +@@ -181,23 +181,3 @@ class TFile(TestCase): + MP3.score(filename, fileobj, header)) + + add(TFile) +- +-class TMutagen(TestCase): +- uses_mmap = False +- +- def test_not_prerelease(self): +- from mutagen import version +- from os.path import dirname, basename, abspath +- trunk = dirname(dirname(abspath(__file__))) +- definitely_trunk = os.path.join(trunk, "..", "trunk") +- if os.path.isdir(definitely_trunk): +- if basename(trunk) != "trunk": +- self.failIf( +- version[-1] < 0, "mutagen.version is a prerelease.") +- else: +- self.failIf( +- version[-1] >= 0, "mutagen.version is not a prerelease.") +- else: +- print "WARNING: Unable to check version correctness." +- print "WARNING: %r does not exist." % definitely_trunk +-add(TMutagen) Index: patches/patch-tools_mid3v2 =================================================================== RCS file: patches/patch-tools_mid3v2 diff -N patches/patch-tools_mid3v2 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-tools_mid3v2 27 May 2011 09:33:26 -0000 @@ -0,0 +1,41 @@ +$OpenBSD$ + +Add --TXXX support to mid3v2 +(upstream revision r97) + +--- tools/mid3v2.orig Wed Dec 30 01:21:12 2009 ++++ tools/mid3v2 Thu May 26 12:21:12 2011 +@@ -89,7 +89,8 @@ def delete_frames(deletes, filenames): + + def write_files(edits, filenames): + enc = locale.getpreferredencoding() +- edits = [(frame[2:], value.decode(enc)) for (frame, value) in edits] ++ edits = [(frame[2:], value.decode(enc)) for (frame, value) in edits ++ if value] + + # preprocess: + # for all [frame,value] pairs in the edits list +@@ -128,11 +129,22 @@ def write_files(edits, filenames): + desc, lang = values[0], values[-1] + frame = mutagen.id3.COMM( + encoding=3, text=value, lang=lang, desc=desc) ++ id3.add(frame) ++ elif frame == "TXXX": ++ for value in vlist: ++ values = value.split(":", 1) ++ if len(values) == 1: ++ desc, value = "", values[0] ++ else: ++ desc, value = values[0], values[1] ++ frame = mutagen.id3.TXXX(encoding=3, text=value, desc=desc) ++ id3.add(frame) + elif issubclass(mutagen.id3.Frames[frame], mutagen.id3.UrlFrame): + frame = mutagen.id3.Frames[frame](encoding=3, url=vlist) ++ id3.add(frame) + else: + frame = mutagen.id3.Frames[frame](encoding=3, text=vlist) +- id3.add(frame) ++ id3.add(frame) + id3.save(filename) + + def list_tags(filenames): Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/audio/py-mutagen/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 PLIST --- pkg/PLIST 29 Jan 2009 17:44:27 -0000 1.1.1.1 +++ pkg/PLIST 27 May 2011 09:33:26 -0000 @@ -20,6 +20,8 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/mutagen/asf.pyc lib/python${MODPY_VERSION}/site-packages/mutagen/easyid3.py lib/python${MODPY_VERSION}/site-packages/mutagen/easyid3.pyc +lib/python${MODPY_VERSION}/site-packages/mutagen/easymp4.py +lib/python${MODPY_VERSION}/site-packages/mutagen/easymp4.pyc lib/python${MODPY_VERSION}/site-packages/mutagen/flac.py lib/python${MODPY_VERSION}/site-packages/mutagen/flac.pyc lib/python${MODPY_VERSION}/site-packages/mutagen/id3.py