ports/105897: MAINTAINER UPDATE: multimedia/quodlibet: Update to 0.24

Peter Johnson johnson.peter at gmail.com
Mon Nov 27 00:10:26 UTC 2006


>Number:         105897
>Category:       ports
>Synopsis:       MAINTAINER UPDATE: multimedia/quodlibet: Update to 0.24
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Nov 27 00:10:21 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Peter Johnson
>Release:        FreeBSD 6.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD 6.1-RELEASE


>Description:
	Update Quod Libet to 0.24.
>How-To-Repeat:
>Fix:

	See patch.  Quod Libet 0.24 incorporated the Python 2.5 fix committed
earlier, so that patch was removed.  0.24 also adds support for dbus, so
dependencies were added for it.

--- quodlibet24.patch begins here ---
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/multimedia/quodlibet/Makefile,v
retrieving revision 1.14
diff -u -r1.14 Makefile
--- Makefile	27 Sep 2006 03:09:13 -0000	1.14
+++ Makefile	19 Nov 2006 07:34:15 -0000
@@ -6,7 +6,7 @@
 #
 
 PORTNAME=	quodlibet
-PORTVERSION=	0.23.1
+PORTVERSION=	0.24
 CATEGORIES=	multimedia audio python gnome
 MASTER_SITES=	http://www.sacredchao.net/~piman/software/
 
@@ -37,6 +37,7 @@
 OPTIONS+=	SPEEX "OGG/Speex audio support" on
 OPTIONS+=	VORBIS "OGG/Vorbis audio support" on
 OPTIONS+=	WAVPACK "Wavpack support" on
+OPTIONS+=	DBUS "Enable dbus (iPod, storage) support" on
 OPTIONS+=	REMOTE "Enable remote playback" on
 OPTIONS+=	EXTENSIONS "Enable extensions" off
 
@@ -83,6 +84,11 @@
 USE_GSTREAMER+=	faad
 .endif
 
+.if !defined(WITHOUT_DBUS)
+BUILD_DEPENDS+=	${PYTHON_SITELIBDIR}/dbus/__init__.py:${PORTSDIR}/devel/py-dbus
+RUN_DEPENDS+=	${PYTHON_SITELIBDIR}/dbus/__init__.py:${PORTSDIR}/devel/py-dbus
+.endif
+
 .if !defined(WITHOUT_REMOTE)
 BUILD_DEPENDS+=	${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser
 RUN_DEPENDS+=	${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser
Index: distinfo
===================================================================
RCS file: /home/ncvs/ports/multimedia/quodlibet/distinfo,v
retrieving revision 1.5
diff -u -r1.5 distinfo
--- distinfo	27 Sep 2006 03:09:13 -0000	1.5
+++ distinfo	19 Nov 2006 07:34:15 -0000
@@ -1,3 +1,3 @@
-MD5 (quodlibet-0.23.1.tar.gz) = 8b9d4f4dc0850b48cfe9b4b390722ef4
-SHA256 (quodlibet-0.23.1.tar.gz) = 639d6364798802ab50580e652abe53c72470ab04e7ecd06e66bee0542d2d01e8
-SIZE (quodlibet-0.23.1.tar.gz) = 542885
+MD5 (quodlibet-0.24.tar.gz) = 39718994ee234d0c442d9db330d7445a
+SHA256 (quodlibet-0.24.tar.gz) = 758d726fa57b177d574dc01141609df3415287611db073415230f1ac4520fd5e
+SIZE (quodlibet-0.24.tar.gz) = 615554
Index: pkg-plist
===================================================================
RCS file: /home/ncvs/ports/multimedia/quodlibet/pkg-plist,v
retrieving revision 1.6
diff -u -r1.6 pkg-plist
--- pkg-plist	27 Sep 2006 03:09:13 -0000	1.6
+++ pkg-plist	19 Nov 2006 07:34:15 -0000
@@ -22,18 +22,25 @@
 share/locale/nl/LC_MESSAGES/quodlibet.mo
 share/locale/pl/LC_MESSAGES/quodlibet.mo
 share/locale/pt/LC_MESSAGES/quodlibet.mo
+share/locale/ro/LC_MESSAGES/quodlibet.mo
 share/locale/ru/LC_MESSAGES/quodlibet.mo
+share/locale/sk/LC_MESSAGES/quodlibet.mo
 share/locale/sv/LC_MESSAGES/quodlibet.mo
 share/locale/zh_CN/LC_MESSAGES/quodlibet.mo
 share/locale/zh_TW/LC_MESSAGES/quodlibet.mo
 share/pixmaps/exfalso.png
 share/pixmaps/quodlibet.png
+%%DATADIR%%/audio-volume-high.png
+%%DATADIR%%/audio-volume-low.png
+%%DATADIR%%/audio-volume-medium.png
+%%DATADIR%%/audio-volume-muted.png
 %%DATADIR%%/browsers/__init__.py
 %%DATADIR%%/browsers/_base.py
 %%DATADIR%%/browsers/albums.py
 %%DATADIR%%/browsers/audiofeeds.py
 %%DATADIR%%/browsers/filesystem.py
 %%DATADIR%%/browsers/iradio.py
+%%DATADIR%%/browsers/media.py
 %%DATADIR%%/browsers/paned.py
 %%DATADIR%%/browsers/playlists.py
 %%DATADIR%%/browsers/search.py
@@ -42,6 +49,12 @@
 %%DATADIR%%/exfalso.png
 %%DATADIR%%/exfalso.py
 %%DATADIR%%/exfalso.svg
+%%DATADIR%%/device-generic.png
+%%DATADIR%%/device-ipod.png
+%%DATADIR%%/devices/__init__.py
+%%DATADIR%%/devices/_base.py
+%%DATADIR%%/devices/ipod.py
+%%DATADIR%%/devices/storage.py
 %%DATADIR%%/formats/__init__.py
 %%DATADIR%%/formats/_apev2.py
 %%DATADIR%%/formats/_audio.py
@@ -58,6 +71,7 @@
 %%DATADIR%%/library/__init__.py
 %%DATADIR%%/library/_library.py
 %%DATADIR%%/library/songs.py
+%%DATADIR%%/media-eject.png
 %%DATADIR%%/parse/__init__.py
 %%DATADIR%%/parse/_match.py
 %%DATADIR%%/parse/_pattern.py
@@ -115,10 +129,6 @@
 %%DATADIR%%/quodlibet.png
 %%DATADIR%%/quodlibet.py
 %%DATADIR%%/quodlibet.svg
-%%DATADIR%%/rhythmbox-volume-max.png
-%%DATADIR%%/rhythmbox-volume-medium.png
-%%DATADIR%%/rhythmbox-volume-min.png
-%%DATADIR%%/rhythmbox-volume-zero.png
 %%DATADIR%%/stock.py
 %%DATADIR%%/util/__init__.py
 %%DATADIR%%/util/copool.py
@@ -135,5 +145,6 @@
 @dirrm %%DATADIR%%/parse
 @dirrm %%DATADIR%%/library
 @dirrm %%DATADIR%%/formats
+ at dirrm %%DATADIR%%/devices
 @dirrm %%DATADIR%%/browsers
 @dirrm %%DATADIR%%
Index: files/patch-Makefile
===================================================================
RCS file: /home/ncvs/ports/multimedia/quodlibet/files/patch-Makefile,v
retrieving revision 1.2
diff -u -r1.2 patch-Makefile
--- files/patch-Makefile	4 Jan 2006 21:16:53 -0000	1.2
+++ files/patch-Makefile	19 Nov 2006 07:34:15 -0000
@@ -1,23 +1,21 @@
---- Makefile.orig	2005-12-13 19:46:30.000000000 -0700
-+++ Makefile	2006-01-04 03:20:58.787760884 -0700
-@@ -13,7 +13,6 @@
- 	@./check.py
+--- Makefile.orig	Thu Oct  5 06:03:59 2006
++++ Makefile	Sat Nov 18 22:32:11 2006
+@@ -13,13 +13,12 @@
+ 	@./check.py $(DESTDIR)$(PREFIX)/$(TO)
  
  make-install-dirs:
 -	mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
  	mkdir -p $(DESTDIR)$(PREFIX)/bin
  	mkdir -p $(DESTDIR)$(PREFIX)/$(TO)
  
-@@ -24,7 +23,7 @@
- # installing the SVN version will have intltool and so it will build fine.
  install: make-install-dirs install-dirs install-programs
- 	install -m 644 $(MODULES) rhythmbox-*.png $(DESTDIR)$(PREFIX)/$(TO)
--	-for E in $(EXTENSIONS); do (test -e $$E && install -m 755 -D $$E $(DESTDIR)$(PREFIX)/$(TODEP)/$$E); done
-+	-for E in $(EXTENSIONS); do (test -e $$E && install -m 755 $$E $(DESTDIR)$(PREFIX)/$(TODEP)/$$E); done
- 	-cd po && make install-po DESTDIR=$(DESTDIR)
+ 	install -m 644 $(MODULES) audio-*.png media-*.png device-*.png $(DESTDIR)$(PREFIX)/$(TO)
+-	for E in $(EXTENSIONS); do (test -e $$E && install -m 755 -D $$E $(DESTDIR)$(PREFIX)/$(TODEP)/$$E); done
++	for E in $(EXTENSIONS); do (test -e $$E && install -m 755 $$E $(DESTDIR)$(PREFIX)/$(TODEP)/$$E); done
+ 	cd po && make install-po DESTDIR=$(DESTDIR)
  
  install-dirs: $(addprefix dir-install-, $(MODULE_DIRS))
-@@ -37,10 +36,10 @@
+@@ -32,10 +31,10 @@
  
  app-install-%: make-install-dirs %.desktop
  	install -m 755 $*.py $(DESTDIR)$(PREFIX)/$(TO)
Index: files/patch-python25
===================================================================
RCS file: files/patch-python25
diff -N files/patch-python25
--- files/patch-python25	31 Oct 2006 02:39:31 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,307 +0,0 @@
-Index: parse/_pattern.py
-===================================================================
---- parse/_pattern.py	(revision 3816)
-+++ parse/_pattern.py	(revision 3817)
-@@ -15,7 +15,7 @@
- # every time. The Song proxy might also get in the way.
- 
- import os
--import sre
-+import re
- 
- import util
- 
-@@ -43,16 +43,16 @@
-                 str(self._reverse[self.type]) +
-                 "), lexeme=" + repr(self.lexeme) + ">")
- 
--class PatternLexer(sre.Scanner):
-+class PatternLexer(re.Scanner):
-     def __init__(self, s):
-         self.string = s.strip()
--        sre.Scanner.__init__(self,
-+        re.Scanner.__init__(self,
-                              [(r"([^<>|\\]|\\.)+", self.text),
-                               (r"[<>|]", self.table),
-                               ])
- 
-     def text(self, scanner, string):
--        return PatternLexeme(TEXT, sre.sub(r"\\(.)", r"\1", string))
-+        return PatternLexeme(TEXT, re.sub(r"\\(.)", r"\1", string))
-     def table(self, scanner, string):
-         return PatternLexeme(
-             {"|": COND, "<": OPEN, ">": CLOSE}[string], string)
-Index: parse/_query.py
-===================================================================
---- parse/_query.py	(revision 3816)
-+++ parse/_query.py	(revision 3817)
-@@ -10,7 +10,7 @@
- # but it could use some cleaning up. It builds the requisite match.*
- # objects as it goes, which is where the interesting stuff will happen.
- 
--import sre
-+import re
- 
- import parse._match as match
- 
-@@ -22,10 +22,10 @@
- class ParseError(error): pass
- class LexerError(error): pass
- 
--class QueryLexer(sre.Scanner):
-+class QueryLexer(re.Scanner):
-     def __init__(self, s):
-         self.string = s.strip()
--        sre.Scanner.__init__(self,
-+        re.Scanner.__init__(self,
-                              [(r"/([^/\\]|\\.)*/", self.regexp),
-                               (r'"([^"\\]|\\.)*"', self.str_to_re),
-                               (r"'([^'\\]|\\.)*'", self.str_to_re),
-@@ -42,7 +42,7 @@
-         if isinstance(string, unicode): string = string.encode('utf-8')
-         string = string[1:-1].decode('string_escape')
-         string = string.decode('utf-8')
--        return QueryLexeme(RE, "^%s$" % sre.escape(string))
-+        return QueryLexeme(RE, "^%s$" % re.escape(string))
- 
-     def tag(self, scanner, string):
-         return QueryLexeme(TAG, string.strip())
-@@ -190,24 +190,24 @@
-     def MatchTag(self):
-         tag = self.lookahead.lexeme
-         self.match(TAG)
--        try: return sre.compile(sre.escape(tag), sre.IGNORECASE | sre.UNICODE)
--        except sre.error:
-+        try: return re.compile(re.escape(tag), re.IGNORECASE | re.UNICODE)
-+        except re.error:
-             raise ParseError("The regular expression was invalid")
- 
-     def Regexp(self):
--        re = self.lookahead.lexeme
-+        regex = self.lookahead.lexeme
-         self.match(RE)
--        mods = sre.MULTILINE | sre.UNICODE | sre.IGNORECASE
-+        mods = re.MULTILINE | re.UNICODE | re.IGNORECASE
-         if self.lookahead.type == TAG:
-             s = self.lookahead.lexeme.lower()
--            if "c" in s: mods &= ~sre.IGNORECASE
--            if "i" in s: mods |= sre.IGNORECASE
--            if "s" in s: mods |= sre.DOTALL
--            if "l" in s: mods = (mods & ~sre.UNICODE) | sre.LOCALE
-+            if "c" in s: mods &= ~re.IGNORECASE
-+            if "i" in s: mods |= re.IGNORECASE
-+            if "s" in s: mods |= re.DOTALL
-+            if "l" in s: mods = (mods & ~re.UNICODE) | re.LOCALE
-             self.match(TAG)
--        try: return sre.compile(re, mods)
--        except sre.error:
--            raise ParseError("The regular expression /%s/ is invalid." % re)
-+        try: return re.compile(regex, mods)
-+        except re.error:
-+            raise ParseError("The regular expression /%s/ is invalid." % regex)
- 
-     def match(self, *tokens):
-         if tokens == [EOF] and self.lookahead.type == EOF:
-@@ -227,7 +227,7 @@
-     if not isinstance(string, unicode): string = string.decode('utf-8')
-     if string == "": return match.Inter([])
-     elif not set("#=").intersection(string):
--        parts = ["%s = /%s/" % (", ".join(star), sre.escape(p))
-+        parts = ["%s = /%s/" % (", ".join(star), re.escape(p))
-                  for p in string.split()]
-         string = "&(" + ",".join(parts) + ")"
-     return QueryParser(QueryLexer(string)).StartQuery()
-Index: qltk/remote.py
-===================================================================
---- qltk/remote.py	(revision 3816)
-+++ qltk/remote.py	(revision 3817)
-@@ -9,7 +9,7 @@
- 
- import os
- import random
--import sre
-+import re
- 
- import gobject
- import gtk
-@@ -162,7 +162,7 @@
-         for added in library.scan([filename]): pass
-         if window.browser.can_filter(None):
-             window.browser.set_text(
--                "filename = /^%s/c" % sre.escape(filename))
-+                "filename = /^%s/c" % re.escape(filename))
-             window.browser.activate()
-         else:
-             basepath = filename + "/"
-Index: qltk/cbes.py
-===================================================================
---- qltk/cbes.py	(revision 3816)
-+++ qltk/cbes.py	(revision 3817)
-@@ -241,8 +241,8 @@
-                 if not os.path.isdir(os.path.dirname(filename)):
-                     os.makedirs(os.path.dirname(filename))
- 
--            saved = file(filename + ".saved", "wU")
--            memory = file(filename, "wU")
-+            saved = file(filename + ".saved", "w")
-+            memory = file(filename, "w")
-             target = saved
-             for row in self.get_model():
-                 if row[0] is None: target = memory
-Index: qltk/renamefiles.py
-===================================================================
---- qltk/renamefiles.py	(revision 3816)
-+++ qltk/renamefiles.py	(revision 3817)
-@@ -8,7 +8,7 @@
- # $Id: quodlibet-0.23.1-python25.patch,v 1.1 2006/09/25 02:05:35 tcort Exp $
- 
- import os
--import sre
-+import re
- import unicodedata
- 
- import gtk
-@@ -38,7 +38,7 @@
-         new = u"".join(map(lambda s: (s in self.BAD and "_") or s, filename))
-         parts = new.split(os.sep)
-         def fix_end(string):
--            return sre.sub(r'[\. ]$', "_", string)
-+            return re.sub(r'[\. ]$', "_", string)
-         return unicode(os.sep).join(map(fix_end, parts))
- 
- class StripDiacriticals(FilterCheckButton):
-Index: qltk/tagsfrompath.py
-===================================================================
---- qltk/tagsfrompath.py	(revision 3816)
-+++ qltk/tagsfrompath.py	(revision 3817)
-@@ -8,7 +8,7 @@
- # $Id: quodlibet-0.23.1-python25.patch,v 1.1 2006/09/25 02:05:35 tcort Exp $
- 
- import os
--import sre
-+import re
- 
- import gtk
- 
-@@ -29,7 +29,7 @@
-         self.slashes = len(pattern) - len(pattern.replace(os.path.sep,'')) + 1
-         self.pattern = None
-         # patterns look like <tagname> non regexy stuff <tagname> ...
--        pieces = sre.split(r'(<[A-Za-z0-9_]+>)', pattern)
-+        pieces = re.split(r'(<[A-Za-z0-9_]+>)', pattern)
-         override = { '<tracknumber>': r'\d\d?', '<discnumber>': r'\d\d??' }
-         for i, piece in enumerate(pieces):
-             if not piece: continue
-@@ -38,7 +38,7 @@
-                 pieces[i] = '(?P%s%s)' % (piece, override.get(piece, '.+?'))
-                 self.headers.append(piece[1:-1].encode("ascii", "replace"))
-             else:
--                pieces[i] = sre.escape(piece)
-+                pieces[i] = re.escape(piece)
- 
-         # some slight magic to anchor searches "nicely"
-         # nicely means if it starts with a <tag>, anchor with a /
-@@ -52,7 +52,7 @@
-                 and not pattern.endswith('<discnumber>'):
-             pieces.append(r'(?:\.\w+)$')
- 
--        self.pattern = sre.compile(''.join(pieces))
-+        self.pattern = re.compile(''.join(pieces))
- 
-     def match(self, song):
-         if isinstance(song, dict):
-@@ -125,7 +125,7 @@
-         if songs: pattern_text = self.combo.child.get_text().decode("utf-8")
-         else: pattern_text = ""
-         try: pattern = TagsFromPattern(pattern_text)
--        except sre.error:
-+        except re.error:
-             qltk.ErrorMessage(
-                 self, _("Invalid pattern"),
-                 _("The pattern\n\t<b>%s</b>\nis invalid. "
-Index: util/__init__.py
-===================================================================
---- util/__init__.py	(revision 3816)
-+++ util/__init__.py	(revision 3817)
-@@ -9,7 +9,7 @@
- import gettext
- import locale
- import os
--import sre
-+import re
- import sys
- 
- from const import FSCODING as fscoding, ENCODING
-@@ -26,7 +26,13 @@
-     t.install()
- 
- def python_init():
--    sre.escape = re_esc
-+    re.escape = re_esc
-+    # Python 2.4 has sre.Scanner but not re.Scanner. Python 2.5 has
-+    # deprecated sre and moved Scanner to re.
-+    try: re.Scanner
-+    except AttributeError:
-+        from sre import Scanner
-+        re.Scanner = Scanner
- 
- def re_esc(str, BAD="/.^$*+?{,\\[]|()<>#=!:"):
-     needs_escape = lambda c: (c in BAD and "\\" + c) or c
-@@ -237,7 +243,7 @@
-     """Unescape a string in a manner suitable for XML/Pango."""
-     return str.replace("<", "<").replace(">", ">").replace("&", "&")
- 
--def parse_time(timestr, err=(ValueError, sre.error)):
-+def parse_time(timestr, err=(ValueError, re.error)):
-     """Parse a time string in hh:mm:ss, mm:ss, or ss format."""
-     if timestr[0:1] == "-":
-         m = -1
-@@ -246,7 +252,7 @@
- 
-     try:
-         return m * reduce(lambda s, a: s * 60 + int(a),
--                          sre.split(r":|\.", timestr), 0)
-+                          re.split(r":|\.", timestr), 0)
-     except err: return 0
- 
- RATING_PRECISION = 0.25
-@@ -362,7 +368,7 @@
-     if not splitters: return [s.strip()]
-     values = s.split("\n")
-     for spl in splitters:
--        spl = sre.compile(r"\b\s*%s\s*\b" % sre.escape(spl), sre.UNICODE)
-+        spl = re.compile(r"\b\s*%s\s*\b" % re.escape(spl), re.UNICODE)
-         new_values = []
-         for v in values:
-             new_values.extend([st.strip() for st in spl.split(v)])
-Index: util/massagers.py
-===================================================================
---- util/massagers.py	(revision 3816)
-+++ util/massagers.py	(revision 3817)
-@@ -8,7 +8,7 @@
- # $Id: quodlibet-0.23.1-python25.patch,v 1.1 2006/09/25 02:05:35 tcort Exp $
- 
- import locale
--import sre
-+import re
- 
- class Massager(object):
-     """Massage a tag value from various 'okay' formats to the
-@@ -23,7 +23,7 @@
-     tags = ["date"]
-     error = _("The date must be entered in 'YYYY', 'YYYY-MM-DD' or "
-               "'YYYY-MM-DD HH:MM:SS' format.")
--    __match = sre.compile(r"^\d{4}([-.]\d{2}([-.]\d{2}([T ]\d{2}"
-+    __match = re.compile(r"^\d{4}([-.]\d{2}([-.]\d{2}([T ]\d{2}"
-                           "([:.]\d{2}([:.]\d{2})?)?)?)?)?$").match
-     def validate(self, value):
-         value = value.strip().replace(".", "-").replace("/", "-")
-@@ -32,7 +32,7 @@
- class GainMassager(Massager):
-     tags = ["replaygain_album_gain", "replaygain_track_gain"]
-     error = _("Replay Gain gains must be entered in 'x.yy dB' format.")
--    __match = sre.compile(r"^[+-]\d+\.?\d+?\s+dB$").match
-+    __match = re.compile(r"^[+-]\d+\.?\d+?\s+dB$").match
- 
-     def validate(self, value):
-         if self.__match(value): return value
--- quodlibet24.patch ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list