Gentoo Archives: gentoo-commits

From: Kent Fredric <kentfredric@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/perl-overlay:master commit in: scripts/, scripts/lib/
Date: Wed, 01 May 2013 22:23:48
Message-Id: 1367339543.97a9f54ae24685b93b209ad1878c309436de5847.kent@gentoo
1 commit: 97a9f54ae24685b93b209ad1878c309436de5847
2 Author: Kent Fredric <kentfredric <AT> gmail <DOT> com>
3 AuthorDate: Tue Apr 30 16:32:23 2013 +0000
4 Commit: Kent Fredric <kentfredric <AT> gmail <DOT> com>
5 CommitDate: Tue Apr 30 16:32:23 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=97a9f54a
7
8 [scripts] deptools.pm : add ExtUtils-Depends to exception list
9
10 ---
11 scripts/gen_metadata.pl | 79 ++++++++++++++++++++++++++++++++++++
12 scripts/lib/deptools.pm | 59 ++++++++++++++-------------
13 scripts/virtualmap.pl | 102 +++++++++++++++++++++++++++++++++++++++++++++++
14 3 files changed, 211 insertions(+), 29 deletions(-)
15
16 diff --git a/scripts/gen_metadata.pl b/scripts/gen_metadata.pl
17 new file mode 100644
18 index 0000000..ba31fd8
19 --- /dev/null
20 +++ b/scripts/gen_metadata.pl
21 @@ -0,0 +1,79 @@
22 +use 5.12.2;
23 +use strict;
24 +use warnings;
25 +
26 +
27 +use FindBin;
28 +use lib "$FindBin::Bin/lib";
29 +use env::gentoo::perl_experimental;
30 +use optparse;
31 +use utf8;
32 +use XML::Smart;
33 +
34 +my $env = env::gentoo::perl_experimental->new();
35 +my $opts = optparse->new(
36 + argv => \@ARGV,
37 + help => sub { print <DATA>; return }
38 +);
39 +
40 +my $root = $env->root;
41 +use Path::Class::Dir;
42 +
43 +my $cwd = Path::Class::Dir->new('.')->absolute;
44 +
45 +my $package_dir = $cwd;
46 +
47 +if( $opts->has_long_opt('package-dir') ) {
48 + $package_dir = Path::Class::Dir->new($opts->long_opt('package-dir'))->absolute;
49 +}
50 +if( not scalar grep { not $_->is_dir and $_->basename =~ /\.ebuild$/ } $package_dir->children ) {
51 + die "Sorry, there are no .ebuild files in this directory, not going to create a metadata.xml file here!";
52 +}
53 +
54 +if( $opts->has_long_opt('new') ) {
55 + say "Generating a new metdata.xml";
56 + if ( -e $package_dir->file('metadata.xml')->stat ){
57 + # die "Error: metadata.xml already exists here";
58 + }
59 + my $herd = 'perl';
60 + my $maintainer_name;
61 + my $maintainer_email;
62 + my $cpan_id;
63 +
64 + if( $opts->has_long_opt('herd') ) {
65 + $herd = $opts->long_opt('herd');
66 + }
67 + if( $opts->has_long_opt('maintainer-name') ){
68 + $maintainer_name = $opts->long_opt('maintainer-name');
69 + }
70 + if( $opts->has_long_opt('maintainer-email') ){
71 + $maintainer_email = $opts->long_opt('maintainer-email');
72 + }
73 + if( $opts->has_long_opt('cpan-id') ) {
74 + $cpan_id = $opts->long_opt('cpan-id');
75 + }
76 + my $xml = XML::Smart->new('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"><pkgmetadata></pkgmetadata>');
77 + $xml->{pkgmetadata}->{herd}->[0] = $herd;
78 + # $xml->{pkgmetadata}->{herd}->set_node(1);
79 + if ( defined $maintainer_name ) {
80 + $xml->{pkgmetadata}->{maintainer}->{name} = $maintainer_name;
81 + # $xml->{pkgmetadata}->{maintainer}->{name}->set_node(1);
82 + }
83 + if( defined $maintainer_email ) {
84 + $xml->{pkgmetadata}->{maintainer}->{email} = $maintainer_email;
85 + # $xml->{pkgmetadata}->{maintainer}->{email}->set_node(1);
86 + }
87 + if( defined $cpan_id ) {
88 + $xml->{pkgmetadata}->{upstream}->{'remote-id'}->content($cpan_id);
89 + $xml->{pkgmetadata}->{upstream}->{'remote-id'}->{type} = 'cpan';
90 + }
91 +
92 + $xml->apply_dtd('http://www.gentoo.org/dtd/metadata.dtd');
93 +
94 + print scalar $xml->data( nodtd => 1, meta => { 'script' => 'perl-experimental/scripts/gen_metadata.pl' } );
95 +}
96 +
97 +
98 +__DATA__
99 +
100 +__END__
101
102 diff --git a/scripts/lib/deptools.pm b/scripts/lib/deptools.pm
103 index 2618ae7..8bd5595 100644
104 --- a/scripts/lib/deptools.pm
105 +++ b/scripts/lib/deptools.pm
106 @@ -40,35 +40,36 @@ sub _vmap_perl_native {
107 # ::gentoo Exceptions
108 sub _vmap_perl_strange {
109 return (
110 - 'App-SVN-Bisect' => 'dev-util/App-SVN-Bisect',
111 - 'Autodia' => 'dev-utils/autodia',
112 - 'BioPerl' => 'sci-biology/bioperl',
113 - 'BioPerl-DB' => 'sci-biology/bioperl-db',
114 - 'BioPerl-Network' => 'sci-biology/bioperl-network',
115 - 'BioPerl-Run' => 'sci-biology/bioperl-run',
116 - 'CGI-Simple' => perl 'Cgi-Simple',
117 - 'Config-General' => perl 'config-general',
118 - 'Crypt-CBC' => perl 'crypt-cbc',
119 - 'Digest' => virtual 'digest-base',
120 - 'Date-Manip' => perl 'DateManip',
121 - 'GBrowse' => 'sci-biology/GBrowse',
122 - 'Glib' => perl 'glib-perl',
123 - 'I18N-LangTags' => virtual 'i18n-langtags',
124 - 'Image-ExifTool' => 'media-libs/exiftool',
125 - 'Locale-Maketext' => virtual 'locale-maketext',
126 - 'Net-Ping' => virtual 'net-ping',
127 - 'Net-Server' => perl 'net-server',
128 - 'Padre' => 'app-editors/padre',
129 - 'PathTools' => virtual 'File-Spec',
130 - 'Perl-Tidy' => perl 'perltidy',
131 - 'Pod-Parser' => virtual 'PodParser',
132 - 'SVK' => 'dev-vcs/svk',
133 - 'Set-Scalar' => perl 'set-scalar',
134 - 'Snapback2' => 'app-backup/snapback2',
135 - 'Text-Template' => perl 'text-template',
136 - 'XML-XSH2' => 'app-editors/XML-XSH2',
137 - 'YAML' => perl 'yaml',
138 - 'ack' => 'sys-apps/ack',
139 + 'App-SVN-Bisect' => 'dev-util/App-SVN-Bisect',
140 + 'Autodia' => 'dev-utils/autodia',
141 + 'BioPerl' => 'sci-biology/bioperl',
142 + 'BioPerl-DB' => 'sci-biology/bioperl-db',
143 + 'BioPerl-Network' => 'sci-biology/bioperl-network',
144 + 'BioPerl-Run' => 'sci-biology/bioperl-run',
145 + 'CGI-Simple' => perl 'Cgi-Simple',
146 + 'Config-General' => perl 'config-general',
147 + 'Crypt-CBC' => perl 'crypt-cbc',
148 + 'Date-Manip' => perl 'DateManip',
149 + 'Digest' => virtual 'digest-base',
150 + 'ExtUtils-Depends' => perl 'extutils-depends',
151 + 'GBrowse' => 'sci-biology/GBrowse',
152 + 'Glib' => perl 'glib-perl',
153 + 'I18N-LangTags' => virtual 'i18n-langtags',
154 + 'Image-ExifTool' => 'media-libs/exiftool',
155 + 'Locale-Maketext' => virtual 'locale-maketext',
156 + 'Net-Ping' => virtual 'net-ping',
157 + 'Net-Server' => perl 'net-server',
158 + 'Padre' => 'app-editors/padre',
159 + 'PathTools' => virtual 'File-Spec',
160 + 'Perl-Tidy' => perl 'perltidy',
161 + 'Pod-Parser' => virtual 'PodParser',
162 + 'SVK' => 'dev-vcs/svk',
163 + 'Set-Scalar' => perl 'set-scalar',
164 + 'Snapback2' => 'app-backup/snapback2',
165 + 'Text-Template' => perl 'text-template',
166 + 'XML-XSH2' => 'app-editors/XML-XSH2',
167 + 'YAML' => perl 'yaml',
168 + 'ack' => 'sys-apps/ack',
169 );
170 }
171
172
173 diff --git a/scripts/virtualmap.pl b/scripts/virtualmap.pl
174 new file mode 100644
175 index 0000000..2ace064
176 --- /dev/null
177 +++ b/scripts/virtualmap.pl
178 @@ -0,0 +1,102 @@
179 +
180 +{
181 +
182 + package VirtualRecord;
183 + use 5.16.0;
184 + use Moo;
185 +
186 + has virtual_name => ( is => rw =>, required => 1, );
187 + has virtual_corepackage => ( is => rw =>, required => 1, );
188 + has virtual_check_module => ( is => rw =>, required => 1, );
189 + has repo => ( is => rw =>, required => 1, );
190 +
191 +
192 +}
193 +{
194 + package VDB;
195 + use 5.16.0;
196 + use Quote::Sub;
197 + has items => ( is => rw => , default => quote_sub(q{ [] });
198 +
199 + sub add_item {
200 + my ( $self , @args ) = @_ ;
201 + my $rec = VirtualRecord->new(
202 + virtual_name => $args[0],
203 + virtual_corepackage => $args[1],
204 + virtual_check_moodule => $args[2],
205 + repo => $args[3];
206 + );
207 + push @{ $self->items }, $rec;
208 + }
209 + sub add_items {
210 + my ( $self, @args ) = @_;
211 + for my $rec ( @args ){
212 + $self->add_item( @{$rec} );
213 + }
214 + }
215 +}
216 +
217 +sub atom_expand {
218 + my $atom = shift;
219 + my $package = $atom =~ s/::/-/gr;
220 + my $virtual = $package =~ s/^/perl-/r;
221 + return ( $virtual, $package, $atom );
222 +}
223 +my $vdb = VDB->new();
224 +$vdb->add_items(
225 + ( map { [ atom_expand($_), 'perl-experimental' ] } qw(
226 + Archive::Extract
227 + B::Debug
228 + B::Lint
229 + constant
230 + CPAN
231 + CPANPLUS
232 + CPANPLUS::Dist::Build
233 + Devel::DProf
234 + Devel::PPPort
235 + Devel::SelfStubber
236 + Dumpvalue
237 + Exporter
238 + ExtUtils::MakeMaker
239 + File::Fetch
240 + Filter::Simple
241 + HTTP::Tiny
242 + if
243 + IPC::SysV
244 + Log::Message
245 + Log::Message::Simple
246 + Math::Complex
247 + Module::CoreList
248 + NEXT
249 + Object::Accessor
250 + Pod::LaTeX
251 + Pod::Perldoc
252 + Pod::Plainer
253 + SelfLoader
254 + Term::UI
255 + Unicode::Collate
256 + Unicode::Normalize
257 + )),
258 + [ 'perl-i18n-langtags' , 'i18n-langtags', 'I18N::LangTags' , 'perl-experimental']
259 +);
260 +$vdb->add_items(
261 + ( map { [ atom_expand($_), 'gentoo' ] } qw(
262 + Archive::Tar
263 + Attribute::Handlers
264 + AutoLoader
265 + CGI
266 + Class::ISA
267 + Compress::Raw::Bzip2
268 + Compress::Raw::Zlib
269 + CPAN::Meta
270 + CPAN::Meta::Requirements
271 + CPAN::Meta::YAML
272 + Data::Dumper
273 + DB_File
274 + )),
275 + [ 'perl-digest-base' , 'digest-base', 'Digest' , 'gentoo'],
276 + ( map { [ atom_expand($_), 'gentoo' ] } qw(
277 + )),
278 +
279 +);
280 +