nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 gettext,
6 itstool,
7 python3,
8 meson,
9 ninja,
10 wrapGAppsHook3,
11 libxml2,
12 pkg-config,
13 desktop-file-utils,
14 gobject-introspection,
15 gtk3,
16 gtksourceview4,
17 gnome,
18 adwaita-icon-theme,
19 gsettings-desktop-schemas,
20 desktopToDarwinBundle,
21}:
22
23python3.pkgs.buildPythonApplication rec {
24 pname = "meld";
25 version = "3.23.0";
26
27 format = "other";
28
29 src = fetchurl {
30 url = "mirror://gnome/sources/meld/${lib.versions.majorMinor version}/meld-${version}.tar.xz";
31 hash = "sha256-mDwqQkDgJaIQnHc4GYcQ6dawY8kQsEgzLRRpDPU4wqY=";
32 };
33
34 nativeBuildInputs = [
35 meson
36 ninja
37 gettext
38 itstool
39 libxml2
40 pkg-config
41 desktop-file-utils
42 gobject-introspection
43 wrapGAppsHook3
44 gtk3 # for gtk-update-icon-cache
45 ]
46 ++ lib.optionals stdenv.hostPlatform.isDarwin [ desktopToDarwinBundle ];
47
48 buildInputs = [
49 gtk3
50 gtksourceview4
51 gsettings-desktop-schemas
52 adwaita-icon-theme
53 ];
54
55 pythonPath = with python3.pkgs; [
56 pygobject3
57 pycairo
58 ];
59
60 postPatch = ''
61 patchShebangs meson_shebang_normalisation.py
62 '';
63
64 passthru = {
65 updateScript = gnome.updateScript {
66 packageName = "meld";
67 versionPolicy = "none"; # should be odd-unstable but we are tracking unstable versions for now
68 };
69 };
70
71 meta = with lib; {
72 description = "Visual diff and merge tool";
73 homepage = "https://meld.app/";
74 license = licenses.gpl2Plus;
75 platforms = platforms.linux ++ platforms.darwin;
76 maintainers = with maintainers; [
77 jtojnar
78 mimame
79 ];
80 mainProgram = "meld";
81 };
82}