[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/feilong123/Python-Funscript-Editor/main/flake.nix [Back]  [Original]

{
  description = "MTFG";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.05";
  };

  outputs = { self, nixpkgs, ... }:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs {
        system = "${system}";
      };
      mtfgDependencies = with pkgs; [
        xorg.xhost
        ffmpeg_5
        qt5.qtbase
        qt5.full
        qt5.wrapQtAppsHook
        libsForQt5.breeze-qt5
        libsForQt5.qt5ct
        (python39.withPackages (p: with p; [
          customPythonPackages.pkgs.opencv4
          customPythonPackages.pkgs.simplification
          customPythonPackages.pkgs.coloredlogs
          customPythonPackages.pkgs.cryptography
          customPythonPackages.pkgs.matplotlib
          customPythonPackages.pkgs.mpv
          customPythonPackages.pkgs.pillow
          customPythonPackages.pkgs.pip
          customPythonPackages.pkgs.playsound
          customPythonPackages.pkgs.pynput
          customPythonPackages.pkgs.pyqt5
          customPythonPackages.pkgs.pyqtgraph
          customPythonPackages.pkgs.pyyaml
          customPythonPackages.pkgs.scipy
          customPythonPackages.pkgs.screeninfo
          customPythonPackages.pkgs.GitPython
        ]))
      ];
      libPath = pkgs.lib.makeLibraryPath mtfgDependencies;
      binPath = pkgs.lib.makeBinPath mtfgDependencies;

      customPythonPackages =
        let
          packageOverrides = self:
            super: {
              opencv4 = super.opencv4.overrideAttrs (old: rec {
                buildInputs = old.buildInputs ++ [ pkgs.qt5.full ];
                cmakeFlags = old.cmakeFlags ++ [ "-DWITH_QT=ON" ];
              });

              simplification = pkgs.python39Packages.buildPythonPackage rec {
                pname = "simplification";
                version = "0.6.2";
                format = "wheel";

                src = pkgs.fetchurl {
                  url = "https://files.pythonhosted.org/packages/02/3e/829b59a5d072feb45e14879d3149a2dad743a18f83db29d8f3800a33aa64/simplification-0.6.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
                  sha256 = "20fb00f219bdd33319fc7526d23ef1fb7e52a40027a010f1013dd60626282325";
                };

                doCheck = false;
              };
            };
        in
        pkgs.python39.override { inherit packageOverrides; self = customPythonPackages; };
    in
    {
      packages.${system}.mtfg = pkgs.python39Packages.buildPythonPackage {
        pname = "funscript-editor";
        version = "0.5.4";
        src = pkgs.fetchgit {
          url = "https://github.com/michael-mueller-git/Python-Funscript-Editor.git";
          rev = "1c52f4e692c37a86b37fd1c1b1a8462c407c1403";
          sha256 = "sha256-D3JsZsMt5B2AsnE1DECOIZSXx5rBi8D3AdL0fjSPdxU=";
        };
        propagatedBuildInputs = mtfgDependencies;
        nativeBuildInputs = with pkgs; [
          makeWrapper
        ];
        postInstall = ''
          wrapProgram "$out/bin/funscript-editor" --prefix LD_LIBRARY_PATH : "${libPath}" --prefix PATH : "${binPath}"
        '';
      };
      defaultPackage.${system} = self.packages.x86_64-linux.mtfg;
      formatter.${system} = pkgs.nixpkgs-fmt;
      devShells.${system}.default = pkgs.mkShell {
        buildInputs = mtfgDependencies;
      };
    };
}

Web Proxy Viewer  |  New URL  |  Original Page