From 36418881bda346f45c5be5cd9ced6601c853c080 Mon Sep 17 00:00:00 2001 From: Dominik Drobek Date: Sat, 8 Feb 2020 23:21:35 +0100 Subject: libraries/id3lib: use patches from Slackware-current Signed-off-by: Willy Sudiarto Raharjo --- libraries/id3lib/README | 2 +- libraries/id3lib/id3lib.SlackBuild | 16 +- .../patches/00-add-libz-to-compilation.patch | 14 -- .../id3lib/patches/05-create-m4-directory.patch | 12 -- .../10-fix-compilation-with-cpp-headers.patch | 22 --- .../id3lib/patches/10-foo-with-configure.in.patch | 29 --- .../patches/15-fix-headers-of-main-functions.patch | 45 ----- libraries/id3lib/patches/20-create-manpages.patch | 198 --------------------- libraries/id3lib/patches/30-fix-utf16.patch | 38 ---- .../id3lib/patches/31-fix-utf16-stringlists.patch | 24 --- .../id3lib/patches/40-deal-with-mkstemp.patch | 54 ------ .../id3lib/patches/50-remove-outdated-check.patch | 11 -- .../patches/60-add-c-wrapper-functions.patch | 58 ------ libraries/id3lib/patches/60-fix_make_check.patch | 50 ------ .../60-id3lib-missing-nullpointer-check.patch | 12 -- .../id3lib/patches/61-fix_vbr_stack_smash.patch | 19 -- .../id3lib/patches/62-remove-remote-icons.patch | 32 ---- libraries/id3lib/patches/id3lib.c_wrapper.patch | 58 ++++++ libraries/id3lib/patches/id3lib.cppheaders.patch | 22 +++ libraries/id3lib/patches/id3lib.manpages.patch | 198 +++++++++++++++++++++ libraries/id3lib/patches/id3lib.mkstemp.patch | 54 ++++++ .../id3lib/patches/id3lib.nullpointer_check.patch | 12 ++ libraries/id3lib/patches/id3lib.utf8_writing.patch | 38 ++++ .../id3lib/patches/id3lib.vbr_stack_smash.patch | 19 ++ libraries/id3lib/slack-desc | 12 +- 25 files changed, 418 insertions(+), 631 deletions(-) delete mode 100644 libraries/id3lib/patches/00-add-libz-to-compilation.patch delete mode 100644 libraries/id3lib/patches/05-create-m4-directory.patch delete mode 100644 libraries/id3lib/patches/10-fix-compilation-with-cpp-headers.patch delete mode 100644 libraries/id3lib/patches/10-foo-with-configure.in.patch delete mode 100644 libraries/id3lib/patches/15-fix-headers-of-main-functions.patch delete mode 100644 libraries/id3lib/patches/20-create-manpages.patch delete mode 100644 libraries/id3lib/patches/30-fix-utf16.patch delete mode 100644 libraries/id3lib/patches/31-fix-utf16-stringlists.patch delete mode 100644 libraries/id3lib/patches/40-deal-with-mkstemp.patch delete mode 100644 libraries/id3lib/patches/50-remove-outdated-check.patch delete mode 100644 libraries/id3lib/patches/60-add-c-wrapper-functions.patch delete mode 100644 libraries/id3lib/patches/60-fix_make_check.patch delete mode 100644 libraries/id3lib/patches/60-id3lib-missing-nullpointer-check.patch delete mode 100644 libraries/id3lib/patches/61-fix_vbr_stack_smash.patch delete mode 100644 libraries/id3lib/patches/62-remove-remote-icons.patch create mode 100644 libraries/id3lib/patches/id3lib.c_wrapper.patch create mode 100644 libraries/id3lib/patches/id3lib.cppheaders.patch create mode 100644 libraries/id3lib/patches/id3lib.manpages.patch create mode 100644 libraries/id3lib/patches/id3lib.mkstemp.patch create mode 100644 libraries/id3lib/patches/id3lib.nullpointer_check.patch create mode 100644 libraries/id3lib/patches/id3lib.utf8_writing.patch create mode 100644 libraries/id3lib/patches/id3lib.vbr_stack_smash.patch diff --git a/libraries/id3lib/README b/libraries/id3lib/README index 5f549353c1ca..f809127d2d74 100644 --- a/libraries/id3lib/README +++ b/libraries/id3lib/README @@ -7,4 +7,4 @@ Features include identification of valid tags, automatic size conversions, (re)synchronisation of tag frames, seamless tag (de)compression, and optional padding facilities. -This SlackBuild applies all patches provided by Debian team. +This SlackBuild applies several patches provided by Debian team. diff --git a/libraries/id3lib/id3lib.SlackBuild b/libraries/id3lib/id3lib.SlackBuild index 6648f4bed7de..9c036b3e4adb 100644 --- a/libraries/id3lib/id3lib.SlackBuild +++ b/libraries/id3lib/id3lib.SlackBuild @@ -27,7 +27,7 @@ PRGNAM=id3lib VERSION=${VERSION:-3.8.3} -BUILD=${BUILD:-3} +BUILD=${BUILD:-4} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -72,13 +72,17 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -# Apply all available patches provided by Debian -# https://sources.debian.org/patches/id3lib3.8.3/3.8.3-16.2/ -find $CWD/patches/ -type f | sort -n | - while read patch; do patch -p1 -i $patch; done +# Apply patches from Slackware-current: +patch -p1 -i $CWD/patches/id3lib.cppheaders.patch +patch -p1 -i $CWD/patches/id3lib.manpages.patch +patch -p1 -i $CWD/patches/id3lib.utf8_writing.patch +patch -p1 -i $CWD/patches/id3lib.mkstemp.patch +patch -p1 -i $CWD/patches/id3lib.c_wrapper.patch +patch -p1 -i $CWD/patches/id3lib.nullpointer_check.patch +patch -p1 -i $CWD/patches/id3lib.vbr_stack_smash.patch # iomanip.h is obsolete; use the standard C++ header: -sed -i "s%iomanip.h%iomanip%g" configure +sed -e "s%iomanip.h%iomanip%g" -i configure CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ diff --git a/libraries/id3lib/patches/00-add-libz-to-compilation.patch b/libraries/id3lib/patches/00-add-libz-to-compilation.patch deleted file mode 100644 index e93787736487..000000000000 --- a/libraries/id3lib/patches/00-add-libz-to-compilation.patch +++ /dev/null @@ -1,14 +0,0 @@ -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/libraries/id3lib/patches/05-create-m4-directory.patch b/libraries/id3lib/patches/05-create-m4-directory.patch deleted file mode 100644 index d8111205eb8a..000000000000 --- a/libraries/id3lib/patches/05-create-m4-directory.patch +++ /dev/null @@ -1,12 +0,0 @@ -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/libraries/id3lib/patches/10-fix-compilation-with-cpp-headers.patch b/libraries/id3lib/patches/10-fix-compilation-with-cpp-headers.patch deleted file mode 100644 index a9b45ab02c54..000000000000 --- a/libraries/id3lib/patches/10-fix-compilation-with-cpp-headers.patch +++ /dev/null @@ -1,22 +0,0 @@ -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/libraries/id3lib/patches/10-foo-with-configure.in.patch b/libraries/id3lib/patches/10-foo-with-configure.in.patch deleted file mode 100644 index e75689682c7a..000000000000 --- a/libraries/id3lib/patches/10-foo-with-configure.in.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/configure.in -+++ b/configure.in -@@ -17,6 +17,8 @@ - # init autoconf (and check for presence fo reconf) - AC_INIT(reconf) - -+AC_CONFIG_MACRO_DIR([m4]) -+ - ID3LIB_NAME=id3lib - - dnl The following has been adapted from glib (http://www.gtk.org) -@@ -87,14 +89,14 @@ - - AM_INIT_AUTOMAKE($PACKAGE,$VERSION) - -+dnl Initialize maintainer mode -+AM_MAINTAINER_MODE -+ - AC_ISC_POSIX - - dnl Initialize libtool - AM_PROG_LIBTOOL - --dnl Initialize maintainer mode --AM_MAINTAINER_MODE -- - #AC_CANONICAL_HOST - - dnl figure debugging default, prior to $ac_help setup diff --git a/libraries/id3lib/patches/15-fix-headers-of-main-functions.patch b/libraries/id3lib/patches/15-fix-headers-of-main-functions.patch deleted file mode 100644 index 48e01d145f9a..000000000000 --- a/libraries/id3lib/patches/15-fix-headers-of-main-functions.patch +++ /dev/null @@ -1,45 +0,0 @@ -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/libraries/id3lib/patches/20-create-manpages.patch b/libraries/id3lib/patches/20-create-manpages.patch deleted file mode 100644 index cebf3d4d407a..000000000000 --- a/libraries/id3lib/patches/20-create-manpages.patch +++ /dev/null @@ -1,198 +0,0 @@ -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 \-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 . 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 \-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 . Manual page written for -+Debian GNU/Linux by Robert Woodcock . diff --git a/libraries/id3lib/patches/30-fix-utf16.patch b/libraries/id3lib/patches/30-fix-utf16.patch deleted file mode 100644 index 3d3f50fed653..000000000000 --- a/libraries/id3lib/patches/30-fix-utf16.patch +++ /dev/null @@ -1,38 +0,0 @@ -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/libraries/id3lib/patches/31-fix-utf16-stringlists.patch b/libraries/id3lib/patches/31-fix-utf16-stringlists.patch deleted file mode 100644 index 358223874392..000000000000 --- a/libraries/id3lib/patches/31-fix-utf16-stringlists.patch +++ /dev/null @@ -1,24 +0,0 @@ -This patch fixes tag corruption after pipe characters. - -Author: Urs Fleisch -Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680915 ---- a/src/io_helpers.cpp -+++ b/src/io_helpers.cpp -@@ -373,10 +373,17 @@ - //} - // Right code - unsigned char *pdata = (unsigned char *) data.c_str(); -+ unicode_t lastCh = BOM; - for (size_t i = 0; i < size; i += 2) - { - unicode_t ch = (pdata[i] << 8) | pdata[i+1]; -+ if (lastCh == 0 && ch != BOM) -+ { -+ // Last character was NULL, so start next string with BOM. -+ writer.writeChars((const unsigned char*) &BOM, 2); -+ } - writer.writeChars((const unsigned char*) &ch, 2); -+ lastCh = ch; - } - // End patch - } diff --git a/libraries/id3lib/patches/40-deal-with-mkstemp.patch b/libraries/id3lib/patches/40-deal-with-mkstemp.patch deleted file mode 100644 index 36c84179fc33..000000000000 --- a/libraries/id3lib/patches/40-deal-with-mkstemp.patch +++ /dev/null @@ -1,54 +0,0 @@ -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/libraries/id3lib/patches/50-remove-outdated-check.patch b/libraries/id3lib/patches/50-remove-outdated-check.patch deleted file mode 100644 index 386da2771b13..000000000000 --- a/libraries/id3lib/patches/50-remove-outdated-check.patch +++ /dev/null @@ -1,11 +0,0 @@ -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/libraries/id3lib/patches/60-add-c-wrapper-functions.patch b/libraries/id3lib/patches/60-add-c-wrapper-functions.patch deleted file mode 100644 index d72e81c0ec7d..000000000000 --- a/libraries/id3lib/patches/60-add-c-wrapper-functions.patch +++ /dev/null @@ -1,58 +0,0 @@ -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/libraries/id3lib/patches/60-fix_make_check.patch b/libraries/id3lib/patches/60-fix_make_check.patch deleted file mode 100644 index e2bb1b0518fe..000000000000 --- a/libraries/id3lib/patches/60-fix_make_check.patch +++ /dev/null @@ -1,50 +0,0 @@ -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/libraries/id3lib/patches/60-id3lib-missing-nullpointer-check.patch b/libraries/id3lib/patches/60-id3lib-missing-nullpointer-check.patch deleted file mode 100644 index d4ca5d292f1b..000000000000 --- a/libraries/id3lib/patches/60-id3lib-missing-nullpointer-check.patch +++ /dev/null @@ -1,12 +0,0 @@ -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/libraries/id3lib/patches/61-fix_vbr_stack_smash.patch b/libraries/id3lib/patches/61-fix_vbr_stack_smash.patch deleted file mode 100644 index 9bf33e97871f..000000000000 --- a/libraries/id3lib/patches/61-fix_vbr_stack_smash.patch +++ /dev/null @@ -1,19 +0,0 @@ -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/libraries/id3lib/patches/62-remove-remote-icons.patch b/libraries/id3lib/patches/62-remove-remote-icons.patch deleted file mode 100644 index 6d929953f2ac..000000000000 --- a/libraries/id3lib/patches/62-remove-remote-icons.patch +++ /dev/null @@ -1,32 +0,0 @@ -This patch removes two icons from the documentation which would be loaded from -remote servers, thereby exposing the reader's IP address to potential tracking -(lintian keywords privacy-breach-logo and privacy-breach-w3c-valid-html). - -Author: Stefan Ott ---- a/doc/index.html -+++ b/doc/index.html -@@ -427,24 +427,5 @@ - - - -- --

-- -- -- -- -- -- --
-- -- SourceForge.net -- -- -- -- Valid HTML 4.01! --
--
- - diff --git a/libraries/id3lib/patches/id3lib.c_wrapper.patch b/libraries/id3lib/patches/id3lib.c_wrapper.patch new file mode 100644 index 000000000000..d72e81c0ec7d --- /dev/null +++ b/libraries/id3lib/patches/id3lib.c_wrapper.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/libraries/id3lib/patches/id3lib.cppheaders.patch b/libraries/id3lib/patches/id3lib.cppheaders.patch new file mode 100644 index 000000000000..a9b45ab02c54 --- /dev/null +++ b/libraries/id3lib/patches/id3lib.cppheaders.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/libraries/id3lib/patches/id3lib.manpages.patch b/libraries/id3lib/patches/id3lib.manpages.patch new file mode 100644 index 000000000000..cebf3d4d407a --- /dev/null +++ b/libraries/id3lib/patches/id3lib.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 \-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 . 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 \-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 . Manual page written for ++Debian GNU/Linux by Robert Woodcock . diff --git a/libraries/id3lib/patches/id3lib.mkstemp.patch b/libraries/id3lib/patches/id3lib.mkstemp.patch new file mode 100644 index 000000000000..36c84179fc33 --- /dev/null +++ b/libraries/id3lib/patches/id3lib.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/libraries/id3lib/patches/id3lib.nullpointer_check.patch b/libraries/id3lib/patches/id3lib.nullpointer_check.patch new file mode 100644 index 000000000000..d4ca5d292f1b --- /dev/null +++ b/libraries/id3lib/patches/id3lib.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/libraries/id3lib/patches/id3lib.utf8_writing.patch b/libraries/id3lib/patches/id3lib.utf8_writing.patch new file mode 100644 index 000000000000..3d3f50fed653 --- /dev/null +++ b/libraries/id3lib/patches/id3lib.utf8_writing.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/libraries/id3lib/patches/id3lib.vbr_stack_smash.patch b/libraries/id3lib/patches/id3lib.vbr_stack_smash.patch new file mode 100644 index 000000000000..9bf33e97871f --- /dev/null +++ b/libraries/id3lib/patches/id3lib.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/libraries/id3lib/slack-desc b/libraries/id3lib/slack-desc index d318cdf99cdb..2d363781b187 100644 --- a/libraries/id3lib/slack-desc +++ b/libraries/id3lib/slack-desc @@ -8,12 +8,12 @@ |-----handy-ruler------------------------------------------------------| id3lib: id3lib (ID3 tag manipulation library) id3lib: -id3lib: This package provides a software library for manipulating ID3v1 -id3lib: and ID3v2 tags. It provides a convenient interface for software -id3lib: developers to include standards-compliant ID3v1/2 tagging -id3lib: capabilities in their applications. -id3lib: +id3lib: This package provides a library for manipulating ID3v1 and ID3v2 tags. id3lib: Features include identification of valid tags, automatic size id3lib: conversions, (re)synchronisation of tag frames, seamless tag -id3lib: (de)compression, and optional padding facilities. +id3lib: (de)compression, and optional padding facilities. Additionally, it can +id3lib: display mp3 header info such as bitrate. +id3lib: +id3lib: Homepage: http://id3lib.sourceforge.net/ +id3lib: id3lib: -- cgit v1.2.3