Xorg Biblioteker

Introduksjon til Xorg Biblioteker

Xorg biblioteker tilbyr bibliotekrutiner som brukes i alle X Vindu applikasjoner.

[Notat]

Notat

Dette kan ta litt tid å bygge. Gjør gjerne noe annet mens dette bygges.

Xorg Biblioteker Avhengigheter

Påkrevd

Fontconfig-2.17.1 og libxcb-1.17.0

Valgfri

W3m (for å generere ytterligere PDF eller tekstdokumentasjon for libXfont pakken)

Laste ned Xorg Biblioteker

Først, lag en liste over filer som skal lastes ned:

cat > lib-7-list << "EOF"
xtrans-1.6.0.tar.xz
libX11-1.8.12.tar.xz
libXext-1.3.6.tar.xz
#libFS-1.0.10.tar.xz
libICE-1.1.2.tar.xz
libSM-1.2.6.tar.xz
libXScrnSaver-1.2.4.tar.xz
libXt-1.3.1.tar.xz
libXmu-1.2.1.tar.xz
libXpm-3.5.17.tar.xz
libXaw-1.0.16.tar.xz
libXfixes-6.0.1.tar.xz
libXcomposite-0.4.6.tar.xz
libXrender-0.9.12.tar.xz
libXcursor-1.2.3.tar.xz
libXdamage-1.1.6.tar.xz
libfontenc-1.1.8.tar.xz
libXfont2-2.0.7.tar.xz
libXft-2.3.9.tar.xz
libXi-1.8.2.tar.xz
libXinerama-1.1.5.tar.xz
libXrandr-1.5.4.tar.xz
libXres-1.2.2.tar.xz
libXtst-1.2.5.tar.xz
libXv-1.0.13.tar.xz
libXvMC-1.0.14.tar.xz
libXxf86dga-1.1.6.tar.xz
libXxf86vm-1.1.6.tar.xz
libpciaccess-0.18.1.tar.xz
libxkbfile-1.1.3.tar.xz
libxshmfence-1.3.3.tar.xz
libXpresent-1.0.1.tar.xz
EOF

libFS er kommentert ut og vil ikke bli bygget med mindre du fjerner kommenteringen. Det er ikke nødvendig for noen pakker i LFS bøkene og bare nødvendig for noen Xorg apper.

For å laste ned de nødvendige filene ved hjelp av Wget-1.25.0, bruk følgende kommandoer:

mkdir lib &&
cd lib &&
grep -v '^#' ../lib-7-list | wget -i- -c \
    -B https://xorg.freedesktop.org/archive/individual/lib/

Installasjon av Xorg Biblioteker

[Notat]

Notat

Når du installerer flere pakker i et skript, må installasjonen gjøres som root bruker. Det finnes tre generelle alternativer som kan brukes til å gjøre dette:

  1. Kjør hele skriptet som root bruker (ikke anbefalt).

  2. Bruk sudo kommandoen fra sudo pakken.

  3. Use su -c "command arguments" ((anførselstegn kreves) som vil be om root passordet for hver iterasjon av løkken.

En måte å håndtere denne situasjonen på er å lage en kort bash funksjon som automatisk velger riktig metode. Når kommandoen er satt i miljøet, trenger den ikke å settes på nytt.

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

export -f as_root

Først starter du et underskall som avsluttes ved feil:

bash -e

Installer alle pakkene ved å kjøre følgende kommandoer:

for package in $(grep -v '^#' ../lib-7-list)
do
  packagedir=${package%.tar.?z*}
  echo "Building $packagedir"

  tar -xf $package
  pushd $packagedir
  docdir="--docdir=/usr/share/doc/$packagedir"
  
  case $packagedir in
    libXfont2-[0-9]* )
      ./configure $XORG_CONFIG $docdir --disable-devel-docs
    ;;

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

    libXpm-[0-9]* )
      ./configure $XORG_CONFIG $docdir --disable-open-zfile
    ;;
  
    libpciaccess* )
      mkdir build
      cd    build
        meson setup --prefix=/usr --buildtype=release ..
        ninja
        as_root ninja install
      popd     # $packagedir
      rm -rf $packagedir
      continue # for loop
    ;;

    * )
      ./configure $XORG_CONFIG $docdir
    ;;
  esac

  make
  as_root make install
  popd
  rm -rf $packagedir
  as_root /sbin/ldconfig
done

For multilib, installer alle lib32-variantene av pakkene ved å kjøre følgende kommandoer:

for package in $(grep -v '^#' ../lib-7-list)
do
  case $package in xtrans* )
    continue
  ;;
  esac
  packagedir=${package%.tar.?z*}
  echo "Building lib32-$packagedir"

  tar -xf $package
  pushd $packagedir
  libdir="--libdir=/usr/lib32"
  docdir="--docdir=/usr/share/doc/$packagedir"
  host="--host=i686-pc-linux-gnu"
  
  case $packagedir in
    libXfont2-[0-9]* )
      CC="gcc -m32" CXX="g++ -m32" PKG_CONFIG_PATH=/usr/lib32/pkgconfig  \
      ./configure $XORG_CONFIG $libdir $host $docdir --disable-devel-docs
    ;;

    libXt-[0-9]* )
      CC="gcc -m32" CXX="g++ -m32" PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
      ./configure $XORG_CONFIG $libdir $host $docdir                    \
                  --with-appdefaultdir=/etc/X11/app-defaults
    ;;

    libXpm-[0-9]* )
      CC="gcc -m32" CXX="g++ -m32" PKG_CONFIG_PATH=/usr/lib32/pkgconfig  \
      ./configure $XORG_CONFIG $libdir $host $docdir --disable-open-zfile
    ;;
  
    libpciaccess* )
      mkdir build
      cd    build
        CC="gcc -m32" CXX="g++ -m32" PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
        meson setup --prefix=/usr $libdir --buildtype=release ..
        ninja
        DESTDIR=$PWD/DESTDIR ninja install
        as_root cp -vr DESTDIR/usr/lib32/* /usr/lib32
        rm -rf DESTDIR
        as_root /sbin/ldconfig
      popd     # $packagedir
      rm -rf $packagedir
      continue # for loop
    ;;

    * )
      CC="gcc -m32" CXX="g++ -m32"                   \
      PKG_CONFIG_PATH=/usr/lib32/pkgconfig   \
      ./configure $XORG_CONFIG $libdir $host $docdir
    ;;
  esac

  make
  make DESTDIR=$PWD/DESTDIR install
  as_root cp -vr DESTDIR/usr/lib32/* /usr/lib32
  rm -rf DESTDIR
  popd
  rm -rf $packagedir
  as_root /sbin/ldconfig
done

Til slutt, avslutt skallet som ble startet tidligere:

exit

Parameterforklaringer

--disable-open-zfile: Allow libXpm å bygge uten den valgrie compress kommandoen tilstede.

--disable-devel-docs: Deaktiver generering av tekstdokumentasjon i libXfont2-pakken hvis xmlto er installert uten en tekstleser. Utelat denne parameteren (eller hele case setning) hvis en tekst nettleser er installert.

Innhold

Installerte Programmer: cxpm og sxpm
Installerte Biblioteker: libfontenc, libICE, libpciaccess, libSM, libX11, libX11-xcb, libXaw6, libXaw7, libXaw, libXcomposite, libXcursor, libXdamage, libXext, libXfixes, libXfont2, libXft, libXinerama, libXi, libxkbfile, libXmu, libXmuu, libXpm, libXpresent, libXrandr, libXrender, libXRes, libxshmfence, libXss, libXt, libXtst, libXvMC, libXvMCW, libXv, libXxf86dga og libXxf86vm
Installerte Mapper: /usr/include/X11/fonts, /usr/include/X11/ICE, /usr/include/X11/SM, /usr/include/X11/Xmu, /usr/include/X11/Xtrans, /usr/share/doc/libICE-1.1.2, /usr/share/doc/libSM-1.2.6, /usr/share/doc/libX11-1.8.12, /usr/share/doc/libXaw, /usr/share/doc/libXext, /usr/share/doc/libXi, /usr/share/doc/libXmu-1.2.1, /usr/share/doc/libXrender, /usr/share/doc/libXt, /usr/share/doc/libXtst, /usr/share/doc/libXvMC, /usr/share/doc/xtrans og /usr/share/X11/locale

Korte Beskrivelser

cxpm

sjekker formatet til en XPM fil

sxpm

viser en XPM fil og/eller konverterer XPM 1 eller 2 filer til XPM 3

libfontenc

er X11 fontkodingsbiblioteket

libICE

er X Inter Client Exchange biblioteket

libpciaccess

er det generiske PCI Access biblioteket for X

libSM

er X sesjonsadministrasjonsbiblioteket

libX11

er Xlib biblioteket

libXaw6

er X Athena Widgets biblioteket, versjon 6

libXaw7

er X Athena Widgets biblioteket, versjon 7

libXaw

er symbolske lenker til den nåværende X Athena Widgets biblioteket, version 7

libXcomposite

er X Composite biblioteket

libXcursor

er X markøradministrasjonsbiblioteket

libXdamage

er X skadebiblioteket

libXext

er Misc X utvidelsesbiblioteket

libXfixes

tilbyr utvidede versjoner av kjerneprotokollforespørsler

libXfont2

er X fontbiblioteket

libXft

er X FreeType grensesnittbiblioteket

libXinerama

er Xinerama biblioteket

libXi

er X inndata utvidelsesbiblioteket

libxkbfile

er xkbfile biblioteket

libXmu

er X grensesnittbiblioteket for diverse verktøy ikke en del av Xlib standarden

libXmuu

er Mini Xmu biblioteket

libXpm

er X Pixmap biblioteket

libXpresent

er bibliotekgrensesnittet til X Present Extension

libXrandr

er utvidelsesbiblioteket X Resize, Rotate og Reflection

libXrender

er X Render biblioteket

libXRes

er klientbiblioteket for X-Resource utvidelsen

libxshmfence

eksponerer et hendelses API oppå Linux futexes

libXss

er klientbiblioteket for X11 Screen Saver utvidelsen

libXt

er X Toolkit biblioteket

libXtst

er Xtst biblioteket

libXvMC

er X-Video Motion Compensation biblioteket

libXvMCW

er XvMC Wrapper inkludert den ikke standardiserte VLD utvidelsen

libXv

er X Window System video utvidelse biblioteket

libXxf86dga

er klientbiblioteket for XFree86-DGA utvidelsen

libXxf86vm

er klientbiblioteket for XFree86-VidMode X utvidelsen