id3lib: New package.

This commit is contained in:
Alexpux 2015-01-17 13:49:13 +03:00
parent ec33a6a7e2
commit 2b4c2d95b1
16 changed files with 946 additions and 0 deletions

View File

@ -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 = \

View File

@ -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 \

View File

@ -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
{

View File

@ -0,0 +1,48 @@
diff -urN id3lib-3.8.3.old/configure.in id3lib-3.8.3/configure.in
--- id3lib-3.8.3.old/configure.in 2014-02-24 10:21:50.620304728 +0000
+++ id3lib-3.8.3/configure.in 2014-02-24 11:12:01.406469771 +0000
@@ -253,7 +253,7 @@
AC_CHECK_FUNCS(mkstemp)
AC_CHECK_FUNCS(
truncate \
- ,,AC_MSG_ERROR([Missing a vital function for id3lib])
+ ,,AC_MSG_WARN([Missing a vital function for id3lib])
)
dnl Checks for typedefs, structures, and compiler characteristics.
diff -urN id3lib-3.8.3.old/include/id3/globals.h id3lib-3.8.3/include/id3/globals.h
--- id3lib-3.8.3.old/include/id3/globals.h 2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/include/id3/globals.h 2014-02-24 11:12:27.896670566 +0000
@@ -41,7 +41,7 @@
* we prefix variable declarations so they can
* properly get exported in windows dlls.
*/
-#ifdef WIN32
+#ifdef __MSVC_VER
# define LINKOPTION_STATIC 1 //both for use and creation of static lib
# define LINKOPTION_CREATE_DYNAMIC 2 //should only be used by prj/id3lib.dsp
# define LINKOPTION_USE_DYNAMIC 3 //if your project links id3lib dynamic
@@ -74,11 +74,11 @@
# define CCONV __stdcall // Added for VB & Delphi Compatibility - By FrogPrince Advised By Lothar
# endif
# endif
-#else /* !WIN32 */
+#else /* !__MSVC_VER */
# define ID3_C_EXPORT
# define ID3_CPP_EXPORT
# define CCONV
-#endif /* !WIN32 */
+#endif /* !__MSVC_VER */
#define ID3_C_VAR extern
diff -urN id3lib-3.8.3.old/src/Makefile.am id3lib-3.8.3/src/Makefile.am
--- id3lib-3.8.3.old/src/Makefile.am 2014-02-24 11:05:44.097853121 +0000
+++ id3lib-3.8.3/src/Makefile.am 2014-02-24 11:13:00.437688808 +0000
@@ -79,4 +79,5 @@
libid3_la_LDFLAGS = \
-version-info $(LT_VERSION) \
-release $(LT_RELEASE) \
- -export-dynamic
+ -export-dynamic \
+ -no-undefined

View File

@ -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();

View File

@ -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>.

View File

@ -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;
}

View File

@ -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();

View File

@ -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])
)

View File

@ -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 */

View File

@ -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();

View File

@ -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;
}

View File

@ -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"},

View File

@ -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)
{

View File

@ -0,0 +1,161 @@
Patch by František Dvořák
https://bugzilla.redhat.com/show_bug.cgi?id=1066559
diff -urN id3lib-3.8.3.old/configure.in id3lib-3.8.3/configure.in
--- id3lib-3.8.3.old/configure.in 2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/configure.in 2014-02-24 21:46:57.974108875 +0000
@@ -15,11 +15,13 @@
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# require autoconf 2.13
-AC_PREREQ(2.13)
+# require autoconf 2.69
+AC_PREREQ(2.69)
# init autoconf (and check for presence fo reconf)
-AC_INIT(reconf)
+AC_INIT([id3lib], [3.8.3])
+AC_CONFIG_SRCDIR([reconf])
+AC_CONFIG_MACRO_DIR([m4])
ID3LIB_NAME=id3lib
@@ -83,14 +85,14 @@
AC_SUBST(ID3LIB_FULLNAME)
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS(config.h)
-AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
+AM_INIT_AUTOMAKE
AC_ISC_POSIX
dnl Initialize libtool
-AM_PROG_LIBTOOL
+LT_INIT
dnl Initialize maintainer mode
AM_MAINTAINER_MODE
@@ -168,7 +170,7 @@
iconv_oldstyle=1, iconv_oldstyle=0)
if test $iconv_oldstyle = 1; then
AC_MSG_RESULT(const char **)
- AC_DEFINE(ID3LIB_ICONV_OLDSTYLE)
+ AC_DEFINE(ID3LIB_ICONV_OLDSTYLE, [], [Old-style iconv interface])
#we'll check out the need of
#typecast in the call of iconv_open
AC_MSG_CHECKING(whether to typecast in iconv)
@@ -184,7 +186,7 @@
iconv_cast=0, iconv_cast=1)
if test $iconv_cast = 1; then
AC_MSG_RESULT(yes)
- AC_DEFINE(ID3LIB_ICONV_CAST_OK)
+ AC_DEFINE(ID3LIB_ICONV_CAST_OK, [], [iconv type cast])
else
AC_MSG_RESULT(no)
fi
@@ -206,7 +208,7 @@
iconv_cast=0, iconv_cast=1)
if test $iconv_cast = 1; then
AC_MSG_RESULT(yes)
- AC_DEFINE(ID3LIB_ICONV_CAST_OK)
+ AC_DEFINE(ID3LIB_ICONV_CAST_OK, [], [iconv type cast])
else
AC_MSG_RESULT(no)
fi
diff -urN id3lib-3.8.3.old/examples/Makefile.am id3lib-3.8.3/examples/Makefile.am
--- id3lib-3.8.3.old/examples/Makefile.am 2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/examples/Makefile.am 2014-02-24 21:21:51.645554552 +0000
@@ -30,7 +30,7 @@
LDADD = $(top_builddir)/src/libid3.la $(zlib_lib) $(ID3_DEBUG_LIBS) $(getopt_lib)
-INCLUDES = @ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include
+AM_CPPFLAGS = @ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include
bin_PROGRAMS = id3info id3convert id3tag id3cp
check_PROGRAMS = \
diff -urN id3lib-3.8.3.old/m4/id3_cxx.m4 id3lib-3.8.3/m4/id3_cxx.m4
--- id3lib-3.8.3.old/m4/id3_cxx.m4 2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/m4/id3_cxx.m4 2014-02-24 21:21:51.650554401 +0000
@@ -68,7 +68,7 @@
dnl #undef CXX_HAS_NO_BOOL
dnl END ACCONFIG
-AC_DEFUN(ID3_CXX_PORTABILITY,[
+AC_DEFUN([ID3_CXX_PORTABILITY],[
AC_PROVIDE([$0])
diff -urN id3lib-3.8.3.old/m4/id3_unicode.m4 id3lib-3.8.3/m4/id3_unicode.m4
--- id3lib-3.8.3.old/m4/id3_unicode.m4 2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/m4/id3_unicode.m4 2014-02-24 21:21:51.654554280 +0000
@@ -5,7 +5,7 @@
dnl #undef ID3_ICONV_FORMAT_ASCII
dnl END ACCONFIG
-AC_DEFUN(ID3_CHECK_ICONV_FORMAT,[
+AC_DEFUN([ID3_CHECK_ICONV_FORMAT],[
if eval "test \"x\$$1\" = \"xno\""; then
AC_MSG_CHECKING(whether iconv supports $2)
AC_TRY_RUN([#include <iconv.h>
diff -urN id3lib-3.8.3.old/Makefile.am id3lib-3.8.3/Makefile.am
--- id3lib-3.8.3.old/Makefile.am 2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/Makefile.am 2014-02-24 21:21:51.659554129 +0000
@@ -11,6 +11,7 @@
# require automake 1.5
AUTOMAKE_OPTIONS = 1.5
+ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \
HISTORY \
@@ -30,7 +31,7 @@
SUBDIRS = . m4 $(zlib_subdir) doc include id3com src examples
DIST_SUBDIRS = . m4 zlib doc include id3com src examples prj libprj
-INCLUDES = @ID3LIB_DEBUG_FLAGS@
+AM_CPPFLAGS = @ID3LIB_DEBUG_FLAGS@
config.h.win32: $(top_builddir)/config.status $(top_srcdir)/config.h.win32.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff -urN id3lib-3.8.3.old/src/Makefile.am id3lib-3.8.3/src/Makefile.am
--- id3lib-3.8.3.old/src/Makefile.am 2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/src/Makefile.am 2014-02-24 21:21:51.664553979 +0000
@@ -17,7 +17,7 @@
zlib_include =
endif
-INCLUDES = \
+AM_CPPFLAGS = \
@ID3LIB_DEBUG_FLAGS@ -I$(top_srcdir)/include/id3 -I$(top_srcdir)/include $(zlib_include)
noinst_HEADERS = \
diff -urN id3lib-3.8.3.old/zlib/configure.in id3lib-3.8.3/zlib/configure.in
--- id3lib-3.8.3.old/zlib/configure.in 2003-03-02 00:23:00.000000000 +0000
+++ id3lib-3.8.3/zlib/configure.in 2014-02-24 21:49:18.990854419 +0000
@@ -14,16 +14,13 @@
AC_PREREQ(2.13)
# init autoconf (and check for presence of reconf)
-AC_INIT(reconf)
+AC_INIT([zlib], [1.1.3])
-VERSION=1.1.3
-PACKAGE=zlib
-
-AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
-AM_CONFIG_HEADER(config.h)
+AM_INIT_AUTOMAKE
+AC_CONFIG_HEADERS(config.h)
dnl Initialize libtool
-AC_PROG_LIBTOOL
+LT_INIT
dnl Initialize maintainer mode
AM_MAINTAINER_MODE

97
mingw-w64-id3lib/PKGBUILD Normal file
View File

@ -0,0 +1,97 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=id3lib
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=3.8.3
pkgrel=1
pkgdesc='Library for reading, writing, and manipulating ID3v1 and ID3v2 tags (mingw-w64)'
arch=('any')
license=('LGPL')
url="http://id3lib.sourceforge.net/"
options=('staticlibs')
depends=("${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-gcc-libs")
source=(http://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${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
70-id3lib-3.8.3-autoreconf.patch
100-id3lib-3.8.3-mingw.patch)
md5sums=('19f27ddd2dda4b2d26a559a4f0f402a7'
'9428ef38283d13adb6e349089537a63f'
'5a78e0fe586fba334eae2a29e4bf5a28'
'88f21f1bf4f697be8030706bbec11705'
'b3de841cd2eda0d37c8c8330119e12d4'
'0c7c939943bdfcc3a0f6be95fe9b2367'
'74ba59c03f91fedbe4dd8045b29c7e15'
'd2d06d46df3867d73746f584d1e6fcc5'
'd3a61d07a2bfa83f4ac6290794789022'
'93ef4b26ad08027e28d3f80ad6e492b4'
'5c4b53a3d5543c5c50b23d6d5b9f230b'
'964fa0db0da7b1495b34b81bd36539fd'
'96e0aec669434fa5a9838cfb4bd950ef'
'0973e285cdc420130b984a259cdd8ae0'
'd445d4fa60b98b947969cd24f10eac66'
'5751591c71cfeb7d434666761840b2e7')
prepare() {
cd "${srcdir}/${_realname}-${pkgver}"
patch -p1 -i ../00-add-libz-to-compilation.patch
patch -p1 -i ../05-create-m4-directory.patch
patch -p1 -i ../10-fix-compilation-with-cpp-headers.patch
patch -p1 -i ../15-fix-headers-of-main-functions.patch
patch -p1 -i ../20-create-manpages.patch
patch -p1 -i ../30-fix-utf16.patch
patch -p1 -i ../40-deal-with-mkstemp.patch
patch -p1 -i ../60-add-c-wrapper-functions.patch
patch -p1 -i ../60-fix_make_check.patch
patch -p1 -i ../60-id3lib-missing-nullpointer-check.patch
patch -p1 -i ../60-spelling.patch
patch -p1 -i ../61-fix_vbr_stack_smash.patch
patch -p1 -i ../50-remove-outdated-check.patch
patch -p1 -i ../70-id3lib-3.8.3-autoreconf.patch
patch -p1 -i ../100-id3lib-3.8.3-mingw.patch
libtoolize -fc
WANT_AUTOMAKE=latest aclocal
WANT_AUTOMAKE=latest autoconf
WANT_AUTOMAKE=latest automake --add-missing --copy
}
build() {
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}"
../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--enable-shared \
--enable-static
LC_ALL=C make
}
check() {
cd "${srcdir}/${_realname}-${pkgver}"
make check
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
make DESTDIR="$pkgdir" install
install -d "${pkgdir}${MINGW_PREFIX}"/share/man/man1
cp ${srcdir}/${_realname}-${pkgver}/doc/man/* "${pkgdir}${MINGW_PREFIX}"/share/man/man1
}