simintech_nix/flake.nix
2025-01-07 00:32:31 +03:00

64 lines
2.1 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
description = "SimInTech - среда моделирования";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
};
outputs = { self, nixpkgs, ... }:
let
pkgs = import nixpkgs { system = "x86_64-linux"; };
simintech = pkgs.stdenv.mkDerivation rec {
pname = "simintech";
version = "2.23.13";
src = builtins.fetchTarball {
url = "http://kafpi.local/simintech.tar.gz"; # подставьте сюда свой адрес дистрибутива SimInTech
sha256 = "sha256:1z7dxlx9zrzh758brb9npvi6q4ylvrhb4fi25jzgq1v3nxlrsxdq";
};
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
'';
};
in {
packages.x86_64-linux.simintech = simintech;
defaultPackage.x86_64-linux = simintech;
};
}