From owner-freebsd-bugs@FreeBSD.ORG Mon Nov 6 19:20:23 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2D39216A494 for ; Mon, 6 Nov 2006 19:20:23 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id AC77C43D55 for ; Mon, 6 Nov 2006 19:20:19 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id kA6JKJJr066267 for ; Mon, 6 Nov 2006 19:20:19 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id kA6JKJL2066266; Mon, 6 Nov 2006 19:20:19 GMT (envelope-from gnats) Resent-Date: Mon, 6 Nov 2006 19:20:19 GMT Resent-Message-Id: <200611061920.kA6JKJL2066266@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Max Brazhnikov Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B305E16A494 for ; Mon, 6 Nov 2006 19:19:53 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2818743D5C for ; Mon, 6 Nov 2006 19:19:49 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id kA6JJmGC001438 for ; Mon, 6 Nov 2006 19:19:48 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id kA6JJmop001436; Mon, 6 Nov 2006 19:19:48 GMT (envelope-from nobody) Message-Id: <200611061919.kA6JJmop001436@www.freebsd.org> Date: Mon, 6 Nov 2006 19:19:48 GMT From: Max Brazhnikov To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.0 Cc: Subject: misc/105220: maintainer update: audio/kid3 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Nov 2006 19:20:23 -0000 >Number: 105220 >Category: misc >Synopsis: maintainer update: audio/kid3 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Mon Nov 06 19:20:18 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Max Brazhnikov >Release: FreeBSD 6.2-PRERELEASE i386 >Organization: >Environment: FreeBSD luna.zuzino.mipt.ru 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #0: Sat Oct 28 18:43:15 MSD 2006 root@luna.zuzino.mipt.ru:/usr/obj/usr/src/sys/LUNA i386 >Description: include upstream patches: - allow building with tunepimp 0.5.x - fix inadvertent changes of ID3v2.3 genre strings - import from freedb2.org >How-To-Repeat: >Fix: Patch attached with submission follows: diff -ruN --exclude=CVS /usr/ports/audio/kid3/Makefile /home/makc/porting/ports/audio/kid3/Makefile --- /usr/ports/audio/kid3/Makefile Wed Sep 13 01:49:38 2006 +++ /home/makc/porting/ports/audio/kid3/Makefile Mon Nov 6 21:30:55 2006 @@ -7,6 +7,7 @@ PORTNAME= kid3 PORTVERSION= 0.7 +PORTREVISION= 1 CATEGORIES= audio kde MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= ${PORTNAME} @@ -18,7 +19,7 @@ FLAC.7:${PORTSDIR}/audio/flac \ ogg.5:${PORTSDIR}/audio/libogg \ vorbis.3:${PORTSDIR}/audio/libvorbis \ - tunepimp-0.4.3:${PORTSDIR}/audio/libtunepimp-old + tunepimp.5:${PORTSDIR}/audio/libtunepimp USE_KDELIBS_VER=3 USE_GMAKE= yes @@ -26,14 +27,6 @@ USE_GETTEXT= yes GNU_CONFIGURE= yes INSTALLS_ICONS= yes -CONFIGURE_ARGS+=CFLAGS=-I${LOCALBASE}/include/tunepimp-0.4 \ - LDFLAGS=-L${LOCALBASE}/lib/tunepimp-0.4 - -post-patch: - @${REINPLACE_CMD} -e 's|-ltunepimp|-ltunepimp-0.4|g' \ - -e 's|||g' \ - ${WRKSRC}/configure ${WRKSRC}/kid3/musicbrainzclient.h \ - ${WRKSRC}/admin/Makefile .include @@ -42,4 +35,3 @@ .endif .include - diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-Makefile.in /home/makc/porting/ports/audio/kid3/files/patch-Makefile.in --- /usr/ports/audio/kid3/files/patch-Makefile.in Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-Makefile.in Sat Sep 23 01:30:29 2006 @@ -0,0 +1,31 @@ +--- ./Makefile.in.orig Tue Jun 27 23:34:40 2006 ++++ ./Makefile.in Sat Sep 23 01:27:55 2006 +@@ -317,7 +317,7 @@ + #>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit Makefile.in + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) + +@@ -740,9 +740,8 @@ + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: + +- + #>+ 2 +-KDE_DIST=configure.files kid3_ru.qm build-stamp kid3_de.qm configure.in.in stamp-h.in subdirs Makefile.in kid3_de.html kid3_en.html Makefile.cvs kid3_es.qm LICENSE ++KDE_DIST=stamp-h.in subdirs Makefile.in kid3_de.html configure.files kid3_en.html kid3_ru.qm kid3_de.qm Makefile.cvs configure.in.in kid3_es.qm LICENSE + + #>+ 2 + docs-am: +@@ -751,7 +750,7 @@ + force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit Makefile.in + + + #>+ 21 diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-admin__Makefile.in /home/makc/porting/ports/audio/kid3/files/patch-admin__Makefile.in --- /usr/ports/audio/kid3/files/patch-admin__Makefile.in Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-admin__Makefile.in Sat Sep 23 01:30:29 2006 @@ -0,0 +1,31 @@ +--- ./admin/Makefile.in.orig Tue Jun 27 23:34:40 2006 ++++ ./admin/Makefile.in Sat Sep 23 01:27:55 2006 +@@ -295,7 +295,7 @@ + #>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu admin/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/admin/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit admin/Makefile.in + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +@@ -451,9 +451,8 @@ + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: + +- + #>+ 2 +-KDE_DIST=configure.in.bot.end bcheck.pl detect-autoconf.sh deps.am configure.in.min debianrules cvs.sh config.pl oldinclude.m4.in am_edit Makefile.common cvs-clean.pl Makefile.in Doxyfile.global acinclude.m4.in libtool.m4.in nmcheck Doxyfile.am conf.change.pl ++KDE_DIST=configure.in.bot.end bcheck.pl cvs-clean.pl Makefile.in detect-autoconf.sh Doxyfile.global deps.am configure.in.min acinclude.m4.in debianrules libtool.m4.in nmcheck cvs.sh config.pl Doxyfile.am oldinclude.m4.in am_edit conf.change.pl Makefile.common + + #>+ 2 + docs-am: +@@ -462,7 +461,7 @@ + force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu admin/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/admin/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit admin/Makefile.in + + + #>+ 21 diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-configure /home/makc/porting/ports/audio/kid3/files/patch-configure --- /usr/ports/audio/kid3/files/patch-configure Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-configure Sat Sep 23 01:30:29 2006 @@ -0,0 +1,261 @@ +--- ./configure.orig Tue Jun 27 22:55:03 2006 ++++ ./configure Sat Sep 23 01:27:55 2006 +@@ -31630,22 +31630,146 @@ + + fi; + if test "$with_musicbrainz" != "no"; then ++ if test "${ac_cv_header_tunepimp_0_5_tp_c_h+set}" = set; then ++ echo "$as_me:$LINENO: checking for tunepimp-0.5/tp_c.h" >&5 ++echo $ECHO_N "checking for tunepimp-0.5/tp_c.h... $ECHO_C" >&6 ++if test "${ac_cv_header_tunepimp_0_5_tp_c_h+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++fi ++echo "$as_me:$LINENO: result: $ac_cv_header_tunepimp_0_5_tp_c_h" >&5 ++echo "${ECHO_T}$ac_cv_header_tunepimp_0_5_tp_c_h" >&6 ++else ++ # Is the header compilable? ++echo "$as_me:$LINENO: checking tunepimp-0.5/tp_c.h usability" >&5 ++echo $ECHO_N "checking tunepimp-0.5/tp_c.h usability... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++#include ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_header_compiler=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + ++ac_header_compiler=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++echo "${ECHO_T}$ac_header_compiler" >&6 + ++# Is the header present? ++echo "$as_me:$LINENO: checking tunepimp-0.5/tp_c.h presence" >&5 ++echo $ECHO_N "checking tunepimp-0.5/tp_c.h presence... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ ac_header_preproc=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + ++ ac_header_preproc=no ++fi ++rm -f conftest.err conftest.$ac_ext ++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++echo "${ECHO_T}$ac_header_preproc" >&6 + +- kde_safe_cppflags=$CPPFLAGS +- CPPFLAGS="$CPPFLAGS $all_includes" +- ac_ext=cc +-ac_cpp='$CXXCPP $CPPFLAGS' +-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +- +-ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +- ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { echo "$as_me:$LINENO: WARNING: tunepimp-0.5/tp_c.h: accepted by the compiler, rejected by the preprocessor!" >&5 ++echo "$as_me: WARNING: tunepimp-0.5/tp_c.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { echo "$as_me:$LINENO: WARNING: tunepimp-0.5/tp_c.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: tunepimp-0.5/tp_c.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { echo "$as_me:$LINENO: WARNING: tunepimp-0.5/tp_c.h: present but cannot be compiled" >&5 ++echo "$as_me: WARNING: tunepimp-0.5/tp_c.h: present but cannot be compiled" >&2;} ++ { echo "$as_me:$LINENO: WARNING: tunepimp-0.5/tp_c.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: tunepimp-0.5/tp_c.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: tunepimp-0.5/tp_c.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: tunepimp-0.5/tp_c.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: tunepimp-0.5/tp_c.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: tunepimp-0.5/tp_c.h: section \"Present But Cannot Be Compiled\"" >&2;} ++ { echo "$as_me:$LINENO: WARNING: tunepimp-0.5/tp_c.h: proceeding with the preprocessor's result" >&5 ++echo "$as_me: WARNING: tunepimp-0.5/tp_c.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: tunepimp-0.5/tp_c.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: tunepimp-0.5/tp_c.h: in the future, the compiler will take precedence" >&2;} ++ ( ++ cat <<\_ASBOX ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## ++_ASBOX ++ ) | ++ sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++echo "$as_me:$LINENO: checking for tunepimp-0.5/tp_c.h" >&5 ++echo $ECHO_N "checking for tunepimp-0.5/tp_c.h... $ECHO_C" >&6 ++if test "${ac_cv_header_tunepimp_0_5_tp_c_h+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_cv_header_tunepimp_0_5_tp_c_h=$ac_header_preproc ++fi ++echo "$as_me:$LINENO: result: $ac_cv_header_tunepimp_0_5_tp_c_h" >&5 ++echo "${ECHO_T}$ac_cv_header_tunepimp_0_5_tp_c_h" >&6 + +- if test "${ac_cv_header_tunepimp_tp_c_h+set}" = set; then ++fi ++if test $ac_cv_header_tunepimp_0_5_tp_c_h = yes; then ++ build_musicbrainz="yes" ++else ++ if test "${ac_cv_header_tunepimp_tp_c_h+set}" = set; then + echo "$as_me:$LINENO: checking for tunepimp/tp_c.h" >&5 + echo $ECHO_N "checking for tunepimp/tp_c.h... $ECHO_C" >&6 + if test "${ac_cv_header_tunepimp_tp_c_h+set}" = set; then +@@ -31675,7 +31799,7 @@ + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31718,8 +31842,8 @@ + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then +- ac_cpp_err=$ac_cxx_preproc_warn_flag +- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -31739,7 +31863,7 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: tunepimp/tp_c.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: tunepimp/tp_c.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +@@ -31788,19 +31912,14 @@ + fi + + +- CPPFLAGS=$kde_safe_cppflags +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu ++fi + + + fi + if test "$build_musicbrainz" = "yes"; then +- echo "$as_me:$LINENO: checking for tp_SetPUIDCollisionThreshold in -ltunepimp" >&5 +-echo $ECHO_N "checking for tp_SetPUIDCollisionThreshold in -ltunepimp... $ECHO_C" >&6 +-if test "${ac_cv_lib_tunepimp_tp_SetPUIDCollisionThreshold+set}" = set; then ++ echo "$as_me:$LINENO: checking for tr_GetPUID in -ltunepimp" >&5 ++echo $ECHO_N "checking for tr_GetPUID in -ltunepimp... $ECHO_C" >&6 ++if test "${ac_cv_lib_tunepimp_tr_GetPUID+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -31818,11 +31937,11 @@ + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char tp_SetPUIDCollisionThreshold (); ++char tr_GetPUID (); + int + main () + { +-tp_SetPUIDCollisionThreshold (); ++tr_GetPUID (); + ; + return 0; + } +@@ -31848,20 +31967,20 @@ + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_lib_tunepimp_tp_SetPUIDCollisionThreshold=yes ++ ac_cv_lib_tunepimp_tr_GetPUID=yes + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + +-ac_cv_lib_tunepimp_tp_SetPUIDCollisionThreshold=no ++ac_cv_lib_tunepimp_tr_GetPUID=no + fi + rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-echo "$as_me:$LINENO: result: $ac_cv_lib_tunepimp_tp_SetPUIDCollisionThreshold" >&5 +-echo "${ECHO_T}$ac_cv_lib_tunepimp_tp_SetPUIDCollisionThreshold" >&6 +-if test $ac_cv_lib_tunepimp_tp_SetPUIDCollisionThreshold = yes; then ++echo "$as_me:$LINENO: result: $ac_cv_lib_tunepimp_tr_GetPUID" >&5 ++echo "${ECHO_T}$ac_cv_lib_tunepimp_tr_GetPUID" >&6 ++if test $ac_cv_lib_tunepimp_tr_GetPUID = yes; then + + cat >>confdefs.h <<\_ACEOF + #define HAVE_TUNEPIMP 5 +@@ -31977,6 +32096,7 @@ + + fi; + if test "$with_vorbis" != "no"; then ++ + + + diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-doc__Makefile.in /home/makc/porting/ports/audio/kid3/files/patch-doc__Makefile.in --- /usr/ports/audio/kid3/files/patch-doc__Makefile.in Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-doc__Makefile.in Sat Sep 23 01:30:28 2006 @@ -0,0 +1,28 @@ +--- ./doc/Makefile.in.orig Tue Jun 27 23:34:40 2006 ++++ ./doc/Makefile.in Sat Sep 23 01:27:55 2006 +@@ -307,7 +307,7 @@ + #>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/doc/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit doc/Makefile.in + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +@@ -593,7 +593,6 @@ + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: + +- + #>+ 2 + KDE_DIST=Makefile.in + +@@ -604,7 +603,7 @@ + force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/doc/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit doc/Makefile.in + + + #>+ 21 diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-doc__de__Makefile.in /home/makc/porting/ports/audio/kid3/files/patch-doc__de__Makefile.in --- /usr/ports/audio/kid3/files/patch-doc__de__Makefile.in Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-doc__de__Makefile.in Sat Sep 23 01:30:28 2006 @@ -0,0 +1,28 @@ +--- ./doc/de/Makefile.in.orig Tue Jun 27 23:34:40 2006 ++++ ./doc/de/Makefile.in Sat Sep 23 01:27:55 2006 +@@ -296,7 +296,7 @@ + #>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/de/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/doc/de/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit doc/de/Makefile.in + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +@@ -446,7 +446,6 @@ + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: + +- + #>+ 2 + KDE_DIST=Makefile.in + +@@ -499,7 +498,7 @@ + force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/de/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/doc/de/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit doc/de/Makefile.in + + + #>+ 21 diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-doc__en__Makefile.in /home/makc/porting/ports/audio/kid3/files/patch-doc__en__Makefile.in --- /usr/ports/audio/kid3/files/patch-doc__en__Makefile.in Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-doc__en__Makefile.in Sat Sep 23 01:30:28 2006 @@ -0,0 +1,28 @@ +--- ./doc/en/Makefile.in.orig Tue Jun 27 23:34:40 2006 ++++ ./doc/en/Makefile.in Sat Sep 23 01:27:55 2006 +@@ -296,7 +296,7 @@ + #>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/en/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/doc/en/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit doc/en/Makefile.in + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +@@ -446,7 +446,6 @@ + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: + +- + #>+ 2 + KDE_DIST=Makefile.in + +@@ -499,7 +498,7 @@ + force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/en/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/doc/en/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit doc/en/Makefile.in + + + #>+ 21 diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3-oggfile.cpp /home/makc/porting/ports/audio/kid3/files/patch-kid3-oggfile.cpp --- /usr/ports/audio/kid3/files/patch-kid3-oggfile.cpp Mon Aug 7 13:06:48 2006 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3-oggfile.cpp Thu Jan 1 03:00:00 1970 @@ -1,11 +0,0 @@ ---- kid3/oggfile.cpp.orig Sat Jan 28 02:15:27 2006 -+++ kid3/oggfile.cpp Mon Aug 7 16:13:25 2006 -@@ -143,7 +143,7 @@ - bool setUtime = false; - struct utimbuf times; - if (preserve) { -- int fd = ::fileno(fpIn); -+ int fd = fileno(fpIn); - if (fd >= 0) { - struct stat fileStat; - if (::fstat(fd, &fileStat) == 0) { diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__Makefile.in /home/makc/porting/ports/audio/kid3/files/patch-kid3__Makefile.in --- /usr/ports/audio/kid3/files/patch-kid3__Makefile.in Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__Makefile.in Sat Sep 23 01:30:28 2006 @@ -0,0 +1,28 @@ +--- ./kid3/Makefile.in.orig Tue Jun 27 23:34:40 2006 ++++ ./kid3/Makefile.in Sat Sep 23 01:27:55 2006 +@@ -491,7 +491,7 @@ + #>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu kid3/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/kid3/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit kid3/Makefile.in + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +@@ -910,7 +910,6 @@ + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: + +- + #>+ 3 + importdialog.moc.cpp: $(srcdir)/importdialog.h + $(MOC) $(srcdir)/importdialog.h -o importdialog.moc.cpp +@@ -1023,7 +1022,7 @@ + force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu kid3/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/kid3/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit kid3/Makefile.in + + + #>+ 21 diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__freedbclient.cpp /home/makc/porting/ports/audio/kid3/files/patch-kid3__freedbclient.cpp --- /usr/ports/audio/kid3/files/patch-kid3__freedbclient.cpp Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__freedbclient.cpp Mon Nov 6 21:26:13 2006 @@ -0,0 +1,101 @@ ++++ ./kid3/freedbclient.cpp 2006-05-28 15:05:28.000000000 +0200 ++++ ./kid3/freedbclient.cpp 2006-10-07 21:32:21.000000000 +0200 +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include "freedbconfig.h" + #include "freedbclient.h" + +@@ -34,7 +35,8 @@ + * + * @param sb status bar to display progress information. + */ +-FreedbClient::FreedbClient(QStatusBar *sb) : statusBar(sb) ++FreedbClient::FreedbClient(QStatusBar *sb) : ++ statusBar(sb), m_requestType(RT_None) + { + sock = new QSocket(); + connect(sock, SIGNAL(hostFound()), +@@ -158,7 +160,39 @@ + } + #endif + sock->connectToHost(dest, destPort); +- isAlbumRequest = false; ++ m_requestType = RT_FindFreedbSearch; ++ ++ statusBar->message(i18n("Connecting...")); ++} ++ ++/** ++ * Find keyword in freedb with "cddb album" command of freedb2.org. ++ * ++ * @param cfg freedb configuration ++ * @param what string with words to search ++ */ ++void FreedbClient::findCddbAlbum(const FreedbConfig *cfg, QString what) ++{ ++ QString destNamePort(getProxyOrDest(cfg, cfg->server)); ++ QString dest; ++ int destPort; ++ splitNamePort(destNamePort, dest, destPort); ++ what.replace(QRegExp(" +"), " "); // collapse spaces ++ QUrl::encode(what); ++ what.replace("%20", "+"); // replace spaces by '+' ++ request = "GET http://" + cfg->server + cfg->cgiPath + ++ "?cmd=cddb+album+" + what + "&hello=noname+localhost+" + ++ "Kid3+" VERSION "&proto=1 HTTP/1.1\r\nHost: " + cfg->server + ++ "\r\nConnection: close\r\n\r\n"; ++#if defined WIN32 && QT_VERSION < 300 ++ int err = hostnameToAddress(dest); ++ if (err) { ++ statusBar->message(QString("WinSock error %1").arg(err)); ++ return; ++ } ++#endif ++ sock->connectToHost(dest, destPort); ++ m_requestType = RT_FindCddbAlbum; + + statusBar->message(i18n("Connecting...")); + } +@@ -186,14 +220,23 @@ + */ + void FreedbClient::slotConnectionClosed() + { +- rcvStr = ""; +- while (sock->canReadLine()) { +- rcvStr += sock->readLine(); +- } +- if (isAlbumRequest) { +- emit albumFinished(rcvStr); +- } else { +- emit findFinished(rcvStr); ++ Q_ULONG len = sock->bytesAvailable(); ++ QCString s; ++ s.resize(len + 1); ++ sock->readBlock(s.data(), len); ++ rcvStr = QString::fromUtf8(s.data()); ++ switch (m_requestType) { ++ case RT_Album: ++ emit albumFinished(rcvStr); ++ break; ++ case RT_FindFreedbSearch: ++ emit findFinished(rcvStr); ++ break; ++ case RT_FindCddbAlbum: ++ emit findCddbAlbumFinished(rcvStr); ++ break; ++ default: ++ qWarning("Unknown freedb request type"); + } + sock->close(); + statusBar->message(i18n("Ready.")); +@@ -256,6 +299,6 @@ + } + #endif + sock->connectToHost(dest, destPort); +- isAlbumRequest = true; ++ m_requestType = RT_Album; + statusBar->message(i18n("Connecting...")); + } diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__freedbclient.h /home/makc/porting/ports/audio/kid3/files/patch-kid3__freedbclient.h --- /usr/ports/audio/kid3/files/patch-kid3__freedbclient.h Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__freedbclient.h Mon Nov 6 21:26:19 2006 @@ -0,0 +1,44 @@ ++++ ./kid3/freedbclient.h 2006-01-05 19:15:21.000000000 +0100 ++++ ./kid3/freedbclient.h 2006-10-07 16:06:53.000000000 +0200 +@@ -44,6 +44,13 @@ + */ + void find(const FreedbConfig *cfg, QString what); + /** ++ * Find keyword in freedb with "cddb album" command of freedb2.org. ++ * ++ * @param cfg freedb configuration ++ * @param what string with words to search ++ */ ++ void findCddbAlbum(const FreedbConfig *cfg, QString what); ++ /** + * Request track list from freedb server. + * + * @param cfg freedb configuration +@@ -92,6 +99,11 @@ + */ + void findFinished(QString); + /** ++ * Emitted when findCddbAlbum request finished. ++ * Parameter: text containing result of findCddbAlbum request ++ */ ++ void findCddbAlbumFinished(QString); ++ /** + * Emitted when album track data request finished. + * Parameter: text containing result of album request + */ +@@ -105,8 +117,13 @@ + QString request; + /** buffer for received data */ + QString rcvStr; +- /** true if last request was album track data request */ +- bool isAlbumRequest; ++ /** type of current request */ ++ enum RequestType { ++ RT_None, ++ RT_FindFreedbSearch, ++ RT_FindCddbAlbum, ++ RT_Album ++ } m_requestType; + }; + + #endif diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__freedbdialog.cpp /home/makc/porting/ports/audio/kid3/files/patch-kid3__freedbdialog.cpp --- /usr/ports/audio/kid3/files/patch-kid3__freedbdialog.cpp Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__freedbdialog.cpp Mon Nov 6 21:26:23 2006 @@ -0,0 +1,96 @@ ++++ ./kid3/freedbdialog.cpp 2006-02-23 22:48:14.000000000 +0100 ++++ ./kid3/freedbdialog.cpp 2006-10-07 21:31:43.000000000 +0200 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include "freedbconfig.h" + #include "freedbclient.h" + #include "freedbdialog.h" +@@ -109,6 +110,7 @@ + if (serverLayout && serverLabel && serverComboBox && + cgiLabel && cgiLineEdit) { + static const char *serverList[] = { ++ "freedb2.org:80", + "freedb.freedb.org:80", + "at.freedb.org:80", + "au.freedb.org:80", +@@ -155,6 +157,8 @@ + client = new FreedbClient(statusBar); + connect(client, SIGNAL(findFinished(QString)), + this, SLOT(slotFindFinished(QString))); ++ connect(client, SIGNAL(findCddbAlbumFinished(QString)), ++ this, SLOT(slotFindCddbAlbumFinished(QString))); + connect(client, SIGNAL(albumFinished(QString)), + this, SLOT(slotAlbumFinished(QString))); + } +@@ -315,7 +319,8 @@ + { + FreedbConfig cfg; + getFreedbConfig(&cfg); +- client->find(&cfg, findLineEdit->currentText()); ++// client->find(&cfg, findLineEdit->currentText()); ++ client->findCddbAlbum(&cfg, findLineEdit->currentText()); + } + + /** +@@ -364,6 +369,58 @@ + } + + /** ++ * Process finished findCddbAlbum request. ++ * ++ * @param searchStr search data received ++ */ ++void FreedbDialog::slotFindCddbAlbumFinished(QString searchStr) ++{ ++/* ++210 exact matches found ++categ discid dtitle ++(more matches...) ++. ++or ++211 close matches found ++rock 920b810c Catharsis / Imago ++. ++theoretically, but never seen ++200 categ discid dtitle ++*/ ++ QRegExp catIdTitleRe("([a-z]+)\\s+([0-9a-f]+)\\s+([^/]+ / .+)"); ++ QStringList lines = QStringList::split(QRegExp("[\\r\\n]+"), searchStr); ++ bool inEntries = false; ++ albumListBox->clear(); ++ for (QStringList::const_iterator it = lines.begin(); it != lines.end(); ++it) { ++ if (*it == ".") { ++ break; ++ } ++ if (inEntries) { ++ if (catIdTitleRe.exactMatch(*it)) { ++ new AlbumListItem( ++ albumListBox, ++ catIdTitleRe.cap(3), ++ catIdTitleRe.cap(1), ++ catIdTitleRe.cap(2)); ++ } ++ } else { ++ if ((*it).startsWith("21") && (*it).find(" match") != -1) { ++ inEntries = true; ++ } else if ((*it).startsWith("200 ")) { ++ if (catIdTitleRe.exactMatch((*it).mid(4))) { ++ new AlbumListItem( ++ albumListBox, ++ catIdTitleRe.cap(3), ++ catIdTitleRe.cap(1), ++ catIdTitleRe.cap(2)); ++ } ++ } ++ } ++ } ++ albumListBox->setFocus(); ++} ++ ++/** + * Process finished album data. + * + * @param albumStr album track data received diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__freedbdialog.h /home/makc/porting/ports/audio/kid3/files/patch-kid3__freedbdialog.h --- /usr/ports/audio/kid3/files/patch-kid3__freedbdialog.h Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__freedbdialog.h Mon Nov 6 21:26:28 2006 @@ -0,0 +1,15 @@ ++++ ./kid3/freedbdialog.h 2006-02-23 22:39:28.000000000 +0100 ++++ ./kid3/freedbdialog.h 2006-10-07 17:19:08.000000000 +0200 +@@ -117,6 +117,12 @@ + */ + void slotFindFinished(QString searchStr); + /** ++ * Process finished findCddbAlbum request. ++ * ++ * @param searchStr search data received ++ */ ++ void slotFindCddbAlbumFinished(QString searchStr); ++ /** + * Process finished album data. + * + * @param albumStr album track data received diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__genres.cpp /home/makc/porting/ports/audio/kid3/files/patch-kid3__genres.cpp --- /usr/ports/audio/kid3/files/patch-kid3__genres.cpp Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__genres.cpp Sat Sep 23 01:30:28 2006 @@ -0,0 +1,11 @@ +--- ./kid3/genres.cpp.orig Thu May 25 19:58:19 2006 ++++ ./kid3/genres.cpp Sat Sep 23 01:28:25 2006 +@@ -385,7 +385,7 @@ + * @return genre number, 255 for unknown index. + */ + +-int Genres::getNumber(QString &str) ++int Genres::getNumber(const QString &str) + { + for (int i = 0; i < Genres::count + 1; i++) { + if (QString(genre[i]) == str) { diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__genres.h /home/makc/porting/ports/audio/kid3/files/patch-kid3__genres.h --- /usr/ports/audio/kid3/files/patch-kid3__genres.h Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__genres.h Sat Sep 23 01:30:28 2006 @@ -0,0 +1,11 @@ +--- ./kid3/genres.h.orig Thu Jan 5 21:15:20 2006 ++++ ./kid3/genres.h Sat Sep 23 01:28:25 2006 +@@ -46,7 +46,7 @@ + * + * @return genre number, 255 for unknown index. + */ +- static int getNumber(QString &str); ++ static int getNumber(const QString &str); + /** Number of genres */ + #if defined _WIN32 || defined WIN32 + enum { count = 148 }; diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__id3form.cpp /home/makc/porting/ports/audio/kid3/files/patch-kid3__id3form.cpp --- /usr/ports/audio/kid3/files/patch-kid3__id3form.cpp Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__id3form.cpp Sat Sep 23 01:30:28 2006 @@ -0,0 +1,11 @@ +--- ./kid3/id3form.cpp.orig Sat Jun 17 14:46:00 2006 ++++ ./kid3/id3form.cpp Sat Sep 23 01:28:25 2006 +@@ -588,7 +588,7 @@ + st->track = trackV2CheckBox->isChecked() ? trackV2SpinBox->value() + : -1; + st->genre = genreV2CheckBox->isChecked() ? +- Genres::getNumber(genreV2ComboBox->currentItem()) : -1; ++ Genres::getNumber(genreV2ComboBox->currentText()) : -1; + st->genreStr = st->genre == 0xff ? genreV2ComboBox->currentText() + : QString::null; + } diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__mp3file.cpp /home/makc/porting/ports/audio/kid3/files/patch-kid3__mp3file.cpp --- /usr/ports/audio/kid3/files/patch-kid3__mp3file.cpp Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__mp3file.cpp Sat Sep 23 01:30:29 2006 @@ -0,0 +1,14 @@ +--- ./kid3/mp3file.cpp.orig Thu Jan 5 21:15:21 2006 ++++ ./kid3/mp3file.cpp Sat Sep 23 01:28:25 2006 +@@ -365,6 +365,11 @@ + if (!ok || n > 0xff) { + n = 0xff; + } ++ } else { ++ // ID3v2 genres can be stored as "(9)", "(9)Metal" or "Metal". ++ // If the string does not start with '(', try to get the genre number ++ // from a string containing a genre text. ++ n = Genres::getNumber(str); + } + return n; + } diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__musicbrainzclient.cpp /home/makc/porting/ports/audio/kid3/files/patch-kid3__musicbrainzclient.cpp --- /usr/ports/audio/kid3/files/patch-kid3__musicbrainzclient.cpp Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__musicbrainzclient.cpp Sat Sep 23 01:30:28 2006 @@ -0,0 +1,356 @@ +--- ./kid3/musicbrainzclient.cpp.orig Tue Jun 6 00:18:36 2006 ++++ ./kid3/musicbrainzclient.cpp Sat Sep 23 01:27:55 2006 +@@ -17,10 +17,161 @@ + #define I18N_NOOP(s) QT_TR_NOOP(s) + #endif + #include ++#if HAVE_TUNEPIMP >= 5 ++#include ++#include ++#endif + #include "musicbrainzconfig.h" + #include "freedbclient.h" + #include "importtrackdata.h" + ++#if HAVE_TUNEPIMP >= 5 ++/** ++ * Constructor. ++ * ++ * @param numFiles number of files to be queried ++ * @param serverName server name ++ * @param serverPort server port ++ * @param proxyName proxy name, empty if no proxy ++ * @param proxyPort proxy port ++ */ ++LookupQuery::LookupQuery(int numFiles, ++ const QString& serverName, Q_UINT16 serverPort, ++ const QString& proxyName, Q_UINT16 proxyPort) : ++ m_numFiles(numFiles), m_serverName(serverName), m_serverPort(serverPort), ++ m_proxyName(proxyName), m_proxyPort(proxyPort), ++ m_currentFile(-1), m_fileQueries(new FileQuery[numFiles]), ++ m_sock(new QSocket) ++{ ++ for (int i = 0; i < m_numFiles; ++i) { ++ m_fileQueries[i].requested = false; ++ m_fileQueries[i].puid = ""; ++ } ++ connect(m_sock, SIGNAL(connected()), ++ this, SLOT(socketConnected())); ++ connect(m_sock, SIGNAL(error(int)), ++ this, SLOT(socketError())); ++ connect(m_sock, SIGNAL(connectionClosed()), ++ this, SLOT(socketConnectionClosed())); ++} ++ ++/** ++ * Destructor. ++ */ ++LookupQuery::~LookupQuery() ++{ ++ m_sock->close(); ++ m_sock->disconnect(); ++ delete m_sock; ++ delete [] m_fileQueries; ++} ++ ++/** ++ * Connect to server to query information about the current file. ++ */ ++void LookupQuery::socketQuery() ++{ ++ if (m_currentFile >= 0 && m_currentFile < m_numFiles) { ++ QString destName = m_proxyName.isEmpty() ? m_serverName : m_proxyName; ++ Q_UINT16 destPort = m_proxyName.isEmpty() ? m_serverPort : m_proxyPort; ++ m_request = "GET http://"; ++ m_request += m_serverName; ++ if (m_serverPort != 80) { ++ m_request += ':'; ++ m_request += QString::number(m_serverPort); ++ } ++ m_request += "/ws/1/track/?type=xml&puid="; ++ m_request += m_fileQueries[m_currentFile].puid; ++ m_request += " HTTP/1.0\r\nHost: "; ++ m_request += m_serverName; ++ m_request += "\r\nUser-agent: Kid3/" VERSION "\r\n\r\n"; ++ m_sock->connectToHost(destName, destPort); ++ m_fileQueries[m_currentFile].requested = true; ++ } ++} ++ ++/** ++ * Query the next file. ++ */ ++void LookupQuery::queryNext() ++{ ++ // handle the first pending query ++ for (int i = 0; i < m_numFiles; ++i) { ++ if (!m_fileQueries[i].requested && ++ !m_fileQueries[i].puid.isEmpty()) { ++ m_currentFile = i; ++ socketQuery(); ++ return; ++ } ++ } ++ // no pending query => socketQuery() will be done in next query() ++ m_currentFile = -1; ++} ++ ++/** ++ * Query a PUID from the server. ++ * ++ * @param puid PUID ++ * @param index index of file ++ */ ++void LookupQuery::query(const char* puid, int index) ++{ ++ m_fileQueries[index].puid = QString(puid); ++ // if no request is being executed, start the current request ++ if (m_currentFile < 0 || m_currentFile >= m_numFiles || ++ !m_fileQueries[m_currentFile].requested) { ++ m_currentFile = index; ++ socketQuery(); ++ } ++} ++ ++/** ++ * Send query when the socket is connected. ++ */ ++void LookupQuery::socketConnected() ++{ ++ m_sock->writeBlock(m_request.latin1(), m_request.length()); ++} ++ ++/** ++ * Error on socket connection. ++ */ ++void LookupQuery::socketError() ++{ ++ queryNext(); ++} ++ ++/** ++ * Read received data when the server has closed the connection. ++ */ ++void LookupQuery::socketConnectionClosed() ++{ ++ Q_ULONG len = m_sock->bytesAvailable(); ++ QCString buf; ++ buf.resize(len + 1 ); ++ m_sock->readBlock(buf.data(), len); ++ m_sock->close(); ++ ++ int xmlStart = buf.find("= 0 && ++ m_currentFile >= 0 && m_currentFile < m_numFiles && ++ m_fileQueries[m_currentFile].requested) { ++ emit queryResponseReceived(m_currentFile, buf.mid(xmlStart, len - xmlStart)); ++ } ++ queryNext(); ++} ++ ++#else ++ ++LookupQuery::LookupQuery(int, const QString&, Q_UINT16, const QString&, Q_UINT16) {} ++LookupQuery::~LookupQuery() {} ++void LookupQuery::socketConnected() {} ++void LookupQuery::socketError() {} ++void LookupQuery::socketConnectionClosed() {} ++ ++#endif ++ ++ + /** + * Constructor. + * +@@ -29,6 +180,9 @@ + */ + MusicBrainzClient::MusicBrainzClient(ImportTrackDataVector& trackDataList) : + m_trackDataVector(trackDataList), m_tp(0), m_ids(0), m_numFiles(0) ++#if HAVE_TUNEPIMP >= 5 ++ , m_lookupQuery(0) ++#endif + { + m_tp = tp_New("kid3", VERSION); + #ifdef WIN32 +@@ -39,7 +193,11 @@ + #else + tp_SetUseUTF8(m_tp, 1); + #endif ++#if HAVE_TUNEPIMP >= 5 ++ tp_SetMusicDNSClientId(m_tp, "a95f5c7cd37fd4bce12dc86d196fb4fe"); ++#else + tp_SetAutoFileLookup(m_tp, 1); ++#endif + tp_SetRenameFiles(m_tp, 0); + tp_SetMoveFiles(m_tp, 0); + tp_SetWriteID3v1(m_tp, 0); +@@ -110,8 +268,13 @@ + { eUnrecognized, I18N_NOOP("Unrecognized") }, + { eRecognized, I18N_NOOP("Recognized") }, + { ePending, I18N_NOOP("Pending") }, ++#if HAVE_TUNEPIMP >= 5 ++ { ePUIDLookup, I18N_NOOP("PUID Lookup") }, ++ { ePUIDCollision, I18N_NOOP("PUID Collision") }, ++#else + { eTRMLookup, I18N_NOOP("TRM Lookup") }, + { eTRMCollision, I18N_NOOP("TRM Collision") }, ++#endif + { eFileLookup, I18N_NOOP("File Lookup") }, + { eUserSelection, I18N_NOOP("User Selection") }, + { eVerified, I18N_NOOP("Verified") }, +@@ -163,7 +326,11 @@ + track_t track = tp_GetTrack(m_tp, id); + if (track) { + tr_Lock(track); ++#if HAVE_TUNEPIMP >= 5 ++ tr_GetPUID(track, trm, sizeof(trm)); ++#else + tr_GetTRM(track, trm, sizeof(trm)); ++#endif + if (trm[0] == '\0') { + tr_SetStatus(track, ePending); + tp_Wake(m_tp, track); +@@ -189,13 +356,33 @@ + ImportTrackData trackData; + getMetaData(id, trackData); + emit metaDataReceived(index, trackData); +- } else if (statusCode == eTRMCollision || +- statusCode == eUserSelection) { ++ } ++#if HAVE_TUNEPIMP >= 5 ++ else if (statusCode == ePUIDLookup || ++ statusCode == ePUIDCollision || ++ statusCode == eFileLookup) { ++ char puid[255]; ++ puid[0] = '\0'; ++ track_t track = tp_GetTrack(m_tp, id); ++ if (track) { ++ tr_Lock(track); ++ tr_GetPUID(track, puid, sizeof(puid)); ++ tr_Unlock(track); ++ tp_ReleaseTrack(m_tp, track); ++ } ++ if (m_lookupQuery) { ++ m_lookupQuery->query(puid, index); ++ } ++ } ++#else ++ else if (statusCode == eTRMCollision || ++ statusCode == eUserSelection) { + ImportTrackDataVector trackDataList; + if (getResults(id, trackDataList)) { + emit resultsReceived(index, trackDataList); + } + } ++#endif + } + break; + } +@@ -242,6 +429,16 @@ + m_numFiles = m_trackDataVector.count(); + #endif + m_ids = new int[m_numFiles]; ++#if HAVE_TUNEPIMP >= 5 ++ char serverName[80], proxyName[80]; ++ short serverPort, proxyPort; ++ tp_GetServer(m_tp, serverName, sizeof(serverName) - 1, &serverPort); ++ tp_GetProxy(m_tp, proxyName, sizeof(proxyName) - 1, &proxyPort); ++ m_lookupQuery = new LookupQuery(m_numFiles, serverName, serverPort, ++ proxyName, proxyPort); ++ connect(m_lookupQuery, SIGNAL(queryResponseReceived(int, const QCString&)), ++ this, SLOT(parseLookupResponse(int, const QCString&))); ++#endif + int i = 0; + for ( + #if QT_VERSION >= 300 +@@ -271,6 +468,10 @@ + } + delete [] m_ids; + m_ids = 0; ++#if HAVE_TUNEPIMP >= 5 ++ delete m_lookupQuery; ++ m_lookupQuery = 0; ++#endif + m_numFiles = 0; + } + } +@@ -308,6 +509,68 @@ + } + } + ++#if HAVE_TUNEPIMP >= 5 ++ ++bool MusicBrainzClient::getResults(int, ImportTrackDataVector&) { ++ return false; ++} ++ ++/** ++ * Process server response with lookup data. ++ * ++ * @param index index of file ++ * @param response response from server ++ */ ++void MusicBrainzClient::parseLookupResponse(int index, const QCString& response) ++{ ++ ImportTrackDataVector trackDataList; ++ QDomDocument doc; ++ if (doc.setContent(response)) { ++ QDomElement trackList = ++ doc.namedItem("metadata").toElement().namedItem("track-list").toElement(); ++ ++ for (QDomNode trackNode = trackList.namedItem("track"); ++ !trackNode.isNull(); ++ trackNode = trackNode.nextSibling()) { ++ QDomElement track = trackNode.toElement(); ++ ++ ImportTrackData trackData; ++ trackData.artist = ++ track.namedItem("artist").toElement().namedItem("name").toElement().text(); ++ trackData.title = track.namedItem("title").toElement().text(); ++ ++ for (QDomNode releaseNode = ++ track.namedItem("release-list").toElement().namedItem("release"); ++ !releaseNode.isNull(); ++ releaseNode = releaseNode.nextSibling() ) { ++ QDomElement release = releaseNode.toElement(); ++ ++ trackData.album = release.namedItem("title").toElement().text(); ++ trackData.track = -1; ++ QDomNode releaseTrackNode = release.namedItem("track-list"); ++ if (!releaseTrackNode.isNull()) { ++ QDomElement releaseTrack = releaseTrackNode.toElement(); ++ if (!releaseTrack.attribute("offset").isEmpty()) ++ trackData.track = releaseTrack.attribute("offset").toInt() + 1; ++ } ++ } ++ trackDataList.append(trackData); ++ } ++ } ++ ++ if (trackDataList.size() > 1) { ++ emit resultsReceived(index, trackDataList); ++ emit statusChanged(index, i18n("User Selection")); ++ } else if (trackDataList.size() == 1) { ++ emit metaDataReceived(index, *trackDataList.begin()); ++ emit statusChanged(index, i18n("Recognized")); ++ } else { ++ emit statusChanged(index, i18n("Unrecognized")); ++ } ++} ++ ++#else ++ + /** + * Get results for an ambiguous file. + * +@@ -387,6 +650,10 @@ + } + return resultsAvailable; + } ++ ++void MusicBrainzClient::parseLookupResponse(int, const QCString&) {} ++ ++#endif + + #else // HAVE_TUNEPIMP + diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__musicbrainzclient.h /home/makc/porting/ports/audio/kid3/files/patch-kid3__musicbrainzclient.h --- /usr/ports/audio/kid3/files/patch-kid3__musicbrainzclient.h Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__musicbrainzclient.h Sat Sep 23 01:30:28 2006 @@ -0,0 +1,146 @@ +--- ./kid3/musicbrainzclient.h.orig Thu Feb 23 22:48:34 2006 ++++ ./kid3/musicbrainzclient.h Sat Sep 23 01:27:55 2006 +@@ -15,7 +15,13 @@ + #include + + #ifdef HAVE_TUNEPIMP ++#if HAVE_TUNEPIMP >= 5 ++#include ++#include ++class QSocket; ++#else + #include ++#endif + #endif // HAVE_TUNEPIMP + + class MusicBrainzConfig; +@@ -23,6 +29,103 @@ + class ImportTrackDataVector; + + /** ++ * A HTTP query to a musicbrainz server for HAVE_TUNEPIMP >= 5. ++ */ ++class LookupQuery : public QObject { ++Q_OBJECT ++ ++public: ++ /** ++ * Constructor. ++ * ++ * @param numFiles number of files to be queried ++ * @param serverName server name ++ * @param serverPort server port ++ * @param proxyName proxy name, empty if no proxy ++ * @param proxyPort proxy port ++ */ ++ LookupQuery(int numFiles, ++ const QString& serverName, Q_UINT16 serverPort = 80, ++ const QString& proxyName = "", Q_UINT16 proxyPort = 80); ++ ++ /** ++ * Destructor. ++ */ ++ virtual ~LookupQuery(); ++ ++#if HAVE_TUNEPIMP >= 5 ++ /** ++ * Query a PUID from the server. ++ * ++ * @param puid PUID ++ * @param index index of file ++ */ ++ void query(const char* puid, int index); ++#endif ++ ++signals: ++ /** ++ * Emitted when the query response is received ++ */ ++ void queryResponseReceived(int, const QCString&); ++ ++private slots: ++ /** ++ * Send query when the socket is connected. ++ */ ++ void socketConnected(); ++ ++ /** ++ * Error on socket connection. ++ */ ++ void socketError(); ++ ++ /** ++ * Read received data when the server has closed the connection. ++ */ ++ void socketConnectionClosed(); ++ ++#if HAVE_TUNEPIMP >= 5 ++private: ++ /** ++ * Connect to server to query information about the current file. ++ */ ++ void socketQuery(); ++ ++ /** ++ * Query the next file. ++ */ ++ void queryNext(); ++ ++ struct FileQuery { ++ bool requested; ++ QString puid; ++ }; ++ ++ /** Number of files to be queried. */ ++ int m_numFiles; ++ /** MusicBrainz server */ ++ QString m_serverName; ++ /** Port of MusicBrainz server */ ++ Q_UINT16 m_serverPort; ++ /** Proxy */ ++ QString m_proxyName; ++ /** Port of proxy */ ++ Q_UINT16 m_proxyPort; ++ /** ++ * -1 if not yet started, ++ * 0..m_numFiles-1 if a file is currently processed, ++ * >=m_numFiles if all files processed. ++ */ ++ int m_currentFile; ++ FileQuery* m_fileQueries; ++ QSocket* m_sock; ++ QString m_request; ++#endif ++}; ++ ++ ++/** + * MusicBrainz client. + */ + class MusicBrainzClient : public QObject +@@ -85,6 +188,15 @@ + */ + void resultsReceived(int, ImportTrackDataVector&); + ++private slots: ++ /** ++ * Process server response with lookup data. ++ * ++ * @param index index of file ++ * @param response response from server ++ */ ++ void parseLookupResponse(int index, const QCString& response); ++ + #ifdef HAVE_TUNEPIMP + private: + /** +@@ -126,6 +238,9 @@ + tunepimp_t m_tp; + int* m_ids; + int m_numFiles; ++#if HAVE_TUNEPIMP >= 5 ++ LookupQuery* m_lookupQuery; ++#endif + #endif // HAVE_TUNEPIMP + }; + diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-kid3__oggfile.cpp /home/makc/porting/ports/audio/kid3/files/patch-kid3__oggfile.cpp --- /usr/ports/audio/kid3/files/patch-kid3__oggfile.cpp Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-kid3__oggfile.cpp Sat Sep 23 01:30:28 2006 @@ -0,0 +1,11 @@ +--- ./kid3/oggfile.cpp.orig Fri Jan 27 21:15:27 2006 ++++ ./kid3/oggfile.cpp Sat Sep 23 01:27:49 2006 +@@ -143,7 +143,7 @@ + bool setUtime = false; + struct utimbuf times; + if (preserve) { +- int fd = ::fileno(fpIn); ++ int fd = fileno(fpIn); + if (fd >= 0) { + struct stat fileStat; + if (::fstat(fd, &fileStat) == 0) { diff -ruN --exclude=CVS /usr/ports/audio/kid3/files/patch-po__Makefile.in /home/makc/porting/ports/audio/kid3/files/patch-po__Makefile.in --- /usr/ports/audio/kid3/files/patch-po__Makefile.in Thu Jan 1 03:00:00 1970 +++ /home/makc/porting/ports/audio/kid3/files/patch-po__Makefile.in Sat Sep 23 01:30:28 2006 @@ -0,0 +1,28 @@ +--- ./po/Makefile.in.orig Tue Jun 27 23:34:40 2006 ++++ ./po/Makefile.in Sat Sep 23 01:27:55 2006 +@@ -297,7 +297,7 @@ + #>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu po/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/po/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit po/Makefile.in + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +@@ -451,7 +451,6 @@ + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: + +- + #>+ 2 + KDE_DIST=ru.gmo de.po de.gmo es.po es.gmo kid3.pot ru.po Makefile.in + +@@ -511,7 +510,7 @@ + force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu po/Makefile +- cd $(top_srcdir) && perl admin/am_edit -padmin kid3-0.7/po/Makefile.in ++ cd $(top_srcdir) && perl admin/am_edit po/Makefile.in + + + #>+ 21 >Release-Note: >Audit-Trail: >Unformatted: