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:
parent
b7afefbf7e
commit
fe3ac15e9d
@ -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 {
|
29
taglib-1.8-strip-rpath.patch
Normal file
29
taglib-1.8-strip-rpath.patch
Normal 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)
|
||||
-
|
@ -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
|
||||
|
36
taglib.spec
36
taglib.spec
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user