Delete material in Manually Build X and Beyond
authordavshao <davshao@web>
Sun, 30 May 2010 18:53:24 +0000 (11:53 -0700)
committerCharlie <root@leaf.dragonflybsd.org>
Sun, 30 May 2010 18:53:24 +0000 (11:53 -0700)
docs/developer/GEMdrmKMS/index.mdwn

index fb040ad..34fcb6f 100644 (file)
@@ -88,367 +88,3 @@ I have ported the easy 90% that does not require changing any working code.  The
 will be to fully use the already existing implementation of *list_head* to replace the custom list
 and locking for agp memory.
 
-## Installing from pkgsrc
-
-### GNU m4 1.4.14 and bison 2.4.2
-
-Patch both *devel/m4* and *devel/bison* using the patch idea from:
-<http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=43098>
-
-Unfortunately the problems are in the *work* directories so that one needs the knowledge from
-<http://www.netbsd.org/docs/pkgsrc/components.html>
-to even get the patches to be applied.
-
-Install *pkgtools/pkgdiff*.
-
-### gstreamer 0.10
-
-As of 2010-05-09, I find it necessary on x86_64 to use the following patch for
-pkgsrc gstreamer0.10, an eventual dependency of the full xfce desktop:
-
-    --- pkgsrc/multimedia/gstreamer0.10/Makefile.orig       2010-03-29 16:04:23 -0700
-    +++ pkgsrc/multimedia/gstreamer0.10/Makefile    2010-03-29 16:09:04 -0700
-    @@ -44,6 +44,11 @@
-     .include "../../mk/bsd.prefs.mk"
-    +# __udivti3 error otherwise
-    +.if ${OPSYS} == "DragonFly" && ${MACHINE_ARCH} == "x86_64"
-    +MAKEFLAGS+=    CCVER=gcc44
-    +.endif
-    +
-     .if ${OPSYS} == "NetBSD"
-     # We must have a glib2 compiled with the RTLD_GLOBAL fix; if not, plugins
-     # won't work at all.
-
-See for example the following bug report for more details:
-<http://mail-index.netbsd.org/pkgsrc-bugs/2010/03/30/msg037304.html>
-
-## Building a separate version of X.org
-
-We try something **ill-advised**, we build a separate version of X.org in another directory, say */opt/xbeta*,
-on the same machine where we have installed the latext pkgsrc.  We do this because we have no choice but to
-use the graphics hardware on this machine, but the risk is that it is very easy to link the wrong libraries
-from pkgsrc.
-
-### expat and gettext
-
-We start with installing into */opt/xbeta* [expat 2.0.1](http://sourceforge.net/projects/expat/)
-and [gettext 0.17](http://www.gnu.org/software/gettext/).
-
-### Git repository for most of X.org
-
-We use the following listing:
-
-[freedesktop.org git repository browser](http://cgit.freedesktop.org/)
-
-One can easily script getting, updating, and building the projects listed on that page.
-
-### Example of using ldd
-
-    $ ldd ./libXau.so.6          
-    ./libXau.so.6:
-       libc.so.7 => /usr/lib/libc.so.7 (0x800640000)
-    $ ldd ./libXdmcp.so.6        
-    ./libXdmcp.so.6:
-        libc.so.7 => /usr/lib/libc.so.7 (0x800640000)
-
-### libxcb problem with Python 2.6 cElementTree
-
-Library *xcb/libxcb* unfortunately needs to be built early and there is a catch for
-using pkgsrc Python 2.6.  Unfortunately at the current time not all of
-*cElementTree* appears to be functional; therefore, one needs a patch similar to
-
-    diff --git a/src/c_client.py b/src/c_client.py
-    index d86d05e..36a7039 100755
-    --- a/src/c_client.py
-    +++ b/src/c_client.py
-    @@ -1,5 +1,5 @@
-     #!/usr/bin/env python
-    -from xml.etree.cElementTree import *
-    +from xml.etree.ElementTree import *
-     from os.path import basename
-     import getopt
-     import sys
-
-As of May 20, 2010, the situation for libxcb seems to be more complicated.  The latest *xcb/proto* needs
-to be installed.  If one does not wish to install on top of one's current Python modules,
-define
-
-    export PYTHONPATH=${PREFIX}/lib/python2.6/site-packages
-
-and apply a patch similar to below to change from using Python 2.6's *cElementTree* to *ElementTree*
-
-    diff --git a/xcbgen/matcher.py b/xcbgen/matcher.py
-    index e7958fa..16e8273 100644
-    --- a/xcbgen/matcher.py
-    +++ b/xcbgen/matcher.py
-    @@ -7,7 +7,7 @@ we do not create a new type object, we just record the existing one under a new
-     '''
-
-     from os.path import join
-    -from xml.etree.cElementTree import parse
-    +from xml.etree.ElementTree import parse
-
-     import state
-     from xtypes import *
-    diff --git a/xcbgen/state.py b/xcbgen/state.py
-    index 51efc94..e72dc3e 100644
-    --- a/xcbgen/state.py
-    +++ b/xcbgen/state.py
-    @@ -2,7 +2,7 @@
-     This module contains the namespace class and the singleton module class.
-     '''
-     from os.path import dirname, basename
-    -from xml.etree.cElementTree import parse
-    +from xml.etree.ElementTree import parse
-
-     import matcher
-     from error import *
-
-### libXext
-
-      CCLD   libXext.la
-    /usr/libexec/binutils217/elf/ld: .libs/extutil.o: relocation R_X86_64_PC32 against `xgeExtRegister' can not be used when making a shared   object; recompile with -fPIC
-    /usr/libexec/binutils217/elf/ld: final link failed: Bad value
-
-Use the following patch from <http://lists.x.org/archives/xorg-devel/2009-November/003724.html>
-
-    diff --git a/src/Xge.c b/src/Xge.c
-    index 7a583e5..2ea5d27 100644
-    --- a/src/Xge.c
-    +++ b/src/Xge.c
-    @@ -294,7 +294,7 @@ _xgeEventToWire(Display* dpy, XEvent* re, xEvent* event)
-     /*
-      * Extensions need to register callbacks for their events.
-      */
-    -Bool
-    +_X_HIDDEN Bool
-     xgeExtRegister(Display* dpy, int offset, XExtensionHooks* callbacks)
-     {
-         XGEExtNode* newExt;
-
-### FreeType 2
-
-We install [FreeType 2.3.12](http://www.freetype.org/).  It appears that *GNUMAKE=gmake* is required.
-Most of the X.org projects use *autogen.sh*, but here we use a standard call to *configure* somewhat
-similar to:
-
-        export ACLOCAL="aclocal -I ${PREFIX}/share/aclocal"
-        export PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
-        GNUMAKE=gmake ./configure --prefix=${PREFIX} CPPFLAGS="-I${PREFIX}/include -I${PREFIX}/X11/include" LDFLAGS="-L${PREFIX}/lib -Wl,-rpath -Wl,${PREFIX}/lib -L${PREFIX}/X11/lib -Wl,-rpath -Wl,${PREFIX}/lib/X11"
-
-where *$PREFIX* is where we install X.org, say */opt/xbeta*,
-the first two exports of *ACLOCAL* and *PKG_CONFIG_PATH* occur for most X.org projects,
-*CPPFLAGS* and *LDFLAGS* ensure that the *$PREFIX* include directories and library paths
-are used, and *-Wl,-rpath ...* is an incantation that ensures that previous built
-*libtool* libraries can be used.
-
-### libXfont
-
-*autogen.sh* script seems to build easier with
-    --without-xmlto
-option.
-
-### Mesa
-
-As of 2010-05-09, known problem with GNU m4 pkgsrc on DragonFly
-
-    /usr/pkg/bin/gm4: m4_esyscmd subprocess failed: Operation not permitted
-    /usr/pkg/bin/gm4:configure.ac:8: cannot run command `${MAKE-make} -s -f bin/version.mk version | tr -d '\n'': Operation not permitted
-    configure.ac:8: error: Failed to get the Mesa version from `make -f bin/version.mk version`
-
-For now just manually run command
-    $ make -f bin/version.mk version
-    7.9.0
-and substitute it using a patch similar to
-
-    diff --git a/configure.ac b/configure.ac
-    index c40c842..224a858 100644
-    --- a/configure.ac
-    +++ b/configure.ac
-    @@ -4,7 +4,7 @@ AC_PREREQ([2.59])
-     dnl Versioning - scrape the version from configs/default
-     m4_define([mesa_version],
-    -    [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n'])])
-    +    [7.9.0])])
-     m4_ifval(mesa_version,,
-         [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
-
-#### C99 fpclassify()
-
-    diff --git a/src/mesa/main/querymatrix.c b/src/mesa/main/querymatrix.c
-    index ca292aa..a0969f6 100644
-    --- a/src/mesa/main/querymatrix.c
-    +++ b/src/mesa/main/querymatrix.c
-    @@ -71,7 +71,7 @@ fpclassify(double x)
-     }
-
-     #elif defined(__APPLE__) || defined(__CYGWIN__) || defined(__FreeBSD__) || \
-    -     (defined(__sun) && defined(__C99FEATURES__))
-    +     defined(__DragonFly__) || (defined(__sun) && defined(__C99FEATURES__))
-
-     /* fpclassify is available. */
-
-### xserver
-
-If one uses the patches alluded to in the pkgsrc section, one can avoid the following build error:
-
-      YACC   parser.c
-    bison: m4 subprocess failed: Operation not permitted
-    gmake[3]: *** [parser.c] Error 1
-
-Developer documentation appears to now be enabled by default; therefore, if one is bootstrapping
-a new tree, one might want to use the option to *autogen.sh* to not build developer documentation:
-
-I experienced the following build error:
-
-      GEN    Xserver-spec.txt
-    No way to convert HTML to text found.
-
-Corrected using the *autogen.sh* flag:
-
-    --disable-devel-docs
-
-### xinit
-
-    diff --git a/xinit.c b/xinit.c
-    index 313806e..0d31637 100644
-    --- a/xinit.c
-    +++ b/xinit.c
-    @@ -48,6 +48,12 @@ in this Software without prior written authorization from The Open Group.
-     #endif
-     #endif
-    +/* For PRIO_PROCESS and setpriority() */
-    +#ifdef __DragonFly__
-    +#include <sys/time.h>
-    +#include <sys/resource.h>
-    +#endif /* __DragonFly__ */
-    +
-     #include <stdlib.h>
-
-     #ifndef SHELL
-
-## Building a Separate Version of GNOME
-
-### glib
-
-See the bug report at <https://bugzilla.gnome.org/show_bug.cgi?id=618754> for an error similar to
-
-    /usr/libexec/binutils217/elf/ld: .libs/gthread.o: relocation R_X86_64_PC32
-    against `_g_mem_thread_init_noprivate_nomessage' can not be used when making a
-    shared object; recompile with -fPIC
-    /usr/libexec/binutils217/elf/ld: final link failed: Bad value
-
-This bug is especially a problem because it may be related to some interaction with gcc 4.1.2 only on DragonFly.
-
-The following patch is a complete hack:
-
-    diff --git a/configure.in b/configure.in
-    index 38288c3..51a1c07 100644
-    --- a/configure.in
-    +++ b/configure.in
-    @@ -3033,7 +3033,7 @@ _______EOF
-     #define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
-     #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-     #define G_GNUC_INTERNAL __hidden
-    -#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY)
-    +#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY) && !defined(__DragonFly__)
-     #define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
-     #else
-     #define G_GNUC_INTERNAL
-
-### Graphics Image Formats
-
-*libpng* <http://www.libpng.org/pub/png/libpng.html> version *1.4.2*
-can be installed using *autogen.sh* and then *configure*, in contrast to
-the X.org projects that pass parameters from *autogen.sh* to run *configure* automatically.
-
-Independent JPEG Group's library <http://www.ijg.org/> version *8b* can be installed
-using *configure* alone (there is no autogen.sh).
-
-LibTIFF <http://www.remotesensing.org/libtiff/> has a recommended dependency on jpeg.
-LibTIFF version 3.9.2 can be installed using *autogen.sh* and then *configure*.
-
-Running
-    gmake check
-after building any of the above three projects appears to produce passes tests.
-
-### XML
-
-#### libxml2
-
-*autogen.sh* calls *configure*
-
-11 tests fail after *gmake check*
-
-### Cairo
-
-Seems to require
-
-    export LDFLAGS="-L${PREFIX}/lib -Wl,-rpath -Wl,${PREFIX}/lib -L${PREFIX}/lib/X11 -Wl,-rpath -Wl,${PREFIX}/lib/X11"
-    export CPPFLAGS="-I${PREFIX}/include -I${PREFIX}/X11/include"
-
-When using gcc 4.1.2, *gmake check* gives:
-
-      LINK  check-link
-    ./.libs/libcairo.so: undefined reference to `__umodti3'
-    ./.libs/libcairo.so: undefined reference to `__udivti3'
-
-When using *CCVER=gcc44* to force gcc 4.4, one obtains the worse:
-
-      CHECK cairo.h
-    cc1: error: unrecognized command line option "-Wlogical-op"
-      CHECK cairo-deprecated.h
-    cc1: error: unrecognized command line option "-Wlogical-op"
-    ...
-
-The problem is 128-bit division using gcc 4.1.2 as discussed earlier.  One can examine
-*src/cairo-wideint.c* and see the telltale code enclosed in an if test for *HAVE_UINT128_T*
-with 128-bit division if defined.
-
-### Pango
-
-Install *gnome-common* first, required.
-
-If Cairo is not built with *CCVER=gcc44*, obtain build error similar to
-
-      CCLD   pango-view
-    /opt/xcatch/lib/libcairo.so: undefined reference to `__umodti3'
-    /opt/xcatch/lib/libcairo.so: undefined reference to `__udivti3'
-    gmake[3]: *** [pango-view] Error 1
-
-Following patch corrects an API change not propagated to the test for *gmake check*
-<https://bugzilla.gnome.org/show_bug.cgi?id=619456>
-
-Not including patch itself because there are tabs.  But edit file *pango/pangoft2.def*
-and change
-    pango_fc_font_create_metrics_for_context
-to
-    pango_fc_font_create_base_metrics_for_context
-
-### GObject Introspection
-
-*cElementTree* is changed to *ElementTree* in files
-*giscanner/girparser.py*, *giscanner/glibtransformer.py*, and *giscanner/scannermain.py*.
-
-Using *pkg_alternatives* for a python wrapper fails as a script is generated with
-
-    #! /usr/pkg/bin/python
-
-    import os
-    import sys
-
-A shell script cannot use another shell script as its interpreter.
-What works for now is to manually create */usr/pkg/bin/python* as a symlink to */usr/pkg/bin/python2.6*.
-
-### gtk+
-
-*gobject-introspection* is listed as a dependency but can be avoided.
-Use option *--disable-introspection* to avoid an error
-
-    checking for gobject-introspection... yes
-    ./configure: ${INTROSPECTION_GIRDIR/...}: Bad substitution
-