diff options
author | Kent Fredric <kentnl@gentoo.org> | 2020-05-04 02:46:42 +1200 |
---|---|---|
committer | Kent Fredric <kentnl@gentoo.org> | 2020-05-04 02:49:40 +1200 |
commit | 9920419c734ebd89a9522abbe7d2e8982fad69e5 (patch) | |
tree | e2a69adf5a658fae872709915e6181268ca6a15a /dev-perl/App-cpanminus/App-cpanminus-9999.ebuild | |
parent | dev-perl/Perl-Strip: Add w/v=1.100.0 (diff) | |
download | gentoo-9920419c734ebd89a9522abbe7d2e8982fad69e5.tar.gz gentoo-9920419c734ebd89a9522abbe7d2e8982fad69e5.tar.bz2 gentoo-9920419c734ebd89a9522abbe7d2e8982fad69e5.zip |
dev-perl/App-cpanminus: Add -9999 version
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 <kentnl@gentoo.org>
Diffstat (limited to 'dev-perl/App-cpanminus/App-cpanminus-9999.ebuild')
-rw-r--r-- | dev-perl/App-cpanminus/App-cpanminus-9999.ebuild | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/dev-perl/App-cpanminus/App-cpanminus-9999.ebuild b/dev-perl/App-cpanminus/App-cpanminus-9999.ebuild new file mode 100644 index 000000000000..5c7c7bda4a07 --- /dev/null +++ b/dev-perl/App-cpanminus/App-cpanminus-9999.ebuild @@ -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 +} |