diff -Naur PEAR_Command_Packaging-0.1.2/Packaging.php PEAR_Command_Packaging-0.1.2.oden/Packaging.php --- PEAR_Command_Packaging-0.1.2/Packaging.php 2006-06-28 16:08:04.000000000 +0200 +++ PEAR_Command_Packaging-0.1.2.oden/Packaging.php 2006-08-01 09:59:45.000000000 +0200 @@ -69,14 +69,13 @@ %S = PEAR package name (with underscores replaced with hyphens) %C = Channel alias %c = Channel alias, lowercased -Defaults to "%C::%s".', +Defaults to "php-%c-%S".', ), 'rpm-depname' => array( 'shortopt' => 'd', 'arg' => 'FORMAT', 'doc' => 'Use FORMAT as format string for RPM package name. Substitutions -are as for the --rpm-pkgname option. Defaults to be the same as -the format defined by the --rpm-pkgname option.', +are as for the --rpm-pkgname option. Defaults to "php-%c(%s)".', ), ), 'doc' => '<package-file> @@ -87,10 +86,10 @@ $ cd /path/to/rpm-build-tree/SPECS $ pear make-rpm-spec ../SOURCES/Net_Socket-1.0.tgz -Wrote RPM spec file PEAR::Net_Socket-1.0.spec -$ rpm -bb PEAR::Net_Socket-1.0.spec +Wrote RPM spec file php-pear-Net-Socket.spec +$ rpm -bb php-pear-Net-Socket.spec ... -Wrote: /path/to/rpm-build-tree/RPMS/noarch/PEAR::Net_Socket-1.0-1.noarch.rpm +Wrote: /path/to/rpm-build-tree/RPMS/noarch/php-pear-Net-Socket-1.0-1.noarch.rpm ', ), ); @@ -98,14 +97,14 @@ var $output; // The default format of the RPM package name - var $_rpm_pkgname_format = '%C::%s'; + var $_rpm_pkgname_format = 'php-%c-%S'; // The default format of various dependencies that might be generated in the // spec file. // NULL = "don't generate a dep". // %P = use the same as whatever rpm_pkgname_format is set to be var $_rpm_depname_format = array( - 'pkg' => '%P', + 'pkg' => 'php-%c(%s)', 'ext' => 'php-%l', 'php' => 'php'); @@ -113,7 +112,7 @@ // the rpm-pkgname format string, with the addition of: // %v = package version // %P = use the same as whatever rpm_pkgname_format is set to be - var $_rpm_specname_format = '%P-%v.spec'; + var $_rpm_specname_format = '%P.spec'; /** * PEAR_Command_Packaging constructor. @@ -207,7 +206,7 @@ if (isset($options['spec-template'])) { $spec_template = $options['spec-template']; } else { - $spec_template = '@DATA-DIR@/PEAR_Command_Packaging/template.spec'; + $spec_template = '/usr/share/pear/data/PEAR_Command_Packaging/template.spec'; } // Initialise the RPM package/dep naming format options @@ -228,7 +227,7 @@ } // Set up some of the basic macros - $info['rpm_xml_dir'] = '/var/lib/pear'; + $info['rpm_xml_dir'] = '%{_datadir}/pear/packages'; $info['extra_config'] = ''; $info['extra_headers'] = ''; $info['doc_files'] = array(); @@ -257,13 +256,13 @@ $info['doc_files'][] .= $name; // Map role to the rpm vars } else { - $c_prefix = '%{_libdir}/php/pear'; + $c_prefix = '%{_datadir}/pear'; switch ($attr['role']) { case 'php': $prefix = $c_prefix; break; case 'ext': - $prefix = '%{_libdir}/php'; + $prefix = '%{_libdir}/php/extensions'; break; // XXX good place? case 'src': $srcfiles++; @@ -565,8 +564,6 @@ if (isset($options['rpm-depname'])) { $this->_rpm_depname_format['pkg'] = $options['rpm-depname']; - } else { - $this->_rpm_depname_format['pkg'] = $this->_rpm_pkgname_format; } } diff -Naur PEAR_Command_Packaging-0.1.2/Packaging.xml PEAR_Command_Packaging-0.1.2.oden/Packaging.xml --- PEAR_Command_Packaging-0.1.2/Packaging.xml 2006-06-28 16:08:04.000000000 +0200 +++ PEAR_Command_Packaging-0.1.2.oden/Packaging.xml 2006-08-01 09:58:15.000000000 +0200 @@ -23,14 +23,13 @@ %S = PEAR package name (with underscores replaced with hyphens) %C = Channel alias %c = Channel alias, lowercased -Defaults to "%C::%s".</doc> +Defaults to "php-%c-%S".</doc> </rpm-pkgname> <rpm-depname> <shortopt>d</shortopt> <arg>FORMAT</arg> <doc>Use FORMAT as format string for RPM package name. Substitutions -are as for the --rpm-pkgname option. Defaults to be the same as -the format defined by the --rpm-pkgname option.</doc> +are as for the --rpm-pkgname option. Defaults to "php-%c(%s)".</doc> </rpm-depname> </options> <doc><package-file> @@ -41,10 +40,11 @@ $ cd /path/to/rpm-build-tree/SPECS $ pear make-rpm-spec ../SOURCES/Net_Socket-1.0.tgz -Wrote RPM spec file PEAR::Net_Socket-1.0.spec -$ rpm -bb PEAR::Net_Socket-1.0.spec +Wrote RPM spec file php-pear-Net-Socket.spec +$ rpm -bb php-pear-Net-Socket.spec ... -Wrote: /path/to/rpm-build-tree/RPMS/noarch/PEAR::Net_Socket-1.0-1.noarch.rpm +Wrote: +/path/to/rpm-build-tree/RPMS/noarch/php-pear-Net-Socket-1.0-1.noarch.rpm </doc> </make-rpm-spec> </commands> diff -Naur PEAR_Command_Packaging-0.1.2/template.spec PEAR_Command_Packaging-0.1.2.oden/template.spec --- PEAR_Command_Packaging-0.1.2/template.spec 2006-06-28 16:08:04.000000000 +0200 +++ PEAR_Command_Packaging-0.1.2.oden/template.spec 2006-08-01 09:58:15.000000000 +0200 @@ -1,69 +1,83 @@ -%define peardir %(pear config-get php_dir 2> /dev/null || echo %{_datadir}/pear) -%define xmldir @rpm_xml_dir@ - -Summary: PEAR: @summary@ -Name: @rpm_package@ -Version: @version@ -Release: @release@ -License: @release_license@ -Group: Development/Libraries -Source0: http://@master_server@/get/@package@-%{version}.tgz -BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n) -URL: http://@master_server@/package/@package@ -BuildArchitectures: @arch@ -BuildRequires: @pear_rpm_name@ >= 1.4.7 +Summary: PEAR: @summary@ +Name: @rpm_package@ +Version: @version@ +Release: %mkrel @release@ +License: @release_license@ +Group: Development/PHP +Source0: http://@master_server@/get/@package@-%{version}.tgz +URL: http://@master_server@/package/@package@ +BuildRequires: php-pear >= 1.4.10 +Requires(post): php-pear >= 1.4.10 +Requires(preun): php-pear >= 1.4.10 +Requires: php-pear >= 1.4.10 +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot @extra_headers@ %description @description@ %prep -%setup -c -T + +%setup -q -c + # XXX Source files location is missing here in pear cmd pear -v -c pearrc \ - -d php_dir=%{peardir} \ + -d php_dir=%{_datadir}/pear \ -d doc_dir=/docs \ -d bin_dir=%{_bindir} \ - -d data_dir=%{peardir}/data \ - -d test_dir=%{peardir}/tests \ - -d ext_dir=%{_libdir} \@extra_config@ + -d data_dir=%{_datadir}/pear/data \ + -d test_dir=%{_datadir}/pear/tests \ + -d ext_dir=%{_libdir}/php/extensions \@extra_config@ -s %build %install rm -rf %{buildroot} + pear -c pearrc install --nodeps --packagingroot %{buildroot} %{SOURCE0} # Clean up unnecessary files rm pearrc -rm %{buildroot}/%{peardir}/.filemap -rm %{buildroot}/%{peardir}/.lock -rm -rf %{buildroot}/%{peardir}/.registry -rm -rf %{buildroot}%{peardir}/.channels -rm %{buildroot}%{peardir}/.depdb -rm %{buildroot}%{peardir}/.depdblock +rm %{buildroot}/%{_datadir}/pear/.filemap +rm %{buildroot}/%{_datadir}/pear/.lock +rm -rf %{buildroot}/%{_datadir}/pear/.registry +rm -rf %{buildroot}%{_datadir}/pear/.channels +rm %{buildroot}%{_datadir}/pear/.depdb +rm %{buildroot}%{_datadir}/pear/.depdblock @doc_files_relocation_script@ # Install XML package description -mkdir -p %{buildroot}%{xmldir} -tar -xzf %{SOURCE0} package@package2xml@.xml -cp -p package@package2xml@.xml %{buildroot}%{xmldir}/@package@.xml - -%clean -rm -rf %{buildroot} +install -d %{buildroot}%{_datadir}/pear/packages +install -m0644 package.xml %{buildroot}%{_datadir}/pear/packages/@package@.xml %post -pear install --nodeps --soft --force --register-only %{xmldir}/@package@.xml +if [ "$1" = "1" ]; then + if [ -x %{_bindir}/pear -a -f %{_datadir}/pear/packages/@package@.xml ]; then + %{_bindir}/pear install --nodeps --soft --force --register-only %{_datadir}/pear/packages/@package@.xml + fi +fi +if [ "$1" = "2" ]; then + if [ -x %{_bindir}/pear -a -f %{_datadir}/pear/packages/@package@.xml ]; then + %{_bindir}/pear upgrade --nodeps --soft --force --register-only %{_datadir}/pear/packages/@package@.xml + fi +fi -%postun -if [ "$1" -eq "0" ]; then - pear uninstall --nodeps --ignore-errors --register-only @possible_channel@@package@ +%preun +if [ "$1" = 0 ]; then + if [ -x %{_bindir}/pear -a -f %{_datadir}/pear/packages/@package@.xml ]; then + %{_bindir}/pear uninstall --nodeps --ignore-errors --register-only @possible_channel@@package@ + fi fi +%clean +rm -rf %{buildroot} + %files -%defattr(-,root,root) +%defattr(644,root,root,755) @doc_files_statement@ -%{peardir}/* -%{xmldir}/@package@.xml +%{_datadir}/pear/* +%{_datadir}/pear/packages/@package@.xml +