[Midnightbsd-cvs] mports [17055] U trunk/x11-servers/xorg-server/files: update xorg server patchset

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Sep 13 22:47:49 EDT 2014


Revision: 17055
          http://svnweb.midnightbsd.org/mports/?rev=17055
Author:   laffer1
Date:     2014-09-13 22:47:48 -0400 (Sat, 13 Sep 2014)
Log Message:
-----------
update xorg server patchset

Modified Paths:
--------------
    trunk/x11-servers/xorg-server/Makefile
    trunk/x11-servers/xorg-server/files/extra-clang

Added Paths:
-----------
    trunk/x11-servers/xorg-server/files/extra-Xext-xace.c
    trunk/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-common-xf86Config.c
    trunk/x11-servers/xorg-server/files/extra-config_devd.c
    trunk/x11-servers/xorg-server/files/extra-configure
    trunk/x11-servers/xorg-server/files/extra-dix_events.c
    trunk/x11-servers/xorg-server/files/extra-new-bad-impl
    trunk/x11-servers/xorg-server/files/extra-new-dix_dixfonts.c
    trunk/x11-servers/xorg-server/files/extra-old-dix_dixfonts.c
    trunk/x11-servers/xorg-server/files/patch-xkb_Makefile.in

Removed Paths:
-------------
    trunk/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-os-support-bsd-sparc64_video.c
    trunk/x11-servers/xorg-server/files/extra-arch-ia64
    trunk/x11-servers/xorg-server/files/extra-arch-powerpc
    trunk/x11-servers/xorg-server/files/extra-servermd.h
    trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-common-xf86Config.c

Property Changed:
----------------
    trunk/x11-servers/xorg-server/files/extra-Xserver-os-xprintf.c
    trunk/x11-servers/xorg-server/files/extra-clang
    trunk/x11-servers/xorg-server/files/extra-include_eventstr.h
    trunk/x11-servers/xorg-server/files/extra-new-arch-i386
    trunk/x11-servers/xorg-server/files/extra-old-arch-i386
    trunk/x11-servers/xorg-server/files/extra-os-utils.c
    trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-i386_video.c
    trunk/x11-servers/xorg-server/files/patch-xorgconf.cpp
    trunk/x11-servers/xorg-server/files/pkg-deinstall.in
    trunk/x11-servers/xorg-server/files/pkg-install.in

Modified: trunk/x11-servers/xorg-server/Makefile
===================================================================
--- trunk/x11-servers/xorg-server/Makefile	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/Makefile	2014-09-14 02:47:48 UTC (rev 17055)
@@ -11,9 +11,10 @@
 
 MAINTAINER=	ports at MidnightBSD.org
 COMMENT?=	X.Org X server and related programs
+
 LICENSE?=	mit
 
-LIB_DEPENDS=	drm:${PORTSDIR}/graphics/libdrm
+LIB_DEPENDS=	libdrm.so:${PORTSDIR}/graphics/libdrm
 RUN_DEPENDS=	xkeyboard-config>=2.5:${PORTSDIR}/x11/xkeyboard-config \
 		xkbcomp:${PORTSDIR}/x11/xkbcomp
 
@@ -20,24 +21,42 @@
 XORG_CAT=	xserver
 SLAVE_PORT?=	no
 
+OPTIONS_DEFINE=	AIGLX SUID
+OPTIONS_RADIO=	CONF
+OPTIONS_RADIO_CONF= HAL DEVD
+AIGLX_DESC=	Compile with Accelerated Indirect GLX support
+SUID_DESC=	Install the Xorg server with setuid bit set
+HAL_DESC=	Compile with HAL config support
+DEVD_DESC=	Use devd for autoconfiguration of input devices (experimental)
+OPTIONS_DEFAULT=AIGLX SUID HAL
+
+OPTIONS_EXCLUDE_sparc64=	HAL
+
+.include <bsd.mport.options.mk>
+
 .if defined(WITH_NEW_XORG)
 XORG_VERSION=	1.12.4
-XORG_REVISION=	0
+XORG_REVISION=	1
 PLIST_SUB+=	OLD="@comment " NEW=""
-EXTRA_PATCHES+=	${FILESDIR}/extra-clang
+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
-XORG_REVISION=	6
+XORG_REVISION=	7
 PLIST_SUB+=	OLD="" NEW="@comment "
-EXTRA_PATCHES+=	${FILESDIR}/extra-include_eventstr.h \
+EXTRA_PATCHES+=	${FILESDIR}/extra-Xext-xace.c \
+		${FILESDIR}/extra-Xserver-os-xprintf.c \
+		${FILESDIR}/extra-include_eventstr.h \
 		${FILESDIR}/extra-os-utils.c \
-		${FILESDIR}/extra-Xserver-hw-xfree86-os-support-bsd-sparc64_video.c \
-		${FILESDIR}/extra-Xserver-os-xprintf.c \
-		${FILESDIR}/extra-servermd.h
+		${FILESDIR}/extra-dix_events.c \
+		${FILESDIR}/extra-Xserver-hw-xfree86-common-xf86Config.c \
+		${FILESDIR}/extra-old-dix_dixfonts.c
 .endif
 
-USE_BZIP2=	yes
-USE_GMAKE=	yes
+USES=		gmake libtool:keepla perl5 tar:bzip2
+USE_PERL5=	build
 USE_GL=		gl
 USE_XORG?=	xf86driproto glproto xdmcp x11 xkbfile xxf86misc xxf86vm xaw7 \
 		xmu xt xpm xext randrproto renderproto fixesproto damageproto \
@@ -47,27 +66,15 @@
 		videoproto compositeproto trapproto recordproto xineramaproto \
 		xinerama evieproto xfont fontenc xkbui pixman pciaccess
 
-MAKE_JOBS_UNSAFE=	yes
 USE_OPENSSL=	yes
-USE_PERL5_BUILD=yes
 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
-MAN1=		Xorg.1 \
-		Xserver.1 \
-		cvt.1 \
-		gtf.1
-MAN4=		exa.4 \
-		fbdevhw.4
-MAN5=		xorg.conf.5
-
-.if defined(WITH_NEW_XORG)
-MAN5+=		xorg.conf.d.5
-.endif
 .else
 # for slave ports we need to overwrite PLIST, so it doesn't overwrite
 # PLIST_FILES, with the masterport plist.
@@ -74,14 +81,6 @@
 PLIST=		${.CURDIR}/pkg-plist
 .endif
 
-OPTIONS_DEFINE=	AIGLX SUID HAL
-AIGLX_DESC=	Compile with Accelerated Indirect GLX support
-SUID_DESC=	Install the Xorg server with setuid bit set
-HAL_DESC=	Compile with HAL config support
-OPTIONS_DEFAULT=	AIGLX SUID HAL
-
-OPTIONS_EXCLUDE_sparc64=	HAL
-
 .include <bsd.port.pre.mk>
 
 .if defined(WITH_OPENSSL_BASE)
@@ -92,12 +91,16 @@
 .endif
 
 .if ${PORT_OPTIONS:MHAL}
-LIB_DEPENDS+=	hal:${PORTSDIR}/sysutils/hal
+LIB_DEPENDS+=	libhal.so:${PORTSDIR}/sysutils/hal
 CONFIGURE_ARGS+=	--enable-config-hal=yes
 .else
 CONFIGURE_ARGS+=	--enable-config-hal=no
 .endif
 
+.if ${PORT_OPTIONS:MDEVD}
+EXTRA_PATCHES+=		${FILESDIR}/extra-config_devd.c
+.endif
+
 .if ${PORT_OPTIONS:MAIGLX}
 CONFIGURE_ARGS+=	--enable-aiglx=yes
 .else
@@ -104,10 +107,12 @@
 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
 
 .if ${ARCH} == i386
@@ -163,6 +168,17 @@
 	@${REINPLACE_CMD} -e 's|@GLX_TRUE at GLXMODS =|@GLX_BOGUS at GLXMODS =|g' \
 		-e 's|^LTLIBRARIES = |LTLIBRARIES = libglx.la |g' \
 		${WRKSRC}/hw/xfree86/dixmods/Makefile.in
+.if ${PORT_OPTIONS:MDEVD}
+	@${ECHO_CMD} -e "\nint config_devd_init(void);\nvoid config_devd_fini(void);" \
+		>> ${WRKSRC}/config/config-backends.h
+.endif
+ 
+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
+.endif
 
 .if ${SLAVE_PORT} == "no"
 pre-install:

Added: trunk/x11-servers/xorg-server/files/extra-Xext-xace.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-Xext-xace.c	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/extra-Xext-xace.c	2014-09-14 02:47:48 UTC (rev 17055)
@@ -0,0 +1,229 @@
+From 6dae7f3792611aace1df0cca63bf50c50d93de43 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Tue, 10 Aug 2010 18:30:20 +0000
+Subject: xace: Invalid reference to out-of-scope data.
+
+The callback data passed by reference to the hook was allocated on stack
+within the scope of the case statement. The compiler is free to reuse
+any of that stack space whilst making the function call so we may end up
+passing garbage into the callback.
+
+References:
+
+  Bug 18451 - Xorg server 1.5.2 SEGV during XFixesGetCursorImage()
+  https://bugs.freedesktop.org/show_bug.cgi?id=18451
+
+v2: Drop the unrelated hunk that snuck in when ammending the commit
+message.
+
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+---
+diff --git a/Xext/xace.c b/Xext/xace.c
+index e10d837..c757cad 100644
+--- Xext/xace.c
++++ Xext/xace.c
+@@ -87,7 +87,18 @@ void XaceHookAuditEnd(ClientPtr ptr, int result)
+  */
+ int XaceHook(int hook, ...)
+ {
+-    pointer calldata;	/* data passed to callback */
++    union {
++	XaceResourceAccessRec res;
++	XaceDeviceAccessRec dev;
++	XaceSendAccessRec send;
++	XaceReceiveAccessRec recv;
++	XaceClientAccessRec client;
++	XaceExtAccessRec ext;
++	XaceServerAccessRec server;
++	XaceScreenAccessRec screen;
++	XaceAuthAvailRec auth;
++	XaceKeyAvailRec key;
++    } u;
+     int *prv = NULL;	/* points to return value from callback */
+     va_list ap;		/* argument list */
+     va_start(ap, hook);
+@@ -99,117 +110,86 @@ int XaceHook(int hook, ...)
+      */
+     switch (hook)
+     {
+-	case XACE_RESOURCE_ACCESS: {
+-	    XaceResourceAccessRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.id = va_arg(ap, XID);
+-	    rec.rtype = va_arg(ap, RESTYPE);
+-	    rec.res = va_arg(ap, pointer);
+-	    rec.ptype = va_arg(ap, RESTYPE);
+-	    rec.parent = va_arg(ap, pointer);
+-	    rec.access_mode = va_arg(ap, Mask);
+-	    rec.status = Success; /* default allow */
+-	    calldata = &rec;
+-	    prv = &rec.status;
++	case XACE_RESOURCE_ACCESS:
++	    u.res.client = va_arg(ap, ClientPtr);
++	    u.res.id = va_arg(ap, XID);
++	    u.res.rtype = va_arg(ap, RESTYPE);
++	    u.res.res = va_arg(ap, pointer);
++	    u.res.ptype = va_arg(ap, RESTYPE);
++	    u.res.parent = va_arg(ap, pointer);
++	    u.res.access_mode = va_arg(ap, Mask);
++	    u.res.status = Success; /* default allow */
++	    prv = &u.res.status;
+ 	    break;
+-	}
+-	case XACE_DEVICE_ACCESS: {
+-	    XaceDeviceAccessRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.dev = va_arg(ap, DeviceIntPtr);
+-	    rec.access_mode = va_arg(ap, Mask);
+-	    rec.status = Success; /* default allow */
+-	    calldata = &rec;
+-	    prv = &rec.status;
++	case XACE_DEVICE_ACCESS:
++	    u.dev.client = va_arg(ap, ClientPtr);
++	    u.dev.dev = va_arg(ap, DeviceIntPtr);
++	    u.dev.access_mode = va_arg(ap, Mask);
++	    u.dev.status = Success; /* default allow */
++	    prv = &u.dev.status;
+ 	    break;
+-	}
+-	case XACE_SEND_ACCESS: {
+-	    XaceSendAccessRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.dev = va_arg(ap, DeviceIntPtr);
+-	    rec.pWin = va_arg(ap, WindowPtr);
+-	    rec.events = va_arg(ap, xEventPtr);
+-	    rec.count = va_arg(ap, int);
+-	    rec.status = Success; /* default allow */
+-	    calldata = &rec;
+-	    prv = &rec.status;
++	case XACE_SEND_ACCESS:
++	    u.send.client = va_arg(ap, ClientPtr);
++	    u.send.dev = va_arg(ap, DeviceIntPtr);
++	    u.send.pWin = va_arg(ap, WindowPtr);
++	    u.send.events = va_arg(ap, xEventPtr);
++	    u.send.count = va_arg(ap, int);
++	    u.send.status = Success; /* default allow */
++	    prv = &u.send.status;
+ 	    break;
+-	}
+-	case XACE_RECEIVE_ACCESS: {
+-	    XaceReceiveAccessRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.pWin = va_arg(ap, WindowPtr);
+-	    rec.events = va_arg(ap, xEventPtr);
+-	    rec.count = va_arg(ap, int);
+-	    rec.status = Success; /* default allow */
+-	    calldata = &rec;
+-	    prv = &rec.status;
++	case XACE_RECEIVE_ACCESS:
++	    u.recv.client = va_arg(ap, ClientPtr);
++	    u.recv.pWin = va_arg(ap, WindowPtr);
++	    u.recv.events = va_arg(ap, xEventPtr);
++	    u.recv.count = va_arg(ap, int);
++	    u.recv.status = Success; /* default allow */
++	    prv = &u.recv.status;
+ 	    break;
+-	}
+-	case XACE_CLIENT_ACCESS: {
+-	    XaceClientAccessRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.target = va_arg(ap, ClientPtr);
+-	    rec.access_mode = va_arg(ap, Mask);
+-	    rec.status = Success; /* default allow */
+-	    calldata = &rec;
+-	    prv = &rec.status;
++	case XACE_CLIENT_ACCESS:
++	    u.client.client = va_arg(ap, ClientPtr);
++	    u.client.target = va_arg(ap, ClientPtr);
++	    u.client.access_mode = va_arg(ap, Mask);
++	    u.client.status = Success; /* default allow */
++	    prv = &u.client.status;
+ 	    break;
+-	}
+-	case XACE_EXT_ACCESS: {
+-	    XaceExtAccessRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.ext = va_arg(ap, ExtensionEntry*);
+-	    rec.access_mode = DixGetAttrAccess;
+-	    rec.status = Success; /* default allow */
+-	    calldata = &rec;
+-	    prv = &rec.status;
++	case XACE_EXT_ACCESS:
++	    u.ext.client = va_arg(ap, ClientPtr);
++	    u.ext.ext = va_arg(ap, ExtensionEntry*);
++	    u.ext.access_mode = DixGetAttrAccess;
++	    u.ext.status = Success; /* default allow */
++	    prv = &u.ext.status;
+ 	    break;
+-	}
+-	case XACE_SERVER_ACCESS: {
+-	    XaceServerAccessRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.access_mode = va_arg(ap, Mask);
+-	    rec.status = Success; /* default allow */
+-	    calldata = &rec;
+-	    prv = &rec.status;
++	case XACE_SERVER_ACCESS:
++	    u.server.client = va_arg(ap, ClientPtr);
++	    u.server.access_mode = va_arg(ap, Mask);
++	    u.server.status = Success; /* default allow */
++	    prv = &u.server.status;
+ 	    break;
+-	}
+ 	case XACE_SCREEN_ACCESS:
+-	case XACE_SCREENSAVER_ACCESS: {
+-	    XaceScreenAccessRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.screen = va_arg(ap, ScreenPtr);
+-	    rec.access_mode = va_arg(ap, Mask);
+-	    rec.status = Success; /* default allow */
+-	    calldata = &rec;
+-	    prv = &rec.status;
++	case XACE_SCREENSAVER_ACCESS:
++	    u.screen.client = va_arg(ap, ClientPtr);
++	    u.screen.screen = va_arg(ap, ScreenPtr);
++	    u.screen.access_mode = va_arg(ap, Mask);
++	    u.screen.status = Success; /* default allow */
++	    prv = &u.screen.status;
+ 	    break;
+-	}
+-	case XACE_AUTH_AVAIL: {
+-	    XaceAuthAvailRec rec;
+-	    rec.client = va_arg(ap, ClientPtr);
+-	    rec.authId = va_arg(ap, XID);
+-	    calldata = &rec;
++	case XACE_AUTH_AVAIL:
++	    u.auth.client = va_arg(ap, ClientPtr);
++	    u.auth.authId = va_arg(ap, XID);
+ 	    break;
+-	}
+-	case XACE_KEY_AVAIL: {
+-	    XaceKeyAvailRec rec;
+-	    rec.event = va_arg(ap, xEventPtr);
+-	    rec.keybd = va_arg(ap, DeviceIntPtr);
+-	    rec.count = va_arg(ap, int);
+-	    calldata = &rec;
++	case XACE_KEY_AVAIL:
++	    u.key.event = va_arg(ap, xEventPtr);
++	    u.key.keybd = va_arg(ap, DeviceIntPtr);
++	    u.key.count = va_arg(ap, int);
+ 	    break;
+-	}
+-	default: {
++	default:
+ 	    va_end(ap);
+ 	    return 0;	/* unimplemented hook number */
+-	}
+     }
+     va_end(ap);
+  
+     /* call callbacks and return result, if any. */
+-    CallCallbacks(&XaceHooks[hook], calldata);
++    CallCallbacks(&XaceHooks[hook], &u);
+     return prv ? *prv : Success;
+ }
+ 
+--
+cgit v0.9.0.2-2-gbebe

Added: trunk/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-common-xf86Config.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-common-xf86Config.c	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-common-xf86Config.c	2014-09-14 02:47:48 UTC (rev 17055)
@@ -0,0 +1,11 @@
+--- hw/xfree86/common/xf86Config.c.orig	Fri Jun 23 12:32:32 2006
++++ hw/xfree86/common/xf86Config.c	Fri Jun 23 12:32:46 2006
+@@ -1042,7 +1042,7 @@
+     else
+ 	xf86Info.estimateSizesAggressively = 0;
+ 
+-    xf86Info.aiglx = TRUE;
++    xf86Info.aiglx = FALSE;
+     xf86Info.aiglxFrom = X_DEFAULT;
+     if (xf86GetOptValBool(FlagOptions, FLAG_AIGLX, &value)) {
+ 	xf86Info.aiglx = value;

Deleted: trunk/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-os-support-bsd-sparc64_video.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-os-support-bsd-sparc64_video.c	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-os-support-bsd-sparc64_video.c	2014-09-14 02:47:48 UTC (rev 17055)
@@ -1,13 +0,0 @@
---- hw/xfree86/os-support/bsd/sparc64_video.c.orig	2008-10-02 21:01:25.000000000 +0000
-+++ hw/xfree86/os-support/bsd/sparc64_video.c	2009-03-29 19:55:40.000000000 +0000
-@@ -52,6 +52,10 @@
- 	pVidMem->mapMem = sparc64MapVidMem;
- 	pVidMem->unmapMem = sparc64UnmapVidMem;
- 	pVidMem->initialised = TRUE;
-+
-+#if defined(__FreeBSD__)
-+	pci_system_init_dev_mem(xf86Info.screenFd);
-+#endif
- }
- 
- static pointer

Index: trunk/x11-servers/xorg-server/files/extra-Xserver-os-xprintf.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-Xserver-os-xprintf.c	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-Xserver-os-xprintf.c	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/extra-Xserver-os-xprintf.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Deleted: trunk/x11-servers/xorg-server/files/extra-arch-ia64
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-arch-ia64	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-arch-ia64	2014-09-14 02:47:48 UTC (rev 17055)
@@ -1,221 +0,0 @@
---- configure.dist	2009-06-18 17:05:59.000000000 -0700
-+++ configure	2009-06-18 17:08:47.000000000 -0700
-@@ -1097,6 +1097,8 @@
- SPARC64_VIDEO_TRUE
- PPC_VIDEO_FALSE
- PPC_VIDEO_TRUE
-+IA64_VIDEO_FALSE
-+IA64_VIDEO_TRUE
- I386_VIDEO_FALSE
- I386_VIDEO_TRUE
- ARM_VIDEO_FALSE
-@@ -19134,6 +19136,7 @@
- 	GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
- 	;;
-   ia64*)
-+	IA64_VIDEO=yes
-   	GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
- 	;;
-   s390*)
-@@ -19166,6 +19169,14 @@
-   I386_VIDEO_FALSE=
- fi
- 
-+ if test "x$IA64_VIDEO" = xyes; then
-+  IA64_VIDEO_TRUE=
-+  IA64_VIDEO_FALSE='#'
-+else
-+  IA64_VIDEO_TRUE='#'
-+  IA64_VIDEO_FALSE=
-+fi
-+
-  if test "x$PPC_VIDEO" = xyes; then
-   PPC_VIDEO_TRUE=
-   PPC_VIDEO_FALSE='#'
---- hw/xfree86/common/compiler.h.orig	2011-06-11 18:55:47.000000000 +0200
-+++ hw/xfree86/common/compiler.h	2011-07-21 20:34:44.000000000 +0200
-@@ -397,12 +397,10 @@
- #include <machine/pio.h>
- #endif /* __NetBSD__ */
- 
--#   elif defined(linux) && defined(__ia64__) 
-+#   elif (defined(linux) || defined(__FreeBSD__)) && defined(__ia64__) 
-  
- #    include <inttypes.h>
- 
--#    include <sys/io.h>
--
- #    undef outb
- #    undef outw
- #    undef outl
---- hw/xfree86/os-support/bsd/Makefile.in.dist	2009-06-18 17:45:13.000000000 -0700
-+++ hw/xfree86/os-support/bsd/Makefile.in	2009-06-18 17:45:19.000000000 -0700
-@@ -63,6 +63,7 @@
- @ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@I386_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SPARC64_VIDEO_TRUE at am__objects_1 = sparc64_video.lo \
- @ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@I386_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@	ioperm_noop.lo
- @ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@I386_VIDEO_FALSE@@PPC_VIDEO_TRUE at am__objects_1 = ppc_video.lo
-+ at IA64_VIDEO_TRUE@am__objects_1 = ia64_video.lo
- @ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@I386_VIDEO_TRUE at am__objects_1 = i386_video.lo
- @ALPHA_VIDEO_FALSE@@ARM_VIDEO_TRUE at am__objects_1 = arm_video.lo
- @ALPHA_VIDEO_TRUE at am__objects_1 = alpha_video.lo bsd_ev56.lo \
-@@ -393,6 +394,7 @@
- 
- @ARM_VIDEO_TRUE at ARCH_SOURCES = arm_video.c
- @I386_VIDEO_TRUE at ARCH_SOURCES = i386_video.c
-+ at IA64_VIDEO_TRUE@ARCH_SOURCES = ia64_video.c
- @PPC_VIDEO_TRUE at ARCH_SOURCES = ppc_video.c
- 
- # Cheat here and piggyback other sparc64 bits on SPARC64_VIDEO.
---- /dev/null	2009-06-18 18:27:23.000000000 -0700
-+++ hw/xfree86/os-support/bsd/ia64_video.c	2009-06-18 18:26:02.000000000 -0700
-@@ -0,0 +1,150 @@
-+#ifdef HAVE_XORG_CONFIG_H
-+#include <xorg-config.h>
-+#endif
-+
-+#include <X11/X.h>
-+#include "xf86.h"
-+#include "xf86Priv.h"
-+
-+#include "xf86_OSlib.h"
-+#include "xf86OSpriv.h"
-+
-+#include "bus/Pci.h"
-+
-+#ifndef MAP_FAILED
-+#define MAP_FAILED ((caddr_t)-1)
-+#endif
-+
-+
-+/***************************************************************************/
-+/* Video Memory Mapping section                                            */
-+/***************************************************************************/
-+
-+#define DEV_MEM "/dev/mem"
-+
-+static pointer ia64MapVidMem(int, unsigned long, unsigned long, int flags);
-+static void ia64UnmapVidMem(int, pointer, unsigned long);
-+
-+Bool xf86EnableIO(void);
-+void xf86DisableIO(void);
-+
-+void
-+xf86OSInitVidMem(VidMemInfoPtr pVidMem)
-+{
-+	pVidMem->linearSupported = TRUE;
-+	pVidMem->mapMem = ia64MapVidMem;
-+	pVidMem->unmapMem = ia64UnmapVidMem;
-+	pVidMem->initialised = TRUE;
-+	xf86EnableIO();
-+}
-+
-+
-+_X_EXPORT volatile unsigned char *ioBase = MAP_FAILED;
-+
-+static pointer
-+ia64MapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
-+{
-+	int fd = xf86Info.screenFd;
-+	pointer base;
-+#ifdef DEBUG
-+	xf86MsgVerb(X_INFO, 3, "mapVidMem %lx, %lx, fd = %d", 
-+		    Base, Size, fd);
-+#endif
-+
-+	base = mmap(0, Size,
-+		    (flags & VIDMEM_READONLY) ?
-+		     PROT_READ : (PROT_READ | PROT_WRITE),
-+		    MAP_SHARED, fd, Base);
-+	if (base == MAP_FAILED)
-+		FatalError("%s: could not mmap screen [s=%lx,a=%lx] (%s)",
-+			   "xf86MapVidMem", Size, Base, strerror(errno));
-+
-+	return base;
-+}
-+
-+static void
-+ia64UnmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
-+{
-+	munmap(Base, Size);
-+}
-+
-+_X_EXPORT int
-+xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
-+	     int Len)
-+{
-+	int rv;
-+	static int kmem = -1;
-+
-+	if (kmem == -1) {
-+		kmem = open(DEV_MEM, 2);
-+		if (kmem == -1) {
-+			FatalError("xf86ReadBIOS: open %s", DEV_MEM);
-+		}
-+	}
-+
-+#ifdef DEBUG
-+	xf86MsgVerb(X_INFO, 3, "xf86ReadBIOS() %lx %lx, %x\n", 
-+		    Base, Offset, Len);
-+#endif
-+
-+
-+	lseek(kmem, Base + Offset, 0);
-+	rv = read(kmem, Buf, Len);
-+
-+	return rv;
-+}
-+
-+Bool xf86EnableIO()
-+{
-+        int fd = xf86Info.screenFd;
-+
-+        xf86MsgVerb(X_WARNING, 3, "xf86EnableIO %d\n", fd);
-+        if (ioBase == MAP_FAILED)
-+        {
-+                ioBase=mmap(NULL, 0x10000, PROT_READ|PROT_WRITE, MAP_SHARED, fd,
-+                    0);
-+                xf86MsgVerb(X_INFO, 3, "xf86EnableIO: %p\n", ioBase);
-+                if (ioBase == MAP_FAILED) {
-+                        xf86MsgVerb(X_WARNING, 3, "Can't map IO space!\n");
-+			return FALSE;
-+		}
-+        }
-+	return TRUE;
-+}
-+
-+void xf86DisableIO()
-+{
-+
-+        if (ioBase != MAP_FAILED)
-+        {
-+                munmap((void *)(uintptr_t)(void *)ioBase, 0x10000);
-+                ioBase = MAP_FAILED;
-+        }
-+}
-+
-+void outb(unsigned long port, unsigned char val)
-+{
-+}
-+
-+void outw(unsigned long port, unsigned short val)
-+{
-+}
-+
-+void outl(unsigned long port, unsigned int val)
-+{
-+}
-+
-+unsigned int inb(unsigned long port)
-+{
-+	return 0xff;
-+}
-+
-+unsigned int inw(unsigned long port)
-+{
-+	return 0xffff;
-+}
-+
-+unsigned int inl(unsigned long port)
-+{
-+	return 0xffffffff;
-+}

Deleted: trunk/x11-servers/xorg-server/files/extra-arch-powerpc
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-arch-powerpc	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-arch-powerpc	2014-09-14 02:47:48 UTC (rev 17055)
@@ -1,14 +0,0 @@
---- hw/xfree86/os-support/bsd/ppc_video.c.orig	2008-01-02 12:29:21.000000000 +0000
-+++ hw/xfree86/os-support/bsd/ppc_video.c	2008-01-02 12:29:00.000000000 +0000
-@@ -164,7 +164,11 @@
- 
-         if (ioBase != MAP_FAILED)
-         {
-+#if defined(__FreeBSD__)
-+		munmap(__DEVOLATILE(unsigned char *, ioBase), 0x10000);
-+#else
-                 munmap(__UNVOLATILE(ioBase), 0x10000);
-+#endif
-                 ioBase = MAP_FAILED;
-         }
- }

Modified: trunk/x11-servers/xorg-server/files/extra-clang
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-clang	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-clang	2014-09-14 02:47:48 UTC (rev 17055)
@@ -73,3 +73,26 @@
      struct PointerBarrier *nearest = NULL;
      double min_distance = INT_MAX;      /* can't get higher than that in X anyway */
  
+--- hw/xfree86/parser/InputClass.c.orig	2013-07-04 11:45:42.139818164 +0200
++++ hw/xfree86/parser/InputClass.c	2013-07-04 11:46:29.034806839 +0200
+@@ -362,7 +362,8 @@
+     XF86ConfInputClassPtr prev;
+ 
+     while (ptr) {
+-        xf86MatchGroup *group, *next;
++        xf86MatchGroup *group = NULL;
++        xf86MatchGroup *next;
+         char **list;
+ 
+         TestFree(ptr->identifier);
+--- hw/xfree86/loader/loadmod.c.orig	2013-07-04 11:48:11.160800614 +0200
++++ hw/xfree86/loader/loadmod.c	2013-07-04 11:48:32.000800157 +0200
+@@ -472,7 +472,7 @@
+     char **elem;
+     const char **subdirs;
+     const char **s;
+-    PatternPtr patterns;
++    PatternPtr patterns = NULL;
+     PatternPtr p;
+     DIR *d;
+     struct dirent *dp;


Property changes on: trunk/x11-servers/xorg-server/files/extra-clang
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.2
\ No newline at end of property
Added: trunk/x11-servers/xorg-server/files/extra-config_devd.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-config_devd.c	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/extra-config_devd.c	2014-09-14 02:47:48 UTC (rev 17055)
@@ -0,0 +1,481 @@
+--- /dev/null	2013-08-03 00:44:23.000000000 +0200
++++ config/devd.c	2013-08-03 00:45:15.162836806 +0200
+@@ -0,0 +1,478 @@
++/*
++ * Copyright © 2012 Baptiste Daroussin
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ *
++ * Author: Baptiste Daroussin <bapt at FreeBSD.org>
++ */
++
++#ifdef HAVE_DIX_CONFIG_H
++#include <dix-config.h>
++#endif
++
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <sys/sysctl.h>
++#include <sys/un.h>
++
++#include <ctype.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <stdarg.h>
++#include <stdbool.h>
++#include <unistd.h>
++
++#include "input.h"
++#include "inputstr.h"
++#include "hotplug.h"
++#include "config-backends.h"
++#include "os.h"
++
++#define DEVD_SOCK_PATH "/var/run/devd.pipe"
++
++#define DEVD_EVENT_ADD		'+'
++#define DEVD_EVENT_REMOVE	'-'
++
++static int sock_devd = -1;
++
++#if XORG_VERSION_CURRENT < 10800000
++enum {
++	ATTR_KEYBOARD,
++	ATTR_POINTER,
++	ATTR_JOYSTICK,
++	ATTR_TOUCHPAD,
++	ATTR_TOUCHSCREEN,
++};
++#endif
++
++struct hw_type {
++	const char *driver;
++	int flag;
++	const char *xdriver;
++};
++
++static struct hw_type hw_types[] = {
++	{ "ukbd", ATTR_KEYBOARD, "kdb" },
++	{ "atkbd", ATTR_KEYBOARD, "kdb" },
++	{ "ums", ATTR_POINTER, "mouse" },
++	{ "psm", ATTR_POINTER, "mouse" },
++	{ "uhid", ATTR_POINTER, "mouse" },
++	{ "joy", ATTR_JOYSTICK, NULL },
++	{ "atp", ATTR_TOUCHPAD, NULL },
++	{ "uep", ATTR_TOUCHSCREEN, NULL },
++	{ NULL, -1, NULL },
++};
++
++#if XORG_VERSION_CURRENT < 10800000
++static void
++add_option(InputOption **options, const char *key, const char *value)
++{
++    if (!value || *value == '\0')
++        return;
++
++    for (; *options; options = &(*options)->next)
++        ;
++    *options = calloc(sizeof(**options), 1);
++    if (!*options) /* Yeesh. */
++        return;
++    (*options)->key = xstrdup(key);
++    (*options)->value = xstrdup(value);
++    (*options)->next = NULL;
++}
++
++static void
++remove_device(DeviceIntPtr dev)
++{
++    /* this only gets called for devices that have already been added */
++    LogMessage(X_INFO, "config/devd: removing device %s\n", dev->name);
++
++    /* Call PIE here so we don't try to dereference a device that's
++     * already been removed. */
++    OsBlockSignals();
++    ProcessInputEvents();
++    DeleteInputDeviceRequest(dev);
++    OsReleaseSignals();
++}
++
++static bool
++device_is_duplicate(char *config_info)
++{
++    DeviceIntPtr dev;
++
++    for (dev = inputInfo.devices; dev; dev = dev->next)
++        if (dev->config_info && (strcmp(dev->config_info, config_info) == 0))
++            return true;
++
++    for (dev = inputInfo.off_devices; dev; dev = dev->next)
++        if (dev->config_info && (strcmp(dev->config_info, config_info) == 0))
++            return true;
++
++    return false;
++}
++
++#endif
++
++static bool
++sysctl_exists(const char *format, ...)
++{
++	va_list args;
++	char *name = NULL;
++	size_t len;
++	int ret;
++
++	if (format == NULL)
++		return false;
++
++	va_start(args, format);
++	vasprintf(&name, format, args);
++	va_end(args);
++
++	ret = sysctlbyname(name, NULL, &len, NULL, 0);
++
++	if (ret == -1)
++		len = 0;
++
++	free(name);
++	return (len > 0);
++}
++
++static char *
++sysctl_get_str(const char *format, ...)
++{
++	va_list args;
++	char *name = NULL;
++	char *dest = NULL;
++	size_t len;
++
++	if (format == NULL)
++		return NULL;
++
++	va_start(args, format);
++	vasprintf(&name, format, args);
++	va_end(args);
++
++	if (sysctlbyname(name, NULL, &len, NULL, 0) == 0) {
++		dest = malloc(len + 1);
++		if (sysctlbyname(name, dest, &len, NULL, 0) == 0)
++			dest[len] = '\0';
++		else {
++			free(dest);
++			dest = NULL;
++		}
++	}
++
++	free(name);
++	return dest;
++}
++
++static void
++device_added(char *line)
++{
++    char *walk;
++    char *path;
++    char *vendor;
++    char *product = NULL;
++    char *config_info = NULL;
++    InputOption *options = NULL;
++#if XORG_VERSION_CURRENT > 10800000
++    InputAttributes attrs = {};
++#else
++    InputOption *tmpo;
++#endif
++    DeviceIntPtr dev = NULL;
++    int i, rc;
++
++    walk = strchr(line, ' ');
++    if (walk != NULL)
++        walk[0] = '\0';
++
++    for (i = 0; hw_types[i].driver != NULL; i++) {
++        if (strncmp(line, hw_types[i].driver,
++                    strlen(hw_types[i].driver)) == 0 &&
++            isnumber(*(line + strlen(hw_types[i].driver)))) {
++#if XORG_VERSION_CURRENT > 10800000
++            attrs.flags |= hw_types[i].flag;
++#endif
++            break;
++        }
++    }
++    if (hw_types[i].driver == NULL) {
++        LogMessageVerb(X_INFO, 10, "config/devd: ignoring device %s\n", line);
++        return;
++    }
++
++#if XORG_VERSION_CURRENT < 10800000
++    if (hw_types[i].xdriver == NULL) {
++        LogMessageVerb(X_INFO, 10, "config/devd: ignoring device %s\n", line);
++        return;
++    }
++#endif
++    if (asprintf(&path, "/dev/%s", line) == -1)
++        return;
++
++#if XORG_VERSION_CURRENT < 10800000
++    options = calloc(sizeof(*options), 1);
++    if (!options)
++        return;
++
++    add_option(&options, "_source", "server/devd");
++#else
++    options =  input_option_new(NULL, "_source", "server/devd");
++    if (!options)
++        return;
++#endif
++
++    vendor = sysctl_get_str("dev.%s.%s.%%desc", hw_types[i].driver, line + strlen(hw_types[i].driver));
++    if (vendor == NULL) {
++#if XORG_VERSION_CURRENT > 10800000
++        attrs.vendor = strdup("(unnamed)");
++#endif
++    } else {
++        if ((product = strchr(vendor, ' ')) != NULL) {
++            product[0] = '\0';
++            product++;
++        }
++#if XORG_VERSION_CURRENT > 10800000
++        attrs.vendor = strdup(vendor);
++#endif
++        if (product != NULL && (walk = strchr(product, ',')) != NULL)
++            walk[0] = '\0';
++#if XORG_VERSION_CURRENT > 10800000
++        attrs.product = strdup(product != NULL ? product : "(unnamed)");
++	options = input_option_new(options, "name", product != NULL ? product : "(unnamed)");
++#else
++        add_option(&options, "name", product != NULL ? product : "(unnamed)");
++#endif
++    }
++#if XORG_VERSION_CURRENT > 10800000
++    attrs.usb_id = NULL;
++    options = input_option_new(options, "path", path);
++    options = input_option_new(options, "device", path);
++#else
++    add_option(&options, "path", path);
++    add_option(&options, "device", path);
++#endif
++
++#if XORG_VERSION_CURRENT < 10800000
++    add_option(&options, "driver", hw_types[i].xdriver);
++#endif
++
++    if (asprintf(&config_info, "devd:%s", line) == -1) {
++        config_info = NULL;
++        goto unwind;
++    }
++
++    if (device_is_duplicate(config_info)) {
++        LogMessage(X_WARNING, "config/devd: device %s already added. "
++                              "Ignoring.\n", product != NULL ? product : "(unnamed)");
++        goto unwind;
++    }
++
++#if XORG_VERSION_CURRENT < 10800000
++    add_option(&options, "config_info", config_info);
++#else
++    options = input_option_new(options, "config_info", config_info);
++#endif
++    LogMessage(X_INFO, "config/devd: Adding input device %s (%s)\n",
++               product != NULL ? product : "(unnamed)", path);
++
++#if XORG_VERSION_CURRENT > 10800000
++    rc = NewInputDeviceRequest(options, &attrs, &dev);
++#else
++    rc = NewInputDeviceRequest(options, &dev);
++#endif
++
++    if (rc != Success)
++        goto unwind;
++
++ unwind:
++    free(config_info);
++#if XORG_VERSION_CURRENT < 10800000
++    while ((tmpo = options)) {
++        options = tmpo->next;
++        free(tmpo->key);        /* NULL if dev != NULL */
++        free(tmpo->value);      /* NULL if dev != NULL */
++        free(tmpo);
++    }
++#else
++    input_option_free_list(&options);
++#endif
++
++#if XORG_VERSION_CURRENT > 10800000
++    free(attrs.usb_id);
++    free(attrs.product);
++    free(attrs.device);
++    free(attrs.vendor);
++#endif
++
++    return;
++}
++
++static void
++device_removed(char *line)
++{
++    char *walk;
++    char *value;
++#if XORG_VERSION_CURRENT < 10800000
++    DeviceIntPtr dev, next;
++#endif
++
++    walk = strchr(line, ' ');
++    if (walk != NULL)
++        walk[0] = '\0';
++
++    if (asprintf(&value, "devd:%s", line) == -1)
++        return;
++
++#if XORG_VERSION_CURRENT > 10800000
++    remove_devices("dev", value);
++#else
++    for (dev = inputInfo.devices; dev; dev = next) {
++        next = dev->next;
++        if (dev->config_info && strcmp(dev->config_info, value) == 0)
++            remove_device(dev);
++    }
++    for (dev = inputInfo.off_devices; dev; dev = next) {
++	next = dev->next;
++        if (dev->config_info && strcmp(dev->config_info, value) == 0)
++            remove_device(dev);
++    }
++#endif
++
++    free(value);
++}
++
++static ssize_t
++socket_getline(int fd, char **out)
++{
++	char *buf;
++	ssize_t ret, cap, sz = 0;
++	char c;
++
++	cap = 1024;
++	buf = malloc(cap * sizeof(char));
++	if (!buf)
++		return -1;
++
++	for (;;) {
++		ret = read(sock_devd, &c, 1);
++		if (ret < 1) {
++			free(buf);
++			return -1;
++		}
++
++		if (c == '\n')
++			break;
++
++		if (sz + 1 >= cap) {
++			cap *= 2;
++			buf = realloc(buf, cap *sizeof(char));
++		}
++		buf[sz] = c;
++		sz++;
++	}
++
++	buf[sz] = '\0';
++	if (sz > 0)
++		*out = buf;
++	else
++		free(buf);
++
++	return sz; /* number of bytes in the line, not counting the line break*/
++}
++
++static void
++wakeup_handler(pointer data, int err, pointer read_mask)
++{
++    char *line = NULL;
++
++    if (err < 0)
++        return;
++
++    if (FD_ISSET(sock_devd, (fd_set *)read_mask)) {
++        if (socket_getline(sock_devd, &line) < 0)
++            return;
++
++        switch(*line) {
++		case DEVD_EVENT_ADD:
++			device_added(line++);
++			break;
++		case DEVD_EVENT_REMOVE:
++			device_removed(line++);
++			break;
++		default:
++			break;
++	}
++	free(line);
++    }
++}
++
++static void
++block_handler(pointer data, struct timeval **tv, pointer read_mask)
++{
++}
++
++int
++config_devd_init(void)
++{
++    struct sockaddr_un devd;
++    char devicename[1024];
++    int i, j;
++
++    /* first scan the sysctl to determine the hardware if needed */
++
++    for (i = 0; hw_types[i].driver != NULL; i++) {
++        for (j = 0; sysctl_exists("dev.%s.%i.%%desc", hw_types[i].driver, j); j++) {
++            snprintf(devicename, 1024, "%s%i", hw_types[i].driver, j);
++            device_added(devicename);
++        }
++
++    }
++    sock_devd = socket(AF_UNIX, SOCK_STREAM, 0);
++    if (sock_devd < 0) {
++        ErrorF("config/devd: Fail opening stream socket");
++        return 0;
++    }
++
++    devd.sun_family = AF_UNIX;
++    strlcpy(devd.sun_path, DEVD_SOCK_PATH, sizeof(devd.sun_path));
++
++    if (connect(sock_devd, (struct sockaddr *) &devd, sizeof(struct sockaddr_un)) < 0) {
++        close(sock_devd);
++        ErrorF("config/devd: Fail to connect to devd");
++        return 0;
++    }
++
++    RegisterBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
++    AddGeneralSocket(sock_devd);
++
++    return 1;
++}
++
++void
++config_devd_fini(void)
++{
++    if (sock_devd < 0)
++        return;
++
++    RemoveGeneralSocket(sock_devd);
++    RemoveBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
++    close(sock_devd);
++}

Added: trunk/x11-servers/xorg-server/files/extra-configure
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-configure	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/extra-configure	2014-09-14 02:47:48 UTC (rev 17055)
@@ -0,0 +1,11 @@
+--- configure.orig	2013-09-07 22:11:27.210621324 +0200
++++ configure	2013-09-07 22:11:52.912624338 +0200
+@@ -22839,7 +22839,7 @@
+ }
+ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+-  ac_cv_tls=$kw
++  ac_cv_tls=$kw; break ;
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         done

Added: trunk/x11-servers/xorg-server/files/extra-dix_events.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-dix_events.c	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/extra-dix_events.c	2014-09-14 02:47:48 UTC (rev 17055)
@@ -0,0 +1,89 @@
+--- dix/events.c.orig	2010-05-04 02:47:57.000000000 +0200
++++ dix/events.c	2012-04-24 12:59:22.000000000 +0200
+@@ -3440,7 +3440,6 @@ CheckPassiveGrabsOnWindow(
+     {
+ 	DeviceIntPtr	gdev;
+ 	XkbSrvInfoPtr	xkbi = NULL;
+-	Mask		mask = 0;
+ 
+ 	gdev= grab->modifierDevice;
+         if (grab->grabtype == GRABTYPE_CORE)
+@@ -3555,9 +3554,6 @@ CheckPassiveGrabsOnWindow(
+                 }
+                 xE = &core;
+                 count = 1;
+-                mask = grab->eventMask;
+-                if (grab->ownerEvents)
+-                    mask |= pWin->eventMask;
+             } else if (match & XI2_MATCH)
+             {
+                 rc = EventToXI2((InternalEvent*)event, &xE);
+@@ -3569,34 +3565,6 @@ CheckPassiveGrabsOnWindow(
+                     continue;
+                 }
+                 count = 1;
+-
+-                /* FIXME: EventToXI2 returns NULL for enter events, so
+-                 * dereferencing the event is bad. Internal event types are
+-                 * aligned with core events, so the else clause is valid.
+-                 * long-term we should use internal events for enter/focus
+-                 * as well */
+-                if (xE)
+-                    mask = grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8];
+-                else if (event->type == XI_Enter || event->type == XI_FocusIn)
+-                    mask = grab->xi2mask[device->id][event->type/8];
+-
+-                if (grab->ownerEvents && wOtherInputMasks(grab->window))
+-                {
+-                    InputClientsPtr icp =
+-                        wOtherInputMasks(grab->window)->inputClients;
+-
+-                    while(icp)
+-                    {
+-                        if (rClient(icp) == rClient(grab))
+-                        {
+-                            int evtype = (xE) ? ((xGenericEvent*)xE)->evtype : event->type;
+-                            mask |= icp->xi2mask[device->id][evtype/8];
+-                            break;
+-                        }
+-
+-                        icp = icp->next;
+-                    }
+-                }
+             } else
+             {
+                 rc = EventToXI((InternalEvent*)event, &xE, &count);
+@@ -3607,23 +3575,6 @@ CheckPassiveGrabsOnWindow(
+                                 "(%d, %d).\n", device->name, event->type, rc);
+                     continue;
+                 }
+-                mask = grab->eventMask;
+-                if (grab->ownerEvents && wOtherInputMasks(grab->window))
+-                {
+-                    InputClientsPtr icp =
+-                        wOtherInputMasks(grab->window)->inputClients;
+-
+-                    while(icp)
+-                    {
+-                        if (rClient(icp) == rClient(grab))
+-                        {
+-                            mask |= icp->mask[device->id];
+-                            break;
+-                        }
+-
+-                        icp = icp->next;
+-                    }
+-                }
+             }
+ 
+ 	    (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
+@@ -3632,7 +3583,8 @@ CheckPassiveGrabsOnWindow(
+             {
+                 FixUpEventFromWindow(device, xE, grab->window, None, TRUE);
+ 
+-                TryClientEvents(rClient(grab), device, xE, count, mask,
++                TryClientEvents(rClient(grab), device, xE, count,
++                                       GetEventFilter(device, xE),
+                                        GetEventFilter(device, xE), grab);
+             }
+ 

Index: trunk/x11-servers/xorg-server/files/extra-include_eventstr.h
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-include_eventstr.h	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-include_eventstr.h	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/extra-include_eventstr.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/x11-servers/xorg-server/files/extra-new-arch-i386
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-new-arch-i386	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-new-arch-i386	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/extra-new-arch-i386
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Added: trunk/x11-servers/xorg-server/files/extra-new-bad-impl
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-new-bad-impl	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/extra-new-bad-impl	2014-09-14 02:47:48 UTC (rev 17055)
@@ -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;
+                 }
+             }

Added: trunk/x11-servers/xorg-server/files/extra-new-dix_dixfonts.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-new-dix_dixfonts.c	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/extra-new-dix_dixfonts.c	2014-09-14 02:47:48 UTC (rev 17055)
@@ -0,0 +1,41 @@
+--- dix/dixfonts.c.orig	2012-05-17 19:09:01.000000000 +0200
++++ dix/dixfonts.c	2013-10-09 10:49:38.158284440 +0200
+@@ -1414,6 +1414,7 @@
+             GC *pGC;
+             unsigned char *data;
+             ITclosurePtr new_closure;
++            ITclosurePtr old_closure;
+ 
+             /* We're putting the client to sleep.  We need to
+                save some state.  Similar problem to that handled
+@@ -1425,12 +1426,14 @@
+                 err = BadAlloc;
+                 goto bail;
+             }
++            old_closure = c;
+             *new_closure = *c;
+             c = new_closure;
+ 
+             data = malloc(c->nChars * itemSize);
+             if (!data) {
+                 free(c);
++                c = old_closure;
+                 err = BadAlloc;
+                 goto bail;
+             }
+@@ -1441,6 +1444,7 @@
+             if (!pGC) {
+                 free(c->data);
+                 free(c);
++                c = old_closure;
+                 err = BadAlloc;
+                 goto bail;
+             }
+@@ -1453,6 +1457,7 @@
+                 FreeScratchGC(pGC);
+                 free(c->data);
+                 free(c);
++                c = old_closure;
+                 err = BadAlloc;
+                 goto bail;
+             }

Index: trunk/x11-servers/xorg-server/files/extra-old-arch-i386
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-old-arch-i386	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-old-arch-i386	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/extra-old-arch-i386
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Added: trunk/x11-servers/xorg-server/files/extra-old-dix_dixfonts.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-old-dix_dixfonts.c	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/extra-old-dix_dixfonts.c	2014-09-14 02:47:48 UTC (rev 17055)
@@ -0,0 +1,42 @@
+--- dix/dixfonts.c.orig	2010-05-04 02:47:57.000000000 +0200
++++ dix/dixfonts.c	2013-10-09 10:54:40.488267646 +0200
+@@ -1508,6 +1508,7 @@
+ 	    GC *pGC;
+ 	    unsigned char *data;
+ 	    ITclosurePtr new_closure;
++	    ITclosurePtr old_closure;
+ 
+ 	    /* We're putting the client to sleep.  We need to
+ 	       save some state.  Similar problem to that handled
+@@ -1520,6 +1521,7 @@
+ 		err = BadAlloc;
+ 		goto bail;
+ 	    }
++	    old_closure = c;
+ 	    *new_closure = *c;
+ 	    c = new_closure;
+ 
+@@ -1527,6 +1529,7 @@
+ 	    if (!data)
+ 	    {
+ 		xfree(c);
++		c = old_closure;
+ 		err = BadAlloc;
+ 		goto bail;
+ 	    }
+@@ -1538,6 +1541,7 @@
+ 	    {
+ 		xfree(c->data);
+ 		xfree(c);
++		c = old_closure;
+ 		err = BadAlloc;
+ 		goto bail;
+ 	    }
+@@ -1551,6 +1555,7 @@
+ 		FreeScratchGC(pGC);
+ 		xfree(c->data);
+ 		xfree(c);
++		c = old_closure;
+ 		err = BadAlloc;
+ 		goto bail;
+ 	    }

Index: trunk/x11-servers/xorg-server/files/extra-os-utils.c
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-os-utils.c	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-os-utils.c	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/extra-os-utils.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Deleted: trunk/x11-servers/xorg-server/files/extra-servermd.h
===================================================================
--- trunk/x11-servers/xorg-server/files/extra-servermd.h	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/extra-servermd.h	2014-09-14 02:47:48 UTC (rev 17055)
@@ -1,11 +0,0 @@
---- include/servermd.h.orig	Sun Jan  8 14:05:55 2006
-+++ include/servermd.h	Sun Jan  8 14:06:22 2006
-@@ -216,7 +216,7 @@
-     defined(__sparc__) || defined(__mc68000__)
- 
- #if defined(__sparc) || defined(__sparc__)
--# if !defined(sparc)
-+# if !defined(sparc) && !defined(__FreeBSD__)
- #  define sparc 1
- # endif
- #endif

Deleted: trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-common-xf86Config.c
===================================================================
--- trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-common-xf86Config.c	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-common-xf86Config.c	2014-09-14 02:47:48 UTC (rev 17055)
@@ -1,11 +0,0 @@
---- hw/xfree86/common/xf86Config.c.orig	Fri Jun 23 12:32:32 2006
-+++ hw/xfree86/common/xf86Config.c	Fri Jun 23 12:32:46 2006
-@@ -1042,7 +1042,7 @@
-     else
- 	xf86Info.estimateSizesAggressively = 0;
- 
--    xf86Info.aiglx = TRUE;
-+    xf86Info.aiglx = FALSE;
-     xf86Info.aiglxFrom = X_DEFAULT;
-     if (xf86GetOptValBool(FlagOptions, FLAG_AIGLX, &value)) {
- 	xf86Info.aiglx = value;

Index: trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-i386_video.c
===================================================================
--- trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-i386_video.c	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-i386_video.c	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-i386_video.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.2
\ No newline at end of property
Added: trunk/x11-servers/xorg-server/files/patch-xkb_Makefile.in
===================================================================
--- trunk/x11-servers/xorg-server/files/patch-xkb_Makefile.in	                        (rev 0)
+++ trunk/x11-servers/xorg-server/files/patch-xkb_Makefile.in	2014-09-14 02:47:48 UTC (rev 17055)
@@ -0,0 +1,11 @@
+--- xkb/Makefile.in.orig	2013-06-16 11:16:48.000000000 +0000
++++ xkb/Makefile.in	2013-06-16 11:17:08.000000000 +0000
+@@ -816,7 +816,7 @@
+ 
+ info-am:
+ 
+-install-data-am: install-dist_xkbcompiledDATA
++install-data-am:
+ 
+ install-dvi: install-dvi-am
+ 

Index: trunk/x11-servers/xorg-server/files/patch-xorgconf.cpp
===================================================================
--- trunk/x11-servers/xorg-server/files/patch-xorgconf.cpp	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/patch-xorgconf.cpp	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/patch-xorgconf.cpp
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.2
\ No newline at end of property
Index: trunk/x11-servers/xorg-server/files/pkg-deinstall.in
===================================================================
--- trunk/x11-servers/xorg-server/files/pkg-deinstall.in	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/pkg-deinstall.in	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/pkg-deinstall.in
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/x11-servers/xorg-server/files/pkg-install.in
===================================================================
--- trunk/x11-servers/xorg-server/files/pkg-install.in	2014-09-14 02:45:47 UTC (rev 17054)
+++ trunk/x11-servers/xorg-server/files/pkg-install.in	2014-09-14 02:47:48 UTC (rev 17055)

Property changes on: trunk/x11-servers/xorg-server/files/pkg-install.in
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list