Files
nixpkgs/pkgs/development/python-modules/pyzbar/default.nix
2025-02-07 18:39:27 +01:00

67 lines
1.4 KiB
Nix

{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
numpy,
pillow,
zbar,
pytestCheckHook,
setuptools,
}:
let
zbar' = zbar.override {
enableVideo = false;
withXorg = false;
};
in
buildPythonPackage rec {
pname = "pyzbar";
version = "0.1.9";
pyproject = true;
src = fetchFromGitHub {
owner = "NaturalHistoryMuseum";
repo = "pyzbar";
tag = "v${version}";
sha256 = "8IZQY6qB4r1SUPItDlTDnVQuPs0I38K3yJ6LiPJuwbU=";
};
build-system = [ setuptools ];
buildInputs = [ zbar' ];
dependencies = [
pillow
numpy
];
nativeCheckInputs = [ pytestCheckHook ];
# find_library doesn't return an absolute path
# https://github.com/NixOS/nixpkgs/issues/7307
postPatch = ''
substituteInPlace pyzbar/zbar_library.py \
--replace-fail \
"find_library('zbar')" \
'"${lib.getLib zbar'}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}"'
'';
disabledTests = [
# find_library has been replaced by a hardcoded path
# the test fails due to find_library not called
"test_found_non_windows"
"test_not_found_non_windows"
];
pythonImportsCheck = [ "pyzbar" ];
meta = with lib; {
description = "Read one-dimensional barcodes and QR codes from Python using the zbar library";
homepage = "https://github.com/NaturalHistoryMuseum/pyzbar";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
};
}