diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-04-27 21:04:56 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-04-27 21:04:56 +0000 |
commit | a4e6c7d26af697f4346cacb7ab18dcd7fcfc056e (patch) | |
tree | 47950e79183035018882419c4eff5047d1537b99 /nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell | |
parent | 5b00523fb58512232b819a301c4309f579c7f09c (diff) | |
parent | 22a3bf9fb9edad917fb6cd1066d58b5e426ee975 (diff) | |
download | nixlib-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')
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( |