mutter diff

Created Diff never expires
4 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
58 lines
123 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
177 lines
# Maintainer: Saren Arterius <saren@wtako.net>
# Maintainer: Térence Clastres <t.clastres@gmail.com>

# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>


pkgname=mutter

### MERGE REQUESTS SELECTION

# Merge Requests List: ('579' '1309' '1050' '1441' '1241')
_merge_requests_to_use=() # safe pick

### IMPORTANT: Do no edit below this line unless you know what you're doing

pkgname=mutter-performance
pkgver=3.38.3
pkgver=3.38.3
pkgrel=1
pkgrel=1
pkgdesc="A window manager for GNOME"
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"
url="https://gitlab.gnome.org/GNOME/mutter"
arch=(x86_64)
arch=(x86_64)
license=(GPL)
license=(GPL)
depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas
depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas
libcanberra startup-notification zenity libsm gnome-desktop upower
libcanberra startup-notification zenity libsm gnome-desktop upower
libxkbcommon-x11 gnome-settings-daemon libgudev libinput pipewire
libxkbcommon-x11 gnome-settings-daemon libgudev libinput pipewire
xorg-xwayland graphene)
xorg-xwayland graphene)
makedepends=(gobject-introspection git egl-wayland meson xorg-server sysprof)
makedepends=(gobject-introspection git egl-wayland meson xorg-server sysprof)
checkdepends=(xorg-server-xvfb)
checkdepends=(xorg-server-xvfb)
provides=(libmutter-7.so)
provides=(mutter mutter-781835-workaround libmutter-7.so)
conflicts=(mutter)
replaces=(mutter-781835-workaround)
groups=(gnome)
groups=(gnome)
install=mutter.install
install=mutter.install
_commit=9f9c26be93ee73e7ce0434d251e4af31626342f9 # tags/3.38.3^0
_commit=9f9c26be93ee73e7ce0434d251e4af31626342f9 # tags/3.38.3^0
source=("git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit")
source=("$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit")
sha256sums=('SKIP')
sha256sums=('SKIP')


pkgver() {
pkgver() {
cd $pkgname
cd $pkgname
git describe --tags | sed 's/-/+/g'
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() {
prepare() {
cd $pkgname
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 but not currently working on Wayland
pick_mr '1441'


# Title: WIP: clutter/frame-clock: Allow update dispatch while presentation is pending
# URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1241
# Type: 1
# Status: 3
# Comment: Helps cursor movement under load on Wayland
pick_mr '1241' 1241.diff patch


}
}



build() {
build() {
CFLAGS="${CFLAGS/-O2/-O3} -fno-semantic-interposition"
CFLAGS="${CFLAGS/-O2/-O3} -fno-semantic-interposition"
LDFLAGS+=" -Wl,-Bsymbolic-functions"
LDFLAGS+=" -Wl,-Bsymbolic-functions"
arch-meson $pkgname build \
arch-meson $pkgname build \
-D egl_device=true \
-D egl_device=true \
-D wayland_eglstream=true \
-D wayland_eglstream=true \
-D installed_tests=false
-D installed_tests=false
meson compile -C build
meson compile -C build
}
}


check() (
check() (
mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
glib-compile-schemas "${GSETTINGS_SCHEMA_DIR:=$PWD/build/data}"
glib-compile-schemas "${GSETTINGS_SCHEMA_DIR:=$PWD/build/data}"
export XDG_RUNTIME_DIR GSETTINGS_SCHEMA_DIR
export XDG_RUNTIME_DIR GSETTINGS_SCHEMA_DIR


# Stacking test flaky
# Stacking test flaky
dbus-run-session xvfb-run \
dbus-run-session xvfb-run \
-s '-screen 0 1920x1080x24 -nolisten local +iglx -noreset' \
-s '-screen 0 1920x1080x24 -nolisten local +iglx -noreset' \
meson test -C build --print-errorlogs || :
meson test -C build --print-errorlogs || :
)
)


package() {
package() {
DESTDIR="$pkgdir" meson install -C build
DESTDIR="$pkgdir" meson install -C build
}
}