App-cpan2arch

 view release on metacpan or  search on metacpan

t/lib/TestData.pm  view on Meta::CPAN

package TestData;

use v5.42.0;

use strict;
use warnings;

use Exporter qw< import >;
our @EXPORT_OK = qw< expected_data test_diff >;

use Test2::V1 -utf8, qw<
    fail
    note
    pass
>;
use Text::Diff 1.45;

# Perl dists intended to cover various C2A's PKGBUILD outputs.
my %DISTS = (
    'Alien-GMP' => {
        version => '1.16',
        note    => 'EU::MM; PP; Alien dist; dup. prereqs/pkgs; unusual license (deprecated)',
    },
    'App-cpm' => {
        version => 'v1.1.1',
        note    => q{M::B::T; PP; flagged OOD pkgs (AUR); pkgs with epoch + 'v' prefix (AUR)},
    },
    'Data-Dump-Streamer' => {
        version => '2.42',
        note    => 'M::B; XS; no perl in depends + perl in makedepends',
    },
    'DateTime-Format-RFC3339' => {
        version => 'v1.10.0',
        note    => 'EU::MM; PP; multi licenses; unusual license (unrestricted); install license',
    },
    'Devel-REPL' => {
        version => '1.003029',
        note    =>
          'EU::MM; PP; dup. prereqs/pkgs; optional_features; multi optional_features; single quote in optdepends',
    },
    'FCGI-Client' => {
        version => '0.09',
        note    => 'M::B::T; PP; flagged OOD pkgs (Official)',
    },
    'File-KDBX' => {
        version => '0.906',
        note    => 'EU::MM; PP; dup. prereqs/pkgs; optional_features; failed modules; missing pkgs',
    },
    'Gtk2-Notify' => {
        version => '0.05',
        note    => 'M::I; XS; no perl in depends; unusual license (open_source); odd pkgs (AUR)',
    },
    'Lingua-EN-Titlecase-Simple' => {
        version => '1.015',
        note    => 'EU::MM; PP; single quote in abstract; install license',
    },
    'Minilla' => {
        version => 'v3.1.29',
        note    => 'M::B::T; PP; dup. prereqs/pkgs; missing pkgs; odd pkgs',
    },
    'Padre' => {
        version => '1.02',
        note    => 'M::I; XS; dup. prereqs/pkgs; missing pkgs; flagged OOD pkgs (AUR); odd pkgs',
    },
    'Perl-Critic' => {
        version => '1.156',
        note    => 'M::B; PP; dup. prereqs/pkgs; odd pkgs',
    },
    'Pinto' => {
        version => '0.14',
        note    => 'EU::MM; PP; has many dependencies (80+)',
    },
    'Regexp-Common' => {
        version => '2024080801',
        note    => 'EU::MM; PP; dup. prereqs/pkgs; multi licenses; multi license files; install license; missing pkgs',
    },
    'Regexp-Debugger' => {
        version => '0.002007',
        note    => 'EU::MM; PP; no license',
    },
);

my %EXPECTED = (
    'Alien-GMP' => {
        meta => {
            abstract   => 'Alien package for the GNU Multiple Precision library.',
            author     => 'PLICEASE',
            checksum   => '090cd48ee535bf62f178895617a851783ae11aa4c6006a1fd4d84a432f113da5',
            dependency => [
                {
                    module       => 'Test::Spelling',
                    phase        => 'develop',

t/lib/TestData.pm  view on Meta::CPAN

            url=https://metacpan.org/dist/$_dist
            license=('Artistic-1.0-Perl OR GPL-1.0-or-later')
            depends=(
                'perl-b-utils'
                'perl-data-dumper'
                'perl-exporter'
                'perl-io'
                'perl-text-abbrev'
                'perl-text-balanced'
                'perl>=5.6.0'
            )
            makedepends=(
                'perl-base'
                'perl-carp'
                'perl-extutils-cbuilder'
                'perl-extutils-depends'
                'perl-module-build'
                'perl-test-simple'
            )
            optdepends=(
                'perl-algorithm-diff'
                'perl-cpanel-json-xs'
                'perl-io-compress'
                'perl-mime-base64'
                'perl-padwalker>=0.99'
            )
            options=('!emptydirs')
            source=("https://cpan.metacpan.org/authors/id/${_author::1}/${_author::2}/$_author/$_dist-$pkgver.tar.gz")
            sha256sums=('47f6e51fb45ce7be561e01481add0c2e1c0cd85df4b9e212f3923cd3064d1cad')

            build()
            {
                cd "$_dist-$pkgver"

                unset PERL_MB_OPT PERL5LIB PERL_LOCAL_LIB_ROOT
                export PERL_MM_USE_DEFAULT=1 MODULEBUILDRC=/dev/null

                /usr/bin/perl Build.PL --create_packlist=0
                ./Build
            }

            check()
            {
                cd "$_dist-$pkgver"

                unset PERL5LIB PERL_LOCAL_LIB_ROOT

                ./Build test
            }

            package()
            {
                cd "$_dist-$pkgver"

                unset PERL5LIB PERL_LOCAL_LIB_ROOT

                ./Build install --installdirs=vendor --destdir="$pkgdir"
            }
            END
    },
    'DateTime-Format-RFC3339' => {
        meta => {
            abstract   => 'Parse and format RFC3339 datetime strings',
            author     => 'IKEGAMI',
            checksum   => '3a5e64e7beaafd2c64a12109e3cc0fed3db3f893b0323b43b52964fc2c0c8496',
            dependency => [
                {
                    module       => 'ExtUtils::MakeMaker',
                    phase        => 'configure',
                    relationship => 'requires',
                    version      => '6.74',
                },
                {
                    module       => 'Test::More',
                    phase        => 'test',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Test::Pod',
                    phase        => 'test',
                    relationship => 'recommends',
                    version      => '1.22',
                },
                {
                    module       => 'Pod::Coverage',
                    phase        => 'develop',
                    relationship => 'requires',
                    version      => '0.18',
                },
                {
                    module       => 'Test::Pod::Coverage',
                    phase        => 'develop',
                    relationship => 'requires',
                    version      => '1.08',
                },
                {
                    module       => 'perl',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '5.01',
                },
                {
                    module       => 'warnings',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'DateTime',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'version',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'strict',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
            ],
            dist         => 'DateTime-Format-RFC3339',
            download_url =>
              'https://cpan.metacpan.org/authors/id/I/IK/IKEGAMI/DateTime-Format-RFC3339-v1.10.0.tar.gz',
            has_license        => 'LICENSE.txt',
            has_module_install => false,
            has_multi_licenses => false,
            has_xs             => false,
            license            => [
                'unknown',
                'unrestricted',
            ],
            name            => 'DateTime-Format-RFC3339-v1.10.0',
            spdx_expression => undef,
            version         => 'v1.10.0',
        },
        arch_prereqs => {
            checkdepends => ['perl-test-simple'],
            depends      => [
                'perl-datetime',
                'perl-version',
                'perl>=5.10.0',
            ],
            makedepends => ['perl-extutils-makemaker>=6.74'],
            optdepends  => ['perl-test-pod>=1.22'],

        },
        pkgbuild => <<~'END',
            # Maintainer: Your Name <email@domain.tld>

            _author=IKEGAMI
            _dist=DateTime-Format-RFC3339
            pkgname=perl-${_dist@L}
            pkgver=v1.10.0
            pkgrel=1
            pkgdesc='Parse and format RFC3339 datetime strings'
            arch=('any')
            url=https://metacpan.org/dist/$_dist
            # Multiple licenses listed in metadata; manual inspection is advised to
            # construct a proper SPDX expression.
            license=(
                'unknown'  # License not provided in metadata.
                           # Unknown SPDX ID; manual inspection is advised.
                'unknown'  # Not an OSI approved license, but not restricted.
                           # Unknown SPDX ID; manual inspection is advised.
            )
            depends=(
                'perl-datetime'
                'perl-version'
                'perl>=5.10.0'
            )
            makedepends=('perl-extutils-makemaker>=6.74')
            checkdepends=('perl-test-simple')
            optdepends=('perl-test-pod>=1.22')
            options=('!emptydirs')
            source=("https://cpan.metacpan.org/authors/id/${_author::1}/${_author::2}/$_author/$_dist-$pkgver.tar.gz")
            sha256sums=('3a5e64e7beaafd2c64a12109e3cc0fed3db3f893b0323b43b52964fc2c0c8496')

            build()
            {
                cd "$_dist-$pkgver"

                unset PERL_MM_OPT PERL5LIB PERL_LOCAL_LIB_ROOT
                export PERL_MM_USE_DEFAULT=1

                /usr/bin/perl Makefile.PL NO_PACKLIST=1 NO_PERLLOCAL=1
                make
            }

            check()
            {
                cd "$_dist-$pkgver"

                unset PERL5LIB PERL_LOCAL_LIB_ROOT

                make test
            }

            package()
            {
                cd "$_dist-$pkgver"

                unset PERL5LIB PERL_LOCAL_LIB_ROOT

                make install INSTALLDIRS=vendor DESTDIR="$pkgdir"
                install -Dm644 LICENSE.txt -t "$pkgdir/usr/share/licenses/$pkgname/"
            }
            END
    },
    'Devel-REPL' => {
        meta => {
            abstract   => 'A modern perl interactive shell',

t/lib/TestData.pm  view on Meta::CPAN

                    module       => 'Path::Class::File',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'perl',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '5.008',
                },
                {
                    module       => 'LWP::UserAgent',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Exporter',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Readonly',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Plack::MIME',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'MooseX::ClassAttribute',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0.27',
                },
                {
                    module       => 'HTTP::Request::Common',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Cwd::Guard',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Term::ANSIColor',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '2.02',
                },
                {
                    module       => 'DateTime',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Path::Class',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Plack::Runner',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'base',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Digest::SHA',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Authen::Simple::Passwd',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'File::Spec',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Try::Tiny',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'overload',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'DateTime::TimeZone::OffsetOnly',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Path::Class::Dir',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Proc::Fork',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'URI::Escape',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '3.31',
                },
                {
                    module       => 'Plack::Middleware::Auth::Basic',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'DBIx::Class',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0.08200',
                },
                {
                    module       => 'DateTime::TimeZone',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'File::Which',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Encode',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'App::Cmd::Command::help',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'HTTP::Date',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'IO::Interactive',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'MooseX::MarkAsMethods',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'JSON',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'strict',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'DateTime::TimeZone::Local::Unix',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'Scalar::Util',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'DBIx::Class::Core',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'MooseX::Types',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'URI::file',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'App::Cmd::Setup',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'CPAN::Checksums',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'MooseX::SetOnce',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'IO::Prompt',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'DBIx::Class::Schema',
                    phase        => 'runtime',
                    relationship => 'requires',
                    version      => '0',
                },
                {
                    module       => 'HTTP::Status',



( run in 0.584 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )