diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/id3lib')
3 files changed, 169 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/id3lib/default.nix b/nixpkgs/pkgs/development/libraries/id3lib/default.nix new file mode 100644 index 000000000000..31fc4fd6ba33 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/id3lib/default.nix @@ -0,0 +1,26 @@ +{lib, stdenv, fetchurl, zlib}: + +stdenv.mkDerivation { + name = "id3lib-3.8.3"; + + patches = [ + ./id3lib-3.8.3-gcc43-1.patch + ./patch_id3lib_3.8.3_UTF16_writing_bug.diff + ]; + + buildInputs = [ zlib ]; + + src = fetchurl { + url = "mirror://sourceforge/id3lib/id3lib-3.8.3.tar.gz"; + sha256 = "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97"; + }; + + doCheck = false; # fails to compile + + meta = with lib; { + description = "Library for reading, writing, and manipulating ID3v1 and ID3v2 tags"; + homepage = "http://id3lib.sourceforge.net"; + platforms = platforms.unix; + license = licenses.lgpl2; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/id3lib/id3lib-3.8.3-gcc43-1.patch b/nixpkgs/pkgs/development/libraries/id3lib/id3lib-3.8.3-gcc43-1.patch new file mode 100644 index 000000000000..2b7457d54c79 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/id3lib/id3lib-3.8.3-gcc43-1.patch @@ -0,0 +1,104 @@ +http://www.linuxfromscratch.org/patches/downloads/id3lib/id3lib-3.8.3-gcc43-1.patch + +Submitted By: Ken Moffat <ken at linuxfromscratch dot org> +Date: 2008-11-21 +Initial Package Version: 3.8.3 +Upstream Status: unknown +Origin: fedora +Description: Allows it to compile with gcc-4.3. + +diff -up id3lib-3.8.3/include/id3/id3lib_strings.h~ id3lib-3.8.3/include/id3/id3lib_strings.h +--- id3lib-3.8.3/include/id3/id3lib_strings.h~ 2003-03-02 02:23:00.000000000 +0200 ++++ id3lib-3.8.3/include/id3/id3lib_strings.h 2008-01-04 01:30:52.000000000 +0200 +@@ -29,6 +29,7 @@ + #ifndef _ID3LIB_STRINGS_H_ + #define _ID3LIB_STRINGS_H_ + ++#include <cstring> + #include <string> + + #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000)) +diff -up id3lib-3.8.3/configure.in~ id3lib-3.8.3/configure.in +--- id3lib-3.8.3/configure.in~ 2008-01-04 11:39:01.000000000 +0100 ++++ id3lib-3.8.3/configure.in 2008-01-04 11:39:01.000000000 +0100 +@@ -227,7 +227,6 @@ AC_CHECK_HEADERS(fstream iostream iomani + ) + AC_CHECK_HEADERS( \ + string \ +- iomanip.h \ + ,,AC_MSG_ERROR([Missing a vital header file for id3lib]) + ) + +diff -up id3lib-3.8.3/configure~ id3lib-3.8.3/configure +--- id3lib-3.8.3/configure~ 2008-01-04 11:39:10.000000000 +0100 ++++ id3lib-3.8.3/configure 2008-01-04 11:39:10.000000000 +0100 +@@ -22976,7 +22976,6 @@ done + + for ac_header in \ + string \ +- iomanip.h \ + + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +diff -up id3lib-3.8.3/include/id3/writers.h~ id3lib-3.8.3/include/id3/writers.h +--- id3lib-3.8.3/include/id3/writers.h~ 2008-01-04 11:59:39.000000000 +0100 ++++ id3lib-3.8.3/include/id3/writers.h 2008-01-04 11:59:39.000000000 +0100 +@@ -28,9 +28,9 @@ + #ifndef _ID3LIB_WRITERS_H_ + #define _ID3LIB_WRITERS_H_ + ++#include <cstring> + #include "id3/writer.h" + #include "id3/id3lib_streams.h" +-//#include <string.h> + + class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer + { +diff -up id3lib-3.8.3/examples/demo_info.cpp~ id3lib-3.8.3/examples/demo_info.cpp +--- id3lib-3.8.3/examples/demo_info.cpp~ 2008-01-04 12:00:56.000000000 +0100 ++++ id3lib-3.8.3/examples/demo_info.cpp 2008-01-04 12:00:56.000000000 +0100 +@@ -309,7 +309,7 @@ void PrintInformation(const ID3_Tag &myT + + #define DEBUG + +-int main( unsigned int argc, char * const argv[]) ++int main(int argc, char * const argv[]) + { + ID3D_INIT_DOUT(); + +diff -up id3lib-3.8.3/examples/demo_copy.cpp~ id3lib-3.8.3/examples/demo_copy.cpp +--- id3lib-3.8.3/examples/demo_copy.cpp~ 2008-01-04 12:01:26.000000000 +0100 ++++ id3lib-3.8.3/examples/demo_copy.cpp 2008-01-04 12:01:26.000000000 +0100 +@@ -81,7 +81,7 @@ void DisplayTags(ostream &os, luint nTag + } + } + +-int main( unsigned int argc, char * const argv[]) ++int main(int argc, char * const argv[]) + { + int ulFlag = ID3TT_ID3; + ID3D_INIT_DOUT(); +diff -up id3lib-3.8.3/examples/demo_convert.cpp~ id3lib-3.8.3/examples/demo_convert.cpp +--- id3lib-3.8.3/examples/demo_convert.cpp~ 2008-01-04 12:01:20.000000000 +0100 ++++ id3lib-3.8.3/examples/demo_convert.cpp 2008-01-04 12:01:20.000000000 +0100 +@@ -84,7 +84,7 @@ void DisplayTags(ostream &os, luint nTag + } + } + +-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 -up id3lib-3.8.3/examples/demo_tag.cpp~ id3lib-3.8.3/examples/demo_tag.cpp +--- id3lib-3.8.3/examples/demo_tag.cpp~ 2008-01-04 12:01:41.000000000 +0100 ++++ id3lib-3.8.3/examples/demo_tag.cpp 2008-01-04 12:01:41.000000000 +0100 +@@ -46,7 +46,7 @@ void DisplayTags(ostream &os, luint nTag + 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/nixpkgs/pkgs/development/libraries/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff b/nixpkgs/pkgs/development/libraries/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff new file mode 100644 index 000000000000..b05d2cf298d3 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff @@ -0,0 +1,39 @@ +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 <thijmen@id3lib.org> + + * 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; + } |