From abecd94e38c95522f241c335c76aa3150e43eedd Mon Sep 17 00:00:00 2001 From: Nicolás Reynolds Date: Thu, 30 Jan 2014 03:49:22 +0000 Subject: Thu Jan 30 03:47:11 UTC 2014 --- extra/id3lib/00-add-libz-to-compilation.patch | 14 ++ extra/id3lib/05-create-m4-directory.patch | 12 ++ .../10-fix-compilation-with-cpp-headers.patch | 22 +++ .../id3lib/15-fix-headers-of-main-functions.patch | 45 +++++ extra/id3lib/20-create-manpages.patch | 198 +++++++++++++++++++++ extra/id3lib/30-fix-utf16.patch | 38 ++++ extra/id3lib/40-deal-with-mkstemp.patch | 54 ++++++ extra/id3lib/50-remove-outdated-check.patch | 11 ++ extra/id3lib/60-add-c-wrapper-functions.patch | 58 ++++++ extra/id3lib/60-fix_make_check.patch | 50 ++++++ .../60-id3lib-missing-nullpointer-check.patch | 12 ++ extra/id3lib/60-spelling.patch | 107 +++++++++++ extra/id3lib/61-fix_vbr_stack_smash.patch | 19 ++ extra/id3lib/PKGBUILD | 81 +++++++-- extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch | 49 ----- extra/id3lib/id3lib-3.8.3-gcc-4.3.patch | 83 --------- .../patch_id3lib_3.8.3_UTF16_writing_bug.diff | 39 ---- 17 files changed, 704 insertions(+), 188 deletions(-) create mode 100644 extra/id3lib/00-add-libz-to-compilation.patch create mode 100644 extra/id3lib/05-create-m4-directory.patch create mode 100644 extra/id3lib/10-fix-compilation-with-cpp-headers.patch create mode 100644 extra/id3lib/15-fix-headers-of-main-functions.patch create mode 100644 extra/id3lib/20-create-manpages.patch create mode 100644 extra/id3lib/30-fix-utf16.patch create mode 100644 extra/id3lib/40-deal-with-mkstemp.patch create mode 100644 extra/id3lib/50-remove-outdated-check.patch create mode 100644 extra/id3lib/60-add-c-wrapper-functions.patch create mode 100644 extra/id3lib/60-fix_make_check.patch create mode 100644 extra/id3lib/60-id3lib-missing-nullpointer-check.patch create mode 100644 extra/id3lib/60-spelling.patch create mode 100644 extra/id3lib/61-fix_vbr_stack_smash.patch delete mode 100644 extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch delete mode 100644 extra/id3lib/id3lib-3.8.3-gcc-4.3.patch delete mode 100644 extra/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff (limited to 'extra/id3lib') diff --git a/extra/id3lib/00-add-libz-to-compilation.patch b/extra/id3lib/00-add-libz-to-compilation.patch new file mode 100644 index 000000000..e93787736 --- /dev/null +++ b/extra/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/extra/id3lib/05-create-m4-directory.patch b/extra/id3lib/05-create-m4-directory.patch new file mode 100644 index 000000000..d8111205e --- /dev/null +++ b/extra/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/extra/id3lib/10-fix-compilation-with-cpp-headers.patch b/extra/id3lib/10-fix-compilation-with-cpp-headers.patch new file mode 100644 index 000000000..a9b45ab02 --- /dev/null +++ b/extra/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 ++#include + + #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 ++#include + + class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer + { diff --git a/extra/id3lib/15-fix-headers-of-main-functions.patch b/extra/id3lib/15-fix-headers-of-main-functions.patch new file mode 100644 index 000000000..48e01d145 --- /dev/null +++ b/extra/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/extra/id3lib/20-create-manpages.patch b/extra/id3lib/20-create-manpages.patch new file mode 100644 index 000000000..b2ef4ef57 --- /dev/null +++ b/extra/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 . Manual page written for ++Debian GNU/Linux by Robert Woodcock . ++ +--- /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 . Manual page written for ++Debian GNU/Linux by Robert Woodcock . ++ +--- /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 \-1, \-\-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 . Manual page written for ++Debian GNU/Linux by Robert Woodcock . +--- /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 \-1, \-\-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 . Manual page written for ++Debian GNU/Linux by Robert Woodcock . diff --git a/extra/id3lib/30-fix-utf16.patch b/extra/id3lib/30-fix-utf16.patch new file mode 100644 index 000000000..3d3f50fed --- /dev/null +++ b/extra/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 + + * 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/extra/id3lib/40-deal-with-mkstemp.patch b/extra/id3lib/40-deal-with-mkstemp.patch new file mode 100644 index 000000000..36c84179f --- /dev/null +++ b/extra/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/extra/id3lib/50-remove-outdated-check.patch b/extra/id3lib/50-remove-outdated-check.patch new file mode 100644 index 000000000..386da2771 --- /dev/null +++ b/extra/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/extra/id3lib/60-add-c-wrapper-functions.patch b/extra/id3lib/60-add-c-wrapper-functions.patch new file mode 100644 index 000000000..d72e81c0e --- /dev/null +++ b/extra/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(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(field)->GetEncoding()); ++ } ++ return enc; ++ } ++ ++ ID3_C_EXPORT bool CCONV ++ ID3Field_IsEncodable(const ID3Field *field) ++ { ++ bool isEncodable = false; ++ if (field) ++ { ++ ID3_CATCH(isEncodable = reinterpret_cast(field)->IsEncodable()); ++ } ++ return isEncodable; ++ } ++ + #ifdef __cplusplus + } + #endif /* __cplusplus */ diff --git a/extra/id3lib/60-fix_make_check.patch b/extra/id3lib/60-fix_make_check.patch new file mode 100644 index 000000000..e2bb1b051 --- /dev/null +++ b/extra/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 + #include + ++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/extra/id3lib/60-id3lib-missing-nullpointer-check.patch b/extra/id3lib/60-id3lib-missing-nullpointer-check.patch new file mode 100644 index 000000000..d4ca5d292 --- /dev/null +++ b/extra/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/extra/id3lib/60-spelling.patch b/extra/id3lib/60-spelling.patch new file mode 100644 index 000000000..7547aa3d5 --- /dev/null +++ b/extra/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: johan@id3.org +

+ +- +\ No newline at end of file ++ +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/extra/id3lib/61-fix_vbr_stack_smash.patch b/extra/id3lib/61-fix_vbr_stack_smash.patch new file mode 100644 index 000000000..9bf33e978 --- /dev/null +++ b/extra/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/extra/id3lib/PKGBUILD b/extra/id3lib/PKGBUILD index 269acf934..5d1ae757d 100644 --- a/extra/id3lib/PKGBUILD +++ b/extra/id3lib/PKGBUILD @@ -1,34 +1,81 @@ -# $Id: PKGBUILD 198108 2013-10-30 12:50:19Z allan $ -# Contributor: Jochem Kossen +# $Id: PKGBUILD 204871 2014-01-29 20:02:59Z guillaume $ +# Maintainer : Guillaume ALAUX +# Contributor: Jochem Kossen +# Contributor: rtfreedman pkgname=id3lib pkgver=3.8.3 -pkgrel=13 -pkgdesc="An open-source, cross-platform software development library for reading, writing, and manipulating ID3v1 and ID3v2 tags" +pkgrel=14 +pkgdesc='Library for reading, writing, and manipulating ID3v1 and ID3v2 tags' arch=('i686' 'x86_64') license=('LGPL') url="http://id3lib.sourceforge.net/" depends=('zlib' 'gcc-libs') -source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz" - 'patch_id3lib_3.8.3_UTF16_writing_bug.diff' - 'id3lib-3.8.3-CVE-2007-4460.patch' - 'id3lib-3.8.3-gcc-4.3.patch') +source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz + 00-add-libz-to-compilation.patch + 05-create-m4-directory.patch + 10-fix-compilation-with-cpp-headers.patch + 15-fix-headers-of-main-functions.patch + 20-create-manpages.patch + 30-fix-utf16.patch + 40-deal-with-mkstemp.patch + 50-remove-outdated-check.patch + 60-add-c-wrapper-functions.patch + 60-fix_make_check.patch + 60-id3lib-missing-nullpointer-check.patch + 60-spelling.patch + 61-fix_vbr_stack_smash.patch) + md5sums=('19f27ddd2dda4b2d26a559a4f0f402a7' - '196c65adee1ba511ddacef2de0dfd102' - '78e90e15ddd1122b66da352b6c3b00ff' - 'fdbffd2d9d289ed0d730950c78d4ebc4') + '9428ef38283d13adb6e349089537a63f' + '5a78e0fe586fba334eae2a29e4bf5a28' + '88f21f1bf4f697be8030706bbec11705' + 'b3de841cd2eda0d37c8c8330119e12d4' + 'd922a91abcdee1ffce26b512b171c2aa' + '74ba59c03f91fedbe4dd8045b29c7e15' + 'd2d06d46df3867d73746f584d1e6fcc5' + 'd3a61d07a2bfa83f4ac6290794789022' + '93ef4b26ad08027e28d3f80ad6e492b4' + '5c4b53a3d5543c5c50b23d6d5b9f230b' + '964fa0db0da7b1495b34b81bd36539fd' + '26c74a90267892bbaca1e162919121d0' + '0973e285cdc420130b984a259cdd8ae0') + +prepare() { + cd ${srcdir}/${pkgname}-${pkgver} + + patch -p1 -i ${srcdir}/00-add-libz-to-compilation.patch + patch -p1 -i ${srcdir}/05-create-m4-directory.patch + patch -p1 -i ${srcdir}/10-fix-compilation-with-cpp-headers.patch + patch -p1 -i ${srcdir}/15-fix-headers-of-main-functions.patch + patch -p1 -i ${srcdir}/20-create-manpages.patch + patch -p1 -i ${srcdir}/30-fix-utf16.patch + patch -p1 -i ${srcdir}/40-deal-with-mkstemp.patch + patch -p1 -i ${srcdir}/60-add-c-wrapper-functions.patch + patch -p1 -i ${srcdir}/60-fix_make_check.patch + patch -p1 -i ${srcdir}/60-id3lib-missing-nullpointer-check.patch + patch -p1 -i ${srcdir}/60-spelling.patch + patch -p1 -i ${srcdir}/61-fix_vbr_stack_smash.patch + patch -p1 -i ${srcdir}/50-remove-outdated-check.patch + + libtoolize -fc + aclocal + autoconf + automake --add-missing --copy +} build() { - cd "${srcdir}"/${pkgname}-${pkgver} - patch -p1 -i "${srcdir}"/patch_id3lib_3.8.3_UTF16_writing_bug.diff - patch -p0 -i "${srcdir}"/id3lib-3.8.3-CVE-2007-4460.patch - patch -p1 -i "${srcdir}"/id3lib-3.8.3-gcc-4.3.patch + cd ${srcdir}/${pkgname}-${pkgver} ./configure --prefix=/usr - sed -i -e 's/^LIBS =/LIBS = -lz -lstdc++/' src/Makefile make } +check() { + cd ${srcdir}/${pkgname}-${pkgver} + make check +} + package() { - cd "${srcdir}"/${pkgname}-${pkgver} + cd ${srcdir}/${pkgname}-${pkgver} make DESTDIR="${pkgdir}" install } diff --git a/extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch b/extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch deleted file mode 100644 index daa08667b..000000000 --- a/extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- src/tag_file.cpp -+++ 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/extra/id3lib/id3lib-3.8.3-gcc-4.3.patch b/extra/id3lib/id3lib-3.8.3-gcc-4.3.patch deleted file mode 100644 index f5ec498b6..000000000 --- a/extra/id3lib/id3lib-3.8.3-gcc-4.3.patch +++ /dev/null @@ -1,83 +0,0 @@ -diff -Naur id3lib-3.8.3-orig/configure id3lib-3.8.3/configure ---- id3lib-3.8.3-orig/configure 2008-05-24 23:39:36.000000000 -0400 -+++ id3lib-3.8.3/configure 2008-05-24 23:39:57.000000000 -0400 -@@ -10296,8 +10296,7 @@ - - for ac_header in \ - string \ -- iomanip.h \ - - do - as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` - -diff -Naur id3lib-3.8.3-orig/include/id3/id3lib_strings.h id3lib-3.8.3/include/id3/id3lib_strings.h ---- id3lib-3.8.3-orig/include/id3/id3lib_strings.h 2008-03-05 18:19:46.000000000 -0600 -+++ id3lib-3.8.3/include/id3/id3lib_strings.h 2008-03-05 18:19:38.000000000 -0600 -@@ -30,6 +30,7 @@ - #define _ID3LIB_STRINGS_H_ - - #include -+#include - - #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000)) - namespace std -diff -Naur id3lib-3.8.3-orig/include/id3/writers.h id3lib-3.8.3/include/id3/writers.h ---- id3lib-3.8.3-orig/include/id3/writers.h 2003-03-01 18:23:00.000000000 -0600 -+++ id3lib-3.8.3/include/id3/writers.h 2008-03-05 18:23:05.000000000 -0600 -@@ -30,7 +30,7 @@ - - #include "id3/writer.h" - #include "id3/id3lib_streams.h" --//#include -+#include - - class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer - { -diff -Naur id3lib-3.8.3-orig/examples/demo_convert.cpp id3lib-3.8.3/examples/demo_convert.cpp ---- id3lib-3.8.3-orig/examples/demo_convert.cpp 2003-03-01 18:23:00.000000000 -0600 -+++ id3lib-3.8.3/examples/demo_convert.cpp 2008-03-05 18:26:50.000000000 -0600 -@@ -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; -diff -Naur id3lib-3.8.3-orig/examples/demo_info.cpp id3lib-3.8.3/examples/demo_info.cpp ---- id3lib-3.8.3-orig/examples/demo_info.cpp 2003-03-01 18:23:00.000000000 -0600 -+++ id3lib-3.8.3/examples/demo_info.cpp 2008-03-05 18:27:40.000000000 -0600 -@@ -309,7 +309,7 @@ - - #define DEBUG - --int main( unsigned int argc, char * const argv[]) -+int main( int argc, char * const argv[]) - { - ID3D_INIT_DOUT(); - -diff -Naur id3lib-3.8.3-orig/examples/demo_tag.cpp id3lib-3.8.3/examples/demo_tag.cpp ---- id3lib-3.8.3-orig/examples/demo_tag.cpp 2003-03-01 18:23:00.000000000 -0600 -+++ id3lib-3.8.3/examples/demo_tag.cpp 2008-03-05 18:31:20.000000000 -0600 -@@ -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 -Naur id3lib-3.8.3-orig/examples/demo_copy.cpp id3lib-3.8.3/examples/demo_copy.cpp ---- id3lib-3.8.3-orig/examples/demo_copy.cpp 2003-03-01 18:23:00.000000000 -0600 -+++ id3lib-3.8.3/examples/demo_copy.cpp 2008-03-05 18:32:44.000000000 -0600 -@@ -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(); diff --git a/extra/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff b/extra/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff deleted file mode 100644 index b05d2cf29..000000000 --- a/extra/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff +++ /dev/null @@ -1,39 +0,0 @@ -diff -ruN id3lib-3.8.3.orig/ChangeLog id3lib-3.8.3/ChangeLog ---- id3lib-3.8.3.orig/ChangeLog 2003-03-02 01:23:00.000000000 +0100 -+++ id3lib-3.8.3/ChangeLog 2006-02-22 00:33:59.946214472 +0100 -@@ -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 - - * THANKS (1.20): added more people -diff -ruN id3lib-3.8.3.orig/src/io_helpers.cpp id3lib-3.8.3/src/io_helpers.cpp ---- id3lib-3.8.3.orig/src/io_helpers.cpp 2003-03-02 01:23:00.000000000 +0100 -+++ id3lib-3.8.3/src/io_helpers.cpp 2006-02-22 00:35:02.926639992 +0100 -@@ -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; - } -- cgit v1.2.3-54-g00ecf