David Golden wrote:

Well, the more generalized problem is how to you signal to an automated test that you're bailing out as N/A for whatever reason? For Perl itself, it's easy enough for the smoke test to check if the required version of Perl is available -- and the smoke test is smart enough not to try to install an updated version of Perl to satisfy the dependency. It bails out with N/A instead.

What's a clean, generic mechanism for a distribution to signal "please check this dependency and abort if it's not satisfied"?

die("wrong platform, you didn't read the documentation\n")
  unless(
    $Config::capabilities{filesystem}{casesensitive} &&
    ...
  );

With the capabilities database being built when perl is built, similarly to how it knows about things like ldlibpathname. But this gets REALLY complicated. An OS can support several filesystems each with different capabilities - for example, on OS X, HFS+ is case-preserving but case-insensitive. UFS is case-sensitive. And FAT16 smashes case.

So things like that need to be figured out on the fly, based on some kind of context information. And god help you if you're looking at a TranslateFilenamesUsingFiglet fs (which you wrote using fuse when very very drunk).

--
David Cantrell

Reply via email to