evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / ca / cambalache / package.nix
blob6af8672e03e3493143ae734396ec2076d5a09b0e
1 { lib
2 , fetchFromGitLab
3 , python3
4 , meson
5 , ninja
6 , pkg-config
7 , gobject-introspection
8 , desktop-file-utils
9 , shared-mime-info
10 , wrapGAppsHook4
11 , glib
12 , gtk3
13 , gtk4
14 , gtksourceview5
15 , libadwaita
16 , libhandy
17 , webkitgtk_4_1
18 , webkitgtk_6_0
19 , nix-update-script
22 python3.pkgs.buildPythonApplication rec {
23   pname = "cambalache";
24   version = "0.90.4";
26   format = "other";
28   # Did not fetch submodule since it is only for tests we don't run.
29   src = fetchFromGitLab {
30     domain = "gitlab.gnome.org";
31     owner = "jpu";
32     repo = "cambalache";
33     rev = version;
34     hash = "sha256-XS6JBJuifmN2ElCGk5hITbotZ+fqEdjopL6VqmMP2y4=";
35   };
37   nativeBuildInputs = [
38     meson
39     ninja
40     pkg-config
41     gobject-introspection # for setup hook
42     desktop-file-utils # for update-desktop-database
43     shared-mime-info # for update-mime-database
44     wrapGAppsHook4
45   ];
47   pythonPath = with python3.pkgs; [
48     pygobject3
49     lxml
50   ];
52   buildInputs = [
53     glib
54     gtk3
55     gtk4
56     gtksourceview5
57     webkitgtk_4_1
58     webkitgtk_6_0
59     # For extra widgets support.
60     libadwaita
61     libhandy
62   ];
64   # Prevent double wrapping.
65   dontWrapGApps = true;
67   postPatch = ''
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)" ""
74   '';
76   preFixup = ''
77     # Let python wrapper use GNOME flags.
78     makeWrapperArgs+=(
79       # For broadway daemons
80       --prefix PATH : "${lib.makeBinPath [ gtk3 gtk4 ]}"
81       "''${gappsWrapperArgs[@]}"
82     )
83   '';
85   postFixup = ''
86     # Wrap a helper script in an unusual location.
87     wrapPythonProgramsIn "$out/${python3.sitePackages}/cambalache/priv/merengue" "$out $pythonPath"
88   '';
90   passthru = {
91     updateScript = nix-update-script { };
92   };
94   meta = with lib; {
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
101       gpl2Only # tools
102     ];
103     platforms = platforms.unix;
104   };