updates
authorMartin Schlemmer <azarah@gentoo.org>
Fri, 11 Oct 2002 18:53:34 +0000 (18:53 +0000)
committerMartin Schlemmer <azarah@gentoo.org>
Fri, 11 Oct 2002 18:53:34 +0000 (18:53 +0000)
x11-base/xfree/ChangeLog
x11-base/xfree/files/4.2.1-patches/080_all_4.2.1-mit-shm-security.patch.bz2 [new file with mode: 0644]
x11-base/xfree/files/4.2.1-patches/094_all_4.2.1-Xft1-Imake-config.patch.bz2 [new file with mode: 0644]
x11-base/xfree/files/XFree86-4.2.1-Xft11-Imakefile.patch [new file with mode: 0644]
x11-base/xfree/files/XFree86-4.2.1-Xft11-hack.patch [new file with mode: 0644]
x11-base/xfree/files/digest-xfree-4.2.1
x11-base/xfree/xfree-4.2.1.ebuild

index 5eeb10188ac7060e0e55747880ee07e52b39a820..18b156dae9e9c995ecabd5a7640a6eb4d6d08c15 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for x11-base/xfree
 # Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree/ChangeLog,v 1.44 2002/09/30 19:47:25 azarah Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree/ChangeLog,v 1.45 2002/10/11 18:53:34 azarah Exp $
+
+  11 Oct 2002; Martin Schlemmer <azarah@gentoo.org> xfree-4.2.1.ebuild :
+
+  Update Xrender and Xft (to 1.1).  Also now uses fontconfig.
 
   30 Sep 2002; Martin Schlemmer <azarah@gentoo.org> xfree-4.2.1.ebuild :
 
diff --git a/x11-base/xfree/files/4.2.1-patches/080_all_4.2.1-mit-shm-security.patch.bz2 b/x11-base/xfree/files/4.2.1-patches/080_all_4.2.1-mit-shm-security.patch.bz2
new file mode 100644 (file)
index 0000000..e219eac
Binary files /dev/null and b/x11-base/xfree/files/4.2.1-patches/080_all_4.2.1-mit-shm-security.patch.bz2 differ
diff --git a/x11-base/xfree/files/4.2.1-patches/094_all_4.2.1-Xft1-Imake-config.patch.bz2 b/x11-base/xfree/files/4.2.1-patches/094_all_4.2.1-Xft1-Imake-config.patch.bz2
new file mode 100644 (file)
index 0000000..0bbd40b
Binary files /dev/null and b/x11-base/xfree/files/4.2.1-patches/094_all_4.2.1-Xft1-Imake-config.patch.bz2 differ
diff --git a/x11-base/xfree/files/XFree86-4.2.1-Xft11-Imakefile.patch b/x11-base/xfree/files/XFree86-4.2.1-Xft11-Imakefile.patch
new file mode 100644 (file)
index 0000000..5e9692d
--- /dev/null
@@ -0,0 +1,13 @@
+--- xc/lib/Xft/Imakefile.orig   2002-10-01 19:57:18.000000000 +0200
++++ xc/lib/Xft/Imakefile    2002-10-01 19:57:42.000000000 +0200
+@@ -73,7 +73,8 @@
+ #define LibName Xft
+ #define SoRev SOXFT1REV
+-#define LibHeaders NO
++#define LibHeaders YES
+-#define NoSoSymlink
++#define IncSubdir X11
++#define IncSubSubdir Xft
+
+ #include <Threads.tmpl>
+ 
diff --git a/x11-base/xfree/files/XFree86-4.2.1-Xft11-hack.patch b/x11-base/xfree/files/XFree86-4.2.1-Xft11-hack.patch
new file mode 100644 (file)
index 0000000..e0d8f8f
--- /dev/null
@@ -0,0 +1,54 @@
+--- xc/lib/Xft/Xft.h.orig      2002-10-02 00:40:59.000000000 +0200
++++ xc/lib/Xft/Xft.h   2002-10-02 00:35:07.000000000 +0200
+@@ -108,6 +108,51 @@
+ 
+ typedef FcValue       XftValue;
+ 
++/*
++ * Unfortunately Xft-1.1 is not 100% compadible with
++ * Xft-1.0, as it do not define its internal workings
++ * publically.  We thus add this tempory hack until
++ * pango and co change to work with this without
++ * patching.
++ *
++ * The following is taken from fcint.h from the
++ * fontconfig package.
++ *
++ * <azarah@gentoo.org> (02 Oct 2002)
++ * 
++ */
++
++#undef FcValueBinding
++#undef FcValueList
++#undef FcPatternElt
++#undef FcPattern
++
++typedef enum _FcValueBinding {
++    FcValueBindingWeak, FcValueBindingStrong
++} FcValueBinding;
++
++typedef struct _FcValueList {
++    struct _FcValueList    *next;
++    FcValue         value;
++    FcValueBinding      binding;
++} FcValueList;
++
++typedef struct _FcPatternElt {
++    const char      *object;
++    FcValueList     *values;
++} FcPatternElt;
++
++
++struct _FcPattern {
++    int         num;
++    int         size;
++    FcPatternElt    *elts;
++    int         ref;
++};
++
++/*
++ * End of Gentoo hack
++ */
+ 
+ typedef FcPattern XftPattern;
+ 
index 2f7ec28ed45d3b8688e6d9ec3b60408441ae62f2..4b0b537a88e70cf4ff399d4beddd77c775fabaa1 100644 (file)
@@ -4,6 +4,7 @@ MD5 560899e175a02ab592185b69756f539e X420src-3.tgz 9306679
 MD5 23d04bf0cfc48772b8d698c95eec37bd freetype-2.1.2.tar.bz2 742830
 MD5 38adc94a4953a6b29e8619c25dda4887 4.2.0-4.2.1.diff.gz 54763
 MD5 17ce2d3e0dcad9cdc9fe7a8b38277a6e XFree86-4.2.1-patches-1.0.tar.bz2 168818
+MD5 5ef5c58e501b0cb873ee2b2a04ed74e3 fcpackage.2_0.tar.gz 538159
 MD5 222bffcae6c2be37ec5cd993037f4f45 xf86Wacom.c.gz 26156
 MD5 edd1643429f2ffcfde3ccecdf2f76c94 xf41sav.tgz 33105
 MD5 1877066730c28394e9048583390dc0d3 sis_drv_src_050902-2.tar.gz 286720
index 313f49add56b3727cea1439505639b3d2eed97fa..9f24a2b3f8bafab88f7df8898e2787062fd79169 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2002 Gentoo Technologies, Inc.
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree/xfree-4.2.1.ebuild,v 1.10 2002/10/05 05:39:27 drobbins Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree/xfree-4.2.1.ebuild,v 1.11 2002/10/11 18:53:34 azarah Exp $
 
 IUSE="sse nls mmx truetype 3dnow 3dfx"
 
@@ -10,11 +10,13 @@ filter-flags "-funroll-loops"
 
 PATCH_VER="1.0"
 FT2_VER="2.1.2"
+FC2_VER="2.0"
 SISDRV_VER="050902-2"
 
 BASE_PV="4.2.0"
 MY_SV="${BASE_PV//\.}"
 S="${WORKDIR}/xc"
+S_XFT2="${WORKDIR}/fcpackage.${FC2_VER/\./_}/Xft"
 DESCRIPTION="Xfree86: famous and free X server"
 SRC_PATH0="ftp://ftp.xfree.org/pub/XFree86/${BASE_PV}/source"
 SRC_PATH1="ftp://ftp1.sourceforge.net/pub/mirrors/XFree86/${BASE_PV}/source"
@@ -48,13 +50,14 @@ SRC_URI="${SRC_PATH0}/X${MY_SV}src-1.tgz
         ${SRC_PATH1}/X${MY_SV}src-2.tgz
         ${SRC_PATH1}/X${MY_SV}src-3.tgz
         mirror://sourceforge/freetype/freetype-${FT2_VER}.tar.bz2
+        http://fontconfig.org/release/fcpackage.${FC2_VER/\./_}.tar.gz
         ${X_PATCHES}
         ${X_DRIVERS}
         truetype? ( ${MS_FONT_URLS} )"
 
 LICENSE="X11 MSttfEULA"
 SLOT="0"
-KEYWORDS="x86 ppc sparc sparc64 alpha"
+KEYWORDS="~x86 ~ppc ~sparc ~sparc64 ~alpha"
 
 DEPEND=">=sys-apps/baselayout-1.8.3
        >=sys-libs/ncurses-5.1
@@ -62,11 +65,18 @@ DEPEND=">=sys-apps/baselayout-1.8.3
        >=sys-libs/zlib-1.1.3-r2
        sys-devel/flex
        sys-devel/perl
+       >=media-libs/fontconfig-2.0
+       >=media-libs/freetype-${FT2_VER}
+       >=x11-base/opengl-update-1.4
        truetype? ( app-arch/cabextract )"
 #      3dfx? ( >=media-libs/glide-v3-3.10 )"
        
 RDEPEND=">=sys-apps/baselayout-1.8.3
        >=sys-libs/ncurses-5.1
+       >=sys-libs/pam-0.75
+       >=sys-libs/zlib-1.1.3-r2
+       >=media-libs/fontconfig-2.0
+       >=media-libs/freetype-${FT2_VER}
        >=x11-base/opengl-update-1.4"
 
 PROVIDE="virtual/x11
@@ -77,13 +87,15 @@ src_unpack() {
 
        unpack X${MY_SV}src-{1,2,3}.tgz \
                freetype-${FT2_VER}.tar.bz2 \
-               XFree86-${PV}-patches-${PATCH_VER}.tar.bz2
+               XFree86-${PV}-patches-${PATCH_VER}.tar.bz2 \
+               fcpackage.${FC2_VER/\./_}.tar.gz
 
        # Deploy our custom freetype2.  We want it static for stability,
        # and because some things in Gentoo depends the freetype2 that
        # is distributed with XFree86.
+       einfo "Updating Freetype2..."
        rm -rf ${S}/extras/freetype2
-       mv ${WORKDIR}/freetype-${FT2_VER} ${S}/extras/freetype2
+       mv ${WORKDIR}/freetype-${FT2_VER} ${S}/extras/freetype2 || die
 
        # Install the glide3 headers for compiling the tdfx driver
        if [ -n "`use 3dfx`" ]
@@ -154,6 +166,7 @@ src_unpack() {
                #   50-59 - sparc stuff
                #   60-69 - sparc64 stuff
                #   70-79 - alpha stuff
+               #   80-89 - security stuff
                #   90-?? - own stuff
                #
                # NOTE: can maybe thing about merging sparc and sparc64
@@ -215,6 +228,27 @@ src_unpack() {
                echo "#define HasGlide3 YES" >> config/cf/host.def
        fi
 
+       # Update Xft, thanks to the guys from Redhat for the initial
+       # idea and X11.tmpl patch...
+       cd ${S}
+       einfo "Updating Xft1..."
+       rm -rf ${S}/lib/Xft
+       mv ${WORKDIR}/fcpackage.${FC2_VER/\./_}/Xft1 ${S}/lib/Xft || die
+       patch -p1 < ${FILESDIR}/XFree86-${PV}-Xft11-Imakefile.patch > /dev/null || die
+
+       einfo "Updating Xrender..."
+       cd ${S}; rm -rf ${S}/lib/Xrender
+       mv ${WORKDIR}/fcpackage.${FC2_VER/\./_}/Xrender ${S}/lib/Xrender || die
+       # Get Xrender to also install its extension headers, as they need to
+       # be updated.
+       cp ${S}/lib/Xrender/Imakefile ${S}/lib/Xrender/Imakefile.orig
+       sed -e '2i NONSTANDARD_HEADERS = extutil.h region.h render.h renderproto.h' \
+               ${S}/lib/Xrender/Imakefile.orig > ${S}/lib/Xrender/Imakefile
+
+       # Get Xft-1.1 to use Fontconfig
+       echo "#define UseFontconfig YES" >> config/cf/host.def
+       echo "#define HasFontconfig YES" >> config/cf/host.def
+
        # Apply Xft quality patch from http://www.cs.mcgill.ca/~dchest/xfthack/
 #      cd ${S}/lib/Xft
 #      cat ${FILESDIR}/${PVR}/xft-quality.diff | patch -p1 || die
@@ -222,6 +256,7 @@ src_unpack() {
 
 src_compile() {
 
+       einfo "Building XFree86..."
        emake World || die
 
        if [ -n "`use nls`" ]
@@ -234,6 +269,7 @@ src_compile() {
 
 src_install() {
 
+       einfo "Installing XFree86..."
        # gcc3 related fix.  Do this during install, so that our
        # whole build will not be compiled without mmx instructions.
        if [ "`gcc-version`" != "2.95" ] && [ "${ARCH}" = "x86" ]
@@ -255,20 +291,27 @@ src_install() {
        fi
 
        # Make sure user running xterm can only write to utmp.
-       chown root.utmp ${D}/usr/X11R6/bin/xterm
-       chmod 2755 ${D}/usr/X11R6/bin/xterm
+       fowners root.utmp /usr/X11R6/bin/xterm
+       fperms 2755 /usr/X11R6/bin/xterm
+
+       cd ${D}/usr/X11R6/include/X11/Xft
+       # Patch the Xft-1.1 headers to be more compadible with 1.0...
+       einfo "Fixing include/X11/Xft/Xft.h..."
+       patch -p3 < ${FILESDIR}/XFree86-${PV}-Xft11-hack.patch > /dev/null || die
 
        # we zap the our CFLAGS in the host.def file, as hardcoded CFLAGS can
        # mess up other things that use xmkmf
+       einfo "Fixing lib/X11/config/host.def..."
        cp ${D}/usr/X11R6/lib/X11/config/host.def ${T}
-       awk '!/OptimizedCDebugFlags|GccWarningOptions/ {print $0}' \
+       awk '!/OptimizedCDebugFlags|OptimizedCplusplusDebugFlags|GccWarningOptions/ {print $0}' \
                ${T}/host.def > ${D}/usr/X11R6/lib/X11/config/host.def
        # theoretically, /usr/X11R6/lib/X11/config is a possible candidate for
        # config file management. If we find that people really worry about imake
        # stuff, we may add it.  But for now, we leave the dir unprotected.
 
        insinto /etc/X11
-       doins ${FILESDIR}/${PVR}/XftConfig
+       # We use fontconfig now ...
+       #doins ${FILESDIR}/${PVR}/XftConfig
        dosym ../../../../etc/X11/XftConfig /usr/X11R6/lib/X11/XftConfig
        
        # Install MS fonts.
@@ -405,6 +448,9 @@ pkg_postinst() {
        # switch to the xfree implementation
        if [ "${ROOT}" = "/" ]
        then
+               einfo "Creating font cache..."
+               /usr/bin/fc-cache
+
                # use new opengl-update that will not reset user selected
                # OpenGL interface ...
                /usr/sbin/opengl-update --use-old xfree