<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY x7proto-download-http "http://xorg.freedesktop.org/releases/individual/proto/">
  <!ENTITY x7proto-download-ftp  "ftp://ftp.x.org/pub/individual/proto/">
  <!ENTITY x7proto-size          "3.3 MB">
  <!ENTITY x7proto-buildsize     "26 MB">
  <!ENTITY x7proto-time          "0.8 SBU">

  <!ENTITY bigreqsproto-version            "1.1.2">
  <!ENTITY bigreqsproto-md5sum             "1a05fb01fa1d5198894c931cf925c025">

  <!ENTITY compositeproto-version          "0.4.2">
  <!ENTITY compositeproto-md5sum           "98482f65ba1e74a08bf5b056a4031ef0">

  <!ENTITY damageproto-version             "1.2.1">
  <!ENTITY damageproto-md5sum              "998e5904764b82642cc63d97b4ba9e95">

  <!ENTITY dmxproto-version                "2.3.1">
  <!ENTITY dmxproto-md5sum                 "4ee175bbd44d05c34d43bb129be5098a">

  <!ENTITY dri2proto-version               "2.8">
  <!ENTITY dri2proto-md5sum                "b2721d5d24c04d9980a0c6540cb5396a">

  <!ENTITY dri3proto-version               "1.0">
  <!ENTITY dri3proto-md5sum                "a3d2cbe60a9ca1bf3aea6c93c817fee3">

  <!ENTITY fixesproto-version              "5.0">
  <!ENTITY fixesproto-md5sum               "e7431ab84d37b2678af71e29355e101d">

  <!ENTITY fontsproto-version              "2.1.3">
  <!ENTITY fontsproto-md5sum               "36934d00b00555eaacde9f091f392f97">

  <!ENTITY glproto-version                 "1.4.17">
  <!ENTITY glproto-md5sum                  "5565f1b0facf4a59c2778229c1f70d10">

  <!ENTITY inputproto-version              "2.3.1">
  <!ENTITY inputproto-md5sum               "6caebead4b779ba031727f66a7ffa358">

  <!ENTITY kbproto-version                 "1.0.6">
  <!ENTITY kbproto-md5sum                  "677ea8523eec6caca86121ad2dca0b71">

  <!ENTITY presentproto-version            "1.0">
  <!ENTITY presentproto-md5sum             "2d569c75884455c7148d133d341e8fd6">

  <!ENTITY randrproto-version              "1.4.0">
  <!ENTITY randrproto-md5sum               "ce4d0b05675968e4c83e003cc809660d">

  <!ENTITY recordproto-version             "1.14.2">
  <!ENTITY recordproto-md5sum              "1b4e5dede5ea51906f1530ca1e21d216">

  <!ENTITY renderproto-version             "0.11.1">
  <!ENTITY renderproto-md5sum              "a914ccc1de66ddeb4b611c6b0686e274">

  <!ENTITY resourceproto-version           "1.2.0">
  <!ENTITY resourceproto-md5sum            "cfdb57dae221b71b2703f8e2980eaaf4">

  <!ENTITY scrnsaverproto-version          "1.2.2">
  <!ENTITY scrnsaverproto-md5sum           "edd8a73775e8ece1d69515dd17767bfb">

  <!ENTITY videoproto-version              "2.3.2">
  <!ENTITY videoproto-md5sum               "e658641595327d3990eab70fdb55ca8b">

  <!ENTITY xcmiscproto-version             "1.2.2">
  <!ENTITY xcmiscproto-md5sum              "5f4847c78e41b801982c8a5e06365b24">

  <!ENTITY xextproto-version               "7.3.0">
  <!ENTITY xextproto-md5sum                "70c90f313b4b0851758ef77b95019584">

  <!ENTITY xf86bigfontproto-version        "1.2.0">
  <!ENTITY xf86bigfontproto-md5sum         "120e226ede5a4687b25dd357cc9b8efe">

  <!ENTITY xf86dgaproto-version            "2.1">
  <!ENTITY xf86dgaproto-md5sum             "a036dc2fcbf052ec10621fd48b68dbb1">

  <!ENTITY xf86driproto-version            "2.1.1">
  <!ENTITY xf86driproto-md5sum             "1d716d0dac3b664e5ee20c69d34bc10e">

  <!ENTITY xf86vidmodeproto-version        "2.3.1">
  <!ENTITY xf86vidmodeproto-md5sum         "e793ecefeaecfeabd1aed6a01095174e">

  <!ENTITY xineramaproto-version           "1.2.1">
  <!ENTITY xineramaproto-md5sum            "9959fe0bfb22a0e7260433b8d199590a">

  <!ENTITY xproto-version                  "7.0.27">
  <!ENTITY xproto-md5sum                   "6c3345111a8044f730984988aacfa567">

]>

<sect1 id="xorg7-proto" xreflabel="Xorg Protocol Headers">
  <?dbhtml filename="x7proto.html"?>

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2015-02-21 23:09:10 -0500 (Sat, 21 Feb 2015) $</date>
  </sect1info>

  <title>Xorg Protocol Headers</title>

  <indexterm zone="xorg7-proto">
    <primary sortas="a-xorg7-proto">Xorg Protocol Headers</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to Xorg Protocol Headers</title>

    <para>The <application>Xorg</application> protocol headers provide the
    header files required to build the system, and to allow other
    applications to build against the installed X Window system.</para>

    &lfs77_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>Download (HTTP): <ulink url="&x7proto-download-http;"/></para>
      </listitem>
      <listitem>
        <para>Download (FTP): <ulink url="&x7proto-download-ftp;"/></para>
      </listitem>
      <listitem>
        <para>Download size: &x7proto-size;</para>
      </listitem>
      <listitem>
        <para>Estimated disk space required: &x7proto-buildsize;</para>
      </listitem>
      <listitem>
        <para>Estimated build time: &x7proto-time;</para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">Xorg Protocol Headers Dependencies</bridgehead>

    <bridgehead renderas="sect4">Required</bridgehead>
    <para role="required"> <xref linkend="util-macros"/></para>

    <bridgehead renderas="sect4">Recommended</bridgehead>
    <para role="recommended"> <xref linkend="sudo"/> and
    <xref linkend="wget"/></para>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="fop"/>,
      <xref linkend="libxslt"/>,
      <xref linkend="xmlto"/> and
      <ulink url="http://www.methods.co.nz/asciidoc/">AsciiDoc</ulink> (to build
    additional documentation)
    </para>

    <note><para>There is a reciprocal dependency with <xref linkend="fop"/>. If
    you wish to build the documentation, you'll need to re-install the
    Protocol Headers after the installation is complete and
    <xref linkend="fop"/> has been installed.</para></note>

    <para condition="html" role="usernotes">User Notes:
    <ulink url='&blfs-wiki;/Xorg7ProtocolHeaders'/></para>

  </sect2>

  <sect2>
    <title>Downloading Xorg Protocol Headers</title>

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

<screen><userinput>cat &gt; proto-&xorg-version;.md5 &lt;&lt; "EOF"
<literal>&bigreqsproto-md5sum;  bigreqsproto-&bigreqsproto-version;.tar.bz2
&compositeproto-md5sum;  compositeproto-&compositeproto-version;.tar.bz2
&damageproto-md5sum;  damageproto-&damageproto-version;.tar.bz2
&dmxproto-md5sum;  dmxproto-&dmxproto-version;.tar.bz2
&dri2proto-md5sum;  dri2proto-&dri2proto-version;.tar.bz2
&dri3proto-md5sum;  dri3proto-&dri3proto-version;.tar.bz2
&fixesproto-md5sum;  fixesproto-&fixesproto-version;.tar.bz2
&fontsproto-md5sum;  fontsproto-&fontsproto-version;.tar.bz2
&glproto-md5sum;  glproto-&glproto-version;.tar.bz2
&inputproto-md5sum;  inputproto-&inputproto-version;.tar.bz2
&kbproto-md5sum;  kbproto-&kbproto-version;.tar.bz2
&presentproto-md5sum;  presentproto-&presentproto-version;.tar.bz2
&randrproto-md5sum;  randrproto-&randrproto-version;.tar.bz2
&recordproto-md5sum;  recordproto-&recordproto-version;.tar.bz2
&renderproto-md5sum;  renderproto-&renderproto-version;.tar.bz2
&resourceproto-md5sum;  resourceproto-&resourceproto-version;.tar.bz2
&scrnsaverproto-md5sum;  scrnsaverproto-&scrnsaverproto-version;.tar.bz2
&videoproto-md5sum;  videoproto-&videoproto-version;.tar.bz2
&xcmiscproto-md5sum;  xcmiscproto-&xcmiscproto-version;.tar.bz2
&xextproto-md5sum;  xextproto-&xextproto-version;.tar.bz2
&xf86bigfontproto-md5sum;  xf86bigfontproto-&xf86bigfontproto-version;.tar.bz2
&xf86dgaproto-md5sum;  xf86dgaproto-&xf86dgaproto-version;.tar.bz2
&xf86driproto-md5sum;  xf86driproto-&xf86driproto-version;.tar.bz2
&xf86vidmodeproto-md5sum;  xf86vidmodeproto-&xf86vidmodeproto-version;.tar.bz2
&xineramaproto-md5sum;  xineramaproto-&xineramaproto-version;.tar.bz2
&xproto-md5sum;  xproto-&xproto-version;.tar.bz2</literal>
EOF</userinput></screen>

    <para>To download the needed files using <application>wget</application>,
    use the following commands:</para>

<screen><userinput>mkdir proto &amp;&amp;
cd proto &amp;&amp;
grep -v '^#' ../proto-&xorg-version;.md5 | awk '{print $2}' | wget -i- -c \
    -B http://xorg.freedesktop.org/releases/individual/proto/ &amp;&amp;
md5sum -c ../proto-&xorg-version;.md5</userinput></screen>

  </sect2>

  <sect2 role="installation">
    <title>Installation of Xorg Protocol Headers</title>

    &as_root;

    <para>First, start a subshell that will exit on error:</para>

<screen><userinput>bash -e</userinput></screen>

    <para>Install all of the packages by running the following
    commands:</para>

<screen><userinput>for package in $(grep -v '^#' ../proto-&xorg-version;.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  ./configure $XORG_CONFIG
  as_root make install
  popd
  rm -rf $packagedir
done</userinput></screen>

    <para>Finally, exit the shell that was started earlier:</para>

<screen><userinput>exit</userinput></screen>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para><command>bash -e</command>: This command starts a subshell that will
    exit if any command returns a value other than 0, causing the for loop to
    exit immediately if an error occurs. This also eliminates the need for the
    <command>&amp;&amp;</command> construct used elsewhere in the book.</para>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directories</segtitle>

      <seglistitem>
        <seg>None</seg>
        <seg>None</seg>
        <seg>
          <envar>$XORG_PREFIX</envar>/include/GL,
          <envar>$XORG_PREFIX</envar>/include/X11,
          <envar>$XORG_PREFIX</envar>/share/doc/bigreqsproto,
          <envar>$XORG_PREFIX</envar>/share/doc/compositeproto,
          <envar>$XORG_PREFIX</envar>/share/doc/damageproto,
          <envar>$XORG_PREFIX</envar>/share/doc/dri2proto,
          <envar>$XORG_PREFIX</envar>/share/doc/dri3proto,
          <envar>$XORG_PREFIX</envar>/share/doc/fixesproto,
          <envar>$XORG_PREFIX</envar>/share/doc/fontsproto,
          <envar>$XORG_PREFIX</envar>/share/doc/kbproto,
          <envar>$XORG_PREFIX</envar>/share/doc/presentproto,
          <envar>$XORG_PREFIX</envar>/share/doc/randrproto,
          <envar>$XORG_PREFIX</envar>/share/doc/recordproto,
          <envar>$XORG_PREFIX</envar>/share/doc/renderproto,
          <envar>$XORG_PREFIX</envar>/share/doc/resourceproto,
          <envar>$XORG_PREFIX</envar>/share/doc/scrnsaverproto,
          <envar>$XORG_PREFIX</envar>/share/doc/videoproto,
          <envar>$XORG_PREFIX</envar>/share/doc/xcmiscproto,
          <envar>$XORG_PREFIX</envar>/share/doc/xextproto and
          <envar>$XORG_PREFIX</envar>/share/doc/xproto
        </seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

</sect1>
