forked from NixOS/nixpkgs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
quartus: init at 19.1.0.670 (NixOS#75561)
quartus: init at 19.1.0.670
- Loading branch information
Showing
5 changed files
with
166 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
{ buildFHSUserEnv, makeDesktopItem, stdenv, lib, requireFile, unstick, cycloneVSupport ? true }: | ||
|
||
let | ||
quartus = stdenv.mkDerivation rec { | ||
version = "19.1.0.670"; | ||
pname = "quartus-prime-lite"; | ||
|
||
src = let | ||
require = {name, sha256}: requireFile { | ||
inherit name sha256; | ||
url = "${meta.homepage}/${lib.versions.majorMinor version}/?edition=lite&platform=linux"; | ||
}; | ||
in map require ([{ | ||
name = "QuartusLiteSetup-${version}-linux.run"; | ||
sha256 = "15vxvqxqdk29ahlw3lkm1nzxyhzy4626wb9s5f2h6sjgq64r8m7f"; | ||
} { | ||
name = "ModelSimSetup-${version}-linux.run"; | ||
sha256 = "0j1vfr91jclv88nam2plx68arxmz4g50sqb840i60wqd5b0l3y6r"; | ||
}] ++ lib.optional cycloneVSupport { | ||
name = "cyclonev-${version}.qdz"; | ||
sha256 = "0bqxpvjgph0y6slk0jq75mcqzglmqkm0jsx10y9xz5llm6zxzqab"; | ||
}); | ||
|
||
nativeBuildInputs = [ unstick ]; | ||
|
||
buildCommand = let | ||
installers = lib.sublist 0 2 src; | ||
components = lib.sublist 2 ((lib.length src) - 2) src; | ||
copyInstaller = installer: '' | ||
# `$(cat $NIX_CC/nix-support/dynamic-linker) $src[0]` often segfaults, so cp + patchelf | ||
cp ${installer} $TEMP/${installer.name} | ||
chmod u+w,+x $TEMP/${installer.name} | ||
patchelf --interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $TEMP/${installer.name} | ||
''; | ||
copyComponent = component: "cp ${component} $TEMP/${component.name}"; | ||
# leaves enabled: quartus, modelsim_ase, devinfo | ||
disabledComponents = [ | ||
"quartus_help" | ||
"quartus_update" | ||
"modelsim_ae" | ||
# Devices | ||
"arria_lite" | ||
"cyclone" | ||
"cyclone10lp" | ||
"max" | ||
"max10" | ||
] ++ lib.optional (!cycloneVSupport) "cyclonev"; | ||
in '' | ||
${lib.concatMapStringsSep "\n" copyInstaller installers} | ||
${lib.concatMapStringsSep "\n" copyComponent components} | ||
unstick $TEMP/${(builtins.head installers).name} \ | ||
--disable-components ${lib.concatStringsSep "," disabledComponents} \ | ||
--mode unattended --installdir $out --accept_eula 1 | ||
# This patch is from https://wiki.archlinux.org/index.php/Altera_Design_Software | ||
patch --force --strip 0 --directory $out < ${./vsim.patch} | ||
rm -r $out/uninstall $out/logs | ||
''; | ||
|
||
meta = { | ||
homepage = "https://fpgasoftware.intel.com"; | ||
description = "FPGA design and simulation software"; | ||
license = lib.licenses.unfree; | ||
platforms = lib.platforms.linux; | ||
maintainers = with lib.maintainers; [ kwohlfahrt ]; | ||
}; | ||
}; | ||
|
||
desktopItem = makeDesktopItem { | ||
name = quartus.name; | ||
exec = "quartus"; | ||
icon = "quartus"; | ||
desktopName = "Quartus"; | ||
genericName = "Quartus FPGA IDE"; | ||
categories = "Development;"; | ||
}; | ||
|
||
# I think modelsim_ase/linux/vlm checksums itself, so use FHSUserEnv instead of `patchelf` | ||
in buildFHSUserEnv { | ||
name = "quartus-prime-lite"; | ||
|
||
targetPkgs = pkgs: with pkgs; [ | ||
# quartus requirements | ||
glib | ||
xorg.libICE | ||
xorg.libSM | ||
zlib | ||
# qsys requirements | ||
xorg.libXtst | ||
xorg.libXi | ||
]; | ||
multiPkgs = pkgs: with pkgs; let | ||
# This seems ugly - can we override `libpng = libpng12` for all `pkgs`? | ||
freetype = pkgs.freetype.override { libpng = libpng12; }; | ||
fontconfig = pkgs.fontconfig.override { inherit freetype; }; | ||
libXft = pkgs.xorg.libXft.override { inherit freetype fontconfig; }; | ||
in [ | ||
# modelsim requirements | ||
libxml2 | ||
ncurses5 | ||
unixODBC | ||
libXft | ||
# common requirements | ||
freetype | ||
fontconfig | ||
xorg.libX11 | ||
xorg.libXext | ||
xorg.libXrender | ||
]; | ||
|
||
extraInstallCommands = '' | ||
mkdir -p $out/share/applications | ||
cp ${desktopItem}/share/applications/* $out/share/applications | ||
''; | ||
|
||
runScript = "${quartus}/quartus/bin/quartus"; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- modelsim_ase/vco 1970-01-01 01:00:01.000000000 +0100 | ||
+++ modelsim_ase/vco 1970-01-01 01:00:01.000000000 +0100 | ||
@@ -207,7 +207,7 @@ | ||
2.[5-9]*) vco="linux" ;; | ||
2.[1-9][0-9]*) vco="linux" ;; | ||
3.[0-9]*) vco="linux" ;; | ||
- *) vco="linux_rh60" ;; | ||
+ *) vco="linux" ;; | ||
esac | ||
if [ ! -x "$dir/$vco/vsim" ]; then | ||
if [ -x "$dir/linuxle/vsim" ]; then |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ stdenv, lib, fetchFromGitHub, meson, ninja, pkgconfig, libseccomp }: | ||
|
||
stdenv.mkDerivation rec { | ||
name = "unstick"; | ||
version = "0.1.0"; | ||
|
||
src = fetchFromGitHub { | ||
owner = "kwohlfahrt"; | ||
repo = name; | ||
rev = "effee9aa242ca12dc94cc6e96bc073f4cc9e8657"; | ||
sha256 = "08la3jmmzlf4pm48bf9zx4cqj9gbqalpqy0s57bh5vfsdk74nnhv"; | ||
}; | ||
|
||
sourceRoot = "source/src"; | ||
|
||
nativeBuildInputs = [ meson ninja pkgconfig ]; | ||
buildInputs = [ libseccomp ]; | ||
|
||
meta = { | ||
homepage = "https://github.com/kwohlfahrt/unstick"; | ||
description = "Silently eats chmod commands forbidden by Nix"; | ||
license = lib.licenses.gpl3; | ||
platforms = lib.platforms.linux; | ||
maintainers = with lib.maintainers; [ kwohlfahrt ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters