public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Kent Fredric" <kentnl@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-perl/App-cpanminus/
Date: Sun,  3 May 2020 14:51:38 +0000 (UTC)	[thread overview]
Message-ID: <1588517380.9920419c734ebd89a9522abbe7d2e8982fad69e5.kentnl@gentoo> (raw)

commit:     9920419c734ebd89a9522abbe7d2e8982fad69e5
Author:     Kent Fredric <kentnl <AT> gentoo <DOT> org>
AuthorDate: Sun May  3 14:46:42 2020 +0000
Commit:     Kent Fredric <kentnl <AT> gentoo <DOT> org>
CommitDate: Sun May  3 14:49:40 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9920419c

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 <AT> gentoo.org>

 dev-perl/App-cpanminus/App-cpanminus-9999.ebuild | 108 +++++++++++++++++++++++
 1 file changed, 108 insertions(+)

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 00000000000..5c7c7bda4a0
--- /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
+}


             reply	other threads:[~2020-05-03 14:51 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-03 14:51 Kent Fredric [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-05-02  5:44 [gentoo-commits] repo/gentoo:master commit in: dev-perl/App-cpanminus/ Sam James
2023-12-01 19:58 Arthur Zamarin
2023-09-19  5:38 Arthur Zamarin
2023-09-19  0:45 Sam James
2023-08-14  7:55 Sam James
2023-07-24 13:39 Arthur Zamarin
2023-06-22  4:48 Sam James
2021-10-08 22:44 Andreas K. Hüttel
2020-12-17  9:02 Sam James
2020-12-04 18:31 Sergei Trofimovich
2019-12-25 20:32 Sergei Trofimovich
2018-07-29  2:42 Kent Fredric
2018-04-24  4:20 Kent Fredric
2018-04-03 11:52 Jason Zaman
2017-04-04 11:57 Kent Fredric
2016-04-18 20:50 Andreas Hüttel
2015-08-26 10:38 Patrice Clement
2015-08-26 10:38 Patrice Clement

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1588517380.9920419c734ebd89a9522abbe7d2e8982fad69e5.kentnl@gentoo \
    --to=kentnl@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox