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