From 2fd41fd2031b5d876804cbb38874664ac7eba404 Mon Sep 17 00:00:00 2001 From: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> Date: Fri, 19 Mar 2021 15:25:23 +0100 Subject: [PATCH] haxe: 3.4.6 -> 4.2.1 haxe_4_2: init at 4.2.1 haxe_3_4, haxe_3_2 still exist. Co-authored-by: Daniel Firth --- pkgs/development/compilers/haxe/default.nix | 53 ++++++++++++++++----- pkgs/top-level/all-packages.nix | 11 +++-- 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/pkgs/development/compilers/haxe/default.nix b/pkgs/development/compilers/haxe/default.nix index 584511923961..74056bc96e09 100644 --- a/pkgs/development/compilers/haxe/default.nix +++ b/pkgs/development/compilers/haxe/default.nix @@ -1,20 +1,44 @@ -{ lib, stdenv, fetchgit, coreutils, ocamlPackages, zlib, pcre, neko }: - -let inherit (ocamlPackages) ocaml camlp4; in +{ lib, stdenv, fetchFromGitHub, coreutils, ocaml-ng, zlib, pcre, neko, mbedtls }: let - generic = { version, sha256, prePatch }: + ocamlDependencies = version: + if lib.versionAtLeast version "4.0" + then with ocaml-ng.ocamlPackages; [ + ocaml + findlib + sedlex_2 + xml-light + ptmap + camlp5 + sha + dune_2 + luv + ocaml_extlib + ] else with ocaml-ng.ocamlPackages_4_05; [ + ocaml + camlp4 + ]; + + defaultPatch = '' + substituteInPlace extra/haxelib_src/src/haxelib/client/Main.hx \ + --replace '"neko"' '"${neko}/bin/neko"' + ''; + + generic = { sha256, version, prePatch ? defaultPatch }: stdenv.mkDerivation { pname = "haxe"; inherit version; - buildInputs = [ocaml zlib pcre neko camlp4]; + buildInputs = [ zlib pcre neko ] + ++ lib.optional (lib.versionAtLeast version "4.1") [ mbedtls ] + ++ ocamlDependencies version; - src = fetchgit { - url = "https://github.com/HaxeFoundation/haxe.git"; - inherit sha256; + src = fetchFromGitHub { + owner = "HaxeFoundation"; + repo = "haxe"; + rev = version; fetchSubmodules = true; - rev = "refs/tags/${version}"; + inherit sha256; }; inherit prePatch; @@ -78,7 +102,7 @@ let description = "Programming language targeting JavaScript, Flash, NekoVM, PHP, C++"; homepage = "https://haxe.org"; license = with licenses; [ gpl2 bsd2 /*?*/ ]; # -> docs/license.txt - maintainers = [ maintainers.marcweber ]; + maintainers = [ maintainers.marcweber maintainers.locallycompact ]; platforms = platforms.linux ++ platforms.darwin; }; }; @@ -89,15 +113,20 @@ in { sha256 = "1x9ay5a2llq46fww3k07jxx8h1vfpyxb522snc6702a050ki5vz3"; prePatch = '' sed -i -e 's|"/usr/lib/haxe/std/";|"'"$out/lib/haxe/std/"'";\n&|g' main.ml - sed -i -e 's|"neko"|"${neko}/bin/neko"|g' extra/haxelib_src/src/tools/haxelib/Main.hx + substituteInPlace extra/haxelib_src/src/tools/haxelib/Main.hx \ + --replace '"neko"' '"${neko}/bin/neko"' ''; }; haxe_3_4 = generic { version = "3.4.6"; sha256 = "1myc4b8fwp0f9vky17wv45n34a583f5sjvajsc93f5gm1wanp4if"; prePatch = '' + ${defaultPatch} sed -i -re 's!(let +prefix_path += +).*( +in)!\1"'"$out/"'"\2!' src/main.ml - sed -i -e 's|"neko"|"${neko}/bin/neko"|g' extra/haxelib_src/src/haxelib/client/Main.hx ''; }; + haxe_4_2 = generic { + version = "4.2.1"; + sha256 = "sha256-0j6M21dh8DB1gC/bPYNJrVuDbJyqQbP+61ItO5RBUcA="; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 548470b16465..885351478648 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10399,10 +10399,13 @@ in graphviz = graphviz-nox; }); - inherit (callPackage ../development/compilers/haxe { - ocamlPackages = ocaml-ng.ocamlPackages_4_05; - }) haxe_3_2 haxe_3_4; - haxe = haxe_3_4; + inherit (callPackage ../development/compilers/haxe { }) + haxe_4_2 + haxe_3_4 + haxe_3_2 + ; + + haxe = haxe_4_2; haxePackages = recurseIntoAttrs (callPackage ./haxe-packages.nix { }); inherit (haxePackages) hxcpp;