9 , gobject-introspection
16 , enableGraphviz ? true
18 , enableGhostscript ? true
23 inherit (pythonPackages) buildPythonApplication pythonOlder;
25 buildPythonApplication rec {
30 disabled = pythonOlder "3.8";
32 src = fetchFromGitHub {
33 owner = "gramps-project";
35 rev = "refs/tags/v${version}";
36 hash = "sha256-DfKKB+rgMGQ8HTqhCp11UTYLj3Fdd0B0v4a922GJ8L8=";
40 # textdomain doesn't exist as a property on locale when running on Darwin
41 ./check-locale-hasattr-textdomain.patch
42 # disables the startup warning about bad GTK installation
43 ./disable-gtk-warning-dialog.patch
51 pythonPackages.setuptools
56 pythonPackages.unittestCheckHook
57 pythonPackages.jsonschema
62 buildInputs = [ gtk3 pango gexiv2 ]
64 ++ lib.optionals enableOSM [ osm-gps-map glib-networking ]
66 ++ lib.optional enableGraphviz graphviz
68 ++ lib.optional enableGhostscript ghostscript
71 propagatedBuildInputs = with pythonPackages; [
80 export HOME=$(mktemp -d)
81 mkdir .git # Make gramps think that it's not in an installed state
88 "''${gappsWrapperArgs[@]}"
92 # https://github.com/NixOS/nixpkgs/issues/149812
93 # https://nixos.org/manual/nixpkgs/stable/#ssec-gnome-hooks-gobject-introspection
97 description = "Genealogy software";
98 mainProgram = "gramps";
99 homepage = "https://gramps-project.org";
100 maintainers = with maintainers; [ jk pinpox tomasajt ];
101 changelog = "https://github.com/gramps-project/gramps/blob/${src.rev}/ChangeLog";
103 Every person has their own story but they are also part of a collective
104 family history. Gramps gives you the ability to record the many details of
105 an individual's life as well as the complex relationships between various
106 people, places and events. All of your research is kept organized,
107 searchable and as precise as you need it to be.
109 license = licenses.gpl2Plus;