From 4d46279ad98b238bcb7c0c08b53a9e1aba1cf6d6 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Sat, 6 Apr 2024 11:44:53 -0500 Subject: [PATCH] quartus-prime-lite: make usable under emulation --- pkgs/applications/editors/quartus-prime/default.nix | 4 ++-- pkgs/applications/editors/quartus-prime/quartus.nix | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/quartus-prime/default.nix b/pkgs/applications/editors/quartus-prime/default.nix index 679a9ffbd2a1..b08bd7a6b365 100644 --- a/pkgs/applications/editors/quartus-prime/default.nix +++ b/pkgs/applications/editors/quartus-prime/default.nix @@ -1,7 +1,7 @@ { lib, buildFHSEnv, callPackage, makeDesktopItem, writeScript, runtimeShell -, runCommand, quartus-prime-lite +, runCommand, unstick, quartus-prime-lite , supportedDevices ? [ "Arria II" "Cyclone V" "Cyclone IV" "Cyclone 10 LP" "MAX II/V" "MAX 10 FPGA" ] -, unwrapped ? callPackage ./quartus.nix { inherit supportedDevices; } +, unwrapped ? callPackage ./quartus.nix { inherit unstick supportedDevices withQuesta; } }: let diff --git a/pkgs/applications/editors/quartus-prime/quartus.nix b/pkgs/applications/editors/quartus-prime/quartus.nix index e20b86c089f1..5b9a9dc879fc 100644 --- a/pkgs/applications/editors/quartus-prime/quartus.nix +++ b/pkgs/applications/editors/quartus-prime/quartus.nix @@ -76,14 +76,24 @@ in stdenv.mkDerivation rec { "questa_fe" ] ++ (lib.attrValues unsupportedDeviceIds); in '' + echo "setting up installer..." ${lib.concatMapStringsSep "\n" copyInstaller installers} ${lib.concatMapStringsSep "\n" copyComponent components} + echo "executing installer..." + # "Could not load seccomp program: Invalid argument" might occur if unstick + # itself is compiled for x86_64 instead of the non-x86 host. In that case, + # override the input. unstick $TEMP/${(builtins.head installers).name} \ --disable-components ${lib.concatStringsSep "," disabledComponents} \ --mode unattended --installdir $out --accept_eula 1 + echo "cleaning up..." rm -r $out/uninstall $out/logs + + # replace /proc pentium check with a true statement. this allows usage under emulation. + substituteInPlace $out/quartus/adm/qenv.sh \ + --replace-fail 'grep sse /proc/cpuinfo > /dev/null 2>&1' ':' ''; meta = with lib; {