From 05987f952f86f94c5c7201a0c0e251098a6758ab Mon Sep 17 00:00:00 2001 From: Ivar <41924494+IvarWithoutBones@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:17:46 +0200 Subject: [PATCH] nx2elf: init at unstable-2020-05-26 (#119493) Co-authored-by: Sandro --- pkgs/tools/compression/nx2elf/default.nix | 37 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 39 insertions(+) create mode 100644 pkgs/tools/compression/nx2elf/default.nix diff --git a/pkgs/tools/compression/nx2elf/default.nix b/pkgs/tools/compression/nx2elf/default.nix new file mode 100644 index 00000000000..8b7f094bf39 --- /dev/null +++ b/pkgs/tools/compression/nx2elf/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, lz4 }: + +stdenv.mkDerivation rec { + pname = "nx2elf"; + version = "unstable-2020-05-26"; + + src = fetchFromGitHub { + owner = "shuffle2"; + repo = "nx2elf"; + rev = "7212e82a77b84fcc18ef2d050970350dbf63649b"; + sha256 = "1j4k5s86c6ixa3wdqh4cfm31fxabwn6jcjc6pippx8mii98ac806"; + }; + + buildInputs = [ lz4 ]; + + postPatch = '' + # This project does not comply with C++14 standards, and compilation on that fails. + # This does however succesfully compile with the gnu++20 standard. + substituteInPlace Makefile --replace "c++14" "gnu++20" + + # pkg-config is not supported, so we'll manually use a non-ancient version of lz4 + cp ${lz4.src}/lib/lz4.{h,c} . + ''; + + installPhase = '' + mkdir -p $out/bin + install -D nx2elf $out/bin/nx2elf + ''; + + meta = with lib; { + homepage = "https://github.com/shuffle2/nx2elf"; + description = "Convert Nintendo Switch executable files to ELFs"; + license = licenses.unfree; # No license specified upstream + platforms = [ "x86_64-linux" ]; # Should work on Darwin as well, but this is untested. aarch64-linux fails. + maintainers = [ maintainers.ivar ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 277271f1066..a5d9a7f3990 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2847,6 +2847,8 @@ in nwipe = callPackage ../tools/security/nwipe { }; + nx2elf = callPackage ../tools/compression/nx2elf { }; + nx-libs = callPackage ../tools/X11/nx-libs { }; nyx = callPackage ../tools/networking/nyx { };