diff --git a/nix/.config/nixpkgs/overlays/02-extrapkgs.nix b/nix/.config/nixpkgs/overlays/02-extrapkgs.nix index 5af8f1f..67d317a 100644 --- a/nix/.config/nixpkgs/overlays/02-extrapkgs.nix +++ b/nix/.config/nixpkgs/overlays/02-extrapkgs.nix @@ -5,6 +5,7 @@ self: super: { peageprint = super.callPackage ../pkgs/peageprint.nix {}; nottetris2 = super.callPackage ../pkgs/nottetris2.nix {}; mailpile = super.callPackage ../pkgs/mailpile.nix {}; + lejos = super.callPackage ../pkgs/lejos.nix {}; libinput-gestures = super.callPackage ../pkgs/libinput-gestures.nix {}; gitFire = super.stdenv.mkDerivation { src = super.fetchFromGitHub { diff --git a/nix/.config/nixpkgs/pkgs/lejos.nix b/nix/.config/nixpkgs/pkgs/lejos.nix new file mode 100644 index 0000000..5925f7d --- /dev/null +++ b/nix/.config/nixpkgs/pkgs/lejos.nix @@ -0,0 +1,45 @@ +{ jdk, ant, libusb, makeWrapper, stdenv, lib, fetchurl }: +let lejospkg = type: attrs: + stdenv.mkDerivation ({ + name = "lejos-${type}-${attrs.version}"; + JDK_PATH = jdk; + buildPhase = '' + pushd build + ant + popd + ''; + installPhase = '' + runHook preInstall + mkdir -p $out/opt/lejos/${type} $out/bin + cp -r * $out/opt/lejos/${type} + for i in $(find $out/opt/lejos/${type}/bin/* -executable); do + makeWrapper $i $out/bin/`basename $i` --set JAVA_HOME $JDK_PATH \ + --set ${lib.toUpper type}_HOME $out/opt/lejos/${type} + done + runHook postInstall + ''; + buildInputs = [ jdk ant libusb makeWrapper ]; +} // attrs); +in +{ + + nxj = lejospkg "nxj" rec { + version = "0.9.1beta-3"; + src = fetchurl { + url = "mirror://sourceforge/nxt.lejos.p/${version}/leJOS_NXJ_${version}.tar.gz"; + sha256 = "18ll9phbl1i2dasici1m8jprcfhzl03dq0h1dsdl9iwq1yv380pi"; + }; + }; + ev3 = lejospkg "ev3" rec { + version = "0.9.1-beta"; + src = fetchurl { + url = "mirror://sourceforge/ev3.lejos.p/${version}/leJOS_EV3_${version}.tar.gz"; + sha256 = "12v5za15xijq8frsvrf1amr75jf80c593xdpplcx5l4rxhb3bprp"; + }; + buildPhase = "echo binary distribution"; + postPatch = '' + mkdir -p $out/share/java + cp $(find . -iname '*.jar') $out/share/java + ''; + }; +}