Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Module packlists vs. vendors

by mbethke (Hermit)
on Sep 07, 2012 at 17:27 UTC ( [id://992354]=perlquestion: print w/replies, xml ) Need Help??

mbethke has asked for the wisdom of the Perl Monks concerning the following question:

I have a problem understanding the proper use of .packlist files in a vendor install:

Recently I tried packing a script and its dependencies for distribution using App::FatPacker. It failed due to missing .packlist files for pretty much everything. The man page says:

Unfortunately most vendors strip the .packlist files so if you installed modules via e.g. apt-get you may be missing those modules; installing your dependencies into a local::lib first is the preferred workaround.
Now I do like my Perl stuff to be installed via a package manager so that local::lib suggestion sounds like an unnecessary PITA. Also, I use Gentoo Linux at home so the missing packlists should be easy to fix, right? Well, after quickly disabling the part of Gentoo's ebuild process where it deletes all packlists, I found that didn't quite do the trick as the deleting is just a "safety net", they're usually not installed by the install_vendor target in module makefiles anyway.

Now my question is, is there a compelling reason to do it this way and break all kinds of useful tools that need Module::Installed and the like, or just a concession to vendors that complained about the couple hundred bytes and one inode per module that the packlists take up? The Debian guys state that

Those files are useless, and (in some cases) have the additional problem of creating an architecture-specific directory name in an architecture-independent package. (from lintian via)
... the first part of which is obviously false, and the second one may be relevant iff you share some installation between machines of different architectures, but certainly not to the vast majority of users. Any other reason? And/or, is there a way to get around it without giving up the vendor vs. site installation distinction?

Replies are listed 'Best First'.
Re: Module packlists vs. vendors
by Anonymous Monk on Sep 07, 2012 at 18:55 UTC

    Um, what?

    Marc Lehman states the problem pretty well, if you want to call it perl instead of debperl, you should not break it by removing .packlist files , so this is a debian bug, and they should fix it

      Marc Lehman states the problem pretty well, if you want to call it perl instead of debperl, you should not break it by removing .packlist files , so this is a debian bug, and they should fix it

      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.

      Edit: so far every single vendor I've looked at (OK, just Linuxen: Gentoo, Debian, Ubuntu and CentOS) doesn't package the packlists. If someone could point me to one who does so I can look at their policy and build system, that would be enormously helpful already.

        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

        Ball is in your court.

        Edit: so far every single vendor I've looked at (OK, just Linuxen: Gentoo, Debian, Ubuntu and CentOS) doesn't package the packlists. If someone could point me to one who does so I can look at their policy and build system, that would be enormously helpful already.

        :) ActiveState has long included packlists .... I doubt they have an official documented policy

        search engines and websites (centos.org .... ) are useless for getting this kind of information

        The only policy I've ever seen is http://www.debian.org/doc/packaging-manuals/perl-policy/ch-module_packages.html

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://992354]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2024-03-19 09:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found