summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO2
-rw-r--r--Fix-XineramaQueryScreens-for-reverse-prime.patch55
-rw-r--r--PKGBUILD12
3 files changed, 63 insertions, 6 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 63df14611787..4b7b61c9df3f 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = xorg-server-dev
pkgver = 1.18.1
- pkgrel = 1
+ pkgrel = 3
url = http://xorg.freedesktop.org
arch = i686
arch = x86_64
diff --git a/Fix-XineramaQueryScreens-for-reverse-prime.patch b/Fix-XineramaQueryScreens-for-reverse-prime.patch
new file mode 100644
index 000000000000..fe2c9479abf8
--- /dev/null
+++ b/Fix-XineramaQueryScreens-for-reverse-prime.patch
@@ -0,0 +1,55 @@
+diff --git a/randr/rrmonitor.c b/randr/rrmonitor.c
+index c37dcf8..58041bb 100644
+--- a/randr/rrmonitor.c
++++ b/randr/rrmonitor.c
+@@ -326,7 +326,7 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret,
+ RRMonitorSetFromClient(pScrPriv->monitors[list.client_primary], mon);
+ mon++;
+ } else if (list.server_primary >= 0) {
+- RRMonitorSetFromServer(pScrPriv->crtcs[list.server_primary], mon);
++ RRMonitorSetFromServer(list.server_crtc[list.server_primary], mon);
+ mon++;
+ }
+
+@@ -354,8 +354,8 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret,
+
+ /* And finish with the list of crtc-inspired monitors
+ */
+- for (c = 0; c < pScrPriv->numCrtcs; c++) {
+- RRCrtcPtr crtc = pScrPriv->crtcs[c];
++ for (c = 0; c < list.num_crtcs; c++) {
++ RRCrtcPtr crtc = list.server_crtc[c];
+ if (c == list.server_primary && list.client_primary < 0)
+ continue;
+
+diff --git a/randr/rroutput.c b/randr/rroutput.c
+index d12b9ba..2ba62fa 100644
+--- a/randr/rroutput.c
++++ b/randr/rroutput.c
+@@ -543,6 +543,7 @@ ProcRRSetOutputPrimary(ClientPtr client)
+ WindowPtr pWin;
+ rrScrPrivPtr pScrPriv;
+ int ret;
++ ScreenPtr slave;
+
+ REQUEST_SIZE_MATCH(xRRSetOutputPrimaryReq);
+
+@@ -565,7 +566,18 @@ ProcRRSetOutputPrimary(ClientPtr client)
+
+ pScrPriv = rrGetScrPriv(pWin->drawable.pScreen);
+ if (pScrPriv)
++ {
+ RRSetPrimaryOutput(pWin->drawable.pScreen, pScrPriv, output);
++
++ xorg_list_for_each_entry(slave,
++ &pWin->drawable.pScreen->output_slave_list,
++ output_head) {
++ rrScrPrivPtr pSlavePriv;
++ pSlavePriv = rrGetScrPriv(slave);
++
++ RRSetPrimaryOutput(slave, pSlavePriv, output);
++ }
++ }
+
+ return Success;
+ }
diff --git a/PKGBUILD b/PKGBUILD
index db6762a48b16..264c32e305a0 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@
_pkgbase=xorg-server
pkgname=('xorg-server-dev' 'xorg-server-xephyr-dev' 'xorg-server-xdmx-dev' 'xorg-server-xvfb-dev' 'xorg-server-xnest-dev' 'xorg-server-xwayland-dev' 'xorg-server-common-dev' 'xorg-server-devel-dev')
pkgver=1.18.1 # https://lists.x.org/archives/xorg-announce/2016-February/002674.html
-pkgrel=1
+pkgrel=3
arch=('i686' 'x86_64')
license=('custom')
groups=('xorg')
@@ -18,20 +18,22 @@ makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtra
'libxshmfence' 'libunwind')
source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig}
xvfb-run
- xvfb-run.1)
+ xvfb-run.1
+ Fix-XineramaQueryScreens-for-reverse-prime.patch)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
sha256sums=('85ec56dbeb89a951295cdf4f39bf38e515f900d35e06d4a8081b114d1520789d'
'SKIP'
'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
- '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776')
+ '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
+ 'afc334dfe1f1eb9e557ae01771b0f774c8fc578115e1698462ab670d1b0a213a')
prepare() {
cd "${_pkgbase}-${pkgver}"
- msg2 "Starting autoreconf..."
- autoreconf -fvi
+ msg2 "FS#47151"
+ patch -Np1 -i ../Fix-XineramaQueryScreens-for-reverse-prime.patch
}
build() {