"Votre revendeur n'a pas défini ..." [Your vendor has not defined Fcntl macro O_NOINHERIT]

Cette erreur est provoquée par un bogue dans la version de File::Temp™ distribuée avec Perl 5.6.0. De nombreuses variantes légèrement différentes de cette erreur ont été signalées :

Your vendor has not defined Fcntl macro O_NOINHERIT, used 
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 208.

Your vendor has not defined Fcntl macro O_EXLOCK, used 
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 210.

Your vendor has not defined Fcntl macro O_TEMPORARY, used 
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 233.

Beaucoup d'utilisateurs ont signalé qu'une mise à niveau vers la version 5.6.1 et suivantes a réglé leur problème. Une solution moins définitive consiste à appliquer le correctif suivant, également disponible sous forme d'un correctif.

--- File/Temp.pm.orig   Thu Feb  6 16:26:00 2003
+++ File/Temp.pm        Thu Feb  6 16:26:23 2003
@@ -205,6 +205,7 @@
     # eg CGI::Carp
     local $SIG{__DIE__} = sub {};
     local $SIG{__WARN__} = sub {};
+    local *CORE::GLOBAL::die = sub {};
     $bit = &$func();
     1;
   };
@@ -226,6 +227,7 @@
     # eg CGI::Carp
     local $SIG{__DIE__} = sub {};
     local $SIG{__WARN__} = sub {};
+    local *CORE::GLOBAL::die = sub {};
     $bit = &$func();
     1;
   };