Bring back _TempExtlib (d0435d75), this time for Sub::Quote
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / StartupCheck.pm
index 339aebc..986e452 100644 (file)
@@ -1,35 +1,42 @@
 package DBIx::Class::StartupCheck;
 
+# Temporary - tempextlib
+use warnings;
+use strict;
+use namespace::clean;
 BEGIN {
-
-    { package # don't want this in PAUSE
-        TestRHBug; use overload bool => sub { 0 } }
-
-    sub _has_bug_34925 {
-       my %thing;
-       my $r1 = \%thing;
-       my $r2 = \%thing;
-       bless $r1 => 'TestRHBug';
-       return !!$r2;
+  # There can be only one of these, make sure we get the bundled part and
+  # *not* something off the site lib
+  for (qw(
+    Sub::Quote
+  )) {
+    (my $incfn = "$_.pm") =~ s|::|/|g;
+
+    if ($INC{$incfn}) {
+      die "\n\t*TEMPORARY* TRIAL RELEASE REQUIREMENTS VIOLATED\n\n"
+        . "Unable to continue - a part of the bundled templib contents "
+        . "was already loaded (likely an older version from CPAN). "
+        . "Make sure that @{[ __PACKAGE__ ]} is loaded before $_\n"
+        . "\n\tThis *WILL NOT* be necessary for the official DBIC release\n\n"
+      ;
     }
+  }
 
-    sub _possibly_has_bad_overload_performance {
-       return $] < 5.008009 && ! _has_bug_34925();
-    }
+  require File::Spec;
+  our ($HERE) = File::Spec->rel2abs(
+    File::Spec->catdir( (File::Spec->splitpath(__FILE__))[1], '_TempExtlib' )
+  ) =~ /^(.*)$/; # screw you, taint mode
 
-    unless ($ENV{DBIC_NO_WARN_BAD_PERL}) {
-       if (_possibly_has_bad_overload_performance()) {
-           print STDERR "\n\nWARNING: " . __PACKAGE__ . ": This version of Perl is likely to exhibit\n" .
-               "extremely slow performance for certain critical operations.\n" .
-               "Please consider recompiling Perl.  For more information, see\n" .
-               "https://bugzilla.redhat.com/show_bug.cgi?id=196836 and/or\n" .
-               "http://lists.scsys.co.uk/pipermail/dbix-class/2007-October/005119.html.\n" .
-               "You can suppress this message by setting DBIC_NO_WARN_BAD_PERL=1 in your\n" .
-               "environment.\n\n";
-       }
-    }
+  die "TempExtlib $HERE does not seem to exist - perhaps you need to run `perl Makefile.PL` in the DBIC checkout?\n"
+    unless -d $HERE;
+
+  unshift @INC, $HERE;
 }
 
+1;
+
+__END__
+
 =head1 NAME
 
 DBIx::Class::StartupCheck - Run environment checks on startup
@@ -37,35 +44,33 @@ DBIx::Class::StartupCheck - Run environment checks on startup
 =head1 SYNOPSIS
 
   use DBIx::Class::StartupCheck;
-  
-=head1 DESCRIPTION
 
-Currently this module checks for, and if necessary issues a warning for, a
-particular bug found on RedHat systems from perl-5.8.8-10 and up.  Other checks
-may be added from time to time.
-
-Any checks herein can be disabled by setting an appropriate environment
-variable.  If your system suffers from a particular bug, you will get a warning
-message on startup sent to STDERR, explaining what to do about it and how to
-suppress the message.  If you don't see any messages, you have nothing to worry
-about.
-
-=head1 CONTRIBUTORS
-
-Nigel Metheringham
-
-Brandon Black
+=head1 DESCRIPTION
 
-Matt S. Trout
+This module used to check for, and if necessary issue a warning for, a
+particular bug found on Red Hat and Fedora systems using their system
+perl build. As of September 2008 there are fixed versions of perl for
+all current Red Hat and Fedora distributions, but the old check still
+triggers, incorrectly flagging those versions of perl to be buggy. A
+more comprehensive check has been moved into the test suite in
+C<t/99rh_perl_perf_bug.t> and further information about the bug has been
+put in L<DBIx::Class::Manual::Troubleshooting>.
 
-=head1 AUTHOR
+Other checks may be added from time to time.
 
-Jon Schutz
+Any checks herein can be disabled by setting an appropriate environment
+variable. If your system suffers from a particular bug, you will get a
+warning message on startup sent to STDERR, explaining what to do about
+it and how to suppress the message. If you don't see any messages, you
+have nothing to worry about.
 
-=head1 LICENSE
+=head1 FURTHER QUESTIONS?
 
-You may distribute this code under the same terms as Perl itself.
+Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>.
 
-=cut
+=head1 COPYRIGHT AND LICENSE
 
-1;
+This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE>
+by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can
+redistribute it and/or modify it under the same terms as the
+L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>.