diff options
Diffstat (limited to 'app-admin/rex')
-rw-r--r-- | app-admin/rex/Manifest | 2 | ||||
-rw-r--r-- | app-admin/rex/rex-1.14.2.ebuild | 226 |
2 files changed, 228 insertions, 0 deletions
diff --git a/app-admin/rex/Manifest b/app-admin/rex/Manifest index d904d80e854a..d0f83a84d502 100644 --- a/app-admin/rex/Manifest +++ b/app-admin/rex/Manifest @@ -1,8 +1,10 @@ DIST Rex-1.13.3.tar.gz 349550 BLAKE2B c2ccc2144e56761d33ed2b5d790febd49863639d2e3bba8028b7937b43eb51e7e59e9e99cb1d67f247b2dff8ef91aa04776afd6277ad8a2370f35d71e0b528dd SHA512 beab22aef8ba620b6e74847698eab99977844d2e9632812a9ae0e1ee303cbe4e5a6489000bd5209d76e42e3bb4bb799a90408ed6fb14e034f68132a4d37766dc DIST Rex-1.13.4.tar.gz 351011 BLAKE2B ec046b88f4443b03c05efbabb40900085293c61dab0ee9818a8c4d05be3cc0a1c1f53738b72cc245aaa2dfbcb00541f0e1e31b0c20f2464e9fc6586ed10707ef SHA512 27b76f4b527b42ea0b06dc1de05254dbd6e2fa3bc9a8a708af7557789ef22aec374a5d0585bf3ec4ee878a5387d51b881cf95855dbd05149b7b23929de12027d DIST Rex-1.14.1.tar.gz 354512 BLAKE2B e82248fa58b10e92f2256c57b589e8db6fc61a03532eac00a28431f2527b4a7e5fdaebbf4a0bdbdfa5b775be95826fb26fa831b58ecf354d6758f5a26649dc32 SHA512 c3cb3e64fb443858a47fbf0afabc9e57ca0a7646447ea259c109a5385a57b4347664dde23575e529afa17881f400bd1735994793362aa101519747805153cb75 +DIST Rex-1.14.2.tar.gz 355848 BLAKE2B 282abc3a0f9acbb553c3ed1a8efa34298f43e02773461325678e014b7a2ede56399c6d5140ff69dc18dc685c2e5b1f453fa45784e59fe14940c6a638bd104879 SHA512 3ca16b2bc401fd07b7ad7ce403bdbb92fbd9123f58b7f63a20292cd165b4b220317b252f1409a7f90099103de36a9091f01adaf37ec1cacf5abaecd140f34d27 EBUILD rex-1.13.3.ebuild 6438 BLAKE2B eb30c79b80eb7dd169d011fd6c4df754e6016179ae4f6c02a86404764d4a6a3d1839515670b4f4f765294759af5ff9cad2a1f131fa3193f7dd03c49bbc644f33 SHA512 67c8042bf2f5dcb4bc739fe745bcce55f0f90127390fe60f2f43142dc84e07c23af99b16b487fe8f41e1b4afad4368b2532a1e65120249e431f48ca1e137afcf EBUILD rex-1.13.4.ebuild 6438 BLAKE2B eb30c79b80eb7dd169d011fd6c4df754e6016179ae4f6c02a86404764d4a6a3d1839515670b4f4f765294759af5ff9cad2a1f131fa3193f7dd03c49bbc644f33 SHA512 67c8042bf2f5dcb4bc739fe745bcce55f0f90127390fe60f2f43142dc84e07c23af99b16b487fe8f41e1b4afad4368b2532a1e65120249e431f48ca1e137afcf EBUILD rex-1.14.1.ebuild 6581 BLAKE2B f3f2a5147d2a1442a3f5e1132f389165d922f5c8184707b14dea42da4f778dc82cac27dfe336be896f7d8ed946c15ce973273e61583d79913ff2ee0248d3ec8b SHA512 622d15521937083446279af62df0d6b376b6f77fd1bf69b59a4eaf2b5d3561968b24aadb59d9400c074a7d2fd1b7e1510b0269f23f697659e2fdc60020af57b2 +EBUILD rex-1.14.2.ebuild 6595 BLAKE2B 29c1fc4cf973d7de484727ceafa767f41452ae55a329703888f41af53194cdf4a9d90a0eaa2ea371c86da7081b5053feba48e8d83d59a58b72538888846c16f2 SHA512 70737daefaf117b6c56ae48a07af671e693a7b1dbcc5ae928dc3800f07bfb975fa2a219bbac9b58705c2742d1928cb220f0017648ec20e4d4a49e75ff7c31f83 EBUILD rex-9999.ebuild 6581 BLAKE2B f3f2a5147d2a1442a3f5e1132f389165d922f5c8184707b14dea42da4f778dc82cac27dfe336be896f7d8ed946c15ce973273e61583d79913ff2ee0248d3ec8b SHA512 622d15521937083446279af62df0d6b376b6f77fd1bf69b59a4eaf2b5d3561968b24aadb59d9400c074a7d2fd1b7e1510b0269f23f697659e2fdc60020af57b2 MISC metadata.xml 23997 BLAKE2B 1c0d4d5488171646c777d9d1099ae20abecde3d53fcab1a172a69f866e409c8b9c7db32e7944d48b3ad6a9fdfd4e083907bb891b084c6308585887ceccfeeb3b SHA512 e19019443dd2da2f30dd9a0bde7b3e242c1601bd776faf8312d0973afb05294bce6f22bb7a5657085c6b059f157ad9cd517b2e325b8de9a04db64159f63d698b diff --git a/app-admin/rex/rex-1.14.2.ebuild b/app-admin/rex/rex-1.14.2.ebuild new file mode 100644 index 000000000000..51c374850d9c --- /dev/null +++ b/app-admin/rex/rex-1.14.2.ebuild @@ -0,0 +1,226 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 9999 ]]; then + GITHUB_USER=RexOps + GITHUB_REPO=Rex + EGIT_REPO_URI="https://github.com/${GITHUB_USER}/${GITHUB_REPO}.git" + 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=FERKI + DIST_NAME=Rex + KEYWORDS="~amd64 ~x86" +fi +inherit bash-completion-r1 perl-module ${VCS_ECLASS} + +DESCRIPTION="(R)?ex, the friendly automation framework" +HOMEPAGE="https://metacpan.org/dist/Rex https://www.rexify.org" + +SLOT="0" +IUSE="minimal test" +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 + 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-Run + dev-perl/Software-License +" +RDEPEND=" + !minimal? ( + dev-perl/DBI + dev-perl/Expect + dev-perl/IPC-Shareable + dev-perl/XML-LibXML + ) + virtual/perl-Carp + virtual/perl-Data-Dumper + dev-perl/Data-Validate-IP + dev-perl/Devel-Caller + dev-perl/Digest-HMAC + virtual/perl-Digest-MD5 + 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/JSON-MaybeXS + virtual/perl-MIME-Base64 + dev-perl/Net-OpenSSH + dev-perl/Net-SFTP-Foreign + >=virtual/perl-Scalar-List-Utils-1.450.0 + dev-perl/Parallel-ForkManager + dev-perl/Sort-Naturally + dev-perl/String-Escape + virtual/perl-Storable + dev-perl/TermReadKey + virtual/perl-Test-Simple + dev-perl/Text-Glob + virtual/perl-Text-Tabs+Wrap + virtual/perl-Time-HiRes + dev-perl/URI + dev-perl/XML-Simple + dev-perl/libwww-perl + dev-perl/YAML + virtual/perl-version + virtual/perl-Term-ANSIColor +" +# NB: would add test? !minimal? Test-mysqld, but I can't get that to work +BDEPEND=" + ${RDEPEND} + >=virtual/perl-CPAN-Meta-Requirements-2.120.620 + >=virtual/perl-ExtUtils-MakeMaker-7.110.100 + >=dev-perl/File-ShareDir-Install-0.60.0 + virtual/perl-Module-Metadata + test? ( + !minimal? ( + dev-perl/File-LibMagic + ) + virtual/perl-File-Temp + dev-perl/Sub-Override + dev-perl/Test-Deep + dev-perl/Test-Exception + dev-perl/Test-Output + dev-perl/Test-UseAllModules + dev-perl/Test-Warnings + dev-vcs/git + virtual/perl-autodie + virtual/perl-Module-Load-Conditional + ) +" + +[[ ${PV} == 9999 ]] && BDEPEND+=" ${DZIL_DEPENDS}" + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + "${VCS_ECLASS}"_src_unpack + mkdir -p "${S}" || die "Can't make ${S}" + else + default + 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 '/^\[PodSyntaxTests\]/d' \ + -e '/^Perl::Critic::Freenode =/d' \ + -e '/^Perl::Critic::TooMuchCode =/d' \ + -e '/^Test::Kwalitee =/d' \ + -e '/^Test::PerlTidy =/d' \ + -e '/^Test::Pod =/d' \ + -e '/^\[Test::CPAN::Changes\]/{N;d}' \ + -e '/^\[OptionalFeature/,/^$/d' \ + -e '/^\[Test::MinimumVersion\]/{N;d}' \ + -i dist.ini || die "Can't patch dist.ini" + + # Removals/additions have to be tracked by git or dzil build fails + # Spurious warning during src_prepare + git rm -f xt/author/critic-progressive.t || die "Can't rm author/critic-progressive.t" + # Spurious warning during src_prepare + git rm -f xt/author/perltidy.t || die "Can't rm author/perltidy.t" +} +dzil_env_setup() { + # NextRelease noise :( + mkdir -p ~/.dzil/ || die "mkdir -p ~/.dzil/ failed" + 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}'"; + + S="${dzil_root}" dzil_src_prep + 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_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}" "${S}" + fi + cd "${S}" || die "Can't enter build dir" + + # If you DIY installed Test::mysqld, but didn't patch + # it to handle the fact on Gentoo, mysql_install_db is NOT in PATH + # tests fail. So this test is patched out if mysql_install_db is not in PATH + if perl_has_module "Test::mysqld" && ! type -P mysql_install_db >/dev/null; then + perl_rm_files "t/db.t" + fi + perl-module_src_prepare +} + +src_install() { + newbashcomp "share/${PN}-tab-completion.bash" "${PN}" + + insinto /usr/share/zsh/site-functions + newins "share/${PN}-tab-completion.zsh" "_${PN}" + + perl-module_src_install +} |