Package-Name: Xorg
Gentoo-Package: x11-base/xorg-x11
# Package options:
#    EXTRA: include extra Xapps (-oEXTRA)
Conflicts: XFree86
Compile-Requires: wget bison flex
Requires: zlib ncurses expat freetype fontconfig libpng libdrm
Explicit-Only: 1
Homepage: http://www.x.org/
# This is only to get the release version; actual downloading is done in
# the repack rule.
# FIXME: package version number at the end
#Source: ftp://ftp.freedesktop.org/pub/xorg/X11R(\d+(.\d+)+) $1 ftp://ftp.freedesktop.org/pub/xorg/X11R$1/src/everything/util-macros-X11R$1-1.0.2.tar.bz2
# 7.2 not ready yet!!!!
Source: ftp://ftp.freedesktop.org/pub/xorg/X11R(7.1) $1 ftp://ftp.freedesktop.org/pub/xorg/X11R$1/src/everything/util-macros-X11R$1-1.0.2.tar.bz2
Repack:
	rm -f pkglist
	echo >>pkglist 0010 bigreqsproto
	echo >>pkglist 0020 compositeproto
	echo >>pkglist 0030 damageproto
	echo >>pkglist 0040 dmxproto
	echo >>pkglist 0050 evieext
	echo >>pkglist 0060 fixesproto
	echo >>pkglist 0070 fontcacheproto
	echo >>pkglist 0080 fontsproto
	echo >>pkglist 0090 glproto
	echo >>pkglist 0100 inputproto
	echo >>pkglist 0110 kbproto
	echo >>pkglist 0120 printproto
	echo >>pkglist 0130 randrproto
	echo >>pkglist 0140 recordproto
	echo >>pkglist 0150 renderproto
	echo >>pkglist 0160 resourceproto
	echo >>pkglist 0170 scrnsaverproto
	echo >>pkglist 0180 trapproto
	echo >>pkglist 0190 videoproto
	echo >>pkglist 0200 xcmiscproto
	echo >>pkglist 0210 xextproto
	echo >>pkglist 0220 xf86bigfontproto
	echo >>pkglist 0230 xf86dgaproto
	echo >>pkglist 0235 xf86driproto
	echo >>pkglist 0240 xf86miscproto
	echo >>pkglist 0250 xf86rushproto
	echo >>pkglist 0260 xf86vidmodeproto
	echo >>pkglist 0270 xineramaproto
	echo >>pkglist 0280 xproto
	echo >>pkglist 0290 xproxymanagementprotocol
	echo >>pkglist 0300 xorg-cf-files
	echo >>pkglist 0310 imake
	echo >>pkglist 0320 gccmakedep
	echo >>pkglist 0330 lndir
	echo >>pkglist 0340 makedepend
	echo >>pkglist 0350 util-macros
	echo >>pkglist 0360 xtrans
	echo >>pkglist 0370 libXau
	echo >>pkglist 0380 libXdmcp
	echo >>pkglist 0390 libX11
	echo >>pkglist 0400 libXext
	echo >>pkglist 0410 libICE
	echo >>pkglist 0420 libSM
	echo >>pkglist 0430 libXt
	echo >>pkglist 0440 libXmu
	echo >>pkglist 0450 libXpm
	echo >>pkglist 0460 libXp
	echo >>pkglist 0470 libXfixes
	echo >>pkglist 0480 libXrender
	echo >>pkglist 0490 libfontenc
	echo >>pkglist 0500 libxkbfile
	echo >>pkglist 0510 libXprintUtil
	echo >>pkglist 0520 libXv
	echo >>pkglist 0530 libdmx
	echo >>pkglist 0540 libFS
	echo >>pkglist 0550 liblbxutil
	echo >>pkglist 0560 liboldX
	echo >>pkglist 0570 libXaw
	echo >>pkglist 0580 libXcomposite
	echo >>pkglist 0590 libXcursor
	echo >>pkglist 0600 libXdamage
	echo >>pkglist 0610 libXevie
	echo >>pkglist 0620 libXfont
	echo >>pkglist 0630 libXfontcache
	echo >>pkglist 0640 libXft
	echo >>pkglist 0650 libXi
	echo >>pkglist 0660 libXinerama
	echo >>pkglist 0670 libxkbui
	echo >>pkglist 0680 libXprintAppUtil
	echo >>pkglist 0690 libXrandr
	echo >>pkglist 0700 libXres
	echo >>pkglist 0710 libXScrnSaver
	echo >>pkglist 0720 libXTrap
	echo >>pkglist 0730 libXtst
	echo >>pkglist 0740 libXvMC
	echo >>pkglist 0750 libXxf86dga
	echo >>pkglist 0760 libXxf86misc
	echo >>pkglist 0770 libXxf86vm
	echo >>pkglist 0780 xbitmaps
	echo >>pkglist 0790 appres
	echo >>pkglist 0800 bdftopcf
	echo >>pkglist 0810 beforelight
	echo >>pkglist 0820 bitmap
	echo >>pkglist 0830 editres
	echo >>pkglist 0840 fonttosfnt
	echo >>pkglist 0850 fslsfonts
	echo >>pkglist 0860 fstobdf
	echo >>pkglist 0870 iceauth
	echo >>pkglist 0880 ico
	echo >>pkglist 0890 lbxproxy
	echo >>pkglist 0900 listres
	echo >>pkglist 0910 mkcfm
	echo >>pkglist 0920 mkfontdir
	echo >>pkglist 0930 mkfontscale
	echo >>pkglist 0940 oclock
	echo >>pkglist 0950 proxymngr
	echo >>pkglist 0960 rgb
	echo >>pkglist 0970 rstart
	echo >>pkglist 0980 scripts
	echo >>pkglist 0990 sessreg
	echo >>pkglist 1000 setxkbmap
	echo >>pkglist 1010 showfont
	echo >>pkglist 1020 smproxy
	echo >>pkglist 1030 twm
	echo >>pkglist 1040 viewres
	echo >>pkglist 1050 x11perf
	echo >>pkglist 1060 xauth
	echo >>pkglist 1070 xbiff
	echo >>pkglist 1080 xcalc
	echo >>pkglist 1090 xclipboard
	echo >>pkglist 1100 xclock
	echo >>pkglist 1110 xcmsdb
	echo >>pkglist 1120 xconsole
	echo >>pkglist 1130 xcursorgen
	echo >>pkglist 1140 xdbedizzy
	echo >>pkglist 1150 xditview
	echo >>pkglist 1160 xdm
	echo >>pkglist 1170 xdpyinfo
	echo >>pkglist 1180 xdriinfo
	echo >>pkglist 1190 xedit
	echo >>pkglist 1200 xev
	echo >>pkglist 1210 xeyes
	echo >>pkglist 1220 xf86dga
	echo >>pkglist 1230 xfd
	echo >>pkglist 1240 xfindproxy
	echo >>pkglist 1250 xfontsel
	echo >>pkglist 1260 xfs
	echo >>pkglist 1270 xfsinfo
	echo >>pkglist 1280 xfwp
	echo >>pkglist 1290 xgamma
	echo >>pkglist 1300 xgc
	echo >>pkglist 1310 xhost
	echo >>pkglist 1320 xinit
	echo >>pkglist 1330 xkbcomp
	echo >>pkglist 1340 xkbevd
	echo >>pkglist 1350 xkbprint
	echo >>pkglist 1360 xkbutils
	echo >>pkglist 1370 xkill
	echo >>pkglist 1380 xload
	echo >>pkglist 1390 xlogo
	echo >>pkglist 1400 xlsatoms
	echo >>pkglist 1410 xlsclients
	echo >>pkglist 1420 xlsfonts
	echo >>pkglist 1430 xmag
	echo >>pkglist 1440 xman
	echo >>pkglist 1450 xmessage
	echo >>pkglist 1460 xmh
	echo >>pkglist 1470 xmodmap
	echo >>pkglist 1480 xmore
	echo >>pkglist 1490 xphelloworld
	echo >>pkglist 1500 xplsprinters
	echo >>pkglist 1510 xpr
	echo >>pkglist 1520 xprehashprinterlist
	echo >>pkglist 1530 xprop
	echo >>pkglist 1540 xrandr
	echo >>pkglist 1550 xrdb
	echo >>pkglist 1560 xrefresh
	echo >>pkglist 1570 xrx
	echo >>pkglist 1580 xset
	echo >>pkglist 1590 xsetmode
	echo >>pkglist 1600 xsetpointer
	echo >>pkglist 1610 xsetroot
	echo >>pkglist 1620 xsm
	echo >>pkglist 1630 xstdcmap
	echo >>pkglist 1640 xtrap
	echo >>pkglist 1650 xvidtune
	echo >>pkglist 1660 xvinfo
	echo >>pkglist 1670 xwd
	echo >>pkglist 1680 xwininfo
	echo >>pkglist 1690 xwud
#FIXME: deprecated, but where's the replacement xkbdesc??
	echo >>pkglist 1700 xkbdata
	echo >>pkglist 1710 encodings
	echo >>pkglist 1720 font-util
	echo >>pkglist 1730 font-adobe-100dpi
	echo >>pkglist 1740 font-adobe-75dpi
	echo >>pkglist 1750 font-adobe-utopia-100dpi
	echo >>pkglist 1760 font-adobe-utopia-75dpi
	echo >>pkglist 1770 font-adobe-utopia-type1
	echo >>pkglist 1780 font-alias
	echo >>pkglist 1790 font-arabic-misc
	echo >>pkglist 1800 font-bh-100dpi
	echo >>pkglist 1810 font-bh-75dpi
	echo >>pkglist 1820 font-bh-lucidatypewriter-100dpi
	echo >>pkglist 1830 font-bh-lucidatypewriter-75dpi
	echo >>pkglist 1840 font-bh-ttf
	echo >>pkglist 1850 font-bh-type1
	echo >>pkglist 1860 font-bitstream-100dpi
	echo >>pkglist 1870 font-bitstream-75dpi
	echo >>pkglist 1880 font-bitstream-speedo
	echo >>pkglist 1890 font-bitstream-type1
	echo >>pkglist 1900 font-cronyx-cyrillic
	echo >>pkglist 1910 font-cursor-misc
	echo >>pkglist 1920 font-daewoo-misc
	echo >>pkglist 1930 font-dec-misc
	echo >>pkglist 1940 font-ibm-type1
	echo >>pkglist 1950 font-isas-misc
	echo >>pkglist 1960 font-jis-misc
	echo >>pkglist 1970 font-micro-misc
	echo >>pkglist 1980 font-misc-cyrillic
	echo >>pkglist 1990 font-misc-ethiopic
	echo >>pkglist 2000 font-misc-meltho
	echo >>pkglist 2010 font-misc-misc
	echo >>pkglist 2020 font-mutt-misc
	echo >>pkglist 2030 font-schumacher-misc
	echo >>pkglist 2040 font-screen-cyrillic
	echo >>pkglist 2050 font-sony-misc
	echo >>pkglist 2060 font-sun-misc
	echo >>pkglist 2070 font-winitzki-cyrillic
	echo >>pkglist 2080 font-xfree86-type1
	echo >>pkglist 2090 xorg-server
	echo >>pkglist 2100 xf86-input-acecad
	echo >>pkglist 2110 xf86-input-aiptek
	echo >>pkglist 2120 xf86-input-calcomp
	echo >>pkglist 2130 xf86-input-citron
	echo >>pkglist 2140 xf86-input-digitaledge
	echo >>pkglist 2150 xf86-input-dmc
	echo >>pkglist 2160 xf86-input-dynapro
	echo >>pkglist 2170 xf86-input-elo2300
	echo >>pkglist 2180 xf86-input-elographics
	echo >>pkglist 2190 xf86-input-evdev
	echo >>pkglist 2200 xf86-input-fpit
	echo >>pkglist 2210 xf86-input-hyperpen
	echo >>pkglist 2220 xf86-input-jamstudio
	echo >>pkglist 2230 xf86-input-joystick
	echo >>pkglist 2240 xf86-input-keyboard
	echo >>pkglist 2250 xf86-input-magellan
	echo >>pkglist 2260 xf86-input-magictouch
	echo >>pkglist 2270 xf86-input-microtouch
	echo >>pkglist 2280 xf86-input-mouse
	echo >>pkglist 2290 xf86-input-mutouch
	echo >>pkglist 2300 xf86-input-palmax
	echo >>pkglist 2310 xf86-input-penmount
	echo >>pkglist 2320 xf86-input-spaceorb
	echo >>pkglist 2330 xf86-input-summa
	echo >>pkglist 2340 xf86-input-tek4957
	echo >>pkglist 2350 xf86-input-ur98
	echo >>pkglist 2360 xf86-input-vmmouse
	echo >>pkglist 2370 xf86-input-void
	echo >>pkglist 2380 xf86-video-apm
	echo >>pkglist 2390 xf86-video-ark
	echo >>pkglist 2400 xf86-video-ast
	echo >>pkglist 2410 xf86-video-ati
	echo >>pkglist 2420 xf86-video-chips
	echo >>pkglist 2430 xf86-video-cirrus
	echo >>pkglist 2440 xf86-video-cyrix
	echo >>pkglist 2450 xf86-video-dummy
	echo >>pkglist 2460 xf86-video-fbdev
	echo >>pkglist 2470 xf86-video-glint
	echo >>pkglist 2480 xf86-video-i128
	echo >>pkglist 2490 xf86-video-i740
	echo >>pkglist 2500 xf86-video-i810
	echo >>pkglist 2510 xf86-video-imstt
	echo >>pkglist 2520 xf86-video-mga
	echo >>pkglist 2530 xf86-video-neomagic
	echo >>pkglist 2540 xf86-video-newport
	echo >>pkglist 2550 xf86-video-nsc
	echo >>pkglist 2560 xf86-video-nv
	echo >>pkglist 2570 xf86-video-rendition
	echo >>pkglist 2580 xf86-video-s3
	echo >>pkglist 2590 xf86-video-s3virge
	echo >>pkglist 2600 xf86-video-savage
	echo >>pkglist 2610 xf86-video-siliconmotion
	echo >>pkglist 2620 xf86-video-sis
	echo >>pkglist 2630 xf86-video-sisusb
	echo >>pkglist 2640 xf86-video-sunbw2
	echo >>pkglist 2650 xf86-video-suncg14
	echo >>pkglist 2660 xf86-video-suncg3
	echo >>pkglist 2670 xf86-video-suncg6
	echo >>pkglist 2680 xf86-video-sunffb
	echo >>pkglist 2690 xf86-video-sunleo
	echo >>pkglist 2700 xf86-video-suntcx
	echo >>pkglist 2710 xf86-video-tdfx
	echo >>pkglist 2720 xf86-video-tga
	echo >>pkglist 2730 xf86-video-trident
	echo >>pkglist 2740 xf86-video-tseng
	echo >>pkglist 2750 xf86-video-v4l
	echo >>pkglist 2760 xf86-video-vesa
	echo >>pkglist 2770 xf86-video-vga
	echo >>pkglist 2780 xf86-video-via
	echo >>pkglist 2790 xf86-video-vmware
	echo >>pkglist 2800 xf86-video-voodoo
	set -e; \
	v=`echo "$(VERSION)" | cut -d. -f1`; \
	r=`echo "$(VERSION)" | cut -d. -f2`; \
	set -e; \
	while test 0 -le $$r; do \
		wget -q -O- "http://xorg.freedesktop.org/releases/X11R$$v.$$r/src/everything/" | sed 's,href=",href="X11R'$$v.$$r/,; \
		r=$$[r-1]; \
	done >filelist
	mkdir Xorg-"$(VERSION)" extract-tmp
	set -e; \
	while read n p; do \
		f=`grep "X11R[^/]*/$$p" filelist | head -1 | sed 's,.*href="\(X11R[^"]*\)".*,\1,'`; \
		test=`echo "$$f" | cut -c1-4`; \
		if test "x$$test" != "xX11R"; then exit 1; fi; \
		d=`echo "$$f" | cut -d/ -f1`; \
		f=`echo "$$f" | cut -d/ -f2`; \
		url="http://xorg.freedesktop.org/releases/$$d/src/everything/$$f"; \
		echo "$$url"; \
		wget -nv "$$url"; \
		test -f "$$f" || exit 1; \
		if echo "$$f" | grep -q '.bz2$$'; then z=j; else z=z; fi; \
		tar Cx${z}vfp extract-tmp "$$f"; \
		dir=`echo extract-tmp/*`; \
		test -d "$$dir" || exit 1; \
		name=`basename "$$dir"`; \
		new="pkg$$n-$$name"; \
		mv "$$dir" "Xorg-$(VERSION)/$$new"; \
	done <pkglist
#note: xdriinfo requires -lGL
Compile:
	set -e; \
	for d in pkg*; do \
		p=`echo $$d | cut -d- -f2-`; \
		if test -z "$(PKGOPT_EXTRA)" && echo ',beforelight,ico,lbxproxy,oclock,oldX,proxymngr,rstart,scripts,twm,xbiff,xcalc,xclipboard,xconsole,xdbedizzy,xditview,xdm,xedit,xeyes,xf86dga,xfindproxy,xfwp,xgc,xkbevd,xlogo,xmessage,xmh,xphelloworld,xstdcmap,xtrap,' | fgrep -q ',$$p,'; then \
			continue; \
		fi; \
		if test $$p = xorg-cf-files; then \
			sed -i 's,/usr/X11R6,$(PREFIX),g' X11.tmpl; \
		fi; \
		if test $$p = xorg-cf-files -o $$p = imake; then \
			CONFIGURE_OPTS="--with-config-dir='$(PREFIX)/lib/X11/config'"; \
		else \
			CONFIGURE_OPTS=""; \
		fi; \
		PATH="$(PREFIX)/bin:$$PATH" LD_LIBRARY_PATH="$(PREFIX)/lib" PKG_CONFIG_PATH="$(PREFIX)/lib/pkgconfig" $(MAKE) -C$$d -f ../../Makefile configure CUSTOM_OPT="-O2 -fno-strict-aliasing" CONFIGURE_OPTS="--mandir='$(PREFIX)/man' $$CONFIGURE_OPTS"; \
		PATH="$(PREFIX)/bin:$$PATH" LD_LIBRARY_PATH="$(PREFIX)/lib" PKG_CONFIG_PATH="$(PREFIX)/lib/pkgconfig" $(MAKE) -C$$d; \
		PATH="$(PREFIX)/bin:$$PATH" LD_LIBRARY_PATH="$(PREFIX)/lib" PKG_CONFIG_PATH="$(PREFIX)/lib/pkgconfig" $(MAKE) -C$$d install; \
	done
Install:
	chmod 4711 "$(PREFIX)"/bin/Xorg
	$(MAKE) instetc DEST=X11 ETC=xorg.conf
	rm -f /usr/X11 /usr/include/{DPS,X11} /usr/lib/X11
	test ! -d /usr/X11 && ln -s "$(PREFIX)" /usr/X11
	ln -s "$(PREFIX)"/include/{DPS,X11} /usr/include/
	ln -s "$(PREFIX)"/lib/X11 /usr/lib/
	$(MAKE) addldso
	$(MAKE) instpc PC="bigreqsproto compositeproto damageproto dmx dmxproto evieproto fixesproto fontcacheproto fontenc fontsproto fontutil glproto ice inputproto kbproto lbxutil libfs oldx printproto randrproto recordproto renderproto resourceproto scrnsaverproto sm trapproto videoproto x11 xau xaw6 xaw7 xaw8 xbitmaps xcmiscproto xcomposite xcursor xdamage xdmcp xevie xext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfixes xfont xfontcache xft xi xinerama xineramaproto xkbfile xkbui xmu xmuu xorg-server xp xpm xprintapputil xprintutil xproto xproxymngproto xrandr xrender xres xscrnsaver xt xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm"
Patch: <<EOT
######## begin Japanese keyboard patch (local)
--- pkg1700-xkbdata-X11R7.0-1.0.1/keycodes/xfree86.old	2004-09-02 04:06:44 +0900
+++ pkg1700-xkbdata-X11R7.0-1.0.1/keycodes/xfree86	2007-02-13 21:00:04 +0900
@@ -151,7 +151,7 @@
     // Keys that are generated on Japanese keyboards
 
     alias <HZTG> = <TLDE>;	// Hankaku_Zenkaku toggle
-    <HKTG> =   208;		// Hiragana_Katakana toggle
+    <HKTG> =   239;		// Hiragana_Katakana toggle
     <AB11> =   211;		// backslash/underscore
     <XFER> =   129;		// Henkan
     <NFER> =   131;		// Muhenkan
@@ -277,7 +277,7 @@
     <I6C> =   236;
     <I6D> =   237;
     <I6E> =   238;
-    <I6F> =   239;
+    // <I6F> =   239;
     <I70> =   240;
     <I71> =   241;
     <I72> =   242;
@@ -317,7 +317,7 @@
     <K6D> =   205;		// <I4D>
     <K6E> =   206;		// <I4E>
     <K6F> =   207;		// <I4F>
-    alias <K70> = <HKTG>;	// <I50>
+    <K70> =   208;		// <I50>
     <K71> =   209;		// <I51>
     <K72> =   210;		// <I52>
     alias <K73> = <AB11>;	// <I53>
######## end Japanese keyboard patch
######## remainder is patches from BLFS
diff -pNur libXfont-1.1.0.orig/src/Type1/afm.c libXfont-1.1.0/src/Type1/afm.c
--- libXfont-1.1.0.orig/src/Type1/afm.c	2005-07-09 23:30:06.000000000 +0000
+++ pkg0620-libXfont-X11R7.1-1.1.0/src/Type1/afm.c	2006-10-11 20:30:29.000000000 +0000
@@ -37,6 +37,8 @@
 #include <X11/fonts/fontmisc.h>			/* for xalloc/xfree */
 #include "AFM.h"
 
+#include <limits.h>
+
 #define PBUF 256
 #define KBUF 20
 
@@ -118,6 +120,11 @@ int CIDAFM(FILE *fd, FontInfo **pfi) {
             
             fi->nChars = atoi(p);
 
+	    if (fi->nChars < 0 || fi->nChars > INT_MAX / sizeof(Metrics)) {
+		xfree(afmbuf);
+		xfree(fi);
+		return(1);
+	    }
             fi->metrics = (Metrics *)xalloc(fi->nChars * 
                 sizeof(Metrics));
             if (fi->metrics == NULL) {
diff -pNur libXfont-1.1.0.orig/src/Type1/scanfont.c libXfont-1.1.0/src/Type1/scanfont.c
--- libXfont-1.1.0.orig/src/Type1/scanfont.c	2005-07-09 23:30:06.000000000 +0000
+++ pkg0620-libXfont-X11R7.1-1.1.0/src/Type1/scanfont.c	2006-10-11 20:30:29.000000000 +0000
@@ -72,6 +72,8 @@
 #include "spaces.h"
 #include "fontfcn.h"
 #include "blues.h"
+
+#include <limits.h>
  
 #if XFONT_CID
 #define CID_BUFSIZE 80
@@ -654,6 +656,7 @@ getFDArray(psobj *arrayP)
   arrayP->data.valueP = tokenStartP;
 
   /* allocate FDArray */
+  /* No integer overflow since arrayP->len is unsigned short */
   FDArrayP = (psfont *)vm_alloc(arrayP->len*(sizeof(psfont)));
   if (!(FDArrayP)) return(SCAN_OUT_OF_MEMORY);
 
@@ -850,7 +853,8 @@ BuildSubrs(psfont *FontP)
      }
      return(SCAN_OK);
    }
- 
+   if (N > INT_MAX / sizeof(psobj)) 
+       return (SCAN_ERROR);
    arrayP = (psobj *)vm_alloc(N*sizeof(psobj));
    if (!(arrayP) ) return(SCAN_OUT_OF_MEMORY);
    FontP->Subrs.len = N;
@@ -911,7 +915,7 @@ BuildCharStrings(psfont *FontP)
      }
      else return(rc);  /* if next token was not an Int */
    }
-   if (N<=0) return(SCAN_ERROR);
+   if (N<=0 || N > INT_MAX / sizeof(psdict)) return(SCAN_ERROR);
    /* save number of entries in the dictionary */
  
    dictP = (psdict *)vm_alloc((N+1)*sizeof(psdict));
@@ -1719,6 +1723,10 @@ scan_cidfont(cidfont *CIDFontP, cmapres 
     if (tokenType == TOKEN_INTEGER)
       rangecnt = tokenValue.integer;
 
+    if (rangecnt < 0 || rangecnt > INT_MAX / sizeof(spacerangecode)) {
+	rc = SCAN_ERROR;
+	break;
+    }
     /* ==> tokenLength, tokenTooLong, tokenType, and */
     /* tokenValue are now set                        */
 
diff -pNur libXfont-1.1.0.orig/src/Type1/util.c libXfont-1.1.0/src/Type1/util.c
--- libXfont-1.1.0.orig/src/Type1/util.c	2005-07-09 23:30:07.000000000 +0000
+++ pkg0620-libXfont-X11R7.1-1.1.0/src/Type1/util.c	2006-10-11 20:30:29.000000000 +0000
@@ -104,7 +104,7 @@ vm_alloc(int bytes)
   bytes = (bytes + 7) & ~7;
  
   /* Allocate the space, if it is available */
-  if (bytes <= vm_free) {
+  if (bytes > 0 && bytes <= vm_free) {
     answer = vm_next;
     vm_free -= bytes;
     vm_next += bytes;
diff -pNur xload-1.0.1.orig/xload.c xload-1.0.1/xload.c
--- xload-1.0.1.orig/xload.c	2004-04-23 19:54:57.000000000 +0000
+++ pkg1380-xload-X11R7.0-1.0.1/xload.c	2006-08-05 16:35:56.000000000 +0000
@@ -34,7 +34,7 @@ from the X Consortium.
  * xload - display system load average in a window
  */
 
-
+#include <errno.h>
 #include <stdio.h> 
 #include <stdlib.h>
 #include <unistd.h>
@@ -162,8 +162,17 @@ main(int argc, char **argv)
     /* For security reasons, we reset our uid/gid after doing the necessary
        system initialization and before calling any X routines. */
     InitLoadPoint();
-    setgid(getgid());		/* reset gid first while still (maybe) root */
-    setuid(getuid());
+    /* reset gid first while still (maybe) root */
+    if (setgid(getgid()) == -1) {
+	    fprintf(stderr, "%s: setgid failed: %s\n", 
+		ProgramName, strerror(errno));
+	    exit(1);
+    }
+    if (setuid(getuid()) == -1) {
+	    fprintf(stderr, "%s: setuid failed: %s\n", 
+		ProgramName, strerror(errno));
+	    exit(1);
+    }
 
     XtSetLanguageProc(NULL, (XtLanguageProc) NULL, NULL);
 
diff -pNur xorg-server-1.1.1.orig/dbe/dbe.c xorg-server-1.1.1/dbe/dbe.c
--- xorg-server-1.1.1.orig/dbe/dbe.c	2006-07-05 11:31:36.000000000 -0700
+++ pkg2090-xorg-server-X11R7.1-1.1.0/dbe/dbe.c	2007-01-18 21:46:13.000000000 -0800
@@ -42,6 +42,11 @@
 #endif
 
 #include <string.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#elif !defined(UINT32_MAX)
+#define UINT32_MAX 0xffffffffU
+#endif
 
 #include <X11/X.h>
 #include <X11/Xproto.h>
@@ -716,11 +721,14 @@ ProcDbeSwapBuffers(ClientPtr client)
         return(Success);
     }
 
+    if (nStuff > UINT32_MAX / sizeof(DbeSwapInfoRec))
+	    return BadAlloc;
+
     /* Get to the swap info appended to the end of the request. */
     dbeSwapInfo = (xDbeSwapInfo *)&stuff[1];
 
     /* Allocate array to record swap information. */ 
-    swapInfo = (DbeSwapInfoPtr)ALLOCATE_LOCAL(nStuff * sizeof(DbeSwapInfoRec));
+    swapInfo = (DbeSwapInfoPtr)Xalloc(nStuff * sizeof(DbeSwapInfoRec));
     if (swapInfo == NULL)
     {
         return(BadAlloc);
@@ -735,14 +743,14 @@ ProcDbeSwapBuffers(ClientPtr client)
         if (!(pWin = SecurityLookupWindow(dbeSwapInfo[i].window, client,
 					  SecurityWriteAccess)))
         {
-            DEALLOCATE_LOCAL(swapInfo);
+            Xfree(swapInfo);
 	    return(BadWindow);
         }
 
         /* Each window must be double-buffered - BadMatch. */
         if (DBE_WINDOW_PRIV(pWin) == NULL)
         {
-            DEALLOCATE_LOCAL(swapInfo);
+            Xfree(swapInfo);
             return(BadMatch);
         }
 
@@ -751,7 +759,7 @@ ProcDbeSwapBuffers(ClientPtr client)
         {
             if (dbeSwapInfo[i].window == dbeSwapInfo[j].window)
             {
-                DEALLOCATE_LOCAL(swapInfo);
+                Xfree(swapInfo);
                 return(BadMatch);
 	    }
         }
@@ -762,7 +770,7 @@ ProcDbeSwapBuffers(ClientPtr client)
             (dbeSwapInfo[i].swapAction != XdbeUntouched ) &&
             (dbeSwapInfo[i].swapAction != XdbeCopied    ))
         {
-            DEALLOCATE_LOCAL(swapInfo);
+            Xfree(swapInfo);
             return(BadValue);
         }
 
@@ -792,12 +800,12 @@ ProcDbeSwapBuffers(ClientPtr client)
         error = (*pDbeScreenPriv->SwapBuffers)(client, &nStuff, swapInfo);
         if (error != Success)
         {
-            DEALLOCATE_LOCAL(swapInfo);
+            Xfree(swapInfo);
             return(error);
         }
     }
     
-    DEALLOCATE_LOCAL(swapInfo);
+    Xfree(swapInfo);
     return(Success);
 
 } /* ProcDbeSwapBuffers() */
@@ -879,10 +887,12 @@ ProcDbeGetVisualInfo(ClientPtr client)
 
     REQUEST_AT_LEAST_SIZE(xDbeGetVisualInfoReq);
 
+    if (stuff->n > UINT32_MAX / sizeof(DrawablePtr))
+	    return BadAlloc;
     /* Make sure any specified drawables are valid. */
     if (stuff->n != 0)
     {
-        if (!(pDrawables = (DrawablePtr *)ALLOCATE_LOCAL(stuff->n *
+        if (!(pDrawables = (DrawablePtr *)Xalloc(stuff->n *
                                                  sizeof(DrawablePtr))))
         {
             return(BadAlloc);
@@ -895,7 +905,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
             if (!(pDrawables[i] = (DrawablePtr)SecurityLookupDrawable(
 				drawables[i], client, SecurityReadAccess)))
             {
-                DEALLOCATE_LOCAL(pDrawables);
+                Xfree(pDrawables);
                 return(BadDrawable);
             }
         }
@@ -907,7 +917,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
     {
         if (pDrawables)
         {
-            DEALLOCATE_LOCAL(pDrawables);
+            Xfree(pDrawables);
         }
 
         return(BadAlloc);
@@ -934,7 +944,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
             /* Free pDrawables if we needed to allocate it above. */
             if (pDrawables)
             {
-                DEALLOCATE_LOCAL(pDrawables);
+                Xfree(pDrawables);
             }
 
             return(BadAlloc);
@@ -1015,7 +1025,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
 
     if (pDrawables)
     {
-        DEALLOCATE_LOCAL(pDrawables);
+        Xfree(pDrawables);
     }
 
     return(client->noClientException);
diff -pNur xorg-server-1.1.1.orig/render/render.c xorg-server-1.1.1/render/render.c
--- xorg-server-1.1.1.orig/render/render.c	2006-07-05 11:31:44.000000000 -0700
+++ pkg2090-xorg-server-X11R7.1-1.1.0/render/render.c	2007-01-18 21:46:13.000000000 -0800
@@ -49,6 +49,12 @@
 #include <X11/Xfuncproto.h>
 #include "cursorstr.h"
 
+#if HAVE_STDINT_H
+#include <stdint.h>
+#elif !defined(UINT32_MAX)
+#define UINT32_MAX 0xffffffffU
+#endif
+
 static int ProcRenderQueryVersion (ClientPtr pClient);
 static int ProcRenderQueryPictFormats (ClientPtr pClient);
 static int ProcRenderQueryPictIndexValues (ClientPtr pClient);
@@ -1105,11 +1111,14 @@ ProcRenderAddGlyphs (ClientPtr client)
     }
 
     nglyphs = stuff->nglyphs;
+    if (nglyphs > UINT32_MAX / sizeof(GlyphNewRec))
+	    return BadAlloc;
+
     if (nglyphs <= NLOCALGLYPH)
 	glyphsBase = glyphsLocal;
     else
     {
-	glyphsBase = (GlyphNewPtr) ALLOCATE_LOCAL (nglyphs * sizeof (GlyphNewRec));
+	glyphsBase = (GlyphNewPtr) Xalloc (nglyphs * sizeof (GlyphNewRec));
 	if (!glyphsBase)
 	    return BadAlloc;
     }
@@ -1166,7 +1175,7 @@ ProcRenderAddGlyphs (ClientPtr client)
     }
 
     if (glyphsBase != glyphsLocal)
-	DEALLOCATE_LOCAL (glyphsBase);
+	Xfree (glyphsBase);
     return client->noClientException;
 bail:
     while (glyphs != glyphsBase)
@@ -1175,7 +1184,7 @@ bail:
 	xfree (glyphs->glyph);
     }
     if (glyphsBase != glyphsLocal)
-	DEALLOCATE_LOCAL (glyphsBase);
+	Xfree (glyphsBase);
     return err;
 }
 
EOT

-/etc/X11/xorg.conf
-/etc/X11/fonts/local.conf
-/var/log/Xorg.*.log*
/etc/X11/
/pkg/Xorg/
/usr/X11
/usr/include/DPS
/usr/include/X11
/usr/lib/X11
/usr/lib/pkgconfig/bigreqsproto.pc
/usr/lib/pkgconfig/compositeproto.pc
/usr/lib/pkgconfig/damageproto.pc
/usr/lib/pkgconfig/dmx.pc
/usr/lib/pkgconfig/dmxproto.pc
/usr/lib/pkgconfig/evieproto.pc
/usr/lib/pkgconfig/fixesproto.pc
/usr/lib/pkgconfig/fontcacheproto.pc
/usr/lib/pkgconfig/fontenc.pc
/usr/lib/pkgconfig/fontsproto.pc
/usr/lib/pkgconfig/fontutil.pc
/usr/lib/pkgconfig/glproto.pc
/usr/lib/pkgconfig/ice.pc
/usr/lib/pkgconfig/inputproto.pc
/usr/lib/pkgconfig/kbproto.pc
/usr/lib/pkgconfig/lbxutil.pc
/usr/lib/pkgconfig/libfs.pc
/usr/lib/pkgconfig/oldx.pc
/usr/lib/pkgconfig/printproto.pc
/usr/lib/pkgconfig/randrproto.pc
/usr/lib/pkgconfig/recordproto.pc
/usr/lib/pkgconfig/renderproto.pc
/usr/lib/pkgconfig/resourceproto.pc
/usr/lib/pkgconfig/scrnsaverproto.pc
/usr/lib/pkgconfig/sm.pc
/usr/lib/pkgconfig/trapproto.pc
/usr/lib/pkgconfig/videoproto.pc
/usr/lib/pkgconfig/x11.pc
/usr/lib/pkgconfig/xau.pc
/usr/lib/pkgconfig/xaw6.pc
/usr/lib/pkgconfig/xaw7.pc
/usr/lib/pkgconfig/xaw8.pc
/usr/lib/pkgconfig/xbitmaps.pc
/usr/lib/pkgconfig/xcmiscproto.pc
/usr/lib/pkgconfig/xcomposite.pc
/usr/lib/pkgconfig/xcursor.pc
/usr/lib/pkgconfig/xdamage.pc
/usr/lib/pkgconfig/xdmcp.pc
/usr/lib/pkgconfig/xevie.pc
/usr/lib/pkgconfig/xext.pc
/usr/lib/pkgconfig/xextproto.pc
/usr/lib/pkgconfig/xf86bigfontproto.pc
/usr/lib/pkgconfig/xf86dgaproto.pc
/usr/lib/pkgconfig/xf86driproto.pc
/usr/lib/pkgconfig/xf86miscproto.pc
/usr/lib/pkgconfig/xf86rushproto.pc
/usr/lib/pkgconfig/xf86vidmodeproto.pc
/usr/lib/pkgconfig/xfixes.pc
/usr/lib/pkgconfig/xfont.pc
/usr/lib/pkgconfig/xfontcache.pc
/usr/lib/pkgconfig/xft.pc
/usr/lib/pkgconfig/xi.pc
/usr/lib/pkgconfig/xinerama.pc
/usr/lib/pkgconfig/xineramaproto.pc
/usr/lib/pkgconfig/xkbfile.pc
/usr/lib/pkgconfig/xkbui.pc
/usr/lib/pkgconfig/xmu.pc
/usr/lib/pkgconfig/xmuu.pc
/usr/lib/pkgconfig/xorg-server.pc
/usr/lib/pkgconfig/xp.pc
/usr/lib/pkgconfig/xpm.pc
/usr/lib/pkgconfig/xprintapputil.pc
/usr/lib/pkgconfig/xprintutil.pc
/usr/lib/pkgconfig/xproto.pc
/usr/lib/pkgconfig/xproxymngproto.pc
/usr/lib/pkgconfig/xrandr.pc
/usr/lib/pkgconfig/xrender.pc
/usr/lib/pkgconfig/xres.pc
/usr/lib/pkgconfig/xscrnsaver.pc
/usr/lib/pkgconfig/xt.pc
/usr/lib/pkgconfig/xtrans.pc
/usr/lib/pkgconfig/xtrap.pc
/usr/lib/pkgconfig/xtst.pc
/usr/lib/pkgconfig/xv.pc
/usr/lib/pkgconfig/xvmc.pc
/usr/lib/pkgconfig/xxf86dga.pc
/usr/lib/pkgconfig/xxf86misc.pc
/usr/lib/pkgconfig/xxf86vm.pc
/var/log/Xorg.*.log*
