When Module::Install is turning into a major issue for our development
workflow.

First of all, if you've tried to install any of our git repos into /efs,
then you've already seen part of this problem.   Since Module::Install is
not in the core, you have to tell perl where to find it, and it doesn't work
correctly, no matter what I've tried.

In the boot.efs world, here's how we currently generate a tarball for
installation via efsdeploy.

EFS_PERL_DEPENDS_RUNTIME=perl5/Module-Install/1.00 perl Makefile.PL
make manifest
PERL5LIB=/efs/dist/perl5/Module-Install/1.00/exec/5.10/lib/perl5 make dist

This is very counter-intuitive.  First of all, why not just
export EFS_PERL_DEPENDS_RUNTIME when you run make dist?  Well, if you do
that, Module::Install doesn't work:

/efs/dist/perl5/core/5.10.1-build020/.exec/x86-64.rhel.5/bin/perl "-Iinc"
-I. "-MModule::Install::Admin" -e "dist_preop(q(EFS-Deploy-0.999_034)\
)"
Found extra file inc/Module/Install.pm
Found extra file inc/Module/Install/PRIVATE.pm
Found extra file inc/Module/Install/Fetch.pm
Found extra file inc/Module/Install/Share.pm
Found extra file inc/Module/Install/Can.pm
Found extra file inc/Module/Install/WriteAll.pm
Found extra file inc/Module/Install/Win32.pm
Found extra file inc/Module/Install/External.pm
Found extra file inc/Module/Install/Makefile.pm
Found extra file inc/Module/Install/Scripts.pm
Found extra file inc/Module/Install/Base.pm
Found extra file inc/Module/Install/Metadata.pm

It appears that your MANIFEST does not contain the same components that
are currently in the 'inc' directory.

Please try running 'make manifest' and then run 'make dist' again.

Remember to use the MANIFEST.SKIP file to control things that should not
end up in your MANIFEST. See 'perldoc ExtUtils::Manifest' for details.

The 'prompt' method does not exist in the 'inc' path!
Please remove the 'inc' directory and run -e again to load it.
make: *** [EFS-Deploy-0.999_034.tar.gz] Error 2

If you just set PERL5LIB as shown above, then you get a distribution tarball
you can use.  IOW, that ugly hack works.

But we're just working around the fact that Module::Install, as implemented,
seems to have a built in assumption that it's been installed in the core,
because if you DO install it into the perl5/core directories (which is what
we do during the bootstrap process), then it works fine.

This has suddenly become a MAJOR headache, because in the test.efs setup I'm
using, I simply export EFS_PERL_DEPENDS_RUNTIME=efs/core/test, and
everything OTHER than building the distribution tarball works fine.  In
order to get a tarball generated, now I have to do:

( unset EFS_PERL_DEPENDS_RUNTIME ; PERL5LIB=/efs/test/.... ; make dist )

This is really tedious, and while we can obviously write some simple shell
aliases to work around this, it would be nice to figure out why M::I is not
interacting with EPD and our perl setup very well.
_______________________________________________
EFS-dev mailing list
[email protected]
http://mailman.openefs.org/mailman/listinfo/efs-dev

Reply via email to