Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.7 kB · 93 lines
Nix
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394{ lib, buildPythonPackage, fetchFromGitHub, setuptools, importlib-metadata, numpy, rpyc, scipy, appdirs, callPackage,}:
buildPythonPackage rec { pname = "linien-common"; version = "2.1.0"; pyproject = true;
src = fetchFromGitHub { owner = "linien-org"; repo = "linien"; tag = "v${version}"; hash = "sha256-j6oiP/usLfV5HZtKLcXQ5pHhhxRG05kP2FMwingiWm0="; };
sourceRoot = "${src.name}/linien-common";
preBuild = '' export HOME=$(mktemp -d) '';
build-system = [ setuptools ];
pythonRelaxDeps = [ "importlib-metadata" "numpy" ];
dependencies = [ importlib-metadata numpy rpyc scipy appdirs ];
pythonImportsCheck = [ "linien_common" ];
passthru.tests = { pytest = callPackage ./tests.nix { }; };
meta = { description = "Shared components of the Linien spectroscopy lock application"; homepage = "https://github.com/linien-org/linien/tree/develop/linien-common"; changelog = "https://github.com/linien-org/linien/blob/v${version}/CHANGELOG.md"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ fsagbuya doronbehar ]; # Numpy 2 is not supported yet, because the server linien, (installed on the # RedPitaya) must use the same Numpy version as the client (installed with # Nix). The server linien is bound to use Numpy 1 because Numpy maintainers # don't distribute pre-built wheels for the armv7l architecture of # RedPitaya, and it is unfeasible to build it natively there - something # that `pip install numpy` naively tries to do. Hence, we are bound to use # on the server the preinstalled Numpy 1 sourced in the .deb package that # comes with the RedPitaya OS. See also: # # - https://github.com/linien-org/linien/commit/ebbb2276b500a18826d11893bb43699b65692c5e # - https://github.com/linien-org/linien/issues/377 # # To evaluate this package with python3.withPackages, use: # # pythonEnv = pkgs.linien-gui.passthru.python.withPackages(ps: { # ps.linien-common # # Other packages... # }); # # NOTE that the above Python environment will use Numpy 1 throughout all # packages wrapped there (see expression in linien-gui), and this may # trigger rebuilds for dependencies that depend on Numpy too. Be ready to # also add more `packageOverrides` to make sure these other dependencies do # build with numpy_1. # # Last NOTE: If you need more packageOverrides besides those provided in # the `linien-gui` expression, beware of: # # - https://github.com/NixOS/nixpkgs/issues/44426 broken = lib.versionAtLeast numpy.version "2"; };}