nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 python3,
6 meson,
7 ninja,
8 vala,
9 pkg-config,
10 libgee,
11 gtk3,
12 glib,
13 gettext,
14 gsettings-desktop-schemas,
15 gobject-introspection,
16 wrapGAppsHook3,
17}:
18
19stdenv.mkDerivation rec {
20 pname = "granite";
21 version = "6.2.0"; # nixpkgs-update: no auto update
22
23 outputs = [
24 "out"
25 "dev"
26 ];
27
28 src = fetchFromGitHub {
29 owner = "elementary";
30 repo = pname;
31 rev = version;
32 sha256 = "sha256-WM0Wo9giVP5pkMFaPCHsMfnAP6xD71zg6QLCYV6lmkY=";
33 };
34
35 nativeBuildInputs = [
36 gettext
37 gobject-introspection
38 meson
39 ninja
40 pkg-config
41 python3
42 vala
43 wrapGAppsHook3
44 ];
45
46 propagatedBuildInputs = [
47 glib
48 gsettings-desktop-schemas # is_clock_format_12h uses "org.gnome.desktop.interface clock-format"
49 gtk3
50 libgee
51 ];
52
53 postPatch = ''
54 chmod +x meson/post_install.py
55 patchShebangs meson/post_install.py
56 '';
57
58 meta = with lib; {
59 description = "Extension to GTK used by elementary OS";
60 longDescription = ''
61 Granite is a companion library for GTK and GLib. Among other things, it provides complex widgets and convenience functions
62 designed for use in apps built for elementary OS.
63 '';
64 homepage = "https://github.com/elementary/granite";
65 license = licenses.lgpl3Plus;
66 platforms = platforms.linux;
67 teams = [ teams.pantheon ];
68 mainProgram = "granite-demo";
69 };
70}