Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / desktops / gnome / core / gnome-control-center / default.nix
blob8e16837294849f7154be332df750ad1f0ce62246
1 { fetchurl
2 , lib
3 , stdenv
4 , substituteAll
5 , accountsservice
6 , adwaita-icon-theme
7 , colord
8 , colord-gtk4
9 , cups
10 , dbus
11 , docbook-xsl-nons
12 , fontconfig
13 , gdk-pixbuf
14 , gettext
15 , glib
16 , glib-networking
17 , gcr_4
18 , glibc
19 , gnome-bluetooth
20 , gnome-color-manager
21 , gnome-desktop
22 , gnome-online-accounts
23 , gnome-settings-daemon
24 , gnome-tecla
25 , gnome
26 , gsettings-desktop-schemas
27 , gsound
28 , gst_all_1
29 , gtk4
30 , ibus
31 , json-glib
32 , libgtop
33 , libgudev
34 , libadwaita
35 , libkrb5
36 , libjxl
37 , libpulseaudio
38 , libpwquality
39 , librsvg
40 , webp-pixbuf-loader
41 , libsecret
42 , libsoup_3
43 , libwacom
44 , libXi
45 , libxml2
46 , libxslt
47 , meson
48 , modemmanager
49 , mutter
50 , networkmanager
51 , networkmanagerapplet
52 , libnma-gtk4
53 , ninja
54 , pkg-config
55 , polkit
56 , python3
57 , samba
58 , setxkbmap
59 , shadow
60 , shared-mime-info
61 , sound-theme-freedesktop
62 , tracker
63 , tracker-miners
64 , tzdata
65 , udisks2
66 , upower
67 , libepoxy
68 , gnome-user-share
69 , gnome-remote-desktop
70 , wrapGAppsHook4
71 , xorgserver
74 stdenv.mkDerivation (finalAttrs: {
75   pname = "gnome-control-center";
76   version = "46.3";
78   src = fetchurl {
79     url = "mirror://gnome/sources/gnome-control-center/${lib.versions.major finalAttrs.version}/gnome-control-center-${finalAttrs.version}.tar.xz";
80     hash = "sha256-l9xsfR3uGVkU88vIRbaBZLdhFIDYk760EQBsFerkbLk=";
81   };
83   patches = [
84     (substituteAll {
85       src = ./paths.patch;
86       gcm = gnome-color-manager;
87       inherit glibc tzdata shadow;
88       inherit cups networkmanagerapplet;
89     })
90   ];
92   nativeBuildInputs = [
93     docbook-xsl-nons
94     gettext
95     libxslt
96     meson
97     ninja
98     pkg-config
99     python3
100     shared-mime-info
101     wrapGAppsHook4
102   ];
104   buildInputs = [
105     accountsservice
106     adwaita-icon-theme
107     colord
108     colord-gtk4
109     cups
110     fontconfig
111     gdk-pixbuf
112     glib
113     glib-networking
114     gcr_4
115     gnome-bluetooth
116     gnome-desktop
117     gnome-online-accounts
118     gnome-remote-desktop # optional, sharing panel
119     gnome-settings-daemon
120     gnome-tecla
121     gnome-user-share # optional, sharing panel
122     gsettings-desktop-schemas
123     gsound
124     gtk4
125     ibus
126     json-glib
127     libepoxy
128     libgtop
129     libgudev
130     libadwaita
131     libkrb5
132     libnma-gtk4
133     libpulseaudio
134     libpwquality
135     librsvg
136     libsecret
137     libsoup_3
138     libwacom
139     libXi
140     libxml2
141     modemmanager
142     mutter # schemas for the keybindings
143     networkmanager
144     polkit
145     samba
146     tracker
147     tracker-miners # for search locations dialog
148     udisks2
149     upower
150   ] ++ (with gst_all_1; [
151     # For animations in Mouse panel.
152     gst-plugins-base
153     gst-plugins-good
154   ]);
156   nativeCheckInputs = [
157     dbus
158     python3.pkgs.pygobject3 # for test-networkmanager-service.py
159     python3.pkgs.python-dbusmock
160     setxkbmap
161     xorgserver # for Xvfb
162   ];
164   doCheck = true;
166   preConfigure = ''
167     # For ITS rules
168     addToSearchPath "XDG_DATA_DIRS" "${polkit.out}/share"
169   '';
171   preCheck = ''
172     # Basically same as https://github.com/NixOS/nixpkgs/pull/141299
173     export ADW_DISABLE_PORTAL=1
174     export XDG_DATA_DIRS=${glib.getSchemaDataDirPath gsettings-desktop-schemas}
175   '';
177   postInstall = ''
178     # Pull in WebP and JXL support for gnome-backgrounds.
179     # In postInstall to run before gappsWrapperArgsHook.
180     export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
181       extraLoaders = [
182         libjxl
183         librsvg
184         webp-pixbuf-loader
185       ];
186     }}"
187   '';
189   preFixup = ''
190     gappsWrapperArgs+=(
191       --prefix XDG_DATA_DIRS : "${sound-theme-freedesktop}/share"
192       # Thumbnailers (for setting user profile pictures)
193       --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
194       --prefix XDG_DATA_DIRS : "${librsvg}/share"
195       # WM keyboard shortcuts
196       --prefix XDG_DATA_DIRS : "${mutter}/share"
197     )
198     for i in $out/share/applications/*; do
199       substituteInPlace $i --replace "Exec=gnome-control-center" "Exec=$out/bin/gnome-control-center"
200     done
201   '';
203   separateDebugInfo = true;
205   passthru = {
206     updateScript = gnome.updateScript {
207       packageName = "gnome-control-center";
208       attrPath = "gnome.gnome-control-center";
209     };
210   };
212   meta = with lib; {
213     description = "Utilities to configure the GNOME desktop";
214     mainProgram = "gnome-control-center";
215     license = licenses.gpl2Plus;
216     maintainers = teams.gnome.members;
217     platforms = platforms.linux;
218   };