From ee23541f8981ddd85109130cf471f163f1f766b1 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Wed, 1 Nov 2017 23:32:41 +0000 Subject: [PATCH] ocamlPackages.ocaml_expat: 0.9.1 -> 1.0.0 --- pkgs/development/ocaml-modules/expat/0.9.nix | 51 +++++++++++++++ .../ocaml-modules/expat/default.nix | 65 +++++++------------ pkgs/top-level/ocaml-packages.nix | 5 +- 3 files changed, 78 insertions(+), 43 deletions(-) create mode 100644 pkgs/development/ocaml-modules/expat/0.9.nix diff --git a/pkgs/development/ocaml-modules/expat/0.9.nix b/pkgs/development/ocaml-modules/expat/0.9.nix new file mode 100644 index 00000000000..5fcc317d940 --- /dev/null +++ b/pkgs/development/ocaml-modules/expat/0.9.nix @@ -0,0 +1,51 @@ +{stdenv, fetchurl, ocaml, findlib, ounit, expat}: + +let + pname = "ocaml-expat"; + testcase = fetchurl { + url = "http://www.w3.org/TR/1998/REC-xml-19980210.xml"; + sha256 = "00a3gsfvlkdhmcbziqhvpvy1zmcgbcihfqwcvl6ay03zf7gvw0k1"; + }; + +in + +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + version = "0.9.1"; + + src = fetchurl { + url = "http://www.xs4all.nl/~mmzeeman/ocaml/${pname}-${version}.tar.gz"; + sha256 = "16n2j3y0jc9xgqyshw9plrwqnjiz30vnpbhahmgxlidbycw8rgjz"; + }; + + buildInputs = [ocaml findlib ounit expat]; + + createFindlibDestdir = true; + + patches = [ ./unittest.patch ]; + + postPatch = '' + substituteInPlace "unittest.ml" \ + --replace "/home/maas/xml-samples/REC-xml-19980210.xml.txt" "${testcase}" + substituteInPlace Makefile --replace "EXPAT_LIBDIR=/usr/local/lib" "EXPAT_LIBDIR=${expat.out}/lib" \ + --replace "EXPAT_INCDIR=/usr/local/include" "EXPAT_INCDIR=${expat.dev}/include" \ + --replace "gcc" "\$(CC)" + ''; + + configurePhase = "true"; # Skip configure + + buildPhase = '' + make all allopt + ''; + + doCheck = true; + + checkTarget = "testall"; + + meta = { + homepage = http://www.xs4all.nl/~mmzeeman/ocaml/; + description = "An ocaml wrapper for the Expat XML parsing library"; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.roconnor ]; + }; +} diff --git a/pkgs/development/ocaml-modules/expat/default.nix b/pkgs/development/ocaml-modules/expat/default.nix index 5fcc317d940..575ca45624f 100644 --- a/pkgs/development/ocaml-modules/expat/default.nix +++ b/pkgs/development/ocaml-modules/expat/default.nix @@ -1,51 +1,32 @@ -{stdenv, fetchurl, ocaml, findlib, ounit, expat}: - -let - pname = "ocaml-expat"; - testcase = fetchurl { - url = "http://www.w3.org/TR/1998/REC-xml-19980210.xml"; - sha256 = "00a3gsfvlkdhmcbziqhvpvy1zmcgbcihfqwcvl6ay03zf7gvw0k1"; - }; - -in +{ stdenv, fetchFromGitHub, expat, ocaml, findlib, ounit }: stdenv.mkDerivation rec { - name = "${pname}-${version}"; - version = "0.9.1"; + name = "ocaml${ocaml.version}-expat-${version}"; + version = "1.0.0"; - src = fetchurl { - url = "http://www.xs4all.nl/~mmzeeman/ocaml/${pname}-${version}.tar.gz"; - sha256 = "16n2j3y0jc9xgqyshw9plrwqnjiz30vnpbhahmgxlidbycw8rgjz"; - }; + src = fetchFromGitHub { + owner = "whitequark"; + repo = "ocaml-expat"; + rev = "v${version}"; + sha256 = "0rb47v08ra2hhh73p3d8sl4sizqwiwc37gnkl22b23sbwbjrpbz0"; + }; - buildInputs = [ocaml findlib ounit expat]; + prePatch = '' + substituteInPlace Makefile --replace "gcc" "\$(CC)" + ''; - createFindlibDestdir = true; + buildInputs = [ ocaml findlib expat ounit ]; - patches = [ ./unittest.patch ]; + doCheck = !stdenv.lib.versionAtLeast ocaml.version "4.06"; + checkTarget = "testall"; - postPatch = '' - substituteInPlace "unittest.ml" \ - --replace "/home/maas/xml-samples/REC-xml-19980210.xml.txt" "${testcase}" - substituteInPlace Makefile --replace "EXPAT_LIBDIR=/usr/local/lib" "EXPAT_LIBDIR=${expat.out}/lib" \ - --replace "EXPAT_INCDIR=/usr/local/include" "EXPAT_INCDIR=${expat.dev}/include" \ - --replace "gcc" "\$(CC)" - ''; + createFindlibDestdir = true; - configurePhase = "true"; # Skip configure - - buildPhase = '' - make all allopt - ''; - - doCheck = true; - - checkTarget = "testall"; - - meta = { - homepage = http://www.xs4all.nl/~mmzeeman/ocaml/; - description = "An ocaml wrapper for the Expat XML parsing library"; - license = stdenv.lib.licenses.mit; - maintainers = [ stdenv.lib.maintainers.roconnor ]; - }; + meta = { + description = "OCaml wrapper for the Expat XML parsing library"; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (src.meta) homepage; + inherit (ocaml.meta) platforms; + }; } diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 43c249e7b1d..7555cf5efd7 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -407,7 +407,10 @@ let ocaml_data_notation = callPackage ../development/ocaml-modules/odn { }; - ocaml_expat = callPackage ../development/ocaml-modules/expat { }; + ocaml_expat = + if lib.versionAtLeast ocaml.version "4.02" + then callPackage ../development/ocaml-modules/expat { } + else callPackage ../development/ocaml-modules/expat/0.9.nix { }; frontc = callPackage ../development/ocaml-modules/frontc { };