Xorg Libraries

#### Beyond Linux® From Scratch - Version 2019-02-27

### Chapter 24. X Window System Environment

- Prev

  libxcb-1.13.1

- Next

  xcb-util-0.4.0

- Up
- Home

# Xorg Libraries

## Introduction to Xorg Libraries

The Xorg libraries provide library routines that are used within all X Window applications.

This package is known to build and work properly using an LFS-8.4 platform.

### Package Information

- Download (HTTP): https://www.x.org/pub/individual/lib/

- Download (FTP): ftp://ftp.x.org/pub/individual/lib/

- Download size: 13 MB

- Estimated disk space required: 215 MB (34 MB installed) - if source directories not deleted

- Estimated build time: 2.3 SBU

### Xorg Libraries Dependencies

#### Required

Fontconfig-2.13.1 and libxcb-1.13.1

#### Optional

xmlto-0.0.28 with one or more of the following: fop-2.3, Links-2.18, Lynx-2.8.9rel.1, and w3m-0.5.3 (to generate additional PDF or text documentation for the libXfont package).

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Libraries

## Downloading Xorg Libraries

First, create a list of files to be downloaded. This file will also be used to verify the integrity of the downloads when complete:

    cat > lib-7.md5 << "EOF"
    c5ba432dd1514d858053ffe9f4737dd8  xtrans-1.3.5.tar.bz2
    034fdd6cc5393974d88aec6f5bc96162  libX11-1.6.7.tar.bz2
    52df7c4c1f0badd9f82ab124fb32eb97  libXext-1.3.3.tar.bz2
    d79d9fe2aa55eb0f69b1a4351e1368f7  libFS-1.0.7.tar.bz2
    addfb1e897ca8079531669c7c7711726  libICE-1.0.9.tar.bz2
    87c7fad1c1813517979184c8ccd76628  libSM-1.2.3.tar.bz2
    eeea9d5af3e6c143d0ea1721d27a5e49  libXScrnSaver-1.2.3.tar.bz2
    8f5b5576fbabba29a05f3ca2226f74d3  libXt-1.1.5.tar.bz2
    41d92ab627dfa06568076043f3e089e4  libXmu-1.1.2.tar.bz2
    20f4627672edb2bd06a749f11aa97302  libXpm-3.5.12.tar.bz2
    e5e06eb14a608b58746bdd1c0bd7b8e3  libXaw-1.0.13.tar.bz2
    07e01e046a0215574f36a3aacb148be0  libXfixes-5.0.3.tar.bz2
    f7a218dcbf6f0848599c6c36fc65c51a  libXcomposite-0.4.4.tar.bz2
    802179a76bded0b658f4e9ec5e1830a4  libXrender-0.9.10.tar.bz2
    58fe3514e1e7135cf364101e714d1a14  libXcursor-1.1.15.tar.bz2
    0cf292de2a9fa2e9a939aefde68fd34f  libXdamage-1.1.4.tar.bz2
    0920924c3a9ebc1265517bdd2f9fde50  libfontenc-1.1.3.tar.bz2
    b7ca87dfafeb5205b28a1e91ac3efe85  libXfont2-2.0.3.tar.bz2
    331b3a2a3a1a78b5b44cfbd43f86fcfe  libXft-2.3.2.tar.bz2
    1f0f2719c020655a60aee334ddd26d67  libXi-1.7.9.tar.bz2
    0d5f826a197dae74da67af4a9ef35885  libXinerama-1.1.4.tar.bz2
    28e486f1d491b757173dd85ba34ee884  libXrandr-1.5.1.tar.bz2
    5d6d443d1abc8e1f6fc1c57fb27729bb  libXres-1.2.0.tar.bz2
    ef8c2c1d16a00bd95b9fdcef63b8a2ca  libXtst-1.2.3.tar.bz2
    210b6ef30dda2256d54763136faa37b9  libXv-1.0.11.tar.bz2
    4cbe1c1def7a5e1b0ed5fce8e512f4c6  libXvMC-1.0.10.tar.bz2
    d7dd9b9df336b7dd4028b6b56542ff2c  libXxf86dga-1.1.4.tar.bz2
    298b8fff82df17304dfdb5fe4066fe3a  libXxf86vm-1.1.4.tar.bz2
    d2f1f0ec68ac3932dd7f1d9aa0a7a11c  libdmx-1.1.4.tar.bz2
    8f436e151d5106a9cfaa71857a066d33  libpciaccess-0.14.tar.bz2
    4a4cfeaf24dab1b991903455d6d7d404  libxkbfile-1.0.9.tar.bz2
    42dda8016943dc12aff2c03a036e0937  libxshmfence-1.3.tar.bz2
    EOF

To download the needed files using wget, use the following commands:

    mkdir lib &&
    cd lib &&
    grep -v '^#' ../lib-7.md5 | awk '{print $2}' | wget -i- -c \
        -B https://www.x.org/pub/individual/lib/ &&
    md5sum -c ../lib-7.md5

## Installation of Xorg Libraries

### Note

When installing multiple packages in a script, the installation needs to be done as the root user. There are three general options that can be used to do this:

1. Run the entire script as the root user (not recommended).

2. Use the sudo command from the Sudo-1.8.27 package.

3. Use su -c "command arguments" (quotes required) which will ask for the root password for every iteration of the loop.

One way to handle this situation is to create a short bash function that automatically selects the appropriate method. Once the command is set in the environment, it does not need to be set again.

    as_root()
    {
      if   [ $EUID = 0 ];        then $*
      elif [ -x /usr/bin/sudo ]; then sudo $*
      else                            su -c \\"$*\\"
      fi
    }

    export -f as_root

Some libraries come with a test suite. If you wish to execute them, either comment out the rm -rf ... below, so that, after all libraries are installed, you can come back to the corresponding directory and run make check, or do individual builds, running the tests for each of those distributed with working test suites. Alternatively, you can uncomment the line #make check ..., and at the end, check the test results with:

    grep -A9 summary *make_check.log

BLFS developers have confirmed that libX11, libXt and libxshmfence are distributed with working test suites.

First, start a subshell that will exit on error:

    bash -e

Install all of the packages by running the following commands:

    for package in $(grep -v '^#' ../lib-7.md5 | awk '{print $2}')
    do
      packagedir=${package%.tar.bz2}
      tar -xf $package
      pushd $packagedir
      case $packagedir in
        libICE* )
          ./configure $XORG_CONFIG ICE_LIBS=-lpthread
        ;;

        libXfont2-[0-9]* )
          ./configure $XORG_CONFIG --disable-devel-docs
        ;;

        libXt-[0-9]* )
          ./configure $XORG_CONFIG \
                      --with-appdefaultdir=/etc/X11/app-defaults
        ;;

        * )
          ./configure $XORG_CONFIG
        ;;
      esac
      make
      #make check 2>&1 | tee ../$packagedir-make_check.log
      as_root make install
      popd
      rm -rf $packagedir
      as_root /sbin/ldconfig
    done

Finally, exit the shell that was started earlier:

    exit

## Command Explanations

./configure $XORG_CONFIG ICE_LIBS=-lpthread: This fixes a change in glibc which breaks pulseaudio at runtime.

`--disable-devel-docs`: Disable generation of text documentation in the libXfont2 package if xmlto-0.0.28 is installed without a text browser. Omit this parameter (or the entire case statement) if a text browser is installed.

`--with-fop`: Use fop-2.3 to generate PDF documentation (only for the libXfont package).

## Configuration of Xorg Libraries

If you've chosen to install Xorg into `/usr`, then no further configuration is necessary and you can skip the rest of this section. If you've opted for an alternate prefix, you should create two symlinks to satisfy the expected environment of several packages. Execute the following commands as the root user:

    ln -sv $XORG_PREFIX/lib/X11 /usr/lib/X11 &&
    ln -sv $XORG_PREFIX/include/X11 /usr/include/X11

## Contents

Installed Programs: cxpm and sxpm
Installed Libraries: libdmx.so, libfontenc.so, libFS.so, libICE.so, libpciaccess.so, libSM.so, libX11.so, libXaw6.so, libXaw7.so, libXaw.so, libXcomposite.so, libXcursor.so, libXdamage.so, libXext.so, libXfixes.so, libXfont2.so, libXft.so, libXinerama.so, libXi.so, libxkbfile.so, libXmu.so, libXmuu.so, libXpm.so, libXrandr.so, libXrender.so, libXRes.so, libxshmfence.so, libXss.so, libXt.so, libXtst.so, libXvMC.so, libXvMCW.so, libXv.so, libXxf86dga.so and libXxf86vm.so
Installed Directories: `$XORG_PREFIX`/include/X11/fonts, `$XORG_PREFIX`/include/X11/Xtrans, `$XORG_PREFIX`/share/doc/libFS, `$XORG_PREFIX`/share/doc/libICE, `$XORG_PREFIX`/share/doc/libSM, `$XORG_PREFIX`/share/doc/libX11, `$XORG_PREFIX`/share/doc/libXaw, `$XORG_PREFIX`/share/doc/libXext, `$XORG_PREFIX`/share/doc/libXi, `$XORG_PREFIX`/share/doc/libXmu, `$XORG_PREFIX`/share/doc/libXrender, `$XORG_PREFIX`/share/doc/libXt, `$XORG_PREFIX`/share/doc/libXtst, `$XORG_PREFIX`/share/doc/libXvMC, `$XORG_PREFIX`/share/doc/xtrans and `$XORG_PREFIX`/share/X11/locale

### Short Descriptions

cxpm | checks the format of an XPM file.
sxpm | shows an XPM file and/or converts XPM 1 or 2 files to XPM 3.
`libdmx.so` | is the X Window System DMX (Distributed Multihead X) extension library.
`libfontenc.so` | is the X11 font encoding library.
`libFS.so` | is the library interface to the X Font Server.
`libICE.so` | is the X Inter Client Exchange Library.
`libpciaccess.so` | is the generic PCI Access library for X.
`libSM.so` | is the X Session Management Library.
`libX11.so` | is the Xlib Library.
`libXaw6.so` | is the X Athena Widgets Library, version 6.
`libXaw7.so` | is the X Athena Widgets Library, version 7.
`libXaw.so` | are symbolic links to the current X Athena Widgets Library, version 7.
`libXcomposite.so` | is the X Composite Library.
`libXcursor.so` | is the X Cursor management library.
`libXdamage.so` | is the X Damage Library.
`libXext.so` | is the Misc X Extension Library.
`libXfixes.so` | provides augmented versions of core protocol requests.
`libXfont2.so` | is the X font library.
`libXft.so` | is the X FreeType interface library.
`libXinerama.so` | is the Xinerama Library.
`libXi.so` | is the X Input Extension Library.
`libxkbfile.so` | is the xkbfile Library.
`libXmu.so` | is the X interface library for miscellaneous utilities not part of the Xlib standard.
`libXmuu.so` | is the Mini Xmu Library.
`libXpm.so` | is the X Pixmap Library.
`libXrandr.so` | is the X Resize, Rotate and Reflection extension library.
`libXrender.so` | is the X Render Library.
`libXRes.so` | is the X-Resource extension client library.
`libxshmfence.so` | exposes an event API on top of Linux futexes.
`libXss.so` | is the X11 Screen Saver extension client library.
`libXt.so` | is the X Toolkit Library.
`libXtst.so` | is the Xtst Library.
`libXvMC.so` | is the X-Video Motion Compensation Library.
`libXvMCW.so` | is the XvMC Wrapper including the Nonstandard VLD extension.
`libXv.so` | is the X Window System video extension library.
`libXxf86dga.so` | is the client library for the XFree86-DGA extension.
`libXxf86vm.so` | is the client library for the XFree86-VidMode X extension.

Last updated on 2019-02-15 15:01:29 -0600

- Prev

  libxcb-1.13.1

- Next

  xcb-util-0.4.0

- Up
- Home