90 lines
2.2 KiB
Nix
90 lines
2.2 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
bison,
|
|
buildPythonPackage,
|
|
click,
|
|
fetchFromGitHub,
|
|
fetchpatch2,
|
|
flex,
|
|
gnupg,
|
|
meson,
|
|
meson-python,
|
|
pytestCheckHook,
|
|
python-dateutil,
|
|
regex,
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
version = "3.2.0";
|
|
pname = "beancount";
|
|
pyproject = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "beancount";
|
|
repo = "beancount";
|
|
tag = version;
|
|
hash = "sha256-XWTgaBvB4/SONL44afvprZwJUVrkoda5XLGNxad0kec=";
|
|
};
|
|
|
|
patches = [
|
|
(fetchpatch2 {
|
|
name = "accept-date-range-error-message-from-py3.14";
|
|
url = "https://salsa.debian.org/python-team/packages/beancount/-/raw/debian/sid/debian/patches/0003-Accept-date-range-error-message-from-py3.14.patch";
|
|
hash = "sha256-wqMTGSi4Gn5VADjV4MjZhFNWB3ThUhxvLYK7sentScQ=";
|
|
})
|
|
(fetchpatch2 {
|
|
name = "skip-ref-count-test-with-py3.14";
|
|
url = "https://salsa.debian.org/python-team/packages/beancount/-/raw/debian/sid/debian/patches/0004-Skip-refcount-test-with-py3.14.patch";
|
|
hash = "sha256-6P9xe15WBGaWpVYB2HfGfFHLMMmGkfnDwdjdktlSNxk=";
|
|
})
|
|
];
|
|
|
|
build-system = [
|
|
meson
|
|
meson-python
|
|
];
|
|
|
|
dependencies = [
|
|
click
|
|
python-dateutil
|
|
regex
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
bison
|
|
flex
|
|
];
|
|
|
|
nativeCheckInputs = [
|
|
gnupg
|
|
pytestCheckHook
|
|
];
|
|
|
|
preCheck = ''
|
|
# avoid local paths, relative imports wont resolve correctly
|
|
mv beancount tests
|
|
'';
|
|
|
|
disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
|
|
# Cannot run the gpg-agent. If needed, implement as passthru tests.
|
|
"test_read_encrypted_file"
|
|
"test_include_encrypted"
|
|
];
|
|
|
|
pythonImportsCheck = [ "beancount" ];
|
|
|
|
meta = {
|
|
homepage = "https://github.com/beancount/beancount";
|
|
changelog = "https://github.com/beancount/beancount/releases/tag/${src.tag}";
|
|
description = "Double-entry bookkeeping computer language";
|
|
longDescription = ''
|
|
A double-entry bookkeeping computer language that lets you define
|
|
financial transaction records in a text file, read them in memory,
|
|
generate a variety of reports from them, and provides a web interface.
|
|
'';
|
|
license = lib.licenses.gpl2Only;
|
|
maintainers = with lib.maintainers; [ alapshin ];
|
|
};
|
|
}
|