summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorkyak2021-11-11 19:21:00 +0300
committerkyak2021-11-11 19:21:00 +0300
commit3d591ee1c6b34780b41852c608d7bfda215a3015 (patch)
tree33193cb2271ed8c1082b12e6de225f06fc91bdf9
parent4abe311138707d924fc3a31806b9a1a3395605c0 (diff)
downloadaur-3d591ee1c6b34780b41852c608d7bfda215a3015.tar.gz
updpkg: xorg-server 21.1.1-2
-rw-r--r--.SRCINFO28
-rw-r--r--0001-v2-FS-58644.patch57
-rw-r--r--0002-fix-libshadow-2.patch30
-rw-r--r--PKGBUILD39
-rw-r--r--xserver-autobind-hotplug.patch293
5 files changed, 20 insertions, 427 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f02242f08a54..947ede404774 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = xorg-server-bug865
- pkgver = 1.20.13
- pkgrel = 3
+ pkgver = 21.1.1
+ pkgrel = 2
url = https://xorg.freedesktop.org
arch = x86_64
groups = xorg
@@ -15,6 +15,7 @@ pkgbase = xorg-server-bug865
makedepends = libxfont2
makedepends = libpciaccess
makedepends = libxv
+ makedepends = libxcvt
makedepends = libxmu
makedepends = libxrender
makedepends = libxi
@@ -35,23 +36,14 @@ pkgbase = xorg-server-bug865
makedepends = systemd
makedepends = meson
makedepends = git
- source = https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.20.13.tar.xz
- source = https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.20.13.tar.xz.sig
- source = xserver-autobind-hotplug.patch
- source = 0001-v2-FS-58644.patch
- source = 0002-fix-libshadow-2.patch
+ source = https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-21.1.1.tar.xz
+ source = https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-21.1.1.tar.xz.sig
source = xvfb-run
source = xvfb-run.1
source = freedesktop-bug-865.patch
- validpgpkeys = 7B27A3F1A6E18CD9588B4AE8310180050905E40C
- validpgpkeys = C383B778255613DFDB409D91DB221A6900000011
- validpgpkeys = DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3
- validpgpkeys = 3BB639E56F861FA2E86505690FDD682D974CA72A
- sha512sums = 4e0b7bd4e070dc52cb2c51c2056feb133de2c0487d359392ed63abba9702910cd2e2983e9415973d8d6e9672eac78be6f39202687fc56610877914ce722554b3
+ validpgpkeys = FD0004A26EADFE43A4C3F249C6F7AE200374452D
+ sha512sums = 8608ed9c1537c95e8a3adea5e3e372a3c5eb841f8e27c84283093f22fb1909e16a800006510da684b13f8f237f33b8a4be3e2537f5f9ab9af4c5ad12770eef0d
sha512sums = SKIP
- sha512sums = d84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22
- sha512sums = 74e1aa0c101e42f0f25349d305641873b3a79ab3b9bb2d4ed68ba8e392b4db2701fcbc35826531ee2667d3ee55673e4b4fecc2a9f088141af29ceb400f72f363
- sha512sums = 3d3be34ad9fa976daec53573d3a30a9f1953341ba5ee27099af0141f0ef7994fa5cf84dc08aae848380e6abfc10879f9a67f07601c7a437abf8aef13a3ec9fe1
sha512sums = 4154dd55702b98083b26077bf70c60aa957b4795dbf831bcc4c78b3cb44efe214f0cf8e3c140729c829b5f24e7466a24615ab8dbcce0ac6ebee3229531091514
sha512sums = de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22
sha512sums = 81be7b0ecd9de850f0c740762d37c7489f12b34eb6adb19b3d3077f66d66e48e1206eff4bd29e50f5640509390a08fa138a4664b60d90878d4d17cb1f6919baf
@@ -72,11 +64,11 @@ pkgname = xorg-server-bug865
depends = libdrm
depends = libxshmfence
depends = libxcvt
- provides = X-ABI-VIDEODRV_VERSION=24.0
- provides = X-ABI-XINPUT_VERSION=24.1
+ provides = X-ABI-VIDEODRV_VERSION=25.2
+ provides = X-ABI-XINPUT_VERSION=24.4
provides = X-ABI-EXTENSION_VERSION=10.0
provides = x-server
- provides = xorg-server=1.20.13
+ provides = xorg-server=21.1.1
conflicts = nvidia-utils<=331.20
conflicts = glamor-egl
conflicts = xf86-video-modesetting
diff --git a/0001-v2-FS-58644.patch b/0001-v2-FS-58644.patch
deleted file mode 100644
index bb2e463e9539..000000000000
--- a/0001-v2-FS-58644.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 17584285d296acaa80f131ca0e8b75eff675962b Mon Sep 17 00:00:00 2001
-From: fafryd <dz1125.bug.tracker@gmail.com>
-Date: Sun, 20 May 2018 14:30:43 +0200
-Subject: [PATCH] v2 FS#58644
-
----
- hw/xfree86/common/meson.build | 13 +++++++++++++
- hw/xfree86/meson.build | 12 +++++++-----
- 2 files changed, 20 insertions(+), 5 deletions(-)
-
-diff --git a/hw/xfree86/common/meson.build b/hw/xfree86/common/meson.build
-index 514999ff6..0eff6e488 100644
---- a/hw/xfree86/common/meson.build
-+++ b/hw/xfree86/common/meson.build
-@@ -1,3 +1,16 @@
-+if get_option('suid_wrapper')
-+ x_sh = configure_file(
-+ input: '../Xorg.sh.in',
-+ output: 'Xorg',
-+ configuration: conf_data,
-+ )
-+ install_data(
-+ x_sh,
-+ install_mode: 'rwxr-xr-x',
-+ install_dir: join_paths(get_option('prefix'), get_option('bindir')),
-+ )
-+endif
-+
- srcs_xorg_common = [
- 'xf86fbBus.c',
- 'xf86noBus.c',
-diff --git a/hw/xfree86/meson.build b/hw/xfree86/meson.build
-index cacf56d4c..d1295d404 100644
---- a/hw/xfree86/meson.build
-+++ b/hw/xfree86/meson.build
-@@ -145,11 +145,13 @@ if get_option('suid_wrapper')
- install_dir: get_option('libexecdir'),
- # install_mode: ['r-sr-xr-x', 0, 0],
- )
-- configure_file(
-- input: 'Xorg.sh.in',
-- output: 'Xorg',
-- configuration: conf_data,
-- install_dir: join_paths(get_option('prefix'), get_option('bindir')),
-+ meson.add_install_script(
-+ 'sh', '-c',
-+ 'chmod u+s @0@@1@/@2@'.format(
-+ '${DESTDIR}',
-+ join_paths(get_option('prefix'), get_option('libexecdir')),
-+ 'Xorg.wrap'
-+ )
- )
- endif
-
---
-2.17.0
-
diff --git a/0002-fix-libshadow-2.patch b/0002-fix-libshadow-2.patch
deleted file mode 100644
index d98c6fd4beda..000000000000
--- a/0002-fix-libshadow-2.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a530b6e8923f2b9153a773c8618a1e2f41619288 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 30 Apr 2019 18:01:27 -0400
-Subject: [PATCH] meson: Fix libshadow.so linkage
-
-Don't link against fb, it's the driver's responsibility to load that
-first. Underlinking like this is unpleasant but this matches what
-autotools does.
-
-Fixes: xorg/xserver#540
----
- hw/xfree86/dixmods/meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/xfree86/dixmods/meson.build b/hw/xfree86/dixmods/meson.build
-index 835d23215..0562b630f 100644
---- a/hw/xfree86/dixmods/meson.build
-+++ b/hw/xfree86/dixmods/meson.build
-@@ -34,7 +34,7 @@ shared_module(
- c_args: xorg_c_args,
- dependencies: common_dep,
- link_whole: libxserver_miext_shadow,
-- link_with: [fb, e],
-+ link_with: e,
-
- install: true,
- install_dir: module_dir,
---
-2.22.0
-
diff --git a/PKGBUILD b/PKGBUILD
index 1fb859d6b067..384b2b4bb553 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,34 +4,26 @@
pkgbase=xorg-server-bug865
pkgname=xorg-server-bug865
-pkgver=1.20.13
-pkgrel=3
+pkgver=21.1.1
+pkgrel=2
arch=('x86_64')
license=('custom')
groups=('xorg')
url="https://xorg.freedesktop.org"
makedepends=('xorgproto' 'pixman' 'libx11' 'mesa' 'mesa-libgl' 'xtrans'
- 'libxkbfile' 'libxfont2' 'libpciaccess' 'libxv'
+ 'libxkbfile' 'libxfont2' 'libpciaccess' 'libxv' 'libxcvt'
'libxmu' 'libxrender' 'libxi' 'libxaw' 'libxtst' 'libxres'
'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util' 'libepoxy'
'xcb-util' 'xcb-util-image' 'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms'
'libxshmfence' 'libunwind' 'systemd' 'meson' 'git')
+#source=(${pkgbase}-${pkgver}::git+https://gitlab.freedesktop.org/xorg/xserver.git#commit=27a0ee32ccef8d621aaa758c804fc9a5ceeb5a56
source=(https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-${pkgver}.tar.xz{,.sig}
- xserver-autobind-hotplug.patch
- 0001-v2-FS-58644.patch
- 0002-fix-libshadow-2.patch
xvfb-run # with updates from FC master
xvfb-run.1
freedesktop-bug-865.patch)
-validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
- 'C383B778255613DFDB409D91DB221A6900000011'
- 'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3'
- '3BB639E56F861FA2E86505690FDD682D974CA72A')
-sha512sums=('4e0b7bd4e070dc52cb2c51c2056feb133de2c0487d359392ed63abba9702910cd2e2983e9415973d8d6e9672eac78be6f39202687fc56610877914ce722554b3'
+validpgpkeys=('FD0004A26EADFE43A4C3F249C6F7AE200374452D') # Povilas Kanapickas <povilas@radix.lt>
+sha512sums=('8608ed9c1537c95e8a3adea5e3e372a3c5eb841f8e27c84283093f22fb1909e16a800006510da684b13f8f237f33b8a4be3e2537f5f9ab9af4c5ad12770eef0d'
'SKIP'
- 'd84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22'
- '74e1aa0c101e42f0f25349d305641873b3a79ab3b9bb2d4ed68ba8e392b4db2701fcbc35826531ee2667d3ee55673e4b4fecc2a9f088141af29ceb400f72f363'
- '3d3be34ad9fa976daec53573d3a30a9f1953341ba5ee27099af0141f0ef7994fa5cf84dc08aae848380e6abfc10879f9a67f07601c7a437abf8aef13a3ec9fe1'
'4154dd55702b98083b26077bf70c60aa957b4795dbf831bcc4c78b3cb44efe214f0cf8e3c140729c829b5f24e7466a24615ab8dbcce0ac6ebee3229531091514'
'de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22'
'81be7b0ecd9de850f0c740762d37c7489f12b34eb6adb19b3d3077f66d66e48e1206eff4bd29e50f5640509390a08fa138a4664b60d90878d4d17cb1f6919baf')
@@ -39,16 +31,6 @@ sha512sums=('4e0b7bd4e070dc52cb2c51c2056feb133de2c0487d359392ed63abba9702910cd2e
prepare() {
cd "xorg-server-${pkgver}"
- # patch from Fedora, not yet merged
- patch -Np1 -i ../xserver-autobind-hotplug.patch
-
- # Fix rootless xorg - FS#58644
- # https://bugs.freedesktop.org/show_bug.cgi?id=106588
- patch -Np1 -i ../0001-v2-FS-58644.patch
-
- # Fix libshadow.so: libfb.so => not found - merge in master
- patch -Np1 -i ../0002-fix-libshadow-2.patch
-
# The patch for freedesktop bug 865
patch -Np1 -i "${srcdir}/freedesktop-bug-865.patch"
}
@@ -62,7 +44,6 @@ build() {
export LDFLAGS=${LDFLAGS/,-z,now}
arch-meson xorg-server-$pkgver build \
- -D os_vendor="Archlinux" \
-D ipv6=true \
-D xvfb=true \
-D xnest=true \
@@ -71,6 +52,7 @@ build() {
-D xephyr=true \
-D glamor=true \
-D udev=true \
+ -D dtrace=false \
-D systemd_logind=true \
-D suid_wrapper=true \
-D xkb_dir=/usr/share/X11/xkb \
@@ -102,18 +84,17 @@ package_xorg-server-bug865() {
libpciaccess libdrm libxshmfence libxcvt) # FS#52949
# see xorg-server-*/hw/xfree86/common/xf86Module.h for ABI versions - we provide major numbers that drivers can depend on
# and /usr/lib/pkgconfig/xorg-server.pc in xorg-server-devel pkg
- provides=('X-ABI-VIDEODRV_VERSION=24.0' 'X-ABI-XINPUT_VERSION=24.1' 'X-ABI-EXTENSION_VERSION=10.0' 'x-server' "xorg-server=$pkgver")
+ provides=('X-ABI-VIDEODRV_VERSION=25.2' 'X-ABI-XINPUT_VERSION=24.4' 'X-ABI-EXTENSION_VERSION=10.0' 'x-server' "xorg-server=$pkgver")
conflicts=('nvidia-utils<=331.20' 'glamor-egl' 'xf86-video-modesetting' 'xorg-server')
replaces=('glamor-egl' 'xf86-video-modesetting')
install=xorg-server.install
- _install fakeinstall/usr/bin/{Xorg,gtf}
- ln -s /usr/bin/Xorg "${pkgdir}/usr/bin/X"
+ _install fakeinstall/usr/bin/{X,Xorg,gtf}
_install fakeinstall/usr/lib/Xorg{,.wrap}
_install fakeinstall/usr/lib/xorg/modules/*
_install fakeinstall/usr/share/X11/xorg.conf.d/10-quirks.conf
_install fakeinstall/usr/share/man/man1/{Xorg,Xorg.wrap,gtf}.1
- _install fakeinstall/usr/share/man/man4/{exa,fbdevhw,modesetting}.4
+ _install fakeinstall/usr/share/man/man4/{exa,fbdevhw,inputtestdrv,modesetting}.4
_install fakeinstall/usr/share/man/man5/{Xwrapper.config,xorg.conf,xorg.conf.d}.5
# distro specific files must be installed in /usr/share/X11/xorg.conf.d
diff --git a/xserver-autobind-hotplug.patch b/xserver-autobind-hotplug.patch
deleted file mode 100644
index 86b96a23e4bf..000000000000
--- a/xserver-autobind-hotplug.patch
+++ /dev/null
@@ -1,293 +0,0 @@
-From 471289fa1dc359555ceed6302f7d9605ab6be3ea Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied@redhat.com>
-Date: Mon, 2 Apr 2018 16:49:02 -0400
-Subject: [PATCH] autobind GPUs to the screen
-
-This is a modified version of a patch we've been carry-ing in Fedora and
-RHEL for years now. This patch automatically adds secondary GPUs to the
-master as output sink / offload source making e.g. the use of
-slave-outputs just work, with requiring the user to manually run
-"xrandr --setprovideroutputsource" before he can hookup an external
-monitor to his hybrid graphics laptop.
-
-There is one problem with this patch, which is why it was not upstreamed
-before. What to do when a secondary GPU gets detected really is a policy
-decission (e.g. one may want to autobind PCI GPUs but not USB ones) and
-as such should be under control of the Desktop Environment.
-
-Unconditionally adding autobinding support to the xserver will result
-in races between the DE dealing with the hotplug of a secondary GPU
-and the server itself dealing with it.
-
-However we've waited for years for any Desktop Environments to actually
-start doing some sort of autoconfiguration of secondary GPUs and there
-is still not a single DE dealing with this, so I believe that it is
-time to upstream this now.
-
-To avoid potential future problems if any DEs get support for doing
-secondary GPU configuration themselves, the new autobind functionality
-is made optional. Since no DEs currently support doing this themselves it
-is enabled by default. When DEs grow support for doing this themselves
-they can disable the servers autobinding through the servers cmdline or a
-xorg.conf snippet.
-
-Signed-off-by: Dave Airlie <airlied@gmail.com>
-[hdegoede@redhat.com: Make configurable, fix with nvidia, submit upstream]
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- hw/xfree86/common/xf86Config.c | 19 +++++++++++++++++++
- hw/xfree86/common/xf86Globals.c | 2 ++
- hw/xfree86/common/xf86Init.c | 20 ++++++++++++++++++++
- hw/xfree86/common/xf86Priv.h | 1 +
- hw/xfree86/common/xf86Privstr.h | 1 +
- hw/xfree86/common/xf86platformBus.c | 4 ++++
- hw/xfree86/man/Xorg.man | 7 +++++++
- hw/xfree86/man/xorg.conf.man | 6 ++++++
- randr/randrstr.h | 3 +++
- randr/rrprovider.c | 22 ++++++++++++++++++++++
- 10 files changed, 85 insertions(+)
-
-diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
-index 2c1d335..d7d7c2e 100644
---- a/hw/xfree86/common/xf86Config.c
-+++ b/hw/xfree86/common/xf86Config.c
-@@ -643,6 +643,7 @@ typedef enum {
- FLAG_DRI2,
- FLAG_USE_SIGIO,
- FLAG_AUTO_ADD_GPU,
-+ FLAG_AUTO_BIND_GPU,
- FLAG_MAX_CLIENTS,
- FLAG_IGLX,
- FLAG_DEBUG,
-@@ -699,6 +700,8 @@ static OptionInfoRec FlagOptions[] = {
- {0}, FALSE},
- {FLAG_AUTO_ADD_GPU, "AutoAddGPU", OPTV_BOOLEAN,
- {0}, FALSE},
-+ {FLAG_AUTO_BIND_GPU, "AutoBindGPU", OPTV_BOOLEAN,
-+ {0}, FALSE},
- {FLAG_MAX_CLIENTS, "MaxClients", OPTV_INTEGER,
- {0}, FALSE },
- {FLAG_IGLX, "IndirectGLX", OPTV_BOOLEAN,
-@@ -779,6 +782,22 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
- }
- xf86Msg(from, "%sutomatically adding GPU devices\n",
- xf86Info.autoAddGPU ? "A" : "Not a");
-+
-+ if (xf86AutoBindGPUDisabled) {
-+ xf86Info.autoBindGPU = FALSE;
-+ from = X_CMDLINE;
-+ }
-+ else if (xf86IsOptionSet(FlagOptions, FLAG_AUTO_BIND_GPU)) {
-+ xf86GetOptValBool(FlagOptions, FLAG_AUTO_BIND_GPU,
-+ &xf86Info.autoBindGPU);
-+ from = X_CONFIG;
-+ }
-+ else {
-+ from = X_DEFAULT;
-+ }
-+ xf86Msg(from, "%sutomatically binding GPU devices\n",
-+ xf86Info.autoBindGPU ? "A" : "Not a");
-+
- /*
- * Set things up based on the config file information. Some of these
- * settings may be overridden later when the command line options are
-diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
-index e890f05..7b27b4c 100644
---- a/hw/xfree86/common/xf86Globals.c
-+++ b/hw/xfree86/common/xf86Globals.c
-@@ -131,6 +131,7 @@ xf86InfoRec xf86Info = {
- #else
- .autoAddGPU = FALSE,
- #endif
-+ .autoBindGPU = TRUE,
- };
-
- const char *xf86ConfigFile = NULL;
-@@ -191,6 +192,7 @@ Bool xf86FlipPixels = FALSE;
- Gamma xf86Gamma = { 0.0, 0.0, 0.0 };
-
- Bool xf86AllowMouseOpenFail = FALSE;
-+Bool xf86AutoBindGPUDisabled = FALSE;
-
- #ifdef XF86VIDMODE
- Bool xf86VidModeDisabled = FALSE;
-diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
-index ea42ec9..ec255b6 100644
---- a/hw/xfree86/common/xf86Init.c
-+++ b/hw/xfree86/common/xf86Init.c
-@@ -76,6 +76,7 @@
- #include "xf86DDC.h"
- #include "xf86Xinput.h"
- #include "xf86InPriv.h"
-+#include "xf86Crtc.h"
- #include "picturestr.h"
- #include "randrstr.h"
- #include "glxvndabi.h"
-@@ -237,6 +238,19 @@ xf86PrivsElevated(void)
- return PrivsElevated();
- }
-
-+static void
-+xf86AutoConfigOutputDevices(void)
-+{
-+ int i;
-+
-+ if (!xf86Info.autoBindGPU)
-+ return;
-+
-+ for (i = 0; i < xf86NumGPUScreens; i++)
-+ RRProviderAutoConfigGpuScreen(xf86ScrnToScreen(xf86GPUScreens[i]),
-+ xf86ScrnToScreen(xf86Screens[0]));
-+}
-+
- static void
- TrapSignals(void)
- {
-@@ -770,6 +784,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
- for (i = 0; i < xf86NumGPUScreens; i++)
- AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
-
-+ xf86AutoConfigOutputDevices();
-+
- xf86VGAarbiterWrapFunctions();
- if (sigio_blocked)
- input_unlock();
-@@ -1278,6 +1294,10 @@ ddxProcessArgument(int argc, char **argv, int i)
- xf86Info.iglxFrom = X_CMDLINE;
- return 0;
- }
-+ if (!strcmp(argv[i], "-noautoBindGPU")) {
-+ xf86AutoBindGPUDisabled = TRUE;
-+ return 1;
-+ }
-
- /* OS-specific processing */
- return xf86ProcessArgument(argc, argv, i);
-diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
-index 4fe2b5f..6566622 100644
---- a/hw/xfree86/common/xf86Priv.h
-+++ b/hw/xfree86/common/xf86Priv.h
-@@ -46,6 +46,7 @@
- extern _X_EXPORT const char *xf86ConfigFile;
- extern _X_EXPORT const char *xf86ConfigDir;
- extern _X_EXPORT Bool xf86AllowMouseOpenFail;
-+extern _X_EXPORT Bool xf86AutoBindGPUDisabled;
-
- #ifdef XF86VIDMODE
- extern _X_EXPORT Bool xf86VidModeDisabled;
-diff --git a/hw/xfree86/common/xf86Privstr.h b/hw/xfree86/common/xf86Privstr.h
-index 21c2e1f..6c71863 100644
---- a/hw/xfree86/common/xf86Privstr.h
-+++ b/hw/xfree86/common/xf86Privstr.h
-@@ -98,6 +98,7 @@ typedef struct {
-
- Bool autoAddGPU;
- const char *debug;
-+ Bool autoBindGPU;
- } xf86InfoRec, *xf86InfoPtr;
-
- /* ISC's cc can't handle ~ of UL constants, so explicitly type cast them. */
-diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
-index cef47da..913a324 100644
---- a/hw/xfree86/common/xf86platformBus.c
-+++ b/hw/xfree86/common/xf86platformBus.c
-@@ -49,6 +49,7 @@
- #include "Pci.h"
- #include "xf86platformBus.h"
- #include "xf86Config.h"
-+#include "xf86Crtc.h"
-
- #include "randrstr.h"
- int platformSlotClaimed;
-@@ -665,6 +666,9 @@ xf86platformAddDevice(int index)
- }
- /* attach unbound to 0 protocol screen */
- AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
-+ if (xf86Info.autoBindGPU)
-+ RRProviderAutoConfigGpuScreen(xf86ScrnToScreen(xf86GPUScreens[i]),
-+ xf86ScrnToScreen(xf86Screens[0]));
-
- RRResourcesChanged(xf86Screens[0]->pScreen);
- RRTellChanged(xf86Screens[0]->pScreen);
-diff --git a/hw/xfree86/man/Xorg.man b/hw/xfree86/man/Xorg.man
-index 13a9dc3..745f986 100644
---- a/hw/xfree86/man/Xorg.man
-+++ b/hw/xfree86/man/Xorg.man
-@@ -283,6 +283,13 @@ is a comma separated list of directories to search for
- server modules. This option is only available when the server is run
- as root (i.e, with real-uid 0).
- .TP 8
-+.B \-noautoBindGPU
-+Disable automatically setting secondary GPUs up as output sinks and offload
-+sources. This is equivalent to setting the
-+.B AutoBindGPU
-+xorg.conf(__filemansuffix__) file option. To
-+.B false.
-+.TP 8
- .B \-nosilk
- Disable Silken Mouse support.
- .TP 8
-diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man
-index 9589262..8d51e06 100644
---- a/hw/xfree86/man/xorg.conf.man
-+++ b/hw/xfree86/man/xorg.conf.man
-@@ -672,6 +672,12 @@ Enabled by default.
- If this option is disabled, then no GPU devices will be added from the udev
- backend. Enabled by default. (May need to be disabled to setup Xinerama).
- .TP 7
-+.BI "Option \*qAutoBindGPU\*q \*q" boolean \*q
-+If enabled then secondary GPUs will be automatically set up as output-sinks and
-+offload-sources. Making e.g. laptop outputs connected only to the secondary
-+GPU directly available for use without needing to run
-+"xrandr --setprovideroutputsource". Enabled by default.
-+.TP 7
- .BI "Option \*qLog\*q \*q" string \*q
- This option controls whether the log is flushed and/or synced to disk after
- each message.
-diff --git a/randr/randrstr.h b/randr/randrstr.h
-index f94174b..092d726 100644
---- a/randr/randrstr.h
-+++ b/randr/randrstr.h
-@@ -1039,6 +1039,9 @@ RRProviderLookup(XID id, RRProviderPtr *provider_p);
- extern _X_EXPORT void
- RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider);
-
-+extern _X_EXPORT void
-+RRProviderAutoConfigGpuScreen(ScreenPtr pScreen, ScreenPtr masterScreen);
-+
- /* rrproviderproperty.c */
-
- extern _X_EXPORT void
-diff --git a/randr/rrprovider.c b/randr/rrprovider.c
-index e4bc2bf..e04c18f 100644
---- a/randr/rrprovider.c
-+++ b/randr/rrprovider.c
-@@ -485,3 +485,25 @@ RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider)
-
- WriteEventsToClient(client, 1, (xEvent *) &pe);
- }
-+
-+void
-+RRProviderAutoConfigGpuScreen(ScreenPtr pScreen, ScreenPtr masterScreen)
-+{
-+ rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen);
-+ rrScrPrivPtr masterPriv = rrGetScrPriv(masterScreen);
-+ RRProviderPtr provider = pScrPriv->provider;
-+ RRProviderPtr master_provider = masterPriv->provider;
-+
-+ if (!provider || !master_provider)
-+ return;
-+
-+ if ((provider->capabilities & RR_Capability_SinkOutput) &&
-+ (master_provider->capabilities & RR_Capability_SourceOutput)) {
-+ pScrPriv->rrProviderSetOutputSource(pScreen, provider, master_provider);
-+ RRInitPrimeSyncProps(pScreen);
-+ }
-+
-+ if ((provider->capabilities & RR_Capability_SourceOffload) &&
-+ (master_provider->capabilities & RR_Capability_SinkOffload))
-+ pScrPriv->rrProviderSetOffloadSink(pScreen, provider, master_provider);
-+}
---
-2.16.2
-