On 21 May, 15:57, [EMAIL PROTECTED] (Roderich Schupp)
wrote:
> On 21 May 2007 04:48:35 -0700, misoldgit <[EMAIL PROTECTED]> wrote:
>
> > It does beg the question though, if I'm using a module such as
> > Crypt::OpenPGP how do I find out what other modules it needs (i.e. the
> > modules that are missing and require manual inclusion)?
>
> You might try to run scandeps.pl (from Modules::ScanDeps - which you
> should have already installed, otherwise PAR::Packer won't install):
>
> $ scandeps.pl -V your_original_program
>
> That will give you the static dependencies detected by Module::ScanDeps.
> If you add the option -x it will also run your program to check which modules
> have actually been loaded when it ends.
>
> On the other hand, pack your program using pp yielding, say, foo.exe.
> List foo.exe's  content with
>
> $ unzip -l foo.exe
>
> and compare your two lists.
>
> Note that Module::ScanDeps never lists _external_ shared libraries that
> your modules are using (it will only list the "glue" shared libraries),
> e.g. for DB_File.pm it lists DB_File.so, but not libdb-4.4.so which
> the latter links to.
>
> Sorry that there is no magic wand here.
> However, Module::ScanDeps already knows about "quirks", ie. stuff
> it can't detect by itself, so post your findings so that the list of quirks
> can be amended. E.g. a known quirk is: if you use LWP::UserAgent
> explicitly, also add URI/URL.pm, URI/http.pm
> and also anything found below directories .../LWP/Authen
> and ...LWP/Protocol.
>
> Cheers, Roderich

Yep that did it. I ran scandeps.pl once with the test script static
then again with the -x and did a diff on the resulting files. That led
to me creating the following:

BEGIN {
        require Crypt::Rijndael;
        require Crypt::DSA::Key;
        require Crypt::DSA::Util;
        require Crypt::OpenPGP::Key::Public::DSA;
        require Crypt::OpenPGP::Key::Public::ElGamal;
        require Crypt::OpenPGP::Trust;
}

Which fixed the problem in both the test script and the final program.

Many thanks again guys.

Reply via email to