From Fedora Project Wiki
Line 5: Line 5:
= Updates of Perl core modules =
= Updates of Perl core modules =


Now: update whole perl core package. Creating updates of modules in main perl package is complicated, sometimes almost impossible
'''Old style of updates''': update whole perl core package. Creating updates of modules in main perl package is complicated, sometimes almost impossible because of change in directories/paths inside of the main package.  
because of change in directories/paths inside of the main package.  


Why we need updated modules: e.g. Module::Build is used for build and installation. New packages need the latest version, which
'''Why we need updated modules''': e.g. Module::Build is used for build and installation. New packages need the latest version, which
makes the process of packaging perl modules slower and painful.  
makes the process of packaging perl modules slower and painful. This process should help maintainability of core perl package.


Maintainer: The maintainer of (main) perl package should be (co-)maintainer of the new package.
'''Maintainer''': The maintainer of (main) perl package should be (co-)maintainer of the new package.


How update core modules e.g. Module::Build
'''How update core modules''' e.g. Module::Build
# create separated module with cpanspec
# create separated module with cpanspec
# check whether module has Epoch in perl.spec
# check whether module has Epoch in perl.spec
# check with rpmdev-vercmp whether version is really higher because of difference in rpm/cpan versions
# check with rpmdev-vercmp whether version is really higher because of difference in rpm/cpan versions
# review in bz, cvs, build, update
# review in bz, cvs, build, update
Be carefull with update into older releases of Fedora, because some older packages could have troubles e.g. with new build module.
Be careful with backporting updates into older releases of Fedora. Some older packages could have troubles e.g. with new Module::Build.


= Updates of perl modules =
= Updates of perl modules =

Revision as of 13:29, 22 July 2010

This is Draft with tips&tricks, which should help with updates.

Updates of Perl core modules

Old style of updates: update whole perl core package. Creating updates of modules in main perl package is complicated, sometimes almost impossible because of change in directories/paths inside of the main package.

Why we need updated modules: e.g. Module::Build is used for build and installation. New packages need the latest version, which makes the process of packaging perl modules slower and painful. This process should help maintainability of core perl package.

Maintainer: The maintainer of (main) perl package should be (co-)maintainer of the new package.

How update core modules e.g. Module::Build

  1. create separated module with cpanspec
  2. check whether module has Epoch in perl.spec
  3. check with rpmdev-vercmp whether version is really higher because of difference in rpm/cpan versions
  4. review in bz, cvs, build, update

Be careful with backporting updates into older releases of Fedora. Some older packages could have troubles e.g. with new Module::Build.

Updates of perl modules

For updates has been developed Fedora::App::MaintainerTools

Usage:

maintainertool updatespec perl-Something.spec

What does it do:

  • download new source
  • change BuildRequirements and Requirements
  • write changes into changelog
* Fri Jul 09 2010 Marcela Mašláňová <mmaslano@redhat.com> 3.65-1
- update by Fedora::App::MaintainerTools 0.006
- updating to latest GA CPAN version (3.65)
- added a new br on perl(ExtUtils::MakeMaker) (version 0)
- altered br on perl(HTML::Tagset) (3.03, => 3)
- added a new br on perl(Test::More) (version 0)
- added a new br on perl(XSLoader) (version 0)
- altered req on perl(HTML::Tagset) (3.03 => 3)
- added a new req on perl(XSLoader) (version 0)

But, maintainertool can't handle unusual macros like: Name: perl-%{real_name}. This module wasn't packaged, because it's still under development and BR RPM::VersionSort doesn't have license.