28 , gobject-introspection
39 , gsettings-desktop-schemas
44 , evolution-data-server-gtk4
54 , gnome-settings-daemon
67 pythonEnv = python3.withPackages (ps: with ps; [ pygobject3 ]);
69 stdenv.mkDerivation (finalAttrs: {
70 pname = "gnome-shell";
73 outputs = [ "out" "devdoc" ];
76 url = "mirror://gnome/sources/gnome-shell/${lib.versions.major finalAttrs.version}/gnome-shell-${finalAttrs.version}.tar.xz";
77 hash = "sha256-575fxu4sxSitJh3HpVyN5aMkEtPWhAoKB14PwSoH/4s=";
81 # Hardcode paths to various dependencies so that they can be found at runtime.
83 src = ./fix-paths.patch;
84 glib_compile_schemas = "${glib.dev}/bin/glib-compile-schemas";
85 gsettings = "${glib.bin}/bin/gsettings";
86 tecla = "${lib.getBin gnome-tecla}/bin/tecla";
87 unzip = "${lib.getBin unzip}/bin/unzip";
90 # Use absolute path for libshew installation to make our patched gobject-introspection
91 # aware of the location to hardcode in the generated GIR file.
94 # Make D-Bus services wrappable.
97 # Fix greeter logo being too big.
98 # https://gitlab.gnome.org/GNOME/gnome-shell/issues/2591
99 # Reverts https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1101
100 ./greeter-logo-size.patch
102 # Work around failing fingerprint auth
104 url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/dcd112d9708954187e7490564c2229d82ba5326f/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
105 hash = "sha256-mgXty5HhiwUO1UV3/eDgWtauQKM0cRFQ0U7uocST25s=";
109 nativeBuildInputs = [
121 gobject-introspection
126 gsettings-desktop-schemas
139 evolution-data-server-gtk4
147 gnome-clocks # schemas needed
152 gnome-settings-daemon
154 libGL # for egl, required by mutter-clutter
155 libXi # required by libmutter
162 gst_all_1.gst-plugins-base
163 gst_all_1.gst-plugins-good
165 # not declared at build time, but typelib is needed at runtime
169 # for gnome-extension tool
184 patchShebangs src/data-to-c.pl
186 # We can generate it ourselves.
187 rm -f man/gnome-shell.1
188 rm data/theme/gnome-shell-{light,dark}.css
192 # Pull in WebP and JXL support for gnome-backgrounds.
193 # In postInstall to run before gappsWrapperArgsHook.
194 export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
205 # Until glib’s xdgmime is patched
206 # Fixes “Failed to load resource:///org/gnome/shell/theme/noise-texture.png: Unrecognized image file format”
207 --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
212 # The services need typelibs.
213 for svc in org.gnome.ScreenSaver org.gnome.Shell.Extensions org.gnome.Shell.Notifications org.gnome.Shell.Screencast; do
214 wrapGApp $out/share/gnome-shell/$svc
217 # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
218 moveToOutput "share/doc" "$devdoc"
221 separateDebugInfo = true;
224 mozillaPlugin = "/lib/mozilla/plugins";
225 updateScript = gnome.updateScript {
226 packageName = "gnome-shell";
227 attrPath = "gnome.gnome-shell";
232 description = "Core user interface for the GNOME 3 desktop";
233 homepage = "https://gitlab.gnome.org/GNOME/gnome-shell";
234 license = licenses.gpl2Plus;
235 maintainers = teams.gnome.members;
236 platforms = platforms.linux;