app-admin/rex: Update -9999 ebuild to current status.
authorKent Fredric <kentnl@gentoo.org>
Fri, 17 Apr 2020 14:07:42 +0000 (02:07 +1200)
committerKent Fredric <kentnl@gentoo.org>
Fri, 17 Apr 2020 14:12:05 +0000 (02:12 +1200)
- Migrate to EAPI7
- Switch to branch 'master'
- Update DESCRIPTION
- Add new dependencies
- Add patching to dzil live code that eliminates Plugin::Test::
  dependencies that are not likely to be useful for consumers building
  code on Gentoo for their own purposes, especially as these massively
  complicate the amount of work to satisfy dependencies.
- Add glue to populate portage ${HOME} to satisfy NextVersions' need to
  have [%User] configured without erroring.

Some of these changes are borrowed from FErki's PR to bump to 1.9x,
but the changes are done in-band for clarity, and the dependency logic
is re-evaluated whosale from the start, to eliminate dependencies that
aren't needed.

Bug: https://bugs.gentoo.org/705190
Bug: https://github.com/gentoo/gentoo/pull/14313
Package-Manager: Portage-2.3.97, Repoman-2.3.22
Signed-off-by: Kent Fredric <kentnl@gentoo.org>
app-admin/rex/rex-9999.ebuild

index 4eedb99641f84ebc04fe25c2a5fd1d0d9a30e8a4..26385e391279a1c349ad28aa218a0b1b32c7d2e2 100644 (file)
@@ -1,27 +1,26 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
 if [[ ${PV} == 9999 ]]; then
        GITHUB_USER=RexOps
        GITHUB_REPO=Rex
        EGIT_REPO_URI="https://github.com/${GITHUB_USER}/${GITHUB_REPO}.git"
-       EGIT_BRANCH="development-1.x"
+       EGIT_BRANCH="master"
        EGIT_CHECKOUT_DIR="${WORKDIR}/${PN}-git"
        VCS_ECLASS="git-r3"
 else
        # This is intentional to stop perl-module.eclass doing magic things when it
        # shouldn't. Like making ${S} contain "Rex" when the git clone has "rex"
        # Also prevents perl-module.eclass provisioning SRC_URI
-       DIST_AUTHOR=JFRIED
+       DIST_AUTHOR=FERKI
        DIST_NAME=Rex
        KEYWORDS="~amd64 ~x86"
 fi
-
 inherit perl-module ${VCS_ECLASS}
 
-DESCRIPTION="(R)?ex is a small script to ease the execution of remote commands"
+DESCRIPTION="(R)?ex, the friendly automation framework"
 
 SLOT="0"
 IUSE="test"
@@ -29,60 +28,69 @@ RESTRICT="!test? ( test )"
 
 DZIL_DEPENDS="
        dev-perl/Dist-Zilla
+       dev-perl/Dist-Zilla-Plugin-CheckExtraTests
+       dev-perl/Dist-Zilla-Plugin-ContributorsFile
+       dev-perl/Dist-Zilla-Plugin-Git-Contributors
        dev-perl/Dist-Zilla-Plugin-MakeMaker-Awesome
+       dev-perl/Dist-Zilla-Plugin-Meta-Contributors
        dev-perl/Dist-Zilla-Plugin-MetaProvides-Package
+       dev-perl/Dist-Zilla-Plugin-NextVersion-Semantic
        dev-perl/Dist-Zilla-Plugin-OSPrereqs
        dev-perl/Dist-Zilla-Plugin-OurPkgVersion
-       dev-perl/Dist-Zilla-Plugin-Test-MinimumVersion
-       dev-perl/Dist-Zilla-Plugin-Test-Perl-Critic
+       dev-perl/Dist-Zilla-Plugin-Run
+       dev-perl/Software-License
 "
-
 RDEPEND="
+       virtual/perl-Carp
+       virtual/perl-Data-Dumper
        dev-perl/Data-Validate-IP
        dev-perl/DBI
        dev-perl/Devel-Caller
        dev-perl/Digest-HMAC
-       dev-perl/Digest-SHA1
+       virtual/perl-Digest-MD5
        dev-perl/Expect
+       virtual/perl-Exporter
+       virtual/perl-File-Spec
+       dev-perl/HTTP-Message
        dev-perl/Hash-Merge
+       virtual/perl-IO
        dev-perl/IO-String
        dev-perl/IO-Tty
        dev-perl/IPC-Shareable
-       dev-perl/JSON-XS
+       dev-perl/JSON-MaybeXS
        dev-perl/List-MoreUtils
+       virtual/perl-MIME-Base64
        dev-perl/Net-OpenSSH
        dev-perl/Net-SFTP-Foreign
+       virtual/perl-Scalar-List-Utils
        dev-perl/Parallel-ForkManager
        dev-perl/Sort-Naturally
        dev-perl/String-Escape
+       virtual/perl-Storable
        dev-perl/TermReadKey
-       dev-perl/Test-Deep
+       virtual/perl-Test-Simple
        dev-perl/Text-Glob
+       virtual/perl-Text-Tabs+Wrap
+       virtual/perl-Time-HiRes
        dev-perl/URI
        dev-perl/XML-LibXML
        dev-perl/XML-Simple
        dev-perl/libwww-perl
        dev-perl/YAML
-       virtual/perl-Carp
-       virtual/perl-Data-Dumper
-       virtual/perl-Digest-MD5
-       virtual/perl-Exporter
-       virtual/perl-File-Spec
-       virtual/perl-MIME-Base64
-       virtual/perl-Scalar-List-Utils
-       virtual/perl-Storable
-       virtual/perl-Time-HiRes
+       virtual/perl-version
 "
 
-DEPEND="
+BDEPEND="
        ${RDEPEND}
+       >=virtual/perl-ExtUtils-MakeMaker-7.110.100
        test? (
-               dev-perl/Test-UseAllModules
                virtual/perl-File-Temp
+               dev-perl/Test-Deep
+               >=dev-perl/Test-UseAllModules-0.150.0
        )
 "
 
-[[ ${PV} == 9999 ]] && DEPEND+=" ${DZIL_DEPENDS}"
+[[ ${PV} == 9999 ]] && BDEPEND+=" ${DZIL_DEPENDS}"
 
 src_unpack() {
        if [[ $PV == 9999 ]]; then
@@ -93,6 +101,35 @@ src_unpack() {
        fi
 }
 
+dzil_src_prep() {
+       einfo "Patching dist.ini"
+
+       # This block of sed invocations removes all plugins that aren't
+       # useful for users to have on Gentoo, because all of them are
+       # conditional and subjective style checks, which don't indicate
+       # a real issue for users, and paying the price of their dependencies is undesired.
+
+       # The {N;d} trick adds the [n]ext line after the match to the pattern-space
+       # so that the final [d]elete deletes the next line too. Can be expanded for each
+       # line, ie: {N;N;N;d} deletes 3 lines after the match as well as the match.
+       sed -e '/^\[Test::Kwalitee\]/d' \
+               -e '/^\[Test::Perl::Critic\]/d' \
+               -e '/^\[PodSyntaxTests\]/d' \
+               -e '/^Test::Kwalitee =/d' \
+               -e '/^Test::PerlTidy =/d' \
+               -e '/^Test::Pod =/d' \
+               -e '/^\[Test::CPAN::Changes\]/{N;d}' \
+               -e '/^\[Test::MinimumVersion\]/{N;d}' \
+               -i dist.ini || die "Can't patch dist.ini"
+}
+dzil_env_setup() {
+       # NextVersion 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"
@@ -100,6 +137,9 @@ dzil_to_distdir() {
 
        cd "${dzil_root}" || die "Can't enter git workdir '${dzil_root}'";
 
+       dzil_src_prep
+       dzil_env_setup
+
        dzil_version="$(dzil version)" || die "Error invoking 'dzil version'"
        einfo "Generating CPAN dist with ${dzil_version}"