Front page | perl.perl5.porters |
Postings from March 2013
Re: [perl #117289] ExtUtils-ParseXS installs xsubpp twice
Thread Next
From:
Petr Pisar
Date:
March 25, 2013 19:31
Subject:
Re: [perl #117289] ExtUtils-ParseXS installs xsubpp twice
Message ID:
20130325154531.GD1782@dhcp-0-146.brq.redhat.com
On Sat, Mar 23, 2013 at 11:57:12AM -0700, James E Keenan via RT wrote:
> On Fri Mar 22 05:19:42 2013, ppisar wrote:
> >
> > ExtUtils-ParseXS-3.18 installs xsubpp script twice:
> >
> > $ make pure_install DESTDIR=/tmp/ExtUtils-ParseXS-3.18-dest
> > [...]
> > $ find /tmp/ExtUtils-ParseXS-3.18-dest -name xsubpp
> > /tmp/ExtUtils-ParseXS-3.18-dest/usr/local/share/perl5/ExtUtils/xsubpp
> > /tmp/ExtUtils-ParseXS-3.18-dest/usr/local/bin/xsubpp
> >
[...]
> > Please stop installing xsubpp into @INC path.
> >
>
> I don't see what the problem is here.
>
The problem here is the same file gets installed into /usr/{,local/}bin and
into @INC. What's good for to have the same file twice in your system?
> In the first place, when you install/upgrade ExtUtils::ParseXS from
> CPAN, it installs xsubpp into /usr/local/bin and its man page into
> /usr/local/share/man/man1 -- period; nothing else gets installed.
>
Not at all. I've just given a try:
root@fedora-20:/usr/local # cpan -i -f ExtUtils::ParseXS
Reading '/root/.cpan/Metadata'
Database was generated on Mon, 25 Mar 2013 14:41:04 GMT
Running install for module 'ExtUtils::ParseXS'
Running make for S/SM/SMUELLER/ExtUtils-ParseXS-3.18.tar.gz
[...]
Result: PASS
SMUELLER/ExtUtils-ParseXS-3.18.tar.gz
/usr/bin/make test -- OK
Running make install
Installing /usr/local/share/perl5/ExtUtils/Typemaps.pm
Installing /usr/local/share/perl5/ExtUtils/ParseXS.pod
Installing /usr/local/share/perl5/ExtUtils/xsubpp
Installing /usr/local/share/perl5/ExtUtils/ParseXS.pm
Installing /usr/local/share/perl5/ExtUtils/Typemaps/Type.pm
Installing /usr/local/share/perl5/ExtUtils/Typemaps/InputMap.pm
Installing /usr/local/share/perl5/ExtUtils/Typemaps/Cmd.pm
Installing /usr/local/share/perl5/ExtUtils/Typemaps/OutputMap.pm
Installing /usr/local/share/perl5/ExtUtils/ParseXS/Constants.pm
Installing /usr/local/share/perl5/ExtUtils/ParseXS/CountLines.pm
Installing /usr/local/share/perl5/ExtUtils/ParseXS/Utilities.pm
Installing /usr/local/share/man/man1/xsubpp.1
Installing /usr/local/share/man/man3/ExtUtils::ParseXS::Utilities.3pm
Installing /usr/local/share/man/man3/ExtUtils::ParseXS.3pm
Installing /usr/local/share/man/man3/ExtUtils::ParseXS::Constants.3pm
Installing /usr/local/share/man/man3/ExtUtils::Typemaps::Type.3pm
Installing /usr/local/share/man/man3/ExtUtils::Typemaps::OutputMap.3pm
Installing /usr/local/share/man/man3/ExtUtils::Typemaps::Cmd.3pm
Installing /usr/local/share/man/man3/ExtUtils::Typemaps.3pm
Installing /usr/local/share/man/man3/ExtUtils::Typemaps::InputMap.3pm
Installing /usr/local/bin/xsubpp
Appending installation info to /usr/lib64/perl5/perllocal.pod
SMUELLER/ExtUtils-ParseXS-3.18.tar.gz
/usr/bin/make install -- OK
> I have never had occasion to use 'make pure_install',
The same as make install minus installing some unneeded stuff.
>
> The array C<@INC> contains the list of places that the C<do EXPR>,
> C<require>, or C<use> constructs look for their library files.
>
And is xsubpp supposed to be "require"-d by other perl code? Then there is no
reason to install the file there.
> AFAIK, there is no requirement that the paths named in @INC contain
> *only* Perl library (.pm) files.
Thus it's reasonable to put the file there?
> /usr/local/lib/perl5/5.16.0/ExtUtils/, for example, contains .pm files,
> a .pod file, a MANIFEST.SKIP,
Yeah, such usefull MANIFEST.SKIP that will get overwitten by another package
installation? Maybe that's reason for make pure_install.
>a configuration file (typemap) as well as
> a read-only version of xsubpp.
>
Again, what is it good for?
> So, I don't see a bug here.
>
If I can be constructive, moving lib/ExtUtils/xsubpp to scripts/xsubpp and
removing 'EXE_FILES' => ['lib/ExtUtils/xsubpp'] from Makefile.PL should fix
this issue.
-- Petr
Thread Next