aboutsummaryrefslogtreecommitdiffstats
path: root/testing/id3lib
diff options
context:
space:
mode:
authorCarlo Landmeter <clandmeter@gmail.com>2014-10-14 22:21:38 +0200
committerCarlo Landmeter <clandmeter@gmail.com>2014-10-14 22:22:13 +0200
commitac29cc338be46b86e61922f69d928645d71d5a9b (patch)
tree6790b0f01deb91375a32c5770d645db5be330872 /testing/id3lib
parent8d50d846c0d0fe2ccb11f4a40feaac9c76f866ad (diff)
downloadaports-ac29cc338be46b86e61922f69d928645d71d5a9b.tar.bz2
aports-ac29cc338be46b86e61922f69d928645d71d5a9b.tar.xz
testing/id3lib: new aport
Diffstat (limited to 'testing/id3lib')
-rw-r--r--testing/id3lib/00-add-libz-to-compilation.patch14
-rw-r--r--testing/id3lib/05-create-m4-directory.patch12
-rw-r--r--testing/id3lib/10-fix-compilation-with-cpp-headers.patch22
-rw-r--r--testing/id3lib/15-fix-headers-of-main-functions.patch45
-rw-r--r--testing/id3lib/20-create-manpages.patch198
-rw-r--r--testing/id3lib/30-fix-utf16.patch38
-rw-r--r--testing/id3lib/40-deal-with-mkstemp.patch54
-rw-r--r--testing/id3lib/50-remove-outdated-check.patch11
-rw-r--r--testing/id3lib/60-add-c-wrapper-functions.patch58
-rw-r--r--testing/id3lib/60-fix_make_check.patch50
-rw-r--r--testing/id3lib/60-id3lib-missing-nullpointer-check.patch12
-rw-r--r--testing/id3lib/60-spelling.patch107
-rw-r--r--testing/id3lib/61-fix_vbr_stack_smash.patch19
-rw-r--r--testing/id3lib/APKBUILD109
14 files changed, 749 insertions, 0 deletions
diff --git a/testing/id3lib/00-add-libz-to-compilation.patch b/testing/id3lib/00-add-libz-to-compilation.patch
new file mode 100644
index 0000000000..e937877364
--- /dev/null
+++ b/testing/id3lib/00-add-libz-to-compilation.patch
@@ -0,0 +1,14 @@
+This patch was first introduced in version 3.8.3-3
+
+It fixes http://bugs.debian.org/208672
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -74,6 +74,8 @@
+
+ if ID3_NEEDZLIB
+ LDADD = $(top_builddir)/zlib/src/libz.la
++else
++libid3_la_LIBADD = -lz
+ endif
+
+ libid3_la_LDFLAGS = \
diff --git a/testing/id3lib/05-create-m4-directory.patch b/testing/id3lib/05-create-m4-directory.patch
new file mode 100644
index 0000000000..d8111205eb
--- /dev/null
+++ b/testing/id3lib/05-create-m4-directory.patch
@@ -0,0 +1,12 @@
+Create a local m4 subdirectory
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -12,6 +12,8 @@
+ # require automake 1.5
+ AUTOMAKE_OPTIONS = 1.5
+
++ACLOCAL_AMFLAGS = -I m4
++
+ EXTRA_DIST = \
+ HISTORY \
+ config.h.win32 \
diff --git a/testing/id3lib/10-fix-compilation-with-cpp-headers.patch b/testing/id3lib/10-fix-compilation-with-cpp-headers.patch
new file mode 100644
index 0000000000..a9b45ab02c
--- /dev/null
+++ b/testing/id3lib/10-fix-compilation-with-cpp-headers.patch
@@ -0,0 +1,22 @@
+This patch imports the proper C++ headers
+--- a/include/id3/id3lib_strings.h
++++ b/include/id3/id3lib_strings.h
+@@ -30,6 +30,7 @@
+ #define _ID3LIB_STRINGS_H_
+
+ #include <string>
++#include <cstring>
+
+ #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000))
+ namespace std
+--- a/include/id3/writers.h
++++ b/include/id3/writers.h
+@@ -30,7 +30,7 @@
+
+ #include "id3/writer.h"
+ #include "id3/id3lib_streams.h"
+-//#include <string.h>
++#include <cstring>
+
+ class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer
+ {
diff --git a/testing/id3lib/15-fix-headers-of-main-functions.patch b/testing/id3lib/15-fix-headers-of-main-functions.patch
new file mode 100644
index 0000000000..48e01d145f
--- /dev/null
+++ b/testing/id3lib/15-fix-headers-of-main-functions.patch
@@ -0,0 +1,45 @@
+This patch fixes some function headers in demo code used during 'make check'
+--- a/examples/demo_info.cpp
++++ b/examples/demo_info.cpp
+@@ -309,7 +309,7 @@
+
+ #define DEBUG
+
+-int main( unsigned int argc, char * const argv[])
++int main(int argc, char * const argv[])
+ {
+ ID3D_INIT_DOUT();
+
+--- a/examples/demo_convert.cpp
++++ b/examples/demo_convert.cpp
+@@ -84,7 +84,7 @@
+ }
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main(int argc, char * const argv[])
+ {
+ flags_t ulFlag = ID3TT_ALL;
+ gengetopt_args_info args;
+--- a/examples/demo_copy.cpp
++++ b/examples/demo_copy.cpp
+@@ -81,7 +81,7 @@
+ }
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main(int argc, char * const argv[])
+ {
+ int ulFlag = ID3TT_ID3;
+ ID3D_INIT_DOUT();
+--- a/examples/demo_tag.cpp
++++ b/examples/demo_tag.cpp
+@@ -46,7 +46,7 @@
+ os << "v2";
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main(int argc, char * const argv[])
+ {
+ int ulFlag = ID3TT_ID3;
+ ID3D_INIT_DOUT();
diff --git a/testing/id3lib/20-create-manpages.patch b/testing/id3lib/20-create-manpages.patch
new file mode 100644
index 0000000000..cebf3d4d40
--- /dev/null
+++ b/testing/id3lib/20-create-manpages.patch
@@ -0,0 +1,198 @@
+This patch adds debian-made man pages
+--- /dev/null
++++ b/doc/man/id3info.1
+@@ -0,0 +1,31 @@
++.TH ID3INFO 1 "May 2000" local "User Command"
++.SH NAME
++id3info \- Display id3 tag information.
++.SH SYNOPSIS
++.B id3info
++.RB [
++.I OPTION
++.RB ]
++.RB [
++.I FILE
++.RB ]
++.br
++.SH DESCRIPTION
++.B Id3info
++displays both the id3v1 and id3v2 tag information for a file.
++Id3info will not differentiate between the two types of tags.
++.SH OPTIONS
++.TP
++.B \-h, \-\-help
++Display help and exit
++.TP
++.B \-v, \-\-version
++Display version information and exit
++.SH SEE ALSO
++id3convert(1), id3tag(1), id3v2(1)
++.SH AUTHOR
++.B id3lib
++was originally designed and implemented by Dirk Mahoney and is
++maintained by Scott Thomas Haug <sth2@cs.wustl.edu>. Manual page written for
++Debian GNU/Linux by Robert Woodcock <rcw@debian.org>.
++
+--- /dev/null
++++ b/doc/man/id3tag.1
+@@ -0,0 +1,69 @@
++.TH ID3TAG 1 "May 2000" local "User Command"
++.SH NAME
++id3tag \- Tags an mp3 file with id3v1 and/or id3v2 tags.
++.SH SYNOPSIS
++.B id3tag
++.RB [
++.I OPTION
++.RB ] ...
++.RB [
++.I FILE
++.RB ] ...
++.br
++.SH DESCRIPTION
++.B Id3tag
++will render both types of tag by default. Only the last
++tag type indicated in the option list will be used. Non-
++rendered will remain unchanged in the original file. Will
++also parse and convert Lyrics3 v2.0 frames, but will not
++render them.
++
++.SH OPTIONS
++.TP
++.B \-1, \-\-v1tag
++Render only the id3v1 tag
++.TP
++.B \-2, \-\-v2tag
++Render only the id3v2 tag
++.TP
++.B \-h, \-\-help
++Display help and exit
++.TP
++.B \-v, \-\-version
++Display version information and exit
++.TP
++.B \-a, \-\-artist ARTIST
++Set the artist information
++.TP
++.B \-s, \-\-song SONG
++Set the song title information
++.TP
++.B \-A, \-\-album ALBUM
++Set the album title information
++.TP
++.B \-c, \-\-comment COMMENT
++Set the comment information
++.TP
++.B \-C, \-\-desc DESCRIPTION
++Set the comment description
++.TP
++.B \-g, \-\-genre num
++Set the genre number
++.TP
++.B \-y, \-\-year num
++Set the year
++.TP
++.B \-t, \-\-track num
++Set the track number
++.TP
++.B \-T, \-\-total num
++Set the total number of tracks on the album
++
++.SH SEE ALSO
++id3convert(1), id3info(1), id3v2(1)
++.SH AUTHOR
++.B id3lib
++was originally designed and implemented by Dirk Mahoney and is
++maintained by Scott Thomas Haug <sth2@cs.wustl.edu>. Manual page written for
++Debian GNU/Linux by Robert Woodcock <rcw@debian.org>.
++
+--- /dev/null
++++ b/doc/man/id3convert.1
+@@ -0,0 +1,47 @@
++.TH ID3CONVERT 1 "May 2000" local "User Command"
++.SH NAME
++id3convert \- Converts between id3v1 and id3v2 tags of an mp3 file.
++.SH SYNOPSIS
++.B id3convert
++.RB [
++.I OPTION
++.RB ]
++.RB [
++.I FILE
++.RB ]
++.br
++.SH DESCRIPTION
++.B Id3convert
++converts between id3v1 and id3v2 tags of an mp3 file. Id3convert will render
++both types of tag by default. Only the last tag type indicated in the option
++list will be used. Non-rendered tags will remain unchanged in the original
++file. Id3convert will also parse and convert Lyrics3 v2.0 frames, but will
++not render them.
++
++.SH OPTIONS
++.TP
++.B \-1, \-\-v1tag
++Render only the id3v1 tag
++.TP
++.B \-2, \-\-v2tag
++Render only the id3v2 tag
++.TP
++.B \-s, \-\-strip
++Strip, rather than render, the tags
++.TP
++.B \-p, \-\-padding
++Use padding in the tag
++.TP
++.B \-h, \-\-help
++Display help and exit
++.TP
++.B \-v, \-\-version
++Display version information and exit
++
++.SH SEE ALSO
++id3tag(1), id3info(1), id3v2(1)
++.SH AUTHOR
++.B id3lib
++was originally designed and implemented by Dirk Mahoney and is
++maintained by Scott Thomas Haug <sth2@cs.wustl.edu>. Manual page written for
++Debian GNU/Linux by Robert Woodcock <rcw@debian.org>.
+--- /dev/null
++++ b/doc/man/id3cp.1
+@@ -0,0 +1,38 @@
++.TH ID3CP 1 "July 2001" local "User Command"
++.SH NAME
++id3cp \- Copies tags from one file to another.
++.SH SYNOPSIS
++.B id3cp
++.RB [
++.I OPTION
++.RB ] ...
++.RB [
++.I SOURCE
++.RB ]
++.RB [
++.I DEST
++.RB ]
++.br
++.SH DESCRIPTION
++.B Id3cp
++copies tags from SOURCE to DEST.
++.SH OPTIONS
++.TP
++.B \-1, \-\-v1tag
++Render only the id3v1 tag
++.TP
++.B \-2, \-\-v2tag
++Render only the id3v2 tag
++.TP
++.B \-h, \-\-help
++Display help and exit
++.TP
++.B \-v, \-\-version
++Display version information and exit
++.SH SEE ALSO
++id3convert(1), id3info(1), id3v2(1)
++.SH AUTHOR
++.B id3lib
++was originally designed and implemented by Dirk Mahoney and is
++maintained by Scott Thomas Haug <sth2@cs.wustl.edu>. Manual page written for
++Debian GNU/Linux by Robert Woodcock <rcw@debian.org>.
diff --git a/testing/id3lib/30-fix-utf16.patch b/testing/id3lib/30-fix-utf16.patch
new file mode 100644
index 0000000000..3d3f50fed6
--- /dev/null
+++ b/testing/id3lib/30-fix-utf16.patch
@@ -0,0 +1,38 @@
+Patch from 'Spoon' to fix issues with writing certain unicode characters
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,8 @@
++2006-02-17 Jerome Couderc
++
++ * Patch from Spoon to fix UTF-16 writing bug
++ http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
++
+ 2003-03-02 Sunday 17:38 Thijmen Klok <thijmen@id3lib.org>
+
+ * THANKS (1.20): added more people
+--- a/src/io_helpers.cpp
++++ b/src/io_helpers.cpp
+@@ -363,11 +363,22 @@
+ // Write the BOM: 0xFEFF
+ unicode_t BOM = 0xFEFF;
+ writer.writeChars((const unsigned char*) &BOM, 2);
++ // Patch from Spoon : 2004-08-25 14:17
++ // http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
++ // Wrong code
++ //for (size_t i = 0; i < size; i += 2)
++ //{
++ // unicode_t ch = (data[i] << 8) | data[i+1];
++ // writer.writeChars((const unsigned char*) &ch, 2);
++ //}
++ // Right code
++ unsigned char *pdata = (unsigned char *) data.c_str();
+ for (size_t i = 0; i < size; i += 2)
+ {
+- unicode_t ch = (data[i] << 8) | data[i+1];
++ unicode_t ch = (pdata[i] << 8) | pdata[i+1];
+ writer.writeChars((const unsigned char*) &ch, 2);
+ }
++ // End patch
+ }
+ return writer.getCur() - beg;
+ }
diff --git a/testing/id3lib/40-deal-with-mkstemp.patch b/testing/id3lib/40-deal-with-mkstemp.patch
new file mode 100644
index 0000000000..36c84179fc
--- /dev/null
+++ b/testing/id3lib/40-deal-with-mkstemp.patch
@@ -0,0 +1,54 @@
+This patch fixes an issues where temporary files were created in an insecure
+way.
+
+It was first intruduced in version 3.8.3-7 and fixes
+http://bugs.debian.org/438540
+--- a/src/tag_file.cpp
++++ b/src/tag_file.cpp
+@@ -242,8 +242,8 @@
+ strcpy(sTempFile, filename.c_str());
+ strcat(sTempFile, sTmpSuffix.c_str());
+
+-#if ((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
+- // This section is for Windows folk && gcc 3.x folk
++#if !defined(HAVE_MKSTEMP)
++ // This section is for Windows folk
+ fstream tmpOut;
+ createFile(sTempFile, tmpOut);
+
+@@ -257,7 +257,7 @@
+ tmpOut.write((char *)tmpBuffer, nBytes);
+ }
+
+-#else //((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
++#else //!defined(HAVE_MKSTEMP)
+
+ // else we gotta make a temp file, copy the tag into it, copy the
+ // rest of the old file after the tag, delete the old file, rename
+@@ -270,7 +270,7 @@
+ //ID3_THROW_DESC(ID3E_NoFile, "couldn't open temp file");
+ }
+
+- ofstream tmpOut(fd);
++ ofstream tmpOut(sTempFile);
+ if (!tmpOut)
+ {
+ tmpOut.close();
+@@ -285,14 +285,14 @@
+ uchar tmpBuffer[BUFSIZ];
+ while (file)
+ {
+- file.read(tmpBuffer, BUFSIZ);
++ file.read((char *)tmpBuffer, BUFSIZ);
+ size_t nBytes = file.gcount();
+- tmpOut.write(tmpBuffer, nBytes);
++ tmpOut.write((char *)tmpBuffer, nBytes);
+ }
+
+ close(fd); //closes the file
+
+-#endif ////((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
++#endif ////!defined(HAVE_MKSTEMP)
+
+ tmpOut.close();
+ file.close();
diff --git a/testing/id3lib/50-remove-outdated-check.patch b/testing/id3lib/50-remove-outdated-check.patch
new file mode 100644
index 0000000000..386da2771b
--- /dev/null
+++ b/testing/id3lib/50-remove-outdated-check.patch
@@ -0,0 +1,11 @@
+We don't actually need iomanip.h
+--- a/configure.in
++++ b/configure.in
+@@ -227,7 +227,6 @@
+ )
+ AC_CHECK_HEADERS( \
+ string \
+- iomanip.h \
+ ,,AC_MSG_ERROR([Missing a vital header file for id3lib])
+ )
+
diff --git a/testing/id3lib/60-add-c-wrapper-functions.patch b/testing/id3lib/60-add-c-wrapper-functions.patch
new file mode 100644
index 0000000000..d72e81c0ec
--- /dev/null
+++ b/testing/id3lib/60-add-c-wrapper-functions.patch
@@ -0,0 +1,58 @@
+This patch adds C wrapper functions for field encoding.
+
+It was first introduced in version 3.8.3-8 and fixes
+http://bugs.debian.org/281292
+--- a/include/id3.h
++++ b/include/id3.h
+@@ -104,6 +104,9 @@
+ ID3_C_EXPORT void CCONV ID3Field_GetBINARY (const ID3Field *field, uchar *buffer, size_t buffLength);
+ ID3_C_EXPORT void CCONV ID3Field_FromFile (ID3Field *field, const char *fileName);
+ ID3_C_EXPORT void CCONV ID3Field_ToFile (const ID3Field *field, const char *fileName);
++ ID3_C_EXPORT bool CCONV ID3Field_SetEncoding (ID3Field *field, ID3_TextEnc enc);
++ ID3_C_EXPORT ID3_TextEnc CCONV ID3Field_GetEncoding (const ID3Field *field);
++ ID3_C_EXPORT bool CCONV ID3Field_IsEncodable (const ID3Field *field);
+
+ /* field-info wrappers */
+ ID3_C_EXPORT char* CCONV ID3FrameInfo_ShortName (ID3_FrameID frameid);
+--- a/src/c_wrapper.cpp
++++ b/src/c_wrapper.cpp
+@@ -681,6 +681,39 @@
+ }
+ }
+
++ ID3_C_EXPORT bool CCONV
++ ID3Field_SetEncoding(ID3Field *field, ID3_TextEnc enc)
++ {
++ bool changed = false;
++ if (field)
++ {
++ ID3_CATCH(changed = reinterpret_cast<ID3_Field *>(field)->SetEncoding(enc));
++ }
++ return changed;
++ }
++
++ ID3_C_EXPORT ID3_TextEnc CCONV
++ ID3Field_GetEncoding(const ID3Field *field)
++ {
++ ID3_TextEnc enc = ID3TE_NONE;
++ if (field)
++ {
++ ID3_CATCH(enc = reinterpret_cast<const ID3_Field *>(field)->GetEncoding());
++ }
++ return enc;
++ }
++
++ ID3_C_EXPORT bool CCONV
++ ID3Field_IsEncodable(const ID3Field *field)
++ {
++ bool isEncodable = false;
++ if (field)
++ {
++ ID3_CATCH(isEncodable = reinterpret_cast<const ID3_Field *>(field)->IsEncodable());
++ }
++ return isEncodable;
++ }
++
+ #ifdef __cplusplus
+ }
+ #endif /* __cplusplus */
diff --git a/testing/id3lib/60-fix_make_check.patch b/testing/id3lib/60-fix_make_check.patch
new file mode 100644
index 0000000000..e2bb1b0518
--- /dev/null
+++ b/testing/id3lib/60-fix_make_check.patch
@@ -0,0 +1,50 @@
+This patch fixes some function headers and imports in order for 'make check'
+to work.
+
+It was first introduced in version 3.8.3-9
+diff -Naur id3lib-3.8.3.orig/examples/findeng.cpp id3lib-3.8.3/examples/findeng.cpp
+--- id3lib-3.8.3.orig/examples/findeng.cpp 2003-03-02 01:23:00.000000000 +0100
++++ id3lib-3.8.3/examples/findeng.cpp 2009-12-10 00:58:12.173795997 +0100
+@@ -9,7 +9,7 @@
+ using std::cout;
+ using std::endl;
+
+-int main(unsigned argc, char* argv[])
++int main(int argc, char* argv[])
+ {
+ ID3D_INIT_DOUT();
+ ID3D_INIT_WARNING();
+diff -Naur id3lib-3.8.3.orig/examples/findstr.cpp id3lib-3.8.3/examples/findstr.cpp
+--- id3lib-3.8.3.orig/examples/findstr.cpp 2003-03-02 01:23:00.000000000 +0100
++++ id3lib-3.8.3/examples/findstr.cpp 2009-12-10 00:57:48.036819825 +0100
+@@ -9,7 +9,7 @@
+ using std::cout;
+ using std::endl;
+
+-int main(unsigned argc, char* argv[])
++int main(int argc, char* argv[])
+ {
+ ID3D_INIT_DOUT();
+ ID3D_INIT_WARNING();
+diff -Naur id3lib-3.8.3.orig/examples/test_io.cpp id3lib-3.8.3/examples/test_io.cpp
+--- id3lib-3.8.3.orig/examples/test_io.cpp 2003-03-02 01:23:00.000000000 +0100
++++ id3lib-3.8.3/examples/test_io.cpp 2009-12-10 00:57:03.612111640 +0100
+@@ -11,6 +11,9 @@
+ #include <id3/io_strings.h>
+ #include <id3/utils.h>
+
++using std::cin;
++using std::hex;
++using std::dec;
+ using std::cout;
+ using std::endl;
+ using std::cerr;
+@@ -18,7 +21,7 @@
+ using namespace dami;
+
+ int
+-main(size_t argc, const char** argv)
++main(int argc, const char** argv)
+ {
+ ID3D_INIT_DOUT();
+ ID3D_INIT_WARNING();
diff --git a/testing/id3lib/60-id3lib-missing-nullpointer-check.patch b/testing/id3lib/60-id3lib-missing-nullpointer-check.patch
new file mode 100644
index 0000000000..d4ca5d292f
--- /dev/null
+++ b/testing/id3lib/60-id3lib-missing-nullpointer-check.patch
@@ -0,0 +1,12 @@
+This patch adds a check for a null pointer
+--- a/src/header_tag.cpp
++++ b/src/header_tag.cpp
+@@ -54,7 +54,7 @@
+ {
+ size_t bytesUsed = ID3_TagHeader::SIZE;
+
+- if (_info->is_extended)
++ if (_info && _info->is_extended)
+ {
+ bytesUsed += _info->extended_bytes;
+ }
diff --git a/testing/id3lib/60-spelling.patch b/testing/id3lib/60-spelling.patch
new file mode 100644
index 0000000000..7547aa3d54
--- /dev/null
+++ b/testing/id3lib/60-spelling.patch
@@ -0,0 +1,107 @@
+This patch fixes some minor spelling mistakes
+diff -Naur id3lib-3.8.3.orig//ChangeLog id3lib-3.8.3//ChangeLog
+--- id3lib-3.8.3.orig//ChangeLog 2010-06-08 05:21:47.817061336 +0200
++++ id3lib-3.8.3//ChangeLog 2010-06-08 05:21:05.320811354 +0200
+@@ -2266,7 +2266,7 @@
+ * examples/demo_info.cpp (1.19):
+ (PrintInformation): When printing synced lyrics info, now uses a
+ MemoryReader, BinaryNumberReader, and TextReader to extract the
+- infromation from the binary field. This is a cheat, since these
++ information from the binary field. This is a cheat, since these
+ classes aren't normally exposed to folks using the library.
+ Hopefully they will be exposed soon enough for the next major
+ release.
+diff -Naur id3lib-3.8.3.orig//doc/id3v2.3.0.html id3lib-3.8.3//doc/id3v2.3.0.html
+--- id3lib-3.8.3.orig//doc/id3v2.3.0.html 2010-06-08 05:21:47.859810543 +0200
++++ id3lib-3.8.3//doc/id3v2.3.0.html 2010-06-08 05:21:05.373811128 +0200
+@@ -2157,7 +2157,7 @@
+ 64.Native American
+ 65.Cabaret
+ 66.New Wave
+- 67.Psychadelic
++ 67.Psychedelic
+ 68.Rave
+ 69.Showtunes
+ 70.Trailer
+@@ -2254,4 +2254,4 @@
+ Email: <a href="mailto:johan@id3.org">johan@id3.org</a>
+ </p>
+
+-</body></html>
+\ No newline at end of file
++</body></html>
+diff -Naur id3lib-3.8.3.orig//doc/id3v2.3.0.txt id3lib-3.8.3//doc/id3v2.3.0.txt
+--- id3lib-3.8.3.orig//doc/id3v2.3.0.txt 2010-06-08 05:21:47.860810639 +0200
++++ id3lib-3.8.3//doc/id3v2.3.0.txt 2010-06-08 05:21:05.374811307 +0200
+@@ -1929,7 +1929,7 @@
+ 64.Native American
+ 65.Cabaret
+ 66.New Wave
+- 67.Psychadelic
++ 67.Psychedelic
+ 68.Rave
+ 69.Showtunes
+ 70.Trailer
+diff -Naur id3lib-3.8.3.orig//id3com/id3com.idl id3lib-3.8.3//id3com/id3com.idl
+--- id3lib-3.8.3.orig//id3com/id3com.idl 2010-06-08 05:21:47.818060988 +0200
++++ id3lib-3.8.3//id3com/id3com.idl 2010-06-08 05:21:05.355061546 +0200
+@@ -179,7 +179,7 @@
+ /* USER */ ID3_TERMSOFUSE, /**< Terms of use */
+ /* USLT */ ID3_UNSYNCEDLYRICS, /**< Unsynchronized lyric/text transcription */
+ /* WCOM */ ID3_WWWCOMMERCIALINFO, /**< Commercial information */
+- /* WCOP */ ID3_WWWCOPYRIGHT, /**< Copyright/Legal infromation */
++ /* WCOP */ ID3_WWWCOPYRIGHT, /**< Copyright/Legal information */
+ /* WOAF */ ID3_WWWAUDIOFILE, /**< Official audio file webpage */
+ /* WOAR */ ID3_WWWARTIST, /**< Official artist/performer webpage */
+ /* WOAS */ ID3_WWWAUDIOSOURCE, /**< Official audio source webpage */
+diff -Naur id3lib-3.8.3.orig//include/id3/globals.h id3lib-3.8.3//include/id3/globals.h
+--- id3lib-3.8.3.orig//include/id3/globals.h 2010-06-08 05:21:47.818060988 +0200
++++ id3lib-3.8.3//include/id3/globals.h 2010-06-08 05:22:27.395811102 +0200
+@@ -313,7 +313,7 @@
+ /* USER */ ID3FID_TERMSOFUSE, /**< Terms of use */
+ /* USLT */ ID3FID_UNSYNCEDLYRICS, /**< Unsynchronized lyric/text transcription */
+ /* WCOM */ ID3FID_WWWCOMMERCIALINFO, /**< Commercial information */
+- /* WCOP */ ID3FID_WWWCOPYRIGHT, /**< Copyright/Legal infromation */
++ /* WCOP */ ID3FID_WWWCOPYRIGHT, /**< Copyright/Legal information */
+ /* WOAF */ ID3FID_WWWAUDIOFILE, /**< Official audio file webpage */
+ /* WOAR */ ID3FID_WWWARTIST, /**< Official artist/performer webpage */
+ /* WOAS */ ID3FID_WWWAUDIOSOURCE, /**< Official audio source webpage */
+@@ -608,7 +608,7 @@
+ "Native American", //64
+ "Cabaret", //65
+ "New Wave", //66
+- "Psychadelic", //67
++ "Psychedelic", //67
+ "Rave", //68
+ "Showtunes", //69
+ "Trailer", //70
+@@ -686,7 +686,7 @@
+ "Christian Rock ", //141
+ "Merengue", //142
+ "Salsa", //143
+- "Trash Metal", //144
++ "Thrash Metal", //144
+ "Anime", //145
+ "JPop", //146
+ "Synthpop" //147
+diff -Naur id3lib-3.8.3.orig//src/field.cpp id3lib-3.8.3//src/field.cpp
+--- id3lib-3.8.3.orig//src/field.cpp 2010-06-08 05:21:47.818060988 +0200
++++ id3lib-3.8.3//src/field.cpp 2010-06-08 05:21:05.373811128 +0200
+@@ -719,7 +719,7 @@
+ // USER ID3FID_TERMSOFUSE Terms of use
+ // USLT ULT ID3FID_UNSYNCEDLYRICS Unsynchronized lyric/text transcription
+ // WCOM WCM ID3FID_WWWCOMMERCIALINFO Commercial information
+-// WCOP WCM ID3FID_WWWCOPYRIGHT Copyright/Legal infromation
++// WCOP WCM ID3FID_WWWCOPYRIGHT Copyright/Legal information
+ // WOAF WCP ID3FID_WWWAUDIOFILE Official audio file webpage
+ // WOAR WAF ID3FID_WWWARTIST Official artist/performer webpage
+ // WOAS WAR ID3FID_WWWAUDIOSOURCE Official audio source webpage
+@@ -813,7 +813,7 @@
+ {ID3FID_TERMSOFUSE, "" , "USER", false, false, ID3FD_TermsOfUse, "Terms of use"},
+ {ID3FID_UNSYNCEDLYRICS, "ULT", "USLT", false, false, ID3FD_GeneralText, "Unsynchronized lyric/text transcription"},
+ {ID3FID_WWWCOMMERCIALINFO, "WCM", "WCOM", false, false, ID3FD_URL, "Commercial information"},
+- {ID3FID_WWWCOPYRIGHT, "WCP", "WCOP", false, false, ID3FD_URL, "Copyright/Legal infromation"},
++ {ID3FID_WWWCOPYRIGHT, "WCP", "WCOP", false, false, ID3FD_URL, "Copyright/Legal information"},
+ {ID3FID_WWWAUDIOFILE, "WAF", "WOAF", false, false, ID3FD_URL, "Official audio file webpage"},
+ {ID3FID_WWWARTIST, "WAR", "WOAR", false, false, ID3FD_URL, "Official artist/performer webpage"},
+ {ID3FID_WWWAUDIOSOURCE, "WAS", "WOAS", false, false, ID3FD_URL, "Official audio source webpage"},
diff --git a/testing/id3lib/61-fix_vbr_stack_smash.patch b/testing/id3lib/61-fix_vbr_stack_smash.patch
new file mode 100644
index 0000000000..9bf33e9787
--- /dev/null
+++ b/testing/id3lib/61-fix_vbr_stack_smash.patch
@@ -0,0 +1,19 @@
+Description: Fix crashes when reading VBR MP3 file.
+Bug-Ubuntu: https://launchpad.net/bugs/444466
+Origin: upstream, http://sourceforge.net/tracker/?func=detail&aid=937707&group_id=979&atid=300979
+Forwarded: yes
+Author: Urs Fleisch
+
+Index: id3lib3.8.3-3.8.3/src/mp3_parse.cpp
+===================================================================
+--- id3lib3.8.3-3.8.3.orig/src/mp3_parse.cpp 2009-10-06 23:12:10.381250132 +0200
++++ id3lib3.8.3-3.8.3/src/mp3_parse.cpp 2009-10-06 23:14:09.545252591 +0200
+@@ -465,7 +465,7 @@
+ // from http://www.xingtech.com/developer/mp3/
+
+ const size_t VBR_HEADER_MIN_SIZE = 8; // "xing" + flags are fixed
+- const size_t VBR_HEADER_MAX_SIZE = 116; // frames, bytes, toc and scale are optional
++ const size_t VBR_HEADER_MAX_SIZE = 120; // frames, bytes, toc and scale are optional
+
+ if (mp3size >= vbr_header_offest + VBR_HEADER_MIN_SIZE)
+ {
diff --git a/testing/id3lib/APKBUILD b/testing/id3lib/APKBUILD
new file mode 100644
index 0000000000..460914b8fc
--- /dev/null
+++ b/testing/id3lib/APKBUILD
@@ -0,0 +1,109 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer:
+pkgname=id3lib
+pkgver=3.8.3
+pkgrel=0
+pkgdesc="Library for reading, writing, and manipulating ID3v1 and ID3v2 tags"
+url="http://id3lib.sourceforge.net/"
+arch="all"
+license="LGPL"
+depends=""
+depends_dev="zlib-dev"
+makedepends="$depends_dev libtool automake autoconf"
+install=""
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://downloads.sourceforge.net/sourceforge/id3lib/id3lib-$pkgver.tar.gz
+ 00-add-libz-to-compilation.patch
+ 15-fix-headers-of-main-functions.patch
+ 40-deal-with-mkstemp.patch
+ 60-fix_make_check.patch
+ 61-fix_vbr_stack_smash.patch
+ 05-create-m4-directory.patch
+ 20-create-manpages.patch
+ 50-remove-outdated-check.patch
+ 60-id3lib-missing-nullpointer-check.patch
+ 10-fix-compilation-with-cpp-headers.patch
+ 30-fix-utf16.patch
+ 60-add-c-wrapper-functions.patch
+ 60-spelling.patch"
+
+_builddir="$srcdir"/id3lib-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ libtoolize -fc || return 1
+ aclocal || return 1
+ autoconf || return 1
+ automake --add-missing --copy || return 1
+ update_config_sub || return 1
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+ rm -f "$pkgdir"/usr/lib/*.la
+ install -d "${pkgdir}"/usr/share/man/man1 || return 1
+ cp doc/man/* "${pkgdir}"/usr/share/man/man1 || return 1
+}
+
+md5sums="19f27ddd2dda4b2d26a559a4f0f402a7 id3lib-3.8.3.tar.gz
+9428ef38283d13adb6e349089537a63f 00-add-libz-to-compilation.patch
+b3de841cd2eda0d37c8c8330119e12d4 15-fix-headers-of-main-functions.patch
+d2d06d46df3867d73746f584d1e6fcc5 40-deal-with-mkstemp.patch
+5c4b53a3d5543c5c50b23d6d5b9f230b 60-fix_make_check.patch
+0973e285cdc420130b984a259cdd8ae0 61-fix_vbr_stack_smash.patch
+5a78e0fe586fba334eae2a29e4bf5a28 05-create-m4-directory.patch
+0c7c939943bdfcc3a0f6be95fe9b2367 20-create-manpages.patch
+d3a61d07a2bfa83f4ac6290794789022 50-remove-outdated-check.patch
+964fa0db0da7b1495b34b81bd36539fd 60-id3lib-missing-nullpointer-check.patch
+88f21f1bf4f697be8030706bbec11705 10-fix-compilation-with-cpp-headers.patch
+74ba59c03f91fedbe4dd8045b29c7e15 30-fix-utf16.patch
+93ef4b26ad08027e28d3f80ad6e492b4 60-add-c-wrapper-functions.patch
+26c74a90267892bbaca1e162919121d0 60-spelling.patch"
+sha256sums="2749cc3c0cd7280b299518b1ddf5a5bcfe2d1100614519b68702230e26c7d079 id3lib-3.8.3.tar.gz
+e884395cf0bd7b44a550fc8785d79c0992d749be1edc45b00d289cbbd179c6d5 00-add-libz-to-compilation.patch
+042deb7c2df1afa0851622b6086e8eb4b007cc6cfcd70210852d5c25e39b08b1 15-fix-headers-of-main-functions.patch
+d7999cdb425ba8013dd11da7fb570e875d368e5b1236c2b094abee8446f04218 40-deal-with-mkstemp.patch
+88aded7423f266d2fedb0eef9dbb272b53cc776ae98bd71dd5afb30b6ac48515 60-fix_make_check.patch
+5a24d460c9dd1e643ac57b817ea9cec87f44c1d49381065f83879b2eea36adf7 61-fix_vbr_stack_smash.patch
+c41ec6889b775119f71c25fa09bb5110bcf550a14e6aac80597479df453de5fb 05-create-m4-directory.patch
+97442e14a5147df36f35d6a396e2b3fb6e155060ec672d91a68bd1a742234b4e 20-create-manpages.patch
+f908af7715fb164081d191c766b040cefa0a94f1414e98f60bc38b3e0b1aa309 50-remove-outdated-check.patch
+85f20c4d3467f48df1bcaa4150bae55e95270cabb542589f167a914b2f553d04 60-id3lib-missing-nullpointer-check.patch
+5fb24595095596ff55d876fb3e5277000f04c4f7a3e07aff5c05e11639dc2165 10-fix-compilation-with-cpp-headers.patch
+a7cce4176df773677bfc6a527a0465d460fe60a269402af9bdfc9dd6104ea6a4 30-fix-utf16.patch
+1b06c5d2c36e6a1f2236c4603a934d8cd675414dcfd52b997cb584404c0bc77d 60-add-c-wrapper-functions.patch
+b31bfa7213325776f6784a684f082814d3affb050d36a7c41cf1b1df07228c5c 60-spelling.patch"
+sha512sums="3787e261f86933c1c2f2bff2c4b349b42f5d8636e489e4f39f9d75e6dfbdc79b87009a0f4ce4b786f2fb3dbc01ca9d56c4112095b46244f897e6c9a28573adaf id3lib-3.8.3.tar.gz
+54a476e207f7998db5bfe287fedd50dbc5fc41a746265f39136dddd1a62beedc088631de7deae7c4fdd4583de061f251ce4391733831cf988e0d14ca95de23a1 00-add-libz-to-compilation.patch
+05b74296368dfb50efce70d59114e2411add2c2a316133d6f83c5571b822bf650c32a720d2801d83538066604e7a67f394a73bff6c202051607b35a902fa2d21 15-fix-headers-of-main-functions.patch
+97b1686ca3b7feefe7c2cc5f90a31f42fb55fd7baf45b0abe07c6d879bdf752f21305a6a883241c18e20847c43175c3d2c911dce14aa5f382f46bf44c07759f1 40-deal-with-mkstemp.patch
+ec1333b83aca18c7d662b5f0c8d209f3f10da49194eebae66fce27c2d483bcb3528d9f39549eb1365e9dd4bd34f9fa2f86b528a17838537ba11c366aa57b38c7 60-fix_make_check.patch
+b4fe59876edf87ed06183e2557b72e1b40f1d09ebd707bf1695d522ee5ad8eb75b80f3011a861505929b4e28ae9ed4037bbb2eefc3d7e8de83ef5bc495df67c5 61-fix_vbr_stack_smash.patch
+46cd3b0635debc7b6445ad1bc81b14c7ee3edb0352c5f0cadceda6597c776f9d771e229ba87288a086fa2ba612dd9e089151851e033681ff31ea96190fc0f256 05-create-m4-directory.patch
+a986c8186d821baef372ef61ea4c3130bc8b2d5a30d4dafbe3afdcc02b37ef3c98d300a1b43ec9c9731edc92e94acce3e975a270209b2f4fbe125fe1f484133d 20-create-manpages.patch
+137732ceee8ec7fc8b686e46bd43276fba6bdcbdce166e85108e7c4b456523b4a29b11ff3101a37489e2386c92dfbe7f088f79c9c054f30515095f2b68c89f48 50-remove-outdated-check.patch
+ebb536a3bce83ee8752905766f93c7920d548e85262704d617b3e608a020bca0909f5c59525caa2bbc2f034e2d11fb3eb0842d2b167e00c3ef4551c9eb57adf9 60-id3lib-missing-nullpointer-check.patch
+3dffc437465c377fcc70eae27c126c9b717d22160597e01b470fb0e295eb31c4e13c27d46a5d91776793bc352f67ead7f72e041eda825dc510a3889f1cf93c36 10-fix-compilation-with-cpp-headers.patch
+811e1cc121a965fd0b6162a8937475e3d7dc2a477289707a28f6961ca2b9886b98508a954b12a36c27206202673ebd9ae6ec37d175c947e4e560ac112309ec6d 30-fix-utf16.patch
+404515ffe06e7d0cda8352e656fd7f55112c5edece752bcb3c1e0a9c525626f7e7d7b22cd4ef62f5da7cf43f62a2d00542dd6dd484fb0d7d7da0478ae95a373b 60-add-c-wrapper-functions.patch
+a69363faa763ba589ede68edcf35ba1bded9f0ef07eeb91b38e1a7937e6791059d3fb3881bed0d3ff252064c5eb4a95285138a4d70f59fe745760f3384ddb184 60-spelling.patch"