I'm working on a module that has an accompanying script that can be scheduled (cron'ed on Unix/Linux) to update its database from the internet. The biggest problem with this, that is not covered by LWP, is that of proxies.

I know how to access environment variables plus the CPAN config to automatically take care of many systems that include a proxy. Nevertheless if none of these contain anything, I feel that I have to include a query during Build.PL execution, to ask if there's a proxy. (Of course there will be a default "n" to take care of smoke-testing.)

If the query (which is only asked if the environment/CPAN variables don't identify a proxy) comes back "y", I know how to run a WPAD protocol, and if that doesn't yield anything, how to search on Windows for *.pac.

Q1: where should one search for *.pac on non-Windows systems?

But my main problem is when a wpad or pac search succeeds. Now I have a Javascript file that can tell my script what proxy should be used for a URL that it wants to access. The only viable module that I've been able to find on CPAN to help with this is called HTTP::ProxyPAC.

HTTP::ProxyPAC has JavaScript as a prerequisite. The JavaScript bindings expect that the user must have 'libjs' from Mozilla installed (by hand) before it will install. And if jslib is present, the JavaScript installer asks 3 scary questions about how it was installed, to which only a true wizard would know the answers.

I would like to use ProxyPAC and JavaScript but don't want to subject my installers to such pain. I can put the .tar.gz of libjs from Mozilla inside my module, and drive the installation from Build.PL if it is needed. (Running a proxy.pac or wpad.dat file hardly needs the latest version!)

Q2: can libjs can be installed by Build.PL before the CPAN code prepends HTTP::ProxyPAC and then JavaScript and tries to install them (based on META.yml) before it ever runs my Build.PL?

Answers to these Qs, and any other comments or advice on the best way to handle this matter, will be much appreciated.


In reply to Auto installation of a C library during/before a CPAN install by cmac

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.