|There's more than one way to do things|
Re^2: Turn a Website into a native applicationby cavac (Priest)
|on Dec 20, 2011 at 18:55 UTC||Need Help??|
To be clear so we speak of the same thing: The MakeMaker patch here only affects searching system libraries, e.g. the LIBS array in Makefile.PL.
Everything else (available Perl modules) is not affected.
Due to some small problems, incompatibilities, broken binary packages (operating system, ActivePerl) it is actually possible that an XS module will be installed that can not find a system library at runtime.
Another common problem i encounter are these f...ing optional dependencies of some modules. Take the unholy XML parsing mess for example: XML::Simple may be available... that doesn't mean it will actually work, because someone has uninstalled or broken-installed all the actual parser modules - or just removed libexpat from his/her system. Or somehow even managed to install XML::Simple without any available parser (shouldn't happen anymore).
Or take DBI. This thing is very flexible. Let's say you want to use DBD::Oracle. The only way to make sure it really works is to actually use it, e.g. connect to the Oracle database you want to work with. Even if DBD::Oracle and the binary oracle client library is available and everything loads correctly (=the lib didn't change since you compiled your XS against it) it doesn't actually mean it will work. The Oracle server might have been upgraded and is now (partly) incompatible with whatever OCI version your client is using.
So, a few failed tests on a small number of computers - especially for complex modules - shouldn't be alarming. Best way to figure things out is probably trying to contact the persons that submitted the FAIL reports and work with them to find the problem.
If i remember correctly: The cpantesters reports basically submit all the output that is generated by the test run. So, if a test fails on certain dependencies, your tests could actually check if it can find the libraries/modules/packages/whatever on the system in question (calling "locate" on Linux/Unix comes to mind) and output the results as warnings. This warnings in turn won't break your tests but will give you more information to work with.
BREW /very/strong/coffee HTTP/1.1 Host: goodmorning.example.com 418 I'm a teapot