1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 meson,
6 ninja,
7 pkg-config,
8 sassc,
9 vala,
10 wrapGAppsHook4,
11 appstream,
12 dbus,
13 flatpak,
14 glib,
15 granite7,
16 gtk4,
17 json-glib,
18 libadwaita,
19 libgee,
20 libportal-gtk4,
21 libsoup_3,
22 libxml2,
23 polkit,
24 nix-update-script,
25}:
26
27stdenv.mkDerivation rec {
28 pname = "appcenter";
29 version = "8.2.0";
30
31 src = fetchFromGitHub {
32 owner = "elementary";
33 repo = pname;
34 rev = version;
35 hash = "sha256-dginzwQrzcgnVdRO54cGPVh6+yVx0zLsFeeAVhxWFnE=";
36 };
37
38 nativeBuildInputs = [
39 meson
40 ninja
41 pkg-config
42 sassc
43 vala
44 wrapGAppsHook4
45 ];
46
47 buildInputs = [
48 appstream
49 dbus
50 flatpak
51 glib
52 granite7
53 gtk4
54 json-glib
55 libadwaita
56 libgee
57 libportal-gtk4
58 libsoup_3
59 libxml2
60 polkit
61 ];
62
63 mesonFlags = [
64 "-Dpayments=false"
65 "-Dcurated=false"
66 ];
67
68 postPatch = ''
69 # Since we do not build libxml2 with legacy support,
70 # we cannot use compressed appstream metadata.
71 # https://gitlab.gnome.org/GNOME/libxml2/-/commit/f7f14537727bf6845d0eea08cd1fdc30accc2a53
72 substituteInPlace src/Core/FlatpakBackend.vala \
73 --replace-fail ".xml.gz" ".xml"
74 '';
75
76 passthru = {
77 updateScript = nix-update-script { };
78 };
79
80 meta = with lib; {
81 homepage = "https://github.com/elementary/appcenter";
82 description = "Open, pay-what-you-want app store for indie developers, designed for elementary OS";
83 license = licenses.gpl3Plus;
84 platforms = platforms.linux;
85 teams = [ teams.pantheon ];
86 mainProgram = "io.elementary.appcenter";
87 };
88}