157 lines
5.5 KiB
Nix
157 lines
5.5 KiB
Nix
{
|
|
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;
|
|
}
|
|
);
|
|
}
|