Accepting request 173416 from home:plater

Fix bnc#814814, this is actually work in progress and if I'm not sure it's fixed it will be removed before the next release. I hope to get both factory testers and upstream involved in this.

OBS-URL: https://build.opensuse.org/request/show/173416
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/taglib?expand=0&rev=50
This commit is contained in:
Dave Plater 2013-04-25 19:12:12 +00:00 committed by Git OBS Bridge
parent b7afefbf7e
commit fe3ac15e9d
4 changed files with 150 additions and 83 deletions

View File

@ -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 @@ diff -dPNur taglib-1.8/config-taglib.h.cmake taglib-1.8-ds/config-taglib.h.cmake
#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,21 @@ diff -dPNur taglib-1.8/ConfigureChecks.cmake taglib-1.8-ds/ConfigureChecks.cmake
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/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 +64,7 @@ diff -dPNur taglib-1.8/taglib/CMakeLists.txt taglib-1.8-ds/taglib/CMakeLists.txt
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 +97,7 @@ diff -dPNur taglib-1.8/taglib/mpeg/id3v1/id3v1tag.cpp taglib-1.8-ds/taglib/mpeg/
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 +128,7 @@ diff -dPNur taglib-1.8/taglib/mpeg/id3v2/frames/commentsframe.cpp taglib-1.8-ds/
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,8 +163,8 @@ diff -dPNur taglib-1.8/taglib/mpeg/id3v2/frames/textidentificationframe.cpp tagl
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-24 17:44:12.000000000 +0200
@@ -0,0 +1,195 @@
+#include <stdlib.h>
+
+#include <string>
@ -188,7 +200,7 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+#endif /* HAVE_LIBRCC */
+
+
+void rccPatchFree() {
+void rccTaglibPatchFree() {
+#ifdef HAVE_LIBRCC
+ if (rcc_initialized) {
+ rccFree();
@ -197,7 +209,7 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+#endif /* HAVE_LIBRCC */
+}
+
+void rccPatchInit() {
+void rccTaglibPatchInit() {
+#ifdef HAVE_LIBRCC
+ if (rcc_initialized) return;
+ rccInit();
@ -208,7 +220,7 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+#endif /* HAVE_LIBRCC */
+}
+
+void rccPatchSetContext(void *newctx) {
+void rccTaglibPatchSetContext(void *newctx) {
+#ifdef HAVE_LIBRCC
+ if (newctx) {
+ ctx = (rcc_context)newctx;
@ -217,23 +229,23 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+#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);
+ if (res) v.setData(res, rlen);
@ -247,13 +259,13 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+#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);
+ if (res) v.setData(res, rlen);
@ -267,13 +279,13 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+#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);
+ if (res) v.setData(res, rlen);
@ -284,13 +296,13 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+ 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);
+ if (res) v.setData(res, rlen);
@ -301,12 +313,12 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+ 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)) {
@ -323,12 +335,12 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+ 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 +353,16 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.cpp taglib-1.8-ds/taglib/toolkit/
+ 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 +371,22 @@ diff -dPNur taglib-1.8/taglib/toolkit/rccpatch.h taglib-1.8-ds/taglib/toolkit/rc
+#include "tstring.h"
+#include "tbytevector.h"
+
+void rccPatchFree();
+void rccPatchInit();
+void rccPatchSetContext(void *newctx);
+void rccTaglibPatchFree();
+void rccTaglibPatchInit();
+void rccTaglibPatchSetContext(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);
+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-24 17:48:10.000000000 +0200
@@ -23,6 +23,7 @@
* http://www.mozilla.org/MPL/ *
***************************************************************************/
@ -389,42 +404,44 @@ diff -dPNur taglib-1.8/taglib/toolkit/tstring.cpp taglib-1.8-ds/taglib/toolkit/t
int length = 0;
d->data.resize(v.size());
@@ -397,10 +398,21 @@
@@ -397,8 +398,24 @@
{
ByteVector v;
- switch(t) {
+ if (t == Locale) t = rccPatchGetLocaleType();
+ switch(t) {
+ if (t == Locale) 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 (t == Latin1ID3) v = rccTaglibPatchRecodeOutputID3(s, false);
+ else if (t == Latin1ID3V2) v = rccTaglibPatchRecodeOutputID3(s, true);
+ else /* if (t == Latin1(Locale) */ v = rccTaglibPatchRecodeOutput(s);
+ if (v.size()) return v;
+
+ for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++)
+ v.append(char(*it));
+ break;
+ }
case 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 +767,30 @@
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;
@ -443,7 +460,7 @@ diff -dPNur taglib-1.8/taglib/toolkit/tstring.cpp taglib-1.8-ds/taglib/toolkit/t
switch(t) {
case UTF16:
{
@@ -839,6 +875,27 @@
@@ -839,6 +880,27 @@
std::ostream &operator<<(std::ostream &s, const String &str)
{
@ -459,8 +476,8 @@ diff -dPNur taglib-1.8/taglib/toolkit/tstring.cpp taglib-1.8-ds/taglib/toolkit/t
+};
+
+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 +491,7 @@ diff -dPNur taglib-1.8/taglib/toolkit/tstring.cpp taglib-1.8-ds/taglib/toolkit/t
+}
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 {

View File

@ -0,0 +1,29 @@
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)
-

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Thu Apr 25 17:05:18 UTC 2013 - davejplater@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.
-------------------------------------------------------------------
Mon Feb 4 19:50:45 UTC 2013 - hessijames@gmail.com
@ -64,12 +71,12 @@ Fri May 11 10:22:59 UTC 2012 - vdziewiecki@suse.com
-------------------------------------------------------------------
Thu May 10 01:51:54 UTC 2012 - crrodriguez@opensuse.org
- Also, define GNU_SOURCE
- Also, define GNU_SOURCE
-------------------------------------------------------------------
Thu May 10 01:11:38 UTC 2012 - crrodriguez@opensuse.org
- No dont use -ansi gcc flag.
- No dont use -ansi gcc flag.
-------------------------------------------------------------------
Thu Mar 8 01:01:13 YEKT 2012 - avm-xandry@yandex.ru
@ -151,7 +158,7 @@ Sat Feb 26 14:24:48 UTC 2011 - toddrme2178@gmail.com
Sun Apr 11 17:07:36 UTC 2010 - tittiatcoke@gmail.com
- update to version 1.6.2
* Read Vorbis Comments from the first FLAC metadata block,
* Read Vorbis Comments from the first FLAC metadata block,
if there are multipe ones.
* Fixed a memory leak in FileRef's OGA format detection.
* Fixed compilation with the Sun Studio compiler.
@ -188,18 +195,18 @@ Tue Sep 22 19:14:46 UTC 2009 - tittiatcoke@gmail.com
- Update to version 1.6
* New CMake option to build a static version - ENABLE_STATIC.
* Added support for disabling dllimport/dllexport on Windows
* Added support for disabling dllimport/dllexport on Windows
using the TAGLIB_STATIC macro.
* Support for parsing the obsolete 'gnre' MP4 atom.
* New cpp macros TAGLIB_WITH_MP4 and TAGLIB_WITH_ASF to determine
* New cpp macros TAGLIB_WITH_MP4 and TAGLIB_WITH_ASF to determine
if TagLib was built with MP4/ASF support.
* Split Ogg packets larger than 64k into multiple pages.
* TagLib can now use FLAC padding block.
* ID3v2.2 frames are now not incorrectly saved.
* Support for ID3v2.2 PIC frames.
* Fixed a bug in ByteVectorList::split().
* XiphComment::year() now falls back to YEAR if DATE doesn't exist
and XiphComment::year() falls back to TRACKNUM if TRACKNUMBER
* XiphComment::year() now falls back to YEAR if DATE doesn't exist
and XiphComment::year() falls back to TRACKNUM if TRACKNUMBER
doesn't exist.
* Improved ID3v2.3 genre parsing.
* Better checking of corrupted ID3v2 APIC data.
@ -217,7 +224,7 @@ Tue Sep 22 19:14:46 UTC 2009 - tittiatcoke@gmail.com
* Generic RIFF file format support:
* Support for AIFF files with ID3v2 tags.
* Support for WAV files with ID3v2 tags.
* Fixed crash on handling unsupported ID3v2 frames, e.g. on encrypted
* Fixed crash on handling unsupported ID3v2 frames, e.g. on encrypted
frames.
* Fixed overflow while calculating bitrate of FLAC files with a very
high bitrate
@ -272,7 +279,7 @@ Fri Feb 22 23:03:15 CET 2008 - crrodriguez@suse.de
* Added a function to export strings to std::wstring
* Added a function to check ASCII compatibility of strings
* Added a function to check Latin1 compatibility of strings
-------------------------------------------------------------------
Wed Nov 7 10:52:28 CET 2007 - meissner@suse.de
@ -313,7 +320,7 @@ Mon Jul 3 17:50:49 CEST 2006 - cthiel@suse.de
-------------------------------------------------------------------
Wed Jun 14 22:56:04 CEST 2006 - dmueller@suse.de
- build parallel
- build parallel
-------------------------------------------------------------------
Wed Jan 25 21:33:38 CET 2006 - mls@suse.de
@ -323,7 +330,7 @@ Wed Jan 25 21:33:38 CET 2006 - mls@suse.de
-------------------------------------------------------------------
Tue Nov 29 12:56:27 CET 2005 - ro@suse.de
- added fontconfig to nfb
- added fontconfig to nfb
-------------------------------------------------------------------
Mon Sep 26 22:57:04 CEST 2005 - mls@suse.de
@ -333,12 +340,12 @@ Mon Sep 26 22:57:04 CEST 2005 - mls@suse.de
-------------------------------------------------------------------
Wed Aug 10 00:50:34 CEST 2005 - dmueller@suse.de
- fix filelist
- fix filelist
-------------------------------------------------------------------
Tue Aug 9 23:32:42 CEST 2005 - dmueller@suse.de
- don't package empty TODO file
- don't package empty TODO file
-------------------------------------------------------------------
Thu Jul 28 11:30:35 CEST 2005 - adrian@suse.de

View File

@ -21,15 +21,18 @@ Version: 1.8
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-r4.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
@ -51,6 +54,8 @@ 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 +105,7 @@ This package contains development files for taglib.
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3
%build
mkdir build
@ -107,7 +113,12 @@ cd build
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 +126,9 @@ doxygen -u
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 +144,9 @@ rm -f examples/CMake*
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 +186,11 @@ EOF
%files
%defattr(-,root,root,-)
%if 1 == 1
%{_bindir}/*
%exclude %{_bindir}/taglib-config
%else
%doc README.taglib
%endif
%changelog