* Added "easytag", a GUI for organizing id3tags in mp3s.
* Updated some ocaml packages. * Updated coccinelle. svn path=/nixpkgs/trunk/; revision=33674
This commit is contained in:
parent
68f739cc45
commit
2b18ccf305
22
pkgs/applications/audio/easytag/default.nix
Normal file
22
pkgs/applications/audio/easytag/default.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, libid3tag, id3lib, libvorbis, libogg, flac }:
|
||||
|
||||
let
|
||||
|
||||
version = "2.1.7";
|
||||
sha256 = "bfed34cbdce96aca299a0db2b531dbc66feb489b911a34f0a9c67f2eb6ee9301";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
name = "easytag-${version}";
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/easytag/easytag-${version}.tar.bz2";
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig gtk libid3tag id3lib libvorbis libogg flac ];
|
||||
|
||||
meta = {
|
||||
description = "an utility for viewing and editing tags for various audio files";
|
||||
homepage = http://http://easytag.sourceforge.net/;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
};
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
ocaml_version = (builtins.parseDrvName ocaml.name).version;
|
||||
version = "20090505";
|
||||
version = "20120123";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
@ -10,13 +10,11 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://pauillac.inria.fr/~fpottier/menhir/menhir-${version}.tar.gz";
|
||||
sha256 = "1dsy80wp7k9wbxc89pjzy2izdkk4b72104m9ik747xzy23mssbyx";
|
||||
sha256 = "65cd9e4f813c62697c60c344963ca11bd461169f574ba3a866c2691541cb4682";
|
||||
};
|
||||
|
||||
buildInputs = [ocaml findlib];
|
||||
|
||||
configurePhase = "true"; # Skip configure
|
||||
|
||||
createFindlibDestdir = true;
|
||||
|
||||
preBuild = ''
|
||||
|
@ -1,46 +1,46 @@
|
||||
{stdenv, fetchurl, ocaml, findlib, python, ocaml_make}:
|
||||
{stdenv, fetchurl, ocaml, findlib, ncurses, python, ocaml_make}:
|
||||
|
||||
# The actual version of pycaml is unclear, as it is the original
|
||||
# 0.82 version with some patches applied in order to use it for
|
||||
# the kompostilo type setter (see README). Apparently, some of
|
||||
# the patches provide Python 3.1 support.
|
||||
# This version also differs from the Debian version, which
|
||||
# is also a heavily patched 0.82.
|
||||
# Therefore, we may at some point try to find out what is
|
||||
# actually the "real" version (if the library is still alive).
|
||||
# This is the original pycaml version with patches from debian.
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "pycaml-0.82";
|
||||
let debian = fetchurl {
|
||||
url = "mirror://debian/pool/main/p/pycaml/pycaml_0.82-14.debian.tar.gz";
|
||||
sha256 = "a763088ec1fa76c769bf586ed6692e7ac035b0a2bfd48a90a8e7a9539ec0c2f1";
|
||||
};
|
||||
|
||||
src = fetchurl {
|
||||
name = "pycaml.tar.gz";
|
||||
url = "http://github.com/chemoelectric/pycaml/tarball/master";
|
||||
sha256 = "ff6d863c42b4ef798f50ff5eff77b47b77b5c0d28b6f65364e8a436a216dc591";
|
||||
};
|
||||
in stdenv.mkDerivation {
|
||||
name = "pycaml-0.82-14";
|
||||
|
||||
buildInputs = [ocaml findlib python ocaml_make];
|
||||
srcs = [
|
||||
(fetchurl {
|
||||
url = "mirror://debian/pool/main/p/pycaml/pycaml_0.82.orig.tar.gz";
|
||||
sha256 = "d57be559c8d586c575717d47817986bbdbcebe2ffd16ad6b291525c62868babe";
|
||||
})
|
||||
|
||||
(fetchurl {
|
||||
url = "mirror://debian/pool/main/p/pycaml/pycaml_0.82-14.debian.tar.gz";
|
||||
sha256 = "a763088ec1fa76c769bf586ed6692e7ac035b0a2bfd48a90a8e7a9539ec0c2f1";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
rm -f Makefile* configure*
|
||||
cp ../debian/META ../debian/Makefile .
|
||||
sed -i "Makefile" -e's|/usr/share/ocamlmakefile/OCamlMakefile|${ocaml_make}/include/OCamlMakefile|g'
|
||||
'';
|
||||
|
||||
sourceRoot = "pycaml";
|
||||
patches = [ "../debian/patches/*.patch" ];
|
||||
|
||||
buildInputs = [ ncurses ocaml findlib python ocaml_make ];
|
||||
createFindlibDestdir = true;
|
||||
|
||||
phases = [ "unpackPhase" "patchPhase" "buildPhase" "installPhase" ];
|
||||
|
||||
# fix some paths to the appropriate store paths.
|
||||
patchPhase = ''
|
||||
sed -i "Makefile" -e's|/usr/include/OCamlMakefile|${ocaml_make}/include/OCamlMakefile|g'
|
||||
sed -i "Makefile" -e's|/usr|${python}|g'
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
make -f Makefile -j1 PYVER=`python -c 'import sys; print("{0}.{1}".format(sys.version_info.major, sys.version_info.minor));'`
|
||||
'';
|
||||
|
||||
# the Makefile is not shipped with an install target, hence we do it ourselves.
|
||||
installPhase = ''
|
||||
ocamlfind install pycaml \
|
||||
dllpycaml_stubs.so* libpycaml_stubs.a pycaml.a pycaml.cma \
|
||||
pycaml.cmi pycaml.cmo pycaml.cmx pycaml.cmxa pycaml.ml pycaml.mli \
|
||||
pycaml.o pycaml_stubs.c pycaml_stubs.h pycaml_stubs.o META
|
||||
'';
|
||||
dllpycaml_stubs.so libpycaml_stubs.a pycaml.a pycaml.cma \
|
||||
pycaml.cmi pycaml.cmo pycaml.cmx pycaml.cmxa \
|
||||
META
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://github.com/chemoelectric/pycaml";
|
||||
|
@ -1,22 +1,18 @@
|
||||
{stdenv, fetchurl, ocaml, findlib, ocaml_typeconv}:
|
||||
|
||||
# note: only works with ocaml>3.12
|
||||
# use version 5.2.0 if you still want an 3.11 version...
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "ocaml-sexplib-7.0.4";
|
||||
name = "ocaml-sexplib-7.0.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://forge.ocamlcore.org/frs/download.php/699/sexplib-7.0.4.tar.gz";
|
||||
sha256 = "83c6c771f423d91bebc4f57202066358adf3775fb000dd780079f51436045a43";
|
||||
url = "http://forge.ocamlcore.org/frs/download.php/832/sexplib-7.0.5.tar.gz";
|
||||
sha256 = "b1022da052254581aae51fb634345920364439f715a2c786abcd0b828c2ce697";
|
||||
};
|
||||
|
||||
buildInputs = [ocaml findlib ocaml_typeconv];
|
||||
patches = [ ./sexp-3.10-compat.patch ];
|
||||
buildInputs = [ocaml findlib ocaml_typeconv ];
|
||||
|
||||
createFindlibDestdir = true;
|
||||
|
||||
configurePhase = "true";
|
||||
|
||||
meta = {
|
||||
homepage = "http://forge.ocamlcore.org/projects/sexplib/";
|
||||
description = "Library for serializing OCaml values to and from S-expressions.";
|
||||
|
167
pkgs/development/ocaml-modules/sexplib/sexp-3.10-compat.patch
Normal file
167
pkgs/development/ocaml-modules/sexplib/sexp-3.10-compat.patch
Normal file
@ -0,0 +1,167 @@
|
||||
diff -ur orig/sexplib-7.0.5/lib/conv.ml sexplib-7.0.5/lib/conv.ml
|
||||
--- orig/sexplib-7.0.5/lib/conv.ml 2012-03-20 17:41:54.000000000 +0100
|
||||
+++ sexplib-7.0.5/lib/conv.ml 2012-03-26 20:04:58.128032729 +0200
|
||||
@@ -665,7 +665,7 @@
|
||||
| Parse_error pe ->
|
||||
let ppos =
|
||||
match pe.parse_state with
|
||||
- | `Sexp { parse_pos } | `Annot { parse_pos } -> parse_pos
|
||||
+ | `Sexp { parse_pos = parse_pos } | `Annot { parse_pos = parse_pos } -> parse_pos
|
||||
in
|
||||
List [
|
||||
Atom "Sexplib.Sexp.Parse_error";
|
||||
diff -ur orig/sexplib-7.0.5/lib/pre_sexp.ml sexplib-7.0.5/lib/pre_sexp.ml
|
||||
--- orig/sexplib-7.0.5/lib/pre_sexp.ml 2012-03-20 17:41:54.000000000 +0100
|
||||
+++ sexplib-7.0.5/lib/pre_sexp.ml 2012-03-26 20:04:58.129032741 +0200
|
||||
@@ -172,13 +172,7 @@
|
||||
(* Output of S-expressions to file *)
|
||||
|
||||
let save_of_output ?perm output_function file sexp =
|
||||
- let tmp_name, oc =
|
||||
- let temp_dir =
|
||||
- if Filename.is_relative file then "."
|
||||
- else Filename.dir_sep
|
||||
- in
|
||||
- Filename.open_temp_file ~temp_dir file "tmp"
|
||||
- in
|
||||
+ let tmp_name, oc = Filename.open_temp_file file "tmp" in
|
||||
try
|
||||
output_function oc sexp;
|
||||
close_out oc;
|
||||
@@ -316,9 +310,9 @@
|
||||
else if text_char < 0 then fail "text_char < 0"
|
||||
else if global_offset < 0 then fail "global_offset < 0"
|
||||
else if buf_pos < 0 then fail "buf_pos < 0"
|
||||
- else { text_line; text_char; global_offset; buf_pos }
|
||||
+ else { text_line = text_line; text_char = text_char; global_offset = global_offset; buf_pos = buf_pos }
|
||||
|
||||
- let with_buf_pos t buf_pos = { t with buf_pos }
|
||||
+ let with_buf_pos t buf_pos = { t with buf_pos = buf_pos }
|
||||
end
|
||||
|
||||
type ('a, 't) parse_result =
|
||||
@@ -347,11 +341,11 @@
|
||||
|
||||
exception Parse_error of parse_error
|
||||
|
||||
-let bump_text_line { parse_pos } =
|
||||
+let bump_text_line { parse_pos = parse_pos } =
|
||||
parse_pos.Parse_pos.text_line <- parse_pos.Parse_pos.text_line + 1;
|
||||
parse_pos.Parse_pos.text_char <- 0
|
||||
|
||||
-let bump_text_pos { parse_pos } =
|
||||
+let bump_text_pos { parse_pos = parse_pos } =
|
||||
parse_pos.Parse_pos.text_char <- parse_pos.Parse_pos.text_char + 1
|
||||
|
||||
let bump_pos_cont state str ~max_pos ~pos cont =
|
||||
@@ -378,18 +372,18 @@
|
||||
parse_pos.Parse_pos.buf_pos <- buf_pos;
|
||||
parse_pos.Parse_pos.global_offset <- parse_pos.Parse_pos.global_offset + len
|
||||
|
||||
-let mk_parse_pos { parse_pos } buf_pos =
|
||||
+let mk_parse_pos { parse_pos = parse_pos } buf_pos =
|
||||
set_parse_pos parse_pos buf_pos;
|
||||
parse_pos
|
||||
|
||||
let raise_parse_error parse_state location buf_pos err_msg =
|
||||
begin
|
||||
match parse_state with
|
||||
- | `Sexp { parse_pos } | `Annot { parse_pos } ->
|
||||
+ | `Sexp { parse_pos = parse_pos } | `Annot { parse_pos = parse_pos } ->
|
||||
set_parse_pos parse_pos buf_pos;
|
||||
parse_pos.Parse_pos.text_char <- parse_pos.Parse_pos.text_char + 1;
|
||||
end;
|
||||
- let parse_error = { location; err_msg; parse_state } in
|
||||
+ let parse_error = { location = location; err_msg = err_msg; parse_state = parse_state } in
|
||||
raise (Parse_error parse_error)
|
||||
|
||||
let raise_unexpected_char parse_state location buf_pos c =
|
||||
@@ -657,7 +651,7 @@
|
||||
let max_pos = check_str_bounds "parse" ~pos ~len str in \
|
||||
let state = \
|
||||
{ \
|
||||
- parse_pos; \
|
||||
+ parse_pos = parse_pos; \
|
||||
pstack = INIT_PSTACK; \
|
||||
pbuf = Buffer.create 128; \
|
||||
} \
|
||||
@@ -681,20 +675,20 @@
|
||||
|
||||
let mk_annot_pos
|
||||
({ Parse_pos.text_line = line; text_char = col } as parse_pos) pos =
|
||||
- { Annot.line; col; offset = get_glob_ofs parse_pos pos }
|
||||
+ { Annot.line = line; col = col; offset = get_glob_ofs parse_pos pos }
|
||||
|
||||
let mk_annot_pos1
|
||||
({ Parse_pos.text_line = line; text_char = col } as parse_pos) pos =
|
||||
- { Annot.line; col = col + 1; offset = get_glob_ofs parse_pos pos }
|
||||
+ { Annot.line = line; col = col + 1; offset = get_glob_ofs parse_pos pos }
|
||||
|
||||
-let add_annot_pos { parse_pos; pstack } pos =
|
||||
+let add_annot_pos { parse_pos = parse_pos; pstack = pstack } pos =
|
||||
pstack.Annot.positions <- mk_annot_pos parse_pos pos :: pstack.Annot.positions
|
||||
|
||||
-let add_annot_pos1 { parse_pos; pstack } pos =
|
||||
+let add_annot_pos1 { parse_pos = parse_pos; pstack = pstack } pos =
|
||||
pstack.Annot.positions <-
|
||||
mk_annot_pos1 parse_pos pos :: pstack.Annot.positions
|
||||
|
||||
-let get_annot_range { parse_pos; pstack } pos =
|
||||
+let get_annot_range { parse_pos = parse_pos; pstack = pstack } pos =
|
||||
let start_pos =
|
||||
match pstack.Annot.positions with
|
||||
| [] -> assert false (* impossible *)
|
||||
@@ -708,7 +702,7 @@
|
||||
offset = get_glob_ofs parse_pos pos;
|
||||
}
|
||||
in
|
||||
- { Annot.start_pos; end_pos }
|
||||
+ { Annot.start_pos = start_pos; end_pos = end_pos }
|
||||
|
||||
let mk_annot_atom parse_state str pos =
|
||||
Annot.Atom (get_annot_range parse_state pos, Atom str)
|
||||
@@ -780,7 +774,7 @@
|
||||
let rec loop this_parse ~pos ~len ~is_incomplete =
|
||||
if len > 0 then
|
||||
match this_parse ~pos ~len buf with
|
||||
- | Done (sexp, ({ Parse_pos.buf_pos } as parse_pos)) ->
|
||||
+ | Done (sexp, ({ Parse_pos.buf_pos = buf_pos } as parse_pos)) ->
|
||||
rev_sexps_ref := sexp :: !rev_sexps_ref;
|
||||
let n_parsed = buf_pos - pos in
|
||||
let this_parse = mk_this_parse ~parse_pos my_parse in
|
||||
@@ -813,7 +807,7 @@
|
||||
|
||||
let of_string_bigstring loc this_parse ws_buf get_len get_sub str =
|
||||
match this_parse str with
|
||||
- | Done (_, { Parse_pos.buf_pos }) when buf_pos <> get_len str ->
|
||||
+ | Done (_, { Parse_pos.buf_pos = buf_pos }) when buf_pos <> get_len str ->
|
||||
let prefix_len = min (get_len str - buf_pos) 20 in
|
||||
let prefix = get_sub str buf_pos prefix_len in
|
||||
let msg =
|
||||
@@ -874,7 +868,7 @@
|
||||
failwith (sprintf "Sexplib.Sexp.gen_load_sexp: end of file: %s" file)
|
||||
else
|
||||
match this_parse ~pos:0 ~len buf with
|
||||
- | Done (sexp, ({ Parse_pos.buf_pos } as parse_pos))
|
||||
+ | Done (sexp, ({ Parse_pos.buf_pos = buf_pos } as parse_pos))
|
||||
when strict ->
|
||||
let rec strict_loop this_parse ~pos ~len =
|
||||
match this_parse ~pos ~len buf with
|
||||
@@ -938,7 +932,7 @@
|
||||
|
||||
let get_conv_exn ~file ~exc annot_sexp =
|
||||
let range = get_range annot_sexp in
|
||||
- let { start_pos = { line; col } } = range in
|
||||
+ let { start_pos = { line = line; col = col } } = range in
|
||||
let loc = sprintf "%s:%d:%d" file line col in
|
||||
Of_sexp_error (Annot.Conv_exn (loc, exc), get_sexp annot_sexp)
|
||||
end
|
||||
@@ -1003,7 +997,7 @@
|
||||
let sexp = of_string str in
|
||||
try f sexp
|
||||
with Of_sexp_error (exc, sub_sexp) ->
|
||||
- raise (Of_string_conv_exn.E { Of_string_conv_exn.exc; sexp; sub_sexp })
|
||||
+ raise (Of_string_conv_exn.E { Of_string_conv_exn.exc = exc; sexp = sexp; sub_sexp = sub_sexp })
|
||||
|
||||
let of_string_conv_exn str f = gen_of_string_conv_exn of_string str f
|
||||
let of_bigstring_conv_exn bstr f = gen_of_string_conv_exn of_bigstring bstr f
|
@ -3,19 +3,17 @@
|
||||
# note: works only with ocaml >3.12
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "ocaml-typeconv-3.0.4";
|
||||
name = "ocaml-typeconv-3.0.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://forge.ocamlcore.org/frs/download.php/697/ocaml-type-conv-3.0.4.tar.gz";
|
||||
sha256 = "63b6f2872d29fb4c0b1448343bb5ec0649365126756128049d45a81238b59f12";
|
||||
url = "http://forge.ocamlcore.org/frs/download.php/821/type_conv-3.0.5.tar.gz";
|
||||
sha256 = "90ac6c401a600a23012a3f513def6f67d4979b11bd551f4d0af78f0f0b479198";
|
||||
};
|
||||
|
||||
buildInputs = [ocaml findlib ];
|
||||
|
||||
createFindlibDestdir = true;
|
||||
|
||||
configurePhase = "true";
|
||||
|
||||
meta = {
|
||||
homepage = "http://forge.ocamlcore.org/projects/type-conv/";
|
||||
description = "Support library for OCaml preprocessor type conversions";
|
||||
|
@ -1,45 +1,25 @@
|
||||
{ fetchurl, stdenv, perl, python, ncurses, makeWrapper
|
||||
, ocaml, ocamlPackages }:
|
||||
{ fetchurl, stdenv, python, ncurses, ocamlPackages }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "coccinelle-1.0.0-rc9";
|
||||
let
|
||||
|
||||
name = "coccinelle-1.0.0-rc12";
|
||||
sha256 = "03b8930a53623ec79dc2486e9b6a569e373958cf46074c5f1d0028c70708498d";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
inherit name;
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://coccinelle.lip6.fr/distrib/${name}.tgz";
|
||||
sha256 = "75d5354e76500b627ccc33b8a929305e5a815ebf08027a8dc094f75ece241697";
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ocaml ocamlPackages.findlib
|
||||
ocamlPackages.menhir ocamlPackages.ocaml_batteries
|
||||
ocamlPackages.ocaml_pcre ocamlPackages.ocaml_sexplib
|
||||
ocamlPackages.ocaml_extlib ocamlPackages.pycaml
|
||||
python ncurses makeWrapper perl
|
||||
];
|
||||
buildInputs = with ocamlPackages; [
|
||||
ocaml findlib menhir
|
||||
ocaml_pcre ocaml_sexplib pycaml
|
||||
python ncurses
|
||||
];
|
||||
|
||||
preConfigure =
|
||||
'' sed -i "configure" -e's|/usr/bin/perl|${perl}/bin/perl|g'
|
||||
sed -i "globals/config.ml.in" \
|
||||
-e"s|/usr/local/share|$out/share|g"
|
||||
'';
|
||||
|
||||
buildPhase = "make depend && make all && make all.opt";
|
||||
|
||||
# Note: The tests want $out/share/coccinelle/standard.h so they must be run
|
||||
# after "make install".
|
||||
doCheck = false;
|
||||
|
||||
postInstall =
|
||||
'' wrapProgram "$out/bin/spatch" \
|
||||
--prefix "LD_LIBRARY_PATH" ":" "$out/lib" \
|
||||
--prefix "PYTHONPATH" ":" "$out/share/coccinelle/python"
|
||||
|
||||
wrapProgram "$out/bin/spatch.opt" \
|
||||
--prefix "LD_LIBRARY_PATH" ":" "$out/lib" \
|
||||
--prefix "PYTHONPATH" ":" "$out/share/coccinelle/python"
|
||||
|
||||
yes | make test
|
||||
'';
|
||||
configureFlagsArray = [ "--enable-release" ];
|
||||
|
||||
meta = {
|
||||
description = "Coccinelle, a program to apply C code semantic patches";
|
||||
|
@ -2968,10 +2968,7 @@ let
|
||||
|
||||
cmakeWithGui = cmakeCurses.override { useQt4 = true; };
|
||||
|
||||
coccinelle = callPackage ../development/tools/misc/coccinelle {
|
||||
ocamlPackages = ocamlPackages_3_12_1;
|
||||
ocaml = ocaml_3_12_1;
|
||||
};
|
||||
coccinelle = callPackage ../development/tools/misc/coccinelle { };
|
||||
|
||||
cppi = callPackage ../development/tools/misc/cppi { };
|
||||
|
||||
@ -7112,6 +7109,8 @@ let
|
||||
inherit (xlibs) libX11 xproto;
|
||||
};
|
||||
|
||||
easytag = callPackage ../applications/audio/easytag { };
|
||||
|
||||
mp3info = callPackage ../applications/audio/mp3info { };
|
||||
|
||||
mpc123 = callPackage ../applications/audio/mpc123 { };
|
||||
|
Loading…
Reference in New Issue
Block a user