diff options
author | Rhys Davies <rhys@memes.nz> | 2023-03-17 21:32:01 +1300 |
---|---|---|
committer | Rhys Davies <rhys@memes.nz> | 2024-02-02 10:00:33 +1300 |
commit | 70c69948703107c78cfe0dcdcc98a39309d528ec (patch) | |
tree | 7b2b655ce6762f0d70c99923576c74d81f2422c9 /pkgs/by-name/jn | |
parent | 098e29cd0164e22046fbc4536bb084c500b28e6c (diff) |
jnr-posix: init at 3.1.18
Diffstat (limited to 'pkgs/by-name/jn')
-rw-r--r-- | pkgs/by-name/jn/jnr-posix/package.nix | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/pkgs/by-name/jn/jnr-posix/package.nix b/pkgs/by-name/jn/jnr-posix/package.nix new file mode 100644 index 0000000000000..7cc3f67e083a8 --- /dev/null +++ b/pkgs/by-name/jn/jnr-posix/package.nix @@ -0,0 +1,82 @@ +{ stdenv +, lib +, fetchFromGitHub +, dpkg +, jdk +, makeWrapper +, maven +, which +}: +let + pname = "jnr-posix"; + version = "3.1.18"; + + src = fetchFromGitHub { + owner = "jnr"; + repo = "jnr-posix"; + rev = "jnr-posix-${version}"; + hash = "sha256-zx8I9rsu9Kjef+LatDA1WIuO7Vgo0/JM5nGi3pSWch4="; + }; + + deps = stdenv.mkDerivation { + name = "${pname}-${version}-deps"; + inherit src; + + nativeBuildInputs = [ jdk maven ]; + + buildPhase = '' + runHook preBuild + + mvn package -Dmaven.test.skip=true -Dmaven.repo.local=$out/.m2 -Dmaven.wagon.rto=5000 + + runHook postBuild + ''; + + # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside + installPhase = '' + runHook preInstall + + find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete + find $out/.m2 -type f -iname '*.pom' -exec sed -i -e 's/\r\+$//' {} \; + + runHook postInstall + ''; + + outputHashMode = "recursive"; + outputHash = "sha256-gOw0KUFyZEMONwLwlHSiV+ZZ7JQhjZwg708Q1IciUfo="; + + doCheck = false; + }; +in +stdenv.mkDerivation rec { + inherit version pname src; + + nativeBuildInputs = [ maven which ]; + + postPatch = '' + sed -i "s/\/usr\/bin\/id/$(which id | sed 's#/#\\/#g')/g" src/main/java/jnr/posix/JavaPOSIX.java + ''; + + buildPhase = '' + runHook preBuild + + mvn package --offline -Dmaven.test.skip=true -Dmaven.repo.local=$(cp -dpR ${deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install -D target/${pname}-${version}.jar $out/share/java/${pname}-${version}.jar + + runHook postInstall + ''; + + meta = with lib; { + description = "jnr-posix is a lightweight cross-platform POSIX emulation layer for Java, written in Java and is part of the JNR project"; + homepage = "https://github.com/jnr/jnr-posix"; + license = with licenses; [ epl20 gpl2Only lgpl21Only ]; + maintainers = with lib.maintainers; [ rhysmdnz ]; + }; +} |