Skip to content

Commit

Permalink
dev-perl/App-cpanminus: Add -9999 version
Browse files Browse the repository at this point in the history
This work is based on the existing work in app-admin/rex, as latest
cpanm uses Dzil in its build chain.

TODO: Provision fatlib entries *exclusively* from installed gentoo
stuff, but that might be really tricky.

What it currently does is fatpack bundled copies of upstream stuff

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Kent Fredric <[email protected]>
  • Loading branch information
kentfredric committed May 3, 2020
1 parent d427ea8 commit 9920419
Showing 1 changed file with 108 additions and 0 deletions.
108 changes: 108 additions & 0 deletions dev-perl/App-cpanminus/App-cpanminus-9999.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

if [[ ${PV} == 9999 ]]; then
GITHUB_USER=miyagawa
GITHUB_REPO=cpanminus
EGIT_REPO_URI="https://github.com/${GITHUB_USER}/${GITHUB_REPO}.git"
EGIT_BRANCH="devel"
EGIT_CHECKOUT_DIR="${WORKDIR}/${PN}-git"
VCS_ECLASS="git-r3"
else
DIST_AUTHOR=MIYAGAWA
DIST_VERSION=1.7044
KEYWORDS="amd64 ~ppc x86"
fi
inherit perl-module ${VCS_ECLASS}

DESCRIPTION="Get, unpack, build and install modules from CPAN"
SLOT="0"
IUSE="test"
RESTRICT="!test? ( test )"

GIT_DEPENDS="
dev-perl/Dist-Milla
dev-perl/Dist-Zilla
dev-perl/Dist-Zilla-Plugin-Run
dev-perl/Perl-Version
dev-perl/App-FatPacker
dev-perl/Module-Install
dev-perl/Module-Signature
dev-perl/Perl-Strip
"
BDEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
test? ( virtual/perl-Test-Simple )
"
[[ ${PV} == 9999 ]] && BDEPEND+=" ${GIT_DEPENDS}"

dzil_env_setup() {
# NextRelease noise :(
mkdir -p ~/.dzil/
local user="$(whoami)"
local host="$(hostname)"
printf '[%%User]\nname = %s\nemail = %s' "${user}" "${user}@${host}" >> ~/.dzil/config.ini
}
dzil_to_distdir() {
local dzil_root dest has_missing modname dzil_version
dzil_root="$1"
dest="$2"

cd "${dzil_root}" || die "Can't enter git workdir '${dzil_root}'";

dzil_env_setup

dzil_version="$(dzil version)" || die "Error invoking 'dzil version'"
einfo "Generating CPAN dist with ${dzil_version}"

has_missing=""

einfo "Checking dzil authordeps"
while IFS= read -d $'\n' -r modname; do
if [[ -z "${has_missing}" ]]; then
has_missing=1
eerror "'dzil authordeps' indicates missing build dependencies"
eerror "These will prevent building, please report a bug"
eerror "Missing:"
fi
eerror " ${modname}"
done < <( dzil authordeps --missing --versions )

[[ -z "${has_missing}" ]] || die "Satisfy all missing authordeps first"

einfo "Checking dzil build deps"
while IFS= read -d $'\n' -r modname; do
if [[ -z "${has_missing}" ]]; then
has_missing=1
ewarn "'dzil listdeps' indicates missing build dependencies"
ewarn "These may prevent building, please report a bug if they do"
ewarn "Missing:"
fi
ewarn " ${modname}"
done < <( dzil listdeps --missing --versions --author )

einfo "Generating release"
dzil build --notgz --in "${dest}" || die "Unable to build CPAN dist in '${dest}'"
}

src_unpack() {
if [[ ${PV} == 9999 ]]; then
"${VCS_ECLASS}"_src_unpack
mkdir -p "${S}" || die "Can't make ${S}"
else
default
fi
}

src_prepare() {
if [[ ${PV} == 9999 ]]; then
# Uses git sources in WORKDIR/rex-git
# to generate a CPAN-style tree in ${S}
# before letting perl-module.eclass do the rest
dzil_to_distdir "${EGIT_CHECKOUT_DIR}/App-cpanminus" "${S}"
fi
cd "${S}" || die "Can't enter build dir"
perl-module_src_prepare
}

0 comments on commit 9920419

Please sign in to comment.