''' !!! WORK IN PROGRESS !!! '''\\ Last Update 03.2017, Authors: Jens Henrik Göbbert, ... = X.Org - Build Instructions for JURECA [[PageOutline]] '''X.Org''' is free, open-source software. It provides an open source implementation of the X Window System. The development work is being done in conjunction with the freedesktop.org community. * [https://www.x.org X.Org] * [https://www.freedesktop.org FreeDesktop.org] The best place to get X is from your operating system or distribution vendor. X.Org currently provides no binaries. But if one wants to profit from recent updates and new features it makes sense to build X.Org from source. There are two maintained build processes you can use. One is based on a simple Bourne script (build.sh) and one is a customization of the Gnome JHBuild process. '''We use the Gnome JHBuild process here.''' == 1. Preliminaries == * General build instructions can be found here: * https://www.x.org/wiki/Building_the_X_Window_System * https://www.x.org/wiki/JhBuildInstructions {{{ #!sh # set a build directory for X.org export BASE=$(pwd) # load module environment for compiler module load gcc/5.4.0 }}} === JHBuild === JHBuild allows you to automatically download and compile modules for a complete rebuild of GNOME - this includes X.Org. * https://wiki.gnome.org/action/show/Projects/Jhbuild {{{ #!sh ## build jhbuild and install in ~/.local/bin cd ${BASE} git clone https://git.gnome.org/browse/jhbuild cd jhbuild ./autogen.sh --simple-install make make install }}} === Third-Party libs Some of the !ThirdParty packages need to be built first. These third party sources are required, but are not bundled. * [https://github.com/westes/flex flex] * [https://www.gnu.org/software/gperf gperf] - version 3.1 works (required to build Fontconfig) * [https://www.freetype.org FreeType] - version 2.4.0 works. {{{ #!sh GPERF_ROOT= FREETYPE_ROOT= export PATH=${GPERF_ROOT}/bin:$PATH export PKG_CONFIG_PATH=${FREETYPE_ROOT}/lib/pkgconfig:$PKG_CONFIG_PATH }}} == 2. Setup X.Org Build Process == Source packages are downloaded by JHBuild automatically. JHBuild requires to configuration files to start the build process: * [attachment:xorg.jhbuildrc] ... (based on this [https://cgit.freedesktop.org/xorg/util/modular/plain/jhbuildrc original]) * [attachment:xorg.modules] ... (based on this [https://cgit.freedesktop.org/xorg/util/modular/plain/xorg.modules original]) === xorg.jhbuildrc === {{{ #!sh moduleset = os.path.join(os.environ['BASE'], 'xorg.modules') modules = [ 'The X Window System' ] checkoutroot = os.path.join(os.environ['BASE'], 'xorg_sources') prefix = os.path.join(os.environ['BASE'], 'xorg_knl') os.environ['ACLOCAL'] = 'aclocal -I ' + os.path.join(prefix, 'share/aclocal') os.environ['PKG_CONFIG_PATH'] = os.path.join(prefix, 'lib/pkgconfig') \ + ':' + os.path.join(prefix, 'share/pkgconfig') \ + ':' + os.path.join(os.environ['PKG_CONFIG_PATH']) skip = os.environ['XORG_SKIP_SET'] branches['mesa-mesa'] = '13.0' }}} === xorg.modules === In the following we list differences to the general file from [https://cgit.freedesktop.org/xorg/util/modular/plain/xorg.modules HERE]. {{{ #!sh [...] [...] [...] [...] [...] [...] epoxy.pc [...] [...] [...] [...] }}} == 3. Build X.Org {{{ #!sh export PKG_CONFIG_PATH="${PKG_CONFIG_PATH:-}" #export XORG_VERSION_DATE= export XORG_SKIP_SET="libAppleWM mtdev xf86-input-joystick xf86-video-ati xf86-video-geode xf86-video-modesetting xf86-video-sisusb xf86-video-v4l xf86-video-vmware xf86-video-wsfb xf86-input-evdev " jhbuild -f xorg.jhbuildrc }}} == 4. Cross-Compile X.Org === General Instructions * https://www.x.org/wiki/CrossCompilingXorg === xorg.jhbuildrc * https://www.x.org/wiki/CrossCompilingXorgJhbuild