Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
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
Replies are listed 'Best First'.
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 studying the Monastery: (4)
As of 2015-07-30 03:44 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 (269 votes), past polls