Project:Perl/Ongoing tasks

From Gentoo Wiki
Jump to:navigation Jump to:search

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 for corelist )

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.