From 28df3554c05b31386e1e0ab33c3ed8db56990eea Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Fri, 25 Feb 2022 14:07:11 +0100 Subject: surtr: ma1sd: ... --- overlays/ma1sd.nix | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 overlays/ma1sd.nix (limited to 'overlays') diff --git a/overlays/ma1sd.nix b/overlays/ma1sd.nix new file mode 100644 index 00000000..3218879b --- /dev/null +++ b/overlays/ma1sd.nix @@ -0,0 +1,60 @@ +final: prev: { + ma1sd = let + pname = "ma1sd"; + version = "2.5.0"; + rev = version; + + src = prev.fetchFromGitHub { + inherit rev; + owner = "ma1uta"; + repo = "ma1sd"; + hash = "sha256-K3kaujAhWsRQuTMW3SZOnE7Rmu8+tDXaxpLrb45OI4A="; + }; + + + deps = prev.stdenv.mkDerivation { + pname = "${pname}-deps"; + inherit src version; + nativeBuildInputs = with final; [ gradle_6 perl git ]; + + buildPhase = '' + export MA1SD_BUILD_VERSION=${rev} + export GRADLE_USER_HOME=$(mktemp -d); + gradle --no-daemon build -x test + ''; + + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) + installPhase = '' + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + ''; + + dontStrip = true; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "sha256-P81aY1rOnZdb2UskPIrBe8dfWAicJ3TivBv/NEns5ro="; + }; + in prev.stdenv.mkDerivation { + inherit pname src version; + nativeBuildInputs = with final; [ gradle_6 perl makeWrapper ]; + buildInputs = with final; [ jre ]; + + buildPhase = '' + runHook preBuild + export MA1SD_BUILD_VERSION=${rev} + export GRADLE_USER_HOME=$(mktemp -d) + sed -ie "s#mavenCentral()#mavenLocal(); maven { url '${deps}' }#g; s#mavenCentral()##g" build.gradle + gradle --offline --no-daemon build -x test + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -D build/libs/source.jar $out/lib/ma1sd.jar + makeWrapper ${final.jre}/bin/java $out/bin/ma1sd --add-flags "-jar $out/lib/ma1sd.jar" + runHook postInstall + ''; + }; +} -- cgit v1.2.3