nixpkgs/pkgs/applications/misc/buku/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

110 lines
2.8 KiB
Nix
Raw Normal View History

{ lib, python3, fetchFromGitHub, withServer ? false }:
2016-03-26 20:27:36 +00:00
let
python3' = python3.override {
packageOverrides = self: super: {
sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
version = "1.3.24";
src = oldAttrs.src.override {
inherit version;
sha256 = "ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519";
};
});
sqlalchemy-utils = super.sqlalchemy-utils.overridePythonAttrs (oldAttrs: rec {
version = "0.36.6";
src = oldAttrs.src.override {
inherit version;
sha256 = "0srs5w486wp5zydjs70igi5ypgxhm6h73grb85jz03fqpqaanzvs";
};
});
};
};
serverRequire = with python3'.pkgs; [
requests
flask
flask-admin
flask-api
flask-bootstrap
flask-paginate
flask-reverse-proxy-fix
flask_wtf
arrow
werkzeug
click
vcrpy
toml
];
in
with python3'.pkgs; buildPythonApplication rec {
version = "4.6";
pname = "buku";
2016-03-26 20:27:36 +00:00
src = fetchFromGitHub {
owner = "jarun";
repo = "buku";
2016-09-26 01:16:58 +00:00
rev = "v${version}";
sha256 = "sha256-hr9qiP7SbloigDcs+6KVWu0SOlggMaBr7CCfY8zoJG0=";
};
checkInputs = [
hypothesis
pytest
pytest-vcr
2018-08-14 17:37:14 +00:00
pyyaml
mypy-extensions
click
];
2017-04-07 22:16:48 +00:00
propagatedBuildInputs = [
2016-10-21 06:00:18 +00:00
cryptography
beautifulsoup4
certifi
2017-04-07 22:16:48 +00:00
urllib3
2019-01-28 20:30:14 +00:00
html5lib
] ++ lib.optionals withServer serverRequire;
2016-03-26 20:27:36 +00:00
2019-01-28 20:30:14 +00:00
postPatch = ''
# Jailbreak problematic dependencies
sed -i \
-e "s,'PyYAML.*','PyYAML',g" \
-e "/'pytest-cov/d" \
-e "/'pylint/d" \
-e "/'flake8/d" \
2019-01-28 20:30:14 +00:00
setup.py
'';
preCheck = ''
# Fixes two tests for wrong encoding
export PYTHONIOENCODING=utf-8
# Disables a test which requires internet
substituteInPlace tests/test_bukuDb.py \
--replace "@pytest.mark.slowtest" "@unittest.skip('skipping')" \
--replace "self.assertEqual(shorturl, \"http://tny.im/yt\")" "" \
--replace "self.assertEqual(url, \"https://www.google.com\")" ""
substituteInPlace setup.py \
--replace mypy-extensions==0.4.1 mypy-extensions>=0.4.1
'' + lib.optionalString (!withServer) ''
rm tests/test_{server,views}.py
'';
2016-03-26 20:27:36 +00:00
2018-08-14 17:37:14 +00:00
postInstall = ''
2016-03-26 20:27:36 +00:00
make install PREFIX=$out
mkdir -p $out/share/zsh/site-functions $out/share/bash-completion/completions $out/share/fish/vendor_completions.d
cp auto-completion/zsh/* $out/share/zsh/site-functions
cp auto-completion/bash/* $out/share/bash-completion/completions
cp auto-completion/fish/* $out/share/fish/vendor_completions.d
'' + lib.optionalString (!withServer) ''
rm $out/bin/bukuserver
'';
2016-03-26 20:27:36 +00:00
meta = with lib; {
2016-03-26 20:27:36 +00:00
description = "Private cmdline bookmark manager";
homepage = "https://github.com/jarun/Buku";
2016-03-26 20:27:36 +00:00
license = licenses.gpl3;
2021-01-11 15:01:11 +00:00
platforms = platforms.unix;
maintainers = with maintainers; [ matthiasbeyer infinisil ma27 ];
2016-03-26 20:27:36 +00:00
};
}