nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 replaceVars,
6 pkg-config,
7 meson,
8 ninja,
9 gettext,
10 gnome,
11 wrapGAppsHook4,
12 packagekit,
13 ostree,
14 glib,
15 appstream,
16 libsoup_3,
17 libadwaita,
18 polkit,
19 isocodes,
20 gspell,
21 libxslt,
22 gobject-introspection,
23 itstool,
24 flatpak,
25 fwupd,
26 gtk4,
27 gsettings-desktop-schemas,
28 gnome-desktop,
29 libgudev,
30 libxmlb,
31 malcontent,
32 json-glib,
33 glib-networking,
34 libsecret,
35 valgrind-light,
36 docbook-xsl-nons,
37 docbook_xml_dtd_42,
38 docbook_xml_dtd_43,
39 gtk-doc,
40 desktop-file-utils,
41 libsysprof-capture,
42 gst_all_1,
43}:
44
45let
46 withFwupd = stdenv.hostPlatform.isx86;
47in
48
49stdenv.mkDerivation (finalAttrs: {
50 pname = "gnome-software";
51 version = "49.3";
52
53 src = fetchurl {
54 url = "mirror://gnome/sources/gnome-software/${lib.versions.major finalAttrs.version}/gnome-software-${finalAttrs.version}.tar.xz";
55 hash = "sha256-9kbbLxK89Ag3K2tJrpEJn85S0OrHYs6iMRqMik3/nQA=";
56 };
57
58 patches = [
59 (replaceVars ./fix-paths.patch {
60 inherit isocodes;
61 })
62 ];
63
64 nativeBuildInputs = [
65 meson
66 ninja
67 pkg-config
68 gettext
69 wrapGAppsHook4
70 libxslt
71 docbook_xml_dtd_42
72 docbook_xml_dtd_43
73 valgrind-light
74 docbook-xsl-nons
75 gtk-doc
76 desktop-file-utils
77 gobject-introspection
78 itstool
79 ];
80
81 buildInputs = [
82 gtk4
83 glib
84 glib-networking
85 packagekit
86 appstream
87 libsoup_3
88 libadwaita
89 gsettings-desktop-schemas
90 gnome-desktop
91 gspell
92 json-glib
93 libsecret
94 ostree
95 polkit
96 flatpak
97 libgudev
98 libxmlb
99 malcontent
100 libsysprof-capture
101 # For video screenshots
102 gst_all_1.gst-plugins-base
103 gst_all_1.gst-plugins-good
104 ]
105 ++ lib.optionals withFwupd [ fwupd ];
106
107 mesonFlags = [
108 # Requires /etc/machine-id, D-Bus system bus, etc.
109 "-Dtests=false"
110 ]
111 ++ lib.optionals (!withFwupd) [ "-Dfwupd=false" ];
112
113 passthru = {
114 updateScript = gnome.updateScript { packageName = "gnome-software"; };
115 };
116
117 meta = {
118 description = "Software store that lets you install and update applications and system extensions";
119 mainProgram = "gnome-software";
120 homepage = "https://apps.gnome.org/Software/";
121 license = lib.licenses.gpl2Plus;
122 teams = [ lib.teams.gnome ];
123 platforms = lib.platforms.linux;
124 };
125})