< Project:Perl

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 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.

This article is issued from Gentoo. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.