aboutsummaryrefslogtreecommitdiff
path: root/x11-servers
diff options
context:
space:
mode:
authorKoop Mast <kwm@FreeBSD.org>2014-04-24 11:43:11 +0000
committerKoop Mast <kwm@FreeBSD.org>2014-04-24 11:43:11 +0000
commit62378ea793c54875dfdf5830fbe91809152006a8 (patch)
treeb41db7b848a166bd8d575aadcf0b0acf4db669d6 /x11-servers
parent95060ed2f88ad5d97d457a65f8c2dc0b03be2585 (diff)
downloadports-62378ea793c54875dfdf5830fbe91809152006a8.tar.gz
ports-62378ea793c54875dfdf5830fbe91809152006a8.zip
Notes
Diffstat (limited to 'x11-servers')
-rw-r--r--x11-servers/xorg-server/Makefile13
-rw-r--r--x11-servers/xorg-server/files/extra-new-bad-impl38
2 files changed, 43 insertions, 8 deletions
diff --git a/x11-servers/xorg-server/Makefile b/x11-servers/xorg-server/Makefile
index 34a82f0b9d8e..d4273ec73284 100644
--- a/x11-servers/xorg-server/Makefile
+++ b/x11-servers/xorg-server/Makefile
@@ -35,10 +35,11 @@ OPTIONS_EXCLUDE_sparc64= HAL
.if defined(WITH_NEW_XORG)
XORG_VERSION= 1.12.4
-XORG_REVISION= 6
+XORG_REVISION= 7
PLIST_SUB+= OLD="@comment " NEW=""
EXTRA_PATCHES+= ${FILESDIR}/extra-clang \
${FILESDIR}/extra-configure \
+ ${FILESDIR}/extra-new-bad-impl \
${FILESDIR}/extra-new-dix_dixfonts.c
.else
XORG_VERSION= 1.7.7
@@ -69,6 +70,7 @@ CONFIGURE_ARGS?=--disable-dmx --disable-xvfb --disable-xnest \
--without-xmlto --disable-docs --disable-devel-docs \
--localstatedir=/var --without-dtrace --disable-xephyr \
--enable-record=yes
+INSTALL_TARGET= install-strip
.if ${SLAVE_PORT} == "no"
SUB_FILES= pkg-install pkg-deinstall
@@ -104,11 +106,11 @@ CONFIGURE_ARGS+= --enable-aiglx=yes
CONFIGURE_ARGS+= --enable-aiglx=no
.endif
+# We handle Xorg setuid in the plist. This allows to build xorg-server as a user
+CONFIGURE_ARGS+=--enable-install-setuid=no
.if ${PORT_OPTIONS:MSUID}
-CONFIGURE_ARGS+=--enable-install-setuid=yes
PLIST_SUB+= SUID=""
.else
-CONFIGURE_ARGS+=--enable-install-setuid=no
PLIST_SUB+= SUID="@comment "
.endif
@@ -193,11 +195,6 @@ post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/.xorg
${INSTALL_LIB} ${WRKSRC}/hw/xfree86/dixmods/.libs/libglx.so \
${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/.xorg/
- @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/xorg/modules/*.so
-.if !defined(WITH_NEW_XORG)
- @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/*.so
-.endif
- @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/xorg/modules/multimedia/*.so
.if defined(WITH_NEW_XORG)
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/X11/xorg.conf.d
diff --git a/x11-servers/xorg-server/files/extra-new-bad-impl b/x11-servers/xorg-server/files/extra-new-bad-impl
new file mode 100644
index 000000000000..d15ee84fa700
--- /dev/null
+++ b/x11-servers/xorg-server/files/extra-new-bad-impl
@@ -0,0 +1,38 @@
+Fix BadImplemented triggered in GDK 3
+
+Lead:
+https://bbs.archlinux.org/viewtopic.php?id=162012
+Debian bug:
+http://lists.debian.org/debian-x/2012/12/msg00133.html
+
+--- Xi/xiselectev.c.orig 2012-05-17 19:09:01.000000000 +0200
++++ Xi/xiselectev.c 2012-12-18 10:29:38.804469850 +0100
+@@ -175,17 +175,24 @@
+ if (inputMasks)
+ iclient = inputMasks->inputClients;
+ for (; iclient; iclient = iclient->next) {
+- DeviceIntPtr dummy;
++ DeviceIntPtr devTest;
++ DeviceIntRec dummyTest;
+
+ if (CLIENT_ID(iclient->resource) == client->index)
+ continue;
+
+- dixLookupDevice(&dummy, evmask->deviceid, serverClient,
++ if (evmask->deviceid == XIAllDevices ||
++ evmask->deviceid == XIAllMasterDevices) {
++ dummyTest.id = evmask->deviceid;
++ devTest = &dummyTest;
++ }
++ else
++ dixLookupDevice(&devTest, evmask->deviceid, serverClient,
+ DixReadAccess);
+- if (!dummy)
++ if (!devTest)
+ return BadImplementation; /* this shouldn't happen */
+
+- if (xi2mask_isset(iclient->xi2mask, dummy, XI_TouchBegin))
++ if (xi2mask_isset(iclient->xi2mask, devTest, XI_TouchBegin))
+ return BadAccess;
+ }
+ }