about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-04-27 21:04:56 +0000
committerAlyssa Ross <hi@alyssa.is>2020-04-27 21:04:56 +0000
commita4e6c7d26af697f4346cacb7ab18dcd7fcfc056e (patch)
tree47950e79183035018882419c4eff5047d1537b99 /nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell
parent5b00523fb58512232b819a301c4309f579c7f09c (diff)
parent22a3bf9fb9edad917fb6cd1066d58b5e426ee975 (diff)
downloadnixlib-a4e6c7d26af697f4346cacb7ab18dcd7fcfc056e.tar
nixlib-a4e6c7d26af697f4346cacb7ab18dcd7fcfc056e.tar.gz
nixlib-a4e6c7d26af697f4346cacb7ab18dcd7fcfc056e.tar.bz2
nixlib-a4e6c7d26af697f4346cacb7ab18dcd7fcfc056e.tar.lz
nixlib-a4e6c7d26af697f4346cacb7ab18dcd7fcfc056e.tar.xz
nixlib-a4e6c7d26af697f4346cacb7ab18dcd7fcfc056e.tar.zst
nixlib-a4e6c7d26af697f4346cacb7ab18dcd7fcfc056e.zip
Merge commit '22a3bf9fb9edad917fb6cd1066d58b5e426ee975'
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell')
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix69
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-bash-completion.patch10
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch11
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch57
4 files changed, 127 insertions, 20 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 26e96b5a3385..864dd45aad20 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -1,12 +1,14 @@
-{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, libcroco, gettext, libsecret
+{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, gettext, libsecret
 , python3, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core
 , libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info
 , libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils
-, libpulseaudio, libical, gobject-introspection, gstreamer, wrapGAppsHook, libxslt, gcr
+, libpulseaudio, libical, gobject-introspection, wrapGAppsHook, libxslt, gcr
 , accountsservice, gdk-pixbuf, gdm, upower, ibus, libnma, libgnomekbd, gnome-desktop
 , gsettings-desktop-schemas, gnome-keyring, glib, gjs, mutter, evolution-data-server, gtk3
 , sassc, systemd, gst_all_1, adwaita-icon-theme, gnome-bluetooth, gnome-clocks, gnome-settings-daemon
-, gnome-autoar, asciidoc-full }:
+, gnome-autoar, asciidoc-full
+, bash-completion
+}:
 
 # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
 
@@ -15,11 +17,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "3.34.4";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0rm32h7lv4vyadi9x32sb6fwxslarwk70yzmvzjxbq872cazp779";
+    sha256 = "0696qw6bmbga30qlvh1k6bkiajl7877j8yis4bwmi1wxkcmkh854";
   };
 
   LANG = "en_US.UTF-8";
@@ -31,45 +33,65 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     systemd
     gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice
-    libcroco libsecret libsoup polkit gdk-pixbuf librsvg
-    clutter networkmanager libstartup_notification telepathy-glib
+    libsecret libsoup polkit gdk-pixbuf librsvg
+    networkmanager libstartup_notification telepathy-glib
     libXtst gjs mutter libpulseaudio evolution-data-server
-    libical gtk3 gstreamer gdm libcanberra-gtk3 geoclue2
+    libical gtk3 gdm libcanberra-gtk3 geoclue2
     adwaita-icon-theme gnome-bluetooth
     gnome-clocks # schemas needed
     at-spi2-core upower ibus gnome-desktop telepathy-logger gnome-settings-daemon
-    gst_all_1.gst-plugins-good # recording
     gobject-introspection
     gnome-autoar
 
+    # recording
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+
     # not declared at build time, but typelib is needed at runtime
     libgweather libnma
+
+    # for gnome-extension tool
+    bash-completion
   ];
 
   patches = [
-    (fetchpatch {
-      name = "0001-build-Add-missing-dependency-to-run-js-test.patch";
-      url = https://bug787864.bugzilla-attachments.gnome.org/attachment.cgi?id=360016;
-      sha256 = "1dmahd8ysbzh33rxglba0fbq127aw9h14cl2a2bw9913vjxhxijm";
-    })
+    # Hardcode paths to various dependencies so that they can be found at runtime.
     (substituteAll {
       src = ./fix-paths.patch;
       inherit libgnomekbd unzip;
       gsettings = "${glib.bin}/bin/gsettings";
     })
+
+    # Install bash-completions to correct prefix.
+    # https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1194
+    ./fix-bash-completion.patch
+
+    # Use absolute path for libshew installation to make our patched gobject-introspection
+    # aware of the location to hardcode in the generated GIR file.
+    ./shew-gir-path.patch
+
+    # Make D-Bus services wrappable.
+    ./wrap-services.patch
+
+    # Fix greeter logo being too big.
+    # https://gitlab.gnome.org/GNOME/gnome-shell/issues/2591
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/ffb8bd5fa7704ce70ce7d053e03549dd15dce5ae.patch";
+      revert = true;
+      sha256 = "9DdzjEnDiBL+JmdfgKwjYPn1O2wJ/6n1sMDT1ylUB5I=";
+    })
   ];
 
   postPatch = ''
     patchShebangs src/data-to-c.pl
+    chmod +x meson/postinstall.py
+    patchShebangs meson/postinstall.py
 
     substituteInPlace src/gnome-shell-extension-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
     substituteInPlace src/gnome-shell-perf-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
   '';
 
-  postInstall = ''
-    glib-compile-schemas $out/share/glib-2.0/schemas
-  '';
-
   preFixup = ''
     gappsWrapperArgs+=(
       # Until glib’s xdgmime is patched
@@ -78,6 +100,13 @@ in stdenv.mkDerivation rec {
     )
   '';
 
+  postFixup = ''
+    # The services need typelibs.
+    for svc in org.gnome.Shell.Extensions org.gnome.Shell.Notifications; do
+      wrapGApp $out/share/gnome-shell/$svc
+    done
+  '';
+
   passthru = {
     mozillaPlugin = "/lib/mozilla/plugins";
     updateScript = gnome3.updateScript {
@@ -88,9 +117,9 @@ in stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Core user interface for the GNOME 3 desktop";
-    homepage = https://wiki.gnome.org/Projects/GnomeShell;
+    homepage = "https://wiki.gnome.org/Projects/GnomeShell";
     license = licenses.gpl2Plus;
-    maintainers = gnome3.maintainers;
+    maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-bash-completion.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-bash-completion.patch
new file mode 100644
index 000000000000..08f674c23773
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-bash-completion.patch
@@ -0,0 +1,10 @@
+--- a/subprojects/extensions-tool/meson.build
++++ a/subprojects/extensions-tool/meson.build
+@@ -39,6 +39,6 @@ subdir('src')
+ 
+ if bash_completion.found()
+   install_data('completion/bash/gnome-extensions',
+-    install_dir: bash_completion.get_pkgconfig_variable('completionsdir')
++    install_dir: bash_completion.get_pkgconfig_variable('completionsdir', define_variable: ['prefix', prefix])
+   )
+ endif
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch
new file mode 100644
index 000000000000..2d7bdf303151
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch
@@ -0,0 +1,11 @@
+--- a/subprojects/shew/src/meson.build
++++ b/subprojects/shew/src/meson.build
+@@ -13,7 +13,7 @@ shew_sources = [
+ libshew = library(full_name,
+   sources: shew_sources,
+   dependencies: [gtk_dep],
+-  install_dir: pkglibdir,
++  install_dir: get_option('prefix') / pkglibdir,
+   install: true,
+ )
+ 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch
new file mode 100644
index 000000000000..bc494caea9dd
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch
@@ -0,0 +1,57 @@
+diff --git a/js/dbusServices/dbus-service.in b/js/dbusServices/dbus-service.in
+old mode 100644
+new mode 100755
+index 524166102..100b81a63
+--- a/js/dbusServices/dbus-service.in
++++ b/js/dbusServices/dbus-service.in
+@@ -1,3 +1,9 @@
++#!@gjs@
++
++// gjs determines the package name from argv[0], which is .*-wrapped
++// so we need to override it to the original one.
++imports.package._findEffectiveEntryPointName = () => '@service@'
++
+ imports.package.start({
+     name: '@PACKAGE_NAME@',
+     prefix: '@prefix@',
+diff --git a/js/dbusServices/dbus-service.service.in b/js/dbusServices/dbus-service.service.in
+index 3b0d09abe..4fd4bb66d 100644
+--- a/js/dbusServices/dbus-service.service.in
++++ b/js/dbusServices/dbus-service.service.in
+@@ -1,3 +1,3 @@
+ [D-BUS Service]
+ Name=@service@
+-Exec=@gjs@ @pkgdatadir@/@service@
++Exec=@pkgdatadir@/@service@
+diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build
+index c749f45dc..11bcb0c9e 100644
+--- a/js/dbusServices/meson.build
++++ b/js/dbusServices/meson.build
+@@ -2,6 +2,7 @@ launcherconf = configuration_data()
+ launcherconf.set('PACKAGE_NAME', meson.project_name())
+ launcherconf.set('prefix', prefix)
+ launcherconf.set('libdir', libdir)
++launcherconf.set('gjs', gjs.path())
+ 
+ dbus_services = {
+   'org.gnome.Shell.Extensions': 'extensions',
+@@ -11,16 +12,17 @@ dbus_services = {
+ config_dir = '@0@/..'.format(meson.current_build_dir())
+ 
+ foreach service, dir : dbus_services
++  svc_launcherconf = launcherconf
++  svc_launcherconf.set('service', service)
+   configure_file(
+     input: 'dbus-service.in',
+     output: service,
+-    configuration: launcherconf,
++    configuration: svc_launcherconf,
+     install_dir: pkgdatadir,
+   )
+ 
+   serviceconf = configuration_data()
+   serviceconf.set('service', service)
+-  serviceconf.set('gjs', gjs.path())
+   serviceconf.set('pkgdatadir', pkgdatadir)
+ 
+   configure_file(