diff options
-rw-r--r-- | audio/taglib/Makefile | 19 | ||||
-rw-r--r-- | audio/taglib/distinfo | 4 | ||||
-rw-r--r-- | audio/taglib/files/extrapatch-rcc | 527 | ||||
-rw-r--r-- | audio/taglib/pkg-plist | 8 |
4 files changed, 10 insertions, 548 deletions
diff --git a/audio/taglib/Makefile b/audio/taglib/Makefile index 236f63e373af..5648af3de58c 100644 --- a/audio/taglib/Makefile +++ b/audio/taglib/Makefile @@ -2,10 +2,9 @@ # $FreeBSD$ PORTNAME= taglib -PORTVERSION= 1.8 +PORTVERSION= 1.9.1 CATEGORIES= audio -MASTER_SITES= http://cloud.github.com/downloads/taglib/taglib/ \ - http://developer.kde.org/~wheeler/files/src/ +MASTER_SITES= http://taglib.github.io/releases/ MAINTAINER= jhale@FreeBSD.org COMMENT= Library for manipulating ID3 tags and Ogg comments @@ -19,21 +18,7 @@ CMAKE_ARGS= -DWITH_ASF:BOOL=ON \ -DWITH_MP4:BOOL=ON USE_LDCONFIG= yes -OPTIONS_DEFINE= RCC -OPTIONS_SUB= yes - -RCC_DESC= Build with RusXMMS librcc patches (experimental) -RCC_EXTRA_PATCHES= ${FILESDIR}/extrapatch-rcc -RCC_LIB_DEPENDS= librcc.so:${PORTSDIR}/devel/librcc - -.include <bsd.port.options.mk> - post-patch: -.if ${PORT_OPTIONS:MRCC} - @${REINPLACE_CMD} -e 's|-ltag|-ltag -lrcc|g' \ - ${WRKSRC}/taglib.pc.cmake ${WRKSRC}/taglib-config.cmake \ - ${WRKSRC}/bindings/c/taglib_c.pc.cmake -.endif ${REINPLACE_CMD} -e 's|$${LIB_INSTALL_DIR}/pkgconfig|libdata/pkgconfig|' \ ${WRKSRC}/CMakeLists.txt ${WRKSRC}/bindings/c/CMakeLists.txt diff --git a/audio/taglib/distinfo b/audio/taglib/distinfo index 3a69055e3ee9..8f859195ce56 100644 --- a/audio/taglib/distinfo +++ b/audio/taglib/distinfo @@ -1,2 +1,2 @@ -SHA256 (taglib-1.8.tar.gz) = 66d33481703c90236a0a9d1c38fd81b584ca7109ded049225f5463dcaffc209a -SIZE (taglib-1.8.tar.gz) = 595937 +SHA256 (taglib-1.9.1.tar.gz) = 72d371cd1419a87ae200447a53bff2be219283071e80fd12337928cc967dc71a +SIZE (taglib-1.9.1.tar.gz) = 654074 diff --git a/audio/taglib/files/extrapatch-rcc b/audio/taglib/files/extrapatch-rcc deleted file mode 100644 index df6ced19f5f5..000000000000 --- a/audio/taglib/files/extrapatch-rcc +++ /dev/null @@ -1,527 +0,0 @@ ---- config-taglib.h.cmake.orig 2008-01-11 01:56:23.000000000 +0100 -+++ config-taglib.h.cmake 2008-11-20 15:58:31.000000000 +0100 -@@ -6,4 +6,6 @@ - /* Define if you have libz */ - #cmakedefine HAVE_ZLIB 1 - -+#cmakedefine HAVE_LIBRCC 1 -+ - #cmakedefine NO_ITUNES_HACKS 1 ---- ConfigureChecks.cmake.orig 2012-07-14 15:53:09.000000000 -0400 -+++ ConfigureChecks.cmake 2012-07-14 20:58:15.000000000 -0400 -@@ -14,6 +14,21 @@ - set(HAVE_ZLIB 0) - endif() - -+#check for librcc -+find_path(RCC_INCLUDE_DIR librcc.h) -+find_library(RCC_LIBRARY NAMES rcc) -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(RCC DEFAULT_MSG RCC_LIBRARY RCC_INCLUDE_DIR) -+ -+if(RCC_FOUND) -+ set(RCC_LIBRARIES ${RCC_LIBRARY}) -+ set(HAVE_LIBRCC 1) -+else(RCC_FOUND) -+ set(HAVE_LIBRCC 0) -+endif(RCC_FOUND) -+ -+mark_as_advanced(RCC_LIBRARY RCC_INCLUDE_DIR) -+ - set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) - find_package(CppUnit) - if(NOT CppUnit_FOUND AND BUILD_TESTS) ---- taglib/mpeg/id3v1/id3v1tag.cpp.orig 2012-07-14 15:53:09.000000000 -0400 -+++ taglib/mpeg/id3v1/id3v1tag.cpp 2012-07-14 20:49:26.000000000 -0400 -@@ -64,17 +64,18 @@ - - String ID3v1::StringHandler::parse(const ByteVector &data) const - { -- return String(data, String::Latin1).stripWhiteSpace(); -+ return String(data, String::Latin1ID3).stripWhiteSpace(); - } - - ByteVector ID3v1::StringHandler::render(const String &s) const - { - if(!s.isLatin1()) - { -+ if (String::ID3WType(String::Latin1) == String::Latin1) - return ByteVector(); - } - -- return s.data(String::Latin1); -+ return s.data(String::Latin1ID3); - } - - //////////////////////////////////////////////////////////////////////////////// -@@ -247,7 +248,7 @@ - d->track = uchar(data[offset + 29]); - } - else -- d->comment = data.mid(offset, 30); -+ d->comment = TagPrivate::stringHandler->parse(data.mid(offset, 30)); - - offset += 30; - ---- taglib/mpeg/id3v2/frames/commentsframe.cpp.orig 2012-07-14 15:53:09.000000000 -0400 -+++ taglib/mpeg/id3v2/frames/commentsframe.cpp 2012-07-14 21:08:29.000000000 -0400 -@@ -150,10 +150,10 @@ - return; - } - -- d->textEncoding = String::Type(data[0]); -+ d->textEncoding = String::ID3Type(data[0]); - d->language = data.mid(1, 3); - -- int byteAlign = d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8 ? 1 : 2; -+ int byteAlign = d->textEncoding == (String::Latin1 || String::Latin1ID3 || String::Latin1ID3V2 || d->textEncoding == String::UTF8) ? 1 : 2; - - ByteVectorList l = ByteVectorList::split(data.mid(4), textDelimiter(d->textEncoding), byteAlign, 2); - -@@ -169,10 +169,12 @@ - - String::Type encoding = d->textEncoding; - -+ encoding = String::ID3WType(encoding); -+ - encoding = checkTextEncoding(d->description, encoding); - encoding = checkTextEncoding(d->text, encoding); - -- v.append(char(encoding)); -+ v.append(char(String::ID3RealType(encoding))); - v.append(d->language.size() == 3 ? d->language : "XXX"); - v.append(d->description.data(encoding)); - v.append(textDelimiter(encoding)); ---- taglib/mpeg/id3v2/frames/textidentificationframe.cpp.orig 2012-07-14 15:53:09.000000000 -0400 -+++ taglib/mpeg/id3v2/frames/textidentificationframe.cpp 2012-07-14 21:13:35.000000000 -0400 -@@ -187,12 +187,12 @@ - - // read the string data type (the first byte of the field data) - -- d->textEncoding = String::Type(data[0]); -+ d->textEncoding = String::ID3Type(data[0]); - - // split the byte array into chunks based on the string type (two byte delimiter - // for unicode encodings) - -- int byteAlign = d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8 ? 1 : 2; -+ int byteAlign = (d->textEncoding == String::Latin1 || d->textEncoding == String::Latin1ID3 || d->textEncoding == String::Latin1ID3V2 || d->textEncoding == String::UTF8) ? 1 : 2; - - // build a small counter to strip nulls off the end of the field - -@@ -221,11 +221,14 @@ - - ByteVector TextIdentificationFrame::renderFields() const - { -- String::Type encoding = checkTextEncoding(d->fieldList, d->textEncoding); -+ String::Type encoding = d->textEncoding; -+ -+ encoding = String::ID3WType(encoding); -+ encoding = checkEncoding(d->fieldList, encoding); - - ByteVector v; - -- v.append(char(encoding)); -+ v.append(char(String::ID3RealType(encoding))); - - for(StringList::ConstIterator it = d->fieldList.begin(); it != d->fieldList.end(); it++) { - ---- taglib/toolkit/rccpatch.cpp.orig 1970-01-01 01:00:00.000000000 +0100 -+++ taglib/toolkit/rccpatch.cpp 2008-11-20 15:58:31.000000000 +0100 -@@ -0,0 +1,198 @@ -+#include <stdlib.h> -+ -+#include <string> -+#include "tstring.h" -+#include "tbytevector.h" -+ -+#ifndef HAVE_LIBRCC -+# include <config.h> -+#endif -+ -+#ifdef HAVE_LIBRCC -+# include <librcc.h> -+# include <string.h> -+#endif /* HAVE_LIBRCC */ -+ -+ -+#ifdef HAVE_LIBRCC -+# define ID3_CLASS 0 -+# define ID3V2_CLASS 1 -+# define UTF_CLASS 2 -+# define OUT_CLASS 3 -+static rcc_class classes[] = { -+ { "id3", RCC_CLASS_STANDARD, NULL, NULL, "ID3 Encoding", 0 }, -+ { "id3v2", RCC_CLASS_STANDARD, "id3", NULL, "ID3 v.2 Encoding", 0 }, -+ { "utf", RCC_CLASS_KNOWN, "UTF-8", NULL, "Unicode Encoding", 0}, -+ { "out", RCC_CLASS_TRANSLATE_LOCALE, "LC_CTYPE", NULL, "Output Encoding", 0 }, -+ { NULL, RCC_CLASS_STANDARD, NULL, NULL, NULL, 0 } -+}; -+ -+static int rcc_initialized = 0; -+ -+static rcc_context ctx = NULL; -+#endif /* HAVE_LIBRCC */ -+ -+ -+void rccPatchFree() { -+#ifdef HAVE_LIBRCC -+ if (rcc_initialized) { -+ rccFree(); -+ rcc_initialized = 0; -+ } -+#endif /* HAVE_LIBRCC */ -+} -+ -+void rccPatchInit() { -+#ifdef HAVE_LIBRCC -+ if (rcc_initialized) return; -+ rccInit(); -+ rccInitDefaultContext(NULL, 0, 0, classes, 0); -+ rccLoad(NULL, "xmms"); -+ rccInitDb4(NULL, NULL, 0); -+ rcc_initialized = 1; -+#endif /* HAVE_LIBRCC */ -+} -+ -+void rccPatchSetContext(void *newctx) { -+#ifdef HAVE_LIBRCC -+ if (newctx) { -+ ctx = (rcc_context)newctx; -+ rcc_initialized = 1; -+ } -+#endif /* HAVE_LIBRCC */ -+} -+ -+static void rccPatchTryInit() { -+#ifdef HAVE_LIBRCC -+ if (!rcc_initialized) { -+ rccPatchInit(); -+ if (rcc_initialized) atexit(rccPatchFree); -+ } -+#endif /* HAVE_LIBRCC */ -+} -+ -+ -+TagLib::ByteVector rccPatchRecodeOutput(const std::string &s) { -+ TagLib::ByteVector v; -+#ifdef HAVE_LIBRCC -+ size_t rlen; -+ char *res; -+ -+ rccPatchTryInit(); -+ -+ res = rccSizedRecode(ctx, UTF_CLASS, OUT_CLASS, s.c_str(), s.length(), &rlen); -+ if (res) v.setData(res, rlen); -+ else v.setData(s.c_str(), s.length()); -+ -+ return v; -+#else -+ v.setData("", 0); -+ -+ return v; -+#endif /* HAVE_LIBRCC */ -+} -+ -+TagLib::ByteVector rccPatchRecodeOutputID3(const std::string &s, bool v2 = false) { -+ TagLib::ByteVector v; -+#ifdef HAVE_LIBRCC -+ size_t rlen; -+ char *res; -+ -+ rccPatchTryInit(); -+ -+ res = rccSizedRecode(ctx, UTF_CLASS, v2?ID3V2_CLASS:ID3_CLASS, s.c_str(), s.length(), &rlen); -+ if (res) v.setData(res, rlen); -+ else v.setData(s.c_str(), s.length()); -+ -+ return v; -+#else -+ v.setData("", 0); -+ -+ return v; -+#endif /* HAVE_LIBRCC */ -+} -+ -+TagLib::ByteVector rccPatchRecodeInput(const std::string &s) { -+ TagLib::ByteVector v; -+#ifdef HAVE_LIBRCC -+ size_t rlen; -+ char *res; -+ -+ rccPatchTryInit(); -+ -+ res = rccSizedRecode(ctx, OUT_CLASS, UTF_CLASS, s.c_str(), s.length(), &rlen); -+ if (res) v.setData(res, rlen); -+ else v.setData(s.c_str(), s.length()); -+ -+ return v; -+#else -+ v.setData("", 0); -+ -+ return v; -+#endif /* HAVE_LIBRCC */ -+} -+ -+TagLib::ByteVector rccPatchRecodeInputID3(const std::string &s, bool v2 = false) { -+ TagLib::ByteVector v; -+#ifdef HAVE_LIBRCC -+ size_t rlen; -+ char *res; -+ -+ rccPatchTryInit(); -+ -+ res = rccSizedRecode(ctx, v2?ID3V2_CLASS:ID3_CLASS, UTF_CLASS, s.c_str(), s.length(), &rlen); -+ if (res) v.setData(res, rlen); -+ else v.setData(s.c_str(), s.length()); -+ -+ return v; -+#else -+ v.setData("", 0); -+ -+ return v; -+#endif /* HAVE_LIBRCC */ -+} -+ -+TagLib::String::Type rccPatchGetLocaleType() { -+#ifdef HAVE_LIBRCC -+ size_t len; -+ char charset[32]; -+ -+ rccPatchTryInit(); -+ -+ if (!rccLocaleGetCharset(charset, NULL, 31)) { -+ if (!strncmp(charset, "UTF", 3)) { -+ len = strlen(charset); -+ -+ if (charset[len-1]=='8') return TagLib::String::UTF8; -+ if (!strcmp(charset+(len-2),"16")) return TagLib::String::UTF16; -+ if (!strcmp(charset+(len-4),"16LE")) return TagLib::String::UTF16LE; -+ if (!strcmp(charset+(len-4),"16BE")) return TagLib::String::UTF16BE; -+ } -+ return TagLib::String::Latin1; -+ } -+#endif /* HAVE_LIBRCC */ -+ return TagLib::String::UTF8; -+} -+ -+TagLib::String::Type rccPatchGetID3Type() { -+#ifdef HAVE_LIBRCC -+ size_t len; -+ const char *charset; -+ -+ rccPatchTryInit(); -+ -+ charset = rccGetCurrentCharsetName(ctx, ID3V2_CLASS); -+ if (charset) { -+ if (!strncmp(charset, "UTF", 3)) { -+ len = strlen(charset); -+ -+ if (charset[len-1]=='8') return TagLib::String::UTF8; -+ if (!strcmp(charset+(len-2),"16")) return TagLib::String::UTF16; -+ if (!strcmp(charset+(len-4),"16LE")) return TagLib::String::UTF16LE; -+ if (!strcmp(charset+(len-4),"16BE")) return TagLib::String::UTF16BE; -+ } -+ return TagLib::String::Latin1ID3V2; -+ } -+#endif /* HAVE_LIBRCC */ -+ return TagLib::String::Latin1; -+} ---- taglib/toolkit/rccpatch.h.orig 1970-01-01 01:00:00.000000000 +0100 -+++ taglib/toolkit/rccpatch.h 2008-11-20 15:24:19.000000000 +0100 -@@ -0,0 +1,20 @@ -+#ifndef _RCC_PATCH_H -+#define _RCC_PATCH_H -+ -+#include <string.h> -+#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); -+ -+TagLib::String::Type rccPatchGetLocaleType(); -+TagLib::String::Type rccPatchGetID3Type(); -+ -+#endif /* _RCC_PATCH_H */ ---- taglib/toolkit/tstring.cpp.orig 2008-02-04 16:14:45.000000000 +0100 -+++ taglib/toolkit/tstring.cpp 2008-11-20 15:24:21.000000000 +0100 -@@ -23,6 +23,7 @@ - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -+#include "rccpatch.h" - #include "tstring.h" - #include "unicode.h" - #include "tdebug.h" -@@ -167,7 +168,7 @@ - if(v.isEmpty()) - return; - -- if(t == Latin1 || t == UTF8) { -+ if(t == Latin1 || t == Latin1ID3 || t == Latin1ID3V2 || t == UTF8) { - - int length = 0; - d->data.resize(v.size()); -@@ -358,10 +359,21 @@ - { - ByteVector v; - -- switch(t) { -+ if (t == Locale) t = rccPatchGetLocaleType(); - -+ 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; -+ - for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) - v.append(char(*it)); - break; -@@ -692,6 +704,31 @@ - - void String::prepare(Type t) - { -+ if (t == Locale) t = rccPatchGetLocaleType(); -+ -+ 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 (v.size()) { -+ int length = 0; -+ d->data.resize(v.size()); -+ wstring::iterator targetIt = d->data.begin(); -+ for(ByteVector::ConstIterator it = v.begin(); it != v.end() && (*it); ++it) { -+ *targetIt = uchar(*it); -+ ++targetIt; -+ ++length; -+ } -+ d->data.resize(length); -+ } -+ -+ t = UTF8; -+ } -+ - switch(t) { - case UTF16: - { -@@ -781,6 +818,27 @@ - - std::ostream &operator<<(std::ostream &s, const String &str) - { -- s << str.to8Bit(); -+ ByteVector bv = str.data(String::Locale); -+ s << bv; - return s; - } -+ -+String::Type String::ID3Type(int i) { -+ if (i == Latin1) return Latin1ID3V2; -+ return Type(i); -+}; -+ -+String::Type String::ID3WType(Type type) { -+ Type rcc_type = rccPatchGetID3Type(); -+ if ((rcc_type == Latin1ID3)||(rcc_type == Latin1ID3V2)) { -+ if (type == Latin1) return rcc_type; -+ return type; -+ } -+ -+ return rcc_type; -+}; -+ -+String::Type String::ID3RealType(Type type) { -+ if ((type == Latin1ID3)||(type == Latin1ID3V2)) return Latin1; -+ return type; -+} ---- taglib/toolkit/tstring.h.orig 2008-02-04 16:14:45.000000000 +0100 -+++ taglib/toolkit/tstring.h 2008-11-20 15:24:21.000000000 +0100 -@@ -81,6 +81,18 @@ - */ - enum Type { - /*! -+ * Determine using current locale settings -+ */ -+ Locale = -1, -+ /*! -+ * Latin1 for ID3 tags. -+ */ -+ Latin1ID3 = 65, -+ /*! -+ * Latin1 for ID3 tags. -+ */ -+ Latin1ID3V2 = 66, -+ /*! - * IS08859-1, or <i>Latin1</i> encoding. 8 bit characters. - */ - Latin1 = 0, -@@ -103,6 +115,10 @@ - UTF16LE = 4 - }; - -+ static Type ID3Type(int i); -+ static Type ID3WType(Type type); -+ static Type ID3RealType(Type type); -+ - /*! - * Constructs an empty String. - */ ---- taglib/CMakeLists.txt.orig 2012-07-14 15:53:09.000000000 -0400 -+++ taglib/CMakeLists.txt 2012-07-14 21:34:40.000000000 -0400 -@@ -25,6 +25,10 @@ - ${CMAKE_CURRENT_SOURCE_DIR}/xm - ) - -+if(HAVE_LIBRCC) -+ INCLUDE_DIRECTORIES(${RCC_INCLUDE_DIR}) -+endif(HAVE_LIBRCC) -+ - if(ZLIB_FOUND) - include_directories(${ZLIB_INCLUDE_DIR}) - endif() -@@ -35,6 +39,7 @@ - audioproperties.h - taglib_export.h - ${CMAKE_BINARY_DIR}/taglib_config.h -+ toolkit/rccpatch.h - toolkit/taglib.h - toolkit/tstring.h - toolkit/tlist.h -@@ -267,6 +272,7 @@ - ) - - set(toolkit_SRCS -+ toolkit/rccpatch.cpp - toolkit/tstring.cpp - toolkit/tstringlist.cpp - toolkit/tbytevector.cpp -@@ -297,6 +303,10 @@ - target_link_libraries(tag ${ZLIB_LIBRARIES}) - endif() - -+if(HAVE_LIBRCC) -+ target_link_libraries(tag ${RCC_LIBRARIES}) -+endif() -+ - set_target_properties(tag PROPERTIES - VERSION ${TAGLIB_SOVERSION_MAJOR}.${TAGLIB_SOVERSION_MINOR}.${TAGLIB_SOVERSION_PATCH} - SOVERSION ${TAGLIB_SOVERSION_MAJOR} diff --git a/audio/taglib/pkg-plist b/audio/taglib/pkg-plist index 260dd96c5e4a..b9f7cdd38915 100644 --- a/audio/taglib/pkg-plist +++ b/audio/taglib/pkg-plist @@ -29,6 +29,7 @@ include/taglib/id3v2framefactory.h include/taglib/id3v2header.h include/taglib/id3v2synchdata.h include/taglib/id3v2tag.h +include/taglib/infotag.h include/taglib/itfile.h include/taglib/itproperties.h include/taglib/modfile.h @@ -50,10 +51,11 @@ include/taglib/oggfile.h include/taglib/oggflacfile.h include/taglib/oggpage.h include/taglib/oggpageheader.h +include/taglib/opusfile.h +include/taglib/opusproperties.h include/taglib/ownershipframe.h include/taglib/popularimeterframe.h include/taglib/privateframe.h -%%RCC%%include/taglib/rccpatch.h include/taglib/relativevolumeframe.h include/taglib/rifffile.h include/taglib/s3mfile.h @@ -68,6 +70,7 @@ include/taglib/taglib_export.h include/taglib/tbytevector.h include/taglib/tbytevectorlist.h include/taglib/tbytevectorstream.h +include/taglib/tdebuglistener.h include/taglib/textidentificationframe.h include/taglib/tfile.h include/taglib/tfilestream.h @@ -77,6 +80,7 @@ include/taglib/tlist.tcc include/taglib/tmap.h include/taglib/tmap.tcc include/taglib/tpropertymap.h +include/taglib/trefcounter.h include/taglib/trueaudiofile.h include/taglib/trueaudioproperties.h include/taglib/tstring.h @@ -97,7 +101,7 @@ include/taglib/xmfile.h include/taglib/xmproperties.h lib/libtag.so lib/libtag.so.1 -lib/libtag.so.1.12.0 +lib/libtag.so.1.14.0 lib/libtag_c.so lib/libtag_c.so.0 lib/libtag_c.so.0.0.0 |