summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2018-07-25 03:50:17 +0000
committer Eric Hameleers <alien@slackware.com>2018-07-25 13:47:10 +0200
commit7dba81f6b7375d01bcdd27fe402481ef14630001 (patch)
treecac4f32ff2b8ca640527a76405885b00c56d5a3d /source
parent00d6960a08e6f93912de4288aad90310fbf390ee (diff)
downloadcurrent-7dba81f6b7375d01bcdd27fe402481ef14630001.tar.gz
current-7dba81f6b7375d01bcdd27fe402481ef14630001.tar.xz
Wed Jul 25 03:50:17 UTC 201820180725035017
a/kernel-generic-4.14.57-x86_64-1.txz: Upgraded. a/kernel-huge-4.14.57-x86_64-1.txz: Upgraded. a/kernel-modules-4.14.57-x86_64-1.txz: Upgraded. a/shadow-4.2.1-x86_64-5.txz: Rebuilt. adduser: added "input" to additional user groups. Thanks to stormtracknole. a/sysvinit-scripts-2.1-noarch-14.txz: Rebuilt. Handle remote (NFS, etc.) mounts with spaces in the name. Thanks to upnort. d/kernel-headers-4.14.57-x86-1.txz: Upgraded. d/parallel-20180722-noarch-1.txz: Upgraded. d/rust-1.27.2-x86_64-1.txz: Upgraded. d/subversion-1.10.2-x86_64-1.txz: Upgraded. k/kernel-source-4.14.57-noarch-1.txz: Upgraded. l/libgphoto2-2.5.19-x86_64-1.txz: Upgraded. l/libzip-1.5.1-x86_64-4.txz: Rebuilt. Make sure that the API-CHANGES file is included in the package documentation. x/xf86-video-r128-6.11.0-x86_64-1.txz: Upgraded. x/xorg-server-1.20.0-x86_64-3.txz: Rebuilt. Applied some patches that other distributions have been using for a while: Fix glamor so that the return value from glamor_fds_from_pixmap matches what's expected (thanks to Darth Vader for pointing out these patches). Autobind secondary GPUs to the master as output sink / offload source. This seems like a beneficial patch until/unless DEs start to handle this. For nvidia cards, if they are GeForce 8 or newer use the modesetting driver by default. Seems to be recommmended by upstream where they indicate that fixes going into nouveau are primarily to target older cards for legacy support and that the modesetting ddx is preferable for newer ones: https://bugs.freedesktop.org/show_bug.cgi?id=94844 x/xorg-server-xephyr-1.20.0-x86_64-3.txz: Rebuilt. x/xorg-server-xnest-1.20.0-x86_64-3.txz: Rebuilt. x/xorg-server-xvfb-1.20.0-x86_64-3.txz: Rebuilt. isolinux/initrd.img: Rebuilt. Use ter-v14v.psf.gz as the consolefont. It supports more character sets, and the larger font was causing wraparound on UEFI (at least on bare metal here). kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source')
-rw-r--r--source/a/shadow/adduser6
-rwxr-xr-xsource/a/shadow/shadow.SlackBuild2
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.64
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.K4
-rwxr-xr-xsource/a/sysvinit-scripts/sysvinit-scripts.SlackBuild2
-rwxr-xr-xsource/d/rust/rust.SlackBuild2
-rw-r--r--source/d/rust/rust.url2
-rw-r--r--source/d/subversion/slack-desc4
-rw-r--r--source/installer/ChangeLog.txt4
-rwxr-xr-xsource/installer/build_installer.sh3
-rwxr-xr-xsource/installer/sources/initrd/dev/mknodes.sh438
-rwxr-xr-xsource/installer/sources/initrd/etc/rc.d/rc.font25
-rw-r--r--source/k/kernel-configs/config-generic-4.14.57 (renamed from source/k/kernel-configs/config-generic-4.14.56)2
-rw-r--r--source/k/kernel-configs/config-generic-4.14.57.x64 (renamed from source/k/kernel-configs/config-generic-4.14.56.x64)2
-rw-r--r--source/k/kernel-configs/config-generic-smp-4.14.57-smp (renamed from source/k/kernel-configs/config-generic-smp-4.14.56-smp)2
-rw-r--r--source/k/kernel-configs/config-huge-4.14.57 (renamed from source/k/kernel-configs/config-huge-4.14.56)2
-rw-r--r--source/k/kernel-configs/config-huge-4.14.57.x64 (renamed from source/k/kernel-configs/config-huge-4.14.56.x64)2
-rw-r--r--source/k/kernel-configs/config-huge-smp-4.14.57-smp (renamed from source/k/kernel-configs/config-huge-smp-4.14.56-smp)2
-rwxr-xr-xsource/l/libzip/libzip.SlackBuild4
-rw-r--r--source/x/x11/build/xorg-server2
-rw-r--r--source/x/x11/configure/xf86-video-r12813
-rw-r--r--source/x/x11/patch/xorg-server.patch27
-rw-r--r--source/x/x11/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch37
-rw-r--r--source/x/x11/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch293
-rw-r--r--source/x/x11/patch/xorg-server/0001-xfree86-use-modesetting-driver-by-default-on-GeForce.patch52
-rw-r--r--source/x/x11/patch/xorg-server/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch54
-rw-r--r--source/x/x11/patch/xorg-server/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch58
27 files changed, 782 insertions, 266 deletions
diff --git a/source/a/shadow/adduser b/source/a/shadow/adduser
index ce06aac54..482cb7500 100644
--- a/source/a/shadow/adduser
+++ b/source/a/shadow/adduser
@@ -30,12 +30,14 @@
# Author : Stuart Winter <mozes@slackware.com>
# Based on the original Slackware adduser by Hrvoje Dogan
# with modifications by Patrick Volkerding
-# Version: 1.15
+# Version: 1.16
##########################################################################
# Usage..: adduser [<new_user_name>]
##########################################################################
# History #
###########
+# v1.16 - 2018-07-22
+# * Added input group. <pjv>
# v1.15 - 2012-09-13
# * Added scanner group, which may be required by third party drivers.
# v1.14 - 2012-08-24
@@ -112,7 +114,7 @@ defhome=/home
defshell=/bin/bash
defchmod=711 # home dir permissions - may be preferable to use 701, however.
defgroup=users
-AGID="audio cdrom floppy plugdev video power netdev lp scanner" # additional groups for desktop users
+AGID="audio cdrom floppy input lp netdev plugdev power scanner video" # additional groups for desktop users
# Determine what the minimum UID is (for UID recycling)
# (we ignore it if it's not at the beginning of the line (i.e. commented out with #))
diff --git a/source/a/shadow/shadow.SlackBuild b/source/a/shadow/shadow.SlackBuild
index 992944e8f..d088c41d6 100755
--- a/source/a/shadow/shadow.SlackBuild
+++ b/source/a/shadow/shadow.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=shadow
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-5}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/a/sysvinit-scripts/scripts/rc.6 b/source/a/sysvinit-scripts/scripts/rc.6
index 8a993f5e9..d71e35474 100644
--- a/source/a/sysvinit-scripts/scripts/rc.6
+++ b/source/a/sysvinit-scripts/scripts/rc.6
@@ -124,10 +124,10 @@ fi
# Kill any processes (typically gam) that would otherwise prevent
# unmounting NFS volumes:
unset FUSER_DELAY
-for dir in $(/bin/mount | grep 'type nfs ' | cut -d ' ' -f 3 ) ; do
+for dir in $(/bin/mount | grep 'type nfs ' | sed -e 's|.* on ||g' | cut -d ' ' -f 1) ; do
echo "Killing processes holding NFS mount $dir open..."
# Background this to prevent fuser from also blocking shutdown:
- /usr/bin/fuser -k -M -m $dir &
+ /usr/bin/fuser -k -M -m "$dir" &
FUSER_DELAY=5
done
# If fuser was run, let it have some delay:
diff --git a/source/a/sysvinit-scripts/scripts/rc.K b/source/a/sysvinit-scripts/scripts/rc.K
index 50b1702bd..b8ed352da 100644
--- a/source/a/sysvinit-scripts/scripts/rc.K
+++ b/source/a/sysvinit-scripts/scripts/rc.K
@@ -60,10 +60,10 @@ fi
# Kill any processes (typically gam) that would otherwise prevent
# unmounting NFS volumes:
unset FUSER_DELAY
-for dir in $(/bin/mount | grep 'type nfs ' | cut -d ' ' -f 3 ) ; do
+for dir in $(/bin/mount | grep 'type nfs ' | sed -e 's|.* on ||g' | cut -d ' ' -f 1) ; do
echo "Killing processes holding NFS mount $dir open..."
# Background this to prevent fuser from also blocking shutdown:
- /usr/bin/fuser -k -M -m $dir &
+ /usr/bin/fuser -k -M -m "$dir" &
FUSER_DELAY=5
done
# If fuser was run, let it have some delay:
diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
index 607212e46..a810b1507 100755
--- a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
+++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=sysvinit-scripts
VERSION=${VERSION:-2.1}
ARCH=noarch
-BUILD=${BUILD:-13}
+BUILD=${BUILD:-14}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
diff --git a/source/d/rust/rust.SlackBuild b/source/d/rust/rust.SlackBuild
index 0ac1fa862..8cc0ceda0 100755
--- a/source/d/rust/rust.SlackBuild
+++ b/source/d/rust/rust.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=rust
SRCNAM="${PKGNAM}c"
-VERSION=${VERSION:-1.27.1}
+VERSION=${VERSION:-1.27.2}
BUILD=${BUILD:-1}
# Set this to YES to build with the system LLVM, or NO to use the bundled LLVM.
diff --git a/source/d/rust/rust.url b/source/d/rust/rust.url
index 69c529837..0c411bc12 100644
--- a/source/d/rust/rust.url
+++ b/source/d/rust/rust.url
@@ -1,5 +1,5 @@
# Source code (repacked to .tar.xz):
-lftpget https://static.rust-lang.org/dist/rustc-1.27.1-src.tar.gz
+lftpget https://static.rust-lang.org/dist/rustc-1.27.2-src.tar.gz
gzip -d rustc-*tar.gz
plzip -n 6 -9 -v rustc-*tar
diff --git a/source/d/subversion/slack-desc b/source/d/subversion/slack-desc
index 6ffc63e73..de2ef4777 100644
--- a/source/d/subversion/slack-desc
+++ b/source/d/subversion/slack-desc
@@ -14,6 +14,6 @@ subversion: log of who, when, and why changes occurred, similar to other such
subversion: systems like CVS, RCS or SCCS. Subversion keeps all the information
subversion: to permit extracting previous versions of those files at any time.
subversion:
-subversion: For more information about the Subversion project, visit:
-subversion: http://subversion.apache.org
+subversion: Homepage: https://subversion.apache.org
+subversion:
subversion:
diff --git a/source/installer/ChangeLog.txt b/source/installer/ChangeLog.txt
index 360391054..adc0fb7e5 100644
--- a/source/installer/ChangeLog.txt
+++ b/source/installer/ChangeLog.txt
@@ -1,3 +1,7 @@
+Wed Jul 25 03:29:26 UTC 2018
+ Use ter-v14v.psf.gz as the consolefont. It supports more character sets, and
+ the larger font was causing wraparound on UEFI (at least on bare metal here).
++--------------------------+
Fri Jun 22 23:38:50 UTC 2018
Added libaio (needed by lvm).
+--------------------------+
diff --git a/source/installer/build_installer.sh b/source/installer/build_installer.sh
index 6f5502b21..60aeb5b9c 100755
--- a/source/installer/build_installer.sh
+++ b/source/installer/build_installer.sh
@@ -1010,8 +1010,7 @@ cp --remove-destination -fa${VERBOSE1} ${EXTRA_PKGS_USRBIN} \
cd $TMP/extract-packages/usr/share/kbd/consolefonts
mkdir -p $PKG/$ARCH-installer-filesystem/usr/share/kbd/consolefonts
cp --remove-destination -fa${VERBOSE1} \
- ter-c14v.psf.gz \
- ter-120b.psf.gz \
+ ter-v14v.psf.gz \
$PKG/$ARCH-installer-filesystem/usr/share/kbd/consolefonts
# Copy binaries from /usr/sbin into the installer's /usr/sbin/
diff --git a/source/installer/sources/initrd/dev/mknodes.sh b/source/installer/sources/initrd/dev/mknodes.sh
index 005e7bd5f..9293c95e9 100755
--- a/source/installer/sources/initrd/dev/mknodes.sh
+++ b/source/installer/sources/initrd/dev/mknodes.sh
@@ -1,416 +1,416 @@
# Run this script in the root of the skeleton tree
# to re-create the required device nodes
mkdir -p dev
-mknod -m 600 dev/tty3 c 4 3
+mknod -m 600 dev/arp c 16 1
mkdir -p dev
-mknod -m 660 dev/hdj b 56 64
+mknod -m 644 dev/atibm c 10 3
mkdir -p dev
-mknod -m 660 dev/hdt b 91 64
+mknod -m 644 dev/audio c 14 4
mkdir -p dev
-mknod -m 660 dev/md15 b 9 15
+mknod -m 644 dev/audio1 c 14 20
mkdir -p dev
-mknod -m 640 dev/sr4 b 11 4
+mknod -m 640 dev/aztcd b 29 0
mkdir -p dev
-mknod -m 644 dev/ptyp2 c 2 2
+mknod -m 640 dev/bpcd b 41 0
mkdir -p dev
mknod -m 640 dev/cdu535 b 24 0
mkdir -p dev
-mknod -m 600 dev/tcp c 18 3
+mknod -m 640 dev/cm206cd b 32 0
mkdir -p dev
-mknod -m 644 dev/psaux c 10 1
+mknod -m 600 dev/console c 5 1
mkdir -p dev
-mknod -m 640 dev/sjcd b 18 0
+mknod -m 640 dev/cua0 c 5 64
mkdir -p dev
-mknod -m 644 dev/tty9 c 4 9
+mknod -m 640 dev/cua1 c 5 65
mkdir -p dev
-mknod -m 640 dev/fd1h1200 b 2 9
+mknod -m 640 dev/cua2 c 5 66
mkdir -p dev
-mknod -m 600 dev/sgb c 21 1
+mknod -m 640 dev/cua3 c 5 67
mkdir -p dev
-mknod -m 640 dev/rmt16 c 12 8
+mknod -m 640 dev/cua4 c 5 68
mkdir -p dev
-mknod -m 640 dev/ttyS0 c 4 64
+mknod -m 640 dev/eda b 36 0
mkdir -p dev
-mknod -m 660 dev/hdn b 88 64
+mknod -m 640 dev/eda1 b 36 1
mkdir -p dev
-mknod -m 640 dev/fd0h1200 b 2 8
+mknod -m 640 dev/eda2 b 36 2
mkdir -p dev
-mknod -m 600 dev/ip c 18 1
+mknod -m 640 dev/eda3 b 36 3
mkdir -p dev
-mknod -m 640 dev/fd1h1440 b 2 41
+mknod -m 640 dev/eda4 b 36 4
mkdir -p dev
-mknod -m 700 dev/tty1 c 4 1
+mknod -m 640 dev/eda5 b 36 5
mkdir -p dev
-mknod -m 640 dev/tape-reset c 12 255
+mknod -m 640 dev/eda6 b 36 6
mkdir -p dev
-mknod -m 640 dev/eda1 b 36 1
+mknod -m 640 dev/eda7 b 36 7
mkdir -p dev
-mknod -m 640 dev/cm206cd b 32 0
+mknod -m 640 dev/eda8 b 36 8
mkdir -p dev
-mknod -m 660 dev/parport3 c 99 3
+mknod -m 640 dev/eda9 b 36 9
mkdir -p dev
-mknod -m 640 dev/sr1 b 11 1
+mknod -m 640 dev/fd0 b 2 0
mkdir -p dev
-mknod -m 660 dev/hdo b 89 0
+mknod -m 640 dev/fd0h1200 b 2 8
mkdir -p dev
-mknod -m 640 dev/tape-d c 12 136
+mknod -m 640 dev/fd0h1440 b 2 40
mkdir -p dev
-mknod -m 660 dev/hdq b 90 0
+mknod -m 640 dev/fd0u1440 b 2 28
mkdir -p dev
-mknod -m 640 dev/st1 c 9 1
+mknod -m 660 dev/fd0u1680 b 2 44
mkdir -p dev
-mknod -m 640 dev/optcd0 b 17 0
+mknod -m 660 dev/fd0u1722 b 2 60
mkdir -p dev
-mknod -m 640 dev/sr3 b 11 3
+mknod -m 640 dev/fd1 b 2 1
mkdir -p dev
-mknod -m 640 dev/cua0 c 5 64
+mknod -m 640 dev/fd1h1200 b 2 9
mkdir -p dev
-mknod -m 644 dev/urandom c 1 9
+mknod -m 640 dev/fd1h1440 b 2 41
mkdir -p dev
-mknod -m 644 dev/tty c 5 0
+mknod -m 640 dev/fd1u1440 b 2 29
mkdir -p dev
-mknod -m 640 dev/fd0 b 2 0
+mknod -m 644 dev/full c 1 7
mkdir -p dev
-mknod -m 640 dev/eda b 36 0
+mknod -m 640 dev/gscd0 b 16 0
mkdir -p dev
-mknod -m 640 dev/eda5 b 36 5
+mknod -m 660 dev/hda b 3 0
mkdir -p dev
-mknod -m 660 dev/md2 b 9 2
+mknod -m 660 dev/hdb b 3 64
mkdir -p dev
-mknod -m 600 dev/tty2 c 4 2
+mknod -m 660 dev/hdc b 22 0
mkdir -p dev
-mknod -m 644 dev/ptyp4 c 2 4
+mknod -m 660 dev/hdd b 22 64
mkdir -p dev
-mknod -m 600 dev/console c 5 1
+mknod -m 660 dev/hde b 33 0
mkdir -p dev
-mknod -m 660 dev/md1 b 9 1
+mknod -m 660 dev/hdf b 33 64
mkdir -p dev
-mknod -m 640 dev/par0 c 6 0
+mknod -m 660 dev/hdg b 34 0
mkdir -p dev
-mknod -m 644 dev/tty7 c 4 7
+mknod -m 660 dev/hdh b 34 64
mkdir -p dev
-mknod -m 644 dev/random c 1 8
+mknod -m 660 dev/hdi b 56 0
mkdir -p dev
-mknod -m 640 dev/par2 c 6 2
+mknod -m 660 dev/hdj b 56 64
mkdir -p dev
-mknod -m 640 dev/lmscd b 24 0
+mknod -m 660 dev/hdk b 57 0
mkdir -p dev
-mknod -m 640 dev/sr0 b 11 0
+mknod -m 660 dev/hdl b 57 64
mkdir -p dev
-mknod -m 640 dev/eda8 b 36 8
+mknod -m 660 dev/hdm b 88 0
mkdir -p dev
-mknod -m 660 dev/hdh b 34 64
+mknod -m 660 dev/hdn b 88 64
mkdir -p dev
-mknod -m 640 dev/sbpcd0 b 25 0
+mknod -m 660 dev/hdo b 89 0
mkdir -p dev
-mknod -m 660 dev/hdm b 88 0
+mknod -m 660 dev/hdp b 89 64
mkdir -p dev
-mknod -m 640 dev/pf2 b 47 2
+mknod -m 660 dev/hdq b 90 0
mkdir -p dev
-mknod -m 640 dev/cua2 c 5 66
+mknod -m 660 dev/hdr b 90 64
mkdir -p dev
-mknod -m 600 dev/sga c 21 0
+mknod -m 660 dev/hds b 91 0
mkdir -p dev
-mknod -m 640 dev/pda5 b 45 5
+mknod -m 660 dev/hdt b 91 64
mkdir -p dev
-mknod -m 640 dev/ttyS2 c 4 66
+mknod -m 600 dev/icmp c 18 2
+mkdir -p dev/inet
+mknod -m 644 dev/inet/egp c 30 37
+mkdir -p dev/inet
+mknod -m 644 dev/inet/ggp c 30 34
+mkdir -p dev/inet
+mknod -m 644 dev/inet/icmp c 30 33
+mkdir -p dev/inet
+mknod -m 644 dev/inet/idp c 30 40
+mkdir -p dev/inet
+mknod -m 644 dev/inet/ip c 30 32
+mkdir -p dev/inet
+mknod -m 644 dev/inet/ipip c 30 35
+mkdir -p dev/inet
+mknod -m 644 dev/inet/pup c 30 38
+mkdir -p dev/inet
+mknod -m 644 dev/inet/rawip c 30 41
+mkdir -p dev/inet
+mknod -m 644 dev/inet/tcp c 30 36
+mkdir -p dev/inet
+mknod -m 644 dev/inet/udp c 30 39
mkdir -p dev
-mknod -m 640 dev/mcdx1 b 20 1
+mknod -m 644 dev/inportbm c 10 2
+mkdir -p dev/input
+mknod -m 644 dev/input/event0 c 13 64
+mkdir -p dev/input
+mknod -m 644 dev/input/js0 c 13 0
+mkdir -p dev/input
+mknod -m 660 dev/input/keyboard c 10 150
+mkdir -p dev/input
+mknod -m 644 dev/input/mice c 13 63
+mkdir -p dev/input
+mknod -m 660 dev/input/mouse c 10 149
+mkdir -p dev/input
+mknod -m 644 dev/input/mouse0 c 13 32
mkdir -p dev
-mknod -m 644 dev/ttyp4 c 3 4
+mknod -m 600 dev/ip c 18 1
mkdir -p dev
mknod -m 640 dev/kmem c 1 2
mkdir -p dev
-mknod -m 640 dev/eda2 b 36 2
+mknod -m 640 dev/lmscd b 24 0
mkdir -p dev
-mknod -m 644 dev/ttyp8 c 3 8
+mknod -m 644 dev/logibm c 10 0
mkdir -p dev
-mknod -m 600 dev/icmp c 18 2
+mknod -m 660 dev/loop0 b 7 0
mkdir -p dev
-mknod -m 640 dev/scd4 b 11 4
+mknod -m 660 dev/loop1 b 7 1
mkdir -p dev
-mknod -m 660 dev/md13 b 9 13
+mknod -m 660 dev/loop3 b 7 3
mkdir -p dev
-mknod -m 640 dev/sbpcd1 b 25 1
+mknod -m 660 dev/loop4 b 7 4
mkdir -p dev
-mknod -m 640 dev/pcd0 b 46 0
+mknod -m 640 dev/lp0 c 6 0
mkdir -p dev
-mknod -m 640 dev/rmt8 c 12 6
+mknod -m 640 dev/mcd b 23 0
mkdir -p dev
-mknod -m 660 dev/hdc b 22 0
+mknod -m 640 dev/mcdx0 b 20 0
mkdir -p dev
-mknod -m 644 dev/logibm c 10 0
+mknod -m 640 dev/mcdx1 b 20 1
mkdir -p dev
-mknod -m 640 dev/scd1 b 11 1
+mknod -m 660 dev/md0 b 9 0
+mkdir -p dev
+mknod -m 660 dev/md1 b 9 1
mkdir -p dev
mknod -m 660 dev/md10 b 9 10
mkdir -p dev
-mknod -m 660 dev/hds b 91 0
+mknod -m 660 dev/md11 b 9 11
mkdir -p dev
-mknod -m 660 dev/hdl b 57 64
+mknod -m 660 dev/md12 b 9 12
mkdir -p dev
-mknod -m 644 dev/socksys c 30 0
+mknod -m 660 dev/md13 b 9 13
mkdir -p dev
-mknod -m 600 dev/tty6 c 4 6
+mknod -m 660 dev/md14 b 9 14
mkdir -p dev
-mknod -m 660 dev/loop1 b 7 1
+mknod -m 660 dev/md15 b 9 15
mkdir -p dev
-mknod -m 640 dev/bpcd b 41 0
+mknod -m 660 dev/md2 b 9 2
mkdir -p dev
mknod -m 660 dev/md3 b 9 3
mkdir -p dev
-mknod -m 640 dev/scd0 b 11 0
-mkdir -p dev
-mknod -m 644 dev/ptyp3 c 2 3
-mkdir -p dev
-mknod -m 640 dev/pf0 b 47 0
-mkdir -p dev
-mknod -m 640 dev/gscd0 b 16 0
-mkdir -p dev
-mknod -m 640 dev/fd0h1440 b 2 40
+mknod -m 660 dev/md4 b 9 4
mkdir -p dev
-mknod -m 660 dev/hdi b 56 0
+mknod -m 660 dev/md5 b 9 5
mkdir -p dev
-mknod -m 640 dev/cua4 c 5 68
+mknod -m 660 dev/md6 b 9 6
mkdir -p dev
-mknod -m 660 dev/md12 b 9 12
+mknod -m 660 dev/md7 b 9 7
mkdir -p dev
mknod -m 660 dev/md8 b 9 8
mkdir -p dev
-mknod -m 640 dev/scd2 b 11 2
-mkdir -p dev
-mknod -m 640 dev/mcdx0 b 20 0
-mkdir -p dev
-mknod -m 640 dev/sbpcd b 25 0
+mknod -m 660 dev/md9 b 9 9
mkdir -p dev
-mknod -m 660 dev/md5 b 9 5
+mknod -m 640 dev/mem c 1 1
mkdir -p dev
-mknod -m 600 dev/sgd c 21 3
+mknod -m 640 dev/nrft0 c 27 4
mkdir -p dev
-mknod -m 644 dev/atibm c 10 3
+mknod -m 640 dev/nst0 c 9 128
mkdir -p dev
-mknod -m 644 dev/ptyp6 c 2 6
+mknod -m 640 dev/nst1 c 9 129
mkdir -p dev
mknod -m 644 dev/null c 1 3
mkdir -p dev
-mknod -m 600 dev/udp c 18 4
+mknod -m 640 dev/optcd0 b 17 0
mkdir -p dev
-mknod -m 660 dev/md9 b 9 9
+mknod -m 640 dev/par0 c 6 0
mkdir -p dev
-mknod -m 660 dev/fd0u1680 b 2 44
+mknod -m 640 dev/par1 c 6 1
mkdir -p dev
-mknod -m 640 dev/port c 1 4
+mknod -m 640 dev/par2 c 6 2
mkdir -p dev
-mknod -m 640 dev/rft0 c 27 0
+mknod -m 660 dev/parport0 c 99 0
mkdir -p dev
-mknod -m 640 dev/st0 c 9 0
+mknod -m 660 dev/parport1 c 99 1
mkdir -p dev
-mknod -m 640 dev/ram1 b 1 1
-mkdir -p dev/input
-mknod -m 644 dev/input/mice c 13 63
-mkdir -p dev/input
-mknod -m 660 dev/input/keyboard c 10 150
-mkdir -p dev/input
-mknod -m 644 dev/input/event0 c 13 64
-mkdir -p dev/input
-mknod -m 660 dev/input/mouse c 10 149
-mkdir -p dev/input
-mknod -m 644 dev/input/js0 c 13 0
-mkdir -p dev/input
-mknod -m 644 dev/input/mouse0 c 13 32
+mknod -m 660 dev/parport2 c 99 2
mkdir -p dev
-mknod -m 640 dev/eda6 b 36 6
+mknod -m 660 dev/parport3 c 99 3
mkdir -p dev
-mknod -m 640 dev/pcd3 b 46 3
+mknod -m 640 dev/pcd0 b 46 0
mkdir -p dev
-mknod -m 640 dev/pf3 b 47 3
+mknod -m 640 dev/pcd1 b 46 1
mkdir -p dev
mknod -m 640 dev/pcd2 b 46 2
mkdir -p dev
-mknod -m 640 dev/cua1 c 5 65
+mknod -m 640 dev/pcd3 b 46 3
mkdir -p dev
-mknod -m 644 dev/zero c 1 5
+mknod -m 640 dev/pda b 45 0
mkdir -p dev
-mknod -m 660 dev/parport2 c 99 2
+mknod -m 640 dev/pda1 b 45 1
mkdir -p dev
-mknod -m 644 dev/inportbm c 10 2
+mknod -m 640 dev/pda2 b 45 2
mkdir -p dev
-mknod -m 644 dev/tty8 c 4 8
+mknod -m 640 dev/pda3 b 45 3
mkdir -p dev
-mknod -m 640 dev/sonycd b 15 0
+mknod -m 640 dev/pda4 b 45 4
mkdir -p dev
-mknod -m 600 dev/arp c 16 1
+mknod -m 640 dev/pda5 b 45 5
mkdir -p dev
-mknod -m 600 dev/sgf c 21 5
+mknod -m 640 dev/pda6 b 45 6
mkdir -p dev
-mknod -m 644 dev/full c 1 7
+mknod -m 640 dev/pf0 b 47 0
mkdir -p dev
-mknod -m 600 dev/sge c 21 4
+mknod -m 640 dev/pf1 b 47 1
mkdir -p dev
-mknod -m 644 dev/ptyp7 c 2 7
+mknod -m 640 dev/pf2 b 47 2
mkdir -p dev
-mknod -m 660 dev/loop3 b 7 3
+mknod -m 640 dev/pf3 b 47 3
mkdir -p dev
-mknod -m 640 dev/cua3 c 5 67
+mknod -m 640 dev/port c 1 4
+mkdir -p dev
+mknod -m 644 dev/psaux c 10 1
mkdir -p dev
mknod -m 644 dev/ptyp0 c 2 0
mkdir -p dev
-mknod -m 600 dev/socket c 16 0
+mknod -m 644 dev/ptyp1 c 2 1
mkdir -p dev
-mknod -m 640 dev/par1 c 6 1
+mknod -m 644 dev/ptyp2 c 2 2
mkdir -p dev
-mknod -m 640 dev/nst0 c 9 128
+mknod -m 644 dev/ptyp3 c 2 3
mkdir -p dev
-mknod -m 640 dev/pcd1 b 46 1
+mknod -m 644 dev/ptyp4 c 2 4
mkdir -p dev
-mknod -m 700 dev/ttyp1 c 3 1
+mknod -m 644 dev/ptyp5 c 2 5
mkdir -p dev
-mknod -m 600 dev/tty4 c 4 4
+mknod -m 644 dev/ptyp6 c 2 6
mkdir -p dev
-mknod -m 640 dev/eda7 b 36 7
+mknod -m 644 dev/ptyp7 c 2 7
mkdir -p dev
-mknod -m 660 dev/parport1 c 99 1
+mknod -m 644 dev/ptyp8 c 2 8
mkdir -p dev
-mknod -m 600 dev/ttyp3 c 3 3
+mknod -m 640 dev/ram0 b 1 0
mkdir -p dev
-mknod -m 640 dev/nrft0 c 27 4
+mknod -m 640 dev/ram1 b 1 1
mkdir -p dev
-mknod -m 640 dev/ttyS4 c 4 68
+mknod -m 644 dev/random c 1 8
mkdir -p dev
-mknod -m 640 dev/ram0 b 1 0
+mknod -m 640 dev/rft0 c 27 0
mkdir -p dev
-mknod -m 640 dev/nst1 c 9 129
+mknod -m 640 dev/rmt16 c 12 8
mkdir -p dev
-mknod -m 644 dev/audio c 14 4
+mknod -m 640 dev/rmt8 c 12 6
mkdir -p dev
-mknod -m 644 dev/ptyp8 c 2 8
+mknod -m 640 dev/sbpcd b 25 0
mkdir -p dev
-mknod -m 660 dev/loop4 b 7 4
+mknod -m 640 dev/sbpcd0 b 25 0
mkdir -p dev
-mknod -m 600 dev/tty5 c 4 5
+mknod -m 640 dev/sbpcd1 b 25 1
mkdir -p dev
-mknod -m 660 dev/md6 b 9 6
+mknod -m 640 dev/scd0 b 11 0
mkdir -p dev
-mknod -m 640 dev/scd3 b 11 3
+mknod -m 640 dev/scd1 b 11 1
mkdir -p dev
-mknod -m 640 dev/pda b 45 0
+mknod -m 640 dev/scd2 b 11 2
mkdir -p dev
-mknod -m 644 dev/ptyp1 c 2 1
+mknod -m 640 dev/scd3 b 11 3
mkdir -p dev
-mknod -m 640 dev/fd1u1440 b 2 29
+mknod -m 640 dev/scd4 b 11 4
mkdir -p dev
-mknod -m 640 dev/eda4 b 36 4
+mknod -m 600 dev/sga c 21 0
+mkdir -p dev
+mknod -m 600 dev/sgb c 21 1
mkdir -p dev
mknod -m 600 dev/sgc c 21 2
mkdir -p dev
-mknod -m 640 dev/pda3 b 45 3
+mknod -m 600 dev/sgd c 21 3
mkdir -p dev
-mknod -m 660 dev/hdf b 33 64
+mknod -m 600 dev/sge c 21 4
mkdir -p dev
-mknod -m 640 dev/ttyS1 c 4 65
+mknod -m 600 dev/sgf c 21 5
mkdir -p dev
-mknod -m 640 dev/pda6 b 45 6
+mknod -m 600 dev/sgg c 21 6
mkdir -p dev
-mknod -m 660 dev/md7 b 9 7
+mknod -m 600 dev/sgh c 21 7
mkdir -p dev
-mknod -m 640 dev/lp0 c 6 0
+mknod -m 640 dev/sjcd b 18 0
mkdir -p dev
-mknod -m 640 dev/eda9 b 36 9
+mknod -m 600 dev/socket c 16 0
mkdir -p dev
-mknod -m 660 dev/hde b 33 0
+mknod -m 644 dev/socksys c 30 0
mkdir -p dev
-mknod -m 660 dev/md4 b 9 4
+mknod -m 640 dev/sonycd b 15 0
mkdir -p dev
-mknod -m 640 dev/mem c 1 1
+mknod -m 644 dev/spx c 30 1
mkdir -p dev
-mknod -m 640 dev/fd1 b 2 1
+mknod -m 640 dev/sr0 b 11 0
mkdir -p dev
-mknod -m 644 dev/ttyp7 c 3 7
+mknod -m 640 dev/sr1 b 11 1
mkdir -p dev
-mknod -m 700 dev/ttyp2 c 3 2
+mknod -m 640 dev/sr2 b 11 2
mkdir -p dev
-mknod -m 660 dev/hdg b 34 0
+mknod -m 640 dev/sr3 b 11 3
mkdir -p dev
-mknod -m 660 dev/hdk b 57 0
+mknod -m 640 dev/sr4 b 11 4
mkdir -p dev
-mknod -m 644 dev/spx c 30 1
+mknod -m 640 dev/st0 c 9 0
mkdir -p dev
-mknod -m 660 dev/md14 b 9 14
+mknod -m 640 dev/st1 c 9 1
mkdir -p dev
-mknod -m 600 dev/sgg c 21 6
+mknod -m 640 dev/tape-d c 12 136
mkdir -p dev
-mknod -m 660 dev/hda b 3 0
+mknod -m 640 dev/tape-reset c 12 255
mkdir -p dev
-mknod -m 640 dev/mcd b 23 0
+mknod -m 600 dev/tcp c 18 3
mkdir -p dev
-mknod -m 640 dev/pda4 b 45 4
-mkdir -p dev/inet
-mknod -m 644 dev/inet/tcp c 30 36
-mkdir -p dev/inet
-mknod -m 644 dev/inet/ip c 30 32
-mkdir -p dev/inet
-mknod -m 644 dev/inet/icmp c 30 33
-mkdir -p dev/inet
-mknod -m 644 dev/inet/egp c 30 37
-mkdir -p dev/inet
-mknod -m 644 dev/inet/idp c 30 40
-mkdir -p dev/inet
-mknod -m 644 dev/inet/udp c 30 39
-mkdir -p dev/inet
-mknod -m 644 dev/inet/pup c 30 38
-mkdir -p dev/inet
-mknod -m 644 dev/inet/rawip c 30 41
-mkdir -p dev/inet
-mknod -m 644 dev/inet/ggp c 30 34
-mkdir -p dev/inet
-mknod -m 644 dev/inet/ipip c 30 35
+mknod -m 644 dev/tty c 5 0
mkdir -p dev
-mknod -m 644 dev/ptyp5 c 2 5
+mknod -m 600 dev/tty0 c 4 0
mkdir -p dev
-mknod -m 660 dev/hdb b 3 64
+mknod -m 700 dev/tty1 c 4 1
mkdir -p dev
-mknod -m 660 dev/hdr b 90 64
+mknod -m 600 dev/tty2 c 4 2
mkdir -p dev
-mknod -m 660 dev/hdd b 22 64
+mknod -m 600 dev/tty3 c 4 3
mkdir -p dev
-mknod -m 640 dev/pda1 b 45 1
+mknod -m 600 dev/tty4 c 4 4
mkdir -p dev
-mknod -m 640 dev/fd0u1440 b 2 28
+mknod -m 600 dev/tty5 c 4 5
mkdir -p dev
-mknod -m 640 dev/eda3 b 36 3
+mknod -m 600 dev/tty6 c 4 6
mkdir -p dev
-mknod -m 660 dev/fd0u1722 b 2 60
+mknod -m 644 dev/tty7 c 4 7
mkdir -p dev
-mknod -m 600 dev/unix c 17 0
+mknod -m 644 dev/tty8 c 4 8
mkdir -p dev
-mknod -m 640 dev/pf1 b 47 1
+mknod -m 644 dev/tty9 c 4 9
mkdir -p dev
-mknod -m 640 dev/sr2 b 11 2
+mknod -m 640 dev/ttyS0 c 4 64
mkdir -p dev
-mknod -m 660 dev/md0 b 9 0
+mknod -m 640 dev/ttyS1 c 4 65
mkdir -p dev
-mknod -m 640 dev/aztcd b 29 0
+mknod -m 640 dev/ttyS2 c 4 66
mkdir -p dev
-mknod -m 640 dev/pda2 b 45 2
+mknod -m 640 dev/ttyS3 c 4 67
mkdir -p dev
-mknod -m 660 dev/parport0 c 99 0
+mknod -m 640 dev/ttyS4 c 4 68
mkdir -p dev
-mknod -m 660 dev/loop0 b 7 0
+mknod -m 644 dev/ttyp0 c 3 0
mkdir -p dev
-mknod -m 660 dev/md11 b 9 11
+mknod -m 700 dev/ttyp1 c 3 1
mkdir -p dev
-mknod -m 640 dev/ttyS3 c 4 67
+mknod -m 700 dev/ttyp2 c 3 2
+mkdir -p dev
+mknod -m 600 dev/ttyp3 c 3 3
+mkdir -p dev
+mknod -m 644 dev/ttyp4 c 3 4
+mkdir -p dev
+mknod -m 644 dev/ttyp5 c 3 5
mkdir -p dev
mknod -m 644 dev/ttyp6 c 3 6
mkdir -p dev
-mknod -m 600 dev/sgh c 21 7
+mknod -m 644 dev/ttyp7 c 3 7
mkdir -p dev
-mknod -m 644 dev/audio1 c 14 20
+mknod -m 644 dev/ttyp8 c 3 8
mkdir -p dev
-mknod -m 660 dev/hdp b 89 64
+mknod -m 600 dev/udp c 18 4
mkdir -p dev
-mknod -m 644 dev/ttyp0 c 3 0
+mknod -m 600 dev/unix c 17 0
mkdir -p dev
-mknod -m 600 dev/tty0 c 4 0
+mknod -m 644 dev/urandom c 1 9
mkdir -p dev
-mknod -m 644 dev/ttyp5 c 3 5
+mknod -m 644 dev/zero c 1 5
diff --git a/source/installer/sources/initrd/etc/rc.d/rc.font b/source/installer/sources/initrd/etc/rc.d/rc.font
index 69e69baaa..7d4d75ba9 100755
--- a/source/installer/sources/initrd/etc/rc.d/rc.font
+++ b/source/installer/sources/initrd/etc/rc.d/rc.font
@@ -27,19 +27,22 @@ create_tty() {
}
if ! grep -wq nofont /proc/cmdline ; then
- if [ ! "$(cat /proc/fb)" = "" ] ; then
- if [ -r /usr/share/kbd/consolefonts/ter-120b.psf.gz ]; then
+# Commented out this next section because it leads to too big a font on a UEFI
+# framebuffer. It's possible that it would be a correct font for other fb
+# console types, but it's just safer to go with the smaller choice.
+# if [ ! "$(cat /proc/fb)" = "" ] ; then
+# if [ -r /usr/share/kbd/consolefonts/ter-120b.psf.gz ]; then
+# create_tty
+# for tty in /dev/tty{1,2,3,4} ; do
+# setfont -C $tty /usr/share/kbd/consolefonts/ter-120b.psf.gz
+# done
+# fi
+# else
+ if [ -r /usr/share/kbd/consolefonts/ter-v14v.psf.gz ]; then
create_tty
for tty in /dev/tty{1,2,3,4} ; do
- setfont -C $tty /usr/share/kbd/consolefonts/ter-120b.psf.gz
+ setfont -C $tty /usr/share/kbd/consolefonts/ter-v14v.psf.gz
done
fi
- else
- if [ -r /usr/share/kbd/consolefonts/ter-c14v.psf.gz ]; then
- create_tty
- for tty in /dev/tty{1,2,3,4} ; do
- setfont -C $tty /usr/share/kbd/consolefonts/ter-c14v.psf.gz
- done
- fi
- fi
+# fi
fi
diff --git a/source/k/kernel-configs/config-generic-4.14.56 b/source/k/kernel-configs/config-generic-4.14.57
index 0cb7950e4..f12f1a059 100644
--- a/source/k/kernel-configs/config-generic-4.14.56
+++ b/source/k/kernel-configs/config-generic-4.14.57
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.56 Kernel Configuration
+# Linux/x86 4.14.57 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
diff --git a/source/k/kernel-configs/config-generic-4.14.56.x64 b/source/k/kernel-configs/config-generic-4.14.57.x64
index e72cbe10d..9349c56d5 100644
--- a/source/k/kernel-configs/config-generic-4.14.56.x64
+++ b/source/k/kernel-configs/config-generic-4.14.57.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.56 Kernel Configuration
+# Linux/x86 4.14.57 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
diff --git a/source/k/kernel-configs/config-generic-smp-4.14.56-smp b/source/k/kernel-configs/config-generic-smp-4.14.57-smp
index 369e22d35..ce25c0468 100644
--- a/source/k/kernel-configs/config-generic-smp-4.14.56-smp
+++ b/source/k/kernel-configs/config-generic-smp-4.14.57-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.56 Kernel Configuration
+# Linux/x86 4.14.57 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
diff --git a/source/k/kernel-configs/config-huge-4.14.56 b/source/k/kernel-configs/config-huge-4.14.57
index 40ef28fd8..7f9c404e1 100644
--- a/source/k/kernel-configs/config-huge-4.14.56
+++ b/source/k/kernel-configs/config-huge-4.14.57
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.56 Kernel Configuration
+# Linux/x86 4.14.57 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
diff --git a/source/k/kernel-configs/config-huge-4.14.56.x64 b/source/k/kernel-configs/config-huge-4.14.57.x64
index f1cc5c386..76a61560e 100644
--- a/source/k/kernel-configs/config-huge-4.14.56.x64
+++ b/source/k/kernel-configs/config-huge-4.14.57.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.56 Kernel Configuration
+# Linux/x86 4.14.57 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
diff --git a/source/k/kernel-configs/config-huge-smp-4.14.56-smp b/source/k/kernel-configs/config-huge-smp-4.14.57-smp
index 4781b3c6b..0da7f02ca 100644
--- a/source/k/kernel-configs/config-huge-smp-4.14.56-smp
+++ b/source/k/kernel-configs/config-huge-smp-4.14.57-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.56 Kernel Configuration
+# Linux/x86 4.14.57 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
diff --git a/source/l/libzip/libzip.SlackBuild b/source/l/libzip/libzip.SlackBuild
index 034d35ab6..8925a86a4 100755
--- a/source/l/libzip/libzip.SlackBuild
+++ b/source/l/libzip/libzip.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libzip
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -112,7 +112,7 @@ fi
mkdir -p $PKG/usr/doc/libzip-$VERSION
cp -a \
- AUTHORS* COPYING* INSTALL* NEWS* README* THANKS* TODO* \
+ API-CHANGES* AUTHORS* COPYING* INSTALL* NEWS* README* THANKS* TODO* \
$PKG/usr/doc/libzip-$VERSION
mkdir -p $PKG/install
diff --git a/source/x/x11/build/xorg-server b/source/x/x11/build/xorg-server
index 0cfbf0888..00750edc0 100644
--- a/source/x/x11/build/xorg-server
+++ b/source/x/x11/build/xorg-server
@@ -1 +1 @@
-2
+3
diff --git a/source/x/x11/configure/xf86-video-r128 b/source/x/x11/configure/xf86-video-r128
deleted file mode 100644
index 291eb9b94..000000000
--- a/source/x/x11/configure/xf86-video-r128
+++ /dev/null
@@ -1,13 +0,0 @@
-CFLAGS=$SLKCFLAGS \
-CXXFLAGS=$SLKCFLAGS \
-./autogen.sh \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --infodir=/usr/info \
- --mandir=/usr/man \
- --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \
- --with-udev-rules-dir=/lib/udev/rules.d \
- --disable-static \
- --build=$ARCH-slackware-linux
diff --git a/source/x/x11/patch/xorg-server.patch b/source/x/x11/patch/xorg-server.patch
index cdd0ebd87..bd48d5a06 100644
--- a/source/x/x11/patch/xorg-server.patch
+++ b/source/x/x11/patch/xorg-server.patch
@@ -1,3 +1,30 @@
+# We've used this one forever.
zcat $CWD/patch/xorg-server/x11.startwithblackscreen.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Without this patch, combo mouse/keyboard (such as Logitech through unified
+# receiver) may be unable to set the desired keyboard layout.
zcat $CWD/patch/xorg-server/xorg-server.combo.mouse.keyboard.layout.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Fix a segfault in xorg-server-1.20.0. Odds are good this will be fixed in
+# the next xorg-server and will no longer apply then.
zcat $CWD/patch/xorg-server/fix-nouveau-segfault.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# From Fedora Rawhide 2018/7 (possibly useful, doesn't seem like it will hurt anything):
+zcat $CWD/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# From Fedora Rawhide 2018/7, looks like many other distributions have added
+# this patch for a long time. Keep an eye out for newer versions though, and
+# revisit this if any DE begin to manage secondary GPUs (although none do yet):
+zcat $CWD/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# The upstream nouveau developers recommend this. On newer nvidia cards it works
+# better to use the generic modesetting ddx rather than nouveau.
+# Reference: https://bugs.freedesktop.org/show_bug.cgi?id=94844
+# Added here 2018/7.
+zcat $CWD/patch/xorg-server/0001-xfree86-use-modesetting-driver-by-default-on-GeForce.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Glamor patches that synchronize what the drivers and server expect. Written by
+# one of the ATI devs, so might improve things with that driver, but be on the
+# lookout for issues. Added 2018/7.
+zcat $CWD/patch/xorg-server/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch.gz| patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/xorg-server/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/x/x11/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch b/source/x/x11/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch
new file mode 100644
index 000000000..c613eb8f9
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch
@@ -0,0 +1,37 @@
+From e96a83d9b1b5a52a41213c7a4840dc96b4f5b06f Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Wed, 15 Aug 2012 12:35:21 -0400
+Subject: [PATCH] Always install vbe and int10 sdk headers
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+ hw/xfree86/Makefile.am | 12 ++----------
+ 1 file changed, 2 insertions(+), 10 deletions(-)
+
+diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
+index b876b79..a170b58 100644
+--- a/hw/xfree86/Makefile.am
++++ b/hw/xfree86/Makefile.am
+@@ -26,17 +26,9 @@ if VGAHW
+ VGAHW_SUBDIR = vgahw
+ endif
+
+-if VBE
+-VBE_SUBDIR = vbe
+-endif
+-
+-if INT10MODULE
+-INT10_SUBDIR = int10
+-endif
+-
+-SUBDIRS = common ddc x86emu $(INT10_SUBDIR) os-support parser \
++SUBDIRS = common ddc x86emu int10 os-support parser \
+ ramdac $(VGAHW_SUBDIR) loader modes $(DRI_SUBDIR) \
+- $(DRI2_SUBDIR) . $(VBE_SUBDIR) i2c dixmods xkb \
++ $(DRI2_SUBDIR) . vbe i2c dixmods xkb \
+ fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man \
+ $(GLAMOR_EGL_SUBDIR) drivers
+
+--
+2.13.6
+
diff --git a/source/x/x11/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch b/source/x/x11/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch
new file mode 100644
index 000000000..86b96a23e
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch
@@ -0,0 +1,293 @@
+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
+
diff --git a/source/x/x11/patch/xorg-server/0001-xfree86-use-modesetting-driver-by-default-on-GeForce.patch b/source/x/x11/patch/xorg-server/0001-xfree86-use-modesetting-driver-by-default-on-GeForce.patch
new file mode 100644
index 000000000..1b1306e28
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/0001-xfree86-use-modesetting-driver-by-default-on-GeForce.patch
@@ -0,0 +1,52 @@
+From aa2f34d80ef3118eae0cce73b610c36cdcb978fe Mon Sep 17 00:00:00 2001
+From: Ben Skeggs <bskeggs@redhat.com>
+Date: Sat, 22 Apr 2017 02:26:28 +1000
+Subject: [PATCH xserver] xfree86: use modesetting driver by default on GeForce
+ 8 and newer
+
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+---
+ hw/xfree86/common/xf86pciBus.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
+index 8158c2b62..78d1c947d 100644
+--- a/hw/xfree86/common/xf86pciBus.c
++++ b/hw/xfree86/common/xf86pciBus.c
+@@ -37,6 +37,7 @@
+ #include <unistd.h>
+ #include <X11/X.h>
+ #include <pciaccess.h>
++#include <xf86drm.h>
+ #include "os.h"
+ #include "Pci.h"
+ #include "xf86.h"
+@@ -1190,6 +1191,25 @@ xf86VideoPtrToDriverList(struct pci_device *dev,
+ int idx = 0;
+
+ #ifdef __linux__
++ char busid[32];
++ int fd;
++
++ snprintf(busid, sizeof(busid), "pci:%04x:%02x:%02x.%d",
++ dev->domain, dev->bus, dev->dev, dev->func);
++
++ /* 'modesetting' is preferred for GeForce 8 and newer GPUs */
++ fd = drmOpenWithType("nouveau", busid, DRM_NODE_RENDER);
++ if (fd >= 0) {
++ uint64_t args[] = { 11 /* NOUVEAU_GETPARAM_CHIPSET_ID */, 0 };
++ int ret = drmCommandWriteRead(fd, 0 /* DRM_NOUVEAU_GETPARAM */,
++ &args, sizeof(args));
++ drmClose(fd);
++ if (ret == 0) {
++ if (args[1] == 0x050 || args[1] >= 0x80)
++ break;
++ }
++ }
++
+ driverList[idx++] = "nouveau";
+ #endif
+ driverList[idx++] = "nv";
+--
+2.12.2
+
diff --git a/source/x/x11/patch/xorg-server/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch b/source/x/x11/patch/xorg-server/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch
new file mode 100644
index 000000000..32672f2b5
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch
@@ -0,0 +1,54 @@
+From patchwork Wed May 23 09:43:32 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Subject: [xserver,
+ 1/2] glamor: Always return 0 from glamor_fds_from_pixmap on error
+From: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@daenzer.net>
+X-Patchwork-Id: 224909
+Message-Id: <20180523094333.11076-1-michel@daenzer.net>
+To: =?UTF-8?q?Louis-Francis=20Ratt=C3=A9-Boulianne?= <lfrb@collabora.com>,
+ Daniel Stone <daniels@collabora.com>
+Cc: xorg-devel@lists.x.org
+Date: Wed, 23 May 2018 11:43:32 +0200
+
+From: Michel Dänzer <michel.daenzer@amd.com>
+
+This matches what glamor_egl_fds_from_pixmap and dri3_fds_from_pixmap do
+and what proc_dri3_buffers_from_pixmap expects.
+
+Fixes: c8c276c9569b "glamor: Implement PixmapFromBuffers and
+ BuffersFromPixmap"
+Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+---
+ glamor/glamor.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/glamor/glamor.c b/glamor/glamor.c
+index d984d20f3..e2c74d17a 100644
+--- a/glamor/glamor.c
++++ b/glamor/glamor.c
+@@ -836,20 +836,20 @@ glamor_fds_from_pixmap(ScreenPtr screen, PixmapPtr pixmap, int *fds,
+ glamor_get_screen_private(pixmap->drawable.pScreen);
+
+ if (!glamor_priv->dri3_enabled)
+- return -1;
++ return 0;
+ switch (pixmap_priv->type) {
+ case GLAMOR_TEXTURE_DRM:
+ case GLAMOR_TEXTURE_ONLY:
+ if (!glamor_pixmap_ensure_fbo(pixmap, pixmap->drawable.depth == 30 ?
+ GL_RGB10_A2 : GL_RGBA, 0))
+- return -1;
++ return 0;
+ return glamor_egl_fds_from_pixmap(screen, pixmap, fds,
+ strides, offsets,
+ modifier);
+ default:
+ break;
+ }
+- return -1;
++ return 0;
+ }
+
+ _X_EXPORT int
diff --git a/source/x/x11/patch/xorg-server/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch b/source/x/x11/patch/xorg-server/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch
new file mode 100644
index 000000000..ab92d3fca
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch
@@ -0,0 +1,58 @@
+From patchwork Wed May 23 09:43:33 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Subject: [xserver, 2/2] glamor: Propagate glamor_fds_from_pixmap error in
+ glamor_fd_from_pixmap
+From: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@daenzer.net>
+X-Patchwork-Id: 224910
+Message-Id: <20180523094333.11076-2-michel@daenzer.net>
+To: =?UTF-8?q?Louis-Francis=20Ratt=C3=A9-Boulianne?= <lfrb@collabora.com>,
+ Daniel Stone <daniels@collabora.com>
+Cc: xorg-devel@lists.x.org
+Date: Wed, 23 May 2018 11:43:33 +0200
+
+From: Michel Dänzer <michel.daenzer@amd.com>
+
+glamor_fds_from_pixmap returns 0 on error, but we were treating that as
+success, continuing with uninitialized stride and fd values.
+
+Also bail if the offset isn't 0, same as in dri3_fd_from_pixmap.
+
+Fixes: c8c276c9569b "glamor: Implement PixmapFromBuffers and
+ BuffersFromPixmap"
+Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+---
+ glamor/glamor.c | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/glamor/glamor.c b/glamor/glamor.c
+index e2c74d17a..63f0947fa 100644
+--- a/glamor/glamor.c
++++ b/glamor/glamor.c
+@@ -865,17 +865,15 @@ glamor_fd_from_pixmap(ScreenPtr screen,
+ &modifier);
+
+ /* Pixmaps with multi-planes/modifier are not supported in this interface */
+- if (ret > 1) {
+- while (ret > 0)
+- close(fds[--ret]);
+- return -1;
++ if (ret == 1 && offsets[0] == 0) {
++ *stride = strides[0];
++ *size = pixmap->drawable.height * *stride;
++ return fds[0];
+ }
+
+- ret = fds[0];
+- *stride = strides[0];
+- *size = pixmap->drawable.height * *stride;
+-
+- return ret;
++ while (ret > 0)
++ close(fds[--ret]);
++ return -1;
+ }
+
+ _X_EXPORT int