diff options
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | 1126.diff | 87 | ||||
-rw-r--r-- | PKGBUILD | 24 |
3 files changed, 109 insertions, 6 deletions
@@ -35,6 +35,7 @@ pkgbase = gnome-shell-performance depends = gstreamer depends = libibus depends = gnome-autoar + depends = gjs-git optdepends = gnome-control-center: System settings optdepends = evolution-data-server: Evolution calendar integration provides = gnome-shell @@ -43,8 +44,10 @@ pkgbase = gnome-shell-performance conflicts = gnome-shell source = git+https://gitlab.gnome.org/GNOME/gnome-shell.git#commit=18a5c7436251d43d458c40a0259dc6da4d9ea760 source = git+https://gitlab.gnome.org/GNOME/libgnome-volume-control.git + source = 1126.diff sha256sums = SKIP sha256sums = SKIP + sha256sums = 32661c22298d0c4af9b6b6bb718480ce192f528367f853d9709f74c146b2f8d4 pkgname = gnome-shell-performance depends = accountsservice @@ -65,5 +68,6 @@ pkgname = gnome-shell-performance depends = gstreamer depends = libibus depends = gnome-autoar + depends = gjs-git depends = libmutter-6.so diff --git a/1126.diff b/1126.diff new file mode 100644 index 000000000000..c7f0199bd93f --- /dev/null +++ b/1126.diff @@ -0,0 +1,87 @@ +diff --git a/js/ui/calendar.js b/js/ui/calendar.js +index 99641841768fca6ef96bb41197fce1c75040fbc2..286aac1e10ee9bd966a98a86eb10cb7210ff3ff6 100644 +--- a/js/ui/calendar.js ++++ b/js/ui/calendar.js +@@ -199,46 +199,47 @@ class DBusEventSource extends EventSourceBase { + + this._initialized = false; + this._dbusProxy = new CalendarServer(); +- this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, (object, result) => { +- let loaded = false; +- +- try { +- this._dbusProxy.init_finish(result); +- loaded = true; +- } catch (e) { +- if (e.matches(Gio.DBusError, Gio.DBusError.TIMED_OUT)) { +- // Ignore timeouts and install signals as normal, because with high +- // probability the service will appear later on, and we will get a +- // NameOwnerChanged which will finish loading +- // +- // (But still _initialized to false, because the proxy does not know +- // about the HasCalendars property and would cause an exception trying +- // to read it) +- } else { +- log('Error loading calendars: %s'.format(e.message)); +- return; +- } ++ this._initProxy(); ++ } ++ ++ async _initProxy() { ++ let loaded = false; ++ ++ try { ++ await this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null); ++ loaded = true; ++ } catch (e) { ++ // Ignore timeouts and install signals as normal, because with high ++ // probability the service will appear later on, and we will get a ++ // NameOwnerChanged which will finish loading ++ // ++ // (But still _initialized to false, because the proxy does not know ++ // about the HasCalendars property and would cause an exception trying ++ // to read it) ++ if (!e.matches(Gio.DBusError, Gio.DBusError.TIMED_OUT)) { ++ log('Error loading calendars: %s'.format(e.message)); ++ return; + } ++ } + +- this._dbusProxy.connectSignal('Changed', this._onChanged.bind(this)); +- +- this._dbusProxy.connect('notify::g-name-owner', () => { +- if (this._dbusProxy.g_name_owner) +- this._onNameAppeared(); +- else +- this._onNameVanished(); +- }); +- +- this._dbusProxy.connect('g-properties-changed', () => { +- this.notify('has-calendars'); +- }); ++ this._dbusProxy.connectSignal('Changed', this._onChanged.bind(this)); + +- this._initialized = loaded; +- if (loaded) { +- this.notify('has-calendars'); ++ this._dbusProxy.connect('notify::g-name-owner', () => { ++ if (this._dbusProxy.g_name_owner) + this._onNameAppeared(); +- } ++ else ++ this._onNameVanished(); ++ }); ++ ++ this._dbusProxy.connect('g-properties-changed', () => { ++ this.notify('has-calendars'); + }); ++ ++ this._initialized = loaded; ++ if (loaded) { ++ this.notify('has-calendars'); ++ this._onNameAppeared(); ++ } + } + + destroy() { @@ -7,7 +7,7 @@ ### MERGE REQUESTS SELECTION # available MR: ('536' '786' '923') -_merge_requests_to_use=() # safe pick +_merge_requests_to_use=('1126' '1192' '1164') # safe pick ### IMPORTANT: Do no edit below this line unless you know what you're doing @@ -23,7 +23,7 @@ arch=(x86_64) license=(GPL2) depends=(accountsservice gcr gjs gnome-bluetooth upower gnome-session gnome-settings-daemon gnome-themes-extra gsettings-desktop-schemas libcanberra-pulse libgdm libsecret - mutter nm-connection-editor unzip gstreamer libibus gnome-autoar) + mutter nm-connection-editor unzip gstreamer libibus gnome-autoar 'gjs-git') makedepends=(gtk-doc gnome-control-center evolution-data-server gobject-introspection git meson sassc asciidoc bash-completion) optdepends=('gnome-control-center: System settings' @@ -34,9 +34,11 @@ conflicts=(gnome-shell) install=$pkgname.install _commit=18a5c7436251d43d458c40a0259dc6da4d9ea760 # tags/3.36.1^37 source=("git+https://gitlab.gnome.org/GNOME/gnome-shell.git#commit=$_commit" - "git+https://gitlab.gnome.org/GNOME/libgnome-volume-control.git") + "git+https://gitlab.gnome.org/GNOME/libgnome-volume-control.git" + "1126.diff") sha256sums=('SKIP' - 'SKIP') + 'SKIP' + '32661c22298d0c4af9b6b6bb718480ce192f528367f853d9709f74c146b2f8d4') pkgver() { cd $_pkgname @@ -48,13 +50,13 @@ pick_mr() { if [ "$1" = "$mr" ]; then if [ "$2" = "merge" ] || [ -z "$2" ]; then echo "Downloading then Merging $1..." - curl -O "https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/$mr.diff" + curl -O "https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/$mr.diff" git apply "$mr.diff" elif [ "$3" = "revert" ]; then echo "Reverting $1..." git revert "$2" --no-commit elif [ "$3" = "patch" ]; then - echo "Patching $1..." + echo "Patching with $2..." patch -Np1 -i ../"$2" else echo "ERROR: wrong argument given: $2" @@ -126,6 +128,16 @@ prepare() { # Comment: Unlock freezes, it hits me too. pick_mr '923' + # Title: calendar-server: Improve performance by properly using ECalClientView + # URL: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1164 + # Type: 1 + # Status: 4 + # Comment: Depends on 1126 that requires gjs>=1.65.1 + pick_mr '1126' '1126.diff' 'patch' + pick_mr '1192' + pick_mr '1164' + + git submodule init git submodule set-url subprojects/gvc "$srcdir/libgnome-volume-control" |