dfports/x11/xorg-documents 6.7.0 -> 6.8.1

Hiroki Sato hrs at allbsd.org
Sat Jan 1 04:22:30 PST 2005


Hi,

 The revised patches for xorg-server and xorg-libraries are attached.
 These include fixes for the i810 driver and so on (mostly based on
 the recent Eric Anholt's patches).

 The precompiled packages are also available from:

  http://people.allbsd.org/~hrs/DragonFly/20050101/imake-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-clients-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-documents-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-fonts-100dpi-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-fonts-75dpi-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-fonts-cyrillic-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-fonts-encodings-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-fonts-miscbitmaps-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-fonts-truetype-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-fonts-type1-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-fontserver-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-libraries-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-manpages-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-nestserver-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-printserver-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-server-6.8.1.tgz
  http://people.allbsd.org/~hrs/DragonFly/20050101/xorg-vfbserver-6.8.1.tgz

 I would appreciate it if anyone could test them and let me
 know if they work or not.  Thanks.

-- 
| Hiroki SATO
Index: Makefile
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/Makefile,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 Makefile
--- Makefile	16 Aug 2004 12:30:29 -0000	1.1
+++ Makefile	28 Dec 2004 04:55:12 -0000
@@ -6,14 +6,13 @@
 # $DragonFly: dfports/x11-servers/xorg-server/Makefile,v 1.1 2004/08/16 12:30:29 joerg Exp $
 #
 
-PORTNAME=	server
-PORTVERSION=	6.7.0
-PORTREVISION=	5
+PORTNAME=	xorg-server
+PORTVERSION=	6.8.1
 CATEGORIES=	x11-servers
-MASTER_SITES=	http://freedesktop.org/~xorg/X11R6.7.0/src/
-PKGNAMEPREFIX=	xorg-
-DISTFILES=	X11R6.7.0-src1.tar.gz \
-		X11R6.7.0-src3.tar.gz
+MASTER_SITES=	${MASTER_SITE_XORG}
+MASTER_SITE_SUBDIR=	X11R6.8.1/tars
+DISTFILES=	X11R${PORTVERSION}-src1.tar.gz \
+		X11R${PORTVERSION}-src3.tar.gz
 
 MAINTAINER=	x11 at xxxxxxxxxxx
 COMMENT=	X.Org X server and related programs
@@ -41,20 +40,30 @@
 		xorgcfg.1 \
 		xorgconfig.1
 MAN4=		citron.4 \
+		dmc.4 \
 		dynapro.4 \
 		elographics.4 \
 		fbdevhw.4 \
+		fpit.4 \
+		glint.4 \
+		js_x.4 \
 		kbd.4 \
 		keyboard.4 \
+		mga.4 \
 		microtouch.4 \
 		mouse.4 \
 		mutouch.4 \
-		nv.4 \
+		palmax.4 \
+		penmount.4 \
 		r128.4 \
 		radeon.4 \
+		tdfx.4 \
+		tek4957.4 \
+		vga.4 \
 		void.4 \
 		wacom.4
-MAN5=		xorg.conf.5
+MAN5=		getconfig.5 \
+		xorg.conf.5
 
 XBUILD_DIRS=	lib/font programs/Xserver
 XINCLUDE_DIRS=	lib/xtrans
@@ -68,6 +77,13 @@
 IGNORE= is part of X.Org. For switching to X.Org, read UPDATING entry 20040723
 .endif
 
+.if ${ARCH} == alpha
+PLIST_SUB+=	ALPHA_NA="@comment "
+.else
+PLIST_SUB+=	ALPHA_NA=""
+MAN4+=		vesa.4
+.endif
+		
 .if ${ARCH} == ia64
 PLIST_SUB+=	IA64_NA="@comment "
 .else
@@ -77,39 +93,48 @@
 .if ${ARCH} == sparc64
 PLIST_SUB+=	SPARC64=""
 PLIST_SUB+=	SPARC64_NA="@comment "
-MAN4+=		sunffb.4
+MAN4+=		sunbw2.4 \
+		suncg14.4 \
+		suncg3.4 \
+		suncg6.4 \
+		sunffb.4 \
+		sunleo.4 \
+		suntcx.4
 .else
 PLIST_SUB+=	SPARC64="@comment "
 PLIST_SUB+=	SPARC64_NA=""
-MAN4+=		glint.4 \
-		mga.4 \
+MAN4+=		cirrus.4 \
+		nv.4 \
 		rendition.4 \
 		s3virge.4 \
 		savage.4 \
-		siliconmotion.4 \
-		sis.4 \
-		tdfx.4 \
-		vga.4
+		siliconmotion.4
 .endif
 
 .if ${ARCH} == i386
 PLIST_SUB+=	I386=""
 MAN1+=		scanpci.1
+MAN4+=		i740.4 \
+		i810.4 \
+		nsc.4 \
+		via.4 \
+		vmware.4
+.else
+PLIST_SUB+=	I386="@comment "
+.endif
+
+.if ${ARCH} == amd64 || ${ARCH} == i386
+PLIST_SUB+=	AMD64_I386=""
 MAN4+=		apm.4 \
 		chips.4 \
-		cirrus.4 \
 		cyrix.4 \
 		i128.4 \
-		i740.4 \
-		i810.4 \
 		neomagic.4 \
-		nsc.4 \
+		sis.4 \
 		trident.4 \
-		tseng.4 \
-		vesa.4 \
-		vmware.4
+		tseng.4
 .else
-PLIST_SUB+=	I386="@comment "
+PLIST_SUB+=	AMD64_I386="@comment "
 .endif
 
 .if !defined(NO_SUID_XSERVER) || ${NO_SUID_XSERVER} == NO
Index: Makefile.inc
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/Makefile.inc,v
retrieving revision 1.2
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.2 Makefile.inc
--- Makefile.inc	17 Aug 2004 15:53:10 -0000	1.2
+++ Makefile.inc	28 Dec 2004 06:08:56 -0000
@@ -16,6 +16,7 @@
 WRKSRC?=	${WRKDIR}/xc
 USE_X_PREFIX?=	no
 PREFIX?=	${X11BASE}
+MTREE_FILE=	/etc/mtree/BSD.x11-4.dist
 
 USE_IMAKE=	YES
 .if defined(XMAN_DIRS)
@@ -37,9 +38,6 @@
 CF_PATCHES=	${SERVER_PORTDIR}/files/patch-DragonFly.cf \
 		${SERVER_PORTDIR}/files/patch-FreeBSD.cf \
 		${SERVER_PORTDIR}/files/patch-Imake.cf \
-		${SERVER_PORTDIR}/files/patch-config-cf-Imakefile \
-		${SERVER_PORTDIR}/files/patch-imake-imakemdep.h \
-		${SERVER_PORTDIR}/files/patch-imake.c \
 		${SERVER_PORTDIR}/files/patch-Imake.rules \
 		${SERVER_PORTDIR}/files/patch-Imake.tmpl \
 		${SERVER_PORTDIR}/files/patch-Library.tmpl \
@@ -47,16 +45,13 @@
 		${SERVER_PORTDIR}/files/patch-X11.tmpl
 
 SERVER_PATCHES=	${SERVER_PORTDIR}/files/patch-Xserver-Imakefile \
-		${SERVER_PORTDIR}/files/patch-bus-Imakefile \
-		${SERVER_PORTDIR}/files/patch-fb-renderfixes.diff \
-		${SERVER_PORTDIR}/files/patch-kernel-Imakefile \
-		${SERVER_PORTDIR}/files/patch-loadmod.c \
+		${SERVER_PORTDIR}/files/patch-alpha_video.c \
 		${SERVER_PORTDIR}/files/patch-man-Imakefile \
 		${SERVER_PORTDIR}/files/patch-os-Imakefile \
 		${SERVER_PORTDIR}/files/patch-savage-pci-id \
 		${SERVER_PORTDIR}/files/patch-xf86sym.c \
-		${SERVER_PORTDIR}/files/patch-xkbout.c
-LIBRARY_PATCHES= ${SERVER_PORTDIR}/files/patch-Xtranssock.c
+		${SERVER_PORTDIR}/files/patch-xkbout.c \
+		${SERVER_PORTDIR}/files/patch-xorgconfig.c
 
 .if !target(do-configure)
 do-configure:
@@ -94,6 +89,5 @@
 	@for dir in ${XMAN_DIRS}; do \
 		cd ${WRKSRC}/$${dir} && ${SETENV} ${MAKE_ENV} ${MAKE} install.man; \
 	done
-	@${MKHTMLINDEX} ${PREFIX}/lib/X11/doc/html
 .endif
 
Index: distinfo
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/distinfo,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 distinfo
--- distinfo	16 Aug 2004 12:30:29 -0000	1.1
+++ distinfo	28 Dec 2004 04:56:22 -0000
@@ -1,8 +1,4 @@
-MD5 (xorg/X11R6.7.0-src1.tar.gz) = 22465263bae7a2e9f5ad77e172cf1ab5
-SIZE (xorg/X11R6.7.0-src1.tar.gz) = 30039655
-MD5 (xorg/X11R6.7.0-src2.tar.gz) = 6ef4e8f7647a28f080c10ea1bcf01f79
-SIZE (xorg/X11R6.7.0-src2.tar.gz) = 5739983
-MD5 (xorg/X11R6.7.0-src3.tar.gz) = 4c7144786522bbce383b21ace72bf669
-SIZE (xorg/X11R6.7.0-src3.tar.gz) = 10855793
-MD5 (xorg/Wraphelp2.gz) = bd1910492087442288d885412e2e5535
-SIZE (xorg/Wraphelp2.gz) = 3376
+MD5 (xorg/X11R6.8.1-src1.tar.gz) = e352319d423391ff2c03bb7f81fe8d2b
+SIZE (xorg/X11R6.8.1-src1.tar.gz) = 30562401
+MD5 (xorg/X11R6.8.1-src3.tar.gz) = 8578e566e909e7c40300f44b6f0e88d3
+SIZE (xorg/X11R6.8.1-src3.tar.gz) = 10014808
Index: pkg-plist
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/pkg-plist,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 pkg-plist
--- pkg-plist	16 Aug 2004 12:30:29 -0000	1.1
+++ pkg-plist	1 Jan 2005 10:00:19 -0000
@@ -17,34 +17,58 @@
 %%I386%%bin/scanpci
 bin/xorgcfg
 bin/xorgconfig
+include/X11/bitmaps/card.xbm
+include/X11/bitmaps/down.xbm
+include/X11/bitmaps/keyboard.xbm
+include/X11/bitmaps/left.xbm
+include/X11/bitmaps/monitor.xbm
+include/X11/bitmaps/mouse.xbm
+include/X11/bitmaps/narrower.xbm
+include/X11/bitmaps/right.xbm
+include/X11/bitmaps/shorter.xbm
+include/X11/bitmaps/taller.xbm
+include/X11/bitmaps/up.xbm
+include/X11/bitmaps/wider.xbm
+include/X11/pixmaps/card.xpm
+include/X11/pixmaps/computer.xpm
+include/X11/pixmaps/keyboard.xpm
+include/X11/pixmaps/monitor.xpm
+include/X11/pixmaps/mouse.xpm
+lib/X11/Cards
 lib/X11/Options
-lib/X11/XF86Config.98
-lib/X11/XF86Config.eg
+lib/X11/app-defaults/XOrgCfg
 lib/X11/doc/BUILD
 lib/X11/doc/BugReport
 lib/X11/doc/DESIGN
 lib/X11/doc/Install
 lib/X11/doc/LICENSE
+lib/X11/doc/OS2.Notes
 lib/X11/doc/README
 lib/X11/doc/README.DECtga
-%%I386%%lib/X11/doc/README.I128
-%%I386%%lib/X11/doc/README.SiS
+lib/X11/doc/README.Darwin
+lib/X11/doc/README.I128
+lib/X11/doc/README.LynxOS
+lib/X11/doc/README.NetBSD
+lib/X11/doc/README.OpenBSD
+lib/X11/doc/README.SCO
+lib/X11/doc/README.SiS
+lib/X11/doc/README.Solaris
 lib/X11/doc/README.XKB-Config
 lib/X11/doc/README.XKB-Enhancing
-%%I386%%lib/X11/doc/README.apm
+lib/X11/doc/README.apm
 lib/X11/doc/README.ati
-%%I386%%lib/X11/doc/README.chips
-%%I386%%lib/X11/doc/README.cyrix
+lib/X11/doc/README.chips
+lib/X11/doc/README.cyrix
 lib/X11/doc/README.dps
 lib/X11/doc/README.fonts
-%%I386%%lib/X11/doc/README.i740
-%%I386%%lib/X11/doc/README.i810
+lib/X11/doc/README.i740
+lib/X11/doc/README.i810
 lib/X11/doc/README.mouse
-%%I386%%lib/X11/doc/README.newport
+lib/X11/doc/README.newport
 lib/X11/doc/README.r128
 lib/X11/doc/README.rapidaccess
-%%SPARC64_NA%%%%IA64_NA%%lib/X11/doc/README.rendition
-%%SPARC64_NA%%%%IA64_NA%%lib/X11/doc/README.s3virge
+lib/X11/doc/README.rendition
+lib/X11/doc/README.s3virge
 lib/X11/doc/RELNOTES
 lib/X11/doc/Versions
 lib/X11/doc/VideoBoard98
@@ -52,73 +76,48 @@
 lib/X11/etc/xmodmap.std
 lib/X11/getconfig/cfg.sample
 lib/X11/getconfig/xorg.cfg
+lib/X11/xorg.conf.eg
 lib/X11/xserver/SecurityPolicy
-lib/modules/codeconv/libARABIC.a
-lib/modules/codeconv/libARMSCII8.a
-lib/modules/codeconv/libBIG5.a
-lib/modules/codeconv/libBIG5HKSCS.a
-lib/modules/codeconv/libDOSENCODING.a
-lib/modules/codeconv/libGB18030.a
-lib/modules/codeconv/libGB2312.a
-lib/modules/codeconv/libGBK.a
-lib/modules/codeconv/libGEORGIAN.a
-lib/modules/codeconv/libISO8859_1.a
-lib/modules/codeconv/libISO8859_10.a
-lib/modules/codeconv/libISO8859_11.a
-lib/modules/codeconv/libISO8859_13.a
-lib/modules/codeconv/libISO8859_14.a
-lib/modules/codeconv/libISO8859_15.a
-lib/modules/codeconv/libISO8859_2.a
-lib/modules/codeconv/libISO8859_3.a
-lib/modules/codeconv/libISO8859_4.a
-lib/modules/codeconv/libISO8859_5.a
-lib/modules/codeconv/libISO8859_6.a
-lib/modules/codeconv/libISO8859_7.a
-lib/modules/codeconv/libISO8859_8.a
-lib/modules/codeconv/libISO8859_9.a
-lib/modules/codeconv/libJISX0201.a
-lib/modules/codeconv/libJISX0208.a
-lib/modules/codeconv/libJISX0212.a
-lib/modules/codeconv/libKOI8.a
-lib/modules/codeconv/libKSC5601.a
-lib/modules/codeconv/libKSCJOHAB.a
-lib/modules/codeconv/libMULEENCODING.a
-lib/modules/codeconv/libTCVN.a
-lib/modules/codeconv/libVISCII.a
-%%I386%%lib/modules/drivers/apm_drv.o
-%%I386%%lib/modules/drivers/ark_drv.o
+%%AMD64_I386%%lib/modules/drivers/apm_drv.o
+%%AMD64_I386%%lib/modules/drivers/ark_drv.o
 lib/modules/drivers/ati_drv.o
 lib/modules/drivers/atimisc_drv.o
-%%I386%%lib/modules/drivers/chips_drv.o
-%%I386%%lib/modules/drivers/cirrus_alpine.o
-%%I386%%lib/modules/drivers/cirrus_drv.o
-%%I386%%lib/modules/drivers/cirrus_laguna.o
-%%I386%%lib/modules/drivers/cyrix_drv.o
-lib/modules/drivers/dummy_drv.o
-%%SPARC64_NA%%lib/modules/drivers/glint_drv.o
-%%I386%%lib/modules/drivers/i128_drv.o
+%%AMD64_I386%%lib/modules/drivers/chips_drv.o
+%%SPARC64_NA%%lib/modules/drivers/cirrus_alpine.o
+%%SPARC64_NA%%lib/modules/drivers/cirrus_drv.o
+%%SPARC64_NA%%lib/modules/drivers/cirrus_laguna.o
+%%AMD64_I386%%lib/modules/drivers/cyrix_drv.o
+%%AMD64_I386%%lib/modules/drivers/dummy_drv.o
+lib/modules/drivers/glint_drv.o
+%%AMD64_I386%%lib/modules/drivers/i128_drv.o
 %%I386%%lib/modules/drivers/i740_drv.o
 %%I386%%lib/modules/drivers/i810_drv.o
-%%SPARC64_NA%%lib/modules/drivers/mga_drv.o
-%%I386%%lib/modules/drivers/neomagic_drv.o
+lib/modules/drivers/mga_drv.o
+%%AMD64_I386%%lib/modules/drivers/neomagic_drv.o
 %%I386%%lib/modules/drivers/nsc_drv.o
-lib/modules/drivers/nv_drv.o
+%%SPARC64_NA%%lib/modules/drivers/nv_drv.o
 lib/modules/drivers/r128_drv.o
 lib/modules/drivers/radeon_drv.o
 %%SPARC64_NA%%%%IA64_NA%%lib/modules/drivers/rendition_drv.o
-lib/modules/drivers/riva128.o
+%%SPARC64_NA%%lib/modules/drivers/riva128.o
 %%SPARC64_NA%%%%IA64_NA%%lib/modules/drivers/s3_drv.o
 %%SPARC64_NA%%%%IA64_NA%%lib/modules/drivers/s3virge_drv.o
 %%SPARC64_NA%%%%IA64_NA%%lib/modules/drivers/savage_drv.o
 %%SPARC64_NA%%%%IA64_NA%%lib/modules/drivers/siliconmotion_drv.o
-%%SPARC64_NA%%%%IA64_NA%%lib/modules/drivers/sis_drv.o
+%%AMD64_I386%%lib/modules/drivers/sis_drv.o
+%%SPARC64%%lib/modules/drivers/sunbw2_drv.o
+%%SPARC64%%lib/modules/drivers/suncg14_drv.o
+%%SPARC64%%lib/modules/drivers/suncg3_drv.o
+%%SPARC64%%lib/modules/drivers/suncg6_drv.o
 %%SPARC64%%lib/modules/drivers/sunffb_drv.o
-%%SPARC64_NA%%lib/modules/drivers/tdfx_drv.o
+%%SPARC64%%lib/modules/drivers/sunleo_drv.o
+%%SPARC64%%lib/modules/drivers/suntcx_drv.o
+lib/modules/drivers/tdfx_drv.o
 %%SPARC64_NA%%%%IA64_NA%%lib/modules/drivers/tga_drv.o
-%%I386%%lib/modules/drivers/trident_drv.o
-%%I386%%lib/modules/drivers/tseng_drv.o
-%%I386%%lib/modules/drivers/vesa_drv.o
-%%SPARC64_NA%%lib/modules/drivers/vga_drv.o
+%%AMD64_I386%%lib/modules/drivers/trident_drv.o
+%%AMD64_I386%%lib/modules/drivers/tseng_drv.o
+%%ALPHA_NA%%lib/modules/drivers/vesa_drv.o
+lib/modules/drivers/vga_drv.o
 %%I386%%lib/modules/drivers/via_drv.o
 %%I386%%lib/modules/drivers/vmware_drv.o
 lib/modules/extensions/libGLcore.a
@@ -130,9 +129,7 @@
 lib/modules/extensions/libxtrap.a
 lib/modules/fonts/libbitmap.a
 lib/modules/fonts/libfreetype.so
-lib/modules/fonts/libspeedo.a
 lib/modules/fonts/libtype1.a
-lib/modules/fonts/libxtt.a
 lib/modules/freebsd/libdrm.a
 lib/modules/input/acecad_drv.o
 lib/modules/input/calcomp_drv.o
@@ -145,6 +142,7 @@
 lib/modules/input/hyperpen_drv.o
 lib/modules/input/js_x_drv.o
 lib/modules/input/kbd_drv.o
+lib/modules/input/keyboard_drv.o
 lib/modules/input/magellan_drv.o
 lib/modules/input/microtouch_drv.o
 lib/modules/input/mouse_drv.o
@@ -156,11 +154,13 @@
 lib/modules/input/tek4957_drv.o
 lib/modules/input/void_drv.o
 lib/modules/input/wacom_drv.o
-%%I386%%lib/modules/libafb.a
+%%ALPHA_NA%%lib/modules/libafb.a
 lib/modules/libcfb.a
 lib/modules/libcfb16.a
 lib/modules/libcfb24.a
 lib/modules/libcfb32.a
+lib/modules/libcw.a
+lib/modules/libdamage.a
 lib/modules/libddc.a
 lib/modules/libfb.a
 lib/modules/libi2c.a
@@ -181,5 +181,7 @@
 lib/modules/libxf4bpp.a
 lib/modules/libxf8_16bpp.a
 lib/modules/libxf8_32bpp.a
+%%SPARC64%%lib/modules/libxf8_32wid.a
 %%SPARC64_NA%%lib/modules/v10002d.uc
 %%SPARC64_NA%%lib/modules/v20002d.uc
+ at dirrm lib/X11/getconfig
Index: files/patch-DragonFly.cf
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/files/patch-DragonFly.cf,v
retrieving revision 1.4
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.4 patch-DragonFly.cf
--- files/patch-DragonFly.cf	20 Dec 2004 09:05:55 -0000	1.4
+++ files/patch-DragonFly.cf	1 Jan 2005 09:55:02 -0000
@@ -1,5 +1,5 @@
---- /dev/null	Mon Mar 29 02:57:52 2004
-+++ config/cf/DragonFly.cf	Mon Mar 29 02:56:38 2004
+--- config/cf/DragonFly.cf.orig	2005-01-01 18:49:22.000000000 +0900
++++ config/cf/DragonFly.cf	2005-01-01 18:50:10.000000000 +0900
 @@ -0,0 +1,278 @@
 +/* xc/config/cf/DragonFly.cf */
 +
@@ -74,8 +74,8 @@
 +# define BuildThreadStubLibrary	YES
 +# define NeedUIThrStubs		YES
 +# define ThreadsLibraries	-pthread
-+# define SharedX11Reqs		$(LDPRELIB) -lXThrStub
-+# define SharedXtReqs		$(LDPRELIB) $(XONLYLIB) $(SMLIB) $(ICELIB) -lXThrStub
++# define SharedX11Reqs		$(LDPRELIB) $(XTHRSTUBLIB)
++# define SharedXtReqs		$(LDPRELIB) $(XONLYLIB) $(SMLIB) $(ICELIB) $(XTHRSTUBLIB)
 +#endif
 +
 +#define AvoidNullMakeCommand	YES
Index: files/patch-FreeBSD.cf
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/files/patch-FreeBSD.cf,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 patch-FreeBSD.cf
--- files/patch-FreeBSD.cf	16 Aug 2004 12:30:29 -0000	1.1
+++ files/patch-FreeBSD.cf	1 Jan 2005 09:46:32 -0000
@@ -1,54 +1,56 @@
---- config/cf/FreeBSD.cf.orig	Fri Apr  2 13:47:10 2004
-+++ config/cf/FreeBSD.cf	Fri May  7 17:32:47 2004
-@@ -109,7 +109,7 @@
+--- config/cf/FreeBSD.cf.orig	Sat Aug 14 17:03:36 2004
++++ config/cf/FreeBSD.cf	Wed Dec 29 13:40:20 2004
+@@ -78,6 +78,7 @@
+ #define HasIssetugid		YES
+ #define HasPoll			YES
+ #endif
++#define BuildHtmlManPages	NO
+ 
+ #if OSMajorVersion >= 4
+ #define HasGetIfAddrs		YES
+@@ -116,15 +117,14 @@
  # endif
- # define HasPosixThreads	YES
- # define ThreadedX		YES
--# define SystemMTDefines	-D_REENTRANT -D_THREAD_SAFE
-+# define SystemMTDefines	FreeBSDPTHREAD_CFLAGS
- /*
-  * FreeBSD has tread-safe api but no getpwnam_r yet.
-  */
-@@ -119,9 +119,8 @@
+ # if (OSRelVersion < 500043)
+ #  define NeedUIThrStubs	YES
+-# endif
+-# if (OSRelVersion >= 502102)
+-#  define ThreadsLibraries	-lpthread
+-# elif (OSRelVersion >= 500016)
+-#  define ThreadsLibraries	-lc_r
++#  define BuildThreadStubLibrary	YES
++#  define SharedX11Reqs		$(LDPRELIB) $(XTHRSTUBLIB)
++#  define SharedXtReqs		$(LDPRELIB) $(XONLYLIB) $(SMLIB) $(ICELIB) $(XTHRSTUBLIB)
  # else
- #  define MTSafeAPIDefines	-DXUSE_MTSAFE_API
+-#  define ThreadsLibraries	-pthread
++#  define BuildThreadStubLibrary	NO
  # endif
--# if HasLibPthread
--#  define ThreadsLibraries	-lpthread
--# else
+-# define SystemMTDefines	-D_THREAD_SAFE
 +# define ThreadsLibraries	FreeBSDPTHREAD_LIBS
-+# if !HasLibPthread
- #  if OSRelVersion >= 500043
- #   define BuildThreadStubLibrary  NO
- #   define NeedUIThrStubs          NO
-@@ -130,10 +129,7 @@
- #   define NeedUIThrStubs          YES
- #  endif
- #  if (OSRelVersion >= 500016)
--#   define ThreadsLibraries	-lc_r
- #   define SharedGLReqs		$(LDPRELIBS) $(XLIB) -lc
--#  else
--#   define ThreadsLibraries	-pthread
- #  endif
- #  define SharedX11Reqs		$(LDPRELIB) $(XTHRSTUBLIB)
- #  define SharedXtReqs		$(LDPRELIB) $(XONLYLIB) $(SMLIB) $(ICELIB) $(XTHRSTUBLIB)
-@@ -192,11 +188,11 @@
-  *    ld: warning: libXThrStub.so.6, needed by libX11.so, not found
-  */
- #if BuildThreadStubLibrary && (!defined(UseInstalledX11) || !UseInstalledX11)
--# define CcCmd			$(CLIENTENVSETUP) cc
--# define CplusplusCmd		$(CLIENTENVSETUP) c++
-+# define CcCmd			$(CLIENTENVSETUP) FreeBSDCC
-+# define CplusplusCmd		$(CLIENTENVSETUP) FreeBSDCXX
- #else
--# define CcCmd			cc
--# define CplusplusCmd		c++
-+# define CcCmd			FreeBSDCC
-+# define CplusplusCmd		FreeBSDCXX
++# define SystemMTDefines	FreeBSDPTHREAD_CFLAGS
+ #endif
+ 
+ /* This fixes linking C programs against libGLU on FreeBSD 3.x */
+@@ -172,12 +172,14 @@
+ #endif
  #endif
  
+-#ifndef CcCmd
+-#define CcCmd			cc
+-#endif
+-#ifndef CplusplusCmd
+-#define CplusplusCmd		c++
++#if BuildThreadStubLibrary && (!defined(UseInstalledX11) || !UseInstalledX11)
++#define CcCmd			$(CLIENTENVSETUP) FreeBSDCC
++#define CplusplusCmd		$(CLIENTENVSETUP) FreeBSDCXX
++#else
++#define CcCmd			FreeBSDCC
++#define CplusplusCmd		FreeBSDCXX
+ #endif
++
  #define CppCmd			/usr/bin/cpp
-@@ -359,7 +355,7 @@
+ #define PreProcessCmd		CppCmd
+ #define StandardCppOptions	-traditional
+@@ -338,7 +340,7 @@
  #ifndef LibraryRpathLoadFlags
  # if UseRpath
  #  if UseElfFormat
@@ -57,7 +59,7 @@
  #  else
  #   define LibraryRpathLoadFlags	-R $(USRLIBDIRPATH)
  #  endif
-@@ -452,18 +450,8 @@
+@@ -463,18 +465,8 @@
  #define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
  #endif
  
Index: files/patch-Library.tmpl
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/files/patch-Library.tmpl,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 patch-Library.tmpl
--- files/patch-Library.tmpl	16 Aug 2004 12:30:29 -0000	1.1
+++ files/patch-Library.tmpl	28 Dec 2004 04:51:34 -0000
@@ -1,21 +1,21 @@
---- config/cf/Library.tmpl.orig	Mon Aug 27 10:40:55 2001
-+++ config/cf/Library.tmpl	Wed Oct 16 21:53:13 2002
-@@ -300,6 +300,10 @@
+--- config/cf/Library.tmpl.orig	Mon May 24 12:06:57 2004
++++ config/cf/Library.tmpl	Fri Sep 10 21:46:00 2004
+@@ -389,7 +389,7 @@
   */
  
  #ifndef MakeStringsDependency
-+#if defined(UseInstalled) || defined(UseInstalledPrograms)
-+#define MakeStringsDependency						@@\
-+MAKESTRS = makestrs
-+#else
- # define MakeStringsDependency						@@\
+-# ifndef UseInstalled
++# if !defined(UseInstalled) && !defined(UseInstalledPrograms)
+ #  define MakeStringsDependency						@@\
  MAKESTRS = $(CONFIGSRC)/util/makestrs					@@\
  NoCmpScript(HostProgramTargetName($(MAKESTRS)) $(MAKESTRS).Osuf)	@@\
-@@ -308,6 +312,7 @@
- 	cd $(CONFIGSRC)/util && $(MAKE) HostProgramTargetName(makestrs)	@@\
+@@ -399,7 +399,8 @@
  									@@\
  includes:: HostProgramTargetName($(MAKESTRS))
-+#endif
+ # else
+-#  define MakeStringsDependency  /**/
++#  define MakeStringsDependency						@@\
++MAKESTRS = makestrs
+ # endif
  #endif
  
- #ifndef ToolkitMakeStrings
Index: files/patch-X11.tmpl
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/files/patch-X11.tmpl,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 patch-X11.tmpl
--- files/patch-X11.tmpl	16 Aug 2004 12:30:29 -0000	1.1
+++ files/patch-X11.tmpl	1 Jan 2005 09:46:32 -0000
@@ -1,6 +1,6 @@
---- config/cf/X11.tmpl.orig	Fri Apr  2 13:47:10 2004
-+++ config/cf/X11.tmpl	Sun May 30 12:46:35 2004
-@@ -576,7 +576,7 @@
+--- X11.tmpl.orig	Fri Sep  3 09:18:18 2004
++++ config/cf/X11.tmpl	Wed Dec 29 13:42:37 2004
+@@ -616,7 +616,7 @@
  #define BuildXft1Library	BuildRenderLibrary
  #endif
  #ifndef UseFontconfig
@@ -9,27 +9,71 @@
  #endif
  #ifndef BuildFontconfigLibrary
  #define BuildFontconfigLibrary	(UseFontconfig && !HasFontconfig)
-@@ -1543,7 +1543,14 @@
+@@ -773,6 +773,9 @@
+ #ifndef ThreadedProject
+ #define ThreadedProject ThreadedX
  #endif
- 
- #ifndef PsWrap
-+#if defined(UseInstalled) || defined(UseInstalledPrograms)
-+#define PsWrap pswrap
-+#define PsWrapDependency /**/
-+#else
- #define PsWrap $(PSWRAPSRC)/pswrap
-+#define PsWrapDependency HostProgramTargetName($(PSWRAP))
++#ifndef BuildThreadStubLibrary
++#define BuildThreadStubLibrary	NO
 +#endif
-+         PSWRAP = PsWrap
+ #ifndef NeedUIThrStubs
+ #define NeedUIThrStubs		NO
+ #endif
+@@ -1606,7 +1609,7 @@
  #endif
  
- #ifndef ResourceConfigurationManagement
-@@ -1615,7 +1622,7 @@
+ #ifndef PsWrap
+-# ifndef UseInstalled
++# if !defined(UseInstalled) && !defined(UseInstalledPrograms)
+ #  define PsWrap $(PSWRAPSRC)/pswrap
+ # else
+ #  define PsWrap pswrap
+@@ -1683,7 +1686,7 @@
  
       INSTAPPFLAGS = $(INSTDATFLAGS)	/* XXX - this should go away - XXX */
  
 -#if UseInstalledX11
 +#if UseInstalledX11 || UseInstalledClients
-               RGB = $(BINDIR)/rgb
-             FONTC = $(BINDIR)/bdftopcf
-       MKFONTSCALE = $(BINDIR)/mkfontscale
+               RGB = $(XBINDIR)/rgb
+             FONTC = $(XBINDIR)/bdftopcf
+       MKFONTSCALE = $(XBINDIR)/mkfontscale
+@@ -1843,6 +1846,39 @@
+       DEPXLIBONLY = $(DEPXONLYLIB)
+          XLIBONLY = $(XONLYLIB)
+      LINTXONLYLIB = $(LINTXONLY)
++
++#if BuildThreadStubLibrary
++#ifndef SharedLibXThrStub
++#define SharedLibXThrStub	YES
++#endif
++#ifndef NormalLibXThrStub
++#define NormalLibXThrStub	NO
++#endif
++#ifndef DebugLibXThrStub
++#define DebugLibXThrStub	NO
++#endif
++#ifndef ProfileLibXThrStub
++#define ProfileLibXThrStub	NO
++#endif
++   XTHRSTUBLIBSRC = $(LIBSRC)/XThrStub
++#if SharedLibXThrStub
++#ifndef SharedXThrStubRev
++#define SharedXThrStubRev 6.1
++#endif
++SharedLibReferences(XTHRSTUB,XThrStub,$(XTHRSTUBLIBSRC),SOXTHRSTUBREV,SharedXThrStubRev)
++#else
++ProjectUnsharedLibReferences(XTHRSTUB,XThrStub,$(XTHRSTUBSRC),XBuildLibDir)
++#endif
++#else
++#undef  SharedLibXThrStub
++#define SharedLibXThrStub	NO
++#undef  NormalLibXThrStub
++#define NormalLibXThrStub	NO
++#undef  DebugLibXThrStub
++#define DebugLibXThrStub	NO
++#undef  ProfileLibXThrStub
++#define ProfileLibXThrStub	NO
++#endif
+ 
+ #if BuildScreenSaverLibrary
+ #ifndef SharedLibXss
Index: files/patch-alpha_video.c
===================================================================
RCS file: files/patch-alpha_video.c
diff -N files/patch-alpha_video.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-alpha_video.c	28 Dec 2004 04:51:34 -0000
@@ -0,0 +1,11 @@
+--- programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c.orig	Wed Sep  1 21:05:09 2004
++++ programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c	Wed Sep  1 21:06:52 2004
+@@ -487,7 +487,7 @@
+ writeSparse32(int Value, pointer Base, register unsigned long Offset);
+ 
+ #ifdef __FreeBSD__
+-extern int sysarch(int, char *);
++extern int sysarch(int, void *);
+ #endif
+ 
+ struct parms {
Index: files/patch-bus-Imakefile
===================================================================
RCS file: files/patch-bus-Imakefile
diff -N files/patch-bus-Imakefile
--- files/patch-bus-Imakefile	16 Aug 2004 12:30:29 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
-Index: programs/Xserver/hw/xfree86/os-support/bus/Imakefile
-===================================================================
-RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile,v
-retrieving revision 1.2
-diff -u -r1.2 Imakefile
---- programs/Xserver/hw/xfree86/os-support/bus/Imakefile	23 Apr 2004 19:54:08 -0000	1.2
-+++ programs/Xserver/hw/xfree86/os-support/bus/Imakefile	11 May 2004 07:58:43 -0000
-@@ -80,8 +80,8 @@
- PCIDRVRSRC = ix86Pci.c linuxPci.c
- PCIDRVROBJ = ix86Pci.o linuxPci.o
- 
--#elif defined(FreeBSDArchitecture) && defined(AlphaArchitecture)
--
-+#elif defined(FreeBSDArchitecture) && \
-+	(defined(AlphaArchitecture) || defined(AMD64Architecture))
- 
- XCOMM generic FreeBSD PCI driver (using /dev/pci)
- 
Index: files/patch-drm.h
===================================================================
RCS file: files/patch-drm.h
diff -N files/patch-drm.h
--- files/patch-drm.h	16 Aug 2004 12:30:29 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
---- programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h	Mon Apr  5 23:28:41 2004
-+++ programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h	Mon Apr  5 23:32:53 2004
-@@ -46,8 +46,8 @@
- #define DRM_IOC_WRITE		_IOC_WRITE
- #define DRM_IOC_READWRITE	_IOC_READ|_IOC_WRITE
- #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
--#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
--#if defined(__FreeBSD__) && defined(IN_MODULE)
-+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
-+#if (defined(__FreeBSD__) || defined(__DragonFly__)) && defined(IN_MODULE)
- /* Prevent name collision when including sys/ioccom.h */
- #undef ioctl
- #include <sys/ioccom.h>
Index: files/patch-elfloader.c
===================================================================
RCS file: files/patch-elfloader.c
diff -N files/patch-elfloader.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-elfloader.c	1 Jan 2005 10:02:37 -0000
@@ -0,0 +1,35 @@
+Index: programs/Xserver/hw/xfree86/loader/elfloader.c
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -u -r1.3 -r1.4
+--- programs/Xserver/hw/xfree86/loader/elfloader.c	30 Oct 2004 20:33:43 -0000	1.3
++++ programs/Xserver/hw/xfree86/loader/elfloader.c	9 Nov 2004 15:58:41 -0000	1.4
+@@ -1,4 +1,4 @@
+-/* $XdotOrg: xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v 1.3 2004/10/30 20:33:43 alanc Exp $ */
++/* $XdotOrg: xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v 1.4 2004/11/09 15:58:41 ajax Exp $ */
+ /* $XFree86: xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v 1.61tsi Exp $ */
+ 
+ /*
+@@ -1609,6 +1609,20 @@
+ 	    break;
+ 	}
+ 
++ 	case R_ALPHA_SREL32:
++ 	    {
++ 		dest32 = (unsigned int *)(secp + rel->r_offset);
++ 		symval += rel->r_addend;
++ 		symval -= (unsigned long) dest32;
++ 		if ((long)symval >= 0x80000000
++ 		    || (long)symval < -(long)0x80000000)
++ 		    FatalError("R_ALPHA_SREL32 overflow for %s: %lx\n",
++ 			       ElfGetSymbolName(elffile, ELF_R_SYM(rel->r_info)),
++ 			       symval);
++ 		*dest32 = symval;
++ 		break;
++ 	    }
++ 
+ #endif /* alpha */
+ #if defined(__mc68000__)
+     case R_68K_32:
Index: files/patch-fb-renderfixes.diff
===================================================================
RCS file: files/patch-fb-renderfixes.diff
diff -N files/patch-fb-renderfixes.diff
--- files/patch-fb-renderfixes.diff	16 Aug 2004 12:30:29 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,320 +0,0 @@
-Index: programs/Xserver/fb/fbcompose.c
-===================================================================
-RCS file: /cvs/xorg/xc/programs/Xserver/fb/fbcompose.c,v
-retrieving revision 1.2
-diff -u -r1.2 fbcompose.c
---- programs/Xserver/fb/fbcompose.c	23 Apr 2004 19:05:14 -0000	1.2
-+++ programs/Xserver/fb/fbcompose.c	11 May 2004 22:58:12 -0000
-@@ -191,15 +191,15 @@
-     a = (*msk->fetcha) (msk);
-     if (!a)
- 	return 0;
--    
--    x = (*src->fetcha) (src);
--    if (a == 0xffffffff)
--	return x;
--    
--    m = FbInC(x,0,a,t);
--    n = FbInC(x,8,a,t);
--    o = FbInC(x,16,a,t);
--    p = FbInC(x,24,a,t);
-+
-+    x = (*src->fetch) (src) >> 24;
-+    if (x == 0xff)
-+	return a;
-+
-+    m = FbInU(a,0,x,t);
-+    n = FbInU(a,8,x,t);
-+    o = FbInU(a,16,x,t);
-+    p = FbInU(a,24,x,t);
-     return m|n|o|p;
- }
- 
-@@ -608,7 +608,7 @@
-     cs = fbCombineMaskC (src, msk);
-     d = (*dst->fetch) (dst);
-     s = cs.value;
--    ad = cs.alpha;
-+    ad = ~cs.alpha;
-     as = d >> 24;
-     m = FbGen(s,d,0,as,FbGet8(ad,0),t,u,v);
-     n = FbGen(s,d,8,as,FbGet8(ad,8),t,u,v);
-@@ -698,10 +698,10 @@
-     s = cs.value;
-     ad = ~cs.alpha;
-     as = ~d >> 24;
--    m = FbGen(s,d,0,as,ad,t,u,v);
--    n = FbGen(s,d,8,as,ad,t,u,v);
--    o = FbGen(s,d,16,as,ad,t,u,v);
--    p = FbGen(s,d,24,as,ad,t,u,v);
-+    m = FbGen(s,d,0,as,FbGet8(ad,0),t,u,v);
-+    n = FbGen(s,d,8,as,FbGet8(ad,8),t,u,v);
-+    o = FbGen(s,d,16,as,FbGet8(ad,16),t,u,v);
-+    p = FbGen(s,d,24,as,FbGet8(ad,24),t,u,v);
-     (*dst->store) (dst, m|n|o|p);
- }
- 
-@@ -763,10 +763,9 @@
- 		    FbCompositeOperand   *dst)
- {
-     CARD32  s = fbCombineMaskU (src, msk), d;
--#if 0
-     CARD16  sa, da;
-     CARD16  ad, as;
--    CARD16  t;
-+    CARD16  t, u, v;
-     CARD32  m,n,o,p;
-     
-     d = (*dst->fetch) (dst);
-@@ -789,16 +788,6 @@
- 	p = FbGen(s,d,24,as,ad,t,u,v);
-     }
-     (*dst->store) (dst, m|n|o|p);
--#else
--    if ((s >> 24) == 0xff)
--	(*dst->store) (dst, s);
--    else
--    {
--	d = (*dst->fetch) (dst);
--	if ((s >> 24) > (d >> 24))
--	    (*dst->store) (dst, s);
--    }
--#endif
- }
- 
- void
-@@ -831,7 +820,7 @@
-     else
- 	n = FbGen (s, d, 8, (da << 8) / sg, 0xff, t, u, v);
-     
--    if (sr < da)
-+    if (sr <= da)
- 	o = FbAdd(s,d,16,t);
-     else
- 	o = FbGen (s, d, 16, (da << 8) / sr, 0xff, t, u, v);
-@@ -972,8 +961,8 @@
-     FbCompSrc	cs;
-     CARD32  s, d;
-     CARD32  m,n,o,p;
--    CARD32  Fa;
--    CARD16  Fb, t, u, v;
-+    CARD32  Fa, Fb;
-+    CARD16  t, u, v;
-     CARD32  sa;
-     CARD8   da;
- 
-@@ -996,10 +985,10 @@
- 	Fa = m|n|o|p;
- 	break;
-     case CombineAIn:
--	m = fbCombineDisjointOutPart ((CARD8) (sa >> 0), da);
--	n = fbCombineDisjointOutPart ((CARD8) (sa >> 8), da) << 8;
--	o = fbCombineDisjointOutPart ((CARD8) (sa >> 16), da) << 16;
--	p = fbCombineDisjointOutPart ((CARD8) (sa >> 24), da) << 24;
-+	m = fbCombineDisjointInPart ((CARD8) (sa >> 0), da);
-+	n = fbCombineDisjointInPart ((CARD8) (sa >> 8), da) << 8;
-+	o = fbCombineDisjointInPart ((CARD8) (sa >> 16), da) << 16;
-+	p = fbCombineDisjointInPart ((CARD8) (sa >> 24), da) << 24;
- 	Fa = m|n|o|p;
- 	break;
-     case CombineA:
-@@ -1012,19 +1001,27 @@
- 	Fb = 0;
- 	break;
-     case CombineBOut:
--	Fb = fbCombineDisjointOutPart (da, sa);
-+	m = fbCombineDisjointOutPart (da, (CARD8) (sa >> 0));
-+	n = fbCombineDisjointOutPart (da, (CARD8) (sa >> 8)) << 8;
-+	o = fbCombineDisjointOutPart (da, (CARD8) (sa >> 16)) << 16;
-+	p = fbCombineDisjointOutPart (da, (CARD8) (sa >> 24)) << 24;
-+	Fb = m|n|o|p;
- 	break;
-     case CombineBIn:
--	Fb = fbCombineDisjointInPart (da, sa);
-+	m = fbCombineDisjointInPart (da, (CARD8) (sa >> 0));
-+	n = fbCombineDisjointInPart (da, (CARD8) (sa >> 8)) << 8;
-+	o = fbCombineDisjointInPart (da, (CARD8) (sa >> 16)) << 16;
-+	p = fbCombineDisjointInPart (da, (CARD8) (sa >> 24)) << 24;
-+	Fb = m|n|o|p;
- 	break;
-     case CombineB:
--	Fb = 0xff;
-+	Fb = 0xffffffff;
- 	break;
-     }
--    m = FbGen (s,d,0,FbGet8(Fa,0),Fb,t,u,v);
--    n = FbGen (s,d,8,FbGet8(Fa,8),Fb,t,u,v);
--    o = FbGen (s,d,16,FbGet8(Fa,16),Fb,t,u,v);
--    p = FbGen (s,d,24,FbGet8(Fa,24),Fb,t,u,v);
-+    m = FbGen (s,d,0,FbGet8(Fa,0),FbGet8(Fb,0),t,u,v);
-+    n = FbGen (s,d,8,FbGet8(Fa,8),FbGet8(Fb,8),t,u,v);
-+    o = FbGen (s,d,16,FbGet8(Fa,16),FbGet8(Fb,16),t,u,v);
-+    p = FbGen (s,d,24,FbGet8(Fa,24),FbGet8(Fb,24),t,u,v);
-     s = m|n|o|p;
-     (*dst->store) (dst, s);
- }
-@@ -1065,21 +1062,6 @@
-     fbCombineDisjointGeneralC (src, msk, dst, CombineAOver);
- }
- 
--void
--fbCombineDisjointOverReverseU (FbCompositeOperand    *src,
--			       FbCompositeOperand    *msk,
--			       FbCompositeOperand    *dst)
--{
--    fbCombineDisjointGeneralU (src, msk, dst, CombineBOver);
--}
--
--void
--fbCombineDisjointOverReverseC (FbCompositeOperand    *src,
--			       FbCompositeOperand    *msk,
--			       FbCompositeOperand    *dst)
--{
--    fbCombineDisjointGeneralC (src, msk, dst, CombineBOver);
--}
- 
- void
- fbCombineDisjointInU (FbCompositeOperand	    *src,
-@@ -1281,8 +1263,8 @@
-     FbCompSrc	cs;
-     CARD32  s, d;
-     CARD32  m,n,o,p;
--    CARD32  Fa;
--    CARD16  Fb, t, u, v;
-+    CARD32  Fa, Fb;
-+    CARD16  t, u, v;
-     CARD32  sa;
-     CARD8   da;
- 
-@@ -1305,10 +1287,10 @@
- 	Fa = m|n|o|p;
- 	break;
-     case CombineAIn:
--	m = fbCombineConjointOutPart ((CARD8) (sa >> 0), da);
--	n = fbCombineConjointOutPart ((CARD8) (sa >> 8), da) << 8;
--	o = fbCombineConjointOutPart ((CARD8) (sa >> 16), da) << 16;
--	p = fbCombineConjointOutPart ((CARD8) (sa >> 24), da) << 24;
-+	m = fbCombineConjointInPart ((CARD8) (sa >> 0), da);
-+	n = fbCombineConjointInPart ((CARD8) (sa >> 8), da) << 8;
-+	o = fbCombineConjointInPart ((CARD8) (sa >> 16), da) << 16;
-+	p = fbCombineConjointInPart ((CARD8) (sa >> 24), da) << 24;
- 	Fa = m|n|o|p;
- 	break;
-     case CombineA:
-@@ -1321,19 +1303,27 @@
- 	Fb = 0;
- 	break;
-     case CombineBOut:
--	Fb = fbCombineConjointOutPart (da, sa);
-+	m = fbCombineConjointOutPart (da, (CARD8) (sa >> 0));
-+	n = fbCombineConjointOutPart (da, (CARD8) (sa >> 8)) << 8;
-+	o = fbCombineConjointOutPart (da, (CARD8) (sa >> 16)) << 16;
-+	p = fbCombineConjointOutPart (da, (CARD8) (sa >> 24)) << 24;
-+	Fb = m|n|o|p;
- 	break;
-     case CombineBIn:
--	Fb = fbCombineConjointInPart (da, sa);
-+	m = fbCombineConjointInPart (da, (CARD8) (sa >> 0));
-+	n = fbCombineConjointInPart (da, (CARD8) (sa >> 8)) << 8;
-+	o = fbCombineConjointInPart (da, (CARD8) (sa >> 16)) << 16;
-+	p = fbCombineConjointInPart (da, (CARD8) (sa >> 24)) << 24;
-+	Fb = m|n|o|p;
- 	break;
-     case CombineB:
--	Fb = 0xff;
-+	Fb = 0xffffffff;
- 	break;
-     }
--    m = FbGen (s,d,0,FbGet8(Fa,0),Fb,t,u,v);
--    n = FbGen (s,d,8,FbGet8(Fa,8),Fb,t,u,v);
--    o = FbGen (s,d,16,FbGet8(Fa,16),Fb,t,u,v);
--    p = FbGen (s,d,24,FbGet8(Fa,24),Fb,t,u,v);
-+    m = FbGen (s,d,0,FbGet8(Fa,0),FbGet8(Fb,0),t,u,v);
-+    n = FbGen (s,d,8,FbGet8(Fa,8),FbGet8(Fb,8),t,u,v);
-+    o = FbGen (s,d,16,FbGet8(Fa,16),FbGet8(Fb,16),t,u,v);
-+    p = FbGen (s,d,24,FbGet8(Fa,24),FbGet8(Fb,24),t,u,v);
-     s = m|n|o|p;
-     (*dst->store) (dst, s);
- }
-@@ -1519,14 +1509,14 @@
-     fbCombineAtopReverseU,
-     fbCombineXorU,
-     fbCombineAddU,
--    fbCombineDisjointOverU, /* Saturate */
-+    fbCombineSaturateU,
-     0,
-     0,
-     fbCombineClear,
-     fbCombineSrcU,
-     fbCombineDst,
-     fbCombineDisjointOverU,
--    fbCombineDisjointOverReverseU,
-+    fbCombineSaturateU, /* DisjointOverReverse */
-     fbCombineDisjointInU,
-     fbCombineDisjointInReverseU,
-     fbCombineDisjointOutU,
-@@ -1566,14 +1556,14 @@
-     fbCombineAtopReverseC,
-     fbCombineXorC,
-     fbCombineAddC,
--    fbCombineDisjointOverC, /* Saturate */
-+    fbCombineSaturateC,
-     0,
-     0,
-     fbCombineClear,	    /* 0x10 */
-     fbCombineSrcC,
-     fbCombineDst,
-     fbCombineDisjointOverC,
--    fbCombineDisjointOverReverseC,
-+    fbCombineSaturateC, /* DisjointOverReverse */
-     fbCombineDisjointInC,
-     fbCombineDisjointInReverseC,
-     fbCombineDisjointOutC,
-Index: programs/Xserver/fb/fbpict.c
-===================================================================
-RCS file: /cvs/xorg/xc/programs/Xserver/fb/fbpict.c,v
-retrieving revision 1.2
-diff -u -r1.2 fbpict.c
---- programs/Xserver/fb/fbpict.c	23 Apr 2004 19:05:14 -0000	1.2
-+++ programs/Xserver/fb/fbpict.c	12 May 2004 00:45:56 -0000
-@@ -1001,7 +1001,6 @@
- 	{
- 	    switch (pSrc->format) {
- 	    case PICT_a8r8g8b8:
--	    case PICT_x8r8g8b8:
- 		switch (pDst->format) {
- 		case PICT_a8r8g8b8:
- 		case PICT_x8r8g8b8:
-@@ -1016,7 +1015,6 @@
- 		}
- 		break;
- 	    case PICT_a8b8g8r8:
--	    case PICT_x8b8g8r8:
- 		switch (pDst->format) {
- 		case PICT_a8b8g8r8:
- 		case PICT_x8b8g8r8:
-Index: programs/Xserver/fb/fbpict.h
-===================================================================
-RCS file: /cvs/xorg/xc/programs/Xserver/fb/fbpict.h,v
-retrieving revision 1.2
-diff -u -r1.2 fbpict.h
---- programs/Xserver/fb/fbpict.h	23 Apr 2004 19:05:14 -0000	1.2
-+++ programs/Xserver/fb/fbpict.h	11 May 2004 18:46:20 -0000
-@@ -333,15 +333,8 @@
- 			FbCompositeOperand   *msk,
- 			FbCompositeOperand   *dst);
- 
--void
--fbCombineDisjointOverReverseU (FbCompositeOperand    *src,
--			       FbCompositeOperand    *msk,
--			       FbCompositeOperand    *dst);
--
--void
--fbCombineDisjointOverReverseC (FbCompositeOperand    *src,
--			       FbCompositeOperand    *msk,
--			       FbCompositeOperand    *dst);
-+#define fbCombineDisjointOverReverseU fbCombineSaturateU
-+#define fbCombineDisjointOverReverseC fbCombineSaturateC
- 
- void
- fbCombineDisjointInU (FbCompositeOperand	    *src,
Index: files/patch-i810-6_8
===================================================================
RCS file: files/patch-i810-6_8
diff -N files/patch-i810-6_8
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-i810-6_8	1 Jan 2005 10:02:37 -0000
@@ -0,0 +1,437 @@
+Index: programs/Xserver/hw/xfree86/drivers/i810/common.h
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/common.h,v
+retrieving revision 1.3
+retrieving revision 1.3.4.1
+diff -u -u -r1.3 -r1.3.4.1
+--- programs/Xserver/hw/xfree86/drivers/i810/common.h	22 Jun 2004 14:28:46 -0000	1.3
++++ programs/Xserver/hw/xfree86/drivers/i810/common.h	15 Dec 2004 09:35:23 -0000	1.3.4.1
+@@ -173,7 +173,7 @@
+ #define BEGIN_LP_RING(n)						\
+    unsigned int outring, ringmask;					\
+    volatile unsigned char *virt;					\
+-   unsigned int needed;							\
++   int needed;							\
+    if ((n) & 1)								\
+       ErrorF("BEGIN_LP_RING called with odd argument: %d\n", n);	\
+    if ((n) > 2 && (I810_DEBUG&DEBUG_ALWAYS_SYNC))			\
+@@ -206,7 +206,7 @@
+ #define BEGIN_LP_RING(n)						\
+    unsigned int outring, ringmask;					\
+    volatile unsigned char *virt;					\
+-   unsigned int needed;							\
++   int needed;								\
+    if ((n) & 1)								\
+       ErrorF("BEGIN_LP_RING called with odd argument: %d\n", n);	\
+    if ((n) > 2 && (I810_DEBUG&DEBUG_ALWAYS_SYNC))			\
+Index: programs/Xserver/hw/xfree86/drivers/i810/i810.h
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h,v
+retrieving revision 1.4
+retrieving revision 1.4.4.1
+diff -u -u -r1.4 -r1.4.4.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i810.h	22 Jun 2004 14:28:46 -0000	1.4
++++ programs/Xserver/hw/xfree86/drivers/i810/i810.h	15 Dec 2004 09:35:23 -0000	1.4.4.1
+@@ -172,7 +172,7 @@
+    unsigned long OverlayPhysical;
+    unsigned long OverlayStart;
+    int colorKey;
+-   int surfaceAllocation[I810_TOTAL_SURFACES];
++   unsigned int surfaceAllocation[I810_TOTAL_SURFACES];
+    int numSurfaces;
+ 
+    DGAModePtr DGAModes;
+@@ -295,9 +295,10 @@
+ extern void I810Sync(ScrnInfoPtr pScrn);
+ extern unsigned long I810LocalToPhysical(ScrnInfoPtr pScrn,
+ 					 unsigned long local);
+-extern int I810AllocLow(I810MemRange * result, I810MemRange * pool, int size);
++extern int I810AllocLow(I810MemRange * result, I810MemRange * pool, 
++			int size);
+ extern int I810AllocHigh(I810MemRange * result, I810MemRange * pool,
+-			 int size);
++			int size);
+ extern Bool I810AllocateFront(ScrnInfoPtr pScrn);
+ 
+ extern int I810AllocateGARTMemory(ScrnInfoPtr pScrn);
+Index: programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c,v
+retrieving revision 1.4
+retrieving revision 1.4.2.1
+diff -u -u -r1.4 -r1.4.2.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c	30 Jul 2004 20:30:52 -0000	1.4
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c	15 Dec 2004 09:35:23 -0000	1.4.2.1
+@@ -259,7 +259,7 @@
+ #ifdef XF86DRI
+    /* VT switching tries to do this.  
+     */
+-   if (!pI810->LockHeld && pI810->directRenderingEnabled) {
++   if ((!pI810->LockHeld && pI810->directRenderingEnabled) || !pScrn->vtSema) {
+       return;
+    }
+ #endif
+Index: programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c,v
+retrieving revision 1.4
+retrieving revision 1.4.4.1
+diff -u -u -r1.4 -r1.4.4.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c	22 Jun 2004 14:28:46 -0000	1.4
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c	15 Dec 2004 09:35:23 -0000	1.4.4.1
+@@ -290,7 +290,7 @@
+    unsigned long dcacheHandle;
+    int sysmem_size = 0;
+    int back_size = 0;
+-   int pitch_idx = 0;
++   unsigned int pitch_idx = 0;
+    int bufs;
+    int width = pScrn->displayWidth * pI810->cpp;
+    int i;
+Index: programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v
+retrieving revision 1.9
+retrieving revision 1.9.2.1
+diff -u -u -r1.9 -r1.9.2.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c	25 Aug 2004 00:30:41 -0000	1.9
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c	15 Dec 2004 09:35:23 -0000	1.9.2.1
+@@ -1124,14 +1124,6 @@
+    xf86SetOperatingState(resVgaIo, pI810->pEnt->index, ResUnusedOpr);
+    xf86SetOperatingState(resVgaMem, pI810->pEnt->index, ResDisableOpr);
+ 
+-   pI810->LpRing = xalloc(sizeof(I810RingBuffer));
+-   if (!pI810->LpRing) {
+-     xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 
+-		"Could not allocate lpring data structure.\n");
+-     I810FreeRec(pScrn);
+-     return FALSE;
+-   }
+-   
+    return TRUE;
+ }
+ 
+@@ -1159,7 +1151,7 @@
+ I810MapMem(ScrnInfoPtr pScrn)
+ {
+    I810Ptr pI810 = I810PTR(pScrn);
+-   unsigned i;
++   long i;
+ 
+    for (i = 2; i < pI810->FbMapSize; i <<= 1) ;
+    pI810->FbMapSize = i;
+@@ -2074,6 +2066,13 @@
+    pI810 = I810PTR(pScrn);
+    hwp = VGAHWPTR(pScrn);
+ 
++   pI810->LpRing = xcalloc(sizeof(I810RingBuffer),1);
++   if (!pI810->LpRing) {
++     xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 
++		"Could not allocate lpring data structure.\n");
++     return FALSE;
++   }
++   
+    miClearVisualTypes();
+ 
+    /* Re-implemented Direct Color support, -jens */
+Index: programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c,v
+retrieving revision 1.4
+retrieving revision 1.4.2.1
+diff -u -u -r1.4 -r1.4.2.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c	30 Aug 2004 03:19:08 -0000	1.4
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c	15 Dec 2004 09:35:23 -0000	1.4.2.1
+@@ -55,7 +55,7 @@
+ int
+ I810AllocLow(I810MemRange * result, I810MemRange * pool, int size)
+ {
+-   if (size > pool->Size)
++   if (size > (long)pool->Size)
+       return 0;
+ 
+    pool->Size -= size;
+@@ -69,7 +69,7 @@
+ int
+ I810AllocHigh(I810MemRange * result, I810MemRange * pool, int size)
+ {
+-   if (size > pool->Size)
++   if (size > (long)pool->Size)
+       return 0;
+ 
+    pool->Size -= size;
+Index: programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h,v
+retrieving revision 1.3
+retrieving revision 1.3.4.1
+diff -u -u -r1.3 -r1.3.4.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h	22 Jun 2004 14:28:46 -0000	1.3
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h	15 Dec 2004 09:35:23 -0000	1.3.4.1
+@@ -459,11 +459,11 @@
+ #define I830_HEAD_MASK      0x001FFFFC
+ 
+ #define RING_START     0x08
+-#define START_ADDR          0x00FFFFF8
++#define START_ADDR          0x03FFFFF8
+ #define I830_RING_START_MASK	0xFFFFF000
+ 
+ #define RING_LEN       0x0C
+-#define RING_NR_PAGES       0x000FF000 
++#define RING_NR_PAGES       0x001FF000 
+ #define I830_RING_NR_PAGES	0x001FF000
+ #define RING_REPORT_MASK    0x00000006
+ #define RING_REPORT_64K     0x00000002
+Index: programs/Xserver/hw/xfree86/drivers/i810/i830.h
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i830.h,v
+retrieving revision 1.5
+retrieving revision 1.5.4.1
+diff -u -u -r1.5 -r1.5.4.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i830.h	6 Jul 2004 14:37:47 -0000	1.5
++++ programs/Xserver/hw/xfree86/drivers/i810/i830.h	15 Dec 2004 09:35:23 -0000	1.5.4.1
+@@ -180,17 +180,17 @@
+    int CacheLines;
+ 
+    /* These are set in PreInit and never changed. */
+-   unsigned long FbMapSize;
+-   unsigned long TotalVideoRam;
++   long FbMapSize;
++   long TotalVideoRam;
+    I830MemRange StolenMemory;		/* pre-allocated memory */
+-   unsigned long BIOSMemorySize;	/* min stolen pool size */
++   long BIOSMemorySize;			/* min stolen pool size */
+    int BIOSMemSizeLoc;
+ 
+    /* These change according to what has been allocated. */
+    long FreeMemory;
+    I830MemRange MemoryAperture;
+    I830MemPool StolenPool;
+-   unsigned long allocatedMemory;
++   long allocatedMemory;
+ 
+    /* Regions allocated either from the above pools, or from agpgart. */
+    /* for single and dual head configurations */
+@@ -348,7 +348,7 @@
+    int xoffset;
+    int yoffset;
+ 
+-   int SaveGeneration;
++   unsigned int SaveGeneration;
+    Bool vbeRestoreWorkaround;
+    Bool displayInfo;
+    Bool devicePresence;
+@@ -415,7 +415,7 @@
+ extern Bool I830BindGARTMemory(ScrnInfoPtr pScrn);
+ extern Bool I830UnbindGARTMemory(ScrnInfoPtr pScrn);
+ extern unsigned long I830AllocVidMem(ScrnInfoPtr pScrn, I830MemRange *result,
+-				     I830MemPool *pool, unsigned long size,
++				     I830MemPool *pool, long size,
+ 				     unsigned long alignment, int flags);
+ 
+ extern void I830PrintAllRegisters(I830RegPtr i830Reg);
+Index: programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v
+retrieving revision 1.6
+retrieving revision 1.6.2.1
+diff -u -u -r1.6 -r1.6.2.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c	30 Jul 2004 20:38:27 -0000	1.6
++++ programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c	15 Dec 2004 09:35:23 -0000	1.6.2.1
+@@ -594,6 +594,7 @@
+    I830Ptr pI830 = I830PTR(pScrn);
+    vbeInfoPtr pVbe = pI830->pVbe;
+    CARD32 temp;
++
+ #ifdef I915G_WORKAROUND
+    int getmode;
+    int mode;
+@@ -1018,7 +1019,7 @@
+ I830MapMem(ScrnInfoPtr pScrn)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+-   unsigned i;
++   long i;
+ 
+    for (i = 2; i < pI830->FbMapSize; i <<= 1) ;
+    pI830->FbMapSize = i;
+@@ -2898,7 +2899,7 @@
+    OUTREG(LP_RING + RING_TAIL, 0);
+    OUTREG(LP_RING + RING_HEAD, 0);
+ 
+-   if ((pI830->LpRing->mem.Start & I830_RING_START_MASK) !=
++   if ((long)(pI830->LpRing->mem.Start & I830_RING_START_MASK) !=
+        pI830->LpRing->mem.Start) {
+       xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		 "I830SetRingRegs: Ring buffer start (%lx) violates its "
+@@ -3441,7 +3442,7 @@
+          I830Ptr pI8301 = I830PTR(pI830->entityPrivate->pScrn_1);
+ 
+          temp = INREG(stridereg);
+-         if (temp / pI8301->cpp != pI830->entityPrivate->pScrn_1->displayWidth) {
++         if (temp / pI8301->cpp != (CARD32)(pI830->entityPrivate->pScrn_1->displayWidth)) {
+             xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		    "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(pI830->pipe),
+ 		    (int)(temp / pI8301->cpp), pI830->entityPrivate->pScrn_1->displayWidth);
+@@ -3459,7 +3460,7 @@
+             sizereg = pI830->pipe ? DSPASIZE : DSPBSIZE;
+ 
+             temp = INREG(stridereg);
+-            if (temp / pI8302->cpp != pI830->entityPrivate->pScrn_2->displayWidth) {
++            if (temp / pI8302->cpp != (CARD32)(pI830->entityPrivate->pScrn_2->displayWidth)) {
+ 	       xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		    "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(!pI830->pipe),
+ 		    (int)(temp / pI8302->cpp), pI830->entityPrivate->pScrn_2->displayWidth);
+@@ -3478,7 +3479,7 @@
+          I830Ptr pI8302 = I830PTR(pI830->entityPrivate->pScrn_2);
+ 
+          temp = INREG(stridereg);
+-         if (temp / pI8301->cpp != pI830->entityPrivate->pScrn_1->displayWidth) {
++         if (temp / pI8301->cpp != (CARD32)(pI830->entityPrivate->pScrn_1->displayWidth)) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		    "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(pI830->pipe),
+ 		    (int)(temp / pI8301->cpp), pI830->entityPrivate->pScrn_1->displayWidth);
+@@ -3494,7 +3495,7 @@
+          sizereg = !pI830->pipe ? DSPASIZE : DSPBSIZE;
+ 
+          temp = INREG(stridereg);
+-         if (temp / pI8302->cpp != pI830->entityPrivate->pScrn_2->displayWidth) {
++         if (temp / pI8302->cpp != ((CARD32)pI830->entityPrivate->pScrn_2->displayWidth)) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		    "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(!pI830->pipe),
+ 		    (int)(temp / pI8302->cpp), pI830->entityPrivate->pScrn_2->displayWidth);
+@@ -3515,7 +3516,7 @@
+ 	    continue;
+ 
+          temp = INREG(stridereg);
+-         if (temp / pI830->cpp != pScrn->displayWidth) {
++         if (temp / pI830->cpp != (CARD32)pScrn->displayWidth) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		    "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(i),
+ 		    (int)(temp / pI830->cpp), pScrn->displayWidth);
+@@ -4354,6 +4355,9 @@
+       SaveHWOperatingState(pScrn);
+ #endif
+ 
++   ResetState(pScrn, TRUE);
++   RestoreHWState(pScrn);
++
+    if (IsPrimary(pScrn)) {
+       if (!SetDisplayDevices(pScrn, pI830->savedDevices)) {
+          xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+@@ -4365,8 +4369,6 @@
+       }
+    }
+ 
+-   ResetState(pScrn, TRUE);
+-   RestoreHWState(pScrn);
+    RestoreBIOSMemSize(pScrn);
+    if (IsPrimary(pScrn))
+       I830UnbindGARTMemory(pScrn);
+@@ -4506,7 +4508,8 @@
+    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    Bool on = xf86IsUnblank(mode);
+-   CARD32 temp, ctrl, base, i;
++   CARD32 temp, ctrl, base;
++   int i;
+ 
+    DPRINTF(PFX, "I830BIOSSaveScreen: %d, on is %s\n", mode, BOOLTOSTRING(on));
+ 
+Index: programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c,v
+retrieving revision 1.4
+retrieving revision 1.4.4.1
+diff -u -u -r1.4 -r1.4.4.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c	6 Jul 2004 14:37:47 -0000	1.4
++++ programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c	15 Dec 2004 09:35:23 -0000	1.4.4.1
+@@ -63,10 +63,10 @@
+  */
+ static unsigned long
+ AllocFromPool(ScrnInfoPtr pScrn, I830MemRange *result, I830MemPool *pool,
+-	      unsigned long size, unsigned long alignment, int flags)
++	      long size, unsigned long alignment, int flags)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+-   unsigned long needed, start, end;
++   long needed, start, end;
+    Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
+ 
+    if (!result || !pool || !size)
+@@ -94,7 +94,7 @@
+       }
+    }
+    if (needed > pool->Free.Size) {
+-      unsigned long extra;
++      long extra;
+       /* See if the pool can be grown. */
+       if (pI830->StolenOnly && !dryrun)
+ 	 return 0;
+@@ -107,7 +107,7 @@
+ 	    return 0;
+       }
+ 
+-      if (!dryrun && (extra > pI830->MemoryAperture.Size))
++      if (!dryrun && ((long)extra > pI830->MemoryAperture.Size))
+ 	 return 0;
+ 
+       pool->Free.Size += extra;
+@@ -136,7 +136,7 @@
+ }
+ 
+ static unsigned long
+-AllocFromAGP(ScrnInfoPtr pScrn, I830MemRange *result, unsigned long size,
++AllocFromAGP(ScrnInfoPtr pScrn, I830MemRange *result, long size,
+ 	     unsigned long alignment, int flags)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+@@ -212,7 +212,7 @@
+ 
+ unsigned long
+ I830AllocVidMem(ScrnInfoPtr pScrn, I830MemRange *result, I830MemPool *pool,
+-		unsigned long size, unsigned long alignment, int flags)
++		long size, unsigned long alignment, int flags)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+    Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
+@@ -392,7 +392,7 @@
+ I830Allocate2DMemory(ScrnInfoPtr pScrn, const int flags)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+-   unsigned long size, alloced;
++   long size, alloced;
+    Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
+    int verbosity = dryrun ? 4 : 1;
+    const char *s = dryrun ? "[dryrun] " : "";
+@@ -610,9 +610,9 @@
+ 	 return FALSE;
+       }
+    } else {
+-      unsigned long lineSize;
+-      unsigned long extra = 0;
+-      unsigned long maxFb = 0;
++      long lineSize;
++      long extra = 0;
++      long maxFb = 0;
+ 
+       /*
+        * XXX Need to "free" up any 3D allocations if the DRI ended up
+@@ -857,7 +857,7 @@
+ I830GetExcessMemoryAllocations(ScrnInfoPtr pScrn)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+-   unsigned long allocated;
++   long allocated;
+ 
+    allocated = pI830->StolenPool.Total.Size + pI830->allocatedMemory;
+    if (allocated > pI830->TotalVideoRam)
+@@ -1367,7 +1367,7 @@
+    I830Ptr pI830 = I830PTR(pScrn);
+    int pitch, ntiles, i;
+    static int nextTile = 0;
+-   static int tileGeneration = -1;
++   static unsigned int tileGeneration = -1;
+ 
+ #if 0
+    /* Hack to "improve" the alignment of the front buffer.
Index: files/patch-i830_video.c
===================================================================
RCS file: files/patch-i830_video.c
diff -N files/patch-i830_video.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-i830_video.c	1 Jan 2005 10:02:37 -0000
@@ -0,0 +1,11 @@
+--- programs/Xserver/hw/xfree86/drivers/i810/i830_video.c.orig	Fri Dec 31 13:43:36 2004
++++ programs/Xserver/hw/xfree86/drivers/i810/i830_video.c	Fri Dec 31 13:44:22 2004
+@@ -632,7 +632,7 @@
+    pPriv->gamma0 = 0x080808;
+ 
+    /* gotta uninit this someplace */
+-   REGION_INIT(pScreen, &pPriv->clip, NullBox, 0);
++   REGION_NULL(pScreen, &pPriv->clip);
+ 
+    pI830->adaptor = adapt;
+ 
Index: files/patch-kernel-Imakefile
===================================================================
RCS file: files/patch-kernel-Imakefile
diff -N files/patch-kernel-Imakefile
--- files/patch-kernel-Imakefile	16 Aug 2004 12:30:29 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
---- programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/Imakefile.orig	Sun May  9 21:27:57 2004
-+++ programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/Imakefile	Sun May  9 21:28:16 2004
-@@ -20,6 +20,7 @@
- 	@echo 'Use "make -f Makefile.bsd" to manually build the modules'
- #endif
- 
-+#if 0
- SRCS_DRM = \
- 	drm.h \
- 	drmP.h \
-@@ -130,6 +131,7 @@
- InstallNamedNonExec(radeon/Makefile,Makefile,$(DRMSRCDIR)/radeon)
- InstallNamedNonExec(sis/Makefile,Makefile,$(DRMSRCDIR)/sis)
- InstallNamedNonExec(tdfx/Makefile,Makefile,$(DRMSRCDIR)/tdfx)
-+#endif /* 0 */
- 
- LinkSourceFile(drm.h,$(XF86OSSRC)/shared/drm/kernel)
- LinkSourceFile(drm_sarea.h,$(XF86OSSRC)/shared/drm/kernel)
Index: files/patch-linux.cf
===================================================================
RCS file: files/patch-linux.cf
diff -N files/patch-linux.cf
--- files/patch-linux.cf	16 Aug 2004 12:30:29 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- config/cf/linux.cf.orig	Fri May  7 15:51:10 2004
-+++ config/cf/linux.cf	Fri May  7 15:51:17 2004
-@@ -747,7 +747,7 @@
- #endif
- 
- #ifndef XF86OSCardDrivers
--# define XF86OSCardDrivers	v4l
-+# define XF86OSCardDrivers	fbdev v4l
- #endif
- 
- #ifndef OSXInputDrivers
Index: files/patch-loadmod.c
===================================================================
RCS file: files/patch-loadmod.c
diff -N files/patch-loadmod.c
--- files/patch-loadmod.c	16 Aug 2004 12:30:29 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,10 +0,0 @@
---- programs/Xserver/hw/xfree86/loader/loadmod.c.orig	Fri May  7 18:46:10 2004
-+++ programs/Xserver/hw/xfree86/loader/loadmod.c	Fri May  7 18:46:12 2004
-@@ -62,7 +62,6 @@
- #include "xf86Xinput.h"
- #endif
- #include "loader.h"
--#include "xf86Optrec.h"
- 
- #include <sys/types.h>
- #include <regex.h>
Index: files/patch-xf86Events.c
===================================================================
RCS file: files/patch-xf86Events.c
diff -N files/patch-xf86Events.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-xf86Events.c	28 Dec 2004 04:51:34 -0000
@@ -0,0 +1,76 @@
+--- programs/Xserver/hw/xfree86/common/xf86Events.c.orig	Sun Sep 26 04:17:42 2004
++++ programs/Xserver/hw/xfree86/common/xf86Events.c	Sun Sep 26 04:17:25 2004
+@@ -448,7 +448,7 @@
+ #if defined(SYSCONS_SUPPORT) || defined(PCVT_SUPPORT) || defined(WSCONS_SUPPORT)
+   static Bool first_time = TRUE;
+ #endif
+-#if defined(__sparc__) && defined(__linux__)
++#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
+   static int  kbdSun = -1;
+ #endif
+   /* Disable any keyboard processing while in suspend */
+@@ -464,7 +464,7 @@
+   }
+ #endif
+ 
+-#if defined (__sparc__) && defined(__linux__)
++#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
+   if (kbdSun == -1) {
+     if ((xf86Info.xkbmodel && !strcmp(xf86Info.xkbmodel, "sun"))
+ 	|| (xf86Info.xkbrules && !strcmp(xf86Info.xkbrules, "sun")))
+@@ -474,7 +474,7 @@
+   }
+   if (kbdSun)
+     goto special;
+-#endif /* __sparc__ && __linux__ */
++#endif /* __sparc__ && (__linux__ || __FreeBSD__) */
+ 
+ #ifdef __linux__
+   if (xf86Info.kbdCustomKeycodes) {
+@@ -525,6 +525,7 @@
+     } else
+ #endif /* i386 && SVR4 */
+     {
++      if (!xf86IsPc98()) {
+       switch (scanCode) {
+       case 0x59:        scanCode = KEY_0x59; break;
+       case 0x5a:        scanCode = KEY_0x5A; break;
+@@ -555,6 +556,7 @@
+       case 0x75:        scanCode = KEY_0x75; break;
+       case 0x76:        scanCode = KEY_0x76; break;
+       }
++      }  /*  end if (!xf86IsPc98())  */
+     }
+   }
+ 
+@@ -636,10 +638,12 @@
+    * they need to get the same key code as the base key on the same
+    * physical keyboard key.
+    */
++  if (!xf86IsPc98()) {
+   if (scanCode == KEY_SysReqest)
+     scanCode = KEY_Print;
+   else if (scanCode == KEY_Break)
+     scanCode = KEY_Pause;
++  }
+ #endif
+   
+   /*
+@@ -676,7 +680,7 @@
+     }
+   }
+ #endif
+-#if defined (__sparc__) && defined(__linux__)
++#if defined(__sparc__) && (defined(__linux__) || defined(__FreeBSD__))
+ special:
+   if (kbdSun) {
+     switch (scanCode) {
+@@ -710,7 +714,7 @@
+      */
+     scanCode--;
+   }
+-#endif /* defined (__sparc__) && defined(__linux__) */
++#endif /* __sparc__ && (__linux__ || __FreeBSD__) */
+ 
+ #ifdef XKB
+   if ((xf86Info.ddxSpecialKeys == SKWhenNeeded &&
Index: files/patch-xf86cfg-Imakefile
===================================================================
RCS file: files/patch-xf86cfg-Imakefile
diff -N files/patch-xf86cfg-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-xf86cfg-Imakefile	28 Dec 2004 04:51:34 -0000
@@ -0,0 +1,11 @@
+--- programs/Xserver/hw/xfree86/xf86cfg/Imakefile.orig	Sat Sep 11 15:11:04 2004
++++ programs/Xserver/hw/xfree86/xf86cfg/Imakefile	Sat Sep 11 15:11:07 2004
+@@ -25,6 +25,8 @@
+ SNPRINTFOBJS = snprintf.o
+ #endif
+ 
++XAWLIB = -lXaw
++
+ SRCS	=\
+ 	accessx.c\
+ 	card-cfg.c\
Index: files/patch-xfree86-Imakefile
===================================================================
RCS file: files/patch-xfree86-Imakefile
diff -N files/patch-xfree86-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-xfree86-Imakefile	1 Jan 2005 10:02:37 -0000
@@ -0,0 +1,12 @@
+--- programs/Xserver/hw/xfree86/Imakefile.orig	Fri Dec 31 14:08:32 2004
++++ programs/Xserver/hw/xfree86/Imakefile	Fri Dec 31 14:08:34 2004
+@@ -217,8 +217,8 @@
+ InstallManPage(Xorg,$(MANDIR))
+ InstallGenManPage(xorg.conf,$(FILEMANDIR),$(FILEMANSUFFIX))
+ 
++InstallNamedNonExec($(XORGCONFIG),xorg.conf.eg,$(LIBDIR))
+ #if 0
+-InstallNamedNonExec($(XORGCONFIG),XF86Config.eg,$(LIBDIR))
+ InstallNamedNonExec($(XF98CONFIG),XF86Config.98,$(LIBDIR))
+ #endif
+ InstallNamedNonExec(Options,Options,$(LIBDIR))
Index: files/patch-xorg.cf
===================================================================
RCS file: files/patch-xorg.cf
diff -N files/patch-xorg.cf
--- files/patch-xorg.cf	16 Aug 2004 12:30:29 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- config/cf/xorg.cf.orig	Sun May  9 21:05:27 2004
-+++ config/cf/xorg.cf	Sun May  9 21:05:28 2004
-@@ -388,7 +388,7 @@
- 				GlideDriver i128 NscDriver \
- 				ati i810 AgpGartDrivers DevelDrivers ark \
- 				cyrix siliconmotion via \
--				fbdev vesa vga \
-+				vesa vga \
- 				dummy XF86OSCardDrivers XF86ExtraCardDrivers
- # endif
- 
Index: files/patch-xorgconf.cpp
===================================================================
RCS file: files/patch-xorgconf.cpp
diff -N files/patch-xorgconf.cpp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-xorgconf.cpp	1 Jan 2005 10:02:37 -0000
@@ -0,0 +1,14 @@
+--- programs/Xserver/hw/xfree86/xorgconf.cpp.orig	Fri Dec 31 14:40:27 2004
++++ programs/Xserver/hw/xfree86/xorgconf.cpp	Fri Dec 31 14:40:28 2004
+@@ -624,3 +624,11 @@
+     InputDevice "Keyboard1" "CoreKeyboard"
+ EndSection
+ 
++ 
++XCOMM  Two experimental extensions are available -- Composite and XEVIE.  Uncomment
++XCOMM  the section below to enable Composite.  Many extensions can also be disabled
++XCOMM  in this manner.
++
++XCOMM Section "Extensions"
++XCOMM 	Option "Composite" "Enable"
++XCOMM EndSection
Index: files/patch-xorgconfig.c
===================================================================
RCS file: files/patch-xorgconfig.c
diff -N files/patch-xorgconfig.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-xorgconfig.c	28 Dec 2004 04:51:34 -0000
@@ -0,0 +1,12 @@
+--- programs/Xserver/hw/xfree86/xf86config/xorgconfig.c.orig	Mon Nov  8 22:18:58 2004
++++ programs/Xserver/hw/xfree86/xf86config/xorgconfig.c	Mon Nov  8 22:19:22 2004
+@@ -854,8 +854,7 @@
+ "which is the rate at which scanlines are displayed.\n"
+ "\n"
+ "The valid range for horizontal sync and vertical sync should be documented\n"
+-"in the manual of your monitor. If in doubt, check the monitor database\n"
+-TREEROOTDOC "/Monitors to see if your monitor is there.\n"
++"in the manual of your monitor.\n"
+ "\n";
+ 
+ static char *hsyncintro_text =
Index: scripts/configure
===================================================================
RCS file: /cvs/dfports/x11-servers/xorg-server/scripts/configure,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 configure
--- scripts/configure	16 Aug 2004 12:30:29 -0000	1.1
+++ scripts/configure	1 Jan 2005 11:52:22 -0000
@@ -14,6 +14,8 @@
 echo "#define ForceNormalLib NO"		>> $LOCALDEF
 echo "#define XTrueTypeInstallCConvHeaders NO"	>> $LOCALDEF
 echo "#define BuildServer YES"			>> $LOCALDEF
+echo "#define BuildXprint NO"			>> $LOCALDEF
+echo "#define BuildLibraries NO"		>> $LOCALDEF
 echo "#define LibInstallBuild YES"		>> $LOCALDEF
 echo "#define ModInstall YES"			>> $LOCALDEF
 echo "#define XF86Server NO"			>> $LOCALDEF
@@ -26,6 +28,7 @@
 if [ X$WITH_DEBUG != X ]; then
 	export CFLAGS="-g $CFLAGS"
 	echo "#define InstPgmFlags"		>> $LOCALDEF
+	echo "#define MakeDllModules YES"	>> $LOCALDEF
 fi
 
 sh $PORTSDIR/x11-servers/xorg-server/scripts/configure.gen
Index: Makefile
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/Makefile,v
retrieving revision 1.2
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.2 Makefile
--- Makefile	27 Oct 2004 13:10:17 -0000	1.2
+++ Makefile	1 Jan 2005 09:37:27 -0000
@@ -6,21 +6,13 @@
 # $DragonFly: dfports/x11/xorg-libraries/Makefile,v 1.2 2004/10/27 13:10:17 asmodai Exp $
 #
 
-PORTNAME=	libraries
-PORTVERSION=	6.7.0
-PORTREVISION=	2
+PORTNAME=	xorg-libraries
+PORTVERSION=	6.8.1
 CATEGORIES=	x11
-MASTER_SITES=	http://freedesktop.org/~xorg/X11R6.7.0/src/:xorg \
-		${MASTER_SITE_XORG:S/$/:xorg/} \
-		${MASTER_SITE_LOCAL:S/$/:local/}
-MASTER_SITE_SUBDIR=	R6.7/tars/:xorg \
-			anholt/:local
-PKGNAMEPREFIX=	xorg-
-DISTFILES=	X11R6.7.0-src1.tar.gz:xorg \
-		X11R6.7.0-src3.tar.gz:xorg \
-		Wraphelp2.gz:local
-EXTRACT_ONLY=	X11R6.7.0-src1.tar.gz \
-		X11R6.7.0-src3.tar.gz
+MASTER_SITES=	${MASTER_SITE_XORG}
+MASTER_SITE_SUBDIR=	X11R6.8.1/tars
+DISTFILES=	X11R${PORTVERSION}-src1.tar.gz \
+		X11R${PORTVERSION}-src3.tar.gz
 
 MAINTAINER=	x11 at xxxxxxxxxxx
 COMMENT=	X11 libraries and headers from X.Org
@@ -36,7 +28,7 @@
 		panoramixext-* printext-* randrext-* renderext-* resourceext-* \
 		xextensions-* xf86ext-* xlibs-* xpm-* xproto-*
 
-EXTRA_PATCHES=	${CF_PATCHES} ${LIBRARY_PATCHES}
+EXTRA_PATCHES=	${CF_PATCHES}
 
 XBUILD_DIRS=	lib nls programs/Xserver/include \
 		programs/Xserver/hw/xfree86/parser
@@ -45,11 +37,10 @@
 
 INSTALLS_SHLIB=	yes
 
-post-extract:
-	${GUNZIP_CMD} -c ${DISTDIR}/${DIST_SUBDIR}/Wraphelp2.gz > ${WRKSRC}/lib/Xdmcp/Wraphelp.c
-
 post-patch:
 	${CP} ${FILESDIR}/nls-Compose-microsoft-cp1251 ${WRKSRC}/nls/Compose/microsoft-cp1251
+	${MKDIR} ${WRKSRC}/lib/XThrStub
+	${CP} ${FILESDIR}/XThrStub-Imakefile ${WRKSRC}/lib/XThrStub/Imakefile
 
 post-install:
 	${MKDIR} ${PREFIX}/libdata/pkgconfig
@@ -70,11 +61,4 @@
 PLIST_SUB+=	OSMESA:=""
 .endif
 
-# sparc64 doesn't have a working libc_r yet, and -current doesn't need libXThrStub.
-.if ${ARCH} == "sparc64" || ${OSVERSION} >= 500043
-PLIST_SUB+=	XTHRSTUB:="@comment "
-.else
-PLIST_SUB+=	XTHRSTUB:=""
-.endif
-
 .include <bsd.dfport.post.mk>
Index: distinfo
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/distinfo,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 distinfo
--- distinfo	16 Aug 2004 12:30:27 -0000	1.1
+++ distinfo	28 Dec 2004 05:54:36 -0000
@@ -1,6 +1,4 @@
-MD5 (xorg/X11R6.7.0-src1.tar.gz) = 22465263bae7a2e9f5ad77e172cf1ab5
-SIZE (xorg/X11R6.7.0-src1.tar.gz) = 30039655
-MD5 (xorg/X11R6.7.0-src3.tar.gz) = 4c7144786522bbce383b21ace72bf669
-SIZE (xorg/X11R6.7.0-src3.tar.gz) = 10855793
-MD5 (xorg/Wraphelp2.gz) = bd1910492087442288d885412e2e5535
-SIZE (xorg/Wraphelp2.gz) = 3376
+MD5 (xorg/X11R6.8.1-src1.tar.gz) = e352319d423391ff2c03bb7f81fe8d2b
+SIZE (xorg/X11R6.8.1-src1.tar.gz) = 30562401
+MD5 (xorg/X11R6.8.1-src3.tar.gz) = 8578e566e909e7c40300f44b6f0e88d3
+SIZE (xorg/X11R6.8.1-src3.tar.gz) = 10014808
Index: pkg-plist
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/pkg-plist,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 pkg-plist
--- pkg-plist	16 Aug 2004 12:30:27 -0000	1.1
+++ pkg-plist	1 Jan 2005 09:37:54 -0000
@@ -111,6 +111,8 @@
 include/X11/Xaw/PannerP.h
 include/X11/Xaw/Porthole.h
 include/X11/Xaw/PortholeP.h
+include/X11/Xaw/Print.h
+include/X11/Xaw/PrintSP.h
 include/X11/Xaw/Repeater.h
 include/X11/Xaw/RepeaterP.h
 include/X11/Xaw/Reports.h
@@ -184,6 +186,8 @@
 include/X11/Xos_r.h
 include/X11/Xosdefs.h
 include/X11/Xpoll.h
+include/X11/XprintAppUtil/xpapputil.h
+include/X11/XprintUtil/xprintutil.h
 include/X11/Xproto.h
 include/X11/Xprotostr.h
 include/X11/Xresource.h
@@ -288,11 +292,16 @@
 include/X11/extensions/Xag.h
 include/X11/extensions/Xagsrv.h
 include/X11/extensions/Xagstr.h
+include/X11/extensions/Xcomposite.h
 include/X11/extensions/Xcup.h
 include/X11/extensions/Xcupstr.h
+include/X11/extensions/Xdamage.h
 include/X11/extensions/Xdbe.h
 include/X11/extensions/Xdbeproto.h
+include/X11/extensions/Xevie.h
+include/X11/extensions/Xeviestr.h
 include/X11/extensions/Xext.h
+include/X11/extensions/Xfixes.h
 include/X11/extensions/Xinerama.h
 include/X11/extensions/Xrandr.h
 include/X11/extensions/Xrender.h
@@ -303,12 +312,14 @@
 include/X11/extensions/Xvlib.h
 include/X11/extensions/Xvproto.h
 include/X11/extensions/bigreqstr.h
+include/X11/extensions/composite.h
+include/X11/extensions/compositeproto.h
+include/X11/extensions/damage.h
+include/X11/extensions/damageproto.h
+include/X11/extensions/damagewire.h
 include/X11/extensions/dpms.h
 include/X11/extensions/dpmsstr.h
 include/X11/extensions/extutil.h
-include/X11/extensions/fontcache.h
-include/X11/extensions/fontcacheP.h
-include/X11/extensions/fontcachstr.h
 include/X11/extensions/lbxbuf.h
 include/X11/extensions/lbxbufstr.h
 include/X11/extensions/lbxdeltastr.h
@@ -338,6 +349,7 @@
 include/X11/extensions/sync.h
 include/X11/extensions/syncstr.h
 include/X11/extensions/xcmiscstr.h
+include/X11/extensions/xevieplaceholder.h
 include/X11/extensions/xf86bigfont.h
 include/X11/extensions/xf86bigfstr.h
 include/X11/extensions/xf86dga.h
@@ -348,6 +360,8 @@
 include/X11/extensions/xf86mscstr.h
 include/X11/extensions/xf86vmode.h
 include/X11/extensions/xf86vmstr.h
+include/X11/extensions/xfixesproto.h
+include/X11/extensions/xfixeswire.h
 include/X11/extensions/xtestext1.h
 include/X11/extensions/xteststr.h
 include/X11/extensions/xtrapbits.h
@@ -360,12 +374,6 @@
 include/X11/fonts/FS.h
 include/X11/fonts/FSlib.h
 include/X11/fonts/FSproto.h
-include/X11/fonts/codeconv/cconvversion.h
-include/X11/fonts/codeconv/xttcap.h
-include/X11/fonts/codeconv/xttcconv.h
-include/X11/fonts/codeconv/xttcconvP.h
-include/X11/fonts/codeconv/xttcommon.h
-include/X11/fonts/codeconv/xttversion.h
 include/X11/fonts/fontenc.h
 include/X11/fonts/fsmasks.h
 include/X11/keysym.h
@@ -548,11 +556,11 @@
 lib/libXRes.a
 lib/libXRes.so
 lib/libXRes.so.1
-%%XTHRSTUB:%%lib/libXThrStub.so
-%%XTHRSTUB:%%lib/libXThrStub.so.6
 lib/libXTrap.a
 lib/libXTrap.so
 lib/libXTrap.so.6
+lib/libXThrStub.so
+lib/libXThrStub.so.6
 lib/libXau.a
 lib/libXau.so
 lib/libXau.so.0
@@ -560,21 +568,31 @@
 lib/libXaw.so
 lib/libXaw.so.6
 lib/libXaw.so.7
+lib/libXaw.so.8
+lib/libXcomposite.a
+lib/libXcomposite.so
+lib/libXcomposite.so.1
 lib/libXcursor.a
 lib/libXcursor.so
 lib/libXcursor.so.1
+lib/libXdamage.a
+lib/libXdamage.so
+lib/libXdamage.so.1
 lib/libXdmcp.a
 lib/libXdmcp.so
 lib/libXdmcp.so.0
+lib/libXevie.a
+lib/libXevie.so
+lib/libXevie.so.1
 lib/libXext.a
 lib/libXext.so
 lib/libXext.so.6
+lib/libXfixes.a
+lib/libXfixes.so
+lib/libXfixes.so.3
 lib/libXfont.a
 lib/libXfont.so
 lib/libXfont.so.1
-lib/libXfontcache.a
-lib/libXfontcache.so
-lib/libXfontcache.so.1
 lib/libXi.a
 lib/libXi.so
 lib/libXi.so.6
@@ -593,6 +611,8 @@
 lib/libXpm.a
 lib/libXpm.so
 lib/libXpm.so.4
+lib/libXprintAppUtil.a
+lib/libXprintUtil.a
 lib/libXrandr.a
 lib/libXrandr.so
 lib/libXrandr.so.2
@@ -646,5 +666,12 @@
 lib/libxkbui.a
 lib/libxkbui.so
 lib/libxkbui.so.1
+libdata/pkgconfig/xcomposite.pc
 libdata/pkgconfig/xcursor.pc
+libdata/pkgconfig/xdamage.pc
+libdata/pkgconfig/xevie.pc
+libdata/pkgconfig/xfixes.pc
 libdata/pkgconfig/xrender.pc
+ at dirrm include/X11/XprintAppUtil
+ at dirrm include/X11/XprintUtil
+ at dirrm lib/X11/locale/zh_CN.UTF-8
Index: files/XThrStub-Imakefile
===================================================================
RCS file: files/XThrStub-Imakefile
diff -N files/XThrStub-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/XThrStub-Imakefile	1 Jan 2005 09:39:00 -0000
@@ -0,0 +1,35 @@
+#define DoNormalLib NormalLibXThrStub
+#define DoSharedLib SharedLibXThrStub
+#define DoExtraLib SharedLibXThrStub
+#define DoDebugLib DebugLibXThrStub
+#define DoProfileLib ProfileLibXThrStub
+#define LibName XThrStub
+#define SoRev SOXTHRSTUBREV
+#define LibHeaders NO
+
+#include <Threads.tmpl>
+
+#ifdef SharedXThrStubReqs
+REQUIREDLIBS = SharedXThrStubReqs
+#endif
+
+#if NeedUIThrStubs
+STUBSRCS = UIThrStubs.c
+STUBOBJS = UIThrStubs.o
+#endif
+
+#if Malloc0ReturnsNull
+ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL
+#endif
+
+      DEFINES = $(ALLOC_DEFINES)
+     INCLUDES = 
+         SRCS = $(STUBSRCS)
+         OBJS = $(STUBOBJS)
+     LINTLIBS = $(LINTXLIB)
+
+#include <Library.tmpl>
+
+DependTarget()
+
+LinkSourceFile(UIThrStubs.c,$(XTOP)/lib/X11)
Index: files/patch-GL-GL-Imakefile
===================================================================
RCS file: files/patch-GL-GL-Imakefile
diff -N files/patch-GL-GL-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-GL-GL-Imakefile	1 Jan 2005 09:40:51 -0000
@@ -0,0 +1,20 @@
+Index: lib/GL/GL/Imakefile
+===================================================================
+RCS file: /cvs/xorg/xc/lib/GL/GL/Imakefile,v
+retrieving revision 1.5
+diff -u -r1.5 Imakefile
+--- lib/GL/GL/Imakefile	23 Jul 2004 05:25:39 -0000	1.5
++++ lib/GL/GL/Imakefile	29 Dec 2004 20:51:25 -0000
+@@ -209,8 +209,12 @@
+        POBJS = $(GLXPOBJS) $(DRIPOBJS) $(DRVPOBJS) $(DRMPOBJS)
+ 
+ #if LocalThreads
++#if NeedUIThrStubs
++  THREADOBJS = $(LDPRELIB) $(XTHRSTUBLIB)
++#else
+   THREADOBJS = $(THREADS_LIBS)
+ #endif
++#endif
+ 
+ #include <Library.tmpl>
+ 
Index: files/patch-UIThrStubs.c
===================================================================
RCS file: files/patch-UIThrStubs.c
diff -N files/patch-UIThrStubs.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-UIThrStubs.c	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,17 @@
+Index: lib/X11/UIThrStubs.c
+===================================================================
+RCS file: /cvs/xorg/xc/lib/X11/UIThrStubs.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -u -r1.3 -r1.4
+--- lib/X11/UIThrStubs.c	28 May 2004 23:26:44 -0000	1.3
++++ lib/X11/UIThrStubs.c	13 Oct 2004 07:38:00 -0000	1.4
+@@ -99,7 +99,7 @@
+ #else
+ #include <pthread.h>
+ typedef pthread_t xthread_t;
+-#if __GNUC__ >= 3
++#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+ xthread_t pthread_self()    __attribute__ ((weak, alias ("_Xthr_self_stub_")));
+ int pthread_mutex_init()    __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+ int pthread_mutex_destroy() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
Index: files/patch-X11-Imakefile
===================================================================
RCS file: files/patch-X11-Imakefile
diff -N files/patch-X11-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-X11-Imakefile	1 Jan 2005 09:40:51 -0000
@@ -0,0 +1,12 @@
+--- lib/X11/Imakefile.orig	Wed Dec 29 13:44:54 2004
++++ lib/X11/Imakefile	Wed Dec 29 13:46:19 2004
+@@ -126,8 +126,7 @@
+          K5INCL = Krb5Includes
+          K5DEFS = Krb5Defines
+ #endif
+-#if (defined(FreeBSDArchitecture) && OSRelVersion < 500016) || \
+-	defined(OpenBSDArchitecture)
++#if (defined(OpenBSDArchitecture))
+ THRSTUBSRCS = UIThrStubs.c
+ THRSTUBOBJS = UIThrStubs.o
+ #endif
Index: files/patch-Xcomposite-Imakefile
===================================================================
RCS file: files/patch-Xcomposite-Imakefile
diff -N files/patch-Xcomposite-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Xcomposite-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,11 @@
+--- lib/Xcomposite/Imakefile.orig	Fri Oct  1 17:42:38 2004
++++ lib/Xcomposite/Imakefile	Fri Oct  1 17:43:22 2004
+@@ -61,7 +61,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xcomposite.pc.in > $@
+ 
+-InstallNonExecFile(xcomposite.pc,$(USRLIBDIR)/pkgconfig)
++InstallNonExecFile(xcomposite.pc,$(PROJECTROOT)/libdata/pkgconfig)
+ 
+ clean::
+ 	RemoveFile(xcomposite.pc)
Index: files/patch-Xdamage-Imakefile
===================================================================
RCS file: files/patch-Xdamage-Imakefile
diff -N files/patch-Xdamage-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Xdamage-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,11 @@
+--- lib/Xdamage/Imakefile.orig	Fri Oct  1 17:42:44 2004
++++ lib/Xdamage/Imakefile	Fri Oct  1 17:44:54 2004
+@@ -61,7 +61,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xdamage.pc.in > $@
+ 
+-InstallNonExecFile(xdamage.pc,$(USRLIBDIR)/pkgconfig)
++InstallNonExecFile(xdamage.pc,$(PROJECTROOT)/libdata/pkgconfig)
+ 
+ clean::
+ 	RemoveFile(xdamage.pc)
Index: files/patch-Xevie-Imakefile
===================================================================
RCS file: files/patch-Xevie-Imakefile
diff -N files/patch-Xevie-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Xevie-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,11 @@
+--- lib/Xevie/Imakefile.orig	Fri Oct  1 17:42:49 2004
++++ lib/Xevie/Imakefile	Fri Oct  1 17:44:51 2004
+@@ -66,7 +66,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xevie.pc.in > $@
+ 
+-InstallNonExecFile(xevie.pc,$(USRLIBDIR)/pkgconfig)
++InstallNonExecFile(xevie.pc,$(PROJECTROOT)/libdata/pkgconfig)
+ 
+ clean::
+ 	RemoveFile(xevie.pc)
Index: files/patch-Xfixes-Imakefile
===================================================================
RCS file: files/patch-Xfixes-Imakefile
diff -N files/patch-Xfixes-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Xfixes-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,11 @@
+--- lib/Xfixes/Imakefile.orig	Fri Oct  1 17:42:54 2004
++++ lib/Xfixes/Imakefile	Fri Oct  1 17:44:58 2004
+@@ -68,7 +68,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xfixes.pc.in > $@
+ 
+-InstallNonExecFile(xfixes.pc,$(USRLIBDIR)/pkgconfig)
++InstallNonExecFile(xfixes.pc,$(PROJECTROOT)/libdata/pkgconfig)
+ 
+ clean::
+ 	RemoveFile(xfixes.pc)
Index: files/patch-Xrender-Imakefile
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/files/patch-Xrender-Imakefile,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 patch-Xrender-Imakefile
--- files/patch-Xrender-Imakefile	16 Aug 2004 12:30:27 -0000	1.1
+++ files/patch-Xrender-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -1,39 +1,11 @@
-Index: lib/Xrender/Imakefile
-===================================================================
-RCS file: /cvs/xorg/xc/lib/Xrender/Imakefile,v
-retrieving revision 1.2
-diff -u -r1.2 Imakefile
---- lib/Xrender/Imakefile	23 Apr 2004 18:43:50 -0000	1.2
-+++ lib/Xrender/Imakefile	7 Jul 2004 19:01:02 -0000
-@@ -133,6 +133,16 @@
- 
- HEADERS = Xrender.h $(NONSTANDARD_HEADERS)
- 
-+SUBSTVARS=prefix="$(PROJECTROOT)" \
-+          exec_prefix="$(BINDIR)" \
-+          libdir="$(USRLIBDIR)" \
-+          includedir="$(INCROOT)" \
-+          VERSION="0.8.4" \
-+          X_REQUIRES="" \
-+          RENDER_CFLAGS="" \
-+          X_NON_PKG_CFLAGS="" \
-+          X_NON_PKG_LIBS="-lX11 -lXext"
-+
- #include <Library.tmpl>
+--- lib/Xrender/Imakefile.orig	Sat Oct 16 15:41:02 2004
++++ lib/Xrender/Imakefile	Sat Oct 16 15:42:35 2004
+@@ -161,7 +161,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xrender.pc.in > $@
  
- DependTarget()
-@@ -142,3 +152,14 @@
- distclean:: clean
- 	RemoveFile(Makefile)
- #endif
-+
-+all:: xrender.pc
-+
-+xrender.pc: xrender.pc.in
-+	RemoveFile($@)
-+	sh ../Xcursor/config-subst $(SUBSTVARS) < xrender.pc.in > $@
-+
+-InstallNonExecFile(xrender.pc,$(USRLIBDIR)/pkgconfig)
 +InstallNonExecFile(xrender.pc,$(PROJECTROOT)/libdata/pkgconfig)
-+
-+clean::
-+	RemoveFile(xrender.pc)
+ 
+ clean::
+ 	RemoveFile(xrender.pc)
Index: files/patch-dps-Imakefile
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/files/patch-dps-Imakefile,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 patch-dps-Imakefile
--- files/patch-dps-Imakefile	16 Aug 2004 12:30:27 -0000	1.1
+++ files/patch-dps-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -1,37 +1,29 @@
---- lib/dps/Imakefile.orig	Thu Mar  4 09:47:01 2004
-+++ lib/dps/Imakefile	Thu May 27 18:13:27 2004
-@@ -29,7 +29,6 @@
-             SED = sed
-             AWK = awk
-            SORT = sort
--         PSWRAP = PsWrap
- 
- COMMONOBJECTFILES = \
- 	dpsclient.o\
-@@ -201,7 +200,7 @@
+--- lib/dps/Imakefile.orig	Mon May 24 12:06:58 2004
++++ lib/dps/Imakefile	Fri Sep 10 22:12:26 2004
+@@ -201,8 +201,6 @@
  
  includes:: $(DPSOPSCFILES) $(PSOPSCFILES) $(HEADERS)
  
 -$(DPSOPSCFILES) $(PSOPSCFILES): HostProgramTargetName($(PSWRAP))
-+$(DPSOPSCFILES) $(PSOPSCFILES): PsWrapDependency
- 
+-
  SRCS = \
  	${COMMONSOURCEFILES} \
-@@ -224,16 +223,11 @@
+ 	${XSOURCEFILES} \
+@@ -224,16 +222,11 @@
  
  .SUFFIXES: .psw .h
  
 -.psw.c : HostProgramTargetName($(PSWRAP))
-+.psw.c : PsWrapDependency
++.psw.c :
  	RunProgram(PSWRAP,-a -o $*.c -h $*.h $<)
  
 -.psw.h : HostProgramTargetName($(PSWRAP))
-+.psw.h : PsWrapDependency
++.psw.h :
  	RunProgram(PSWRAP,-a -h $*.h $< > /dev/null)
 -
 -HostProgramTargetName($(PSWRAP)):
 -	@echo "checking $@ over in $(PSWRAPSRC) first..."; \
--	cd $(PSWRAPSRC) && $(MAKE) pswraponly; \
+-	test -d $(PSWRAPSRC) && cd $(PSWRAPSRC) && $(MAKE) pswraponly; \
 -	echo "okay, continuing in $(CURRENT_DIR)"
  
  includes :: $(HEADERS)
Index: files/patch-drm.h
===================================================================
RCS file: files/patch-drm.h
diff -N files/patch-drm.h
--- files/patch-drm.h	16 Aug 2004 12:30:27 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
---- programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h	Mon Apr  5 23:28:41 2004
-+++ programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h	Mon Apr  5 23:32:53 2004
-@@ -46,8 +46,8 @@
- #define DRM_IOC_WRITE		_IOC_WRITE
- #define DRM_IOC_READWRITE	_IOC_READ|_IOC_WRITE
- #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
--#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
--#if defined(__FreeBSD__) && defined(IN_MODULE)
-+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
-+#if (defined(__FreeBSD__) || defined(__DragonFly__)) && defined(IN_MODULE)
- /* Prevent name collision when including sys/ioccom.h */
- #undef ioctl
- #include <sys/ioccom.h>
Index: files/patch-lib-Imakefile
===================================================================
RCS file: files/patch-lib-Imakefile
diff -N files/patch-lib-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-lib-Imakefile	1 Jan 2005 09:40:51 -0000
@@ -0,0 +1,22 @@
+--- lib/Imakefile.orig	Wed Sep  1 18:10:28 2004
++++ lib/Imakefile	Wed Dec 29 13:43:31 2004
+@@ -36,6 +36,10 @@
+ XKBUILIBDIR = xkbui
+ #endif
+ 
++#if BuildThreadStubLibrary && BuildLibraries
++THRSTUBLIBDIR = XThrStub
++#endif
++
+ #if BuildXInputLib
+ XINPUTLIBDIR = Xi
+ #endif
+@@ -223,7 +227,7 @@
+ #endif
+ 
+ 
+-LINTSUBDIRS = $(XAULIBDIR) $(XDMCPLIBDIR) $(X11LIBDIR) \
++LINTSUBDIRS = $(XAULIBDIR) $(XDMCPLIBDIR) $(THRSTUBLIBDIR) $(X11LIBDIR) \
+              $(OLDXLIBDIR) $(ICELIBDIR) $(SMLIBDIR) $(XEXTLIBDIR) $(XTLIBDIR) \
+              $(SSLIBDIR) $(XF86MISCLIBDIR) $(XF86VMLIBDIR) $(XF86DGALIBDIR) \
+              $(XF86RUSHLIBDIR) $(XMULIBDIR) $(XMUULIBDIR) $(XPMLIBDIR) \
Index: files/patch-xpm-sec
===================================================================
RCS file: files/patch-xpm-sec
diff -N files/patch-xpm-sec
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-xpm-sec	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,228 @@
+? extras/Xpm/lib/xorg681-xpm-secadd.patch
+Index: extras/Xpm/lib/Attrib.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/Attrib.c,v
+retrieving revision 1.1.1.1.6.1
+diff -u -r1.1.1.1.6.1 Attrib.c
+--- extras/Xpm/lib/Attrib.c	15 Sep 2004 15:47:39 -0000	1.1.1.1.6.1
++++ extras/Xpm/lib/Attrib.c	5 Nov 2004 03:21:02 -0000
+@@ -52,7 +52,7 @@
+     XpmColor **colorTable, **color;
+     int a;
+ 
+-    if (ncolors >= SIZE_MAX / sizeof(XpmColor *)) 
++    if (ncolors >= UINT_MAX / sizeof(XpmColor *)) 
+ 	return XpmNoMemory;
+ 
+     colorTable = (XpmColor **) XpmMalloc(ncolors * sizeof(XpmColor *));
+Index: extras/Xpm/lib/CrDatFrI.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/CrDatFrI.c,v
+retrieving revision 1.2.4.1
+diff -u -r1.2.4.1 CrDatFrI.c
+--- extras/Xpm/lib/CrDatFrI.c	15 Sep 2004 15:47:39 -0000	1.2.4.1
++++ extras/Xpm/lib/CrDatFrI.c	5 Nov 2004 03:21:02 -0000
+@@ -124,7 +124,7 @@
+      */
+     header_nlines = 1 + image->ncolors;
+     header_size = sizeof(char *) * header_nlines;
+-    if (header_size >= SIZE_MAX / sizeof(char *))
++    if (header_size >= UINT_MAX / sizeof(char *))
+ 	return (XpmNoMemory);
+     header = (char **) XpmCalloc(header_size, sizeof(char *));
+     if (!header)
+Index: extras/Xpm/lib/create.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/create.c,v
+retrieving revision 1.2.4.1
+diff -u -r1.2.4.1 create.c
+--- extras/Xpm/lib/create.c	15 Sep 2004 15:47:39 -0000	1.2.4.1
++++ extras/Xpm/lib/create.c	5 Nov 2004 03:21:03 -0000
+@@ -1,4 +1,4 @@
+-/* $XdotOrg: xc/extras/Xpm/lib/create.c,v 1.2.4.1 2004/09/15 15:47:39 daniel Exp $ */
++/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
+ /*
+  * Copyright (C) 1989-95 GROUPE BULL
+  *
+@@ -817,7 +817,7 @@
+ 
+     ErrorStatus = XpmSuccess;
+ 
+-    if (image->ncolors >= SIZE_MAX / sizeof(Pixel)) 
++    if (image->ncolors >= UINT_MAX / sizeof(Pixel)) 
+ 	return (XpmNoMemory);
+ 
+     /* malloc pixels index tables */
+@@ -992,8 +992,10 @@
+ 	return (XpmNoMemory);
+ 
+ #if !defined(FOR_MSW) && !defined(AMIGA)
+-    if (height != 0 && (*image_return)->bytes_per_line >= SIZE_MAX / height)
++    if (height != 0 && (*image_return)->bytes_per_line >= SIZE_MAX / height) {
++	XDestroyImage(*image_return);
+ 	return XpmNoMemory;
++    }
+     /* now that bytes_per_line must have been set properly alloc data */
+     (*image_return)->data =
+ 	(char *) XpmMalloc((*image_return)->bytes_per_line * height);
+@@ -2061,8 +2063,8 @@
+ 	xpmGetCmt(data, &colors_cmt);
+ 
+     /* malloc pixels index tables */
+-    if (ncolors >= SIZE_MAX / sizeof(Pixel)) 
+-	return XpmNoMemory;
++    if (ncolors >= UINT_MAX / sizeof(Pixel)) 
++	RETURN(XpmNoMemory);
+ 
+     image_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * ncolors);
+     if (!image_pixels)
+@@ -2366,7 +2368,7 @@
+ 
+ 	    /* array of pointers malloced by need */
+ 	    unsigned short *cidx[256];
+-	    int char1;
++	    unsigned int char1;
+ 
+ 	    bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */
+ 	    for (a = 0; a < ncolors; a++) {
+Index: extras/Xpm/lib/hashtab.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/hashtab.c,v
+retrieving revision 1.1.1.1.6.1
+diff -u -r1.1.1.1.6.1 hashtab.c
+--- extras/Xpm/lib/hashtab.c	15 Sep 2004 15:47:39 -0000	1.1.1.1.6.1
++++ extras/Xpm/lib/hashtab.c	5 Nov 2004 03:21:03 -0000
+@@ -138,13 +138,13 @@
+     unsigned int size = table->size;
+     xpmHashAtom *t, *p;
+     int i;
+-    int oldSize = size;
++    unsigned int oldSize = size;
+ 
+     t = atomTable;
+     HASH_TABLE_GROWS
+ 	table->size = size;
+     table->limit = size / 3;
+-    if (size >= SIZE_MAX / sizeof(*atomTable)) 
++    if (size >= UINT_MAX / sizeof(*atomTable)) 
+ 	return (XpmNoMemory);
+     atomTable = (xpmHashAtom *) XpmMalloc(size * sizeof(*atomTable));
+     if (!atomTable)
+@@ -206,7 +206,7 @@
+     table->size = INITIAL_HASH_SIZE;
+     table->limit = table->size / 3;
+     table->used = 0;
+-    if (table->size >= SIZE_MAX / sizeof(*atomTable))
++    if (table->size >= UINT_MAX / sizeof(*atomTable))
+ 	return (XpmNoMemory);
+     atomTable = (xpmHashAtom *) XpmMalloc(table->size * sizeof(*atomTable));
+     if (!atomTable)
+Index: extras/Xpm/lib/parse.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/parse.c,v
+retrieving revision 1.2.4.1
+diff -u -r1.2.4.1 parse.c
+--- extras/Xpm/lib/parse.c	15 Sep 2004 15:47:39 -0000	1.2.4.1
++++ extras/Xpm/lib/parse.c	5 Nov 2004 03:21:03 -0000
+@@ -1,4 +1,4 @@
+-/* $XdotOrg: xc/extras/Xpm/lib/parse.c,v 1.2.4.1 2004/09/15 15:47:39 daniel Exp $ */
++/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
+ /*
+  * Copyright (C) 1989-95 GROUPE BULL
+  *
+@@ -205,7 +205,7 @@
+     char **defaults;
+     int ErrorStatus;
+ 
+-    if (ncolors >= SIZE_MAX / sizeof(XpmColor))
++    if (ncolors >= UINT_MAX / sizeof(XpmColor))
+ 	return (XpmNoMemory);
+     colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor));
+     if (!colorTable)
+@@ -218,7 +218,7 @@
+ 	    /*
+ 	     * read pixel value
+ 	     */
+-	    if (cpp >= SIZE_MAX - 1) {
++	    if (cpp >= UINT_MAX - 1) {
+ 		xpmFreeColorTable(colorTable, ncolors);
+ 		return (XpmNoMemory);
+ 	    }
+@@ -306,7 +306,7 @@
+ 	    /*
+ 	     * read pixel value
+ 	     */
+-	    if (cpp >= SIZE_MAX - 1) {
++	    if (cpp >= UINT_MAX - 1) {
+ 		xpmFreeColorTable(colorTable, ncolors);
+ 		return (XpmNoMemory);
+ 	    }
+@@ -374,7 +374,7 @@
+     unsigned int a, x, y;
+ 
+     if ((height > 0 && width >= SIZE_MAX / height) ||
+-	width * height >= SIZE_MAX / sizeof(unsigned int)) 
++	width * height >= UINT_MAX / sizeof(unsigned int)) 
+ 	return XpmNoMemory;
+ #ifndef FOR_MSW
+     iptr2 = (unsigned int *) XpmMalloc(sizeof(unsigned int) * width * height);
+@@ -432,7 +432,7 @@
+ 
+ 	    /* array of pointers malloced by need */
+ 	    unsigned short *cidx[256];
+-	    int char1;
++	    unsigned int char1;
+ 
+ 	    bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */
+ 	    for (a = 0; a < ncolors; a++) {
+Index: extras/Xpm/lib/scan.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/scan.c,v
+retrieving revision 1.2.4.1
+diff -u -r1.2.4.1 scan.c
+--- extras/Xpm/lib/scan.c	15 Sep 2004 15:47:39 -0000	1.2.4.1
++++ extras/Xpm/lib/scan.c	5 Nov 2004 03:21:03 -0000
+@@ -234,14 +234,14 @@
+ 	cpp = 0;
+ 
+     if ((height > 0 && width >= SIZE_MAX / height) ||
+-	width * height >= SIZE_MAX / sizeof(unsigned int))
++	width * height >= UINT_MAX / sizeof(unsigned int))
+ 	RETURN(XpmNoMemory);
+     pmap.pixelindex =
+ 	(unsigned int *) XpmCalloc(width * height, sizeof(unsigned int));
+     if (!pmap.pixelindex)
+ 	RETURN(XpmNoMemory);
+ 
+-    if (pmap.size >= SIZE_MAX / sizeof(Pixel)) 
++    if (pmap.size >= UINT_MAX / sizeof(Pixel)) 
+ 	RETURN(XpmNoMemory);
+ 
+     pmap.pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * pmap.size);
+@@ -308,7 +308,7 @@
+      * get rgb values and a string of char, and possibly a name for each
+      * color
+      */
+-    if (pmap.ncolors >= SIZE_MAX / sizeof(XpmColor))
++    if (pmap.ncolors >= UINT_MAX / sizeof(XpmColor))
+ 	RETURN(XpmNoMemory);
+     colorTable = (XpmColor *) XpmCalloc(pmap.ncolors, sizeof(XpmColor));
+     if (!colorTable)
+@@ -368,7 +368,7 @@
+ 
+     /* first get a character string */
+     a = 0;
+-    if (cpp >= SIZE_MAX - 1)
++    if (cpp >= UINT_MAX - 1)
+ 	return (XpmNoMemory);
+     if (!(s = color->string = (char *) XpmMalloc(cpp + 1)))
+ 	return (XpmNoMemory);
+@@ -461,7 +461,7 @@
+     }
+ 
+     /* first get character strings and rgb values */
+-    if (ncolors >= SIZE_MAX / sizeof(XColor) || cpp >= SIZE_MAX - 1)
++    if (ncolors >= UINT_MAX / sizeof(XColor) || cpp >= UINT_MAX - 1)
+ 	return (XpmNoMemory);
+     xcolors = (XColor *) XpmMalloc(sizeof(XColor) * ncolors);
+     if (!xcolors)
Index: files/patch-xpm-sec.patch4
===================================================================
RCS file: files/patch-xpm-sec.patch4
diff -N files/patch-xpm-sec.patch4
--- files/patch-xpm-sec.patch4	27 Oct 2004 13:10:17 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,498 +0,0 @@
-Index: xc/extras/Xpm/lib/Attrib.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/Attrib.c,v
-retrieving revision 1.1.1.1
-diff -u -r1.1.1.1 Attrib.c
---- extras/Xpm/lib/Attrib.c	15 Feb 2001 07:59:10 -0000	1.1.1.1
-+++ extras/Xpm/lib/Attrib.c	31 Aug 2004 23:28:59 -0000
-@@ -35,7 +35,7 @@
- #include "XpmI.h"
- 
- /* 3.2 backward compatibility code */
--LFUNC(CreateOldColorTable, int, (XpmColor *ct, int ncolors,
-+LFUNC(CreateOldColorTable, int, (XpmColor *ct, unsigned int ncolors,
- 				 XpmColor ***oldct));
- 
- LFUNC(FreeOldColorTable, void, (XpmColor **colorTable, int ncolors));
-@@ -46,11 +46,14 @@
- static int
- CreateOldColorTable(ct, ncolors, oldct)
-     XpmColor *ct;
--    int ncolors;
-+    unsigned int ncolors;
-     XpmColor ***oldct;
- {
-     XpmColor **colorTable, **color;
-     int a;
-+
-+    if (ncolors >= SIZE_MAX / sizeof(XpmColor *)) 
-+	return XpmNoMemory;
- 
-     colorTable = (XpmColor **) XpmMalloc(ncolors * sizeof(XpmColor *));
-     if (!colorTable) {
-Index: xc/extras/Xpm/lib/CrDatFrI.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/CrDatFrI.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 CrDatFrI.c
---- extras/Xpm/lib/CrDatFrI.c	19 Jan 2002 11:08:43 -0000	1.1.1.2
-+++ extras/Xpm/lib/CrDatFrI.c	31 Aug 2004 23:28:59 -0000
-@@ -124,6 +124,8 @@
-      */
-     header_nlines = 1 + image->ncolors;
-     header_size = sizeof(char *) * header_nlines;
-+    if (header_size >= SIZE_MAX / sizeof(char *))
-+	return (XpmNoMemory);
-     header = (char **) XpmCalloc(header_size, sizeof(char *));
-     if (!header)
- 	return (XpmNoMemory);
-Index: xc/extras/Xpm/lib/WrFFrI.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/WrFFrI.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 WrFFrI.c
---- extras/Xpm/lib/WrFFrI.c	19 Jan 2002 11:08:43 -0000	1.1.1.2
-+++ extras/Xpm/lib/WrFFrI.c	31 Aug 2004 23:28:59 -0000
-@@ -248,6 +248,8 @@
-     unsigned int x, y, h;
- 
-     h = height - 1;
-+    if (cpp != 0 && width >= (SIZE_MAX - 3)/cpp) 
-+	return XpmNoMemory;    
-     p = buf = (char *) XpmMalloc(width * cpp + 3);
-     if (!buf)
- 	return (XpmNoMemory);
-Index: xc/extras/Xpm/lib/XpmI.h
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/XpmI.h,v
-retrieving revision 1.6
-diff -u -r1.6 XpmI.h
---- extras/Xpm/lib/XpmI.h	13 Feb 2004 22:40:56 -0000	1.6
-+++ extras/Xpm/lib/XpmI.h	31 Aug 2004 23:28:59 -0000
-@@ -86,6 +86,18 @@
- 		boundCheckingCalloc((long)(nelem),(long) (elsize))
- #endif
- 
-+#if defined(SCO) || defined(__USLC__)
-+#include <stdint.h>	/* For SIZE_MAX */
-+#endif
-+#include <limits.h>
-+#ifndef SIZE_MAX
-+# ifdef ULONG_MAX
-+#  define SIZE_MAX ULONG_MAX
-+# else 
-+#  define SIZE_MAX UINT_MAX
-+# endif
-+#endif
-+
- #define XPMMAXCMTLEN BUFSIZ
- typedef struct {
-     unsigned int type;
-@@ -187,9 +199,9 @@
- }      *xpmHashAtom;
- 
- typedef struct {
--    int size;
--    int limit;
--    int used;
-+    unsigned int size;
-+    unsigned int limit;
-+    unsigned int used;
-     xpmHashAtom *atomTable;
- }      xpmHashTable;
- 
-Index: xc/extras/Xpm/lib/create.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/create.c,v
-retrieving revision 1.3
-diff -u -r1.3 create.c
---- extras/Xpm/lib/create.c	13 Feb 2004 22:40:56 -0000	1.3
-+++ extras/Xpm/lib/create.c	31 Aug 2004 23:28:59 -0000
-@@ -1,3 +1,4 @@
-+/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
- /*
-  * Copyright (C) 1989-95 GROUPE BULL
-  *
-@@ -816,6 +817,9 @@
- 
-     ErrorStatus = XpmSuccess;
- 
-+    if (image->ncolors >= SIZE_MAX / sizeof(Pixel)) 
-+	return (XpmNoMemory);
-+
-     /* malloc pixels index tables */
-     image_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * image->ncolors);
-     if (!image_pixels)
-@@ -988,6 +992,8 @@
- 	return (XpmNoMemory);
- 
- #if !defined(FOR_MSW) && !defined(AMIGA)
-+    if (height != 0 && (*image_return)->bytes_per_line >= SIZE_MAX / height)
-+	return XpmNoMemory;
-     /* now that bytes_per_line must have been set properly alloc data */
-     (*image_return)->data =
- 	(char *) XpmMalloc((*image_return)->bytes_per_line * height);
-@@ -2055,6 +2061,9 @@
- 	xpmGetCmt(data, &colors_cmt);
- 
-     /* malloc pixels index tables */
-+    if (ncolors >= SIZE_MAX / sizeof(Pixel)) 
-+	return XpmNoMemory;
-+
-     image_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * ncolors);
-     if (!image_pixels)
- 	RETURN(XpmNoMemory);
-@@ -2309,7 +2318,8 @@
- 	    }
- 	    obm = SelectObject(*dc, image->bitmap);
- #endif
--
-+	    if (ncolors > 256)
-+		return (XpmFileInvalid);
- 
- 	    bzero((char *)colidx, 256 * sizeof(short));
- 	    for (a = 0; a < ncolors; a++)
-@@ -2414,6 +2424,9 @@
- 	{
- 	    char *s;
- 	    char buf[BUFSIZ];
-+
-+	    if (cpp >= sizeof(buf))
-+		return (XpmFileInvalid);
- 
- 	    buf[cpp] = '\0';
- 	    if (USE_HASHTABLE) {
-Index: xc/extras/Xpm/lib/data.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/data.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 data.c
---- extras/Xpm/lib/data.c	19 Jan 2002 11:08:44 -0000	1.1.1.2
-+++ extras/Xpm/lib/data.c	31 Aug 2004 23:28:59 -0000
-@@ -375,7 +375,7 @@
- {
-     if (!data->type)
- 	*cmt = NULL;
--    else if (data->CommentLength) {
-+    else if (data->CommentLength != 0 && data->CommentLength < SIZE_MAX - 1) {
- 	*cmt = (char *) XpmMalloc(data->CommentLength + 1);
- 	strncpy(*cmt, data->Comment, data->CommentLength);
- 	(*cmt)[data->CommentLength] = '\0';
-Index: xc/extras/Xpm/lib/hashtab.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/hashtab.c,v
-retrieving revision 1.1.1.1
-diff -u -r1.1.1.1 hashtab.c
---- extras/Xpm/lib/hashtab.c	15 Feb 2001 07:59:10 -0000	1.1.1.1
-+++ extras/Xpm/lib/hashtab.c	31 Aug 2004 23:28:59 -0000
-@@ -135,7 +135,7 @@
-     xpmHashTable *table;
- {
-     xpmHashAtom *atomTable = table->atomTable;
--    int size = table->size;
-+    unsigned int size = table->size;
-     xpmHashAtom *t, *p;
-     int i;
-     int oldSize = size;
-@@ -144,6 +144,8 @@
-     HASH_TABLE_GROWS
- 	table->size = size;
-     table->limit = size / 3;
-+    if (size >= SIZE_MAX / sizeof(*atomTable)) 
-+	return (XpmNoMemory);
-     atomTable = (xpmHashAtom *) XpmMalloc(size * sizeof(*atomTable));
-     if (!atomTable)
- 	return (XpmNoMemory);
-@@ -204,6 +206,8 @@
-     table->size = INITIAL_HASH_SIZE;
-     table->limit = table->size / 3;
-     table->used = 0;
-+    if (table->size >= SIZE_MAX / sizeof(*atomTable))
-+	return (XpmNoMemory);
-     atomTable = (xpmHashAtom *) XpmMalloc(table->size * sizeof(*atomTable));
-     if (!atomTable)
- 	return (XpmNoMemory);
-Index: xc/extras/Xpm/lib/parse.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/parse.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 parse.c
---- extras/Xpm/lib/parse.c	19 Jan 2002 11:08:44 -0000	1.1.1.2
-+++ extras/Xpm/lib/parse.c	31 Aug 2004 23:28:59 -0000
-@@ -1,3 +1,4 @@
-+/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
- /*
-  * Copyright (C) 1989-95 GROUPE BULL
-  *
-@@ -44,6 +45,24 @@
- #include <ctype.h>
- #include <string.h>
- 
-+#ifdef HAS_STRLCAT
-+# define STRLCAT(dst, src, dstsize) { \
-+  	if (strlcat(dst, src, dstsize) >= (dstsize)) \
-+	    return (XpmFileInvalid); }
-+# define STRLCPY(dst, src, dstsize) { \
-+  	if (strlcpy(dst, src, dstsize) >= (dstsize)) \
-+	    return (XpmFileInvalid); }
-+#else
-+# define STRLCAT(dst, src, dstsize) { \
-+	if ((strlen(dst) + strlen(src)) < (dstsize)) \
-+ 	    strcat(dst, src); \
-+	else return (XpmFileInvalid); }
-+# define STRLCPY(dst, src, dstsize) { \
-+	if (strlen(src) < (dstsize)) \
-+ 	    strcpy(dst, src); \
-+	else return (XpmFileInvalid); }
-+#endif
-+
- LFUNC(ParsePixels, int, (xpmData *data, unsigned int width,
- 			 unsigned int height, unsigned int ncolors,
- 			 unsigned int cpp, XpmColor *colorTable,
-@@ -66,7 +85,7 @@
-     unsigned int *extensions;
- {
-     unsigned int l;
--    char buf[BUFSIZ];
-+    char buf[BUFSIZ + 1];
- 
-     if (!data->format) {		/* XPM 2 or 3 */
- 
-@@ -175,10 +194,10 @@
-     XpmColor **colorTablePtr;
-     xpmHashTable *hashtable;
- {
--    unsigned int key = 0, l, a, b;
-+    unsigned int key = 0, l, a, b, len;
-     unsigned int curkey;		/* current color key */
-     unsigned int lastwaskey;		/* key read */
--    char buf[BUFSIZ];
-+    char buf[BUFSIZ+1];
-     char curbuf[BUFSIZ];		/* current buffer */
-     char **sptr, *s;
-     XpmColor *color;
-@@ -186,6 +205,8 @@
-     char **defaults;
-     int ErrorStatus;
- 
-+    if (ncolors >= SIZE_MAX / sizeof(XpmColor))
-+	return (XpmNoMemory);
-     colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor));
-     if (!colorTable)
- 	return (XpmNoMemory);
-@@ -197,6 +218,10 @@
- 	    /*
- 	     * read pixel value
- 	     */
-+	    if (cpp >= SIZE_MAX - 1) {
-+		xpmFreeColorTable(colorTable, ncolors);
-+		return (XpmNoMemory);
-+	    }
- 	    color->string = (char *) XpmMalloc(cpp + 1);
- 	    if (!color->string) {
- 		xpmFreeColorTable(colorTable, ncolors);
-@@ -234,13 +259,14 @@
- 		}
- 		if (!lastwaskey && key < NKEYS) {	/* open new key */
- 		    if (curkey) {	/* flush string */
--			s = (char *) XpmMalloc(strlen(curbuf) + 1);
-+			len = strlen(curbuf) + 1;
-+			s = (char *) XpmMalloc(len);
- 			if (!s) {
- 			    xpmFreeColorTable(colorTable, ncolors);
- 			    return (XpmNoMemory);
- 			}
- 			defaults[curkey] = s;
--			strcpy(s, curbuf);
-+			memcpy(s, curbuf, len);
- 		    }
- 		    curkey = key + 1;	/* set new key  */
- 		    *curbuf = '\0';	/* reset curbuf */
-@@ -251,9 +277,9 @@
- 			return (XpmFileInvalid);
- 		    }
- 		    if (!lastwaskey)
--			strcat(curbuf, " ");	/* append space */
-+			STRLCAT(curbuf, " ", sizeof(curbuf)); /* append space */
- 		    buf[l] = '\0';
--		    strcat(curbuf, buf);/* append buf */
-+		    STRLCAT(curbuf, buf, sizeof(curbuf));/* append buf */
- 		    lastwaskey = 0;
- 		}
- 	    }
-@@ -261,12 +287,13 @@
- 		xpmFreeColorTable(colorTable, ncolors);
- 		return (XpmFileInvalid);
- 	    }
--	    s = defaults[curkey] = (char *) XpmMalloc(strlen(curbuf) + 1);
-+	    len = strlen(curbuf) + 1;
-+	    s = defaults[curkey] = (char *) XpmMalloc(len);
- 	    if (!s) {
- 		xpmFreeColorTable(colorTable, ncolors);
- 		return (XpmNoMemory);
- 	    }
--	    strcpy(s, curbuf);
-+	    memcpy(s, curbuf, len);
- 	}
-     } else {				/* XPM 1 */
- 	/* get to the beginning of the first string */
-@@ -279,6 +306,10 @@
- 	    /*
- 	     * read pixel value
- 	     */
-+	    if (cpp >= SIZE_MAX - 1) {
-+		xpmFreeColorTable(colorTable, ncolors);
-+		return (XpmNoMemory);
-+	    }
- 	    color->string = (char *) XpmMalloc(cpp + 1);
- 	    if (!color->string) {
- 		xpmFreeColorTable(colorTable, ncolors);
-@@ -307,16 +338,17 @@
- 	    *curbuf = '\0';		/* init curbuf */
- 	    while ((l = xpmNextWord(data, buf, BUFSIZ))) {
- 		if (*curbuf != '\0')
--		    strcat(curbuf, " ");/* append space */
-+		    STRLCAT(curbuf, " ", sizeof(curbuf));/* append space */
- 		buf[l] = '\0';
--		strcat(curbuf, buf);	/* append buf */
-+		STRLCAT(curbuf, buf, sizeof(curbuf));	/* append buf */
- 	    }
--	    s = (char *) XpmMalloc(strlen(curbuf) + 1);
-+	    len = strlen(curbuf) + 1;
-+	    s = (char *) XpmMalloc(len);
- 	    if (!s) {
- 		xpmFreeColorTable(colorTable, ncolors);
- 		return (XpmNoMemory);
- 	    }
--	    strcpy(s, curbuf);
-+	    memcpy(s, curbuf, len);
- 	    color->c_color = s;
- 	    *curbuf = '\0';		/* reset curbuf */
- 	    if (a < ncolors - 1)
-@@ -341,6 +373,9 @@
-     unsigned int *iptr, *iptr2;
-     unsigned int a, x, y;
- 
-+    if ((height > 0 && width >= SIZE_MAX / height) ||
-+	width * height >= SIZE_MAX / sizeof(unsigned int)) 
-+	return XpmNoMemory;
- #ifndef FOR_MSW
-     iptr2 = (unsigned int *) XpmMalloc(sizeof(unsigned int) * width * height);
- #else
-@@ -364,6 +399,9 @@
- 	{
- 	    unsigned short colidx[256];
- 
-+	    if (ncolors > 256)
-+		return (XpmFileInvalid);
-+
- 	    bzero((char *)colidx, 256 * sizeof(short));
- 	    for (a = 0; a < ncolors; a++)
- 		colidx[(unsigned char)colorTable[a].string[0]] = a + 1;
-@@ -441,6 +479,9 @@
- 	{
- 	    char *s;
- 	    char buf[BUFSIZ];
-+
-+	    if (cpp >= sizeof(buf))
-+		return (XpmFileInvalid);
- 
- 	    buf[cpp] = '\0';
- 	    if (USE_HASHTABLE) {
-Index: xc/extras/Xpm/lib/scan.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/scan.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 scan.c
---- extras/Xpm/lib/scan.c	19 Jan 2002 11:08:44 -0000	1.1.1.2
-+++ extras/Xpm/lib/scan.c	31 Aug 2004 23:28:59 -0000
-@@ -107,7 +107,8 @@
- LFUNC(ScanTransparentColor, int, (XpmColor *color, unsigned int cpp,
- 				  XpmAttributes *attributes));
- 
--LFUNC(ScanOtherColors, int, (Display *display, XpmColor *colors, int ncolors,
-+LFUNC(ScanOtherColors, int, (Display *display, XpmColor *colors, 
-+			     unsigned int ncolors, 
- 			     Pixel *pixels, unsigned int mask,
- 			     unsigned int cpp, XpmAttributes *attributes));
- 
-@@ -232,11 +233,17 @@
-     else
- 	cpp = 0;
- 
-+    if ((height > 0 && width >= SIZE_MAX / height) ||
-+	width * height >= SIZE_MAX / sizeof(unsigned int))
-+	RETURN(XpmNoMemory);
-     pmap.pixelindex =
- 	(unsigned int *) XpmCalloc(width * height, sizeof(unsigned int));
-     if (!pmap.pixelindex)
- 	RETURN(XpmNoMemory);
- 
-+    if (pmap.size >= SIZE_MAX / sizeof(Pixel)) 
-+	RETURN(XpmNoMemory);
-+
-     pmap.pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * pmap.size);
-     if (!pmap.pixels)
- 	RETURN(XpmNoMemory);
-@@ -301,7 +308,8 @@
-      * get rgb values and a string of char, and possibly a name for each
-      * color
-      */
--
-+    if (pmap.ncolors >= SIZE_MAX / sizeof(XpmColor))
-+	RETURN(XpmNoMemory);
-     colorTable = (XpmColor *) XpmCalloc(pmap.ncolors, sizeof(XpmColor));
-     if (!colorTable)
- 	RETURN(XpmNoMemory);
-@@ -360,6 +368,8 @@
- 
-     /* first get a character string */
-     a = 0;
-+    if (cpp >= SIZE_MAX - 1)
-+	return (XpmNoMemory);
-     if (!(s = color->string = (char *) XpmMalloc(cpp + 1)))
- 	return (XpmNoMemory);
-     *s++ = printable[c = a % MAXPRINTABLE];
-@@ -407,7 +417,7 @@
- ScanOtherColors(display, colors, ncolors, pixels, mask, cpp, attributes)
-     Display *display;
-     XpmColor *colors;
--    int ncolors;
-+    unsigned int ncolors;
-     Pixel *pixels;
-     unsigned int mask;
-     unsigned int cpp;
-@@ -451,6 +461,8 @@
-     }
- 
-     /* first get character strings and rgb values */
-+    if (ncolors >= SIZE_MAX / sizeof(XColor) || cpp >= SIZE_MAX - 1)
-+	return (XpmNoMemory);
-     xcolors = (XColor *) XpmMalloc(sizeof(XColor) * ncolors);
-     if (!xcolors)
- 	return (XpmNoMemory);
-Index: xc/lib/Xpm/Imakefile
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/lib/Xpm/Imakefile,v
-retrieving revision 1.1.1.1
-diff -u -r1.1.1.1 Imakefile
---- lib/Xpm/Imakefile	15 Feb 2001 07:56:01 -0000	1.1.1.1
-+++ lib/Xpm/Imakefile	31 Aug 2004 23:28:59 -0000
-@@ -42,11 +42,16 @@
- SPRINTFDEF = -DVOID_SPRINTF
- #endif
- 
-+#if HasStrlcat
-+STRLCATDEF = -DHAS_STRLCAT
-+#endif
-+
- #if defined(Win32Architecture)
- ZPIPEDEF = -DNO_ZPIPE
- #endif
- 
--DEFINES = $(STRDUPDEF) $(STRCASECMPDEF) $(SPRINTFDEF) $(ZPIPEDEF) $(ZFILEDEF)
-+DEFINES = $(STRDUPDEF) $(STRCASECMPDEF) $(SPRINTFDEF) $(STRLCATDEF) \
-+		$(ZPIPEDEF) $(ZFILEDEF)
- 
- HEADERS = xpm.h
- 
Attachment:
pgp00004.pgp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgp00004.pgp
Type: application/octet-stream
Size: 187 bytes
Desc: "Description: PGP signature"
URL: <http://lists.dragonflybsd.org/pipermail/submit/attachments/20050101/62b9648c/attachment-0019.obj>


More information about the Submit mailing list