biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / cambalache / default.nix
blob757ab10583a7762082911433dff9c5ebfa1bdbd9
1 { stdenv
2 , lib
3 , fetchFromGitLab
4 , python3
5 , meson
6 , ninja
7 , pkg-config
8 , gobject-introspection
9 , desktop-file-utils
10 , shared-mime-info
11 , wrapGAppsHook
12 , glib
13 , gtk3
14 , gtk4
15 , gtksourceview4
16 , libadwaita
17 , libhandy
18 , webkitgtk_4_1
19 , webkitgtk_6_0
20 , nix-update-script
23 python3.pkgs.buildPythonApplication rec {
24   pname = "cambalache";
25   version = "0.16.0";
27   format = "other";
29   # Did not fetch submodule since it is only for tests we don't run.
30   src = fetchFromGitLab {
31     domain = "gitlab.gnome.org";
32     owner = "jpu";
33     repo = pname;
34     rev = version;
35     sha256 = "sha256-Ha94Ca5a7EUBYuSJvMrLc5895Q2/01/tbKpwlHLmTDc=";
36   };
38   nativeBuildInputs = [
39     meson
40     ninja
41     pkg-config
42     gobject-introspection # for setup hook
43     desktop-file-utils # for update-desktop-database
44     shared-mime-info # for update-mime-database
45     wrapGAppsHook
46   ];
48   pythonPath = with python3.pkgs; [
49     pygobject3
50     lxml
51   ];
53   buildInputs = [
54     glib
55     gtk3
56     gtk4
57     gtksourceview4
58     webkitgtk_4_1
59     webkitgtk_6_0
60     # For extra widgets support.
61     libadwaita
62     libhandy
63   ];
65   # Prevent double wrapping.
66   dontWrapGApps = true;
68   postPatch = ''
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)" ""
75   '';
77   preFixup = ''
78     # Let python wrapper use GNOME flags.
79     makeWrapperArgs+=(
80       # For broadway daemons
81       --prefix PATH : "${lib.makeBinPath [ gtk3 gtk4 ]}"
82       "''${gappsWrapperArgs[@]}"
83     )
84   '';
86   postFixup = ''
87     # Wrap a helper script in an unusual location.
88     wrapPythonProgramsIn "$out/${python3.sitePackages}/cambalache/priv/merengue" "$out $pythonPath"
89   '';
91   passthru = {
92     updateScript = nix-update-script { };
93   };
95   meta = with lib; {
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
102       gpl2Only # tools
103     ];
104     platforms = platforms.unix;
105   };