Update xorg x11 servers to 1.20.7
Update xorg x11 servers to 1.20.7. This updates x11-servers/xorg-server, xephyr, xorg-dmx, xorg-nestserver, xorg-vbserver and xwayland. Enable the UDEV backend by default, instead of the DEVD backend, for autoconfiguration of input devices on FreeBSD 12 and later. FreeBSD 11 lacks the needed support in base and will keep on using the DEVD backend. Support for the HAL backend is dropped completely, it has been deprecated for a long time. Update and improve the DEVD backend. Add a pkg message about sysctl configuration that might be needed when using UDEV. Use the upstream fix for glamour issues. Use evdev xkb rules by default in xwayland [2] Add x11-drivers/xf86-input-libinput to the list installed by default by x11-drivers/xorg-drivers. Fix net/tigervnc-server and emulators/virtualbox-ose Bump portrevision of all x11 drivers, as well as other ports dependent on xorg-server. This represents work by many people over a long period. These include wulf, ak, dumbbell, hselasky pete AT nomadlogic DOT org, jbeich, manu, myself and possibly others (I tried to look through history, but might have missed people. If so, I am sorry.) PR: 196678 [1], 244129 [2] Submitted by: hselasky, wulf [1], jbeich [2] Obtained from: https://github.com/FreeBSDDesktop/freebsd-ports/tree/feature/xserver-1.20 (in part)
This commit is contained in:
parent
61f7455175
commit
4b9c697c26
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=526589
@ -3,7 +3,7 @@
|
||||
|
||||
PORTNAME= easystroke
|
||||
PORTVERSION= 0.6.0
|
||||
PORTREVISION= 20
|
||||
PORTREVISION= 21
|
||||
CATEGORIES= deskutils
|
||||
MASTER_SITES= SF
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
PORTNAME= virtualbox-ose
|
||||
PORTVERSION= 5.2.34
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= emulators
|
||||
MASTER_SITES= https://download.oracle.com/virtualbox/${PORTVERSION}/
|
||||
PKGNAMESUFFIX?= -additions
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
PORTNAME= virtualbox-ose
|
||||
PORTVERSION= 5.2.34
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= emulators
|
||||
MASTER_SITES= https://download.oracle.com/virtualbox/${PORTVERSION}/
|
||||
DISTFILES= VirtualBox-${PORTVERSION}${EXTRACT_SUFX} ${GUESTADDITIONS}
|
||||
|
@ -13,7 +13,7 @@
|
||||
+ vboxmouse_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD
|
||||
+ vboxmouse_drv_system_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
|
||||
+ vboxmouse_drv_system_INCS := \
|
||||
+ $(vboxmouse_xorg_INCS) \
|
||||
+ /usr/local/include/pixman-1 \
|
||||
+ /usr/local/include/xorg \
|
||||
+ $(PATH_SUB_CURRENT)
|
||||
+ vboxmouse_drv_system_SOURCES = \
|
||||
|
@ -17,8 +17,8 @@ RUN_DEPENDS+= ${LOCALBASE}/share/X11/xkb/rules/base:x11/xkeyboard-config \
|
||||
USES+= autoreconf:build gl jpeg libtool pkgconfig ssl xorg
|
||||
USE_LDCONFIG= yes
|
||||
USE_GL+= gl
|
||||
USE_XORG+= ice pixman sm x11 xau xdamage xdmcp xext xfixes xfont xkbfile \
|
||||
xorg-macros xorgproto xrandr xrender xtrans xtst
|
||||
USE_XORG+= ice pixman sm x11 xau xdamage xdmcp xext xfixes xfont2 \
|
||||
xkbfile xorg-macros xorgproto xrandr xrender xtrans xtst
|
||||
|
||||
BINARY_WRAPPERS= gm4
|
||||
|
||||
@ -49,6 +49,8 @@ CONFIGURE_ARGS+= \
|
||||
--disable-xwayland \
|
||||
--with-fontrootdir=${LOCALBASE}/share/fonts
|
||||
|
||||
CFLAGS+= -I${LOCALBASE}/include/libdrm
|
||||
|
||||
# This is server port, disabling some features
|
||||
# - disable vncviewer
|
||||
# - server is not internationalized
|
||||
|
@ -3,6 +3,7 @@
|
||||
PORTNAME= tigervnc
|
||||
DISTVERSIONPREFIX= v
|
||||
DISTVERSION= 1.10.1
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= net x11-servers
|
||||
|
||||
MAINTAINER?= meta@FreeBSD.org
|
||||
|
18
net/tigervnc-server/files/patch-unix_xserver_hw_vnc_xvnc.c
Normal file
18
net/tigervnc-server/files/patch-unix_xserver_hw_vnc_xvnc.c
Normal file
@ -0,0 +1,18 @@
|
||||
--- unix/xserver/hw/vnc/xvnc.c.orig 2019-12-20 07:02:02 UTC
|
||||
+++ unix/xserver/hw/vnc/xvnc.c
|
||||
@@ -295,6 +295,15 @@ void ddxBeforeReset(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if INPUTTHREAD
|
||||
+/** This function is called in Xserver/os/inputthread.c when starting
|
||||
+ the input thread. */
|
||||
+void
|
||||
+ddxInputThreadInit(void)
|
||||
+{
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
void ddxUseMsg(void)
|
||||
{
|
||||
vncPrintBanner();
|
@ -3,7 +3,7 @@
|
||||
|
||||
PORTNAME= xf86-input-egalax
|
||||
PORTVERSION= 0.3
|
||||
PORTREVISION= 4
|
||||
PORTREVISION= 5
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= glebius@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-elographics
|
||||
PORTVERSION= 1.4.2
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-evdev
|
||||
PORTVERSION= 2.10.6
|
||||
PORTREVISION= 4
|
||||
PORTREVISION= 5
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-joystick
|
||||
PORTVERSION= 1.6.3
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-keyboard
|
||||
PORTVERSION= 1.9.0
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-libinput
|
||||
PORTVERSION= 0.28.2
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-mouse
|
||||
PORTVERSION= 1.9.3
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-synaptics
|
||||
PORTVERSION= 1.9.1
|
||||
PORTREVISION= 4
|
||||
PORTREVISION= 5
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
PORTNAME= xf86-input-vmmouse
|
||||
PORTVERSION= 13.1.0
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-void
|
||||
PORTVERSION= 1.4.1
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-input-wacom
|
||||
PORTVERSION= 0.39.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
MASTER_SITES= https://github.com/linuxwacom/${PORTNAME}/releases/download/${DISTNAME}/
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
PORTNAME= xf86-video-amdgpu
|
||||
PORTVERSION= 19.1.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-apm
|
||||
PORTVERSION= 1.3.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-ark
|
||||
PORTVERSION= 0.7.5
|
||||
PORTREVISION= 9
|
||||
PORTREVISION= 10
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-ast
|
||||
PORTVERSION= 1.1.5
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-ati-legacy
|
||||
PORTVERSION= 7.9.0
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= x11-drivers
|
||||
DISTNAME= xf86-video-ati-${DISTVERSION}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-ati
|
||||
PORTVERSION= 19.1.0
|
||||
PORTREVISION= 1
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-chips
|
||||
PORTVERSION= 1.4.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-cirrus
|
||||
PORTVERSION= 1.5.3
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-dummy
|
||||
PORTVERSION= 0.3.8
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-geode
|
||||
PORTVERSION= 2.11.20
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-glint
|
||||
PORTVERSION= 1.2.9
|
||||
PORTREVISION= 4
|
||||
PORTREVISION= 5
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-i128
|
||||
PORTVERSION= 1.4.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,8 @@
|
||||
|
||||
PORTNAME= xf86-video-i740
|
||||
PORTVERSION= 1.4.0
|
||||
CATEGORIES= x11-drivers
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
COMMENT= X.Org i740 display driver
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
PORTNAME= xf86-video-intel
|
||||
PORTVERSION= 2.99.917.20181203
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-mach64
|
||||
PORTVERSION= 6.9.6
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-mga
|
||||
PORTVERSION= 2.0.0
|
||||
PORTREVISION= 1
|
||||
PORTEPOCH= 3
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-neomagic
|
||||
PORTVERSION= 1.3.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-nv
|
||||
PORTVERSION= 2.1.21
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-openchrome
|
||||
PORTVERSION= 0.6.0
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-qxl
|
||||
DISTVERSION= 0.1.5
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-r128
|
||||
PORTVERSION= 6.12.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-rendition
|
||||
PORTVERSION= 4.2.7
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-s3
|
||||
PORTVERSION= 0.7.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-s3virge
|
||||
PORTVERSION= 1.11.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-savage
|
||||
PORTVERSION= 2.3.9
|
||||
PORTREVISION= 4
|
||||
PORTREVISION= 5
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
PORTNAME= xf86-video-scfb
|
||||
PORTVERSION= 0.0.5
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-siliconmotion
|
||||
PORTVERSION= 1.7.9
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-sis
|
||||
PORTVERSION= 0.12.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-sunffb
|
||||
PORTVERSION= 1.2.2
|
||||
PORTREVISION= 10
|
||||
PORTREVISION= 11
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-tdfx
|
||||
PORTVERSION= 1.5.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-trident
|
||||
PORTVERSION= 1.3.8
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-tseng
|
||||
PORTVERSION= 1.2.5
|
||||
PORTREVISION= 10
|
||||
PORTREVISION= 11
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-vesa
|
||||
PORTVERSION= 2.4.0
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-vmware
|
||||
PORTVERSION= 13.3.0
|
||||
PORTREVISION= 5
|
||||
PORTREVISION= 6
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xf86-video-voodoo
|
||||
PORTVERSION= 1.2.5
|
||||
PORTREVISION= 10
|
||||
PORTREVISION= 11
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= xorg-drivers
|
||||
PORTVERSION= 7.7
|
||||
PORTREVISION= 5
|
||||
PORTREVISION= 6
|
||||
CATEGORIES= x11-drivers
|
||||
|
||||
MAINTAINER= x11@FreeBSD.org
|
||||
@ -53,6 +53,7 @@ VIDEO_DRIVERS= apm \
|
||||
voodoo
|
||||
|
||||
OPTIONS_DEFAULT= KEYBOARD \
|
||||
LIBINPUT \
|
||||
MOUSE \
|
||||
SCFB
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
PORTNAME= xorgxrdp
|
||||
DISTVERSIONPREFIX= v
|
||||
DISTVERSION= 0.2.12
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11-drivers
|
||||
DIST_SUBDIR= xrdp
|
||||
|
||||
|
@ -16,8 +16,6 @@ MASTERDIR= ${.CURDIR}/../xorg-server
|
||||
DESCR= ${.CURDIR}/pkg-descr
|
||||
|
||||
SLAVE_PORT= yes
|
||||
OPTIONS_EXCLUDE=DEVD HAL SUID UDEV
|
||||
|
||||
USE_XORG= x11 xcb
|
||||
|
||||
CONFIGURE_ARGS+=--enable-xephyr --disable-dmx --disable-xnest --disable-xvfb \
|
||||
|
@ -11,8 +11,6 @@ MASTERDIR= ${.CURDIR}/../xorg-server
|
||||
DESCR= ${.CURDIR}/pkg-descr
|
||||
|
||||
SLAVE_PORT= yes
|
||||
OPTIONS_EXCLUDE=DEVD HAL SUID UDEV
|
||||
|
||||
USE_XORG= dmx xorgproto x11 xaw7 xext xfixes xi xmu xpm xrender xres xt xtst
|
||||
|
||||
CONFIGURE_ARGS+=--enable-dmx --disable-xephyr --disable-xnest --disable-xvfb \
|
||||
|
@ -2,7 +2,6 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= xorg-nestserver
|
||||
PORTVERSION= 1.19.1
|
||||
PORTEPOCH= 2
|
||||
|
||||
COMMENT= Nesting X server from X.Org
|
||||
@ -11,32 +10,17 @@ LICENSE= MIT
|
||||
|
||||
MASTERDIR= ${.CURDIR}/../xorg-server
|
||||
DESCR= ${.CURDIR}/pkg-descr
|
||||
DISTINFO_FILE= ${.CURDIR}/distinfo
|
||||
PATCHDIR= ${.CURDIR}/files
|
||||
|
||||
RUN_DEPENDS= xkeyboard-config>=2.5:x11/xkeyboard-config
|
||||
|
||||
SLAVE_PORT= yes
|
||||
OPTIONS_EXCLUDE=DEVD HAL SUID UDEV
|
||||
|
||||
USE_XORG= x11 xext xfont2
|
||||
USE_XORG= x11 xext
|
||||
|
||||
CONFIGURE_ARGS+=--enable-xnest --disable-dmx --disable-xephyr --disable-xvfb \
|
||||
--disable-xwayland
|
||||
|
||||
PLIST_FILES= bin/Xnest man/man1/Xnest.1.gz
|
||||
|
||||
EXTRA_PATCHES= ${MASTERDIR}/files/patch-CVE-2017-12176 \
|
||||
${MASTERDIR}/files/patch-CVE-2017-12177 \
|
||||
${MASTERDIR}/files/patch-CVE-2017-12178 \
|
||||
${MASTERDIR}/files/patch-CVE-2017-12179 \
|
||||
${MASTERDIR}/files/patch-CVE-2017-12183 \
|
||||
${MASTERDIR}/files/patch-CVE-2017-1218x \
|
||||
${MASTERDIR}/files/patch-CVE-2017-1218y \
|
||||
${MASTERDIR}/files/patch-CVE-2017-13721 \
|
||||
${MASTERDIR}/files/patch-CVE-2017-13723 \
|
||||
${MASTERDIR}/files/patch-os_io.c
|
||||
|
||||
do-install:
|
||||
cd ${WRKSRC}/hw/xnest; DESTDIR=${STAGEDIR} ${MAKE} install
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
TIMESTAMP = 1484388904
|
||||
SHA256 (xorg/xserver/xorg-server-1.19.1.tar.bz2) = 79ae2cf39d3f6c4a91201d8dad549d1d774b3420073c5a70d390040aa965a7fb
|
||||
SIZE (xorg/xserver/xorg-server-1.19.1.tar.bz2) = 6041792
|
@ -2,8 +2,8 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME?= xorg-server
|
||||
PORTVERSION?= 1.18.4
|
||||
PORTREVISION?= 13
|
||||
PORTVERSION?= 1.20.7
|
||||
PORTREVISION?= 0
|
||||
PORTEPOCH?= 1
|
||||
CATEGORIES= x11-servers
|
||||
MASTER_SITES= XORG/individual/xserver
|
||||
@ -22,14 +22,24 @@ SLAVE_PORT?= no
|
||||
OPTIONS_SUB= yes
|
||||
OPTIONS_DEFINE= SUID
|
||||
OPTIONS_RADIO= CONF
|
||||
OPTIONS_RADIO_CONF= DEVD HAL UDEV
|
||||
DEVD_DESC= Use devd for autoconfiguration of input devices
|
||||
HAL_DESC= Use hald for autoconfiguration of input devices
|
||||
UDEV_DESC= Use udev via libudev-devd for autoconfiguration of input devices
|
||||
SUID_DESC= Install the Xorg server with setuid bit set
|
||||
OPTIONS_DEFAULT=DEVD SUID
|
||||
OPTIONS_RADIO_CONF= DEVD UDEV
|
||||
OPTIONS_DEFAULT= SUID
|
||||
OPTIONS_DEFAULT_FreeBSD_11= DEVD
|
||||
OPTIONS_DEFAULT_FreeBSD_12= UDEV
|
||||
OPTIONS_DEFAULT_FreeBSD_13= UDEV
|
||||
OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}}
|
||||
|
||||
OPTIONS_EXCLUDE_sparc64= HAL
|
||||
SUID_DESC= Install setuid wrapper to allow startx as non-root
|
||||
CONF_DESC= Backend to use for input device configuration
|
||||
DEVD_DESC= Use devd for autoconfiguration of input devices
|
||||
UDEV_DESC= Use udev via libudev-devd for autoconfiguration of input devices
|
||||
|
||||
DEVD_CONFIGURE_ENABLE= config-devd
|
||||
SUID_CONFIGURE_ENABLE= suid-wrapper
|
||||
SUID_CONFIGURE_ON= --libexecdir=${PREFIX}/bin # set SUID_WRAPPER_DIR
|
||||
UDEV_CONFIGURE_ENABLE= config-udev
|
||||
UDEV_CONFIGURE_ON= --disable-config-udev-kms
|
||||
UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
@ -46,15 +56,14 @@ DEFAULT_FONTPATH_LIST= \
|
||||
DEFAULT_FONTPATH_CMD=${ECHO_CMD} ${DEFAULT_FONTPATH_LIST} | ${TR} ' ' ,
|
||||
PLIST_SUB+= FONTPATHD="${FONTPATHD:S,^${PREFIX}/,,}"
|
||||
|
||||
USES= gmake gl libtool perl5 ssl tar:bzip2 xorg xorg-cat:xserver
|
||||
USES= gl gmake perl5 ssl xorg xorg-cat:xserver
|
||||
USE_PERL5= build
|
||||
USE_GL+= gl
|
||||
USE_XORG+= pixman xau xdmcp xfont xkbfile xorgproto xshmfence xtrans
|
||||
USE_XORG+= pixman xau xdmcp xfont2 xkbfile xorgproto xshmfence xtrans
|
||||
CONFIGURE_ARGS+=--without-doxygen --without-xmlto --without-fop \
|
||||
--with-default-font-path="$$(${DEFAULT_FONTPATH_CMD})" \
|
||||
--localstatedir=/var --with-shared-memory-dir=/tmp \
|
||||
--disable-config-udev-kms --disable-systemd-logind \
|
||||
--without-dtrace --enable-glamor
|
||||
--without-dtrace --with-shared-memory-dir=/tmp \
|
||||
--disable-install-setuid --disable-unit-tests
|
||||
INSTALL_TARGET= install-strip
|
||||
|
||||
.if ${SLAVE_PORT} == "no" || ${PORTNAME} == "xephyr" || ${PORTNAME} == "xwayland"
|
||||
@ -71,9 +80,9 @@ CONFIGURE_ARGS+=--disable-dmx --disable-xephyr --disable-xnest --disable-xvfb \
|
||||
--disable-xwayland --enable-xcsecurity
|
||||
SUB_FILES= pkg-install pkg-deinstall
|
||||
.else
|
||||
CONFIGURE_ARGS+=--disable-xorg
|
||||
# for slave ports we need to overwrite PLIST, so it doesn't overwrite
|
||||
# PLIST_FILES, with the masterport plist.
|
||||
CONFIGURE_ARGS+= --disable-xorg
|
||||
OPTIONS_EXCLUDE= DEVD UDEV SUID
|
||||
# Set PLIST for slave ports so they only need to set PLIST_FILES
|
||||
PLIST= ${.CURDIR}/pkg-plist
|
||||
.endif
|
||||
|
||||
@ -86,23 +95,6 @@ PLIST= ${.CURDIR}/pkg-plist
|
||||
CONFIGURE_ENV= SHA1_LIB="-L/usr/lib -lcrypto" SHA1_CFLAGS="-I/usr/include"
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MHAL}
|
||||
LIB_DEPENDS+= libhal.so:sysutils/hal
|
||||
CONFIGURE_ARGS+= --enable-config-hal
|
||||
.else
|
||||
CONFIGURE_ARGS+= --disable-config-hal
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MUDEV}
|
||||
LIB_DEPENDS+= libudev.so:devel/libudev-devd
|
||||
CONFIGURE_ARGS+= --enable-config-udev
|
||||
.else
|
||||
CONFIGURE_ARGS+= --disable-config-udev
|
||||
.endif
|
||||
|
||||
# We handle Xorg setuid in the plist. This allows to build xorg-server as a user.
|
||||
CONFIGURE_ARGS+=--disable-install-setuid
|
||||
|
||||
.if ${ARCH} == "i386" || ${ARCH} == "amd64"
|
||||
LIB_DEPENDS+= libunwind.so:devel/libunwind
|
||||
.endif
|
||||
@ -113,42 +105,21 @@ PLIST_SUB+= SPARC64=""
|
||||
PLIST_SUB+= SPARC64="@comment "
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MSUID}
|
||||
pre-everything::
|
||||
@${ECHO_MSG} "By default, the X Server installs as a set-user-id root binary. When run by"
|
||||
@${ECHO_MSG} "a normal user, it checks arguments and environment as done in the x11/wrapper"
|
||||
@${ECHO_MSG} "port before handling them normally. If you are concerned about the security"
|
||||
@${ECHO_MSG} "of this, but still want to run an X Server (for example using xdm/kdm/gdm,"
|
||||
@${ECHO_MSG} "which will still run the server as root), you can cancel the build and set"
|
||||
@${ECHO_MSG} "xorg-server_UNSET=SUID in /etc/make.conf."
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} 's/test.*-traditional.*;/true;/' \
|
||||
${WRKSRC}/configure
|
||||
# build libglx.so but don't install it yet. which is done in pre-install.
|
||||
@${REINPLACE_CMD} -e 's|@GLX_TRUE@GLXMODS =|@GLX_BOGUS@GLXMODS =|g' \
|
||||
-e 's|^LTLIBRARIES = |LTLIBRARIES = libglx.la |g' \
|
||||
${WRKSRC}/hw/xfree86/dixmods/Makefile.in
|
||||
|
||||
post-configure:
|
||||
.if ${PORT_OPTIONS:MDEVD}
|
||||
@${REINPLACE_CMD} -e 's|config\.c|config.c devd.c|g' \
|
||||
-e 's|config\.lo|config.lo devd.lo|g' \
|
||||
${WRKSRC}/config/Makefile
|
||||
@${REINPLACE_CMD} -e 's|^/\* #undef CONFIG_UDEV \*/|#define CONFIG_DEVD 1|' \
|
||||
${WRKSRC}/include/dix-config.h
|
||||
.endif
|
||||
|
||||
.if ${SLAVE_PORT} == "no"
|
||||
post-install:
|
||||
# The .xorg dir because else the xorg-server might not load the correct
|
||||
# libglx module.
|
||||
# Avoid conflict with nvidia-driver, move libglx.so into .xorg directory
|
||||
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/.xorg
|
||||
${INSTALL_LIB} ${WRKSRC}/hw/xfree86/dixmods/.libs/libglx.so \
|
||||
${MV} ${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/libglx.so \
|
||||
${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/.xorg/
|
||||
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/X11/xorg.conf.d
|
||||
@${MKDIR} ${STAGEDIR}${FONTPATHD}
|
||||
@${MKDIR} ${STAGEDIR}${PREFIX}/share/X11/xorg.conf.d
|
||||
@${INSTALL_DATA} ${FILESDIR}/20-evdev-kbd.conf \
|
||||
${STAGEDIR}${PREFIX}/share/X11/xorg.conf.d
|
||||
.endif # ! SLAVE_PORT
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1484803304
|
||||
SHA256 (xorg/xserver/xorg-server-1.18.4.tar.bz2) = 278459b2c31d61a15655d95a72fb79930c480a6bb8cf9226e48a07df8b1d31c8
|
||||
SIZE (xorg/xserver/xorg-server-1.18.4.tar.bz2) = 6009508
|
||||
TIMESTAMP = 1580036705
|
||||
SHA256 (xorg/xserver/xorg-server-1.20.7.tar.bz2) = bd5986f010f34f5b3d6bc99fe395ecb1e0dead15a26807e0c832701809a06ea1
|
||||
SIZE (xorg/xserver/xorg-server-1.20.7.tar.bz2) = 6303005
|
||||
|
6
x11-servers/xorg-server/files/20-evdev-kbd.conf
Normal file
6
x11-servers/xorg-server/files/20-evdev-kbd.conf
Normal file
@ -0,0 +1,6 @@
|
||||
Section "InputClass"
|
||||
Identifier "Evdev keyboard"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
MatchIsKeyboard "on"
|
||||
Option "XkbRules" "evdev"
|
||||
EndSection
|
16
x11-servers/xorg-server/files/config_Makefile.am
Normal file
16
x11-servers/xorg-server/files/config_Makefile.am
Normal file
@ -0,0 +1,16 @@
|
||||
* Build the devd config backend if activated
|
||||
*
|
||||
--- config/Makefile.am.orig 2017-03-16 05:24:43 UTC
|
||||
+++ config/Makefile.am
|
||||
@@ -4,6 +4,11 @@ noinst_LTLIBRARIES = libconfig.la
|
||||
libconfig_la_SOURCES = config.c config-backends.h
|
||||
libconfig_la_LIBADD =
|
||||
|
||||
+if CONFIG_DEVD
|
||||
+libconfig_la_SOURCES += devd.c
|
||||
+libconfig_la_LIBADD += -lusbhid
|
||||
+endif
|
||||
+
|
||||
if NEED_DBUS
|
||||
AM_CFLAGS += $(DBUS_CFLAGS)
|
||||
libconfig_la_SOURCES += dbus-core.c
|
97
x11-servers/xorg-server/files/configure.ac
Normal file
97
x11-servers/xorg-server/files/configure.ac
Normal file
@ -0,0 +1,97 @@
|
||||
* Plumb the devd config backend into configure
|
||||
*
|
||||
* define USE_DEV_IO for ARM platforms
|
||||
*
|
||||
* Only run pkg-config for udev if it is not disabled to prevent over-linking
|
||||
*
|
||||
* Automatically use systemd/logind only on Linux
|
||||
*
|
||||
--- configure.ac.orig 2017-03-15 18:05:25 UTC
|
||||
+++ configure.ac
|
||||
@@ -266,9 +266,12 @@ case $host_cpu in
|
||||
esac
|
||||
GLX_ARCH_DEFINES="-D__GLX_ALIGN64 -mieee"
|
||||
;;
|
||||
- arm*)
|
||||
+ arm*|aarch64*)
|
||||
ARM_VIDEO=yes
|
||||
DEFAULT_INT10="stub"
|
||||
+ case $host_os in
|
||||
+ *freebsd*) AC_DEFINE(USE_DEV_IO) ;;
|
||||
+ esac
|
||||
;;
|
||||
i*86)
|
||||
I386_VIDEO=yes
|
||||
@@ -565,6 +568,7 @@ AC_ARG_ENABLE(xcsecurity, AS_HELP_ST
|
||||
AC_ARG_ENABLE(dbe, AS_HELP_STRING([--disable-dbe], [Build DBE extension (default: enabled)]), [DBE=$enableval], [DBE=yes])
|
||||
AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--enable-xf86bigfont], [Build XF86 Big Font extension (default: disabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=no])
|
||||
AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
|
||||
+AC_ARG_ENABLE(config-devd, AS_HELP_STRING([--enable-config-devd], [Build devd support (default: auto)]), [CONFIG_DEVD=$enableval], [CONFIG_DEVD=auto])
|
||||
AC_ARG_ENABLE(config-udev, AS_HELP_STRING([--enable-config-udev], [Build udev support (default: auto)]), [CONFIG_UDEV=$enableval], [CONFIG_UDEV=auto])
|
||||
AC_ARG_ENABLE(config-udev-kms, AS_HELP_STRING([--enable-config-udev-kms], [Build udev kms support (default: auto)]), [CONFIG_UDEV_KMS=$enableval], [CONFIG_UDEV_KMS=auto])
|
||||
AC_ARG_ENABLE(config-hal, AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
|
||||
@@ -856,10 +860,27 @@ if test "x$CONFIG_UDEV" = xyes && test "
|
||||
AC_MSG_ERROR([Hotplugging through both libudev and hal not allowed])
|
||||
fi
|
||||
|
||||
-PKG_CHECK_MODULES(UDEV, $LIBUDEV, [HAVE_LIBUDEV=yes], [HAVE_LIBUDEV=no])
|
||||
-if test "x$CONFIG_UDEV" = xauto; then
|
||||
- CONFIG_UDEV="$HAVE_LIBUDEV"
|
||||
- AC_DEFINE(HAVE_LIBUDEV, 1, [Define to 1 if libudev is available.])
|
||||
+if test "x$CONFIG_DEVD" = xauto; then
|
||||
+ case $host_os in
|
||||
+ *freebsd*)
|
||||
+ CONFIG_DEVD=yes
|
||||
+ ;;
|
||||
+ *)
|
||||
+ CONFIG_DEVD=no
|
||||
+ ;;
|
||||
+ esac
|
||||
+fi
|
||||
+AM_CONDITIONAL(CONFIG_DEVD, [test "x$CONFIG_DEVD" = xyes])
|
||||
+if test "x$CONFIG_DEVD" = xyes; then
|
||||
+ AC_DEFINE(CONFIG_DEVD, 1, [Use devd for input auto configuration])
|
||||
+fi
|
||||
+
|
||||
+if test "x$CONFIG_UDEV" != xno; then
|
||||
+ PKG_CHECK_MODULES(UDEV, $LIBUDEV, [HAVE_LIBUDEV=yes], [HAVE_LIBUDEV=no])
|
||||
+ if test "x$CONFIG_UDEV" = xauto; then
|
||||
+ CONFIG_UDEV="$HAVE_LIBUDEV"
|
||||
+ AC_DEFINE(HAVE_LIBUDEV, 1, [Define to 1 if libudev is available.])
|
||||
+ fi
|
||||
fi
|
||||
AM_CONDITIONAL(CONFIG_UDEV, [test "x$CONFIG_UDEV" = xyes])
|
||||
if test "x$CONFIG_UDEV" = xyes; then
|
||||
@@ -907,7 +928,14 @@ AM_CONDITIONAL(CONFIG_HAL, [test "x$CONF
|
||||
|
||||
if test "x$SYSTEMD_LOGIND" = xauto; then
|
||||
if test "x$HAVE_DBUS" = xyes -a "x$CONFIG_UDEV" = xyes ; then
|
||||
- SYSTEMD_LOGIND=yes
|
||||
+ case $host_os in
|
||||
+ *linux*)
|
||||
+ SYSTEMD_LOGIND=yes
|
||||
+ ;;
|
||||
+ *)
|
||||
+ SYSTEMD_LOGIND=no
|
||||
+ ;;
|
||||
+ esac
|
||||
else
|
||||
SYSTEMD_LOGIND=no
|
||||
fi
|
||||
@@ -2467,12 +2495,12 @@ AC_SUBST([prefix])
|
||||
|
||||
AC_CONFIG_COMMANDS([sdksyms], [touch hw/xfree86/sdksyms.dep])
|
||||
|
||||
-if test "x$CONFIG_HAL" = xno && test "x$CONFIG_UDEV" = xno; then
|
||||
+if test "x$CONFIG_HAL" = xno && test "x$CONFIG_UDEV" = xno && test "x$CONFIG_DEVD" = xno; then
|
||||
AC_MSG_WARN([
|
||||
- ***********************************************
|
||||
- Neither HAL nor udev backend will be enabled.
|
||||
+ *****************************************************
|
||||
+ Neither HAL, devd, nor udev backend will be enabled.
|
||||
Input device hotplugging will not be available!
|
||||
- ***********************************************])
|
||||
+ *****************************************************])
|
||||
fi
|
||||
|
||||
AC_CONFIG_FILES([
|
14
x11-servers/xorg-server/files/hw_xfree86_Makefile.am
Normal file
14
x11-servers/xorg-server/files/hw_xfree86_Makefile.am
Normal file
@ -0,0 +1,14 @@
|
||||
* Don't overwrite Xorg binary with Xorg.sh when SUID_WRAPPER_DIR == bindir
|
||||
* Instead, relink bin/X to Xorg.wrap rather than to Xorg (which isn't Xorg.sh)
|
||||
*
|
||||
--- hw/xfree86/Makefile.am.orig 2017-03-16 05:24:43 UTC
|
||||
+++ hw/xfree86/Makefile.am
|
||||
@@ -114,7 +114,7 @@ endif
|
||||
if SUID_WRAPPER
|
||||
$(MKDIR_P) $(DESTDIR)$(SUID_WRAPPER_DIR)
|
||||
mv $(DESTDIR)$(bindir)/Xorg $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg
|
||||
- ${INSTALL} -m 755 Xorg.sh $(DESTDIR)$(bindir)/Xorg
|
||||
+ (test ! -f $(DESTDIR)$(bindir)/Xorg && ${INSTALL} -m 755 Xorg.sh $(DESTDIR)$(bindir)/Xorg || cd $(DESTDIR)$(bindir) && rm -f X && $(LN_S) Xorg.wrap$(EXEEXT) X)
|
||||
-chown 0 $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.wrap && chmod u+s $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.wrap
|
||||
endif
|
||||
|
@ -1,163 +0,0 @@
|
||||
From 215f894965df5fb0bb45b107d84524e700d2073c Mon Sep 17 00:00:00 2001
|
||||
From: Michal Srb <msrb@suse.com>
|
||||
Date: Wed, 24 May 2017 15:54:40 +0300
|
||||
Subject: dix: Disallow GenericEvent in SendEvent request.
|
||||
|
||||
The SendEvent request holds xEvent which is exactly 32 bytes long, no more,
|
||||
no less. Both ProcSendEvent and SProcSendEvent verify that the received data
|
||||
exactly match the request size. However nothing stops the client from passing
|
||||
in event with xEvent::type = GenericEvent and any value of
|
||||
xGenericEvent::length.
|
||||
|
||||
In the case of ProcSendEvent, the event will be eventually passed to
|
||||
WriteEventsToClient which will see that it is Generic event and copy the
|
||||
arbitrary length from the receive buffer (and possibly past it) and send it to
|
||||
the other client. This allows clients to copy unitialized heap memory out of X
|
||||
server or to crash it.
|
||||
|
||||
In case of SProcSendEvent, it will attempt to swap the incoming event by
|
||||
calling a swapping function from the EventSwapVector array. The swapped event
|
||||
is written to target buffer, which in this case is local xEvent variable. The
|
||||
xEvent variable is 32 bytes long, but the swapping functions for GenericEvents
|
||||
expect that the target buffer has size matching the size of the source
|
||||
GenericEvent. This allows clients to cause stack buffer overflows.
|
||||
|
||||
Signed-off-by: Michal Srb <msrb@suse.com>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
dix/events.c | 6 ++++++
|
||||
dix/swapreq.c | 7 +++++++
|
||||
2 files changed, 13 insertions(+)
|
||||
|
||||
diff --git a/dix/events.c b/dix/events.c
|
||||
index 3e3a01e..d3a33ea 100644
|
||||
--- dix/events.c
|
||||
+++ dix/events.c
|
||||
@@ -5366,6 +5366,12 @@ ProcSendEvent(ClientPtr client)
|
||||
client->errorValue = stuff->event.u.u.type;
|
||||
return BadValue;
|
||||
}
|
||||
+ /* Generic events can have variable size, but SendEvent request holds
|
||||
+ exactly 32B of event data. */
|
||||
+ if (stuff->event.u.u.type == GenericEvent) {
|
||||
+ client->errorValue = stuff->event.u.u.type;
|
||||
+ return BadValue;
|
||||
+ }
|
||||
if (stuff->event.u.u.type == ClientMessage &&
|
||||
stuff->event.u.u.detail != 8 &&
|
||||
stuff->event.u.u.detail != 16 && stuff->event.u.u.detail != 32) {
|
||||
diff --git a/dix/swapreq.c b/dix/swapreq.c
|
||||
index 719e9b8..6785059 100644
|
||||
--- dix/swapreq.c
|
||||
+++ dix/swapreq.c
|
||||
@@ -292,6 +292,13 @@ SProcSendEvent(ClientPtr client)
|
||||
swapl(&stuff->destination);
|
||||
swapl(&stuff->eventMask);
|
||||
|
||||
+ /* Generic events can have variable size, but SendEvent request holds
|
||||
+ exactly 32B of event data. */
|
||||
+ if (stuff->event.u.u.type == GenericEvent) {
|
||||
+ client->errorValue = stuff->event.u.u.type;
|
||||
+ return BadValue;
|
||||
+ }
|
||||
+
|
||||
/* Swap event */
|
||||
proc = EventSwapVector[stuff->event.u.u.type & 0177];
|
||||
if (!proc || proc == NotImplemented) /* no swapping proc; invalid event type? */
|
||||
--
|
||||
cgit v1.1
|
||||
|
||||
From 8caed4df36b1f802b4992edcfd282cbeeec35d9d Mon Sep 17 00:00:00 2001
|
||||
From: Michal Srb <msrb@suse.com>
|
||||
Date: Wed, 24 May 2017 15:54:41 +0300
|
||||
Subject: Xi: Verify all events in ProcXSendExtensionEvent.
|
||||
|
||||
The requirement is that events have type in range
|
||||
EXTENSION_EVENT_BASE..lastEvent, but it was tested
|
||||
only for first event of all.
|
||||
|
||||
Signed-off-by: Michal Srb <msrb@suse.com>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
Xi/sendexev.c | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Xi/sendexev.c b/Xi/sendexev.c
|
||||
index 1cf118a..5e63bfc 100644
|
||||
--- Xi/sendexev.c
|
||||
+++ Xi/sendexev.c
|
||||
@@ -117,7 +117,7 @@ SProcXSendExtensionEvent(ClientPtr client)
|
||||
int
|
||||
ProcXSendExtensionEvent(ClientPtr client)
|
||||
{
|
||||
- int ret;
|
||||
+ int ret, i;
|
||||
DeviceIntPtr dev;
|
||||
xEvent *first;
|
||||
XEventClass *list;
|
||||
@@ -141,10 +141,12 @@ ProcXSendExtensionEvent(ClientPtr client)
|
||||
/* The client's event type must be one defined by an extension. */
|
||||
|
||||
first = ((xEvent *) &stuff[1]);
|
||||
- if (!((EXTENSION_EVENT_BASE <= first->u.u.type) &&
|
||||
- (first->u.u.type < lastEvent))) {
|
||||
- client->errorValue = first->u.u.type;
|
||||
- return BadValue;
|
||||
+ for (i = 0; i < stuff->num_events; i++) {
|
||||
+ if (!((EXTENSION_EVENT_BASE <= first[i].u.u.type) &&
|
||||
+ (first[i].u.u.type < lastEvent))) {
|
||||
+ client->errorValue = first[i].u.u.type;
|
||||
+ return BadValue;
|
||||
+ }
|
||||
}
|
||||
|
||||
list = (XEventClass *) (first + stuff->num_events);
|
||||
--
|
||||
cgit v1.1
|
||||
|
||||
From ba336b24052122b136486961c82deac76bbde455 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Srb <msrb@suse.com>
|
||||
Date: Wed, 24 May 2017 15:54:42 +0300
|
||||
Subject: Xi: Do not try to swap GenericEvent.
|
||||
|
||||
The SProcXSendExtensionEvent must not attempt to swap GenericEvent because
|
||||
it is assuming that the event has fixed size and gives the swapping function
|
||||
xEvent-sized buffer.
|
||||
|
||||
A GenericEvent would be later rejected by ProcXSendExtensionEvent anyway.
|
||||
|
||||
Signed-off-by: Michal Srb <msrb@suse.com>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
Xi/sendexev.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Xi/sendexev.c b/Xi/sendexev.c
|
||||
index 5e63bfc..5c2e0fc 100644
|
||||
--- Xi/sendexev.c
|
||||
+++ Xi/sendexev.c
|
||||
@@ -95,9 +95,17 @@ SProcXSendExtensionEvent(ClientPtr client)
|
||||
|
||||
eventP = (xEvent *) &stuff[1];
|
||||
for (i = 0; i < stuff->num_events; i++, eventP++) {
|
||||
+ if (eventP->u.u.type == GenericEvent) {
|
||||
+ client->errorValue = eventP->u.u.type;
|
||||
+ return BadValue;
|
||||
+ }
|
||||
+
|
||||
proc = EventSwapVector[eventP->u.u.type & 0177];
|
||||
- if (proc == NotImplemented) /* no swapping proc; invalid event type? */
|
||||
+ /* no swapping proc; invalid event type? */
|
||||
+ if (proc == NotImplemented) {
|
||||
+ client->errorValue = eventP->u.u.type;
|
||||
return BadValue;
|
||||
+ }
|
||||
(*proc) (eventP, &eventT);
|
||||
*eventP = eventT;
|
||||
}
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 05442de962d3dc624f79fc1a00eca3ffc5489ced Mon Sep 17 00:00:00 2001
|
||||
From: Michal Srb <msrb@suse.com>
|
||||
Date: Wed, 24 May 2017 15:54:39 +0300
|
||||
Subject: Xi: Zero target buffer in SProcXSendExtensionEvent.
|
||||
|
||||
Make sure that the xEvent eventT is initialized with zeros, the same way as
|
||||
in SProcSendEvent.
|
||||
|
||||
Some event swapping functions do not overwrite all 32 bytes of xEvent
|
||||
structure, for example XSecurityAuthorizationRevoked. Two cooperating
|
||||
clients, one swapped and the other not, can send
|
||||
XSecurityAuthorizationRevoked event to each other to retrieve old stack data
|
||||
from X server. This can be potentialy misused to go around ASLR or
|
||||
stack-protector.
|
||||
|
||||
Signed-off-by: Michal Srb <msrb@suse.com>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
Xi/sendexev.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Xi/sendexev.c b/Xi/sendexev.c
|
||||
index 11d8202..1cf118a 100644
|
||||
--- Xi/sendexev.c
|
||||
+++ Xi/sendexev.c
|
||||
@@ -78,7 +78,7 @@ SProcXSendExtensionEvent(ClientPtr client)
|
||||
{
|
||||
CARD32 *p;
|
||||
int i;
|
||||
- xEvent eventT;
|
||||
+ xEvent eventT = { .u.u.type = 0 };
|
||||
xEvent *eventP;
|
||||
EventSwapPtr proc;
|
||||
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 95f605b42d8bbb6bea2834a1abfc205981c5b803 Mon Sep 17 00:00:00 2001
|
||||
From: Nathan Kidd <nkidd@opentext.com>
|
||||
Date: Fri, 9 Jan 2015 10:15:46 -0500
|
||||
Subject: Unvalidated extra length in ProcEstablishConnection (CVE-2017-12176)
|
||||
|
||||
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
||||
Signed-off-by: Nathan Kidd <nkidd@opentext.com>
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
(cherry picked from commit b747da5e25be944337a9cd1415506fc06b70aa81)
|
||||
|
||||
diff --git a/dix/dispatch.c b/dix/dispatch.c
|
||||
index 0da431b..0fdfe11 100644
|
||||
--- dix/dispatch.c
|
||||
+++ dix/dispatch.c
|
||||
@@ -3703,7 +3703,12 @@ ProcEstablishConnection(ClientPtr client)
|
||||
prefix = (xConnClientPrefix *) ((char *) stuff + sz_xReq);
|
||||
auth_proto = (char *) prefix + sz_xConnClientPrefix;
|
||||
auth_string = auth_proto + pad_to_int32(prefix->nbytesAuthProto);
|
||||
- if ((prefix->majorVersion != X_PROTOCOL) ||
|
||||
+
|
||||
+ if ((client->req_len << 2) != sz_xReq + sz_xConnClientPrefix +
|
||||
+ pad_to_int32(prefix->nbytesAuthProto) +
|
||||
+ pad_to_int32(prefix->nbytesAuthString))
|
||||
+ reason = "Bad length";
|
||||
+ else if ((prefix->majorVersion != X_PROTOCOL) ||
|
||||
(prefix->minorVersion != X_PROTOCOL_REVISION))
|
||||
reason = "Protocol version mismatch";
|
||||
else
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
@ -1,41 +0,0 @@
|
||||
From cc41e5b581d287c56f8d7113a97a4882dcfdd696 Mon Sep 17 00:00:00 2001
|
||||
From: Nathan Kidd <nkidd@opentext.com>
|
||||
Date: Fri, 9 Jan 2015 10:09:14 -0500
|
||||
Subject: dbe: Unvalidated variable-length request in ProcDbeGetVisualInfo
|
||||
(CVE-2017-12177)
|
||||
|
||||
v2: Protect against integer overflow (Alan Coopersmith)
|
||||
|
||||
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
||||
Signed-off-by: Nathan Kidd <nkidd@opentext.com>
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
(cherry picked from commit 4ca68b878e851e2136c234f40a25008297d8d831)
|
||||
|
||||
diff --git a/dbe/dbe.c b/dbe/dbe.c
|
||||
index 23f7e16..f31766f 100644
|
||||
--- dbe/dbe.c
|
||||
+++ dbe/dbe.c
|
||||
@@ -574,6 +574,9 @@ ProcDbeGetVisualInfo(ClientPtr client)
|
||||
XdbeScreenVisualInfo *pScrVisInfo;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE(xDbeGetVisualInfoReq);
|
||||
+ if (stuff->n > UINT32_MAX / sizeof(CARD32))
|
||||
+ return BadLength;
|
||||
+ REQUEST_FIXED_SIZE(xDbeGetVisualInfoReq, stuff->n * sizeof(CARD32));
|
||||
|
||||
if (stuff->n > UINT32_MAX / sizeof(DrawablePtr))
|
||||
return BadAlloc;
|
||||
@@ -924,7 +927,7 @@ SProcDbeSwapBuffers(ClientPtr client)
|
||||
|
||||
swapl(&stuff->n);
|
||||
if (stuff->n > UINT32_MAX / sizeof(DbeSwapInfoRec))
|
||||
- return BadAlloc;
|
||||
+ return BadLength;
|
||||
REQUEST_FIXED_SIZE(xDbeSwapBuffersReq, stuff->n * sizeof(xDbeSwapInfo));
|
||||
|
||||
if (stuff->n != 0) {
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 6c15122163a2d2615db7e998e8d436815a08dec6 Mon Sep 17 00:00:00 2001
|
||||
From: Nathan Kidd <nkidd@opentext.com>
|
||||
Date: Wed, 24 Dec 2014 16:22:18 -0500
|
||||
Subject: Xi: fix wrong extra length check in ProcXIChangeHierarchy
|
||||
(CVE-2017-12178)
|
||||
|
||||
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
||||
Signed-off-by: Nathan Kidd <nkidd@opentext.com>
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
(cherry picked from commit 859b08d523307eebde7724fd1a0789c44813e821)
|
||||
|
||||
diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c
|
||||
index f2b7785..7286eff 100644
|
||||
--- Xi/xichangehierarchy.c
|
||||
+++ Xi/xichangehierarchy.c
|
||||
@@ -423,7 +423,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||
if (!stuff->num_changes)
|
||||
return rc;
|
||||
|
||||
- len = ((size_t)stuff->length << 2) - sizeof(xXIAnyHierarchyChangeInfo);
|
||||
+ len = ((size_t)stuff->length << 2) - sizeof(xXIChangeHierarchyReq);
|
||||
|
||||
any = (xXIAnyHierarchyChangeInfo *) &stuff[1];
|
||||
while (stuff->num_changes--) {
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
@ -1,52 +0,0 @@
|
||||
From c77cd08efcf386bcc5d8dfbd0427134b2b2d0888 Mon Sep 17 00:00:00 2001
|
||||
From: Nathan Kidd <nkidd@opentext.com>
|
||||
Date: Fri, 9 Jan 2015 10:04:41 -0500
|
||||
Subject: Xi: integer overflow and unvalidated length in
|
||||
(S)ProcXIBarrierReleasePointer
|
||||
|
||||
[jcristau: originally this patch fixed the same issue as commit
|
||||
211e05ac85 "Xi: Test exact size of XIBarrierReleasePointer", with the
|
||||
addition of these checks]
|
||||
|
||||
This addresses CVE-2017-12179
|
||||
|
||||
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
||||
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
Signed-off-by: Nathan Kidd <nkidd@opentext.com>
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
(cherry picked from commit d088e3c1286b548a58e62afdc70bb40981cdb9e8)
|
||||
|
||||
|
||||
--- Xi/xibarriers.c.orig 2016-07-15 18:17:45.000000000 +0200
|
||||
+++ Xi/xibarriers.c 2017-10-13 18:26:09.226006000 +0200
|
||||
@@ -830,10 +830,15 @@
|
||||
REQUEST(xXIBarrierReleasePointerReq);
|
||||
int i;
|
||||
|
||||
- info = (xXIBarrierReleasePointerInfo*) &stuff[1];
|
||||
-
|
||||
swaps(&stuff->length);
|
||||
+ REQUEST_AT_LEAST_SIZE(xXIBarrierReleasePointerReq);
|
||||
+
|
||||
swapl(&stuff->num_barriers);
|
||||
+ if (stuff->num_barriers > UINT32_MAX / sizeof(xXIBarrierReleasePointerInfo))
|
||||
+ return BadLength;
|
||||
+ REQUEST_FIXED_SIZE(xXIBarrierReleasePointerReq, stuff->num_barriers * sizeof(xXIBarrierReleasePointerInfo));
|
||||
+
|
||||
+ info = (xXIBarrierReleasePointerInfo*) &stuff[1];
|
||||
for (i = 0; i < stuff->num_barriers; i++, info++) {
|
||||
swaps(&info->deviceid);
|
||||
swapl(&info->barrier);
|
||||
@@ -854,6 +859,10 @@
|
||||
|
||||
REQUEST(xXIBarrierReleasePointerReq);
|
||||
REQUEST_AT_LEAST_SIZE(xXIBarrierReleasePointerReq);
|
||||
+ if (stuff->num_barriers > UINT32_MAX / sizeof(xXIBarrierReleasePointerInfo))
|
||||
+ return BadLength;
|
||||
+ REQUEST_FIXED_SIZE(xXIBarrierReleasePointerReq, stuff->num_barriers * sizeof(xXIBarrierReleasePointerInfo));
|
||||
+
|
||||
|
||||
info = (xXIBarrierReleasePointerInfo*) &stuff[1];
|
||||
for (i = 0; i < stuff->num_barriers; i++, info++) {
|
@ -1,95 +0,0 @@
|
||||
From 61502107a30d64f991784648c3228ebc6694a032 Mon Sep 17 00:00:00 2001
|
||||
From: Nathan Kidd <nkidd@opentext.com>
|
||||
Date: Fri, 9 Jan 2015 11:43:05 -0500
|
||||
Subject: xfixes: unvalidated lengths (CVE-2017-12183)
|
||||
|
||||
v2: Use before swap (Jeremy Huddleston Sequoia)
|
||||
|
||||
v3: Fix wrong XFixesCopyRegion checks (Alan Coopersmith)
|
||||
|
||||
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
||||
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
Signed-off-by: Nathan Kidd <nkidd@opentext.com>
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
(cherry picked from commit 55caa8b08c84af2b50fbc936cf334a5a93dd7db5)
|
||||
|
||||
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
|
||||
index f009a78..6e84d71 100644
|
||||
--- xfixes/cursor.c
|
||||
+++ xfixes/cursor.c
|
||||
@@ -281,6 +281,7 @@ int
|
||||
SProcXFixesSelectCursorInput(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXFixesSelectCursorInputReq);
|
||||
+ REQUEST_SIZE_MATCH(xXFixesSelectCursorInputReq);
|
||||
|
||||
swaps(&stuff->length);
|
||||
swapl(&stuff->window);
|
||||
@@ -414,7 +415,7 @@ ProcXFixesSetCursorName(ClientPtr client)
|
||||
REQUEST(xXFixesSetCursorNameReq);
|
||||
Atom atom;
|
||||
|
||||
- REQUEST_AT_LEAST_SIZE(xXFixesSetCursorNameReq);
|
||||
+ REQUEST_FIXED_SIZE(xXFixesSetCursorNameReq, stuff->nbytes);
|
||||
VERIFY_CURSOR(pCursor, stuff->cursor, client, DixSetAttrAccess);
|
||||
tchar = (char *) &stuff[1];
|
||||
atom = MakeAtom(tchar, stuff->nbytes, TRUE);
|
||||
@@ -1007,6 +1008,8 @@ SProcXFixesCreatePointerBarrier(ClientPtr client)
|
||||
int i;
|
||||
CARD16 *in_devices = (CARD16 *) &stuff[1];
|
||||
|
||||
+ REQUEST_AT_LEAST_SIZE(xXFixesCreatePointerBarrierReq);
|
||||
+
|
||||
swaps(&stuff->length);
|
||||
swaps(&stuff->num_devices);
|
||||
REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, pad_to_int32(stuff->num_devices));
|
||||
diff --git a/xfixes/region.c b/xfixes/region.c
|
||||
index dd74d7f..f300d2b 100644
|
||||
--- xfixes/region.c
|
||||
+++ xfixes/region.c
|
||||
@@ -359,6 +359,7 @@ ProcXFixesCopyRegion(ClientPtr client)
|
||||
RegionPtr pSource, pDestination;
|
||||
|
||||
REQUEST(xXFixesCopyRegionReq);
|
||||
+ REQUEST_SIZE_MATCH(xXFixesCopyRegionReq);
|
||||
|
||||
VERIFY_REGION(pSource, stuff->source, client, DixReadAccess);
|
||||
VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess);
|
||||
@@ -375,7 +376,7 @@ SProcXFixesCopyRegion(ClientPtr client)
|
||||
REQUEST(xXFixesCopyRegionReq);
|
||||
|
||||
swaps(&stuff->length);
|
||||
- REQUEST_AT_LEAST_SIZE(xXFixesCopyRegionReq);
|
||||
+ REQUEST_SIZE_MATCH(xXFixesCopyRegionReq);
|
||||
swapl(&stuff->source);
|
||||
swapl(&stuff->destination);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
diff --git a/xfixes/saveset.c b/xfixes/saveset.c
|
||||
index eb3f658..aa365cf 100644
|
||||
--- xfixes/saveset.c
|
||||
+++ xfixes/saveset.c
|
||||
@@ -62,6 +62,7 @@ int
|
||||
SProcXFixesChangeSaveSet(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXFixesChangeSaveSetReq);
|
||||
+ REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq);
|
||||
|
||||
swaps(&stuff->length);
|
||||
swapl(&stuff->window);
|
||||
diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c
|
||||
index 8d1bd4c..8b45c53 100644
|
||||
--- xfixes/xfixes.c
|
||||
+++ xfixes/xfixes.c
|
||||
@@ -160,6 +160,7 @@ static int
|
||||
SProcXFixesQueryVersion(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXFixesQueryVersionReq);
|
||||
+ REQUEST_SIZE_MATCH(xXFixesQueryVersionReq);
|
||||
|
||||
swaps(&stuff->length);
|
||||
swapl(&stuff->majorVersion);
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
@ -1,601 +0,0 @@
|
||||
From d264da92f7f8129b8aad4f0114a6467fc38fc896 Mon Sep 17 00:00:00 2001
|
||||
From: Nathan Kidd <nkidd@opentext.com>
|
||||
Date: Sun, 21 Dec 2014 01:10:03 -0500
|
||||
Subject: hw/xfree86: unvalidated lengths
|
||||
|
||||
This addresses:
|
||||
CVE-2017-12180 in XFree86-VidModeExtension
|
||||
CVE-2017-12181 in XFree86-DGA
|
||||
CVE-2017-12182 in XFree86-DRI
|
||||
|
||||
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
||||
Signed-off-by: Nathan Kidd <nkidd@opentext.com>
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
(cherry picked from commit 1b1d4c04695dced2463404174b50b3581dbd857b)
|
||||
|
||||
diff --git a/Xext/vidmode.c b/Xext/vidmode.c
|
||||
index ea3ad13..76055c8 100644
|
||||
--- Xext/vidmode.c
|
||||
+++ Xext/vidmode.c
|
||||
@@ -454,6 +454,20 @@ ProcVidModeAddModeLine(ClientPtr client)
|
||||
DEBUG_P("XF86VidModeAddModeline");
|
||||
|
||||
ver = ClientMajorVersion(client);
|
||||
+
|
||||
+ if (ver < 2) {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86OldVidModeAddModeLineReq));
|
||||
+ }
|
||||
+ else {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeAddModeLineReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86VidModeAddModeLineReq));
|
||||
+ }
|
||||
+
|
||||
if (ver < 2) {
|
||||
/* convert from old format */
|
||||
stuff = &newstuff;
|
||||
@@ -501,18 +515,6 @@ ProcVidModeAddModeLine(ClientPtr client)
|
||||
stuff->after_vsyncend, stuff->after_vtotal,
|
||||
(unsigned long) stuff->after_flags);
|
||||
|
||||
- if (ver < 2) {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86OldVidModeAddModeLineReq));
|
||||
- }
|
||||
- else {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86VidModeAddModeLineReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86VidModeAddModeLineReq));
|
||||
- }
|
||||
if (len != stuff->privsize)
|
||||
return BadLength;
|
||||
|
||||
@@ -622,6 +624,20 @@ ProcVidModeDeleteModeLine(ClientPtr client)
|
||||
DEBUG_P("XF86VidModeDeleteModeline");
|
||||
|
||||
ver = ClientMajorVersion(client);
|
||||
+
|
||||
+ if (ver < 2) {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86OldVidModeDeleteModeLineReq));
|
||||
+ }
|
||||
+ else {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeDeleteModeLineReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86VidModeDeleteModeLineReq));
|
||||
+ }
|
||||
+
|
||||
if (ver < 2) {
|
||||
/* convert from old format */
|
||||
stuff = &newstuff;
|
||||
@@ -649,18 +665,6 @@ ProcVidModeDeleteModeLine(ClientPtr client)
|
||||
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
|
||||
(unsigned long) stuff->flags);
|
||||
|
||||
- if (ver < 2) {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86OldVidModeDeleteModeLineReq));
|
||||
- }
|
||||
- else {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86VidModeDeleteModeLineReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86VidModeDeleteModeLineReq));
|
||||
- }
|
||||
if (len != stuff->privsize) {
|
||||
DebugF("req_len = %ld, sizeof(Req) = %d, privsize = %ld, "
|
||||
"len = %d, length = %d\n",
|
||||
@@ -744,6 +748,20 @@ ProcVidModeModModeLine(ClientPtr client)
|
||||
DEBUG_P("XF86VidModeModModeline");
|
||||
|
||||
ver = ClientMajorVersion(client);
|
||||
+
|
||||
+ if (ver < 2) {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeModModeLineReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86OldVidModeModModeLineReq));
|
||||
+ }
|
||||
+ else {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeModModeLineReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86VidModeModModeLineReq));
|
||||
+ }
|
||||
+
|
||||
if (ver < 2) {
|
||||
/* convert from old format */
|
||||
stuff = &newstuff;
|
||||
@@ -768,18 +786,6 @@ ProcVidModeModModeLine(ClientPtr client)
|
||||
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend,
|
||||
stuff->vtotal, (unsigned long) stuff->flags);
|
||||
|
||||
- if (ver < 2) {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeModModeLineReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86OldVidModeModModeLineReq));
|
||||
- }
|
||||
- else {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86VidModeModModeLineReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86VidModeModModeLineReq));
|
||||
- }
|
||||
if (len != stuff->privsize)
|
||||
return BadLength;
|
||||
|
||||
@@ -877,6 +883,19 @@ ProcVidModeValidateModeLine(ClientPtr client)
|
||||
DEBUG_P("XF86VidModeValidateModeline");
|
||||
|
||||
ver = ClientMajorVersion(client);
|
||||
+
|
||||
+ if (ver < 2) {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq);
|
||||
+ len = client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86OldVidModeValidateModeLineReq));
|
||||
+ }
|
||||
+ else {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeValidateModeLineReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86VidModeValidateModeLineReq));
|
||||
+ }
|
||||
+
|
||||
if (ver < 2) {
|
||||
/* convert from old format */
|
||||
stuff = &newstuff;
|
||||
@@ -905,17 +924,6 @@ ProcVidModeValidateModeLine(ClientPtr client)
|
||||
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
|
||||
(unsigned long) stuff->flags);
|
||||
|
||||
- if (ver < 2) {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq);
|
||||
- len = client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86OldVidModeValidateModeLineReq));
|
||||
- }
|
||||
- else {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86VidModeValidateModeLineReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86VidModeValidateModeLineReq));
|
||||
- }
|
||||
if (len != stuff->privsize)
|
||||
return BadLength;
|
||||
|
||||
@@ -1027,6 +1035,20 @@ ProcVidModeSwitchToMode(ClientPtr client)
|
||||
DEBUG_P("XF86VidModeSwitchToMode");
|
||||
|
||||
ver = ClientMajorVersion(client);
|
||||
+
|
||||
+ if (ver < 2) {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeSwitchToModeReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86OldVidModeSwitchToModeReq));
|
||||
+ }
|
||||
+ else {
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeSwitchToModeReq);
|
||||
+ len =
|
||||
+ client->req_len -
|
||||
+ bytes_to_int32(sizeof(xXF86VidModeSwitchToModeReq));
|
||||
+ }
|
||||
+
|
||||
if (ver < 2) {
|
||||
/* convert from old format */
|
||||
stuff = &newstuff;
|
||||
@@ -1055,18 +1077,6 @@ ProcVidModeSwitchToMode(ClientPtr client)
|
||||
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
|
||||
(unsigned long) stuff->flags);
|
||||
|
||||
- if (ver < 2) {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeSwitchToModeReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86OldVidModeSwitchToModeReq));
|
||||
- }
|
||||
- else {
|
||||
- REQUEST_AT_LEAST_SIZE(xXF86VidModeSwitchToModeReq);
|
||||
- len =
|
||||
- client->req_len -
|
||||
- bytes_to_int32(sizeof(xXF86VidModeSwitchToModeReq));
|
||||
- }
|
||||
if (len != stuff->privsize)
|
||||
return BadLength;
|
||||
|
||||
@@ -1457,6 +1467,7 @@ ProcVidModeSetGammaRamp(ClientPtr client)
|
||||
VidModePtr pVidMode;
|
||||
|
||||
REQUEST(xXF86VidModeSetGammaRampReq);
|
||||
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeSetGammaRampReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
|
||||
index c689dcb..039f38d 100644
|
||||
--- hw/xfree86/common/xf86DGA.c
|
||||
+++ hw/xfree86/common/xf86DGA.c
|
||||
@@ -1272,13 +1272,14 @@ ProcXDGAOpenFramebuffer(ClientPtr client)
|
||||
char *deviceName;
|
||||
int nameSize;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGAOpenFramebufferReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
return DGAErrorBase + XF86DGANoDirectVideoMode;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGAOpenFramebufferReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
@@ -1305,14 +1306,14 @@ ProcXDGACloseFramebuffer(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXDGACloseFramebufferReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGACloseFramebufferReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
return DGAErrorBase + XF86DGANoDirectVideoMode;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGACloseFramebufferReq);
|
||||
-
|
||||
DGACloseFramebuffer(stuff->screen);
|
||||
|
||||
return Success;
|
||||
@@ -1328,10 +1329,11 @@ ProcXDGAQueryModes(ClientPtr client)
|
||||
xXDGAModeInfo info;
|
||||
XDGAModePtr mode;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGAQueryModesReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGAQueryModesReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.number = 0;
|
||||
@@ -1443,11 +1445,12 @@ ProcXDGASetMode(ClientPtr client)
|
||||
ClientPtr owner;
|
||||
int size;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGASetModeReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
owner = DGA_GETCLIENT(stuff->screen);
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGASetModeReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.offset = 0;
|
||||
@@ -1533,14 +1536,14 @@ ProcXDGASetViewport(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXDGASetViewportReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGASetViewportReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGASetViewportReq);
|
||||
-
|
||||
DGASetViewport(stuff->screen, stuff->x, stuff->y, stuff->flags);
|
||||
|
||||
return Success;
|
||||
@@ -1554,14 +1557,14 @@ ProcXDGAInstallColormap(ClientPtr client)
|
||||
|
||||
REQUEST(xXDGAInstallColormapReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGAInstallColormapReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGAInstallColormapReq);
|
||||
-
|
||||
rc = dixLookupResourceByType((void **) &cmap, stuff->cmap, RT_COLORMAP,
|
||||
client, DixInstallAccess);
|
||||
if (rc != Success)
|
||||
@@ -1575,14 +1578,14 @@ ProcXDGASelectInput(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXDGASelectInputReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGASelectInputReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGASelectInputReq);
|
||||
-
|
||||
if (DGA_GETCLIENT(stuff->screen) == client)
|
||||
DGASelectInput(stuff->screen, client, stuff->mask);
|
||||
|
||||
@@ -1594,14 +1597,14 @@ ProcXDGAFillRectangle(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXDGAFillRectangleReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGAFillRectangleReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGAFillRectangleReq);
|
||||
-
|
||||
if (Success != DGAFillRect(stuff->screen, stuff->x, stuff->y,
|
||||
stuff->width, stuff->height, stuff->color))
|
||||
return BadMatch;
|
||||
@@ -1614,14 +1617,14 @@ ProcXDGACopyArea(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXDGACopyAreaReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGACopyAreaReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGACopyAreaReq);
|
||||
-
|
||||
if (Success != DGABlitRect(stuff->screen, stuff->srcx, stuff->srcy,
|
||||
stuff->width, stuff->height, stuff->dstx,
|
||||
stuff->dsty))
|
||||
@@ -1635,14 +1638,14 @@ ProcXDGACopyTransparentArea(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXDGACopyTransparentAreaReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGACopyTransparentAreaReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGACopyTransparentAreaReq);
|
||||
-
|
||||
if (Success != DGABlitTransRect(stuff->screen, stuff->srcx, stuff->srcy,
|
||||
stuff->width, stuff->height, stuff->dstx,
|
||||
stuff->dsty, stuff->key))
|
||||
@@ -1657,13 +1660,14 @@ ProcXDGAGetViewportStatus(ClientPtr client)
|
||||
REQUEST(xXDGAGetViewportStatusReq);
|
||||
xXDGAGetViewportStatusReply rep;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGAGetViewportStatusReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGAGetViewportStatusReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
@@ -1680,13 +1684,14 @@ ProcXDGASync(ClientPtr client)
|
||||
REQUEST(xXDGASyncReq);
|
||||
xXDGASyncReply rep;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGASyncReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGASyncReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
@@ -1725,13 +1730,14 @@ ProcXDGAChangePixmapMode(ClientPtr client)
|
||||
xXDGAChangePixmapModeReply rep;
|
||||
int x, y;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGAChangePixmapModeReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGAChangePixmapModeReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
@@ -1755,14 +1761,14 @@ ProcXDGACreateColormap(ClientPtr client)
|
||||
REQUEST(xXDGACreateColormapReq);
|
||||
int result;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXDGACreateColormapReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXDGACreateColormapReq);
|
||||
-
|
||||
if (!stuff->mode)
|
||||
return BadValue;
|
||||
|
||||
@@ -1791,10 +1797,11 @@ ProcXF86DGAGetVideoLL(ClientPtr client)
|
||||
int num, offset, flags;
|
||||
char *name;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGAGetVideoLLReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXF86DGAGetVideoLLReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
@@ -1831,9 +1838,10 @@ ProcXF86DGADirectVideo(ClientPtr client)
|
||||
|
||||
REQUEST(xXF86DGADirectVideoReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
- REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq);
|
||||
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
return DGAErrorBase + XF86DGANoDirectVideoMode;
|
||||
@@ -1889,10 +1897,11 @@ ProcXF86DGAGetViewPortSize(ClientPtr client)
|
||||
REQUEST(xXF86DGAGetViewPortSizeReq);
|
||||
xXF86DGAGetViewPortSizeReply rep;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGAGetViewPortSizeReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXF86DGAGetViewPortSizeReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
@@ -1917,14 +1926,14 @@ ProcXF86DGASetViewPort(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86DGASetViewPortReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq);
|
||||
-
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
return DGAErrorBase + XF86DGANoDirectVideoMode;
|
||||
|
||||
@@ -1944,10 +1953,11 @@ ProcXF86DGAGetVidPage(ClientPtr client)
|
||||
REQUEST(xXF86DGAGetVidPageReq);
|
||||
xXF86DGAGetVidPageReply rep;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGAGetVidPageReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXF86DGAGetVidPageReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
@@ -1962,11 +1972,11 @@ ProcXF86DGASetVidPage(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86DGASetVidPageReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGASetVidPageReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXF86DGASetVidPageReq);
|
||||
-
|
||||
/* silently fail */
|
||||
|
||||
return Success;
|
||||
@@ -1980,14 +1990,14 @@ ProcXF86DGAInstallColormap(ClientPtr client)
|
||||
|
||||
REQUEST(xXF86DGAInstallColormapReq);
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGAInstallColormapReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXF86DGAInstallColormapReq);
|
||||
-
|
||||
if (!DGAActive(stuff->screen))
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
@@ -2008,10 +2018,11 @@ ProcXF86DGAQueryDirectVideo(ClientPtr client)
|
||||
REQUEST(xXF86DGAQueryDirectVideoReq);
|
||||
xXF86DGAQueryDirectVideoReply rep;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGAQueryDirectVideoReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXF86DGAQueryDirectVideoReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
@@ -2030,14 +2041,14 @@ ProcXF86DGAViewPortChanged(ClientPtr client)
|
||||
REQUEST(xXF86DGAViewPortChangedReq);
|
||||
xXF86DGAViewPortChangedReply rep;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xXF86DGAViewPortChangedReq);
|
||||
+
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xXF86DGAViewPortChangedReq);
|
||||
-
|
||||
if (!DGAActive(stuff->screen))
|
||||
return DGAErrorBase + XF86DGADirectNotActivated;
|
||||
|
||||
diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c
|
||||
index 68f8b7e..65f368e 100644
|
||||
--- hw/xfree86/dri/xf86dri.c
|
||||
+++ hw/xfree86/dri/xf86dri.c
|
||||
@@ -570,6 +570,7 @@ static int
|
||||
SProcXF86DRIQueryDirectRenderingCapable(register ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86DRIQueryDirectRenderingCapableReq);
|
||||
+ REQUEST_SIZE_MATCH(xXF86DRIQueryDirectRenderingCapableReq);
|
||||
swaps(&stuff->length);
|
||||
swapl(&stuff->screen);
|
||||
return ProcXF86DRIQueryDirectRenderingCapable(client);
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
@ -1,139 +0,0 @@
|
||||
From c206f36a4b6ecf2555ab2291c349ab7d7d0b02f5 Mon Sep 17 00:00:00 2001
|
||||
From: Nathan Kidd <nkidd@opentext.com>
|
||||
Date: Fri, 9 Jan 2015 09:57:23 -0500
|
||||
Subject: Unvalidated lengths
|
||||
|
||||
v2: Add overflow check and remove unnecessary check (Julien Cristau)
|
||||
|
||||
This addresses:
|
||||
CVE-2017-12184 in XINERAMA
|
||||
CVE-2017-12185 in MIT-SCREEN-SAVER
|
||||
CVE-2017-12186 in X-Resource
|
||||
CVE-2017-12187 in RENDER
|
||||
|
||||
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
||||
Signed-off-by: Nathan Kidd <nkidd@opentext.com>
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
(cherry picked from commit cad5a1050b7184d828aef9c1dd151c3ab649d37e)
|
||||
|
||||
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
|
||||
index 209df29..844ea49 100644
|
||||
--- Xext/panoramiX.c
|
||||
+++ Xext/panoramiX.c
|
||||
@@ -988,10 +988,11 @@ ProcPanoramiXGetScreenSize(ClientPtr client)
|
||||
xPanoramiXGetScreenSizeReply rep;
|
||||
int rc;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
|
||||
+
|
||||
if (stuff->screen >= PanoramiXNumScreens)
|
||||
return BadMatch;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
|
||||
rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
diff --git a/Xext/saver.c b/Xext/saver.c
|
||||
index 750b8b9..45ac4d2 100644
|
||||
--- Xext/saver.c
|
||||
+++ Xext/saver.c
|
||||
@@ -1185,6 +1185,8 @@ ProcScreenSaverUnsetAttributes(ClientPtr client)
|
||||
PanoramiXRes *draw;
|
||||
int rc, i;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xScreenSaverUnsetAttributesReq);
|
||||
+
|
||||
rc = dixLookupResourceByClass((void **) &draw, stuff->drawable,
|
||||
XRC_DRAWABLE, client, DixWriteAccess);
|
||||
if (rc != Success)
|
||||
diff --git a/Xext/xres.c b/Xext/xres.c
|
||||
index ae779df..bc54133 100644
|
||||
--- Xext/xres.c
|
||||
+++ Xext/xres.c
|
||||
@@ -947,6 +947,8 @@ ProcXResQueryResourceBytes (ClientPtr client)
|
||||
ConstructResourceBytesCtx ctx;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE(xXResQueryResourceBytesReq);
|
||||
+ if (stuff->numSpecs > UINT32_MAX / sizeof(ctx.specs[0]))
|
||||
+ return BadLength;
|
||||
REQUEST_FIXED_SIZE(xXResQueryResourceBytesReq,
|
||||
stuff->numSpecs * sizeof(ctx.specs[0]));
|
||||
|
||||
@@ -1052,8 +1054,8 @@ SProcXResQueryResourceBytes (ClientPtr client)
|
||||
int c;
|
||||
xXResResourceIdSpec *specs = (void*) ((char*) stuff + sizeof(*stuff));
|
||||
|
||||
- swapl(&stuff->numSpecs);
|
||||
REQUEST_AT_LEAST_SIZE(xXResQueryResourceBytesReq);
|
||||
+ swapl(&stuff->numSpecs);
|
||||
REQUEST_FIXED_SIZE(xXResQueryResourceBytesReq,
|
||||
stuff->numSpecs * sizeof(specs[0]));
|
||||
|
||||
diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c
|
||||
index 8a35b7b..4d412b8 100644
|
||||
--- Xext/xvdisp.c
|
||||
+++ Xext/xvdisp.c
|
||||
@@ -1493,12 +1493,14 @@ XineramaXvShmPutImage(ClientPtr client)
|
||||
{
|
||||
REQUEST(xvShmPutImageReq);
|
||||
PanoramiXRes *draw, *gc, *port;
|
||||
- Bool send_event = stuff->send_event;
|
||||
+ Bool send_event;
|
||||
Bool isRoot;
|
||||
int result, i, x, y;
|
||||
|
||||
REQUEST_SIZE_MATCH(xvShmPutImageReq);
|
||||
|
||||
+ send_event = stuff->send_event;
|
||||
+
|
||||
result = dixLookupResourceByClass((void **) &draw, stuff->drawable,
|
||||
XRC_DRAWABLE, client, DixWriteAccess);
|
||||
if (result != Success)
|
||||
diff --git a/hw/dmx/dmxpict.c b/hw/dmx/dmxpict.c
|
||||
index 1f1022e..63caec9 100644
|
||||
--- hw/dmx/dmxpict.c
|
||||
+++ hw/dmx/dmxpict.c
|
||||
@@ -716,6 +716,8 @@ dmxProcRenderSetPictureFilter(ClientPtr client)
|
||||
filter = (char *) (stuff + 1);
|
||||
params = (XFixed *) (filter + ((stuff->nbytes + 3) & ~3));
|
||||
nparams = ((XFixed *) stuff + client->req_len) - params;
|
||||
+ if (nparams < 0)
|
||||
+ return BadLength;
|
||||
|
||||
XRenderSetPictureFilter(dmxScreen->beDisplay,
|
||||
pPictPriv->pict, filter, params, nparams);
|
||||
diff --git a/pseudoramiX/pseudoramiX.c b/pseudoramiX/pseudoramiX.c
|
||||
index d8b2593..95f6e10 100644
|
||||
--- pseudoramiX/pseudoramiX.c
|
||||
+++ pseudoramiX/pseudoramiX.c
|
||||
@@ -297,10 +297,11 @@ ProcPseudoramiXGetScreenSize(ClientPtr client)
|
||||
|
||||
TRACE;
|
||||
|
||||
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
|
||||
+
|
||||
if (stuff->screen >= pseudoramiXNumScreens)
|
||||
return BadMatch;
|
||||
|
||||
- REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
|
||||
rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
diff --git a/render/render.c b/render/render.c
|
||||
index bfacaa0..3a41e33 100644
|
||||
--- render/render.c
|
||||
+++ render/render.c
|
||||
@@ -1757,6 +1757,9 @@ ProcRenderSetPictureFilter(ClientPtr client)
|
||||
name = (char *) (stuff + 1);
|
||||
params = (xFixed *) (name + pad_to_int32(stuff->nbytes));
|
||||
nparams = ((xFixed *) stuff + client->req_len) - params;
|
||||
+ if (nparams < 0)
|
||||
+ return BadLength;
|
||||
+
|
||||
result = SetPictureFilter(pPicture, name, stuff->nbytes, params, nparams);
|
||||
return result;
|
||||
}
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
@ -1,26 +0,0 @@
|
||||
From b95f25af141d33a65f6f821ea9c003f66a01e1f1 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Srb <msrb@suse.com>
|
||||
Date: Fri, 28 Jul 2017 16:27:10 +0200
|
||||
Subject: Xext/shm: Validate shmseg resource id (CVE-2017-13721)
|
||||
|
||||
Otherwise it can belong to a non-existing client and abort X server with
|
||||
FatalError "client not in use", or overwrite existing segment of another
|
||||
existing client.
|
||||
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
|
||||
diff --git a/Xext/shm.c b/Xext/shm.c
|
||||
index 91ea90b..2f9a788 100644
|
||||
--- Xext/shm.c
|
||||
+++ Xext/shm.c
|
||||
@@ -1238,6 +1238,7 @@ ProcShmCreateSegment(ClientPtr client)
|
||||
};
|
||||
|
||||
REQUEST_SIZE_MATCH(xShmCreateSegmentReq);
|
||||
+ LEGAL_NEW_RESOURCE(stuff->shmseg, client);
|
||||
if ((stuff->readOnly != xTrue) && (stuff->readOnly != xFalse)) {
|
||||
client->errorValue = stuff->readOnly;
|
||||
return BadValue;
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
@ -1,115 +0,0 @@
|
||||
From 94f11ca5cf011ef123bd222cabeaef6f424d76ac Mon Sep 17 00:00:00 2001
|
||||
From: Keith Packard <keithp@keithp.com>
|
||||
Date: Thu, 27 Jul 2017 10:08:32 -0700
|
||||
Subject: xkb: Handle xkb formated string output safely (CVE-2017-13723)
|
||||
|
||||
Generating strings for XKB data used a single shared static buffer,
|
||||
which offered several opportunities for errors. Use a ring of
|
||||
resizable buffers instead, to avoid problems when strings end up
|
||||
longer than anticipated.
|
||||
|
||||
Reviewed-by: Michal Srb <msrb@suse.com>
|
||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||
|
||||
diff --git a/xkb/xkbtext.c b/xkb/xkbtext.c
|
||||
index ead2b1a..d2a2567 100644
|
||||
--- xkb/xkbtext.c
|
||||
+++ xkb/xkbtext.c
|
||||
@@ -47,23 +47,27 @@
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
-#define BUFFER_SIZE 512
|
||||
-
|
||||
-static char textBuffer[BUFFER_SIZE];
|
||||
-static int tbNext = 0;
|
||||
+#define NUM_BUFFER 8
|
||||
+static struct textBuffer {
|
||||
+ int size;
|
||||
+ char *buffer;
|
||||
+} textBuffer[NUM_BUFFER];
|
||||
+static int textBufferIndex;
|
||||
|
||||
static char *
|
||||
tbGetBuffer(unsigned size)
|
||||
{
|
||||
- char *rtrn;
|
||||
+ struct textBuffer *tb;
|
||||
|
||||
- if (size >= BUFFER_SIZE)
|
||||
- return NULL;
|
||||
- if ((BUFFER_SIZE - tbNext) <= size)
|
||||
- tbNext = 0;
|
||||
- rtrn = &textBuffer[tbNext];
|
||||
- tbNext += size;
|
||||
- return rtrn;
|
||||
+ tb = &textBuffer[textBufferIndex];
|
||||
+ textBufferIndex = (textBufferIndex + 1) % NUM_BUFFER;
|
||||
+
|
||||
+ if (size > tb->size) {
|
||||
+ free(tb->buffer);
|
||||
+ tb->buffer = xnfalloc(size);
|
||||
+ tb->size = size;
|
||||
+ }
|
||||
+ return tb->buffer;
|
||||
}
|
||||
|
||||
/***====================================================================***/
|
||||
@@ -79,8 +83,6 @@ XkbAtomText(Atom atm, unsigned format)
|
||||
int len;
|
||||
|
||||
len = strlen(atmstr) + 1;
|
||||
- if (len > BUFFER_SIZE)
|
||||
- len = BUFFER_SIZE - 2;
|
||||
rtrn = tbGetBuffer(len);
|
||||
strlcpy(rtrn, atmstr, len);
|
||||
}
|
||||
@@ -128,8 +130,6 @@ XkbVModIndexText(XkbDescPtr xkb, unsigned ndx, unsigned format)
|
||||
len = strlen(tmp) + 1;
|
||||
if (format == XkbCFile)
|
||||
len += 4;
|
||||
- if (len >= BUFFER_SIZE)
|
||||
- len = BUFFER_SIZE - 1;
|
||||
rtrn = tbGetBuffer(len);
|
||||
if (format == XkbCFile) {
|
||||
strcpy(rtrn, "vmod_");
|
||||
@@ -140,6 +140,8 @@ XkbVModIndexText(XkbDescPtr xkb, unsigned ndx, unsigned format)
|
||||
return rtrn;
|
||||
}
|
||||
|
||||
+#define VMOD_BUFFER_SIZE 512
|
||||
+
|
||||
char *
|
||||
XkbVModMaskText(XkbDescPtr xkb,
|
||||
unsigned modMask, unsigned mask, unsigned format)
|
||||
@@ -147,7 +149,7 @@ XkbVModMaskText(XkbDescPtr xkb,
|
||||
register int i, bit;
|
||||
int len;
|
||||
char *mm, *rtrn;
|
||||
- char *str, buf[BUFFER_SIZE];
|
||||
+ char *str, buf[VMOD_BUFFER_SIZE];
|
||||
|
||||
if ((modMask == 0) && (mask == 0)) {
|
||||
rtrn = tbGetBuffer(5);
|
||||
@@ -173,7 +175,7 @@ XkbVModMaskText(XkbDescPtr xkb,
|
||||
len = strlen(tmp) + 1 + (str == buf ? 0 : 1);
|
||||
if (format == XkbCFile)
|
||||
len += 4;
|
||||
- if ((str - (buf + len)) <= BUFFER_SIZE) {
|
||||
+ if ((str - (buf + len)) <= VMOD_BUFFER_SIZE) {
|
||||
if (str != buf) {
|
||||
if (format == XkbCFile)
|
||||
*str++ = '|';
|
||||
@@ -199,8 +201,6 @@ XkbVModMaskText(XkbDescPtr xkb,
|
||||
len = 0;
|
||||
if (str)
|
||||
len += strlen(str) + (mm == NULL ? 0 : 1);
|
||||
- if (len >= BUFFER_SIZE)
|
||||
- len = BUFFER_SIZE - 1;
|
||||
rtrn = tbGetBuffer(len + 1);
|
||||
rtrn[0] = '\0';
|
||||
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- hw/xfree86/os-support/misc/Makefile.in.orig 2015-09-23 10:21:18.470900000 +0200
|
||||
+++ hw/xfree86/os-support/misc/Makefile.in 2015-09-23 10:22:34.979974000 +0200
|
||||
@@ -530,7 +530,8 @@
|
||||
@@ -543,7 +543,8 @@
|
||||
|
||||
#AM_LDFLAGS = -r
|
||||
AM_CPPFLAGS = $(XORG_INCS)
|
||||
|
100
x11-servers/xorg-server/files/patch-config_Makefile.in
Normal file
100
x11-servers/xorg-server/files/patch-config_Makefile.in
Normal file
@ -0,0 +1,100 @@
|
||||
* generated from patched Makefile.am; revise and regen instead of editing
|
||||
*
|
||||
* Build the devd config backend if activated
|
||||
*
|
||||
--- config/Makefile.in.orig 2017-03-16 05:24:43 UTC
|
||||
+++ config/Makefile.in
|
||||
@@ -89,16 +89,18 @@ PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
-@NEED_DBUS_TRUE@am__append_1 = $(DBUS_CFLAGS)
|
||||
-@NEED_DBUS_TRUE@am__append_2 = dbus-core.c
|
||||
-@NEED_DBUS_TRUE@am__append_3 = $(DBUS_LIBS)
|
||||
-@CONFIG_UDEV_TRUE@am__append_4 = $(UDEV_CFLAGS)
|
||||
-@CONFIG_UDEV_TRUE@am__append_5 = udev.c
|
||||
-@CONFIG_UDEV_TRUE@am__append_6 = $(UDEV_LIBS)
|
||||
-@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__append_7 = $(HAL_CFLAGS)
|
||||
-@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__append_8 = hal.c
|
||||
-@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__append_9 = $(HAL_LIBS)
|
||||
-@CONFIG_HAL_FALSE@@CONFIG_UDEV_FALSE@@CONFIG_WSCONS_TRUE@am__append_10 = wscons.c
|
||||
+@CONFIG_DEVD_TRUE@am__append_1 = devd.c
|
||||
+@CONFIG_DEVD_TRUE@am__append_2 = -lusbhid
|
||||
+@NEED_DBUS_TRUE@am__append_3 = $(DBUS_CFLAGS)
|
||||
+@NEED_DBUS_TRUE@am__append_4 = dbus-core.c
|
||||
+@NEED_DBUS_TRUE@am__append_5 = $(DBUS_LIBS)
|
||||
+@CONFIG_UDEV_TRUE@am__append_6 = $(UDEV_CFLAGS)
|
||||
+@CONFIG_UDEV_TRUE@am__append_7 = udev.c
|
||||
+@CONFIG_UDEV_TRUE@am__append_8 = $(UDEV_LIBS)
|
||||
+@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__append_9 = $(HAL_CFLAGS)
|
||||
+@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__append_10 = hal.c
|
||||
+@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__append_11 = $(HAL_LIBS)
|
||||
+@CONFIG_HAL_FALSE@@CONFIG_UDEV_FALSE@@CONFIG_WSCONS_TRUE@am__append_12 = wscons.c
|
||||
subdir = config
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ac_define_dir.m4 \
|
||||
@@ -126,16 +128,18 @@ am__DEPENDENCIES_1 =
|
||||
@CONFIG_UDEV_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
|
||||
@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__DEPENDENCIES_4 = \
|
||||
@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@ $(am__DEPENDENCIES_1)
|
||||
-libconfig_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \
|
||||
- $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4)
|
||||
-am__libconfig_la_SOURCES_DIST = config.c config-backends.h dbus-core.c \
|
||||
- udev.c hal.c wscons.c
|
||||
-@NEED_DBUS_TRUE@am__objects_1 = dbus-core.lo
|
||||
-@CONFIG_UDEV_TRUE@am__objects_2 = udev.lo
|
||||
-@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__objects_3 = hal.lo
|
||||
-@CONFIG_HAL_FALSE@@CONFIG_UDEV_FALSE@@CONFIG_WSCONS_TRUE@am__objects_4 = wscons.lo
|
||||
+libconfig_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
|
||||
+ $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
|
||||
+ $(am__DEPENDENCIES_4)
|
||||
+am__libconfig_la_SOURCES_DIST = config.c config-backends.h devd.c \
|
||||
+ dbus-core.c udev.c hal.c wscons.c
|
||||
+@CONFIG_DEVD_TRUE@am__objects_1 = devd.lo
|
||||
+@NEED_DBUS_TRUE@am__objects_2 = dbus-core.lo
|
||||
+@CONFIG_UDEV_TRUE@am__objects_3 = udev.lo
|
||||
+@CONFIG_HAL_TRUE@@CONFIG_UDEV_FALSE@am__objects_4 = hal.lo
|
||||
+@CONFIG_HAL_FALSE@@CONFIG_UDEV_FALSE@@CONFIG_WSCONS_TRUE@am__objects_5 = wscons.lo
|
||||
am_libconfig_la_OBJECTS = config.lo $(am__objects_1) $(am__objects_2) \
|
||||
- $(am__objects_3) $(am__objects_4)
|
||||
+ $(am__objects_3) $(am__objects_4) $(am__objects_5)
|
||||
libconfig_la_OBJECTS = $(am_libconfig_la_OBJECTS)
|
||||
AM_V_lt = $(am__v_lt_@AM_V@)
|
||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
@@ -157,7 +161,7 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/config.Plo ./$(DEPDIR)/dbus-core.Plo \
|
||||
- ./$(DEPDIR)/hal.Plo ./$(DEPDIR)/udev.Plo \
|
||||
+ ./$(DEPDIR)/devd.Plo ./$(DEPDIR)/hal.Plo ./$(DEPDIR)/udev.Plo \
|
||||
./$(DEPDIR)/wscons.Plo
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
@@ -593,12 +597,14 @@ target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
-AM_CFLAGS = $(DIX_CFLAGS) $(am__append_1) $(am__append_4) \
|
||||
- $(am__append_7)
|
||||
+AM_CFLAGS = $(DIX_CFLAGS) $(am__append_3) $(am__append_6) \
|
||||
+ $(am__append_9)
|
||||
noinst_LTLIBRARIES = libconfig.la
|
||||
-libconfig_la_SOURCES = config.c config-backends.h $(am__append_2) \
|
||||
- $(am__append_5) $(am__append_8) $(am__append_10)
|
||||
-libconfig_la_LIBADD = $(am__append_3) $(am__append_6) $(am__append_9)
|
||||
+libconfig_la_SOURCES = config.c config-backends.h $(am__append_1) \
|
||||
+ $(am__append_4) $(am__append_7) $(am__append_10) \
|
||||
+ $(am__append_12)
|
||||
+libconfig_la_LIBADD = $(am__append_2) $(am__append_5) $(am__append_8) \
|
||||
+ $(am__append_11)
|
||||
@CONFIG_UDEV_TRUE@@XORG_TRUE@xorgconfddir = $(datadir)/X11/$(XF86CONFIGDIR)
|
||||
@CONFIG_UDEV_TRUE@@XORG_TRUE@xorgconfd_DATA = 10-quirks.conf
|
||||
EXTRA_DIST = x11-input.fdi fdi2iclass.py 10-quirks.conf
|
||||
@@ -658,6 +664,7 @@ distclean-compile:
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-core.Plo@am__quote@ # am--include-marker
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/devd.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hal.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/udev.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wscons.Plo@am__quote@ # am--include-marker
|
@ -1,11 +1,12 @@
|
||||
--- config/config-backends.h.orig 2016-07-15 16:17:45 UTC
|
||||
* Define required functions for devd config backend
|
||||
*
|
||||
--- config/config-backends.h.orig 2017-03-15 18:05:25 UTC
|
||||
+++ config/config-backends.h
|
||||
@@ -44,3 +44,8 @@ void config_hal_fini(void);
|
||||
@@ -43,4 +43,7 @@ void config_hal_fini(void);
|
||||
#elif defined(CONFIG_WSCONS)
|
||||
int config_wscons_init(void);
|
||||
void config_wscons_fini(void);
|
||||
#endif
|
||||
+
|
||||
+#ifdef CONFIG_DEVD
|
||||
+#elif defined(CONFIG_DEVD)
|
||||
+int config_devd_init(void);
|
||||
+void config_devd_fini(void);
|
||||
+#endif
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
--- config/config.c.orig 2016-07-19 17:07:29 UTC
|
||||
* Call the devd config backend functions if activated
|
||||
*
|
||||
--- config/config.c.orig 2017-03-15 18:05:25 UTC
|
||||
+++ config/config.c
|
||||
@@ -55,6 +55,9 @@ config_init(void)
|
||||
#elif defined(CONFIG_WSCONS)
|
||||
|
File diff suppressed because it is too large
Load Diff
56
x11-servers/xorg-server/files/patch-config_udev.c
Normal file
56
x11-servers/xorg-server/files/patch-config_udev.c
Normal file
@ -0,0 +1,56 @@
|
||||
* Don't pass the device parameter when using kbdmux to prevent conflict
|
||||
*
|
||||
* Specify a driver to use for basic devices (keyboard and mouse), otherwise none attaches
|
||||
*
|
||||
--- config/udev.c.orig 2017-03-15 18:05:25 UTC
|
||||
+++ config/udev.c
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
#include <libudev.h>
|
||||
#include <ctype.h>
|
||||
+#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "input.h"
|
||||
@@ -188,7 +189,21 @@ device_added(struct udev_device *udev_de
|
||||
attrs.product = strdup(name);
|
||||
input_options = input_option_new(input_options, "name", name);
|
||||
input_options = input_option_new(input_options, "path", path);
|
||||
- input_options = input_option_new(input_options, "device", path);
|
||||
+ if(strstr(path, "kbdmux") != NULL) {
|
||||
+ /*
|
||||
+ * Don't pass "device" option if the keyboard is already attached
|
||||
+ * to the console (ie. open() fails). This would activate a special
|
||||
+ * logic in xf86-input-keyboard. Prevent any other attached to console
|
||||
+ * keyboards being processed. There can be only one such device.
|
||||
+ */
|
||||
+ int fd = open(path, O_RDONLY);
|
||||
+ if (fd > -1) {
|
||||
+ close(fd);
|
||||
+ input_options = input_option_new(input_options, "device", path);
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ input_options = input_option_new(input_options, "device", path);
|
||||
input_options = input_option_new(input_options, "major", itoa(major(devnum)));
|
||||
input_options = input_option_new(input_options, "minor", itoa(minor(devnum)));
|
||||
if (path)
|
||||
@@ -272,6 +287,18 @@ device_added(struct udev_device *udev_de
|
||||
}
|
||||
}
|
||||
|
||||
+ if (attrs.flags & (ATTR_KEY | ATTR_KEYBOARD)) {
|
||||
+ if (!feature_present("evdev_support"))
|
||||
+ input_options = input_option_new(input_options, "driver", "kbd");
|
||||
+ } else if (attrs.flags & ATTR_POINTER) {
|
||||
+ if (strstr(path, "vbox"))
|
||||
+ input_options = input_option_new(input_options, "driver", "vboxmouse");
|
||||
+ else {
|
||||
+ if (!feature_present("evdev_support"))
|
||||
+ input_options = input_option_new(input_options, "driver", "mouse");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
input_options = input_option_new(input_options, "config_info", config_info);
|
||||
|
||||
/* Default setting needed for non-seat0 seats */
|
@ -1,6 +1,41 @@
|
||||
--- configure.orig 2016-07-19 17:27:31 UTC
|
||||
* generated from patched configure.ac; revise and regen instead of editing
|
||||
*
|
||||
* Plumb the devd config backend into configure
|
||||
*
|
||||
* define USE_DEV_IO for ARM platforms
|
||||
*
|
||||
* Only run pkg-config for udev if it is not disabled to prevent over-linking
|
||||
*
|
||||
* Automatically use systemd/logind only on Linux
|
||||
*
|
||||
--- configure.orig 2017-03-15 18:05:39 UTC
|
||||
+++ configure
|
||||
@@ -23168,9 +23168,14 @@ $as_echo "#define USE_ALPHA_PIO 1" >>con
|
||||
@@ -1032,6 +1032,8 @@ CONFIG_UDEV_FALSE
|
||||
CONFIG_UDEV_TRUE
|
||||
UDEV_LIBS
|
||||
UDEV_CFLAGS
|
||||
+CONFIG_DEVD_FALSE
|
||||
+CONFIG_DEVD_TRUE
|
||||
HAVE_SYSTEMD_DAEMON_FALSE
|
||||
HAVE_SYSTEMD_DAEMON_TRUE
|
||||
SYSTEMD_DAEMON_LIBS
|
||||
@@ -1367,6 +1369,7 @@ enable_tslib
|
||||
enable_dbe
|
||||
enable_xf86bigfont
|
||||
enable_dpms
|
||||
+enable_config_devd
|
||||
enable_config_udev
|
||||
enable_config_udev_kms
|
||||
enable_config_hal
|
||||
@@ -2191,6 +2194,7 @@ Optional Features:
|
||||
--disable-dbe Build DBE extension (default: enabled)
|
||||
--enable-xf86bigfont Build XF86 Big Font extension (default: disabled)
|
||||
--disable-dpms Build DPMS extension (default: enabled)
|
||||
+ --enable-config-devd Build devd support (default: auto)
|
||||
--enable-config-udev Build udev support (default: auto)
|
||||
--enable-config-udev-kms
|
||||
Build udev kms support (default: auto)
|
||||
@@ -23280,9 +23284,13 @@ $as_echo "#define USE_ALPHA_PIO 1" >>con
|
||||
esac
|
||||
GLX_ARCH_DEFINES="-D__GLX_ALIGN64 -mieee"
|
||||
;;
|
||||
@ -9,19 +44,122 @@
|
||||
ARM_VIDEO=yes
|
||||
DEFAULT_INT10="stub"
|
||||
+ case $host_os in
|
||||
+ *freebsd*)
|
||||
+ $as_echo "#define USE_DEV_IO 1" >>confdefs.h
|
||||
+ ;;
|
||||
+ *freebsd*) $as_echo "#define USE_DEV_IO 1" >>confdefs.h
|
||||
+ ;;
|
||||
+ esac
|
||||
;;
|
||||
i*86)
|
||||
I386_VIDEO=yes
|
||||
@@ -26057,7 +26062,7 @@ fi
|
||||
case "x$XTRANS_SEND_FDS" in
|
||||
xauto)
|
||||
case "$host_os" in
|
||||
- linux*|solaris*)
|
||||
+ linux*|solaris*|freebsd*|dragonfly*|openbsd*)
|
||||
XTRANS_SEND_FDS=yes
|
||||
;;
|
||||
*)
|
||||
@@ -24053,6 +24061,13 @@ else
|
||||
DPMSExtension=yes
|
||||
fi
|
||||
|
||||
+# Check whether --enable-config-devd was given.
|
||||
+if test "${enable_config_devd+set}" = set; then :
|
||||
+ enableval=$enable_config_devd; CONFIG_DEVD=$enableval
|
||||
+else
|
||||
+ CONFIG_DEVD=auto
|
||||
+fi
|
||||
+
|
||||
# Check whether --enable-config-udev was given.
|
||||
if test "${enable_config_udev+set}" = set; then :
|
||||
enableval=$enable_config_udev; CONFIG_UDEV=$enableval
|
||||
@@ -25813,6 +25828,31 @@ if test "x$CONFIG_UDEV" = xyes && test "
|
||||
as_fn_error $? "Hotplugging through both libudev and hal not allowed" "$LINENO" 5
|
||||
fi
|
||||
|
||||
+if test "x$CONFIG_DEVD" = xauto; then
|
||||
+ case $host_os in
|
||||
+ *freebsd*)
|
||||
+ CONFIG_DEVD=yes
|
||||
+ ;;
|
||||
+ *)
|
||||
+ CONFIG_DEVD=no
|
||||
+ ;;
|
||||
+ esac
|
||||
+fi
|
||||
+ if test "x$CONFIG_DEVD" = xyes; then
|
||||
+ CONFIG_DEVD_TRUE=
|
||||
+ CONFIG_DEVD_FALSE='#'
|
||||
+else
|
||||
+ CONFIG_DEVD_TRUE='#'
|
||||
+ CONFIG_DEVD_FALSE=
|
||||
+fi
|
||||
+
|
||||
+if test "x$CONFIG_DEVD" = xyes; then
|
||||
+
|
||||
+$as_echo "#define CONFIG_DEVD 1" >>confdefs.h
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+if test "x$CONFIG_UDEV" != xno; then
|
||||
|
||||
pkg_failed=no
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UDEV" >&5
|
||||
@@ -25884,11 +25924,12 @@ else
|
||||
$as_echo "yes" >&6; }
|
||||
HAVE_LIBUDEV=yes
|
||||
fi
|
||||
-if test "x$CONFIG_UDEV" = xauto; then
|
||||
- CONFIG_UDEV="$HAVE_LIBUDEV"
|
||||
+ if test "x$CONFIG_UDEV" = xauto; then
|
||||
+ CONFIG_UDEV="$HAVE_LIBUDEV"
|
||||
|
||||
$as_echo "#define HAVE_LIBUDEV 1" >>confdefs.h
|
||||
|
||||
+ fi
|
||||
fi
|
||||
if test "x$CONFIG_UDEV" = xyes; then
|
||||
CONFIG_UDEV_TRUE=
|
||||
@@ -26132,7 +26173,14 @@ fi
|
||||
|
||||
if test "x$SYSTEMD_LOGIND" = xauto; then
|
||||
if test "x$HAVE_DBUS" = xyes -a "x$CONFIG_UDEV" = xyes ; then
|
||||
- SYSTEMD_LOGIND=yes
|
||||
+ case $host_os in
|
||||
+ *linux*)
|
||||
+ SYSTEMD_LOGIND=yes
|
||||
+ ;;
|
||||
+ *)
|
||||
+ SYSTEMD_LOGIND=no
|
||||
+ ;;
|
||||
+ esac
|
||||
else
|
||||
SYSTEMD_LOGIND=no
|
||||
fi
|
||||
@@ -32849,17 +32897,17 @@ DIX_CFLAGS="-DHAVE_DIX_CONFIG_H $XSERVER
|
||||
ac_config_commands="$ac_config_commands sdksyms"
|
||||
|
||||
|
||||
-if test "x$CONFIG_HAL" = xno && test "x$CONFIG_UDEV" = xno; then
|
||||
+if test "x$CONFIG_HAL" = xno && test "x$CONFIG_UDEV" = xno && test "x$CONFIG_DEVD" = xno; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
|
||||
- ***********************************************
|
||||
- Neither HAL nor udev backend will be enabled.
|
||||
+ *****************************************************
|
||||
+ Neither HAL, devd, nor udev backend will be enabled.
|
||||
Input device hotplugging will not be available!
|
||||
- ***********************************************" >&5
|
||||
+ *****************************************************" >&5
|
||||
$as_echo "$as_me: WARNING:
|
||||
- ***********************************************
|
||||
- Neither HAL nor udev backend will be enabled.
|
||||
+ *****************************************************
|
||||
+ Neither HAL, devd, nor udev backend will be enabled.
|
||||
Input device hotplugging will not be available!
|
||||
- ***********************************************" >&2;}
|
||||
+ *****************************************************" >&2;}
|
||||
fi
|
||||
|
||||
ac_config_files="$ac_config_files Makefile glx/Makefile include/Makefile composite/Makefile damageext/Makefile dbe/Makefile dix/Makefile doc/Makefile doc/dtrace/Makefile man/Makefile fb/Makefile glamor/Makefile record/Makefile config/Makefile mi/Makefile miext/Makefile miext/sync/Makefile miext/damage/Makefile miext/shadow/Makefile miext/rootless/Makefile os/Makefile pseudoramiX/Makefile randr/Makefile render/Makefile xkb/Makefile Xext/Makefile Xi/Makefile xfixes/Makefile exa/Makefile dri3/Makefile present/Makefile hw/Makefile hw/xfree86/Makefile hw/xfree86/Xorg.sh hw/xfree86/common/Makefile hw/xfree86/common/xf86Build.h hw/xfree86/ddc/Makefile hw/xfree86/dixmods/Makefile hw/xfree86/doc/Makefile hw/xfree86/dri/Makefile hw/xfree86/dri2/Makefile hw/xfree86/dri2/pci_ids/Makefile hw/xfree86/drivers/Makefile hw/xfree86/drivers/modesetting/Makefile hw/xfree86/exa/Makefile hw/xfree86/exa/man/Makefile hw/xfree86/fbdevhw/Makefile hw/xfree86/fbdevhw/man/Makefile hw/xfree86/glamor_egl/Makefile hw/xfree86/i2c/Makefile hw/xfree86/int10/Makefile hw/xfree86/loader/Makefile hw/xfree86/man/Makefile hw/xfree86/modes/Makefile hw/xfree86/os-support/Makefile hw/xfree86/os-support/bsd/Makefile hw/xfree86/os-support/bus/Makefile hw/xfree86/os-support/hurd/Makefile hw/xfree86/os-support/misc/Makefile hw/xfree86/os-support/linux/Makefile hw/xfree86/os-support/solaris/Makefile hw/xfree86/os-support/stub/Makefile hw/xfree86/parser/Makefile hw/xfree86/ramdac/Makefile hw/xfree86/shadowfb/Makefile hw/xfree86/vbe/Makefile hw/xfree86/vgahw/Makefile hw/xfree86/x86emu/Makefile hw/xfree86/utils/Makefile hw/xfree86/utils/man/Makefile hw/xfree86/utils/cvt/Makefile hw/xfree86/utils/gtf/Makefile hw/dmx/config/Makefile hw/dmx/config/man/Makefile hw/dmx/doc/Makefile hw/dmx/doxygen/doxygen.conf hw/dmx/doxygen/Makefile hw/dmx/examples/Makefile hw/dmx/input/Makefile hw/dmx/glxProxy/Makefile hw/dmx/Makefile hw/dmx/man/Makefile hw/vfb/Makefile hw/vfb/man/Makefile hw/xnest/Makefile hw/xnest/man/Makefile hw/xwin/Makefile hw/xwin/dri/Makefile hw/xwin/glx/Makefile hw/xwin/man/Makefile hw/xwin/winclipboard/Makefile hw/xquartz/Makefile hw/xquartz/GL/Makefile hw/xquartz/bundle/Makefile hw/xquartz/man/Makefile hw/xquartz/mach-startup/Makefile hw/xquartz/pbproxy/Makefile hw/xquartz/xpr/Makefile hw/kdrive/Makefile hw/kdrive/ephyr/Makefile hw/kdrive/ephyr/man/Makefile hw/kdrive/fake/Makefile hw/kdrive/fbdev/Makefile hw/kdrive/linux/Makefile hw/kdrive/src/Makefile hw/xwayland/Makefile test/Makefile test/xi1/Makefile test/xi2/Makefile xserver.ent xorg-server.pc"
|
||||
@@ -33122,6 +33170,10 @@ if test -z "${HAVE_SYSTEMD_DAEMON_TRUE}"
|
||||
as_fn_error $? "conditional \"HAVE_SYSTEMD_DAEMON\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
+if test -z "${CONFIG_DEVD_TRUE}" && test -z "${CONFIG_DEVD_FALSE}"; then
|
||||
+ as_fn_error $? "conditional \"CONFIG_DEVD\" was never defined.
|
||||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
+fi
|
||||
if test -z "${CONFIG_UDEV_TRUE}" && test -z "${CONFIG_UDEV_FALSE}"; then
|
||||
as_fn_error $? "conditional \"CONFIG_UDEV\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
|
@ -1,27 +0,0 @@
|
||||
From: Eric Anholt <eric@anholt.net>
|
||||
Date: Wed Mar 15 17:51:46 2017 -0700
|
||||
Subject: [PATCH]glamor: Fix dashed line rendering.
|
||||
Patch-mainline: fe0b297420fc1de8a7fab28457d0864b3182e967
|
||||
References: boo#1021803
|
||||
Signed-off-by: Max Staudt <mstaudt@suse.de>
|
||||
|
||||
We were binding the screen pixmap as the dash and sampling its alpha,
|
||||
which is usually just 1.0 (no dashing at all).
|
||||
|
||||
Please cherry-pick this to active stable branches.
|
||||
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
|
||||
|
||||
--- glamor/glamor_dash.c.orig 2016-07-18 19:08:16 UTC
|
||||
+++ glamor/glamor_dash.c
|
||||
@@ -146,7 +146,7 @@ glamor_dash_setup(DrawablePtr drawable, GCPtr gc)
|
||||
goto bail;
|
||||
|
||||
dash_pixmap = glamor_get_dash_pixmap(gc);
|
||||
- dash_priv = glamor_get_pixmap_private(pixmap);
|
||||
+ dash_priv = glamor_get_pixmap_private(dash_pixmap);
|
||||
|
||||
if (!GLAMOR_PIXMAP_PRIV_HAS_FBO(dash_priv))
|
||||
goto bail;
|
14
x11-servers/xorg-server/files/patch-hw_xfree86_Makefile.in
Normal file
14
x11-servers/xorg-server/files/patch-hw_xfree86_Makefile.in
Normal file
@ -0,0 +1,14 @@
|
||||
* Don't overwrite Xorg binary with Xorg.sh when SUID_WRAPPER_DIR == bindir
|
||||
* Instead, relink bin/X to Xorg.wrap rather than to Xorg (which isn't Xorg.sh)
|
||||
*
|
||||
--- hw/xfree86/Makefile.in.orig 2017-03-16 05:24:43 UTC
|
||||
+++ hw/xfree86/Makefile.in
|
||||
@@ -1156,7 +1156,7 @@ install-exec-hook:
|
||||
@INSTALL_SETUID_TRUE@ chmod u+s $(DESTDIR)$(bindir)/Xorg
|
||||
@SUID_WRAPPER_TRUE@ $(MKDIR_P) $(DESTDIR)$(SUID_WRAPPER_DIR)
|
||||
@SUID_WRAPPER_TRUE@ mv $(DESTDIR)$(bindir)/Xorg $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg
|
||||
-@SUID_WRAPPER_TRUE@ ${INSTALL} -m 755 Xorg.sh $(DESTDIR)$(bindir)/Xorg
|
||||
+@SUID_WRAPPER_TRUE@ (test ! -f $(DESTDIR)$(bindir)/Xorg && ${INSTALL} -m 755 Xorg.sh $(DESTDIR)$(bindir)/Xorg || cd $(DESTDIR)$(bindir) && rm -f X && $(LN_S) Xorg.wrap$(EXEEXT) X)
|
||||
@SUID_WRAPPER_TRUE@ -chown 0 $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.wrap && chmod u+s $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.wrap
|
||||
|
||||
uninstall-local:
|
@ -1,23 +1,27 @@
|
||||
--- hw/xfree86/common/xf86AutoConfig.c.orig 2017-01-11 20:00:58 UTC
|
||||
* Try using modesetting driver before falling back to scfb or vesa
|
||||
*
|
||||
* Use our scfb driver as fallback instead of Linux's fbdev
|
||||
*
|
||||
--- hw/xfree86/common/xf86AutoConfig.c.orig 2017-03-15 18:05:25 UTC
|
||||
+++ hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -276,7 +276,7 @@ listPossibleVideoDrivers(char *matches[]
|
||||
i += xf86PciMatchDriver(&matches[i], nmatches - i);
|
||||
@@ -294,7 +294,7 @@ listPossibleVideoDrivers(XF86MatchedDriv
|
||||
xf86PciMatchDriver(md);
|
||||
#endif
|
||||
|
||||
-#if defined(__linux__)
|
||||
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
matches[i++] = xnfstrdup("modesetting");
|
||||
xf86AddMatchedDriver(md, "modesetting");
|
||||
#endif
|
||||
|
||||
@@ -285,8 +285,10 @@ listPossibleVideoDrivers(char *matches[]
|
||||
if (i < (nmatches - 1)) {
|
||||
@@ -302,8 +302,10 @@ listPossibleVideoDrivers(XF86MatchedDriv
|
||||
/* Fallback to platform default frame buffer driver */
|
||||
#if !defined(__linux__) && defined(__sparc__)
|
||||
matches[i++] = xnfstrdup("wsfb");
|
||||
xf86AddMatchedDriver(md, "wsfb");
|
||||
-#else
|
||||
+#elif defined(__linux__)
|
||||
matches[i++] = xnfstrdup("fbdev");
|
||||
xf86AddMatchedDriver(md, "fbdev");
|
||||
+#elif defined(__FreeBSD__)
|
||||
+ matches[i++] = xnfstrdup("scfb");
|
||||
+ xf86AddMatchedDriver(md, "scfb");
|
||||
#endif
|
||||
}
|
||||
#endif /* !__sun */
|
||||
|
||||
|
@ -1,12 +1,14 @@
|
||||
--- hw/xfree86/common/xf86Config.c.orig 2016-07-19 17:14:30 UTC
|
||||
* Select the devd config backend if it is activated
|
||||
*
|
||||
--- hw/xfree86/common/xf86Config.c.orig 2017-03-15 18:05:25 UTC
|
||||
+++ hw/xfree86/common/xf86Config.c
|
||||
@@ -1410,13 +1410,16 @@ checkCoreInputDevices(serverLayoutPtr se
|
||||
@@ -1375,13 +1375,16 @@ checkCoreInputDevices(serverLayoutPtr se
|
||||
}
|
||||
|
||||
if (!xf86Info.forceInputDevices && !(foundPointer && foundKeyboard)) {
|
||||
-#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
|
||||
+#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || \
|
||||
+ defined(CONFIG_DEVD)
|
||||
+ defined(CONFIG_DEVD)
|
||||
const char *config_backend;
|
||||
|
||||
#if defined(CONFIG_HAL)
|
||||
|
@ -1,9 +1,11 @@
|
||||
--- hw/xfree86/common/xf86Globals.c.orig 2016-07-19 17:07:29 UTC
|
||||
* Include devd in the set of config backends
|
||||
*
|
||||
--- hw/xfree86/common/xf86Globals.c.orig 2017-03-15 18:05:25 UTC
|
||||
+++ hw/xfree86/common/xf86Globals.c
|
||||
@@ -122,7 +122,8 @@ xf86InfoRec xf86Info = {
|
||||
@@ -119,7 +119,8 @@ xf86InfoRec xf86Info = {
|
||||
.miscModInDevEnabled = TRUE,
|
||||
.miscModInDevAllowNonLocal = FALSE,
|
||||
.pmFlag = TRUE,
|
||||
.disableRandR = FALSE,
|
||||
.randRFrom = X_DEFAULT,
|
||||
-#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
|
||||
+#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || \
|
||||
+ defined(CONFIG_DEVD)
|
||||
|
@ -1,6 +1,8 @@
|
||||
--- hw/xfree86/common/xf86Xinput.c.orig 2016-07-19 17:07:29 UTC
|
||||
* Recognize devd backend as a source of auto-configured devices
|
||||
*
|
||||
--- hw/xfree86/common/xf86Xinput.c.orig 2017-03-15 18:05:25 UTC
|
||||
+++ hw/xfree86/common/xf86Xinput.c
|
||||
@@ -841,7 +841,7 @@ xf86NewInputDevice(InputInfoPtr pInfo, D
|
||||
@@ -871,7 +871,7 @@ xf86NewInputDevice(InputInfoPtr pInfo, D
|
||||
{
|
||||
InputDriverPtr drv = NULL;
|
||||
DeviceIntPtr dev = NULL;
|
||||
@ -9,7 +11,7 @@
|
||||
int rval;
|
||||
char *path = NULL;
|
||||
|
||||
@@ -996,6 +996,7 @@ NewInputDeviceRequest(InputOption *optio
|
||||
@@ -1034,6 +1034,7 @@ NewInputDeviceRequest(InputOption *optio
|
||||
if (strcmp(key, "_source") == 0 &&
|
||||
(strcmp(value, "server/hal") == 0 ||
|
||||
strcmp(value, "server/udev") == 0 ||
|
||||
|
@ -1,171 +0,0 @@
|
||||
--- hw/xfree86/dri2/pci_ids/i965_pci_ids.h.orig 2019-09-10 16:20:34 UTC
|
||||
+++ hw/xfree86/dri2/pci_ids/i965_pci_ids.h
|
||||
@@ -1,3 +1,4 @@
|
||||
+#ifndef IRIS
|
||||
CHIPSET(0x29A2, i965, "Intel(R) 965G")
|
||||
CHIPSET(0x2992, i965, "Intel(R) 965Q")
|
||||
CHIPSET(0x2982, i965, "Intel(R) 965G")
|
||||
@@ -91,6 +92,11 @@ CHIPSET(0x0F32, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0F33, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0157, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0155, byt, "Intel(R) Bay Trail")
|
||||
+CHIPSET(0x22B0, chv, "Intel(R) HD Graphics (Cherrytrail)")
|
||||
+CHIPSET(0x22B1, chv, "Intel(R) HD Graphics XXX (Braswell)") /* Overridden in brw_get_renderer_string */
|
||||
+CHIPSET(0x22B2, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
+CHIPSET(0x22B3, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
+#endif
|
||||
CHIPSET(0x1602, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x1606, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160A, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
@@ -112,6 +118,7 @@ CHIPSET(0x162E, bdw_gt3, "Intel(R) Broadwell GT3")
|
||||
CHIPSET(0x1902, skl_gt1, "Intel(R) HD Graphics 510 (Skylake GT1)")
|
||||
CHIPSET(0x1906, skl_gt1, "Intel(R) HD Graphics 510 (Skylake GT1)")
|
||||
CHIPSET(0x190A, skl_gt1, "Intel(R) Skylake GT1")
|
||||
+CHIPSET(0x190B, skl_gt1, "Intel(R) HD Graphics 510 (Skylake GT1)")
|
||||
CHIPSET(0x190E, skl_gt1, "Intel(R) Skylake GT1")
|
||||
CHIPSET(0x1912, skl_gt2, "Intel(R) HD Graphics 530 (Skylake GT2)")
|
||||
CHIPSET(0x1913, skl_gt2, "Intel(R) Skylake GT2f")
|
||||
@@ -122,42 +129,113 @@ CHIPSET(0x191A, skl_gt2, "Intel(R) Skylake GT2")
|
||||
CHIPSET(0x191B, skl_gt2, "Intel(R) HD Graphics 530 (Skylake GT2)")
|
||||
CHIPSET(0x191D, skl_gt2, "Intel(R) HD Graphics P530 (Skylake GT2)")
|
||||
CHIPSET(0x191E, skl_gt2, "Intel(R) HD Graphics 515 (Skylake GT2)")
|
||||
-CHIPSET(0x1921, skl_gt2, "Intel(R) Skylake GT2")
|
||||
-CHIPSET(0x1923, skl_gt3, "Intel(R) Iris Graphics 540 (Skylake GT3e)")
|
||||
-CHIPSET(0x1926, skl_gt3, "Intel(R) HD Graphics 535 (Skylake GT3)")
|
||||
+CHIPSET(0x1921, skl_gt2, "Intel(R) HD Graphics 520 (Skylake GT2)")
|
||||
+CHIPSET(0x1923, skl_gt3, "Intel(R) Skylake GT3e")
|
||||
+CHIPSET(0x1926, skl_gt3, "Intel(R) Iris Graphics 540 (Skylake GT3e)")
|
||||
CHIPSET(0x1927, skl_gt3, "Intel(R) Iris Graphics 550 (Skylake GT3e)")
|
||||
CHIPSET(0x192A, skl_gt4, "Intel(R) Skylake GT4")
|
||||
-CHIPSET(0x192B, skl_gt3, "Intel(R) Iris Graphics (Skylake GT3fe)")
|
||||
-CHIPSET(0x1932, skl_gt4, "Intel(R) Skylake GT4")
|
||||
-CHIPSET(0x193A, skl_gt4, "Intel(R) Skylake GT4")
|
||||
-CHIPSET(0x193B, skl_gt4, "Intel(R) Skylake GT4")
|
||||
-CHIPSET(0x193D, skl_gt4, "Intel(R) Skylake GT4")
|
||||
-CHIPSET(0x5902, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
-CHIPSET(0x5906, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
+CHIPSET(0x192B, skl_gt3, "Intel(R) Iris Graphics 555 (Skylake GT3e)")
|
||||
+CHIPSET(0x192D, skl_gt3, "Intel(R) Iris Graphics P555 (Skylake GT3e)")
|
||||
+CHIPSET(0x1932, skl_gt4, "Intel(R) Iris Pro Graphics 580 (Skylake GT4e)")
|
||||
+CHIPSET(0x193A, skl_gt4, "Intel(R) Iris Pro Graphics P580 (Skylake GT4e)")
|
||||
+CHIPSET(0x193B, skl_gt4, "Intel(R) Iris Pro Graphics 580 (Skylake GT4e)")
|
||||
+CHIPSET(0x193D, skl_gt4, "Intel(R) Iris Pro Graphics P580 (Skylake GT4e)")
|
||||
+CHIPSET(0x0A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
+CHIPSET(0x1A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
+CHIPSET(0x1A85, bxt_2x6, "Intel(R) HD Graphics (Broxton 2x6)")
|
||||
+CHIPSET(0x5A84, bxt, "Intel(R) HD Graphics 505 (Broxton)")
|
||||
+CHIPSET(0x5A85, bxt_2x6, "Intel(R) HD Graphics 500 (Broxton 2x6)")
|
||||
+CHIPSET(0x5902, kbl_gt1, "Intel(R) HD Graphics 610 (Kaby Lake GT1)")
|
||||
+CHIPSET(0x5906, kbl_gt1, "Intel(R) HD Graphics 610 (Kaby Lake GT1)")
|
||||
CHIPSET(0x590A, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
+CHIPSET(0x5908, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x590B, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x590E, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x5913, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
CHIPSET(0x5915, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
-CHIPSET(0x5917, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
-CHIPSET(0x5912, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
-CHIPSET(0x5916, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
-CHIPSET(0x591A, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
-CHIPSET(0x591B, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
-CHIPSET(0x591D, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
-CHIPSET(0x591E, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
+CHIPSET(0x5917, kbl_gt2, "Intel(R) UHD Graphics 620 (Kabylake GT2)")
|
||||
+CHIPSET(0x5912, kbl_gt2, "Intel(R) HD Graphics 630 (Kaby Lake GT2)")
|
||||
+CHIPSET(0x5916, kbl_gt2, "Intel(R) HD Graphics 620 (Kaby Lake GT2)")
|
||||
+CHIPSET(0x591A, kbl_gt2, "Intel(R) HD Graphics P630 (Kaby Lake GT2)")
|
||||
+CHIPSET(0x591B, kbl_gt2, "Intel(R) HD Graphics 630 (Kaby Lake GT2)")
|
||||
+CHIPSET(0x591D, kbl_gt2, "Intel(R) HD Graphics P630 (Kaby Lake GT2)")
|
||||
+CHIPSET(0x591E, kbl_gt2, "Intel(R) HD Graphics 615 (Kaby Lake GT2)")
|
||||
CHIPSET(0x5921, kbl_gt2, "Intel(R) Kabylake GT2F")
|
||||
-CHIPSET(0x5926, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
-CHIPSET(0x592A, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
-CHIPSET(0x592B, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
-CHIPSET(0x5932, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
-CHIPSET(0x593A, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
+CHIPSET(0x5923, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
+CHIPSET(0x5926, kbl_gt3, "Intel(R) Iris Plus Graphics 640 (Kaby Lake GT3e)")
|
||||
+CHIPSET(0x5927, kbl_gt3, "Intel(R) Iris Plus Graphics 650 (Kaby Lake GT3e)")
|
||||
CHIPSET(0x593B, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
-CHIPSET(0x593D, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
-CHIPSET(0x22B0, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
-CHIPSET(0x22B1, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
-CHIPSET(0x22B2, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
-CHIPSET(0x22B3, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
-CHIPSET(0x0A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
-CHIPSET(0x1A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
-CHIPSET(0x5A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
+CHIPSET(0x591C, kbl_gt2, "Intel(R) Amber Lake (Kabylake) GT2")
|
||||
+CHIPSET(0x87C0, kbl_gt2, "Intel(R) Amber Lake (Kabylake) GT2")
|
||||
+CHIPSET(0x87CA, cfl_gt2, "Intel(R) Amber Lake (Coffeelake) GT2")
|
||||
+CHIPSET(0x3184, glk, "Intel(R) UHD Graphics 605 (Geminilake)")
|
||||
+CHIPSET(0x3185, glk_2x6, "Intel(R) UHD Graphics 600 (Geminilake 2x6)")
|
||||
+CHIPSET(0x3E90, cfl_gt1, "Intel(R) UHD Graphics 610 (Coffeelake 2x6 GT1)")
|
||||
+CHIPSET(0x3E93, cfl_gt1, "Intel(R) UHD Graphics 610 (Coffeelake 2x6 GT1)")
|
||||
+CHIPSET(0x3E99, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
+CHIPSET(0x3E9C, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
+CHIPSET(0x3E91, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
+CHIPSET(0x3E92, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
+CHIPSET(0x3E96, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
+CHIPSET(0x3E98, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
+CHIPSET(0x3E9A, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
+CHIPSET(0x3E9B, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
+CHIPSET(0x3E94, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
+CHIPSET(0x3EA9, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
+CHIPSET(0x3EA5, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
+CHIPSET(0x3EA6, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
+CHIPSET(0x3EA7, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
+CHIPSET(0x3EA8, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
+CHIPSET(0x3EA1, cfl_gt1, "Intel(R) HD Graphics (Whiskey Lake 2x6 GT1)")
|
||||
+CHIPSET(0x3EA4, cfl_gt1, "Intel(R) HD Graphics (Whiskey Lake 3x8 GT1)")
|
||||
+CHIPSET(0x3EA0, cfl_gt2, "Intel(R) HD Graphics (Whiskey Lake 3x8 GT2)")
|
||||
+CHIPSET(0x3EA3, cfl_gt2, "Intel(R) HD Graphics (Whiskey Lake 3x8 GT2)")
|
||||
+CHIPSET(0x3EA2, cfl_gt3, "Intel(R) HD Graphics (Whiskey Lake 3x8 GT3)")
|
||||
+CHIPSET(0x9B21, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9BA0, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9BA2, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9BA4, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9BA5, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9BA8, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9BAA, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9BAB, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9BAC, cfl_gt1, "Intel(R) HD Graphics (Comet Lake 2x6 GT1)")
|
||||
+CHIPSET(0x9B41, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x9BC0, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x9BC2, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x9BC4, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x9BC5, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x9BC8, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x9BCA, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x9BCB, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x9BCC, cfl_gt2, "Intel(R) HD Graphics (Comet Lake 3x8 GT2)")
|
||||
+CHIPSET(0x5A49, cnl_2x8, "Intel(R) HD Graphics (Cannonlake 2x8 GT0.5)")
|
||||
+CHIPSET(0x5A4A, cnl_2x8, "Intel(R) HD Graphics (Cannonlake 2x8 GT0.5)")
|
||||
+CHIPSET(0x5A41, cnl_3x8, "Intel(R) HD Graphics (Cannonlake 3x8 GT1)")
|
||||
+CHIPSET(0x5A42, cnl_3x8, "Intel(R) HD Graphics (Cannonlake 3x8 GT1)")
|
||||
+CHIPSET(0x5A44, cnl_3x8, "Intel(R) HD Graphics (Cannonlake 3x8 GT1)")
|
||||
+CHIPSET(0x5A59, cnl_4x8, "Intel(R) HD Graphics (Cannonlake 4x8 GT1.5)")
|
||||
+CHIPSET(0x5A5A, cnl_4x8, "Intel(R) HD Graphics (Cannonlake 4x8 GT1.5)")
|
||||
+CHIPSET(0x5A5C, cnl_4x8, "Intel(R) HD Graphics (Cannonlake 4x8 GT1.5)")
|
||||
+CHIPSET(0x5A50, cnl_5x8, "Intel(R) HD Graphics (Cannonlake 5x8 GT2)")
|
||||
+CHIPSET(0x5A51, cnl_5x8, "Intel(R) HD Graphics (Cannonlake 5x8 GT2)")
|
||||
+CHIPSET(0x5A52, cnl_5x8, "Intel(R) HD Graphics (Cannonlake 5x8 GT2)")
|
||||
+CHIPSET(0x5A54, cnl_5x8, "Intel(R) HD Graphics (Cannonlake 5x8 GT2)")
|
||||
+CHIPSET(0x8A50, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
+CHIPSET(0x8A51, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
+CHIPSET(0x8A52, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
+CHIPSET(0x8A53, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
+CHIPSET(0x8A54, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
+CHIPSET(0x8A56, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
+CHIPSET(0x8A57, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
+CHIPSET(0x8A58, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
+CHIPSET(0x8A59, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
+CHIPSET(0x8A5A, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
+CHIPSET(0x8A5B, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
+CHIPSET(0x8A5C, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
+CHIPSET(0x8A5D, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
+CHIPSET(0x8A71, icl_1x8, "Intel(R) HD Graphics (Ice Lake 1x8 GT0.5)")
|
||||
+CHIPSET(0x4500, ehl_4x8, "Intel(R) HD Graphics (Elkhart Lake 4x8)")
|
||||
+CHIPSET(0x4571, ehl_4x8, "Intel(R) HD Graphics (Elkhart Lake 4x8)")
|
||||
+CHIPSET(0x4551, ehl_4x4, "Intel(R) HD Graphics (Elkhart Lake 4x4)")
|
||||
+CHIPSET(0x4541, ehl_2x4, "Intel(R) HD Graphics (Elkhart Lake 2x4)")
|
@ -1,6 +1,15 @@
|
||||
--- hw/xfree86/os-support/bsd/bsd_init.c.orig 2016-07-19 17:07:29 UTC
|
||||
--- hw/xfree86/os-support/bsd/bsd_init.c.orig 2017-03-15 18:05:25 UTC
|
||||
+++ hw/xfree86/os-support/bsd/bsd_init.c
|
||||
@@ -230,6 +230,9 @@ xf86OpenConsole()
|
||||
@@ -48,6 +48,8 @@ static int devConsoleFd = -1;
|
||||
#if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
|
||||
static int VTnum = -1;
|
||||
static int initialVT = -1;
|
||||
+static struct termios tty_attr; /* tty state to restore */
|
||||
+static int tty_mode; /* kbd mode to restore */
|
||||
#endif
|
||||
|
||||
#ifdef PCCONS_SUPPORT
|
||||
@@ -230,6 +232,9 @@ xf86OpenConsole()
|
||||
* Add cases for other *BSD that behave the same.
|
||||
*/
|
||||
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
||||
@ -10,3 +19,47 @@
|
||||
uname(&uts);
|
||||
i = atof(uts.release) * 100;
|
||||
if (i >= 310)
|
||||
@@ -253,6 +258,7 @@ xf86OpenConsole()
|
||||
#endif
|
||||
acquire_vt:
|
||||
if (!xf86Info.ShareVTs) {
|
||||
+ struct termios nTty;
|
||||
/*
|
||||
* now get the VT
|
||||
*/
|
||||
@@ -287,6 +293,26 @@ xf86OpenConsole()
|
||||
if (ioctl(xf86Info.consoleFd, KDSETMODE, KD_GRAPHICS) < 0) {
|
||||
FatalError("xf86OpenConsole: KDSETMODE KD_GRAPHICS failed");
|
||||
}
|
||||
+
|
||||
+ tcgetattr(xf86Info.consoleFd, &tty_attr);
|
||||
+ ioctl(xf86Info.consoleFd, KDGKBMODE, &tty_mode);
|
||||
+
|
||||
+ /* disable special keys */
|
||||
+ if (ioctl(xf86Info.consoleFd, KDSKBMODE, K_RAW) < 0) {
|
||||
+ FatalError("xf86OpenConsole: KDSKBMODE K_RAW failed (%s)",
|
||||
+ strerror(errno));
|
||||
+ }
|
||||
+
|
||||
+ nTty = tty_attr;
|
||||
+ nTty.c_iflag = IGNPAR | IGNBRK;
|
||||
+ nTty.c_oflag = 0;
|
||||
+ nTty.c_cflag = CREAD | CS8;
|
||||
+ nTty.c_lflag = 0;
|
||||
+ nTty.c_cc[VTIME] = 0;
|
||||
+ nTty.c_cc[VMIN] = 1;
|
||||
+ cfsetispeed(&nTty, 9600);
|
||||
+ cfsetospeed(&nTty, 9600);
|
||||
+ tcsetattr(xf86Info.consoleFd, TCSANOW, &nTty);
|
||||
}
|
||||
else { /* xf86Info.ShareVTs */
|
||||
close(xf86Info.consoleFd);
|
||||
@@ -594,6 +620,8 @@ xf86CloseConsole()
|
||||
case SYSCONS:
|
||||
case PCVT:
|
||||
ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT); /* Back to text mode */
|
||||
+ ioctl(xf86Info.consoleFd, KDSKBMODE, tty_mode);
|
||||
+ tcsetattr(xf86Info.consoleFd, TCSANOW, &tty_attr);
|
||||
if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) != -1) {
|
||||
VT.mode = VT_AUTO;
|
||||
ioctl(xf86Info.consoleFd, VT_SETMODE, &VT); /* dflt vt handling */
|
||||
|
@ -1,11 +0,0 @@
|
||||
Index: programs/Xserver/hw/xfree86/os-support/bsd/i386_video.c
|
||||
--- hw/xfree86/os-support/bsd/i386_video.c.orig 2016-07-15 16:18:11 UTC
|
||||
+++ hw/xfree86/os-support/bsd/i386_video.c
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "xf86Priv.h"
|
||||
|
||||
#include <errno.h>
|
||||
+#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#include "xf86_OSlib.h"
|
@ -0,0 +1,27 @@
|
||||
* Skip the detection of root rights requirement, the assumption that presence
|
||||
* of KMS drivers removes the root requirement is only valid for Linux
|
||||
*
|
||||
--- hw/xfree86/xorg-wrapper.c.orig 2017-03-15 18:05:25 UTC
|
||||
+++ hw/xfree86/xorg-wrapper.c
|
||||
@@ -188,9 +188,6 @@ static int on_console(int fd)
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
-#ifdef WITH_LIBDRM
|
||||
- struct drm_mode_card_res res;
|
||||
-#endif
|
||||
char buf[PATH_MAX];
|
||||
int i, r, fd;
|
||||
int kms_cards = 0;
|
||||
@@ -227,9 +224,10 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
-#ifdef WITH_LIBDRM
|
||||
+#if defined(WITH_LIBDRM) && defined(__linux__)
|
||||
/* Detect if we need root rights, except when overriden by the config */
|
||||
if (needs_root_rights == -1) {
|
||||
+ struct drm_mode_card_res res;
|
||||
for (i = 0; i < 16; i++) {
|
||||
snprintf(buf, sizeof(buf), DRM_DEV_NAME, DRM_DIR_NAME, i);
|
||||
fd = open(buf, O_RDWR);
|
14
x11-servers/xorg-server/files/patch-include_dix-config.h.in
Normal file
14
x11-servers/xorg-server/files/patch-include_dix-config.h.in
Normal file
@ -0,0 +1,14 @@
|
||||
* Add a define which will be toggled by configure when devd backend is activated
|
||||
*
|
||||
--- include/dix-config.h.in.orig 2017-03-15 18:05:25 UTC
|
||||
+++ include/dix-config.h.in
|
||||
@@ -433,6 +433,9 @@
|
||||
/* Support D-Bus */
|
||||
#undef HAVE_DBUS
|
||||
|
||||
+/* Use devd for input hotplug */
|
||||
+#undef CONFIG_DEVD
|
||||
+
|
||||
/* Use libudev for input hotplug */
|
||||
#undef CONFIG_UDEV
|
||||
|
@ -1,34 +0,0 @@
|
||||
From e751722a7b0c5b595794e60b054ade0b3f6cdb4d Mon Sep 17 00:00:00 2001
|
||||
From: Michal Srb <msrb@suse.com>
|
||||
Date: Fri, 7 Jul 2017 17:04:03 +0200
|
||||
Subject: os: Make sure big requests have sufficient length.
|
||||
|
||||
A client can send a big request where the 32B "length" field has value
|
||||
0. When the big request header is removed and the length corrected,
|
||||
the value will underflow to 0xFFFFFFFF. Functions processing the
|
||||
request later will think that the client sent much more data and may
|
||||
touch memory beyond the receive buffer.
|
||||
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
(cherry picked from commit 9c23685009aa96f4b861dcc5d2e01dbee00c4dd9)
|
||||
|
||||
diff --git a/os/io.c b/os/io.c
|
||||
index f80580c..70f07f3 100644
|
||||
--- os/io.c
|
||||
+++ os/io.c
|
||||
@@ -441,6 +441,11 @@ ReadRequestFromClient(ClientPtr client)
|
||||
if (!gotnow)
|
||||
AvailableInput = oc;
|
||||
if (move_header) {
|
||||
+ if (client->req_len < bytes_to_int32(sizeof(xBigReq) - sizeof(xReq))) {
|
||||
+ YieldControlDeath();
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
request = (xReq *) oci->bufptr;
|
||||
oci->bufptr += (sizeof(xBigReq) - sizeof(xReq));
|
||||
*(xReq *) oci->bufptr = *request;
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
17
x11-servers/xorg-server/files/patch-test_xtest.c
Normal file
17
x11-servers/xorg-server/files/patch-test_xtest.c
Normal file
@ -0,0 +1,17 @@
|
||||
--- test/xtest.c.orig 2019-04-30 16:40:02.828913000 -0700
|
||||
+++ test/xtest.c 2019-04-30 16:40:42.769713000 -0700
|
||||
@@ -59,10 +59,10 @@
|
||||
static void
|
||||
xtest_init_devices(void)
|
||||
{
|
||||
- ScreenRec screen = {0};
|
||||
- ClientRec server_client = {0};
|
||||
- WindowRec root = {0};
|
||||
- WindowOptRec optional = {0};
|
||||
+ ScreenRec screen = {{0}};
|
||||
+ ClientRec server_client = {{0}};
|
||||
+ WindowRec root = {{0}};
|
||||
+ WindowOptRec optional = {{0}};
|
||||
|
||||
/* random stuff that needs initialization */
|
||||
root.drawable.id = 0xab;
|
@ -1,6 +1,11 @@
|
||||
--- xkb/Makefile.in.orig 2017-01-19 15:20:42 UTC
|
||||
* Skip installing a README into a directory which is actually a symlink created
|
||||
* by another port. If this file is installed, then upon uninstall pkg will
|
||||
* delete the directory under the symlink, which would cause a reinstall to fail
|
||||
* as the target directory is not remade until reinstalling the other port
|
||||
*
|
||||
--- xkb/Makefile.in.orig 2017-03-16 05:24:43 UTC
|
||||
+++ xkb/Makefile.in
|
||||
@@ -878,7 +878,7 @@ info: info-am
|
||||
@@ -886,7 +886,7 @@ info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
|
13
x11-servers/xorg-server/files/xkb_Makefile.am
Normal file
13
x11-servers/xorg-server/files/xkb_Makefile.am
Normal file
@ -0,0 +1,13 @@
|
||||
* Skip installing a README into a directory which is actually a symlink created
|
||||
* by another port. If this file is installed, then upon uninstall pkg will
|
||||
* delete the directory under the symlink, which would cause a reinstall to fail
|
||||
* as the target directory is not remade until reinstalling the other port
|
||||
*
|
||||
--- xkb/Makefile.am.orig 2017-03-16 05:24:43 UTC
|
||||
+++ xkb/Makefile.am
|
||||
@@ -39,4 +39,4 @@ libxkbstubs_la_SOURCES = ddxVT.c ddxPriv
|
||||
EXTRA_DIST = xkbDflts.h xkbgeom.h xkb.h
|
||||
|
||||
xkbcompileddir = $(XKB_COMPILED_DIR)
|
||||
-dist_xkbcompiled_DATA = README.compiled
|
||||
+#dist_xkbcompiled_DATA = README.compiled
|
26
x11-servers/xorg-server/pkg-message
Normal file
26
x11-servers/xorg-server/pkg-message
Normal file
@ -0,0 +1,26 @@
|
||||
[
|
||||
{ type: install
|
||||
message: <<EOM
|
||||
Xorg-server has been installed.
|
||||
|
||||
If your kernel is compiled with the EVDEV_SUPPORT option enabled
|
||||
(default starting from FreeBSD 12.1) it is recommended to enable evdev mode in
|
||||
pointer device drivers like ums(4) and psm(4). This will give improvements like
|
||||
better tilt wheel support for mice and centralized gesture support via
|
||||
xf86-input-synaptics or libinput drivers for touchpads.
|
||||
|
||||
This is also needed for PS/2 devices to be properly detected by Xorg when
|
||||
moused service is disabled in /etc/rc.conf and kernel is compiled with
|
||||
EVDEV_SUPPORT.
|
||||
|
||||
To enable evdev in such a device, run the following:
|
||||
|
||||
# sysctl kern.evdev.rcpt_mask=6
|
||||
|
||||
To make it persistent across reboots, add the following to /etc/sysctl.conf:
|
||||
|
||||
kern.evdev.rcpt_mask=6
|
||||
|
||||
EOM
|
||||
}
|
||||
]
|
@ -1,6 +1,6 @@
|
||||
bin/X
|
||||
%%SUID%%@(,,4555) bin/Xorg
|
||||
%%NO_SUID%%bin/Xorg
|
||||
bin/Xorg
|
||||
%%SUID%%@(,,4555) bin/Xorg.wrap
|
||||
bin/cvt
|
||||
bin/gtf
|
||||
include/xorg/BT.h
|
||||
@ -54,6 +54,7 @@ include/xorg/geint.h
|
||||
include/xorg/glamor.h
|
||||
include/xorg/globals.h
|
||||
include/xorg/glx_extinit.h
|
||||
include/xorg/glxvndabi.h
|
||||
include/xorg/glyphstr.h
|
||||
include/xorg/hotplug.h
|
||||
include/xorg/i2c_def.h
|
||||
@ -114,6 +115,7 @@ include/xorg/validate.h
|
||||
include/xorg/vbe.h
|
||||
include/xorg/vbeModes.h
|
||||
include/xorg/vgaHW.h
|
||||
include/xorg/vndserver.h
|
||||
include/xorg/wfbrename.h
|
||||
include/xorg/window.h
|
||||
include/xorg/windowstr.h
|
||||
@ -124,6 +126,7 @@ include/xorg/xf86.h
|
||||
include/xorg/xf86Crtc.h
|
||||
include/xorg/xf86Cursor.h
|
||||
include/xorg/xf86DDC.h
|
||||
include/xorg/xf86MatchDrivers.h
|
||||
include/xorg/xf86Modes.h
|
||||
include/xorg/xf86Module.h
|
||||
include/xorg/xf86Opt.h
|
||||
@ -159,7 +162,7 @@ include/xorg/xkbstr.h
|
||||
include/xorg/xorg-server.h
|
||||
include/xorg/xorgVersion.h
|
||||
include/xorg/xserver-properties.h
|
||||
@comment include/xorg/xserver_poll.h
|
||||
include/xorg/xserver_poll.h
|
||||
include/xorg/xvdix.h
|
||||
include/xorg/xvmcext.h
|
||||
lib/xorg/modules/drivers/modesetting_drv.so
|
||||
@ -177,15 +180,18 @@ lib/xorg/modules/libwfb.so
|
||||
lib/xorg/protocol.txt
|
||||
libdata/pkgconfig/xorg-server.pc
|
||||
man/man1/Xorg.1.gz
|
||||
%%SUID%%man/man1/Xorg.wrap.1.gz
|
||||
man/man1/Xserver.1.gz
|
||||
man/man1/cvt.1.gz
|
||||
man/man1/gtf.1.gz
|
||||
man/man4/exa.4.gz
|
||||
man/man4/fbdevhw.4.gz
|
||||
man/man4/modesetting.4.gz
|
||||
%%SUID%%man/man5/Xwrapper.config.5.gz
|
||||
man/man5/xorg.conf.5.gz
|
||||
man/man5/xorg.conf.d.5.gz
|
||||
%%UDEV%%share/X11/xorg.conf.d/10-quirks.conf
|
||||
share/X11/xorg.conf.d/20-evdev-kbd.conf
|
||||
share/aclocal/xorg-server.m4
|
||||
@dir etc/X11/xorg.conf.d
|
||||
@dir %%FONTPATHD%%
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user