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?