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 <shlo...@cpan.org>',
    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! ;)

Reply via email to