Bug 96898 - [PATCH] Update multimedia/quodlibet to 0.20.1
[PATCH] Update multimedia/quodlibet to 0.20.1
Status: Closed FIXED
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s)
Latest
Any Any
: Normal Affects Only Me
Assigned To: Vasil Dimov
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2006-05-07 08:40 UTC by johnson.peter
Modified: 2006-06-21 10:01 UTC (History)
0 users

See Also:


Attachments
file.diff (6.98 KB, patch)
2006-05-07 08:40 UTC, johnson.peter
no flags Details | Diff
quodlibet-0.21.1.patch (20.20 KB, patch)
2006-06-16 02:55 UTC, johnson.peter
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description johnson.peter 2006-05-07 08:40:22 UTC
Update Quod Libet port to 0.20.1 (from 0.17.1).  Note this update requires my
just-requested audio/py-mutagen port addition (this is a change to Quod Libet).
Comment 1 Edwin Groothuis freebsd_committer 2006-05-07 08:44:12 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback
Comment 2 changbom.yoon 2006-05-26 16:44:32 UTC
On Sun, 7 May 2006 07:44:12 GMT
Edwin Groothuis <edwin@FreeBSD.org> wrote:

> Synopsis: [PATCH] Update multimedia/quodlibet to 0.20.1
> 
> State-Changed-From-To: open->feedback
> State-Changed-By: edwin
> State-Changed-When: Sun May 7 07:44:12 UTC 2006
> State-Changed-Why: 
> Awaiting maintainers feedback

At first, I'm sorry to reply late.
nowadays, I'm too busy to develope or test something.

I've tested your Patches. ... got some bad news.
QuodLibet couldn't detect any codecs. output plugin too.

I think, it requires only Gst 0.10, not Gst 0.8.
My system has MAD plugin for Gst 0.8, FLAC plugin for Gst 0.8, etc.
But It was not appeared. so QuodLibet can't play media files.

I'm testing once more now. I wonder if it does work on your system.

Sincerly,

ps. If i was impolite, I'm sorry.
Comment 3 johnson.peter 2006-05-30 03:00:02 UTC
ChangBom Yoon wrote:
> At first, I'm sorry to reply late.
> nowadays, I'm too busy to develope or test something.
>
> I've tested your Patches. ... got some bad news.
> QuodLibet couldn't detect any codecs. output plugin too.
>
> I think, it requires only Gst 0.10, not Gst 0.8.
> My system has MAD plugin for Gst 0.8, FLAC plugin for Gst 0.8, etc.
> But It was not appeared. so QuodLibet can't play media files.
>
> I'm testing once more now. I wonder if it does work on your system.
>   
Yes, it works perfectly on my system, but I have the necessary Gst 0.10 
plugins installed.  I'm aware that QL now needs Gst 0.10, that's why the 
patches I submitted change the port to require Gst 0.10 not Gst 0.8.  
You of course need to install the necessary Gst 0.10 plugins (now that 
QL uses Gst 0.10).  However, the port does not depend on a reasonable 
set of gst-plugins; this is the same way the old version of the port 
worked.  Maybe we should change the port to depend on a reasonable set 
of gst-plugins?

Peter
Comment 4 changbom.yoon 2006-06-02 15:28:59 UTC
Okay. I approve the Problem Report.

Thanks everyone :)
Comment 5 changbom.yoon 2006-06-02 15:51:28 UTC
I hope this mail is arrvied early than approving PR mail.

Peter, Please add 'multimedia/gstreamer-plugins-good' on dependecy.

I've forgot. Quodlibet needs that package. If not, It can't play any files.

You may already have that package.

Sincerly,
Comment 6 Edwin Groothuis freebsd_committer 2006-06-03 08:45:21 UTC
State Changed
From-To: feedback->open

maintainer approved
Comment 7 Vasil Dimov freebsd_committer 2006-06-11 13:09:32 UTC
Responsible Changed
From-To: freebsd-ports-bugs->vd

I will take it
Comment 8 Vasil Dimov freebsd_committer 2006-06-11 13:10:13 UTC
State Changed
From-To: open->feedback

Awaiting submitter to send a renewed patch by maintainer's request 

Peter, could you followup an updated patch which adds the 
multimedia/gstreamer-plugins-good dependency.
Comment 9 johnson.peter 2006-06-11 20:31:22 UTC
I'm not sure why there needs to be a dependency on 
gstreamer-plugins-good.  The package depends individually on the 
gst-plugins it needs.  In the meantime, however, QL 0.21 has come out, 
so I've updated the patch for it, plus added support for the musepack, 
wavpack, and aac formats.  I also added "USE_GSTREAMER=yes" in case 
that's the problem the maintainer was running into, and made a few other 
fixes.

Thanks,
Peter

--- Makefile.orig    Sat Apr 29 16:03:00 2006
+++ Makefile    Sun Jun 11 12:24:17 2006
@@ -6,57 +6,76 @@
 #
 
 PORTNAME=    quodlibet
-PORTVERSION=    0.17.1
-PORTREVISION=    1
+PORTVERSION=    0.21
 CATEGORIES=    multimedia audio python gnome
 MASTER_SITES=    http://www.sacredchao.net/~piman/software/
 
 MAINTAINER=    changbom.yoon@gmail.com
 COMMENT=    A GTK+-based audio player written in Python
 
-BUILD_DEPENDS=    
${PYTHON_SITELIBDIR}/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer80
-RUN_DEPENDS=    
${PYTHON_SITELIBDIR}/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer80
+LIB_DEPENDS=
+BUILD_DEPENDS=    
${PYTHON_SITELIBDIR}/gst-0.10/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer
+RUN_DEPENDS=    
${PYTHON_SITELIBDIR}/gst-0.10/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer
+
+BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/mutagen/__init__.py:${PORTSDIR}/audio/py-mutagen
+RUN_DEPENDS+=    
${PYTHON_SITELIBDIR}/mutagen/__init__.py:${PORTSDIR}/audio/py-mutagen
 
 USE_PYTHON=    2.3+
 USE_GNOME=    pygtk2
 USE_GMAKE=    yes
 USE_X_PREFIX=    yes
-USE_GSTREAMER80=    gconf
+USE_GSTREAMER=    yes
+USE_GSTREAMER+=    gconf
 
 MAN1=        exfalso.1 quodlibet.1
 
-# Supported formats: ogg vorbis mad flac remote
-QUODLIBET_FORMATS?=    ogg vorbis mad flac remote
+# Supported formats: vorbis mad flac remote
+QUODLIBET_FORMATS?=    ogg vorbis mp3 flac musepack wavpack aac remote
 .for format in ${QUODLIBET_FORMATS}
 WANT_QUODLIBET_${format:U}=    yes
 .endfor
 
 .if defined(WANT_QUODLIBET_OGG)
-BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/ogg/_ogg.so:${PORTSDIR}/audio/py-ogg
-RUN_DEPENDS+=    ${PYTHON_SITELIBDIR}/ogg/_ogg.so:${PORTSDIR}/audio/py-ogg
-USE_GSTREAMER80+=    ogg
+USE_GSTREAMER+=    ogg
 .endif
 
 .if defined(WANT_QUODLIBET_VORBIS)
-BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/ogg/vorbis.so:${PORTSDIR}/audio/py-vorbis
-RUN_DEPENDS+=    
${PYTHON_SITELIBDIR}/ogg/vorbis.so:${PORTSDIR}/audio/py-vorbis
-USE_GSTREAMER80+=    vorbis
+USE_GSTREAMER+=    vorbis
 .endif
 
-.if defined(WANT_QUODLIBET_MAD)
-BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/madmodule.so:${PORTSDIR}/audio/py-mad
-RUN_DEPNDS+=    ${PYTHON_SITELIBDIR}/madmodule.so:${PORTSDIR}/audio/py-mad
-USE_GSTREAMER80+=    mad
+.if defined(WANT_QUODLIBET_MP3)
+USE_GSTREAMER+=    mad
 .endif
 
 .if defined(WANT_QUODLIBET_FLAC)
-USE_GSTREAMER80+=    flac
+USE_GSTREAMER+=    flac
+.endif
+
+.if defined(WANT_QUODLIBET_MUSEPACK) || defined(WANT_QUODLIBET_WAVPACK) \
+    || defined(WANT_QUODLIBET_AAC)
+BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/ctypes/__init__.py:${PORTSDIR}/devel/py-ctypes
+RUN_DEPENDS+=    
${PYTHON_SITELIBDIR}/ctypes/__init__.py:${PORTSDIR}/devel/py-ctypes
+.endif
+
+.if defined(WANT_QUODLIBET_MUSEPACK)
+LIB_DEPENDS+=    mpcdec.4:${PORTSDIR}/audio/libmpcdec
+USE_GSTREAMER+= musepack
+.endif
+
+.if defined(WANT_QUODLIBET_WAVPACK)
+LIB_DEPENDS+=    wavpack.0:${PORTSDIR}/audio/wavpack
+USE_GSTREAMER+= wavpack
+.endif
+
+.if defined(WANT_QUODLIBET_AAC)
+LIB_DEPENDS+=    mp4v2.0:${PORTSDIR}/multimedia/mpeg4ip-libmp4v2
+USE_GSTREAMER+= faad
 .endif
 
 .if defined(WANT_QUODLIBET_REMOTE)
 BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser
 RUN_DEPENDS+=    
${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser
-USE_GSTREAMER80+=    gnomevfs
+USE_GSTREAMER+=    gnomevfs
 .endif
 
 .if defined(WITH_EXTENSIONS)
--- distinfo.orig    Fri Jan 20 15:29:54 2006
+++ distinfo    Sun Jun 11 11:32:58 2006
@@ -1,3 +1,3 @@
-MD5 (quodlibet-0.17.1.tar.gz) = 457e03c9aeed83077172185a06664c96
-SHA256 (quodlibet-0.17.1.tar.gz) = 
4a2fda947933991bbdf0d338afbcb3a01f19b87f0418867086bf68ce4cda6011
-SIZE (quodlibet-0.17.1.tar.gz) = 434299
+MD5 (quodlibet-0.21.tar.gz) = 91f9b4d2c25c38dc9039d99aa63b0a65
+SHA256 (quodlibet-0.21.tar.gz) = 
3143042adfe8a29dff905db022b9ae4cf4cd80f89d254ed7f5fdf10e9c688254
+SIZE (quodlibet-0.21.tar.gz) = 498001
--- pkg-plist.orig    Sat Jan 21 18:30:00 2006
+++ pkg-plist    Sun Jun 11 12:25:46 2006
@@ -13,12 +13,17 @@
 share/locale/fr/LC_MESSAGES/quodlibet.mo
 share/locale/gl/LC_MESSAGES/quodlibet.mo
 share/locale/he/LC_MESSAGES/quodlibet.mo
+share/locale/hu/LC_MESSAGES/quodlibet.mo
 share/locale/it/LC_MESSAGES/quodlibet.mo
 share/locale/ko/LC_MESSAGES/quodlibet.mo
+share/locale/lt/LC_MESSAGES/quodlibet.mo
+share/locale/nb/LC_MESSAGES/quodlibet.mo
 share/locale/nl/LC_MESSAGES/quodlibet.mo
 share/locale/pl/LC_MESSAGES/quodlibet.mo
 share/locale/pt/LC_MESSAGES/quodlibet.mo
 share/locale/ru/LC_MESSAGES/quodlibet.mo
+share/locale/sv/LC_MESSAGES/quodlibet.mo
+share/locale/zh_CN/LC_MESSAGES/quodlibet.mo
 share/pixmaps/exfalso.png
 share/pixmaps/quodlibet.png
 share/quodlibet/browsers/__init__.py
@@ -39,7 +44,6 @@
 share/quodlibet/formats/_apev2.py
 share/quodlibet/formats/_audio.py
 share/quodlibet/formats/_vorbis.py
-share/quodlibet/formats/ape.py
 share/quodlibet/formats/flac.py
 share/quodlibet/formats/mod.py
 share/quodlibet/formats/mp3.py
@@ -47,27 +51,23 @@
 share/quodlibet/formats/mpc.py
 share/quodlibet/formats/oggvorbis.py
 share/quodlibet/formats/remote.py
+share/quodlibet/formats/wav.py
 share/quodlibet/formats/wavpack.py
 share/quodlibet/library.py
-share/quodlibet/massagers.py
-share/quodlibet/mutagen/__init__.py
-share/quodlibet/mutagen/_constants.py
-share/quodlibet/mutagen/_vorbis.py
-share/quodlibet/mutagen/apev2.py
-share/quodlibet/mutagen/flac.py
-share/quodlibet/mutagen/id3.py
 share/quodlibet/parse/__init__.py
 share/quodlibet/parse/_match.py
 share/quodlibet/parse/_pattern.py
 share/quodlibet/parse/_query.py
 share/quodlibet/player.py
 share/quodlibet/plugins/__init__.py
-share/quodlibet/plugins/_manager.py
 share/quodlibet/plugins/editing.py
+share/quodlibet/plugins/events.py
 share/quodlibet/plugins/qlscrobbler.py
+share/quodlibet/plugins/songsmenu.py
 share/quodlibet/qltk/__init__.py
 share/quodlibet/qltk/_editpane.py
 share/quodlibet/qltk/about.py
+share/quodlibet/qltk/bookmarks.py
 share/quodlibet/qltk/browser.py
 share/quodlibet/qltk/cbes.py
 share/quodlibet/qltk/ccb.py
@@ -96,8 +96,11 @@
 share/quodlibet/qltk/quodlibet.py
 share/quodlibet/qltk/remote.py
 share/quodlibet/qltk/renamefiles.py
+share/quodlibet/qltk/session.py
 share/quodlibet/qltk/sliderbutton.py
 share/quodlibet/qltk/songlist.py
+share/quodlibet/qltk/songsmenu.py
+share/quodlibet/qltk/tagscombobox.py
 share/quodlibet/qltk/tagsfrompath.py
 share/quodlibet/qltk/textedit.py
 share/quodlibet/qltk/tracknumbers.py
@@ -114,7 +117,10 @@
 share/quodlibet/rhythmbox-volume-min.png
 share/quodlibet/rhythmbox-volume-zero.png
 share/quodlibet/stock.py
-share/quodlibet/util.py
+share/quodlibet/util/__init__.py
+share/quodlibet/util/i18n.py
+share/quodlibet/util/massagers.py
+share/quodlibet/util/uri.py
 share/quodlibet/widgets.py
 @dirrmtry share/applications
 @exec mkdir -p %D/share/quodlibet/plugins
@@ -125,11 +131,11 @@
 @dirrm share/quodlibet/browsers
 @exec mkdir -p %D/share/quodlibet/formats
 @dirrm share/quodlibet/formats
-@exec mkdir -p %D/share/quodlibet/mutagen
-@dirrm share/quodlibet/mutagen
 @exec mkdir -p %D/share/quodlibet/parse
 @dirrm share/quodlibet/parse
 @exec mkdir -p %D/share/quodlibet/qltk
 @dirrm share/quodlibet/qltk
+@exec mkdir -p %D/share/quodlibet/util
+@dirrm share/quodlibet/util
 @exec mkdir -p %D/share/quodlibet
 @dirrm share/quodlibet
--- files/patch-quodlibet.py    Sun Jan  8 04:36:35 2006
+++ /dev/null    Sun Jun 11 12:28:22 2006
@@ -1,21 +0,0 @@
---- quodlibet.py.orig    2005-12-12 15:43:59.000000000 -0700
-+++ quodlibet.py    2006-01-07 11:25:44.773179056 -0700
-@@ -273,15 +273,15 @@
-             basedir = os.getcwd()
-     if basedir.endswith("/share/quodlibet"):
-         sys.path.append(basedir[:-15] + "lib/quodlibet")
--    i18ndir = "/usr/share/locale"
-+    i18ndir = "/usr/X11R6/share/locale"
-
-     import locale, gettext, util
-     try: locale.setlocale(locale.LC_ALL, '')
-     except: pass
-
--    gettext.bindtextdomain("quodlibet")
-+    gettext.bindtextdomain("quodlibet", i18ndir)
-     gettext.textdomain("quodlibet")
--    util.gettext_install("quodlibet", unicode=True)
-+    util.gettext_install("quodlibet", i18ndir, unicode=True)
-     util.ctypes_init()
-
-     from util import to
Comment 10 johnson.peter 2006-06-11 20:53:34 UTC
Take two on the 0.21 patch; turns out they changed the plugins directory 
structure in 0.21, so the qlscrobbler.py needs updating and needs to be 
installed in a subdirectory.  Fixed patch below.

Peter

--- Makefile.orig    Sat Apr 29 16:03:00 2006
+++ Makefile    Sun Jun 11 12:43:47 2006
@@ -6,57 +6,76 @@
 #
 
 PORTNAME=    quodlibet
-PORTVERSION=    0.17.1
-PORTREVISION=    1
+PORTVERSION=    0.21
 CATEGORIES=    multimedia audio python gnome
 MASTER_SITES=    http://www.sacredchao.net/~piman/software/
 
 MAINTAINER=    changbom.yoon@gmail.com
 COMMENT=    A GTK+-based audio player written in Python
 
-BUILD_DEPENDS=    
${PYTHON_SITELIBDIR}/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer80
-RUN_DEPENDS=    
${PYTHON_SITELIBDIR}/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer80
+LIB_DEPENDS=
+BUILD_DEPENDS=    
${PYTHON_SITELIBDIR}/gst-0.10/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer
+RUN_DEPENDS=    
${PYTHON_SITELIBDIR}/gst-0.10/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer
+
+BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/mutagen/__init__.py:${PORTSDIR}/audio/py-mutagen
+RUN_DEPENDS+=    
${PYTHON_SITELIBDIR}/mutagen/__init__.py:${PORTSDIR}/audio/py-mutagen
 
 USE_PYTHON=    2.3+
 USE_GNOME=    pygtk2
 USE_GMAKE=    yes
 USE_X_PREFIX=    yes
-USE_GSTREAMER80=    gconf
+USE_GSTREAMER=    yes
+USE_GSTREAMER+=    gconf
 
 MAN1=        exfalso.1 quodlibet.1
 
-# Supported formats: ogg vorbis mad flac remote
-QUODLIBET_FORMATS?=    ogg vorbis mad flac remote
+# Supported formats: vorbis mad flac remote
+QUODLIBET_FORMATS?=    ogg vorbis mp3 flac musepack wavpack aac remote
 .for format in ${QUODLIBET_FORMATS}
 WANT_QUODLIBET_${format:U}=    yes
 .endfor
 
 .if defined(WANT_QUODLIBET_OGG)
-BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/ogg/_ogg.so:${PORTSDIR}/audio/py-ogg
-RUN_DEPENDS+=    ${PYTHON_SITELIBDIR}/ogg/_ogg.so:${PORTSDIR}/audio/py-ogg
-USE_GSTREAMER80+=    ogg
+USE_GSTREAMER+=    ogg
 .endif
 
 .if defined(WANT_QUODLIBET_VORBIS)
-BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/ogg/vorbis.so:${PORTSDIR}/audio/py-vorbis
-RUN_DEPENDS+=    
${PYTHON_SITELIBDIR}/ogg/vorbis.so:${PORTSDIR}/audio/py-vorbis
-USE_GSTREAMER80+=    vorbis
+USE_GSTREAMER+=    vorbis
 .endif
 
-.if defined(WANT_QUODLIBET_MAD)
-BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/madmodule.so:${PORTSDIR}/audio/py-mad
-RUN_DEPNDS+=    ${PYTHON_SITELIBDIR}/madmodule.so:${PORTSDIR}/audio/py-mad
-USE_GSTREAMER80+=    mad
+.if defined(WANT_QUODLIBET_MP3)
+USE_GSTREAMER+=    mad
 .endif
 
 .if defined(WANT_QUODLIBET_FLAC)
-USE_GSTREAMER80+=    flac
+USE_GSTREAMER+=    flac
+.endif
+
+.if defined(WANT_QUODLIBET_MUSEPACK) || defined(WANT_QUODLIBET_WAVPACK) \
+    || defined(WANT_QUODLIBET_AAC)
+BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/ctypes/__init__.py:${PORTSDIR}/devel/py-ctypes
+RUN_DEPENDS+=    
${PYTHON_SITELIBDIR}/ctypes/__init__.py:${PORTSDIR}/devel/py-ctypes
+.endif
+
+.if defined(WANT_QUODLIBET_MUSEPACK)
+LIB_DEPENDS+=    mpcdec.4:${PORTSDIR}/audio/libmpcdec
+USE_GSTREAMER+= musepack
+.endif
+
+.if defined(WANT_QUODLIBET_WAVPACK)
+LIB_DEPENDS+=    wavpack.0:${PORTSDIR}/audio/wavpack
+USE_GSTREAMER+= wavpack
+.endif
+
+.if defined(WANT_QUODLIBET_AAC)
+LIB_DEPENDS+=    mp4v2.0:${PORTSDIR}/multimedia/mpeg4ip-libmp4v2
+USE_GSTREAMER+= faad
 .endif
 
 .if defined(WANT_QUODLIBET_REMOTE)
 BUILD_DEPENDS+=    
${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser
 RUN_DEPENDS+=    
${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser
-USE_GSTREAMER80+=    gnomevfs
+USE_GSTREAMER+=    gnomevfs
 .endif
 
 .if defined(WITH_EXTENSIONS)
@@ -99,6 +118,7 @@
 
 post-install:
     @${MKDIR} ${PREFIX}/share/${PORTNAME}/plugins
-    @${INSTALL_DATA} ${FILESDIR}/qlscrobbler.py 
${PREFIX}/share/${PORTNAME}/plugins
+    @${MKDIR} ${PREFIX}/share/${PORTNAME}/plugins/events
+    @${INSTALL_DATA} ${FILESDIR}/qlscrobbler.py 
${PREFIX}/share/${PORTNAME}/plugins/events
 
 .include <bsd.port.post.mk>
--- distinfo.orig    Fri Jan 20 15:29:54 2006
+++ distinfo    Sun Jun 11 11:32:58 2006
@@ -1,3 +1,3 @@
-MD5 (quodlibet-0.17.1.tar.gz) = 457e03c9aeed83077172185a06664c96
-SHA256 (quodlibet-0.17.1.tar.gz) = 
4a2fda947933991bbdf0d338afbcb3a01f19b87f0418867086bf68ce4cda6011
-SIZE (quodlibet-0.17.1.tar.gz) = 434299
+MD5 (quodlibet-0.21.tar.gz) = 91f9b4d2c25c38dc9039d99aa63b0a65
+SHA256 (quodlibet-0.21.tar.gz) = 
3143042adfe8a29dff905db022b9ae4cf4cd80f89d254ed7f5fdf10e9c688254
+SIZE (quodlibet-0.21.tar.gz) = 498001
--- pkg-plist.orig    Sat Jan 21 18:30:00 2006
+++ pkg-plist    Sun Jun 11 12:49:57 2006
@@ -13,12 +13,17 @@
 share/locale/fr/LC_MESSAGES/quodlibet.mo
 share/locale/gl/LC_MESSAGES/quodlibet.mo
 share/locale/he/LC_MESSAGES/quodlibet.mo
+share/locale/hu/LC_MESSAGES/quodlibet.mo
 share/locale/it/LC_MESSAGES/quodlibet.mo
 share/locale/ko/LC_MESSAGES/quodlibet.mo
+share/locale/lt/LC_MESSAGES/quodlibet.mo
+share/locale/nb/LC_MESSAGES/quodlibet.mo
 share/locale/nl/LC_MESSAGES/quodlibet.mo
 share/locale/pl/LC_MESSAGES/quodlibet.mo
 share/locale/pt/LC_MESSAGES/quodlibet.mo
 share/locale/ru/LC_MESSAGES/quodlibet.mo
+share/locale/sv/LC_MESSAGES/quodlibet.mo
+share/locale/zh_CN/LC_MESSAGES/quodlibet.mo
 share/pixmaps/exfalso.png
 share/pixmaps/quodlibet.png
 share/quodlibet/browsers/__init__.py
@@ -39,7 +44,6 @@
 share/quodlibet/formats/_apev2.py
 share/quodlibet/formats/_audio.py
 share/quodlibet/formats/_vorbis.py
-share/quodlibet/formats/ape.py
 share/quodlibet/formats/flac.py
 share/quodlibet/formats/mod.py
 share/quodlibet/formats/mp3.py
@@ -47,27 +51,23 @@
 share/quodlibet/formats/mpc.py
 share/quodlibet/formats/oggvorbis.py
 share/quodlibet/formats/remote.py
+share/quodlibet/formats/wav.py
 share/quodlibet/formats/wavpack.py
 share/quodlibet/library.py
-share/quodlibet/massagers.py
-share/quodlibet/mutagen/__init__.py
-share/quodlibet/mutagen/_constants.py
-share/quodlibet/mutagen/_vorbis.py
-share/quodlibet/mutagen/apev2.py
-share/quodlibet/mutagen/flac.py
-share/quodlibet/mutagen/id3.py
 share/quodlibet/parse/__init__.py
 share/quodlibet/parse/_match.py
 share/quodlibet/parse/_pattern.py
 share/quodlibet/parse/_query.py
 share/quodlibet/player.py
 share/quodlibet/plugins/__init__.py
-share/quodlibet/plugins/_manager.py
 share/quodlibet/plugins/editing.py
-share/quodlibet/plugins/qlscrobbler.py
+share/quodlibet/plugins/events.py
+share/quodlibet/plugins/events/qlscrobbler.py
+share/quodlibet/plugins/songsmenu.py
 share/quodlibet/qltk/__init__.py
 share/quodlibet/qltk/_editpane.py
 share/quodlibet/qltk/about.py
+share/quodlibet/qltk/bookmarks.py
 share/quodlibet/qltk/browser.py
 share/quodlibet/qltk/cbes.py
 share/quodlibet/qltk/ccb.py
@@ -96,8 +96,11 @@
 share/quodlibet/qltk/quodlibet.py
 share/quodlibet/qltk/remote.py
 share/quodlibet/qltk/renamefiles.py
+share/quodlibet/qltk/session.py
 share/quodlibet/qltk/sliderbutton.py
 share/quodlibet/qltk/songlist.py
+share/quodlibet/qltk/songsmenu.py
+share/quodlibet/qltk/tagscombobox.py
 share/quodlibet/qltk/tagsfrompath.py
 share/quodlibet/qltk/textedit.py
 share/quodlibet/qltk/tracknumbers.py
@@ -114,9 +117,14 @@
 share/quodlibet/rhythmbox-volume-min.png
 share/quodlibet/rhythmbox-volume-zero.png
 share/quodlibet/stock.py
-share/quodlibet/util.py
+share/quodlibet/util/__init__.py
+share/quodlibet/util/i18n.py
+share/quodlibet/util/massagers.py
+share/quodlibet/util/uri.py
 share/quodlibet/widgets.py
 @dirrmtry share/applications
+@exec mkdir -p %D/share/quodlibet/plugins/events
+@dirrm share/quodlibet/plugins/events
 @exec mkdir -p %D/share/quodlibet/plugins
 @dirrm share/quodlibet/plugins
 @exec mkdir -p %D/lib/quodlibet
@@ -125,11 +133,11 @@
 @dirrm share/quodlibet/browsers
 @exec mkdir -p %D/share/quodlibet/formats
 @dirrm share/quodlibet/formats
-@exec mkdir -p %D/share/quodlibet/mutagen
-@dirrm share/quodlibet/mutagen
 @exec mkdir -p %D/share/quodlibet/parse
 @dirrm share/quodlibet/parse
 @exec mkdir -p %D/share/quodlibet/qltk
 @dirrm share/quodlibet/qltk
+@exec mkdir -p %D/share/quodlibet/util
+@dirrm share/quodlibet/util
 @exec mkdir -p %D/share/quodlibet
 @dirrm share/quodlibet
--- files/patch-quodlibet.py    Sun Jan  8 04:36:35 2006
+++ /dev/null    Sun Jun 11 12:51:26 2006
@@ -1,21 +0,0 @@
---- quodlibet.py.orig    2005-12-12 15:43:59.000000000 -0700
-+++ quodlibet.py    2006-01-07 11:25:44.773179056 -0700
-@@ -273,15 +273,15 @@
-             basedir = os.getcwd()
-     if basedir.endswith("/share/quodlibet"):
-         sys.path.append(basedir[:-15] + "lib/quodlibet")
--    i18ndir = "/usr/share/locale"
-+    i18ndir = "/usr/X11R6/share/locale"
-
-     import locale, gettext, util
-     try: locale.setlocale(locale.LC_ALL, '')
-     except: pass
-
--    gettext.bindtextdomain("quodlibet")
-+    gettext.bindtextdomain("quodlibet", i18ndir)
-     gettext.textdomain("quodlibet")
--    util.gettext_install("quodlibet", unicode=True)
-+    util.gettext_install("quodlibet", i18ndir, unicode=True)
-     util.ctypes_init()
-
-     from util import to
--- files/qlscrobbler.py.orig    Sun Jun 11 12:42:15 2006
+++ files/qlscrobbler.py    Sun Jun 11 12:41:24 2006
@@ -1,31 +1,37 @@
 # QLScrobbler: an Audioscrobbler client plugin for Quod Libet.
-# version 0.7
+# version 0.8
 # (C) 2005 by Joshua Kwan <joshk@triplehelix.org>,
 #             Joe Wreschnig <piman@sacredchao.net>
 # Licensed under GPLv2. See Quod Libet's COPYING for more information.
 
 import random
 import md5, urllib, urllib2, time, threading, os
-import player, config, const
+import player, config, const, widgets, parse
 import gobject, gtk
-from qltk import Message
+from qltk.msg import Message, WarningMessage
+from qltk.entry import ValidatingEntry
 from util import to
 
-class QLScrobbler(object):
+from plugins.events import EventPlugin
+
+class QLScrobbler(EventPlugin):
     # session invariants
     PLUGIN_NAME = "QLScrobbler"
     PLUGIN_DESC = "Audioscrobbler client for Quod Libet"
     PLUGIN_ICON = gtk.STOCK_CONNECT
-    PLUGIN_VERSION = "0.7"
+    PLUGIN_VERSION = "0.8.1"
     CLIENT = "qlb"
     PROTOCOL_VERSION = "1.1"
-    DUMP = os.path.join(const.DIR, "scrobbler_cache")
+    try: DUMP = os.path.join(const.USERDIR, "scrobbler_cache")
+    except AttributeError:
+        DUMP = os.path.join(const.DIR, "scrobbler_cache")
 
     # things that could change
    
     username = ""
     password = ""
     pwhash = ""
+    exclude = ""
    
     timeout_id = -1
     submission_tid = -1
@@ -42,7 +48,8 @@
     already_submitted = False
     locked = False
     flushing = False
-    disabled = False
+    __enabled = False
+    offline = False
 
     # we need to store this because not all events get the song
     song = None
@@ -55,6 +62,9 @@
             dump = open(self.DUMP, 'r')
             self.read_dump(dump)
         except: pass
+
+        # Read configuration
+        self.read_config()
        
         # Set up exit hook to dump queue
         gtk.quit_add(0, self.dump_queue)
@@ -68,7 +78,7 @@
             key = ""
             value = ""
            
-            line = line.rstrip()
+            line = line.rstrip("\n")
             try: (key, value) = line.split(" = ", 1)
             except:
                 if line == "-":
@@ -113,6 +123,7 @@
         for item in self.queue:
             for key in item:
                 dump.write("%s = %s\n" % (key, item[key]))
+            dump.write("-\n")
 
         dump.close()
 
@@ -151,6 +162,12 @@
         elif 'title' not in song: return
         elif "artist" not in song:
             if ("composer" not in song) and ("performer" not in song): 
return
+       
+        # Check to see if this song is not something we'd like to submit
+        #    e.g. "Hit Me Baby One More Time"
+        if self.exclude != "" and parse.Query(self.exclude).search(song):
+            print to("Not submitting: %s - %s" % (song["artist"], 
song["title"]))
+            return
 
         self.song = song
         if player.playlist.paused == False:
@@ -185,7 +202,7 @@
         if self.timeout_id == -2: # change delta based on current progress
             # assumption is that self.already_submitted == 0, therefore
             # delay - progress > 0
-            progress = int(player.playlist.info.time[0] / 1000)
+            progress = int(player.playlist.get_position() / 1000)
             delay -= progress
 
         self.timeout_id = gobject.timeout_add(delay * 1000, 
self.submit_song)
@@ -197,10 +214,16 @@
             username = config.get("plugins", "scrobbler_username")
             password = config.get("plugins", "scrobbler_password")
         except:
-            if self.need_config == False:
-                self.quick_info("Please visit the Preferences window to 
set QLScrobbler up. Until then, songs will not be submitted.")
+            if (self.need_config == False and
+                getattr(self, 'PMEnFlag', False)):
+                self.quick_dialog("Please visit the Preferences window 
to set QLScrobbler up. Until then, songs will not be submitted.", 
gtk.MESSAGE_INFO)
                 self.need_config = True
                 return
+
+        try: self.offline = (config.get("plugins", "scrobbler_offline") 
== "true")
+        except: pass
+        try: self.exclude = config.get("plugins", "scrobbler_exclude")
+        except: pass
        
         self.username = username
        
@@ -211,22 +234,14 @@
 
     def __destroy_cb(self, dialog, response_id):
         dialog.destroy()
-
-    def quick_error_helper(self, str):
-        dialog = Message(gtk.MESSAGE_ERROR, None, "QLScrobbler", str)
-        dialog.connect('response', self.__destroy_cb)
-        dialog.show()
-
-    def quick_error(self, str):
-        gobject.idle_add(self.quick_error_helper, str)
    
-    def quick_info_helper(self, str):
-        dialog = Message(gtk.MESSAGE_INFO, widgets.widgets.main, 
"QLScrobbler", str).run()
+    def quick_dialog_helper(self, type, str):
+        dialog = Message(gtk.MESSAGE_INFO, widgets.main, "QLScrobbler", 
str)
         dialog.connect('response', self.__destroy_cb)
         dialog.show()
 
-    def quick_info(self, str):
-        gobject.idle_add(self.quick_info_helper, str)
+    def quick_dialog(self, str, type):
+        gobject.idle_add(self.quick_dialog_helper, type, str)
    
     def clear_waiting(self):
         self.waiting = False
@@ -253,7 +268,7 @@
            
         if status == "UPTODATE" or status.startswith("UPDATE"):
             if status.startswith("UPDATE"):
-                self.quick_info("A new plugin is available at %s! 
Please download it, or your Audioscrobbler stats may not be updated, and 
this message will be displayed every session." % status.split()[1])
+                self.quick_dialog("A new plugin is available at %s! 
Please download it, or your Audioscrobbler stats may not be updated, and 
this message will be displayed every session." % status.split()[1], 
gtk.MESSAGE_INFO)
                 self.need_update = True
 
             # Scan for submit URL and challenge.
@@ -271,7 +286,7 @@
            
             self.challenge_sent = True
         elif status == "BADUSER":
-            self.quick_error("Authentication failed: invalid username 
%s or bad password." % self.username)
+            self.quick_dialog("Authentication failed: invalid username 
%s or bad password." % self.username, gtk.MESSAGE_ERROR)
                
             self.broken = True
 
@@ -289,23 +304,29 @@
         bg.setDaemon(True)
         bg.start()
 
+    def enabled(self):
+        self.__enabled = True
+
+    def disabled(self):
+        self.__enabled = False
+
     def submit_song_helper(self):
-        enabled = getattr(self, 'PMEnFlag', False)
-        if enabled and self.disabled:
+        if self.__enabled:
             print "Plugin re-enabled - accepting new songs."
-            self.disabled = False
             if self.submission_tid != -1:
                 gobject.source_remove(self.submission_tid);
                 self.submission_tid = -1
-        elif not enabled and not self.disabled: #if we've already printed
+        else:
             print "Plugin disabled - not accepting any new songs."
-            self.disabled = True
             if len(self.queue) > 0:
                 self.submission_tid = gobject.timeout_add(120 * 1000, 
self.submit_song_helper)
                 print "Attempts will continue to submit the last %d 
songs." % len(self.queue)
 
         if self.already_submitted == True or self.broken == True: return
 
+        # Scope.
+        store = {}
+       
         if self.flushing == False:
             stamp = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
    
@@ -327,14 +348,16 @@
                     store["artist"] = 
performer[:performer.rindex("(")].strip()
                 else:
                     store["artist"] = performer
-            elif "musicbrainz_trackid" in self.song:
+            if "musicbrainz_trackid" in self.song:
                 store["mbid"] = self.song["musicbrainz_trackid"]
 
             self.queue.append(store)
         else: self.flushing = False
-       
-        if self.locked == True:
-            # another instance running, let it deal with this
+
+        # Just note to stdout if either of these are true..
+        # locked means another instance if s_s_h is dealing with sending.
+        if self.offline or self.locked:
+            print to("Queuing: %s - %s" % (store["artist"], 
store["title"]))
             return
 
         self.locked = True
@@ -360,7 +383,7 @@
         }
        
         # Flush the cache
-        for i in range(len(self.queue)):
+        for i in range(min(len(self.queue), 10)):
             print to("Sending song: %s - %s" % 
(self.queue[i]['artist'], self.queue[i]['title']))
             data["a[%d]" % i] = self.queue[i]['artist'].encode('utf-8')
             data["t[%d]" % i] = self.queue[i]['title'].encode('utf-8')
@@ -400,16 +423,16 @@
             self.challenge_sent = False
             self.send_handshake()
             if self.challenge_sent == False:
-                self.quick_error("Your Audioscrobbler login data is 
incorrect, so you must re-enter it before any songs will be 
submitted.\n\nThis message will not be shown again.")
+                self.quick_dialog("Your Audioscrobbler login data is 
incorrect, so you must re-enter it before any songs will be 
submitted.\n\nThis message will not be shown again.", gtk.MESSAGE_ERROR)
                 self.broken = True
         elif status == "OK":
-            self.queue = []
+            self.queue = self.queue[10:]
         elif status.startswith("FAILED"):
             if status.startswith("FAILED Plugin bug"):
                 print "Plugin bug!? Ridiculous! Dumping queue contents."
                 for item in self.queue:
                     for key in item:
-                        print "%s = %s" % (key, item[key])
+                        print to("%s = %s" % (key, item[key]))
             # possibly handle other specific cases here for debugging later
         else:
             print "Unknown response from server: %s" % status
@@ -424,7 +447,7 @@
             gobject.timeout_add(interval_secs * 1000, self.clear_waiting)
             print "Server says to wait for %d seconds." % interval_secs
 
-        if self.disabled and len(self.queue) == 0 and 
self.submission_tid != -1:
+        if not self.__enabled and len(self.queue) == 0 and 
self.submission_tid != -1:
             print "All songs submitted, disabling retries."
             gobject.source_remove(self.submission_tid)
             self.submission_tid = -1
@@ -433,8 +456,16 @@
         self.locked = False
 
     def PluginPreferences(self, parent):
+        def toggled(widget):
+            if widget.get_active():
+                config.set("plugins", "scrobbler_offline", "true")
+                self.offline = True
+            else:
+                config.set("plugins", "scrobbler_offline", "false")
+                self.offline = False
+
         def changed(entry, key):
-            # having two functions is unnecessary..
+            # having a function for each entry is unnecessary..
             config.set("plugins", "scrobbler_" + key, entry.get_text())
 
         def destroyed(*args):
@@ -448,35 +479,55 @@
             except:
                 return
 
+            try: self.exclude = config.get("plugins", "scrobbler_exclude")
+            except: pass
+
             if self.username != newu or self.password != newp:
                 self.broken = False
 
-        table = gtk.Table(3, 2)
+        table = gtk.Table(6, 3)
         table.set_col_spacings(3)
-        lt = gtk.Label(_("Please enter your Audioscrobbler username and 
password."))
-        lt.set_size_request(260, -1)
+        lt = gtk.Label(_("Please enter your Audioscrobbler\nusername 
and password."))
         lu = gtk.Label(_("Username:"))
         lp = gtk.Label(_("Password:"))
-        for l in [lt, lu, lp]:
+        lv = gtk.Label(_("Exclude filter:"))
+        lvd = gtk.Label(_("Songs matching this filter will\nnot be sent 
to Audioscrobbler.\n"))
+        off = gtk.CheckButton(_("Offline mode (don't submit anything)"))
+        ve = ValidatingEntry(parse.Query.is_valid_color)
+        for l in [lt, lu, lp, lv, lvd]:
             l.set_line_wrap(True)
             l.set_alignment(0.0, 0.5)
-        table.attach(lt, 0, 2, 0, 1, xoptions=gtk.FILL)
-        table.attach(lu, 0, 1, 1, 2, xoptions=gtk.FILL)
-        table.attach(lp, 0, 1, 2, 3, xoptions=gtk.FILL)
+        table.attach(lt, 0, 2, 0, 1, xoptions=gtk.FILL | gtk.SHRINK)
+        table.attach(lu, 0, 1, 1, 2, xoptions=gtk.FILL | gtk.SHRINK)
+        table.attach(lp, 0, 1, 2, 3, xoptions=gtk.FILL | gtk.SHRINK)
+        table.attach(lv, 0, 1, 3, 4, xoptions=gtk.FILL | gtk.SHRINK)
+           
         userent = gtk.Entry()
         pwent = gtk.Entry()
         pwent.set_visibility(False)
         pwent.set_invisible_char('*')
         table.set_border_width(6)
+       
+        table.attach(ve, 1, 2, 3, 4, xoptions=gtk.FILL | gtk.SHRINK)
+        table.attach(lvd, 0, 2, 4, 5, xoptions=gtk.FILL | gtk.SHRINK)
+        table.attach(off, 0, 2, 5, 7, xoptions=gtk.FILL | gtk.SHRINK)
 
         try: userent.set_text(config.get("plugins", "scrobbler_username"))
         except: pass
         try: pwent.set_text(config.get("plugins", "scrobbler_password"))
         except: pass
+        try:
+            if config.get("plugins", "scrobbler_offline") == "true":
+                off.set_active(True)
+        except: pass
+        try: ve.set_text(config.get("plugins", "scrobbler_exclude"))
+        except: pass
 
-        table.attach(userent, 1, 2, 1, 2)
-        table.attach(pwent, 1, 2, 2, 3)
+        table.attach(userent, 1, 2, 1, 2, xoptions=gtk.FILL | gtk.SHRINK)
+        table.attach(pwent, 1, 2, 2, 3, xoptions=gtk.FILL | gtk.SHRINK)
         pwent.connect('changed', changed, 'password')
         userent.connect('changed', changed, 'username')
+        ve.connect('changed', changed, 'exclude')
         table.connect('destroy', destroyed)
+        off.connect('toggled', toggled)
         return table
Comment 11 bh 2006-06-15 05:41:14 UTC
FYI, 0.21.1 is released.
http://www.sacredchao.net/quodlibet/milestone?id=EF%2FQL+0.21.1

Sincerely,

-- 
Byung-Hee HWANG <bh@izb.knu.ac.kr>

"A sentence is made by choices of words."
         -- C. IULIUS CAESAR
Comment 12 Vasil Dimov freebsd_committer 2006-06-15 14:08:38 UTC
On Sun, Jun 11, 2006 at 12:53:34PM -0700, Peter Johnson wrote:
> Take two on the 0.21 patch; turns out they changed the plugins directory 
> structure in 0.21, so the qlscrobbler.py needs updating and needs to be 
> installed in a subdirectory.  Fixed patch below.
> 

Hi Peter,

I'm sorry to inform you that the patch you submitted does not apply.
One obvious reason is that it has a lot of newlines added to it and that
tabs were converted to spaces.

Could you please submit an appliable patch, preferably to 0.21.1 which
has been released in the maintime. If the gmail interface modifies the
text you paste in it you may try attaching the patch to the mail, be
sure to CC me.

Btw what do you mean by this line:

LIB_DEPENDS=

probably this is yet another copy-paste typo.

-- 
Vasil Dimov
gro.DSBeerF@dv

Testing can show the presence of bugs, but not their absence.
                -- Edsger W. Dijkstra
Comment 13 johnson.peter 2006-06-16 02:55:35 UTC
Vasil Dimov wrote:
> I'm sorry to inform you that the patch you submitted does not apply.
> One obvious reason is that it has a lot of newlines added to it and that
> tabs were converted to spaces.
>
> Could you please submit an appliable patch, preferably to 0.21.1 which
> has been released in the maintime. If the gmail interface modifies the
> text you paste in it you may try attaching the patch to the mail, be
> sure to CC me.
>
> Btw what do you mean by this line:
>
> LIB_DEPENDS=
>
> probably this is yet another copy-paste typo
Okay, attached the patch to 0.21.1 as a file (I submitted a 0.21.1 patch 
to bug-followup yesterday but it got rejected as spam for some reason).  
The reason for the LIB_DEPENDS= is that there are later conditional 
LIB_DEPENDS+= lines, and IIRC make doesn't like it if you use += without 
a corresponding =.

Peter
Comment 14 Vasil Dimov freebsd_committer 2006-06-16 14:08:40 UTC
On Thu, Jun 15, 2006 at 06:55:35PM -0700, Peter Johnson wrote:
> Okay, attached the patch to 0.21.1 as a file (I submitted a 0.21.1 patch 
> to bug-followup yesterday but it got rejected as spam for some reason).  
> The reason for the LIB_DEPENDS= is that there are later conditional 
> LIB_DEPENDS+= lines, and IIRC make doesn't like it if you use += without 
> a corresponding =.

This patch applies fine but I get this error when trying to build the
port:

...
===>  Configuring for quodlibet-0.21.1
Checking Python version: 2.4
Checking for PyGTK >= 2.8:
Traceback (most recent call last):
  File "/work/a/ports/multimedia/quodlibet/work/quodlibet-0.21.1/check.py", line 21, in ?
    import gtk
  File "/usr/local/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 45, in ?
    from _gtk import *
RuntimeError: could not open display
*** Error code 1

Any ideas how to get rid of it?

-- 
Vasil Dimov
gro.DSBeerF@dv

Testing can show the presence of bugs, but not their absence.
                -- Edsger W. Dijkstra
Comment 15 changbom.yoon 2006-06-17 09:23:30 UTC
Vasil Dimov wrote:
> On Thu, Jun 15, 2006 at 06:55:35PM -0700, Peter Johnson wrote:
>   
>> Okay, attached the patch to 0.21.1 as a file (I submitted a 0.21.1 patch 
>> to bug-followup yesterday but it got rejected as spam for some reason).  
>> The reason for the LIB_DEPENDS= is that there are later conditional 
>> LIB_DEPENDS+= lines, and IIRC make doesn't like it if you use += without 
>> a corresponding =.
>>     
>
> This patch applies fine but I get this error when trying to build the
> port:
>
> ...
> ===>  Configuring for quodlibet-0.21.1
> Checking Python version: 2.4
> Checking for PyGTK >= 2.8:
> Traceback (most recent call last):
>   File "/work/a/ports/multimedia/quodlibet/work/quodlibet-0.21.1/check.py", line 21, in ?
>     import gtk
>   File "/usr/local/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 45, in ?
>     from _gtk import *
> RuntimeError: could not open display
> *** Error code 1
>
> Any ideas how to get rid of it?
try to build QuodLibet on XTerm. It will compile.

I've been tested, too. It works good. :)
Comment 16 Vasil Dimov freebsd_committer 2006-06-17 11:41:08 UTC
On Sat, Jun 17, 2006 at 05:23:30PM +0900, ChangBom Yoon wrote:
> Vasil Dimov wrote:
[...]
> >===>  Configuring for quodlibet-0.21.1
> >Checking Python version: 2.4
> >Checking for PyGTK >= 2.8:
> >Traceback (most recent call last):
> >  File 
> >  "/work/a/ports/multimedia/quodlibet/work/quodlibet-0.21.1/check.py", 
> >  line 21, in ?
> >    import gtk
> >  File "/usr/local/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", 
> >  line 45, in ?
> >    from _gtk import *
> >RuntimeError: could not open display
> >*** Error code 1
> >
> >Any ideas how to get rid of it?
> try to build QuodLibet on XTerm. It will compile.
> 

Sure, but what about automatic package building?

-- 
Vasil Dimov
gro.DSBeerF@dv

Testing can show the presence of bugs, but not their absence.
                -- Edsger W. Dijkstra
Comment 17 bh 2006-06-18 07:11:37 UTC
Vasil Dimov wrote:
> On Sat, Jun 17, 2006 at 05:23:30PM +0900, ChangBom Yoon wrote:
>> Vasil Dimov wrote:
> [...]
>>> ===>  Configuring for quodlibet-0.21.1
>>> Checking Python version: 2.4
>>> Checking for PyGTK >= 2.8:
>>> Traceback (most recent call last):
>>>  File 
>>>  "/work/a/ports/multimedia/quodlibet/work/quodlibet-0.21.1/check.py", 
>>>  line 21, in ?
>>>    import gtk
>>>  File "/usr/local/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", 
>>>  line 45, in ?
>>>    from _gtk import *
>>> RuntimeError: could not open display
>>> *** Error code 1
>>>
>>> Any ideas how to get rid of it?
>> try to build QuodLibet on XTerm. It will compile.
>>
> 
> Sure, but what about automatic package building?
> 
Please, check out here:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/using-x11.html#AEN3157

Sincerely,

-- 
Byung-Hee HWANG <bh@izb.knu.ac.kr>

"A sentence is made by choices of words."
         -- C. IULIUS CAESAR
Comment 18 Vasil Dimov freebsd_committer 2006-06-18 10:40:13 UTC
On Sun, Jun 18, 2006 at 03:11:37PM +0900, Byung-Hee HWANG wrote:
> Vasil Dimov wrote:
[...]
> >Sure, but what about automatic package building?
> >
> Please, check out here:
> http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/using-x11.html#AEN3157
> 

Thanks for pointing this. It seems that tinderbox does not support this
technique.

I just committed a slightly modified version of the patch.
Could you take a look and see if you like it?

Thanks for your patience!

-- 
Vasil Dimov
gro.DSBeerF@dv

Testing can show the presence of bugs, but not their absence.
                -- Edsger W. Dijkstra
Comment 19 changbom.yoon 2006-06-20 02:20:09 UTC
Vasil Dimov wrote:
> On Sun, Jun 18, 2006 at 03:11:37PM +0900, Byung-Hee HWANG wrote:
>   
>> Vasil Dimov wrote:
>>     
> [...]
>   
>>> Sure, but what about automatic package building?
>>>
>>>       
>> Please, check out here:
>> http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/using-x11.html#AEN3157
>>
>>     
>
> Thanks for pointing this. It seems that tinderbox does not support this
> technique.
>
> I just committed a slightly modified version of the patch.
> Could you take a look and see if you like it?
>
> Thanks for your patience!
>   
Thanks :D
I'll check it.
nowadays, I'm busy again. I don't like busy :(
Comment 20 Vasil Dimov freebsd_committer 2006-06-21 10:01:02 UTC
State Changed
From-To: feedback->closed

Slightly modified version of the last patch submitted, thanks!