linux:commserv:other:pear_makerpm

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' 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.

index

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • linux/commserv/other/pear_makerpm.txt
  • Zuletzt geändert: 2010-12-27 16:20
  • von 127.0.0.1