7 , gobject-introspection
22 python3.pkgs.buildPythonApplication rec {
28 # Did not fetch submodule since it is only for tests we don't run.
29 src = fetchFromGitLab {
30 domain = "gitlab.gnome.org";
34 hash = "sha256-XS6JBJuifmN2ElCGk5hITbotZ+fqEdjopL6VqmMP2y4=";
41 gobject-introspection # for setup hook
42 desktop-file-utils # for update-desktop-database
43 shared-mime-info # for update-mime-database
47 pythonPath = with python3.pkgs; [
59 # For extra widgets support.
64 # Prevent double wrapping.
68 patchShebangs postinstall.py
69 # those programs are used at runtime not build time
70 # https://gitlab.gnome.org/jpu/cambalache/-/blob/0.12.1/meson.build#L79-80
71 substituteInPlace ./meson.build \
72 --replace-fail "find_program('broadwayd', required: true)" "" \
73 --replace-fail "find_program('gtk4-broadwayd', required: true)" ""
77 # Let python wrapper use GNOME flags.
79 # For broadway daemons
80 --prefix PATH : "${lib.makeBinPath [ gtk3 gtk4 ]}"
81 "''${gappsWrapperArgs[@]}"
86 # Wrap a helper script in an unusual location.
87 wrapPythonProgramsIn "$out/${python3.sitePackages}/cambalache/priv/merengue" "$out $pythonPath"
91 updateScript = nix-update-script { };
95 homepage = "https://gitlab.gnome.org/jpu/cambalache";
96 description = "RAD tool for GTK 4 and 3 with data model first philosophy";
97 mainProgram = "cambalache";
98 maintainers = teams.gnome.members;
99 license = with licenses; [
100 lgpl21Only # Cambalache
103 platforms = platforms.unix;