From Fedora Project Wiki

 
(62 intermediate revisions by 19 users not shown)
Line 1: Line 1:
<div class="messagebox" style="float: right; margin-left: 10px;">__TOC__</div>
= Fedora Perl SIG Mission =
= Fedora Perl SIG Mission =


To assist packagers in bringing Perl-related packages to Fedora Extras and assisting in their continued maintenance by providing timely reviews, acting as secondary package owners and assisting with related security issues.
To assist packagers in bringing Perl-related packages to Fedora and assisting in their continued maintenance by providing timely reviews, acting as secondary package owners and assisting with related security issues.


= Perl Components in Fedora =
= Perl Components in Fedora =
Line 7: Line 9:
== Core Perl ==
== Core Perl ==


Core perl in Fedora is currently 5.10.0.
[http://search.cpan.org/~dom/perl/|Core perl] in Fedora is defined by perl-core package. Some core modules are replaced with packages dual-living on CPAN. [https://koji.fedoraproject.org/koji/packageinfo?packageID=84 See koji build listing for current perl version.]
 
* http://search.cpan.org/~rgarcia/perl-5.10.0
* http://www.slideshare.net/rjbs/perl-510-for-people-who-arent-totally-insane


== Apps ==
== Apps ==


* [[/Bugzilla|  Bugzilla]]  - Defect Tracking System
* [http://www.alzabo.org/ Alzabo] - Data modelling tool (also in CPAN)
* [http://www.bugzilla.org/ Bugzilla]  
* [http://www.bugzilla.org/ Bugzilla] - Defect Tracking System
* Some testing on an SELinux-enabled system is still needed (see FE review request)
* FE review request: [https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=188359 #188359]  
* [http://clusterssh.sourceforge.net Cluster SSH]  - Cluster Admin Via SSH
* [http://clusterssh.sourceforge.net Cluster SSH]  - Cluster Admin Via SSH
* [http://www.alzabo.org/ Alzabo] - Data modelling tool (also in CPAN)
* [http://mojomojo.org/ MojoMojo] - Catalyst-based wiki, with live as-you-type AJAX preview of edits
* [http://padre.perlide.org/ Padre] - The Perl IDE
* [http://bestpractical.com/rt/ RT] - Release Tracker - a battle-tested issue tracking system
* [http://spamassassin.apache.org/ SpamAssassin] - A spam filter for email


== Frameworks ==
== Frameworks ==
Line 25: Line 25:
There are a number of the more popular Perl frameworks available in Fedora.
There are a number of the more popular Perl frameworks available in Fedora.


* [[Catalyst]] - MVC Web Application Framework (also in CPAN)
* {{CPAN|AnyEvent}} - A framework for multiple event loops
* [[Bricolage]]  - Content Management System (CPAN: Bundle::Bricolage)
* Bricolage - Content Management System
* [[POE]] - Portable multitasking and networking framework
* {{CPAN|Catalyst}} - MVC Web Application Framework
* [[Moose]] - Modern perl5 OOP system
* {{CPAN|DBIx::Class}} - a modern, powerful object-relational mapping system
* {{CPAN|Moose}} - Modern perl5 OOP system
* {{CPAN|POE}} - Portable multitasking and networking framework


== Perl/Parrot/Pugs ==
== MoarVM -> NQP -> Rakudo Perl 6 ==


* [http://www.parrotcode.org/ Parrot]  - Parrot Virtual Machine
* [http://www.moarvm.org/ MoarVM]  - A VM for NQP and Rakkudo Perl 6
** [https://www.redhat.com/archives/fedora-perl-devel-list/2007-March/msg00093.html mailling list thread]
* [https://github.com/perl6/nqp NQP] - NQP is a lightweight Perl 6-like environment for virtual machines.
* [http://search.cpan.org/dist/Perl6-Pugs/ Pugs]  - A Perl 6 Implementation written in Haskell
* [http://search.cpan.org/dist/Perl6-Pugs/ Pugs]  - A Perl 6 Implementation written in [[Haskell]]
** [https://www.redhat.com/archives/fedora-perl-devel-list/2007-March/msg00043.html mailing list thread]  
** [https://www.redhat.com/archives/fedora-perl-devel-list/2007-March/msg00043.html mailing list thread]  
* [https://fedoraproject.org/wiki/Features/Rakudo_Perl_6 Rakudo] - A Perl 6 implementation (was F-12 feature)
* microperl
* microperl


= Perl packages in Fedora =
= Perl packages in Fedora =


Please edit the [[/Wishlist| wishlist]]  if you want something, or package something off it if you're bored :)
Please edit the [[Perl Wishlist|Perl wishlist]]  if you want something, or package something off it if you're bored :)


Bugzilla is an excellent place to find information about the various perl packages in or being reviewed for inclusion:
Bugzilla is an excellent place to find information about the various perl packages in or being reviewed for inclusion:


* [https://bugzilla.redhat.com/buglist.cgi?cmdtype=runnamed&namedcmd=perl%20review%20requests Review queue]  
* [https://bugzilla.redhat.com/buglist.cgi?query_format=advanced&short_desc=perl&bug_status=NEW&bug_status=ASSIGNED&short_desc_type=allwordssubstr&component=Package%20Review&product=Fedora&classification=Fedora Review queue]
* [https://bugzilla.redhat.com/buglist.cgi?query_format=&short_desc_type=allwordssubstr&short_desc=&product=Fedora&version=&component=&query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=NEEDINFO&bug_status=MODIFIED&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&fixed_in_type=allwordssubstr&fixed_in=&qa_whiteboard_type=allwordssubstr&qa_whiteboard=&keywords_type=allwords&keywords=&emailcc1=1&emailtype1=exact&email1=fedora-perl-devel-list%40redhat.com&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailcc2=1&emailtype2=exact&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Bug+Number+Descending&field0-0-0=noop&type0-0-0=noop&value0-0-0= Open bugs]  
* [https://bugzilla.redhat.com/buglist.cgi?short_desc=perl&classification=Fedora&emailtype1=substring&query_format=advanced&emailassigned_to1=1&bug_status=NEW&bug_status=ASSIGNED&short_desc_type=allwordssubstr&email1=nobody%40fedoraproject.org&component=Package%20Review&product=Fedora Reviews without reviewer]
* [https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=MODIFIED&email1=fedora-perl-devel-list%40redhat.com&emailcc1=1&emailtype1=exact&field-1-0-0=product&field-1-1-0=bug_status&field-1-2-0=cc&product=Fedora&query_format=advanced&remaction=&type-1-0-0=anyexact&type-1-1-0=anyexact&type-1-2-0=anyexact&value-1-0-0=Fedora&value-1-1-0=NEW%2CASSIGNED%2CMODIFIED&value-1-2-0=fedora-perl-devel-list%40redhat.com&order=bugs.bug_id&query_based_on= Open bugs]
* [https://bugzilla.redhat.com/buglist.cgi?query_format=advanced&short_desc=FTBFS%20perl&bug_status=NEW&bug_status=ASSIGNED&short_desc_type=allwordssubstr&product=Fedora&classification=Fedora FTBFS bugs]
* Perl on [[Perl Server|server]] (ideas)


= Fedora perl infrastructure =
= Fedora perl infrastructure =
Line 51: Line 57:
== Perl to CPAN Mapping ==
== Perl to CPAN Mapping ==


With most perl modules being in CPAN, preliminary "mapping" table has been created.  This table is regenerated on a daily basis, and will be included in the upcoming [[Infrastructure/ProjectHosting|  Perl SIG Infrastructure hosted project]] .
With most perl modules being in CPAN, [https://ppisar.fedorapeople.org/cpandistributionsinfedora.xhtml mapping table] has been created.  This table is regenerated on a daily basis, and will be included in the upcoming [[Infrastructure/ProjectHosting|  Perl SIG Infrastructure hosted project]].
 
* [http://fedora.biggerontheinside.net/perl/ CPAN to Fedora master list]
* [http://fedora.biggerontheinside.net/perl/by_packager.html index to perl-owner mapping]


= Problems that need to be addressed =
= Problems that need to be addressed =
Line 62: Line 65:


* Improve the RPM perl scripts (requirements and provides detection)
* Improve the RPM perl scripts (requirements and provides detection)
* at least try to handle use statements a litte better (eg: use base Module; use autouse Module; ...)
** rpm: handle the ‘v’ in “use v5.6.0″ (#140597) (reportedly fixed in rpm5.org's RPM 4.4.3)
* [http://wraptastic.org/blog/?p=36 RPM 4.4.3]  perl: handle the ‘v’ in “use v5.6.0″ (#140597)
** fix: perldeps and prov.pl not to emit perl(main) (#177960) (reportedly fixed in rpm5.org's RPM 4.4.5)
* [http://wraptastic.org/blog/?p=36 RPM 4.4.3]  resurrect a rpm-perl subpackage from perl-RPM2-0.66
** at least try to handle use statements a litte better (eg: use base Module; use autouse Module; ...)
* [http://wraptastic.org/blog/?p=37 RPM 4.4.4]  complete forking perl-RPM2/* to perl/* module name “RPM”
*** Use PPI?
* [http://wraptastic.org/blog/?p=39 RPM 4.4.5]  fix: perldeps and prov.pl not to emit perl(main) (#177960)
** Try to have RPM patched in order to create the debuginfo files after the %check section script is executed and not before (right now the files are created after the %install check script is executed). This breaks the signature tests (there are also other problems related to the signature tests in the building environment: network access to import pgg keys, where should they be stored, ...). More information available [http://koti.welho.com/vskytta/packagers-handbook/packagers-handbook.html#guidelines-perl-cpansign here]  and in bug  [https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=167252 #167252] .
* Try to have RPM patched in order to create the debuginfo files after the %check section script is executed and not before (right now the files are created after the %install check script is executed). This breaks the signature tests (there are also other problems related to the signature tests in the building environment: network access to import pgg keys, where should they be stored, ...). More information available [http://koti.welho.com/vskytta/packagers-handbook/packagers-handbook.html#guidelines-perl-cpansign here]  and in bug  [https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=167252 #167252] .
* How to update core perl modules?  
* How to update core perl modules? Use the site_perl dirs? /usr/local dirs? Problems with man pages conflicts, version provides clashes (can cause strange problems during package upgrades), ....
** [[Perl/updates|tips for updates]]
** Already being discussed here: [https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=142837 Bug 142837 – Need site-specific man page directory]  
* The correct [[Perl/Draft:INC_directories|@INC directories]] are still questionable.
* Try to reduce the number of @INC directories.
* Have a common dir for noarch modules instead of one for each perl version supported.
* Have a common dir for noarch modules instead of one for each perl version supported.
* The magic that is perl(:WITH_xxx) needs to be better documented and explained, so packagers -- and reviewers! -- know:
* The magic that is perl(:WITH_xxx) needs to be better documented and explained, so packagers -- and reviewers! -- know:
* What they are and what they mean
** What they are and what they mean
* When to use them
** When to use them
* When to _not_ use them
** When to _not_ use them
* Common things to check for that would indicate their usage
** Common things to check for that would indicate their usage
* explore possibilities or merging RPM2 functionality into RPM namespace [https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=671389 #671389]
 
See [[Perl/Plan]] for structured plan.


== Miscellaneous ==
== Miscellaneous ==


* Clarified packaging guidelines - Some of the packaging guidelines have conflicted with some common practises.
* Clarified packaging guidelines - Some of the packaging guidelines (see [[Packaging/Perl]]) have conflicted with some common practises.
** For example, BuildRequires: perl was common but forbidden; that has now been changed.  One current issue is the prohibition against including header files in the main package; some perl modules include these deep in the module directory hierarchy, and moving them to a separate -devel package is pointless.
** For example, BuildRequires: perl was common but forbidden; that has now been changed.  One current issue is the prohibition against including header files in the main package; some perl modules include these deep in the module directory hierarchy, and moving them to a separate -devel package is pointless.
* Notes about "Makefile.PL vs Build.PL" or "ExtUtils::MakeMaker vs Module::Build"
* Notes about "Makefile.PL vs Build.PL" or "{{CPAN|ExtUtils::MakeMaker}} vs {{CPAN|Module::Build}}"
** http://www.redhat.com/archives/fedora-package-review/2006-September/msg00649.html
** http://www.redhat.com/archives/fedora-package-review/2006-September/msg00649.html


= Packagers/Reviewers/People interested in helping =
= Packagers/Reviewers/People interested in helping =


* [[User:Cweyl|Chris Weyl]]
* [[User:eseyman|Emmanuel Seyman]]
* [[GavinHenry]]
* [[IainArnell|Iain Arnell]] (a sponsor)
* [[JasonTibbitts]]
* [[JasonTibbitts]]
* [[JoseOliveira]] (jpo)
* [[User:jplesnik|Jitka Plesníková]]
* [[PaulHowarth]]
* [[User:gerd|Gerd Pokorra]]
* [[StevenPritchard]]
* [[User:Lkundrak|Lubomir Rintel]] (a sponsor)
* [[ChrisWeyl]]
* [[User:Mmaslano|Marcela Mašláňová]]
* [[GavinHenry]]
* [[User:Pghmcfc|Paul Howarth]] (a sponsor)
* [[ParagNemade]]
* [[User:ppisar|Petr Písař]]
* [[User:Rlandmann|Rüdiger Landmann]]
* [[StevenPritchard|Steven Pritchard]] (a sponsor)
* [[User:mspacek|Michal Josef Špaček]]
 
You can also see people who have tagged their user pages in the [[:Category:SIG Members/Perl]].


= References =
= References =
Line 99: Line 113:
* [http://www.cpan.org/ CPAN - Comprehensive Perl Archive Network]  
* [http://www.cpan.org/ CPAN - Comprehensive Perl Archive Network]  
* [http://search.cpan.org/recent CPAN - Recent files]  
* [http://search.cpan.org/recent CPAN - Recent files]  
* [[Perl/updates]]
* Fedora perl specfile template (available in the rpmdevtools package)
* Fedora perl specfile template (available in the rpmdevtools package)
* [https://www.redhat.com/mailman/listinfo/fedora-perl-devel-list Fedora Perl mailing list]
* [http://gsd.di.uminho.pt/jpo/perl/specfiles/ Notes about perl specfiles]  (old)
* [[Perl/cpanspec|  cpanspec]]
* [[Perl/cpanspec|  cpanspec]]
* [[Packaging/Perl]]  
* [[Perl/perl.spec| maintaining perl.spec]]
* [http://koti.welho.com/vskytta/packagers-handbook/packagers-handbook.html#guidelines-perl Perl packaging tips] (work in progress)
* [[Packaging/Perl]]
* [[Perl/Tips]]
* [http://koti.welho.com/vskytta/packagers-handbook/packagers-handbook.html#guidelines-perl Perl packaging tips] - [https://web.archive.org/web/20120427181445/http://koti.welho.com/vskytta/packagers-handbook/packagers-handbook.html#guidelines-perl archive URL] (work in progress)
 
= Communication & help =


* {{fplist|perl-devel}} is our SIG's mailing list
* {{fplist|perl6}} is the mailing list particular for Perl 6
* The [https://chat.fedoraproject.org/#/room/#perl:fedoraproject.org Fedora Perl] room on Fedora Chat
----
----
[[Category:Perl]]
[[Category:Perl]]
[[Category:Language-specific SIGs]]
[[Category:Language-specific SIGs]]
[[Category:SIGs]]
[[Category:Fedora special-interest groups]]

Latest revision as of 16:57, 4 December 2024

Fedora Perl SIG Mission

To assist packagers in bringing Perl-related packages to Fedora and assisting in their continued maintenance by providing timely reviews, acting as secondary package owners and assisting with related security issues.

Perl Components in Fedora

Core Perl

perl in Fedora is defined by perl-core package. Some core modules are replaced with packages dual-living on CPAN. See koji build listing for current perl version.

Apps

  • Alzabo - Data modelling tool (also in CPAN)
  • Bugzilla - Defect Tracking System
  • Cluster SSH - Cluster Admin Via SSH
  • MojoMojo - Catalyst-based wiki, with live as-you-type AJAX preview of edits
  • Padre - The Perl IDE
  • RT - Release Tracker - a battle-tested issue tracking system
  • SpamAssassin - A spam filter for email

Frameworks

There are a number of the more popular Perl frameworks available in Fedora.

  • AnyEvent - A framework for multiple event loops
  • Bricolage - Content Management System
  • Catalyst - MVC Web Application Framework
  • DBIx::Class - a modern, powerful object-relational mapping system
  • Moose - Modern perl5 OOP system
  • POE - Portable multitasking and networking framework

MoarVM -> NQP -> Rakudo Perl 6

  • MoarVM - A VM for NQP and Rakkudo Perl 6
  • NQP - NQP is a lightweight Perl 6-like environment for virtual machines.
  • Pugs - A Perl 6 Implementation written in Haskell
  • Rakudo - A Perl 6 implementation (was F-12 feature)
  • microperl

Perl packages in Fedora

Please edit the Perl wishlist if you want something, or package something off it if you're bored :)

Bugzilla is an excellent place to find information about the various perl packages in or being reviewed for inclusion:

Fedora perl infrastructure

Perl to CPAN Mapping

With most perl modules being in CPAN, mapping table has been created. This table is regenerated on a daily basis, and will be included in the upcoming Perl SIG Infrastructure hosted project.

Problems that need to be addressed

The following topics need to be discussed/improved/corrected. We need to start discussing them in the fedora-perl-list.

  • Improve the RPM perl scripts (requirements and provides detection)
    • rpm: handle the ‘v’ in “use v5.6.0″ (#140597) (reportedly fixed in rpm5.org's RPM 4.4.3)
    • fix: perldeps and prov.pl not to emit perl(main) (#177960) (reportedly fixed in rpm5.org's RPM 4.4.5)
    • at least try to handle use statements a litte better (eg: use base Module; use autouse Module; ...)
      • Use PPI?
    • Try to have RPM patched in order to create the debuginfo files after the %check section script is executed and not before (right now the files are created after the %install check script is executed). This breaks the signature tests (there are also other problems related to the signature tests in the building environment: network access to import pgg keys, where should they be stored, ...). More information available here and in bug #167252 .
  • How to update core perl modules?
  • The correct @INC directories are still questionable.
  • Have a common dir for noarch modules instead of one for each perl version supported.
  • The magic that is perl(:WITH_xxx) needs to be better documented and explained, so packagers -- and reviewers! -- know:
    • What they are and what they mean
    • When to use them
    • When to _not_ use them
    • Common things to check for that would indicate their usage
  • explore possibilities or merging RPM2 functionality into RPM namespace #671389

See Perl/Plan for structured plan.

Miscellaneous

Packagers/Reviewers/People interested in helping

You can also see people who have tagged their user pages in the Category:SIG Members/Perl.

References

Communication & help