cvs: peardoc /en/pyrus/differences frompear.xml

[email protected] ("Greg Beaver")
Newsgroups php.pear.doc
Message-ID <cvscellog1245942140@cvsserver>
cellog		Thu Jun 25 15:02:20 2009 UTC

  Modified files:              
    /peardoc/en/pyrus/differences	frompear.xml 
  Log:
  new docs on differences between pyrus and PEAR for building PECL packages
  
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/differences/frompear.xml?r1=1.6&r2=1.7&diff_format=u
Index: peardoc/en/pyrus/differences/frompear.xml
diff -u peardoc/en/pyrus/differences/frompear.xml:1.6 peardoc/en/pyrus/differences/frompear.xml:1.7
--- peardoc/en/pyrus/differences/frompear.xml:1.6	Wed Jun 24 14:04:29 2009
+++ peardoc/en/pyrus/differences/frompear.xml	Thu Jun 25 15:02:20 2009
@@ -323,7 +323,73 @@
  <section xml:id="pyrus.differences.frompear.pecl">
   <info><title>Installing and Building PECL extensions</title></info>
   <para>
-   work in progress.
+   PEAR's handling of PECL extensions has been somewhat dodgy, with reports of
+   issues with phpize failing, and other problems.
+   Pyrus attempts to fix this through two major changes to the way PECL packages
+   are built and installed.
   </para>
+  <para>
+   <orderedlist>
+    <listitem>
+     <simpara>
+      PECL packages are installed into a new location <literal>src/</literal>
+      and then built directly inside this location.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      The same tool process used to build extensions by hand is used verbatim
+      by pyrus to build the extension
+     </simpara>
+    </listitem>
+   </orderedlist>
+  </para>
+  <section>
+   <title>PECL installation changes</title>
+   <para>
+    PEAR builds PECL packages by creating a temporary directory, installing all of
+    the source files into this directory, building the extension, harvesting
+    built files, and finally removes the temporary directory.  This system works
+    most of the time, but if there is a problem, it is impossible to debug because
+    the sources are removed.
+   </para>
+   <para>
+    Pyrus solves this by splitting PECL package installation into two components,
+    installation and build.  The installation process simply places the
+    source files into a sub-directory of the <literal>src_dir</literal> configuration
+    variable, and thus makes it possible to debug problems or even apply patches
+    to the source and re-build.
+   </para>
+  </section>
+  <section>
+   <title>PECL build</title>
+   <para>
+    The new <literal>build</literal> command enhances PEAR's package building by
+    directly calling this sequence:
+   </para>
+   <para>
+    <screen>
+     <![CDATA[
+phpize --clean
+phpize
+./configure [any options specified by <configureoptions>]
+make
+make install
+     ]]>
+    </screen>
+   </para>
+   <para>
+    This is the same sequence one would use to build a PECL extension by hand.
+    In addition, <function>proc_open</function> is used instead of
+    <function>popen</function>, which allows better monitoring and control of
+    the processes in question.
+   </para>
+   <para>
+    Lastly, Pyrus is more cross-platform than PEAR, as it replaces a
+    call to <literal>find</literal> and <literal>xargs</literal> with native
+    PHP iteration over the modules directory when listing extension components
+    that were built.
+   </para>
+  </section>
  </section>
 </section>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.