On Friday 27 February 2009 20:05:01 Eric Wilhelm wrote:
> # from Shlomi Fish
>
> # on Friday 27 February 2009 06:42:
> > extradata_files =>
> > {
> > map { $_ => $_ } @extradata_files,
> > },
>
> map {$_ => "lib/XML-Grammar-Products-Syndication/data/$_"} ...
> ...
> $build->add_build_element('extradata');
>
> I think that would do everything you want.
>
The problem is that the files are now installed under a good location, but I
don't know how to tell ConfigData where they are.
I ended up with the following code in Build.PL:
{{{{{{{{{{{{{{{{{{
use strict;
use warnings;
use File::Spec;
use lib File::Spec->catdir(File::Spec->curdir(), "inc");
use Test::Run::Builder;
use File::Find;
sub data_inc
{
return "/usr/share/perl5/data/modules/XML-Grammar-Products-
Syndication/data";
}
my @extradata_files;
sub filter_files
{
my $filename = $File::Find::name;
if ((-f $filename) && ($filename =~ /\.(?:mod|xslt|dtd|ent|cat|jpg|
xcf\.bz2)$/))
{
push @extradata_files, $filename;
}
}
find({ wanted => \&filter_files, no_chdir => 1}, "extradata");
sub get_dest_extradata_file
{
my $fn = shift;
$fn =~ s{^extradata}{data};
return "lib/XML-Grammar-ProductsSyndication/$fn";
}
my $builder = Test::Run::Builder->new(
module_name => 'XML::Grammar::ProductsSyndication',
license => 'bsd',
dist_author => 'Shlomi Fish <[email protected]>',
dist_version_from => 'lib/XML/Grammar/ProductsSyndication.pm',
build_requires => {
'Test::More' => 0,
'Test::XML' => 0,
'XML::LibXML' => 0,
'XML::LibXSLT' => 0,
'Class::Accessor' => 0,
'XML::Amazon' => 0,
'LWP::UserAgent' => 0,
'Imager' => 0,
},
add_to_cleanup => [ 'XML::Grammar::ProductsSyndication-*' ],
create_makefile_pl => 'passthrough',
extradata_files =>
{
(map { $_ => get_dest_extradata_file($_) } @extradata_files)
},
);
$builder->add_build_element('extradata');
$builder->config_data(
'extradata_install_path' => [
File::Spec->catdir(
$builder->install_destination('extradata'),
qw(XML-Grammar-ProductsSyndication data),
)
]
);
$builder->create_build_script();
}}}}}}}}}}}}}}}}}}
However, I'm getting in
/home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML/Grammar/ProductsSy
ndication/ConfigData.pm , the following:
{{{{{{{{{
__DATA__
do{ my $x = [
{
'templates_install_path' => [
'/usr/share/perl5/data/modules/XML-Grammar-Products-Syndication/data'
],
'extradata_install_path' => [
'/home/shlomi/apps/perl/modules/home/shlomi/apps/perl/modules/XML-Grammar-
ProductsSyndication/data'
]
},
{},
{}
];
$x; }
}}}}}}}}}
See the double prefix and the completely-off install path.
./Build install reports:
{{{{{{{{{{{{{{{
Skipping
/home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML/Grammar/ProductsSyndication.pm
(unchanged)
Skipping
/home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML/Grammar/ProductsSyndication/ConfigData.pm
(unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml.cat (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-frames-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-legacy-redecl-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/na-cover.jpg (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-image-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-symbol.ent (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-text-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-hypertext-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-qname-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-form-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-bdo-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-base-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-blkpres-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-inlpres-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-arch-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-datatypes-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/na-cover.xcf.bz2 (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-lat1.ent (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-struct-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-csismap-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-inlphras-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-pres-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-notations-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-style-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-link-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-list-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-special.ent (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-edit-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-events-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/myml-model-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-iframe-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-attribs-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-script-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-charent-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-legacy-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-object-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/myml-qname-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-blkstruct-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-blkphras-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-meta-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-table-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-inlstruct-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/product-syndication.xslt (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-param-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/myml-elements-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/xhtml-applet-1.mod (unchanged)
Skipping /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/XML-
Grammar-ProductsSyndication/data/product-syndication.dtd (unchanged)
Skipping
/home/shlomi/apps/perl/modules/local/share/man/man3/XML::Grammar::ProductsSyndication::ConfigData.3pm
(unchanged)
Skipping
/home/shlomi/apps/perl/modules/local/share/man/man3/XML::Grammar::ProductsSyndication.3pm
(unchanged)
Writing /home/shlomi/apps/perl/modules/lib/perl5/site_perl/5.10.0/i386-linux-
thread-multi/auto/XML/Grammar/ProductsSyndication/.packlist
}}}}}}}}}}}}}}}
How can I determine the installation path of the extradata build element?
You can find the code here: http://xrl.us/beh5x3
This issue affects the installation-capability of all my XML::Grammar::
modules, and it blocks me in a project, so I'd appreciate any leads.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
My Aphorisms - http://www.shlomifish.org/humour.html
<mauke> I'm not interested in what you're doing; what are you trying to
achieve?
<PerlJam> mauke: I'm trying to achieve world peace and this regex is
the last thing standing in my way! ;)