# Maintainer: Saren Arterius # Maintainer: Térence Clastres # Maintainer: Jan Alexander Steffens (heftig) # Contributor: Ionut Biru # Contributor: Michael Kanis ### MERGE REQUESTS SELECTION # Merge Requests List: ('579' '1309' '1050' '1441') _merge_requests_to_use=('1050' '1309' '1441') # safe pick ### IMPORTANT: Do no edit below this line unless you know what you're doing pkgname=mutter-performance pkgver=3.38.1+9+g54936263c pkgrel=1 pkgdesc="A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync" url="https://gitlab.gnome.org/GNOME/mutter" arch=(x86_64) license=(GPL) depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas libcanberra startup-notification zenity libsm gnome-desktop upower libxkbcommon-x11 gnome-settings-daemon libgudev libinput pipewire xorg-server-xwayland) makedepends=(gobject-introspection git egl-wayland meson xorg-server sysprof) checkdepends=(xorg-server-xvfb) provides=(mutter mutter-781835-workaround libmutter-7.so) conflicts=(mutter) replaces=(mutter-781835-workaround) groups=(gnome) install=mutter.install _commit=54936263cdfda48b5bf38d79b6f218d59e2c7f07 # tags/3.38.1^9 source=("$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit") sha256sums=('SKIP') pkgver() { cd $pkgname git describe --tags | sed 's/-/+/g' } pick_mr() { for mr in "${_merge_requests_to_use[@]}"; do 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" git apply "$mr.diff" elif [ "$3" = "revert" ]; then echo "Reverting $1..." git revert "$2" --no-commit elif [ "$3" = "patch" ]; then if [ -e ../"$2" ]; then echo "Patching with $2..." patch -Np1 -i ../"$2" else echo "Downloading $mr as $2 then patching..." curl -O "https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/$mr.diff" -o "$2" patch -Np1 -i "$2" fi else echo "ERROR: wrong argument given: $2" fi break fi done } prepare() { cd $pkgname ### Adding and fetching remotes providing the selected merge-requests ### Only needed when there is no MR opened git reset --hard git cherry-pick --abort || true #git remote add vanvugt https://gitlab.gnome.org/vanvugt/mutter.git || true #git remote add verdre https://gitlab.gnome.org/verdre/mutter.git || true #git remote add 3v1no https://gitlab.gnome.org/3v1n0/mutter.git || true #git fetch vanvugt #git fetch verdre #git fetch 3v1no ### Merge Requests # Merge Request Prototype # Title: # URL: # Type: # Status: # Comment: # git cherry-pick -n first_commit^..last_commit # # Possible Type: # 1. Improvement: Makes an already existing feature behave better, more efficiently/reliably. # 2. Feature: Adds a new functionality. # 3. Fix: Regression/bug fix only available in master (not backported). # 4. Cleanup: Code styling improvement, function deprecation, rearrangement... # # Possible Status: # 1. Needs rebase: Conflicts with master branch. # 2. Needs review: Mutter maintainers needs to review the new/updated MR and provide feedback. # 3. Needs changes: MR needs to be adjusted based on maintainers feedback. # 4. Merged: MR approved and it changes commited to master. # # Generally, a MR status oscillate between 2 and 3 and then becomes 4. # Title: backends: Do not reload keymap on new keyboard notifications # URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/579 # Type: 1 # Status: 4 # Comment: Was reverted: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/833 # If you use stenography software or play hardcore rhythm games like Lunatic Rave 2/osumania, use it. pick_mr '579' ce86f90efbaa51522ba14c5b4cad933c2106de42 'revert' # Title: clutter/text: Use new pango API to compare attribute lists # URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1050 # Type: 1 # Status: 2 pick_mr '1050' # Title: cogl-winsys-glx: Add a heuristically calculated presentation_time # URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1309 # Type: 1 # Status: 3 # Comment: Fix high latency on nvidia driver pick_mr '1309' # Title: WIP: clutter-frame-clock: Triple buffering support (v4) # URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441 # Type: 1 # Status: 3 # Comment: Help GPU frequencies to scale up pick_mr '1441' } build() { CFLAGS="${CFLAGS/-O2/-O3} -fno-semantic-interposition" LDFLAGS+=" -Wl,-Bsymbolic-functions" arch-meson $pkgname build \ -D egl_device=true \ -D wayland_eglstream=true \ -D xwayland_initfd=disabled \ -D installed_tests=false meson compile -C build } check() ( mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}" glib-compile-schemas "${GSETTINGS_SCHEMA_DIR:=$PWD/build/data}" export XDG_RUNTIME_DIR GSETTINGS_SCHEMA_DIR # Stacking test flaky dbus-run-session xvfb-run \ -s '-screen 0 1920x1080x24 -nolisten local +iglx -noreset' \ meson test -C build --print-errorlogs || : ) package() { DESTDIR="$pkgdir" meson install -C build }