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 |
+ |