test_flake_poetry2nix/flake.nix

56 lines
2.3 KiB
Nix

{
description = "Test with poetry2nix and flakes";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.poetry2nix = {
url = "github:nix-community/poetry2nix";
inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, flake-utils, poetry2nix }:
flake-utils.lib.eachDefaultSystem (system:
let
inherit (poetry2nix.legacyPackages.${system}) mkPoetryApplication overrides;
pkgs = nixpkgs.legacyPackages.${system};
in
{
packages = {
test_flake_poetry2nix = mkPoetryApplication {
projectDir = self;
overrides = overrides.withDefaults (self: super: {
pillow = super.pillow.overridePythonAttrs(old: {
# Use preConfigure from nixpkgs to fix library detection issues and
# impurities which can break the build process; this also requires
# adding propagatedBuildInputs and buildInputs from the same source.
# propagatedBuildInputs = (old.buildInputs or []) ++ pkgs.python3.pkgs.pillow.propagatedBuildInputs;
# buildInputs = (old.buildInputs or []) ++ pkgs.python3.pkgs.pillow.buildInputs;
# preConfigure = (old.preConfigure or "") + pkgs.python3.pkgs.pillow.preConfigure;
# https://github.com/nix-community/poetry2nix/issues/1139
patches = (old.patches or []) ++ nixpkgs.lib.optionals (old.version == "9.5.0") [
(pkgs.fetchpatch {
url = "https://github.com/python-pillow/Pillow/commit/0ec0a89ead648793812e11739e2a5d70738c6be5.diff";
sha256 = "sha256-rZfk+OXZU6xBpoumIW30E80gRsox/Goa3hMDxBUkTY0=";
})
];
});
});
};
docker = pkgs.dockerTools.buildImage {
name = "test_flake_poetry2nix";
copyToRoot = pkgs.buildEnv {
name = "test_flake_poetry2nix_root_img";
paths = [ self.packages.${system}.test_flake_poetry2nix ];
pathsToLink = [ "/bin" ];
};
};
default = self.packages.${system}.test_flake_poetry2nix;
};
devShells.default = pkgs.mkShell {
packages = [ poetry2nix.packages.${system}.poetry ];
};
});
}