Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # $Id: PKGBUILD 289103 2017-02-17 19:00:25Z heftig $
- # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
- # Maintainer: Ionut Biru <ibiru@archlinux.org>
- # Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
- pkgname=mutter
- pkgver=3.24.2
- pkgrel=1.1
- pkgdesc="A window manager for GNOME"
- url="https://git.gnome.org/browse/mutter"
- arch=(i686 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)
- makedepends=(intltool gobject-introspection git gnome-common)
- groups=(gnome)
- options=(!emptydirs)
- _commit=01b6e32e8796a96298ea388a557ab0c1df329d37 # tags/3.24.2^0
- source=("git+https://git.gnome.org/browse/mutter#commit=$_commit"
- startup-notification.patch
- cogl-driver-glsl150_mutter_v2.patch
- catalyst-workaround.patch)
- sha256sums=('SKIP'
- '5a35ca4794fc361219658d9fae24a3ca21a365f2cb1901702961ac869c759366'
- '62cfe7086090b99cfcc38c73b9d3e826e03caa93f047cff02f7b2416bf8d28c4'
- 'ad1165dab73d97428a8ff60a9d76b98fd7f0c9f396452b87f18b2123917428c4')
- pkgver() {
- cd $pkgname
- git describe --tags | sed 's/-/+/g'
- }
- prepare() {
- cd $pkgname
- # https://bugs.archlinux.org/task/51940
- patch -Np1 -i ../startup-notification.patch
- patch -Np1 -i ../cogl-driver-glsl150_mutter_v2.patch
- #https://bugzilla.gnome.org/show_bug.cgi?id=741581
- patch -Np1 < ../catalyst-workaround.patch
- NOCONFIGURE=1 ./autogen.sh
- }
- build() {
- cd $pkgname
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
- --libexecdir=/usr/lib/$pkgname --disable-static \
- --disable-schemas-compile --enable-compile-warnings=minimum \
- --enable-gtk-doc
- #https://bugzilla.gnome.org/show_bug.cgi?id=655517
- sed -e 's/ -shared / -Wl,-O1,--as-needed\0/g' \
- -i {.,cogl,clutter}/libtool
- make
- }
- package() {
- cd $pkgname
- make DESTDIR="$pkgdir" install
- }
- startup-notification.patch
- ---------------------------------------
- From 4ed430b4ef3013c96fa56cdc57b925b42d20ead9 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
- Date: Thu, 20 Oct 2016 18:00:04 +0200
- Subject: [PATCH] gtk-shell: Work around non-working startup notifications
- GNOME Shell relies on the MetaScreen::startup-sequence-changed signal,
- which is tied to (lib)startup-notification and therefore X11. As a result,
- when we remove the startup sequence of a wayland client, GNOME Shell will
- not be notified about this until startup-notification's timeout is hit.
- As a temporary stop-gap, go through XWayland even for wayland clients,
- so that the signal is emitted when expected.
- https://bugzilla.gnome.org/show_bug.cgi?id=768531
- ---
- src/wayland/meta-wayland-gtk-shell.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
- diff --git a/src/wayland/meta-wayland-gtk-shell.c b/src/wayland/meta-wayland-gtk-shell.c
- index d6e249f..9d1a19e 100644
- --- a/src/wayland/meta-wayland-gtk-shell.c
- +++ b/src/wayland/meta-wayland-gtk-shell.c
- @@ -219,11 +219,21 @@ gtk_shell_set_startup_id (struct wl_client *client,
- struct wl_resource *resource,
- const char *startup_id)
- {
- +#if 0
- MetaDisplay *display;
- display = meta_get_display ();
- meta_startup_notification_remove_sequence (display->startup_notification,
- startup_id);
- +#else
- + /* HACK: MetaScreen::startup-sequence-changed is currently tied to
- + (lib)startup-notification, which means it only works on X11;
- + so for now, always go through XWayland, even for wayland clients */
- + gdk_x11_display_broadcast_startup_message (gdk_display_get_default (),
- + "remove",
- + "ID", startup_id,
- + NULL);
- +#endif
- }
- static void
- --
- 2.9.3
- cogl-driver-glsl150_mutter_v2.patch
- ---------------------------------------
- --- mutter3221/cogl/cogl/driver/gl/gl/cogl-driver-gl.c 2016-10-17 20:43:31.283749432 +0200
- +++ mutter3221b/cogl/cogl/driver/gl/gl/cogl-driver-gl.c 2016-10-17 20:47:44.000000000 +0200
- @@ -416,9 +416,13 @@
- &ctx->glsl_minor);
- }
- - if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 2))
- - /* We want to use version 120 if it is available so that the
- - * gl_PointCoord can be used. */
- + if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 5))
- + ctx->glsl_version_to_use = 150;
- + else if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 4))
- + ctx->glsl_version_to_use = 140;
- + else if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 3))
- + ctx->glsl_version_to_use = 130;
- + else if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 2))
- ctx->glsl_version_to_use = 120;
- else
- ctx->glsl_version_to_use = 110;
- catalyst-workaround.patch
- ---------------------------------------
- --- a/src/backends/x11/meta-monitor-manager-xrandr.c 2017-05-29 22:05:54.341322317 +0200
- +++ b/src/backends/x11/meta-monitor-manager-xrandr.c 2017-05-29 22:09:00.614901230 +0200
- @@ -1060,6 +1060,41 @@
- }
- }
- +static int
- +output_get_fglrx_kernel_module_loaded()
- +{
- + /* Checks if fglrx module has been loaded by parsing /proc/modules.
- + * Returns 1 if the module was found (and thus has been loaded), 0 if the
- + * module was not found and -1 if /proc/modules couldn't be opened.
- + */
- +
- + int retval = 0; // defaults to not found
- +
- + FILE* fp;
- + char line[256];
- +
- + fp = fopen("/proc/modules", "r");
- + if (!fp)
- + {
- + retval = -1;
- + }
- + else
- + {
- + while (fgets(line, sizeof(line), fp) != NULL)
- + {
- + char *entry = strtok(line, " \n");
- +
- + if (strcmp(entry, "fglrx") == 0)
- + {
- + retval = 1;
- + break;
- + }
- + }
- + fclose(fp);
- + }
- + return retval;
- +}
- +
- static void
- apply_crtc_assignments (MetaMonitorManager *manager,
- MetaCrtcInfo **crtcs,
- @@ -1235,6 +1270,8 @@
- }
- }
- + int fglrx_kernel_module_loaded = output_get_fglrx_kernel_module_loaded();
- +
- for (i = 0; i < n_outputs; i++)
- {
- MetaOutputInfo *output_info = outputs[i];
- @@ -1247,9 +1284,13 @@
- (XID)output_info->output->winsys_id);
- }
- - output_set_presentation_xrandr (manager_xrandr,
- - output_info->output,
- - output_info->is_presentation);
- + /* Don't call output_set_presentation_xrandr if fglrx/catalyst is used, because that causes a crash. */
- + if (fglrx_kernel_module_loaded != 1)
- + {
- + output_set_presentation_xrandr (manager_xrandr,
- + output_info->output,
- + output_info->is_presentation);
- + }
- if (output_get_supports_underscanning_xrandr (manager_xrandr, output_info->output))
- output_set_underscanning_xrandr (manager_xrandr,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement