Changeset 521cea0


Ignore:
Timestamp:
04/22/2012 04:11:50 PM (12 years ago)
Author:
Andrew Benton <andy@…>
Branches:
10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 7.10, 7.4, 7.5, 7.6, 7.6-blfs, 7.6-systemd, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, gnome, kde5-13430, kde5-14269, kde5-14686, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, krejzi/svn, lazarus, lxqt, nosym, perl-modules, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, systemd-11177, systemd-13485, trunk, upgradedb, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
Children:
9e069685
Parents:
41067694
Message:

patch cairo to expose some private functions that Firefox needs

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@9975 af4574ff-66df-0310-9fd7-8a98e5e911e0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • x/lib/cairo.xml

    r41067694 r521cea0  
    55  %general-entities;
    66
    7   <!ENTITY cairo-download-http "http://cairographics.org/releases/cairo-&cairo-version;.tar.gz">
     7  <!ENTITY cairo-download-http
     8    "http://cairographics.org/releases/cairo-&cairo-version;.tar.gz">
    89  <!ENTITY cairo-download-ftp  " ">
    910  <!ENTITY cairo-md5sum        "e6c85575ba7094f88b637bdfd835a751">
     
    3031    <title>Introduction to cairo</title>
    3132
    32     <para><application>Cairo</application> is a 2D graphics library with
    33     support for multiple output devices. Currently supported output targets
    34     include the <application>X</application> Window System, win32, image
    35     buffers, PostScript, PDF and SVG. Experimental backends include OpenGL
    36     Quartz and XCB file output. cairo is designed to produce consistent output
    37     on all output media while taking advantage of display hardware acceleration
    38     when available (e.g., through the X Render Extension). The
    39     <application>Cairo</application> API provides operations similar to the
    40     drawing operators of PostScript and PDF. Operations in
    41     <application>Cairo</application> include stroking and filling cubic
    42     B&eacute;zier splines, transforming and compositing translucent images, and
    43     antialiased text rendering. All drawing operations can be transformed by
    44     any <ulink url="http://en.wikipedia.org/wiki/Affine_transformation">affine
    45     transformation</ulink> (scale, rotation, shear, etc.).</para>
     33    <para>
     34      <application>Cairo</application> is a 2D graphics library with support for
     35      multiple output devices. Currently supported output targets include the
     36      <application>X</application> Window System, win32, image buffers,
     37      PostScript, PDF and SVG. Experimental backends include OpenGL, Quartz and
     38      XCB file output. cairo is designed to produce consistent output on all
     39      output media while taking advantage of display hardware acceleration when
     40      available (e.g., through the X Render Extension). The
     41      <application>Cairo</application> API provides operations similar to the
     42      drawing operators of PostScript and PDF. Operations in
     43      <application>Cairo</application> include stroking and filling cubic
     44      B&eacute;zier splines, transforming and compositing translucent images,
     45      and antialiased text rendering. All drawing operations can be transformed
     46      by any
     47      <ulink url="http://en.wikipedia.org/wiki/Affine_transformation">affine
     48      transformation</ulink> (scale, rotation, shear, etc.).
     49    </para>
    4650
    4751    &lfs71_checked;
     
    5054    <itemizedlist spacing="compact">
    5155      <listitem>
    52         <para>Download (HTTP): <ulink url="&cairo-download-http;"/></para>
    53       </listitem>
    54       <listitem>
    55         <para>Download (FTP): <ulink url="&cairo-download-ftp;"/></para>
    56       </listitem>
    57       <listitem>
    58         <para>Download MD5 sum: &cairo-md5sum;</para>
    59       </listitem>
    60       <listitem>
    61         <para>Download size: &cairo-size;</para>
    62       </listitem>
    63       <listitem>
    64         <para>Estimated disk space required: &cairo-buildsize;</para>
    65       </listitem>
    66       <listitem>
    67         <para>Estimated build time: &cairo-time;</para>
     56        <para>
     57          Download (HTTP): <ulink url="&cairo-download-http;"/>
     58        </para>
     59      </listitem>
     60      <listitem>
     61        <para>
     62          Download (FTP): <ulink url="&cairo-download-ftp;"/>
     63        </para>
     64      </listitem>
     65      <listitem>
     66        <para>
     67          Download MD5 sum: &cairo-md5sum;
     68        </para>
     69      </listitem>
     70      <listitem>
     71        <para>
     72          Download size: &cairo-size;
     73        </para>
     74      </listitem>
     75      <listitem>
     76        <para>
     77          Estimated disk space required: &cairo-buildsize;
     78        </para>
     79      </listitem>
     80      <listitem>
     81        <para>
     82          Estimated build time: &cairo-time;
     83        </para>
     84      </listitem>
     85    </itemizedlist>
     86
     87    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
     88    <itemizedlist spacing="compact">
     89      <listitem>
     90        <para>
     91          Required patch:
     92          <ulink url="&patch-root;/cairo-&cairo-version;-expose-snapshot-1.patch"/>
     93        </para>
    6894      </listitem>
    6995    </itemizedlist>
     
    82108    </para>
    83109
    84     <!-- I've never seen any package that needs Cairo GL backend -->
    85110    <bridgehead renderas="sect4">Optional</bridgehead>
    86111    <para role="optional">
    87112      <xref linkend="cogl"/>,
    88113      <ulink url="http://www.directfb.org/">DirectFB</ulink>,
     114      <xref linkend="gtk-doc"/>,
    89115      <xref linkend="libdrm"/>,
    90       <xref linkend="gtk-doc"/>,
    91116      <xref linkend="mesalib"/>,
    92117      <xref linkend="qt4"/>,
     
    98123    coverage)</bridgehead>
    99124    <para role="optional">
    100       <xref linkend="gs"/> (to test the postscript backend),
     125      <xref linkend="gs"/> (for testing the postscript backend),
    101126      <xref linkend="gtk2"/> (for testing the PDF backend),
    102       <xref linkend="poppler"/> (for testing the PDF backend),
    103       <ulink url="http://libspectre.freedesktop.org">libspectre</ulink> (to test
    104       the PDF backend) and
    105       <xref linkend="librsvg"/> (for testing the SVG backend)
    106     </para>
    107 
    108     <note><para>There is a reciprocal dependency with cairo and libdrm. Best
    109     practice is to install cairo without the OpenGL backend, and return to
    110     re-install cairo after the full Xorg installation has been completed. Also
    111     note that the GTK, Poppler and librsvg packages are also reciprocal. As the
    112     test suite is currently unreliable, it is best to simply skip it at this
    113     time.</para></note>
    114 
    115     <para condition="html" role="usernotes">User Notes:
    116     <ulink url="&blfs-wiki;/cairo"/></para>
    117 
     127      <xref linkend="librsvg"/> (for testing the SVG backend),
     128      <ulink url="http://libspectre.freedesktop.org">libspectre</ulink> (for
     129      testing the PDF backend) and
     130      <xref linkend="poppler"/> (for testing the PDF backend).
     131    </para>
     132
     133    <note>
     134      <para>
     135        There is a reciprocal dependency with cairo and libdrm. Best practice is
     136        to install cairo without the OpenGL backend, and return to re-install
     137        cairo after the full Xorg installation has been completed. Also note
     138        that the GTK, Poppler and librsvg packages are also reciprocal. As the
     139        test suite is currently unreliable, it is best to simply skip it at this
     140        time.
     141      </para>
     142    </note>
     143
     144    <para condition="html" role="usernotes">
     145      User Notes: <ulink url="&blfs-wiki;/cairo"/>
     146    </para>
    118147  </sect2>
    119148
     
    121150    <title>Installation of cairo</title>
    122151
    123     <para>Install <application>Cairo</application> by running the following
    124     commands:</para>
    125 
    126 <screen><userinput>./configure --prefix=/usr \
    127             --enable-tee --enable-xcb &amp;&amp;
     152    <para>
     153      Install <application>Cairo</application> by running the following
     154      commands:
     155    </para>
     156
     157<screen><userinput>patch -p1 &lt; ../cairo-&cairo-version;-expose-snapshot-1.patch &amp;&amp;
     158./configure --prefix=/usr \
     159  --disable-static --enable-tee --enable-xcb &amp;&amp;
    128160make</userinput></screen>
    129161
    130     <para>To test the results, issue: <command>make -k check</command>.</para>
    131 
    132     <para>Note that the tests take a long time to run and many of them fail for
    133     unknown reasons.</para>
    134 
    135     <para>Now, as the <systemitem class="username">root</systemitem>
    136     user:</para>
     162    <para>
     163      To test the results, issue: <command>make -k check</command>.
     164    </para>
     165
     166    <para>
     167      Note that the tests take a long time to run and many of them fail for
     168      unknown reasons.
     169    </para>
     170
     171    <para>
     172      Now, as the <systemitem class="username">root</systemitem> user:
     173    </para>
    137174
    138175<screen role="root"><userinput>make install</userinput></screen>
    139 
    140176  </sect2>
    141177
     
    143179    <title>Command Explanations</title>
    144180
     181    <para>
     182      <command>patch -p1 &lt;
     183      ../cairo-&cairo-version;-expose-snapshot-1.patch</command>: This patch
     184      exposes some private functions that <application>Firefox</application>
     185      relies on. Applying this patch allows <application>Firefox</application>
     186      to use the system installed <application>Cairo</application>.
     187    </para>
     188
     189    <para>
     190      <option>--enable-tee</option>: This is used by
     191      <application>Firefox</application>. If you don't enable the Cairo's tee
     192      surface backend you won't be able to build
     193      <application>Firefox</application> with
     194      <option>--enable-system-cairo</option>.
     195    </para>
     196
     197    <para>
     198      <option>--enable-gl</option>: Enable <application>Cairo</application>'s
     199      OpenGL backend.
     200    </para>
     201
     202    <para>
     203      <option>--enable-xcb</option>: Enable <application>Cairo</application>'s
     204      libxcb backend.
     205    </para>
     206
     207    <para>
     208      <option>--enable-vg</option>: Enable the <application>Cairo</application>
     209      <ulink url="http://en.wikipedia.org/wiki/OpenVG">OpenVG</ulink> backend
     210      (requires <xref linkend="mesalib"/> installed, configured with
     211      --enable-gallium-egl and --enable-openvg).
     212    </para>
     213
     214    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     215      href="../../xincludes/static-libraries.xml"/>
     216
    145217    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
    146218    href="../../xincludes/gtk-doc-rebuild.xml"/>
    147 
    148     <para><option>--enable-tee</option>: This is used by
    149     <application>Firefox</application>. If you don't enable the Cairo's tee
    150     surface backend you won't be able to build
    151     <application>Firefox</application> with
    152     <option>--enable-system-cairo</option>.</para>
    153 
    154     <para><option>--enable-drm</option>: Enable
    155     <application>Cairo</application>'s libdrm backend.</para>
    156 
    157     <para><option>--enable-gl</option>: Enable
    158     <application>Cairo</application>'s OpenGL backend.</para>
    159 
    160     <para><option>--enable-xcb</option>: Enable
    161     <application>Cairo</application>'s libxcb backend.
    162     </para>
    163 
    164     <para><option>--enable-vg</option>: Enable the
    165     <application>Cairo</application>
    166     <ulink url="http://en.wikipedia.org/wiki/OpenVG">OpenVG</ulink> backend
    167     (requires <xref linkend="mesalib"/> installed, configured with
    168     --enable-gallium-egl and --enable-openvg).</para>
    169 
    170     <para><option>--disable-static</option>: Prevent static libraries being
    171     built and installed.</para>
    172 
    173219  </sect2>
    174220
     
    204250        <term><command>cairo-trace</command></term>
    205251        <listitem>
    206           <para>generates a log of all calls made by an application to
    207           <application>Cairo</application>.</para>
     252          <para>
     253            generates a log of all calls made by an application to
     254            <application>Cairo</application>.
     255          </para>
    208256          <indexterm zone="cairo cairo-trace">
    209257            <primary sortas="b-cairo-trace">cairo-trace</primary>
     
    215263        <term><filename class='libraryfile'>libcairo.{so,a}</filename></term>
    216264        <listitem>
    217           <para>contains the 2D graphics functions required for rendering to
    218           the various output targets.</para>
     265          <para>
     266            contains the 2D graphics functions required for rendering to the
     267            various output targets.
     268          </para>
    219269          <indexterm zone="cairo libcairo">
    220270            <primary sortas="c-libcairo">libcairo.{so,a}</primary>
     
    226276        <term><filename class='libraryfile'>libcairo-gobject.{so,a}</filename></term>
    227277        <listitem>
    228           <para>contains functions that integrate
    229           <application>Cairo</application> with <xref linkend="glib2"/>'s
    230           GObject type system.</para>
     278          <para>
     279            contains functions that integrate
     280            <application>Cairo</application> with <xref linkend="glib2"/>'s
     281            GObject type system.
     282          </para>
    231283          <indexterm zone="cairo libcairo-gobject">
    232284            <primary sortas="c-libcairo-gobject">libcairo-gobject.{so,a}</primary>
     
    238290        <term><filename class='libraryfile'>libcairo-script-interpreter.{so,a}</filename></term>
    239291        <listitem>
    240           <para>contains the script interpreter functions for executing and
    241           manipulating <application>Cairo</application> execution traces.</para>
     292          <para>
     293            contains the script interpreter functions for executing and
     294            manipulating <application>Cairo</application> execution traces.
     295          </para>
    242296          <indexterm zone="cairo libcairo-script-interpreter">
    243297            <primary sortas="c-libcairo-script-interpreter">libcairo-script-interpreter.{so,a}</primary>
     
    245299        </listitem>
    246300      </varlistentry>
    247 
    248301    </variablelist>
    249 
    250302  </sect2>
    251 
    252303</sect1>
Note: See TracChangeset for help on using the changeset viewer.