Project:Perl/Ongoing tasks
High priority tasks
- Fix repoman issues: dev-perl perl-core
- Update virtuals (drop old versions, remove references to removed perl versions, add new perl versions under mask), details see below
Updating dev-lang/perl (new major version 5.x)
These notes are work in progess!!! Always add new ebuilds masked, both new dev-lang/perl and its corresponding new virtuals.
- Version-bump perl-core/Module-CoreList and virtual/perl-Module-CoreList, so it has data about the new Perl version
- Update your local Module-CoreList for convenience
- Now or later, add new dev-lang/perl package.masked, with empty PERL_OLDVERSEN and updated version numbers in the dual_scripts table
- In some cases, virtuals correspond to a "distribution", not a "module". For these virtuals, check and update the table on the distribution virtuals page
- Add package.masked new virtuals for new core package versions included in the new Perl (only virtuals, no perl-core), or
- Update existing virtuals with a revbump to include the new version if it provides the same core package
- always list higher dev-lang/perl versions first in the virtual
- always keep stable keywords during revision bump of the virtual
- always immediately remove the old virtual revision
Updating dev-lang/perl (new minor version 5.x.y)
- Copy ebuild to new version
- Ensure DIST_AUTHOR etc is right
- Update PERL_OLDVERSEN to include all versions that are ABI compatible, but are different versions, newest first, eg:
For Perl 5.24.3
PERL_OLDVERSEN="5.24.2 5.24.1 5.24.0"
- Add Module-CoreList package and virtual ( See Project:Perl/maint-notes/virtual/perl-Module-CoreList )
- Update
dual_scripts
versions ( see above forcorelist
)
These notes are work in progess!!!
Dropping a dev-lang/perl version
These notes are work in progess!!!
- package.mask the dev-lang/perl ebuild plus all virtuals that are provided only by this dev-lang/perl version
- Wait until autorepoman catches up and make sure the mask is correct and complete.
- Remove the masked dev-lang/perl ebuild
- Remove the masked virtuals provided only by this dev-lang/perl version
- Remove all perl-core/* ebuilds that have no virtual pointing to them.
- Important: Rules restricting "removing last stable" or "removing last keyworded" do not apply in perl-core (since people are only allowed to DEPEND on virtuals). Just do it.
- Important: Instead of removing the last ebuild in a directory, just drop all keywords in it. We will need the package again, so last-riting makes no sense.
Updating the virtuals
Important point: Virtuals can correspond to single modules or to CPAN distributions. See Project:Perl/Distribution_virtuals about the module versions inside distributions.
It's important that the versions inside dev-lang/perl are also present as virtuals. Why? Imagine dev-lang/perl-0.18 contains Module::Foo version Y, and virtual/perl-Module-Foo-X (with X smaller Y) is stable. Now we stabilize perl-0.18. If we don't have a virtual to stabilize, the old version will stay installed and shadow the newer one in perl-0.18!
Template for a virtual with corresponding dev-lang/perl version:
# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/virtual/perl-IO/perl-IO-1.310.0.ebuild,v 1.1 2014/07/07 19:40:40 dilfridge Exp $ EAPI=5 DESCRIPTION="Virtual for ${PN#perl-}" HOMEPAGE="" SRC_URI="" LICENSE="" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="" DEPEND="" RDEPEND=" || ( =dev-lang/perl-5.20* =dev-lang/perl-5.18* ~perl-core/${PN#perl-}-${PV} ) !<perl-core/${PN#perl-}-${PV} !>perl-core/${PN#perl-}-${PV}-r999 "
Template for a virtual without corresponding dev-lang/perl version:
# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/virtual/perl-IO/perl-IO-1.310.0.ebuild,v 1.1 2014/07/07 19:40:40 dilfridge Exp $ EAPI=5 DESCRIPTION="Virtual for ${PN#perl-}" HOMEPAGE="" SRC_URI="" LICENSE="" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="" DEPEND="" RDEPEND="~perl-core/${PN#perl-}-${PV}"
Virtuals that still need some attention
Things that have been skipped in this update pass and should be fixed: all done
Moving a package from perl-core to dev-perl
Sometimes a package X is removed from the core Perl distribution. Keep version-bumping perl-core/X and virtual/perl-X package until all virtual versions of X point to perl-core alone, NOT to any dev-lang/perl ebuild. Once that state is reached the package can be moved to dev-perl.
Procedure:
- Copy the perl-core/X ebuilds to dev-perl/X, make sure everything builds and installs fine, commit
- Update all virtual/perl-X ebuilds to point to dev-perl/X (with revbumps, keep stable keywords)
- Add package move entry to move perl-core/X to dev-perl/X
- Remove perl-core/X
- Update tree-wide dependencies to point to dev-perl/X instead of virtual/perl-X
- Last-rite virtual/perl-X
Package requests on bugzilla
There's a huge number of ebuild requests on bugzilla for perl packages, many quite old... So, we leave this message on the bugs:
Is anyone still interested in this package? If yes, please indicate so here and now!
If noone replies within 30 days, the bug is closed.