{ description = "PicFrame"; inputs = { nixpkgs = { url = "nixpkgs/nixos-23.05"; }; flake-utils = { url = "github:numtide/flake-utils"; }; }; outputs = { self, nixpkgs, flake-utils, ... }@inputs: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in { packages = { picframe = let pname = "picframe"; version = "2023.05.17"; in pkgs.python3.pkgs.buildPythonApplication { inherit pname version; src = pkgs.fetchFromGitHub { owner = "helgeerbe"; repo = pname; rev = version; sha256 = "sha256-RTMgEbDmdpvOMqJXgZsWQlgj/Qy1c4uT4bP57gC9bnE="; }; propagatedBuildInputs = [ self.packages.${system}.iptcinfo3 self.packages.${system}.ninepatch self.packages.${system}.pi-heif self.packages.${system}.pi3d pkgs.python3Packages.defusedxml pkgs.python3Packages.numpy pkgs.python3Packages.paho-mqtt pkgs.python3Packages.pillow pkgs.python3Packages.pyyaml ]; buildInputs = [ pkgs.python3Packages.pytest ]; }; iptcinfo3 = let pname = "IPTCInfo3"; version = "2.1.4"; in pkgs.python3.pkgs.buildPythonApplication { inherit pname version; src = pkgs.python3Packages.fetchPypi { inherit pname version; sha256 = "sha256-4k+e00VgJCX2rzfk+bv/b+welXCB3U+8WvkqifiZyWM="; }; }; pi-heif = let pname = "pi_heif"; version = "0.8.0"; in pkgs.python3.pkgs.buildPythonApplication { inherit pname version; src = pkgs.python3Packages.fetchPypi { inherit pname version; sha256 = "sha256-IN8FPTKDD7yqrrMidJIcxkUNAmvCeCmcYSYCjh3SD6E="; }; propagatedBuildInputs = [ pkgs.python3Packages.pillow pkgs.python3Packages.cffi pkgs.libheif ]; }; ninepatch = let pname = "ninepatch"; version = "0.1.22"; in pkgs.python3.pkgs.buildPythonApplication { inherit pname version; src = pkgs.fetchFromGitHub { owner = "vindolin"; repo = pname; rev = "e1893ae84436c8b0b23dc4fc02f2ae6370945622"; sha256 = "sha256-q5NuBs1Is4UHaMED7Cl2yYYKwpg5WngGcm2SY4+YYlM="; }; propagatedBuildInputs = [ pkgs.python3Packages.pillow ]; }; pi3d = let pname = "pi3d"; version = "2.49"; in pkgs.python3.pkgs.buildPythonApplication { inherit pname version; src = pkgs.fetchFromGitHub { owner = "tipam"; repo = pname; rev = "1f1c822dc3ac58344ad2d5468978d62e51710df4"; sha256 = "sha256-6FMz04IBQabnuGZ9IGJOeqH/5xHH6BZN+N6f+cT2bv8="; }; propagatedBuildInputs = [ pkgs.libGL pkgs.python3Packages.numpy pkgs.python3Packages.pillow pkgs.python3Packages.setuptools pkgs.xorg.libX11 pkgs.xorg.libXcomposite pkgs.xorg.libXrender ]; doCheck = false; postPatch = '' substituteInPlace pyxlib/xlib.py \ --replace \ "find_library('X11')" \ '"${pkgs.xorg.libX11}/lib/libX11.so"' substituteInPlace pyxlib/glx.py \ --replace \ "find_library('GL')" \ '"${pkgs.libGL}/lib/libGL.so"' \ --replace \ "find_library('GLX')" \ '"${pkgs.libGL}/lib/libGLX.so"' \ --replace \ "find_library('Xrender')" \ '"${pkgs.xorg.libXrender}/lib/libXrender.so"' substituteInPlace pyxlib/xcomposite.py \ --replace \ "'libXcomposite.so.1'" \ '"${pkgs.xorg.libXcomposite}/lib/libXcomposite.so"' substituteInPlace pyxlib/xfixes.py \ --replace \ "'libXfixes.so.3'" \ '"${pkgs.xorg.libXfixes}/lib/libXfixes.so"' substituteInPlace pi3d/constants/__init__.py \ --replace \ "find_library('GLESv2')" \ '"${pkgs.libGL}/lib/libGLESv2.so"' \ --replace \ "find_library('EGL')" \ '"${pkgs.libGL}/lib/libEGL.so"' ''; }; }; default = self.packages.${system}.picframe; } ); }