diff --git a/configuration.nix b/configuration.nix index edcc634..16c5836 100644 --- a/configuration.nix +++ b/configuration.nix @@ -2,7 +2,7 @@ lib, config, pkgs, - simintech, + #simintech, stm32cubemx, packettracer7, inputs, @@ -223,7 +223,56 @@ in # поставка SimInTech. Кодогенерация библиотек для ПК работает, # но несовместима с .dll из windows! - simintech.packages.x86_64-linux.simintech + #simintech.packages.x86_64-linux.simintech + (pkgs.stdenv.mkDerivation rec { + pname = "simintech"; + version = "2.23.13"; + src = builtins.fetchTarball { + url = "http://kafpi.local/simintech_rus_linux.tgz"; + sha256 = "sha256:1i9plx6vx6jm38bx4kbh4piak5jwrpc4hxxjd3b89zyng1g4abvs"; + }; + dontFixLibtool = true; + + fhsEnv = pkgs.buildFHSEnv { + name = "${pname}-fhs-env"; + targetPkgs = p: with p; [ + at-spi2-atk.out + gdk-pixbuf.out + glamoroustoolkit.out + glib.out + gtk2.out + libGL.out + libGLU.out + pango.out + xorg.libX11.out + zlib.out + (pkgs.writeShellScriptBin "firefox" "exec ${pkgs.chromium}/bin/chromium \"$@\"") # похоже, что SimInTech захардкодил Firefox, но не все так юзают Firefox + ]; + runScript = "${src}/bin/mmain"; + }; + + desktopItem = pkgs.makeDesktopItem { + name = "SimInTech"; + exec = "simintech"; + desktopName = "SimInTech"; + categories = [ "Development" ]; + icon = "simintech"; + terminal = false; + startupNotify = false; + mimeTypes = [ "x-scheme-handler/prt" ]; + }; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + mkdir -p $out/share/applications + mkdir -p $out/share/icons + #cp ${src}/share/icon.svg $out/share/icons/simintech.svg + cp ${fhsEnv}/bin/${pname}-fhs-env $out/bin/simintech + cp ${desktopItem}/share/applications/*.desktop $out/share/applications + runHook postInstall + ''; + }) # POSIX утилиты для совместимости om4