Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: Module packlists vs. vendors

by Anonymous Monk
on Sep 07, 2012 at 21:27 UTC ( #992380=note: print w/ replies, xml ) Need Help??


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

If it was just about not removing the files, that'd be easy, I solved that part in 15 minutes on Gentoo. Alas, the files are not even installed by a standard Makefile as produced by ExtUtils:MM when using the vendor_install target, so it doesn't seem only Debian's problem but intended behavior---with ExtUtils::MM being a core module I presume even some sort of official Perl policy. I'd be interested in why this is so and if I can/should circumvent it.

That is really hard to read/disgest.

I think you're wrong, I used make install_vendor and I got ../lib/perl5/MSWin32-x86-multi-thread/auto/Foo/.packlist

Sure, I used install_base , and my config is

$ perl -V:installvendor.* installvendorarch=''; installvendorbin=''; installvendorhtml1dir=''; installvendorhtml3dir=''; installvendorlib=''; installvendorman1dir=''; installvendorman3dir=''; installvendorscript='';

But that makes no difference

$ md tempjunk $ cd tempjunk $ h2xs -AX Foo Defaulting to backwards compatibility with perl 5.14.1 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 $ dmake install_vendor cp lib/Foo.pm blib\lib\Foo.pm Installing ..\lib\perl5\Foo.pm Appending installation info to ..\lib\perl5\MSWin32-x86-multi-thread/p +erllocal.pod $ gtree -f -a .. .. |-- ../Foo | |-- ../Foo/Changes | |-- ../Foo/MANIFEST | |-- ../Foo/MYMETA.json | |-- ../Foo/MYMETA.yml | |-- ../Foo/Makefile | |-- ../Foo/Makefile.PL | |-- ../Foo/README | |-- ../Foo/blib | | |-- ../Foo/blib/arch | | | |-- ../Foo/blib/arch/.exists | | | `-- ../Foo/blib/arch/auto | | | `-- ../Foo/blib/arch/auto/Foo | | | `-- ../Foo/blib/arch/auto/Foo/.exists | | |-- ../Foo/blib/bin | | | `-- ../Foo/blib/bin/.exists | | |-- ../Foo/blib/lib | | | |-- ../Foo/blib/lib/.exists | | | |-- ../Foo/blib/lib/Foo.pm | | | `-- ../Foo/blib/lib/auto | | | `-- ../Foo/blib/lib/auto/Foo | | | `-- ../Foo/blib/lib/auto/Foo/.exists | | |-- ../Foo/blib/man1 | | | `-- ../Foo/blib/man1/.exists | | |-- ../Foo/blib/man3 | | | `-- ../Foo/blib/man3/.exists | | `-- ../Foo/blib/script | | `-- ../Foo/blib/script/.exists | |-- ../Foo/lib | | `-- ../Foo/lib/Foo.pm | |-- ../Foo/pm_to_blib | `-- ../Foo/t | `-- ../Foo/t/Foo.t `-- ../lib `-- ../lib/perl5 |-- ../lib/perl5/Foo.pm `-- ../lib/perl5/MSWin32-x86-multi-thread |-- ../lib/perl5/MSWin32-x86-multi-thread/auto | `-- ../lib/perl5/MSWin32-x86-multi-thread/auto/Foo | `-- ../lib/perl5/MSWin32-x86-multi-thread/auto/Foo +/.packlist `-- ../lib/perl5/MSWin32-x86-multi-thread/perllocal.pod 19 directories, 22 files

Ball is in your court.


Comment on Re^3: Module packlists vs. vendors
Select or Download Code
Re^4: Module packlists vs. vendors
by mbethke (Hermit) on Sep 08, 2012 at 04:30 UTC

    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:

    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.

      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)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2014-08-23 06:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (172 votes), past polls