Hello community, here is the log from the commit of package taglib for openSUSE:Factory checked in at 2013-04-29 10:00:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/taglib (Old) and /work/SRC/openSUSE:Factory/.taglib.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "taglib", Maintainer is "vdziewie...@suse.com" Changes: -------- --- /work/SRC/openSUSE:Factory/taglib/taglib.changes 2013-02-05 15:47:03.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.taglib.new/taglib.changes 2013-04-29 10:00:30.000000000 +0200 @@ -1,0 +2,14 @@ +Fri Apr 26 17:19:29 UTC 2013 - davejpla...@gmail.com + +- Added taglib-1.8-ds-rusxmms-r8.patch which fixes bnc#814814 +- Removed old taglib-1.8-ds-rusxmms-r4.patch + +------------------------------------------------------------------- +Thu Apr 25 17:05:18 UTC 2013 - davejpla...@gmail.com + +- Incorporated updated taglib-1.8-ds-rusxmms-r4.patch see bnc#814814 +- Added built binary examples which manipulate tags from the command line + to enable easier testing of libtag. These are in the taglib rpm. +- Created taglib-1.8-strip-rpath.patch to remove rpath from binaries. + +------------------------------------------------------------------- Old: ---- taglib-1.8-ds-rusxmms-r2.patch New: ---- taglib-1.8-ds-rusxmms-r8.patch taglib-1.8-strip-rpath.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ taglib.spec ++++++ --- /var/tmp/diff_new_pack.tUmfwN/_old 2013-04-29 10:00:33.000000000 +0200 +++ /var/tmp/diff_new_pack.tUmfwN/_new 2013-04-29 10:00:33.000000000 +0200 @@ -21,15 +21,18 @@ Release: 0 Summary: Audio Meta-Data Library License: LGPL-2.1+ and MPL-1.1 -Group: System/Libraries +Group: Productivity/Multimedia/Other Url: http://ktown.kde.org/~wheeler/taglib/ Source0: https://github.com/downloads/taglib/taglib/%{name}-%{version}.tar.gz Source1: %{name}.desktop Source100: baselibs.conf -Patch0: taglib-1.8-ds-rusxmms-r2.patch +# This patch is to fix bnc#814814. +Patch0: taglib-1.8-ds-rusxmms-r8.patch Patch1: taglib-1.7.2-doxygen.patch # PATCH-FIX-UPSTREAM taglib-1.8-version_fix.patch - fix version defines in taglib.h Patch2: taglib-1.8-version_fix.patch +# Get example executables to build without rpath +Patch3: taglib-1.8-strip-rpath.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake BuildRequires: doxygen @@ -43,14 +46,18 @@ %endif BuildRequires: librcc-devel BuildRequires: zlib-devel -Requires: libtag1 = %{version} -Requires: libtag_c0 = %{version} +# NOTE: The tagreader and writer executables give different results when built with +# an earlier taglib-1.8-ds-rusxmms patch. See bnc#814814 +Requires: libtag1 = %{version}-%{release} +Requires: libtag_c0 = %{version}-%{release} %description TagLib is a library for reading and editing the meta-data of several popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files. +This package contains built examples which manipulate tags from the +command line. %package -n libtag1 Summary: Audio Meta-Data Library @@ -100,6 +107,7 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 %build mkdir build @@ -107,7 +115,12 @@ export CXXFLAGS="%{optflags} -D_GNU_SOURCE" export CFLAGS="%{optflags} -D_GNU_SOURCE" _libsuffix=$(echo %{_lib} | cut -b4-) -cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} -DBUILD_TESTS:BOOL=ON -DLIB_SUFFIX=$_libsuffix -DWITH_ASF:BOOL=ON -DWITH_MP4:BOOL=ON .. +cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DBUILD_TESTS:BOOL=ON \ + -DLIB_SUFFIX=$_libsuffix \ + -DWITH_ASF:BOOL=ON \ + -DWITH_MP4:BOOL=ON \ + -DBUILD_EXAMPLES:BOOL=ON .. make %{?_smp_mflags} VERBOSE=1 cd .. @@ -115,9 +128,9 @@ doxygen %install -cd build -%makeinstall -cd .. +pushd build +make DESTDIR=%{buildroot} install +popd # install susehelp file mkdir -p %{buildroot}%{_datadir}/susehelp/meta/Development/Libraries/ @@ -133,11 +146,9 @@ cp -a AUTHORS COPYING.LGPL COPYING.MPL NEWS doc/html/ examples/ %{buildroot}%{_defaultdocdir}/libtag-devel/ %fdupes -s %{buildroot} - -echo <<EOF >README.taglib -This package only acts as a placeholder until all packages that use taglib -have upgraded to the new package names libtag1 and libtag_c0. -EOF +# Add built examples to taglib package. +mkdir -p %{buildroot}%{_bindir} +for i in `find build/examples -maxdepth 1 ! -type d -executable`; do cp -v ${i} %{buildroot}%{_bindir}/; done %check # check the library @@ -177,6 +188,11 @@ %files %defattr(-,root,root,-) +%if 1 == 1 +%{_bindir}/* +%exclude %{_bindir}/taglib-config +%else %doc README.taglib +%endif %changelog ++++++ taglib-1.8-ds-rusxmms-r2.patch -> taglib-1.8-ds-rusxmms-r8.patch ++++++ --- /work/SRC/openSUSE:Factory/taglib/taglib-1.8-ds-rusxmms-r2.patch 2013-02-05 15:47:03.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.taglib.new/taglib-1.8-ds-rusxmms-r8.patch 2013-04-29 10:00:30.000000000 +0200 @@ -1,6 +1,6 @@ diff -dPNur taglib-1.8/config-taglib.h.cmake taglib-1.8-ds/config-taglib.h.cmake --- taglib-1.8/config-taglib.h.cmake 2012-09-06 20:03:15.000000000 +0200 -+++ taglib-1.8-ds/config-taglib.h.cmake 2013-01-29 12:45:48.000000000 +0100 ++++ taglib-1.8-ds/config-taglib.h.cmake 2013-04-24 17:44:12.000000000 +0200 @@ -3,6 +3,8 @@ /* Define if you have libz */ #cmakedefine HAVE_ZLIB 1 @@ -12,7 +12,7 @@ #cmakedefine WITH_MP4 1 diff -dPNur taglib-1.8/ConfigureChecks.cmake taglib-1.8-ds/ConfigureChecks.cmake --- taglib-1.8/ConfigureChecks.cmake 2012-09-06 20:03:15.000000000 +0200 -+++ taglib-1.8-ds/ConfigureChecks.cmake 2013-01-29 12:45:48.000000000 +0100 ++++ taglib-1.8-ds/ConfigureChecks.cmake 2013-04-24 17:44:12.000000000 +0200 @@ -14,6 +14,8 @@ set(HAVE_ZLIB 0) endif() @@ -22,9 +22,33 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) find_package(CppUnit) if(NOT CppUnit_FOUND AND BUILD_TESTS) +diff -dPNur taglib-1.8/examples/tagreader_c.c taglib-1.8-ds/examples/tagreader_c.c +--- taglib-1.8/examples/tagreader_c.c 2012-09-06 20:03:15.000000000 +0200 ++++ taglib-1.8-ds/examples/tagreader_c.c 2013-04-24 19:10:37.000000000 +0200 +@@ -38,7 +38,7 @@ + TagLib_Tag *tag; + const TagLib_AudioProperties *properties; + +- taglib_set_strings_unicode(FALSE); ++// taglib_set_strings_unicode(FALSE); + + for(i = 1; i < argc; i++) { + printf("******************** \"%s\" ********************\n", argv[i]); +diff -dPNur taglib-1.8/examples/tagwriter.cpp taglib-1.8-ds/examples/tagwriter.cpp +--- taglib-1.8/examples/tagwriter.cpp 2012-09-06 20:03:15.000000000 +0200 ++++ taglib-1.8-ds/examples/tagwriter.cpp 2013-04-25 23:48:17.000000000 +0200 +@@ -92,7 +92,7 @@ + if(isArgument(argv[i]) && i + 1 < argc && !isArgument(argv[i + 1])) { + + char field = argv[i][1]; +- TagLib::String value = argv[i + 1]; ++ TagLib::String value(argv[i + 1], TagLib::String::Locale); + + TagLib::List<TagLib::FileRef>::Iterator it; + for(it = fileList.begin(); it != fileList.end(); ++it) { diff -dPNur taglib-1.8/taglib/CMakeLists.txt taglib-1.8-ds/taglib/CMakeLists.txt --- taglib-1.8/taglib/CMakeLists.txt 2012-09-06 20:03:15.000000000 +0200 -+++ taglib-1.8-ds/taglib/CMakeLists.txt 2013-01-29 12:45:48.000000000 +0100 ++++ taglib-1.8-ds/taglib/CMakeLists.txt 2013-04-24 17:44:12.000000000 +0200 @@ -35,6 +35,7 @@ audioproperties.h taglib_export.h @@ -52,7 +76,7 @@ set_target_properties(tag PROPERTIES diff -dPNur taglib-1.8/taglib/mpeg/id3v1/id3v1tag.cpp taglib-1.8-ds/taglib/mpeg/id3v1/id3v1tag.cpp --- taglib-1.8/taglib/mpeg/id3v1/id3v1tag.cpp 2012-09-06 20:03:15.000000000 +0200 -+++ taglib-1.8-ds/taglib/mpeg/id3v1/id3v1tag.cpp 2013-01-29 12:45:48.000000000 +0100 ++++ taglib-1.8-ds/taglib/mpeg/id3v1/id3v1tag.cpp 2013-04-24 17:44:12.000000000 +0200 @@ -64,17 +64,18 @@ String ID3v1::StringHandler::parse(const ByteVector &data) const @@ -85,7 +109,7 @@ diff -dPNur taglib-1.8/taglib/mpeg/id3v2/frames/commentsframe.cpp taglib-1.8-ds/taglib/mpeg/id3v2/frames/commentsframe.cpp --- taglib-1.8/taglib/mpeg/id3v2/frames/commentsframe.cpp 2012-09-06 20:03:15.000000000 +0200 -+++ taglib-1.8-ds/taglib/mpeg/id3v2/frames/commentsframe.cpp 2013-01-29 12:45:48.000000000 +0100 ++++ taglib-1.8-ds/taglib/mpeg/id3v2/frames/commentsframe.cpp 2013-04-24 17:44:12.000000000 +0200 @@ -150,10 +150,10 @@ return; } @@ -116,7 +140,7 @@ v.append(textDelimiter(encoding)); diff -dPNur taglib-1.8/taglib/mpeg/id3v2/frames/textidentificationframe.cpp taglib-1.8-ds/taglib/mpeg/id3v2/frames/textidentificationframe.cpp --- taglib-1.8/taglib/mpeg/id3v2/frames/textidentificationframe.cpp 2012-09-06 20:03:15.000000000 +0200 -+++ taglib-1.8-ds/taglib/mpeg/id3v2/frames/textidentificationframe.cpp 2013-01-29 12:45:48.000000000 +0100 ++++ taglib-1.8-ds/taglib/mpeg/id3v2/frames/textidentificationframe.cpp 2013-04-24 17:44:12.000000000 +0200 @@ -187,12 +187,12 @@ // read the string data type (the first byte of the field data) @@ -151,19 +175,25 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/rccpatch.cpp --- taglib-1.8/taglib/toolkit/rccpatch.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ taglib-1.8-ds/taglib/toolkit/rccpatch.cpp 2013-01-29 12:35:45.000000000 +0100 -@@ -0,0 +1,192 @@ ++++ taglib-1.8-ds/taglib/toolkit/rccpatch.cpp 2013-04-26 06:40:40.000000000 +0200 +@@ -0,0 +1,237 @@ +#include <stdlib.h> + +#include <string> +#include "tstring.h" +#include "tbytevector.h" + ++//#define RCC_DEBUG ++ ++ +#ifndef HAVE_LIBRCC +# include <config.h> +#endif + +#ifdef HAVE_LIBRCC ++# ifdef RCC_DEBUG ++# include <stdio.h> ++# endif /* RCC_DEBUG */ +# include <librcc.h> +# include <string.h> +#endif /* HAVE_LIBRCC */ @@ -188,7 +218,7 @@ +#endif /* HAVE_LIBRCC */ + + -+void rccPatchFree() { ++void rccTaglibPatchFree() { +#ifdef HAVE_LIBRCC + if (rcc_initialized) { + rccFree(); @@ -197,7 +227,7 @@ +#endif /* HAVE_LIBRCC */ +} + -+void rccPatchInit() { ++void rccTaglibPatchInit() { +#ifdef HAVE_LIBRCC + if (rcc_initialized) return; + rccInit(); @@ -208,7 +238,7 @@ +#endif /* HAVE_LIBRCC */ +} + -+void rccPatchSetContext(void *newctx) { ++void rccTaglibPatchSetContext(void *newctx) { +#ifdef HAVE_LIBRCC + if (newctx) { + ctx = (rcc_context)newctx; @@ -217,27 +247,37 @@ +#endif /* HAVE_LIBRCC */ +} + -+static void rccPatchTryInit() { ++static void rccTaglibPatchTryInit() { +#ifdef HAVE_LIBRCC + if (!rcc_initialized) { -+ rccPatchInit(); -+ if (rcc_initialized) atexit(rccPatchFree); ++ rccTaglibPatchInit(); ++ if (rcc_initialized) atexit(rccTaglibPatchFree); + } +#endif /* HAVE_LIBRCC */ +} + + -+TagLib::ByteVector rccPatchRecodeOutput(const std::string &s) { ++TagLib::ByteVector rccTaglibPatchRecodeOutput(const std::string &s) { + TagLib::ByteVector v; +#ifdef HAVE_LIBRCC + size_t rlen; + char *res; + -+ rccPatchTryInit(); ++ rccTaglibPatchTryInit(); + + res = rccSizedRecode(ctx, UTF_CLASS, OUT_CLASS, s.c_str(), s.length(), &rlen); ++#ifdef RCC_DEBUG ++ for (const unsigned char *c = (const unsigned char*)s.c_str(); *c; c++) { ++ if (*c > 127) { ++ printf(" Output: %s - %s\n", s.c_str(), res?res:"null"); ++ break; ++ } ++ } ++#endif /* RCC_DEBUG */ ++ + if (res) v.setData(res, rlen); -+ else v.setData(s.c_str(), s.length()); ++ else v.setData("", 0); ++ //v.setData(s.c_str(), s.length()); + + return v; +#else @@ -247,17 +287,27 @@ +#endif /* HAVE_LIBRCC */ +} + -+TagLib::ByteVector rccPatchRecodeOutputID3(const std::string &s, bool v2 = false) { ++TagLib::ByteVector rccTaglibPatchRecodeOutputID3(const std::string &s, bool v2 = false) { + TagLib::ByteVector v; +#ifdef HAVE_LIBRCC + size_t rlen; + char *res; + -+ rccPatchTryInit(); ++ rccTaglibPatchTryInit(); + + res = rccSizedRecode(ctx, UTF_CLASS, v2?ID3V2_CLASS:ID3_CLASS, s.c_str(), s.length(), &rlen); ++#ifdef RCC_DEBUG ++ for (const unsigned char *c = (const unsigned char*)s.c_str(); *c; c++) { ++ if (*c > 127) { ++ printf(" OutputID3(%i): %s - %s\n", v2, s.c_str(), res?res:"null"); ++ break; ++ } ++ } ++#endif /* RCC_DEBUG */ ++ + if (res) v.setData(res, rlen); -+ else v.setData(s.c_str(), s.length()); ++ else v.setData("", 0); ++ //v.setData(s.c_str(), s.length()); + + return v; +#else @@ -267,15 +317,24 @@ +#endif /* HAVE_LIBRCC */ +} + -+TagLib::ByteVector rccPatchRecodeInput(const std::string &s) { ++TagLib::ByteVector rccTaglibPatchRecodeInput(const std::string &s) { + TagLib::ByteVector v; +#ifdef HAVE_LIBRCC + size_t rlen; + char *res; + -+ rccPatchTryInit(); ++ rccTaglibPatchTryInit(); + + res = rccSizedRecode(ctx, OUT_CLASS, UTF_CLASS, s.c_str(), s.length(), &rlen); ++#ifdef RCC_DEBUG ++ for (const unsigned char *c = (const unsigned char*)s.c_str(); *c; c++) { ++ if (*c > 127) { ++ printf(" Input: %s - %s\n", s.c_str(), res?res:"null"); ++ break; ++ } ++ } ++#endif /* RCC_DEBUG */ ++ + if (res) v.setData(res, rlen); + else +#endif /* HAVE_LIBRCC */ @@ -284,15 +343,23 @@ + return v; +} + -+TagLib::ByteVector rccPatchRecodeInputID3(const std::string &s, bool v2 = false) { ++TagLib::ByteVector rccTaglibPatchRecodeInputID3(const std::string &s, bool v2 = false) { + TagLib::ByteVector v; +#ifdef HAVE_LIBRCC + size_t rlen; + char *res; + -+ rccPatchTryInit(); ++ rccTaglibPatchTryInit(); + + res = rccSizedRecode(ctx, v2?ID3V2_CLASS:ID3_CLASS, UTF_CLASS, s.c_str(), s.length(), &rlen); ++#ifdef RCC_DEBUG ++ for (const unsigned char *c = (const unsigned char*)s.c_str(); *c; c++) { ++ if (*c > 127) { ++ printf(" InputID3(%i): %s - %s\n", v2, s.c_str(), res?res:"null"); ++ break; ++ } ++ } ++#endif /* RCC_DEBUG */ + if (res) v.setData(res, rlen); + else +#endif /* HAVE_LIBRCC */ @@ -301,13 +368,12 @@ + return v; +} + -+TagLib::String::Type rccPatchGetLocaleType() { ++TagLib::String::Type rccTaglibPatchGetLocaleType() { +#ifdef HAVE_LIBRCC + size_t len; + char charset[32]; + -+ rccPatchTryInit(); -+ ++ rccTaglibPatchTryInit(); + if (!rccLocaleGetCharset(charset, NULL, 31)) { + if (!strncmp(charset, "UTF", 3)) { + len = strlen(charset); @@ -323,12 +389,12 @@ + return TagLib::String::UTF8; +} + -+TagLib::String::Type rccPatchGetID3Type() { ++TagLib::String::Type rccTaglibPatchGetID3Type() { +#ifdef HAVE_LIBRCC + size_t len; + const char *charset; + -+ rccPatchTryInit(); ++ rccTaglibPatchTryInit(); + + charset = rccGetCurrentCharsetName(ctx, ID3V2_CLASS); + if (charset) { @@ -341,13 +407,16 @@ + if (!strcmp(charset+(len-4),"16BE")) return TagLib::String::UTF16BE; + } + return TagLib::String::Latin1ID3V2; ++ } else { ++ // Error or no-language configured: If Latin1ID3V2 is returned we normally will use the default unicode encoding unless Latin1 is selected by taglib ++ return TagLib::String::Latin1ID3V2; + } +#endif /* HAVE_LIBRCC */ + return TagLib::String::Latin1; +} diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.h taglib-1.8-ds/taglib/toolkit/rccpatch.h --- taglib-1.8/taglib/toolkit/rccpatch.h 1970-01-01 01:00:00.000000000 +0100 -+++ taglib-1.8-ds/taglib/toolkit/rccpatch.h 2013-01-29 12:45:48.000000000 +0100 ++++ taglib-1.8-ds/taglib/toolkit/rccpatch.h 2013-04-24 17:44:12.000000000 +0200 @@ -0,0 +1,20 @@ +#ifndef _RCC_PATCH_H +#define _RCC_PATCH_H @@ -356,22 +425,22 @@ +#include "tstring.h" +#include "tbytevector.h" + -+void rccPatchFree(); -+void rccPatchInit(); -+void rccPatchSetContext(void *newctx); -+ -+TagLib::ByteVector rccPatchRecodeOutput(const std::string &s); -+TagLib::ByteVector rccPatchRecodeInput(const std::string &s); -+TagLib::ByteVector rccPatchRecodeOutputID3(const std::string &s, bool v2 = false); -+TagLib::ByteVector rccPatchRecodeInputID3(const std::string &s, bool v2 = false); ++void rccTaglibPatchFree(); ++void rccTaglibPatchInit(); ++void rccTaglibPatchSetContext(void *newctx); ++ ++TagLib::ByteVector rccTaglibPatchRecodeOutput(const std::string &s); ++TagLib::ByteVector rccTaglibPatchRecodeInput(const std::string &s); ++TagLib::ByteVector rccTaglibPatchRecodeOutputID3(const std::string &s, bool v2 = false); ++TagLib::ByteVector rccTaglibPatchRecodeInputID3(const std::string &s, bool v2 = false); + -+TagLib::String::Type rccPatchGetLocaleType(); -+TagLib::String::Type rccPatchGetID3Type(); ++TagLib::String::Type rccTaglibPatchGetLocaleType(); ++TagLib::String::Type rccTaglibPatchGetID3Type(); + +#endif /* _RCC_PATCH_H */ diff -dPNur taglib-1.8/taglib/toolkit/tstring.cpp taglib-1.8-ds/taglib/toolkit/tstring.cpp --- taglib-1.8/taglib/toolkit/tstring.cpp 2012-09-06 20:03:15.000000000 +0200 -+++ taglib-1.8-ds/taglib/toolkit/tstring.cpp 2013-01-29 12:46:14.000000000 +0100 ++++ taglib-1.8-ds/taglib/toolkit/tstring.cpp 2013-04-26 07:11:38.000000000 +0200 @@ -23,6 +23,7 @@ * http://www.mozilla.org/MPL/ * ***************************************************************************/ @@ -389,42 +458,59 @@ int length = 0; d->data.resize(v.size()); -@@ -397,10 +398,21 @@ +@@ -397,10 +398,38 @@ { ByteVector v; - switch(t) { -+ if (t == Locale) t = rccPatchGetLocaleType(); ++ if (t == Locale) { ++ // The source is either Unicode or real Latin1 (if rcc is bypassed) ++ std::string s = to8Bit(true); ++ ++ // In case of UTF8 locale, this probably will return NULL (no recoding needed), but we will take UTF8 path in the next swtich ++ v = rccTaglibPatchRecodeOutput(s); ++ if (v.size()) return v; ++ t = rccTaglibPatchGetLocaleType(); ++ } ++ + switch(t) { -+ case Locale: - case Latin1: + case Latin1ID3: + case Latin1ID3V2: - { ++ { + std::string s = to8Bit(true); -+ if (t == Latin1ID3) v = rccPatchRecodeOutputID3(s, false); -+ else if (t == Latin1ID3V2) v = rccPatchRecodeOutputID3(s, true); -+ else /* if (t == Latin1(Locale) */ v = rccPatchRecodeOutput(s); -+ -+ if (v.size()) return v; ++ if (t == Latin1ID3) v = rccTaglibPatchRecodeOutputID3(s, false); ++ else if (t == Latin1ID3V2) v = rccTaglibPatchRecodeOutputID3(s, true); ++ if (v.size()) break; + ++ // we don't know if we got NULL because rcc is disabled (error) or UTF8 output is required ++ if ((t == Latin1ID3V2)&&(rccTaglibPatchGetID3Type() == UTF8)) { ++ v.setData(s.c_str(), s.length()); ++ } else { ++ for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) ++ v.append(char(*it)); ++ } ++ break; ++ } + case Latin1: + { ++ // We can have the UTF16 inside, but first 256 positions is equal to Latin1 for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) v.append(char(*it)); break; -@@ -750,6 +762,30 @@ +@@ -750,6 +779,34 @@ void String::prepare(Type t) { -+ if (t == Locale) t = rccPatchGetLocaleType(); ++ if (t == Locale) t = rccTaglibPatchGetLocaleType(); + + if ((t == Latin1)||(t == Latin1ID3)||(t == Latin1ID3V2)) { + std::string s = to8Bit(false); + ByteVector v; + -+ if (t == Latin1ID3) v = rccPatchRecodeInputID3(s, false); -+ else if (t == Latin1ID3V2) v = rccPatchRecodeInputID3(s, true); -+ else /* Latin1 converted from Locale */ v = rccPatchRecodeInput(s); ++ if (t == Latin1ID3) v = rccTaglibPatchRecodeInputID3(s, false); ++ else if (t == Latin1ID3V2) v = rccTaglibPatchRecodeInputID3(s, true); ++ else /* Latin1 converted from Locale */ v = rccTaglibPatchRecodeInput(s); + + if (v.size()) { + int length = 0; @@ -437,13 +523,17 @@ + } + d->data.resize(length); + t = UTF8; ++ } else { ++ // We don't know if we got UTF-8 encoded string or either rcc is disable or something is failed, ++ // since standard applications are really expecting here Latin1, it is safe to just check if we have violations of UTF8 ++ //if (Unicode::isLegalUTF8(s)) t = UTF8; + } + } + switch(t) { case UTF16: { -@@ -839,6 +875,27 @@ +@@ -839,6 +896,27 @@ std::ostream &operator<<(std::ostream &s, const String &str) { @@ -459,8 +549,8 @@ +}; + +String::Type String::ID3WType(Type type) { -+ Type rcc_type = rccPatchGetID3Type(); -+ if ((rcc_type == Latin1ID3)||(rcc_type == Latin1ID3V2)) { ++ Type rcc_type = rccTaglibPatchGetID3Type(); ++ if ((rcc_type == Latin1ID3)||(rcc_type == Latin1ID3V2)||(rcc_type == Latin1)) { + if (type == Latin1) return rcc_type; + return type; + } @@ -474,7 +564,7 @@ +} diff -dPNur taglib-1.8/taglib/toolkit/tstring.h taglib-1.8-ds/taglib/toolkit/tstring.h --- taglib-1.8/taglib/toolkit/tstring.h 2012-09-06 20:03:15.000000000 +0200 -+++ taglib-1.8-ds/taglib/toolkit/tstring.h 2013-01-29 12:45:48.000000000 +0100 ++++ taglib-1.8-ds/taglib/toolkit/tstring.h 2013-04-24 17:44:12.000000000 +0200 @@ -90,6 +90,18 @@ */ enum Type { ++++++ taglib-1.8-strip-rpath.patch ++++++ Index: examples/CMakeLists.txt =================================================================== --- examples/CMakeLists.txt.orig 2012-09-06 20:03:15.000000000 +0200 +++ examples/CMakeLists.txt 2013-04-23 08:44:33.938480393 +0200 @@ -11,6 +11,8 @@ if(ENABLE_STATIC) add_definitions(-DTAGLIB_STATIC) endif(ENABLE_STATIC) +SET(CMAKE_SKIP_BUILD_RPATH TRUE) + ########### next target ############### ADD_EXECUTABLE(tagreader tagreader.cpp) @@ -45,6 +47,14 @@ ADD_EXECUTABLE(strip-id3v1 strip-id3v1.c TARGET_LINK_LIBRARIES(strip-id3v1 tag ) +#set_target_properties(examples PROPERTIES +# INSTALL_NAME_DIR ${BIN_INSTALL_DIR} +# LINK_INTERFACE_LIBRARIES "" +#) + +#install(TARGETS examples +# FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR} +# RUNTIME DESTINATION ${BIN_INSTALL_DIR} +#) endif(BUILD_EXAMPLES) - -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org