nix-bitcoin/pkgs/python-packages/clnrest/default.nix
Erik Arvstedt d6bae0a9eb
python3Packages.clnrest: update to NixOS 24.11
Gunicorn 22 and 23 mostly include security fixes:
https://github.com/benoitc/gunicorn/releases
2024-12-14 10:52:26 +01:00

59 lines
1.4 KiB
Nix

{ buildPythonPackage
, clightning
, python
, poetry-core
, flask
, flask-cors
, flask-restx
, flask-socketio
, gevent
, gevent-websocket
, gunicorn
, pyln-client
, json5
, jsonschema
}:
let
self = buildPythonPackage rec {
pname = "clnrest";
version = clightning.version;
format = "pyproject";
inherit (clightning) src;
postUnpack = "sourceRoot=$sourceRoot/plugins/clnrest";
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'gevent = "^23.9.0.post1"' 'gevent = "24.2.1"' \
--replace-fail 'gunicorn = "^21.2.0"' 'gunicorn = "23.0.0"' \
--replace-fail 'flask = "^2.3.3"' 'flask = "3.0.3"'
# Add extra required src files that are missing in pyproject.toml
sed -i '/authors/a include = [ { path = "utilities", format = ["sdist", "wheel"] } ]' pyproject.toml
'';
nativeBuildInputs = [ poetry-core ];
# From https://github.com/ElementsProject/lightning/blob/master/plugins/clnrest/pyproject.toml
propagatedBuildInputs = [
flask
flask-cors
flask-restx
flask-socketio
gevent
gevent-websocket
gunicorn
json5
pyln-client
];
postInstall = ''
makeWrapper ${python}/bin/python $out/bin/clnrest \
--set NIX_PYTHONPATH ${python.pkgs.makePythonPath self.propagatedBuildInputs} \
--add-flags "$out/lib/${python.libPrefix}/site-packages/clnrest.py"
'';
};
in
self