=== PEAR and PECL === **What is PECL?**\\ PECL is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.\\ \\ The packaging and distribution system used by PECL is shared with its sister, PEAR.\\ **What is PEAR?** \\ PEAR is short for "PHP Extension and Application Repository" and is pronounced just like the fruit.\\ ==== pear makerpm ==== 'pear' archive http://pear.php.net (the PHP equivalent of perl's CPAN). \\ Once you've installed the later PHP, you can use the 'pear makerpm' command to generate a specfile to build an RPM. \\ If pear makerpm generates corrupt spec-files, you can alternatively specify your own template.spec file: \\ Summary: PEAR: @summary@ Name: @rpm_package@ Version: @version@ Release: 1 License: @release_license@ Group: Produktivität/Netzwerk/Web/Server Source: http://@master_server@/get/@package@-%{version}.tgz BuildRoot: %{_tmppath}/%{name}-root URL: http://@master_server@/ Prefix: %{_prefix} Docdir: @doc_dir@/@package@ BuildArchitectures: @arch@ @extra_headers@ %description @description@ %prep rm -rf %{buildroot}/* %build echo BuildRoot=%{buildroot} %postun pear uninstall --nodeps -r @package@ # rm @rpm_xml_dir@/@package@.xml %post pear install --nodeps -r @rpm_xml_dir@/@package@.xml %install pear install --nodeps -R %{buildroot} \ $RPM_SOURCE_DIR/@package@-%{version}.tgz PEAR_PHP_DIR=`pear config-get php_dir | cut -f2 -d=` rm -f %{buildroot}$PEAR_PHP_DIR/.filemap rm -f %{buildroot}$PEAR_PHP_DIR/.lock rm -rf %{buildroot}$PEAR_PHP_DIR/.registry mkdir -p %{buildroot}@rpm_xml_dir@ tar -xzf $RPM_SOURCE_DIR/@package@-%{version}.tgz package.xml cp -p package.xml %{buildroot}@rpm_xml_dir@/@package@.xml # Build a file list, minus the docs find %{buildroot} -type f -print | sed "s@^$RPM_BUILD_ROOT@@g" > filelist.@package@ %clean rm -rf $RPM_BUILD_ROOT rm filelist.@package@ # Could use the \@doc_files\@ macro to install the docs in the # standard RPM docs location, but I'd rather keep pear docs in the same # place that they would have gone of the package had been installed manually %files -f filelist.@package@ %defattr(-,root,root) %docdir %(pear config-get doc_dir | cut -f2 -d=) Then after downloading eg. the pear tarball bla.tgz into ../SOURCES directory: pear makerpm -t pear-template.spec -p pear-%s ../SOURCES/bla.tgz rpmbuild -ba pear-bla.spec \\ The option "group=Produktivität/Netzwerk/Web/Server" is valid for openSUSE 10.2, and can differ. \\ \\ <- [[commserv:index]]