This commit is contained in:
Jeffrey C. Ollie 2023-03-23 20:21:12 -05:00
commit 6a66b91471
Signed by: jeff
GPG key ID: 6F86035A6D97044E
2 changed files with 193 additions and 0 deletions

42
flake.lock Normal file
View file

@ -0,0 +1,42 @@
{
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1670772952,
"narHash": "sha256-b7V3cGtMNcQ5c6hwRqqX+eIuNUj+O3orsb64BKPR9yc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dfef2e61107dc19c211ead99a5a61374ad8317f4",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-22.11",
"type": "indirect"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

151
flake.nix Normal file
View file

@ -0,0 +1,151 @@
{
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;
}
);
}