1{
2 lib,
3 fetchFromGitHub,
4 perl,
5 python3,
6 sqlite,
7}:
8
9python3.pkgs.buildPythonApplication rec {
10 pname = "fabs";
11 version = "1.1";
12 format = "setuptools";
13
14 src = fetchFromGitHub {
15 owner = "openafs-contrib";
16 repo = "fabs";
17 rev = "v${version}";
18 hash = "sha256-ejAcCwrOWGX0zsMw224f9GTWlozNYC0gU6LdTk0XqH0=";
19 };
20
21 nativeBuildInputs = [
22 perl
23 ];
24
25 propagatedBuildInputs = with python3.pkgs; [
26 alembic
27 python-dateutil
28 pyyaml
29 setuptools
30 sqlalchemy
31 ];
32
33 outputs = [
34 "out"
35 "man"
36 ];
37
38 preBuild = ''
39 export PREFIX=$out
40 '';
41
42 LOCALSTATEDIR = "/var";
43 LOCKDIR = "/run/lock/fabs";
44
45 preInstall = ''
46 mkdir -p "$out/etc"
47 cp -t "$out/etc" -r etc/fabs
48 '';
49
50 # remove once sqlalchemy backend no longer uses deprecated methods
51 SQLALCHEMY_SILENCE_UBER_WARNING = 1;
52
53 nativeCheckInputs = [
54 python3.pkgs.pytestCheckHook
55 sqlite
56 ];
57
58 meta = with lib; {
59 outputsToInstall = [
60 "out"
61 "man"
62 ];
63 mainProgram = "fabsys";
64 description = "Flexible AFS Backup System for the OpenAFS distributed file system";
65 homepage = "https://github.com/openafs-contrib/fabs";
66 license = with licenses; [ isc ];
67 maintainers = with maintainers; [ spacefrogg ];
68 broken = lib.versionAtLeast python3.pkgs.sqlalchemy.version "2.0";
69 badPlatforms = [
70 "x86_64-darwin"
71 "aarch64-darwin"
72 ];
73 };
74}