7b63df2fde
Fails to build consistently on aarch64 for unknown reasons, probably a compiler bug as OCaml 4.12 seems to work.
64 lines
2.1 KiB
Nix
64 lines
2.1 KiB
Nix
{ lib, stdenv, fetchurl, unzip, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, cmdliner, uucd }:
|
|
let
|
|
pname = "uunf";
|
|
webpage = "https://erratique.ch/software/${pname}";
|
|
version = "13.0.0";
|
|
ucdxml = fetchurl {
|
|
url = "http://www.unicode.org/Public/${version}/ucdxml/ucd.all.grouped.zip";
|
|
sha256 = "04gpl09ggb6fb0kmk6298rd8184dv6vcscn28l1gpdv1yjlw1a8q";
|
|
};
|
|
gen = fetchurl {
|
|
url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen.ml";
|
|
sha256 = "08j2mpi7j6q3rqc6bcdwspqn1s7pkkphznxfdycqjv4h9yaqsymj";
|
|
};
|
|
gen_norm = fetchurl {
|
|
url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen_norm.ml";
|
|
sha256 = "11vx5l5bag6bja7qj8jv4s2x9fknj3557n0mj87k2apq5gs5f4m5";
|
|
};
|
|
gen_props = fetchurl {
|
|
url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen_props.ml";
|
|
sha256 = "0a6lhja498kp9lxql0pbfvkgvajs10wx88wkqc7y5m3lrvw46268";
|
|
};
|
|
in
|
|
|
|
assert lib.versionAtLeast ocaml.version "4.03";
|
|
|
|
stdenv.mkDerivation {
|
|
name = "ocaml-${pname}-${version}";
|
|
inherit version;
|
|
|
|
src = fetchurl {
|
|
url = "${webpage}/releases/${pname}-${version}.tbz";
|
|
sha256 = "1qci04nkp24kdls1z4s8kz5dzgky4nwd5r8345nwdrgwmxhw7ksm";
|
|
};
|
|
|
|
postConfigure = ''
|
|
rm -f src/uunf_data.ml
|
|
mkdir -p support/
|
|
cp ${gen} support/gen.ml
|
|
cp ${gen_norm} support/gen_norm.ml
|
|
cp ${gen_props} support/gen_props.ml
|
|
funzip ${ucdxml} > support/ucd.xml
|
|
ocaml -I ${findlib}/lib/ocaml/${ocaml.version}/site-lib/ pkg/build_support.ml
|
|
'';
|
|
|
|
nativeBuildInputs = [ unzip ];
|
|
|
|
buildInputs = [ ocaml findlib ocamlbuild topkg uutf cmdliner uucd ];
|
|
|
|
propagatedBuildInputs = [ uchar ];
|
|
|
|
inherit (topkg) buildPhase installPhase;
|
|
|
|
meta = with lib; {
|
|
description = "An OCaml module for normalizing Unicode text";
|
|
homepage = webpage;
|
|
platforms = ocaml.meta.platforms or [];
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.vbgl ];
|
|
# See https://github.com/dbuenzli/uunf/issues/15#issuecomment-903151264
|
|
broken = lib.versions.majorMinor ocaml.version == "4.08"
|
|
&& stdenv.hostPlatform.isAarch64;
|
|
};
|
|
}
|