Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^4: Module packlists vs. vendors

by mbethke (Hermit)
on Sep 08, 2012 at 04:30 UTC ( #992424=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Module packlists vs. vendors
in thread Module packlists vs. vendors

Thanks, that's a neat way to test a minimal setup! I always just traced the build process for some popular CPAN modules. Something weird is going on, I do the exact same thing and get no packlists, both on Gentoo and on Ubuntu:

$ mkdir tempjunk $ cd tempjunk $ h2xs -AX Foo Defaulting to backwards compatibility with perl 5.14.2 If you intend this module to be compatible with earlier perl versions, + please specify a minimum perl version with the -b option. Writing Foo/lib/Foo.pm Writing Foo/Makefile.PL Writing Foo/README Writing Foo/t/Foo.t Writing Foo/Changes Writing Foo/MANIFEST $ cd Foo $ perl Makefile.PL INSTALL_BASE=.. Checking if your kit is complete... Looks good Writing Makefile for Foo Writing MYMETA.yml and MYMETA.json $ make install_vendor cp lib/Foo.pm blib/lib/Foo.pm Manifying blib/man3/Foo.3pm Installing ../lib/perl5/Foo.pm Installing ../man/man3/Foo.3pm $ tree -f -a .. .. |-- ../Foo | |-- ../Foo/blib | | |-- ../Foo/blib/arch | | | |-- ../Foo/blib/arch/auto | | | | `-- ../Foo/blib/arch/auto/Foo | | | | `-- ../Foo/blib/arch/auto/Foo/.exists | | | `-- ../Foo/blib/arch/.exists | | |-- ../Foo/blib/bin | | | `-- ../Foo/blib/bin/.exists | | |-- ../Foo/blib/lib | | | |-- ../Foo/blib/lib/auto | | | | `-- ../Foo/blib/lib/auto/Foo | | | | `-- ../Foo/blib/lib/auto/Foo/.exists | | | |-- ../Foo/blib/lib/.exists | | | `-- ../Foo/blib/lib/Foo.pm | | |-- ../Foo/blib/man1 | | | `-- ../Foo/blib/man1/.exists | | |-- ../Foo/blib/man3 | | | |-- ../Foo/blib/man3/.exists | | | `-- ../Foo/blib/man3/Foo.3pm | | `-- ../Foo/blib/script | | `-- ../Foo/blib/script/.exists | |-- ../Foo/Changes | |-- ../Foo/lib | | `-- ../Foo/lib/Foo.pm | |-- ../Foo/Makefile | |-- ../Foo/Makefile.PL | |-- ../Foo/MANIFEST | |-- ../Foo/MYMETA.json | |-- ../Foo/MYMETA.yml | |-- ../Foo/pm_to_blib | |-- ../Foo/README | `-- ../Foo/t | `-- ../Foo/t/Foo.t |-- ../lib | `-- ../lib/perl5 | `-- ../lib/perl5/Foo.pm `-- ../man `-- ../man/man3 `-- ../man/man3/Foo.3pm 18 directories, 22 files

Whereas install_site does the right thing:

$ make install_site Appending installation info to ../lib/perl5/x86_64-linux-thread-multi/ +perllocal.pod $ find .. -name .packlist ../lib/perl5/x86_64-linux-thread-multi/auto/Foo/.packlist

Which seems logical when I compare the respective sections in the Makefile:

pure_site_install :: all $(NOECHO) $(MOD_INSTALL) \ read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \ write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist + \ $(INST_LIB) $(DESTINSTALLSITELIB) \ $(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \ $(INST_BIN) $(DESTINSTALLSITEBIN) \ $(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \ $(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \ $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ $(PERL_ARCHLIB)/auto/$(FULLEXT) pure_vendor_install :: all $(NOECHO) $(MOD_INSTALL) \ $(INST_LIB) $(DESTINSTALLVENDORLIB) \ $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ $(INST_BIN) $(DESTINSTALLVENDORBIN) \ $(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \ $(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \ $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)

How do these parts look in your Makefile? Mine seem to come almost verbatim (modulo some path concatenation rituals) from MM_Unix.pm and as far as I can see, MM_Win32 just inherits these.


Comment on Re^4: Module packlists vs. vendors
Select or Download Code
Re^5: Module packlists vs. vendors
by Anonymous Monk on Sep 08, 2012 at 06:18 UTC

    Something weird is going on, I do the exact same thing and get no packlists, both on Gentoo and on Ubuntu:

    Upgrade, See https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/58ec782413fdfb03f30c0de39131e7eb228f8bc9

    How do these parts look in your Makefile?

    Pretty much as you'd expect
    pure_site_install :: all $(NOECHO) $(MOD_INSTALL) \ read $(SITEARCHEXP)\auto\$(FULLEXT)\.packlist \ write $(DESTINSTALLSITEARCH)\auto\$(FULLEXT)\.packlist \ $(INST_LIB) $(DESTINSTALLSITELIB) \ $(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \ $(INST_BIN) $(DESTINSTALLSITEBIN) \ $(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \ $(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \ $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ $(PERL_ARCHLIB)\auto\$(FULLEXT)
    pure_vendor_install :: all $(NOECHO) $(MOD_INSTALL) \ read $(VENDORARCHEXP)\auto\$(FULLEXT)\.packlist \ write $(DESTINSTALLVENDORARCH)\auto\$(FULLEXT)\.packlist \ $(INST_LIB) $(DESTINSTALLVENDORLIB) \ $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ $(INST_BIN) $(DESTINSTALLVENDORBIN) \ $(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \ $(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \ $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)

        which means someone edited your MM_Unix.pm to remove that

        Baaah, nasty! But thanks very much, you're absolutely right: I found the patch and as it appears, Gentoo (of all systems!) modifies ExtUtils::MM the same bullshit way as all the Debians :(

        Time to complain on some mailing list ...

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://992424]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (14)
As of 2015-07-02 08:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (31 votes), past polls