152 lines
5.3 KiB
Nix
152 lines
5.3 KiB
Nix
|
{
|
||
|
description = "PicFrame";
|
||
|
|
||
|
inputs = {
|
||
|
nixpkgs = {
|
||
|
url = "nixpkgs/nixos-22.11";
|
||
|
};
|
||
|
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 = "2022.12.15";
|
||
|
in
|
||
|
pkgs.python3.pkgs.buildPythonApplication {
|
||
|
inherit pname version;
|
||
|
src = pkgs.fetchFromGitHub {
|
||
|
owner = "helgeerbe";
|
||
|
repo = pname;
|
||
|
rev = version;
|
||
|
sha256 = "sha256-RtQGPeMmGh5b9YWkT00idWi8FGI9ycBuONeoAI6AuE4=";
|
||
|
};
|
||
|
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.python3Packages.pillow
|
||
|
pkgs.python3Packages.numpy
|
||
|
pkgs.xorg.libX11
|
||
|
pkgs.libGL
|
||
|
pkgs.xorg.libXcomposite
|
||
|
];
|
||
|
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"'
|
||
|
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;
|
||
|
}
|
||
|
);
|
||
|
}
|