[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu-xenial-lts'



 Xext/panoramiXprocs.c                                  |    4 
 Xext/saver.c                                           |    2 
 Xext/shm.c                                             |   17 
 Xi/exevents.c                                          |    3 
 configure.ac                                           |   28 -
 debian/changelog                                       |   32 +
 debian/control                                         |    6 
 debian/patches/os-treat-ssh-as-a-non-local-client.diff |   97 ---
 debian/patches/randr-adjust-masters-last-set-time.diff |   39 +
 debian/patches/randr-do-not-check-the-screen-size.diff |   87 +++
 debian/patches/series                                  |    8 
 debian/rules                                           |    2 
 dix/cursor.c                                           |   23 
 dix/devices.c                                          |    3 
 dix/enterleave.c                                       |   20 
 dix/ptrveloc.c                                         |   10 
 exa/exa_glyphs.c                                       |    8 
 exa/exa_render.c                                       |    3 
 glamor/glamor.c                                        |   45 +
 glamor/glamor.h                                        |    1 
 glamor/glamor_composite_glyphs.c                       |    5 
 glamor/glamor_compositerects.c                         |   18 
 glamor/glamor_copy.c                                   |    8 
 glamor/glamor_dash.c                                   |    3 
 glamor/glamor_egl.c                                    |   11 
 glamor/glamor_fbo.c                                    |    4 
 glamor/glamor_priv.h                                   |   28 +
 glamor/glamor_program.c                                |    8 
 glamor/glamor_render.c                                 |   94 ++-
 glamor/glamor_spans.c                                  |    3 
 glamor/glamor_text.c                                   |   13 
 glamor/glamor_transfer.c                               |    3 
 glamor/glamor_transform.c                              |   12 
 glamor/glamor_transform.h                              |    4 
 glx/glxext.c                                           |    6 
 hw/kdrive/linux/keyboard.c                             |  441 -----------------
 hw/xfree86/common/xf86Config.c                         |   68 +-
 hw/xfree86/common/xf86Configure.c                      |    2 
 hw/xfree86/common/xf86Init.c                           |    4 
 hw/xfree86/common/xf86Privstr.h                        |    1 
 hw/xfree86/drivers/modesetting/Makefile.am             |    2 
 hw/xfree86/drivers/modesetting/driver.c                |   85 ++-
 hw/xfree86/drivers/modesetting/drmmode_display.c       |   99 ++-
 hw/xfree86/drivers/modesetting/drmmode_display.h       |    2 
 hw/xfree86/drivers/modesetting/present.c               |    9 
 hw/xfree86/drivers/modesetting/sh3224.c                |  140 +++++
 hw/xfree86/drivers/modesetting/sh3224.h                |    7 
 hw/xfree86/int10/xf86x86emu.c                          |    2 
 hw/xfree86/man/xorg.conf.man                           |    4 
 hw/xfree86/modes/xf86Crtc.c                            |    3 
 hw/xfree86/os-support/linux/lnx_init.c                 |   10 
 hw/xfree86/x86emu/x86emu/regs.h                        |    8 
 hw/xquartz/bundle/Info.plist.cpp                       |   23 
 hw/xquartz/bundle/Makefile.am                          |    6 
 hw/xwayland/xwayland-cursor.c                          |   15 
 hw/xwayland/xwayland-glamor-xv.c                       |    2 
 hw/xwayland/xwayland-glamor.c                          |    3 
 hw/xwayland/xwayland-output.c                          |   17 
 hw/xwayland/xwayland-shm.c                             |   10 
 hw/xwayland/xwayland.h                                 |    2 
 include/xkbsrv.h                                       |    4 
 os/access.c                                            |   44 +
 present/present.c                                      |   33 -
 randr/rrprovider.c                                     |    2 
 render/picture.h                                       |    2 
 xkb/xkb.c                                              |    5 
 xkb/xkbEvents.c                                        |    2 
 xkb/xkbLEDs.c                                          |    2 
 68 files changed, 933 insertions(+), 784 deletions(-)

New commits:
commit 196add85e71375e06d22197e27dd4ef386307f86
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Sep 1 12:31:38 2016 +0300

    upload to trusty

diff --git a/debian/changelog b/debian/changelog
index 264e977..7e66326 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server-lts-xenial (2:1.18.4-0ubuntu0.1~trusty1) trusty; urgency=medium
+
+  * Backport for lts-xenial stack.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Thu, 01 Sep 2016 10:39:51 +0300
+
 xorg-server (2:1.18.4-0ubuntu0.1) xenial; urgency=medium
 
   * New upstream bugfix release.

commit 0312f308b88671d21bcb638ec04cb2ff007bc6b0
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Sep 1 10:28:40 2016 +0300

    release to xenial

diff --git a/debian/changelog b/debian/changelog
index f23f72f..fd9b166 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.18.4-0ubuntu0.1) UNRELEASED; urgency=medium
+xorg-server (2:1.18.4-0ubuntu0.1) xenial; urgency=medium
 
   * New upstream bugfix release.
   * randr-adjust-masters-last-set-time.diff,
@@ -6,7 +6,7 @@ xorg-server (2:1.18.4-0ubuntu0.1) UNRELEASED; urgency=medium
     Fix issues changing display mode on prime setups. (LP: #1586260)
   * os-treat-ssh-as-a-non-local-client.diff: Dropped, upstream.
 
- -- Timo Aaltonen <tjaalton@debian.org>  Mon, 01 Aug 2016 14:36:15 +0300
+ -- Timo Aaltonen <tjaalton@debian.org>  Thu, 01 Sep 2016 10:28:26 +0300
 
 xorg-server (2:1.18.3-1ubuntu2.3) xenial; urgency=medium
 

commit c6ce7b801c20321af2c1a1d71c120e5aa7388215
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Sep 1 10:28:24 2016 +0300

    os-treat-ssh-as-a-non-local-client.diff: Dropped, upstream.

diff --git a/debian/changelog b/debian/changelog
index 7053a70..f23f72f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ xorg-server (2:1.18.4-0ubuntu0.1) UNRELEASED; urgency=medium
   * randr-adjust-masters-last-set-time.diff,
     randr-do-not-check-the-screen-size.diff:
     Fix issues changing display mode on prime setups. (LP: #1586260)
+  * os-treat-ssh-as-a-non-local-client.diff: Dropped, upstream.
 
  -- Timo Aaltonen <tjaalton@debian.org>  Mon, 01 Aug 2016 14:36:15 +0300
 
diff --git a/debian/patches/os-treat-ssh-as-a-non-local-client.diff b/debian/patches/os-treat-ssh-as-a-non-local-client.diff
deleted file mode 100644
index 0b879bf..0000000
--- a/debian/patches/os-treat-ssh-as-a-non-local-client.diff
+++ /dev/null
@@ -1,97 +0,0 @@
-commit adefbaee499b9679c6cac21f52ec6545af2b36b5
-Author: Adam Jackson <ajax@redhat.com>
-Date:   Mon Mar 28 18:11:09 2016 +0900
-
-    os: Treat ssh as a non-local client (v4)
-    
-    By the time we get to ComputeLocalClient, we've already done
-    NextAvailableClient → ReserveClientIds → DetermineClientCmd (assuming
-    we're built with #define CLIENTIDS), so we can look up the name of the
-    client process and refuse to treat ssh's X forwarding as if it were
-    local.
-    
-    v2: (Michel Dänzer)
-        * Only match "ssh" itself, not other executable names starting with
-          that prefix.
-        * Ignore executable path for the match.
-    v3: (Michel Dänzer)
-        * Use GetClientCmdName (Mark Kettenis)
-        * Perform check on Windows as well, but only ignore path on Cygwin
-          (Martin Peres, Emil Velikov, Jon Turney)
-    v4: (Michel Dänzer)
-        * Cut of any colon and whatever comes after it. (Adam Jackson)
-        * Add bugzilla reference.
-    
-    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93261
-    
-    Signed-off-by: Adam Jackson <ajax@redhat.com>
-    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
-
-diff --git a/os/access.c b/os/access.c
-index 8b2177f..58f95a9 100644
---- a/os/access.c
-+++ b/os/access.c
-@@ -173,6 +173,10 @@ SOFTWARE.
- 
- #endif                          /* WIN32 */
- 
-+#if !defined(WIN32) || defined(__CYGWIN__)
-+#include <libgen.h>
-+#endif
-+
- #define X_INCLUDE_NETDB_H
- #include <X11/Xos_r.h>
- 
-@@ -1080,9 +1084,8 @@ ResetHosts(const char *display)
-     }
- }
- 
--/* Is client on the local host */
--Bool
--ComputeLocalClient(ClientPtr client)
-+static Bool
-+xtransLocalClient(ClientPtr client)
- {
-     int alen, family, notused;
-     Xtransaddr *from = NULL;
-@@ -1115,6 +1118,40 @@ ComputeLocalClient(ClientPtr client)
-     return FALSE;
- }
- 
-+/* Is client on the local host */
-+Bool
-+ComputeLocalClient(ClientPtr client)
-+{
-+    const char *cmdname = GetClientCmdName(client);
-+
-+    if (!xtransLocalClient(client))
-+        return FALSE;
-+
-+    /* If the executable name is "ssh", assume that this client connection
-+     * is forwarded from another host via SSH
-+     */
-+    if (cmdname) {
-+        char **cmd;
-+        Bool ret;
-+
-+        /* Cut off any colon and whatever comes after it, see
-+         * https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
-+         */
-+        cmd = xstrtokenize(cmdname, ":");
-+
-+#if !defined(WIN32) || defined(__CYGWIN__)
-+        cmd[0] = basename(cmd[0]);
-+#endif
-+
-+        ret = strcmp(cmd[0], "ssh") != 0;
-+        free(cmd);
-+
-+        return ret;
-+    }
-+
-+    return TRUE;
-+}
-+
- /*
-  * Return the uid and all gids of a connected local client
-  * Allocates a LocalClientCredRec - caller must call FreeLocalClientCreds
diff --git a/debian/patches/series b/debian/patches/series
index c204c32..d907d2f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,7 +5,6 @@
 03_static-nettle.diff
 05_Revert-Unload-submodules.diff
 #08_xfree86_fix_ia64_inx_outx.diff
-os-treat-ssh-as-a-non-local-client.diff
 
 
 ## Ubuntu patches, not upstreamable

commit ed8e88627eed6260a3168d42ddeb75b52f26c5e4
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Sep 1 10:04:18 2016 +0300

    randr-adjust-masters-last-set-time.diff, randr-do-not-check-the-screen-size.diff: Fix issues changing display mode on prime setups. (LP: #1586260)

diff --git a/debian/changelog b/debian/changelog
index 3437abc..7053a70 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,9 @@
 xorg-server (2:1.18.4-0ubuntu0.1) UNRELEASED; urgency=medium
 
   * New upstream bugfix release.
+  * randr-adjust-masters-last-set-time.diff,
+    randr-do-not-check-the-screen-size.diff:
+    Fix issues changing display mode on prime setups. (LP: #1586260)
 
  -- Timo Aaltonen <tjaalton@debian.org>  Mon, 01 Aug 2016 14:36:15 +0300
 
diff --git a/debian/patches/randr-adjust-masters-last-set-time.diff b/debian/patches/randr-adjust-masters-last-set-time.diff
new file mode 100644
index 0000000..15f8404
--- /dev/null
+++ b/debian/patches/randr-adjust-masters-last-set-time.diff
@@ -0,0 +1,39 @@
+Subject: [PATCH xserver] randr: Adjust master's last set time with slaves
+From: Nikhil Mahale <nmahale@nvidia.com>
+Date: 20.05.2016 08:01
+To: <xorg-devel@lists.x.org>
+CC: Nikhil Mahale <nmahale@nvidia.com>
+
+In prime configurations master's last set time may not be latest
+and greatest, adjust it with slaves last set time, pick up greatest
+one. Otherwise xserver may end with events which has
+lastSetTime < lastConfigTime even if that's not
+the case and confuse xrandr client.
+
+Signed-off-by: Nikhil Mahale <nmahale@nvidia.com>
+---
+ randr/randr.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/randr/randr.c b/randr/randr.c
+index 3aabb19..c07def1 100644
+--- a/randr/randr.c
++++ b/randr/randr.c
+@@ -584,6 +585,15 @@ RRTellChanged(ScreenPtr pScreen)
+         mastersp = pScrPriv;
+     }
+
++    xorg_list_for_each_entry(iter, &master->output_slave_list, output_head) {
++        pSlaveScrPriv = rrGetScrPriv(iter);
++
++        if (CompareTimeStamps(mastersp->lastSetTime,
++                              pSlaveScrPriv->lastSetTime) == EARLIER) {
++            mastersp->lastSetTime = pSlaveScrPriv->lastSetTime;
++        }
++    }
++
+     if (mastersp->changed) {
+         UpdateCurrentTimeIf();
+         if (mastersp->configChanged) {
+-- 2.8.2 ----------------------------------------------------------------------------------- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. ----------------------------------------------------------------------------------- _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
+
diff --git a/debian/patches/randr-do-not-check-the-screen-size.diff b/debian/patches/randr-do-not-check-the-screen-size.diff
new file mode 100644
index 0000000..ca294b7
--- /dev/null
+++ b/debian/patches/randr-do-not-check-the-screen-size.diff
@@ -0,0 +1,87 @@
+Subject: [PATCH xserver] randr: Do not check the screen size bound for gpu screens
+From: Nikhil Mahale <nmahale@nvidia.com>
+Date: 20.05.2016 08:00
+To: <xorg-devel@lists.x.org>
+CC: Nikhil Mahale <nmahale@nvidia.com>
+
+For gpu screen, CrtcSet set/adjust the master screen size along
+mode in following callstack -
+
+  ProcRRSetCrtcConfig()
+    |
+    -> RRCrtcSet()
+        |
+        -> rrCheckPixmapBounding()
+            |
+            -> pScrPriv->rrScreenSetSize()
+
+Checking screen size bound for gpus screen cause some configurations
+to fails, e.g
+
+  $ xrandr --output eDP --mode 1920x1080 --pos 0x0 --output HDMI \
+  --mode 2560x1440 --pos 0x0
+
+  Here xrandr utility first sets screen size to 2560x1440 which
+  gets resized to 1920x1080 on RRSetCrtcConfig request for eDP,
+  and then RRSetCrtcConfig request for HDMI fails because
+  of failure of screen bound check.
+
+Signed-off-by: Nikhil Mahale <nmahale@nvidia.com>
+---
+ randr/rrcrtc.c | 19 ++++++-------------
+ 1 file changed, 6 insertions(+), 13 deletions(-)
+
+diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
+index 566a3db..82db9a8 100644
+--- a/randr/rrcrtc.c
++++ b/randr/rrcrtc.c
+@@ -1176,27 +1176,20 @@ ProcRRSetCrtcConfig(ClientPtr client)
+ 
+ #ifdef RANDR_12_INTERFACE
+         /*
++         * For gpu screen, CrtcSet set/adjust the master screen size along
++         * with mode.
++         *
+          * Check screen size bounds if the DDX provides a 1.2 interface
+          * for setting screen size. Else, assume the CrtcSet sets
+          * the size along with the mode. If the driver supports transforms,
+          * then it must allow crtcs to display a subset of the screen, so
+          * only do this check for drivers without transform support.
+          */
+-        if (pScrPriv->rrScreenSetSize && !crtc->transforms) {
++        if (!pScreen->isGPU && pScrPriv->rrScreenSetSize && !crtc->transforms) {
+             int source_width;
+             int source_height;
+             PictTransform transform;
+             struct pixman_f_transform f_transform, f_inverse;
+-            int width, height;
+-
+-            if (pScreen->isGPU) {
+-                width = pScreen->current_master->width;
+-                height = pScreen->current_master->height;
+-            }
+-            else {
+-                width = pScreen->width;
+-                height = pScreen->height;
+-            }
+ 
+             RRTransformCompute(stuff->x, stuff->y,
+                                mode->mode.width, mode->mode.height,
+@@ -1206,13 +1199,13 @@ ProcRRSetCrtcConfig(ClientPtr client)
+ 
+             RRModeGetScanoutSize(mode, &transform, &source_width,
+                                  &source_height);
+-            if (stuff->x + source_width > width) {
++            if (stuff->x + source_width > pScreen->width) {
+                 client->errorValue = stuff->x;
+                 free(outputs);
+                 return BadValue;
+             }
+ 
+-            if (stuff->y + source_height > height) {
++            if (stuff->y + source_height > pScreen->height) {
+                 client->errorValue = stuff->y;
+                 free(outputs);
+                 return BadValue;
+-- 2.8.2 ----------------------------------------------------------------------------------- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. ----------------------------------------------------------------------------------- _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
+
diff --git a/debian/patches/series b/debian/patches/series
index 891be0f..c204c32 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -50,3 +50,5 @@ xmir.patch
 xmir-desktop-file-hint-flag.patch
 drm_device_keep_trying.patch
 xi2-resize-touch.patch
+randr-adjust-masters-last-set-time.diff
+randr-do-not-check-the-screen-size.diff

commit 1d6934222e1d25e77cd0afd34428adb3742698ff
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed Aug 17 16:27:02 2016 +0300

    released to trusty

diff --git a/debian/changelog b/debian/changelog
index b58e9ba..e6474e6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server-lts-xenial (2:1.18.3-1ubuntu2.2~trusty2) UNRELEASED; urgency=medium
+xorg-server-lts-xenial (2:1.18.3-1ubuntu2.2~trusty2) trusty; urgency=medium
 
   * Don't revert configurable maxclients, just revert needing the new
     coreproto and use an internal copy of Xpoll.h from x11proto-core-dev
@@ -6,7 +6,7 @@ xorg-server-lts-xenial (2:1.18.3-1ubuntu2.2~trusty2) UNRELEASED; urgency=medium
   * Don't build -legacy-lts-xenial, the wrapper is still in x11-common
     and this is not needed on trusty.
 
- -- Timo Aaltonen <tjaalton@debian.org>  Wed, 03 Aug 2016 11:05:22 +0300
+ -- Timo Aaltonen <tjaalton@debian.org>  Wed, 03 Aug 2016 14:38:42 +0300
 
 xorg-server-lts-xenial (2:1.18.3-1ubuntu2.2~trusty1) trusty; urgency=medium
 

commit cd370cffa036c5d6948e24cf2f9c23195c9323be
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Mon Aug 1 14:40:58 2016 +0300

    New upstream bugfix release.

diff --git a/debian/changelog b/debian/changelog
index 8d51676..3437abc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.18.4-0ubuntu0.1) UNRELEASED; urgency=medium
+
+  * New upstream bugfix release.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Mon, 01 Aug 2016 14:36:15 +0300
+
 xorg-server (2:1.18.3-1ubuntu2.3) xenial; urgency=medium
 
   [ Timo Aaltonen ]

commit 93b5b3bf09b2c82f168b73097bfe2d43ca0572d6
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Jul 21 08:29:03 2016 +0300

    release to xenial

diff --git a/debian/changelog b/debian/changelog
index ed6b1f8..8d51676 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.18.3-1ubuntu2.3) UNRELEASED; urgency=medium
+xorg-server (2:1.18.3-1ubuntu2.3) xenial; urgency=medium
 
   [ Timo Aaltonen ]
   * control: Add Conflicts/Replaces on xserver-xorg-video-glamoregl.
@@ -8,7 +8,7 @@ xorg-server (2:1.18.3-1ubuntu2.3) UNRELEASED; urgency=medium
   * debian/control, debian/rules:
     - Build xmir for arm64 (LP: #1604851).
 
- -- Timo Aaltonen <tjaalton@debian.org>  Tue, 05 Jul 2016 01:53:51 +0300
+ -- Timo Aaltonen <tjaalton@debian.org>  Thu, 21 Jul 2016 08:27:07 +0300
 
 xorg-server (2:1.18.3-1ubuntu2.2) xenial; urgency=medium
 

commit 63aa20ed8198bda44f93ff5f0725a7af0ab5a15b
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Jul 21 06:09:32 2016 +0300

    control, rules: Build xmir for arm64

diff --git a/debian/changelog b/debian/changelog
index 429139c..ed6b1f8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,13 @@
 xorg-server (2:1.18.3-1ubuntu2.3) UNRELEASED; urgency=medium
 
+  [ Timo Aaltonen ]
   * control: Add Conflicts/Replaces on xserver-xorg-video-glamoregl.
     (LP: #1574320)
 
+  [ Łukasz 'sil2100' Zemczak ]
+  * debian/control, debian/rules:
+    - Build xmir for arm64 (LP: #1604851).
+
  -- Timo Aaltonen <tjaalton@debian.org>  Tue, 05 Jul 2016 01:53:51 +0300
 
 xorg-server (2:1.18.3-1ubuntu2.2) xenial; urgency=medium
diff --git a/debian/control b/debian/control
index 9f5e9f0..9843ce2 100644
--- a/debian/control
+++ b/debian/control
@@ -103,7 +103,7 @@ Build-Depends:
 # systemd-daemon
   libsystemd-dev [linux-any],
 # XMir
- libmirclient-dev (>= 0.13.1) [!arm64 !powerpc !ppc64el !s390x],
+ libmirclient-dev (>= 0.13.1) [!powerpc !ppc64el !s390x],
  mir-client-platform-mesa-dev,
 Standards-Version: 3.9.6
 Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/xserver/xorg-server.git
@@ -224,7 +224,7 @@ Depends:
  libxkbfile-dev,
  libpciaccess-dev,
  mesa-common-dev,
- libmirclient-dev [!arm64 !powerpc !ppc64el],
+ libmirclient-dev [!powerpc !ppc64el],
  mir-client-platform-mesa-dev,
  ${misc:Depends},
 Description: Xorg X server - development files
@@ -384,7 +384,7 @@ Description: common files used by various X servers
  This package provides files necessary for all X.Org based X servers.
 
 Package: xmir
-Architecture: amd64 armhf i386
+Architecture: amd64 arm64 armhf i386
 Depends:
  xserver-common (>= ${source:Version}),
  ${shlibs:Depends},
diff --git a/debian/rules b/debian/rules
index 9169ed7..f3ddb43 100755
--- a/debian/rules
+++ b/debian/rules
@@ -58,7 +58,7 @@ else
 endif
 
 # Mir isn't built on PPC
-ifneq (,$(filter $(DEB_HOST_ARCH), arm64 powerpc ppc64el s390x))
+ifneq (,$(filter $(DEB_HOST_ARCH), powerpc ppc64el s390x))
 	build_xmir = --disable-xmir
 endif
 

commit 8b312db7d1d98be67f0283d982428545cf948a66
Author: Adam Jackson <ajax@redhat.com>
Date:   Tue Jul 19 13:27:08 2016 -0400

    xserver 1.18.4
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

diff --git a/configure.ac b/configure.ac
index cfffcd8..868e859 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,9 +26,9 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.60)
-AC_INIT([xorg-server], 1.18.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2016-04-04"
-RELEASE_NAME="Halloumi"
+AC_INIT([xorg-server], 1.18.4, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2016-07-19"
+RELEASE_NAME="Skordalia"
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_MACRO_DIR([m4])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])

commit 42a74080ffe93502904ede7555652f01ab11d12d
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Wed Mar 30 18:23:04 2016 +0900

    os: Use strtok instead of xstrtokenize in ComputeLocalClient
    
    Fixes leaking the memory pointed to by the members of the array returned
    by xstrtokenize.
    
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    (cherry picked from commit e156c0ccb530897d3a428255bd5585f7ea7b9b41)

diff --git a/os/access.c b/os/access.c
index 08c4fd0..dac6f49 100644
--- a/os/access.c
+++ b/os/access.c
@@ -1132,19 +1132,20 @@ ComputeLocalClient(ClientPtr client)
      * is forwarded from another host via SSH
      */
     if (cmdname) {
-        char **cmd;
+        char *cmd = strdup(cmdname);
         Bool ret;
 
         /* Cut off any colon and whatever comes after it, see
          * https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
          */
-        cmd = xstrtokenize(cmdname, ":");
+        cmd = strtok(cmd, ":");
 
 #if !defined(WIN32) || defined(__CYGWIN__)
-        cmd[0] = basename(cmd[0]);
+        ret = strcmp(basename(cmd), "ssh") != 0;
+#else
+        ret = strcmp(cmd, "ssh") != 0;
 #endif
 
-        ret = strcmp(cmd[0], "ssh") != 0;
         free(cmd);
 
         return ret;

commit 3c4cead499f10dabac20ab87728746ec41dae799
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Mar 28 18:11:09 2016 +0900

    os: Treat ssh as a non-local client (v4)
    
    By the time we get to ComputeLocalClient, we've already done
    NextAvailableClient → ReserveClientIds → DetermineClientCmd (assuming
    we're built with #define CLIENTIDS), so we can look up the name of the
    client process and refuse to treat ssh's X forwarding as if it were
    local.
    
    v2: (Michel Dänzer)
        * Only match "ssh" itself, not other executable names starting with
          that prefix.
        * Ignore executable path for the match.
    v3: (Michel Dänzer)
        * Use GetClientCmdName (Mark Kettenis)
        * Perform check on Windows as well, but only ignore path on Cygwin
          (Martin Peres, Emil Velikov, Jon Turney)
    v4: (Michel Dänzer)
        * Cut of any colon and whatever comes after it. (Adam Jackson)
        * Add bugzilla reference.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93261
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
    (cherry picked from commit adefbaee499b9679c6cac21f52ec6545af2b36b5)

diff --git a/os/access.c b/os/access.c
index 2499a9f..08c4fd0 100644
--- a/os/access.c
+++ b/os/access.c
@@ -173,6 +173,10 @@ SOFTWARE.
 
 #endif                          /* WIN32 */
 
+#if !defined(WIN32) || defined(__CYGWIN__)
+#include <libgen.h>
+#endif
+
 #define X_INCLUDE_NETDB_H
 #include <X11/Xos_r.h>
 
@@ -1081,9 +1085,8 @@ ResetHosts(const char *display)
     }
 }
 
-/* Is client on the local host */
-Bool
-ComputeLocalClient(ClientPtr client)
+static Bool
+xtransLocalClient(ClientPtr client)
 {
     int alen, family, notused;
     Xtransaddr *from = NULL;
@@ -1116,6 +1119,40 @@ ComputeLocalClient(ClientPtr client)
     return FALSE;
 }
 
+/* Is client on the local host */
+Bool
+ComputeLocalClient(ClientPtr client)
+{
+    const char *cmdname = GetClientCmdName(client);
+
+    if (!xtransLocalClient(client))
+        return FALSE;
+
+    /* If the executable name is "ssh", assume that this client connection
+     * is forwarded from another host via SSH
+     */
+    if (cmdname) {
+        char **cmd;
+        Bool ret;
+
+        /* Cut off any colon and whatever comes after it, see
+         * https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
+         */
+        cmd = xstrtokenize(cmdname, ":");
+
+#if !defined(WIN32) || defined(__CYGWIN__)
+        cmd[0] = basename(cmd[0]);
+#endif
+
+        ret = strcmp(cmd[0], "ssh") != 0;
+        free(cmd);
+
+        return ret;
+    }
+
+    return TRUE;
+}
+
 /*
  * Return the uid and all gids of a connected local client
  * Allocates a LocalClientCredRec - caller must call FreeLocalClientCreds

commit aebfc6ad9be5bd33b7e0a813d424c81d6214ab07
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Fri Jul 1 12:34:20 2016 +0900

    glamor: Translate solid text background region after clipping
    
    Fixes incorrect clipping for redirected windows which don't happen to be
    located at the top left corner of the screen.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96742
    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    (cherry picked from commit e8e36755abb17872d669b88d33ca9adc511029a0)

diff --git a/glamor/glamor_text.c b/glamor/glamor_text.c
index c305305..cf165ca 100644
--- a/glamor/glamor_text.c
+++ b/glamor/glamor_text.c
@@ -446,16 +446,17 @@ glamor_image_text(DrawablePtr drawable, GCPtr gc,
         glamor_get_drawable_deltas(drawable, pixmap, &off_x, &off_y);
 
         if (width >= 0) {
-            box.x1 = off_x + drawable->x + x;
-            box.x2 = off_x + drawable->x + x + width;
+            box.x1 = drawable->x + x;
+            box.x2 = drawable->x + x + width;
         } else {
-            box.x1 = off_x + drawable->x + x + width;
-            box.x2 = off_x + drawable->x + x;
+            box.x1 = drawable->x + x + width;
+            box.x2 = drawable->x + x;
         }
-        box.y1 = off_y + drawable->y + y - gc->font->info.fontAscent;
-        box.y2 = off_y + drawable->y + y + gc->font->info.fontDescent;
+        box.y1 = drawable->y + y - gc->font->info.fontAscent;
+        box.y2 = drawable->y + y + gc->font->info.fontDescent;
         RegionInit(&region, &box, 1);
         RegionIntersect(&region, &region, gc->pCompositeClip);
+        RegionTranslate(&region, off_x, off_y);
         glamor_solid_boxes(pixmap, RegionRects(&region), RegionNumRects(&region), gc->bgPixel);
         RegionUninit(&region);
     }

commit 7a08d8d82007367a90197f9e9d549dbf0bc9ca2e
Author: Adam Jackson <ajax@redhat.com>
Date:   Tue Jul 12 10:04:18 2016 -0400

    xfree86: Fix fallback driver sort order for Xorg -configure (v2)
    
    The intent here was that fallback drivers would be at the end of the
    list in order, but if a fallback driver happened to be at the end of the
    list already that's not what would happen. Rather than open-code
    something smarter, just use qsort.
    
    Note that qsort puts things in ascending order, so somewhat backwardsly
    fallbacks are greater than native drivers, and vesa is greater than
    modesetting.
    
    v2: Use strcmp to compare non-fallback drivers so we get a predictable
    result if your libc's qsort isn't stable (Keith Packard)
    
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    (cherry picked from commit 32a9504c69183485b0b796fa3966cd1e39992365)

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 07f8fb4..26591c6 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -518,33 +518,54 @@ xf86InputDriverlistFromConfig(void)
     return modulearray;
 }
 
+static int
+is_fallback(const char *s)
+{
+    /* later entries are less preferred */
+    const char *fallback[5] = { "modesetting", "fbdev", "vesa",  "wsfb", NULL };
+    int i;
+
+    for (i = 0; fallback[i]; i++)
+	if (strstr(s, fallback[i]))
+	    return i;
+
+    return -1;
+}
+
+static int
+driver_sort(const void *_l, const void *_r)
+{
+    const char *l = *(const char **)_l;
+    const char *r = *(const char **)_r;
+    int left = is_fallback(l);
+    int right = is_fallback(r);
+
+    /* neither is a fallback, asciibetize */
+    if (left == -1 && right == -1)
+	return strcmp(l, r);
+
+    /* left is a fallback */
+    if (left >= 0)
+	return 1;
+
+    /* right is a fallback */
+    if (right >= 0)
+	return -1;
+
+    /* both are fallbacks, which is worse */
+    return left - right;
+}
+
 static void
 fixup_video_driver_list(const char **drivers)
 {
-    static const char *fallback[5] = { "modesetting", "fbdev", "vesa", "wsfb", NULL };
-    const char **end, **drv;
-    const char *x;
-    int i;
+    const char **end;
 
     /* walk to the end of the list */
     for (end = drivers; *end && **end; end++);
     end--;
 
-    /*
-     * for each of the fallback drivers, if we find it in the list,
-     * swap it with the last available non-fallback driver.
-     */
-    for (i = 0; fallback[i]; i++) {
-        for (drv = drivers; drv != end; drv++) {
-            if (strstr(*drv, fallback[i])) {
-                x = *drv;
-                *drv = *end;
-                *end = x;
-                end--;
-                break;
-            }
-        }
-    }
+    qsort(drivers, end - drivers, sizeof(const char *), driver_sort);
 }
 
 static const char **

commit 8ff830d1ea4c3572b8fb770009c73c40007e132a
Author: Andrew Eikum <aeikum@codeweavers.com>
Date:   Wed Jul 6 14:13:09 2016 -0500

    shm: Also censor images returned by ShmGetImage
    
    We currently censor images from dix's GetImage, but not from
    ShmGetImage. This is a method to bypass XACE, creating a potential
    leak. We should censor in both methods.
    
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
    (cherry picked from commit 4926845a57fa8b53e18ea7d3434bf5539e9b7782)

diff --git a/Xext/shm.c b/Xext/shm.c
index b359a90..2a3448d 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -619,6 +619,7 @@ ProcShmGetImage(ClientPtr client)
     xShmGetImageReply xgi;
     ShmDescPtr shmdesc;
     VisualID visual = None;
+    RegionPtr pVisibleRegion = NULL;
     int rc;
 
     REQUEST(xShmGetImageReq);
@@ -650,6 +651,9 @@ ProcShmGetImage(ClientPtr client)
                wBorderWidth((WindowPtr) pDraw) + (int) pDraw->height)
             return BadMatch;
         visual = wVisual(((WindowPtr) pDraw));
+        pVisibleRegion = NotClippedByChildren((WindowPtr) pDraw);
+        if (pVisibleRegion)
+            RegionTranslate(pVisibleRegion, -pDraw->x, -pDraw->y);
     }
     else {
         if (stuff->x < 0 ||
@@ -686,6 +690,11 @@ ProcShmGetImage(ClientPtr client)
                                      stuff->width, stuff->height,
                                      stuff->format, stuff->planeMask,
                                      shmdesc->addr + stuff->offset);
+        if (pVisibleRegion)
+            XaceCensorImage(client, pVisibleRegion,
+                    PixmapBytePad(stuff->width, pDraw->depth), pDraw,
+                    stuff->x, stuff->y, stuff->width, stuff->height,
+                    stuff->format, shmdesc->addr + stuff->offset);
     }
     else {
 
@@ -697,11 +706,19 @@ ProcShmGetImage(ClientPtr client)
                                              stuff->width, stuff->height,
                                              stuff->format, plane,
                                              shmdesc->addr + length);
+                if (pVisibleRegion)
+                    XaceCensorImage(client, pVisibleRegion,
+                            BitmapBytePad(stuff->width), pDraw,
+                            stuff->x, stuff->y, stuff->width, stuff->height,
+                            stuff->format, shmdesc->addr + length);
                 length += lenPer;
             }
         }
     }
 
+    if (pVisibleRegion)
+        RegionDestroy(pVisibleRegion);
+
     if (client->swapped) {
         swaps(&xgi.sequenceNumber);
         swapl(&xgi.length);

commit d4cbb1155a79a3dc1dc74cc155dbcfc303273856
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Wed Jul 13 19:19:09 2016 +0200

    xwayland: Update RR state on wl_output.done instead of wl_output.mode
    
    Otherwise if the geometry changes but the mode doesn't we end up with
    the previous geometry from RR's point of view.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=768710
    
    Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
    Signed-off-by: Rui Matos <tiagomatos@gmail.com>
    (cherry picked from commit cf6730c503f8090a5d1b80918fe253fc2c5bc090)

diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c
index 4903062..b66da13 100644
--- a/hw/xwayland/xwayland-output.c
+++ b/hw/xwayland/xwayland-output.c
@@ -98,7 +98,6 @@ output_handle_mode(void *data, struct wl_output *wl_output, uint32_t flags,
                    int width, int height, int refresh)
 {
     struct xwl_output *xwl_output = data;
-    RRModePtr randr_mode;
 
     if (!(flags & WL_OUTPUT_MODE_CURRENT))
         return;
@@ -111,13 +110,7 @@ output_handle_mode(void *data, struct wl_output *wl_output, uint32_t flags,
         xwl_output->height = width;
     }
 
-    randr_mode = xwayland_cvt(width, height, refresh / 1000.0, 0, 0);
-
-    RROutputSetModes(xwl_output->randr_output, &randr_mode, 1, 1);
-
-    RRCrtcNotify(xwl_output->randr_crtc, randr_mode,
-                 xwl_output->x, xwl_output->y,
-                 xwl_output->rotation, NULL, 1, &xwl_output->randr_output);
+    xwl_output->refresh = refresh;
 }
 
 static inline void
@@ -198,6 +191,14 @@ output_handle_done(void *data, struct wl_output *wl_output)
     struct xwl_output *it, *xwl_output = data;
     struct xwl_screen *xwl_screen = xwl_output->xwl_screen;
     int width = 0, height = 0, has_this_output = 0;
+    RRModePtr randr_mode;
+
+    randr_mode = xwayland_cvt(xwl_output->width, xwl_output->height,
+                              xwl_output->refresh / 1000.0, 0, 0);
+    RROutputSetModes(xwl_output->randr_output, &randr_mode, 1, 1);
+    RRCrtcNotify(xwl_output->randr_crtc, randr_mode,
+                 xwl_output->x, xwl_output->y,
+                 xwl_output->rotation, NULL, 1, &xwl_output->randr_output);
 
     xorg_list_for_each_entry(it, &xwl_screen->output_list, link) {
         /* output done event is sent even when some property


Reply to: