Bring back _TempExtlib (d0435d75), this time for Sub::Quote
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / StartupCheck.pm
1 package DBIx::Class::StartupCheck;
2
3 # Temporary - tempextlib
4 use warnings;
5 use strict;
6 use namespace::clean;
7 BEGIN {
8   # There can be only one of these, make sure we get the bundled part and
9   # *not* something off the site lib
10   for (qw(
11     Sub::Quote
12   )) {
13     (my $incfn = "$_.pm") =~ s|::|/|g;
14
15     if ($INC{$incfn}) {
16       die "\n\t*TEMPORARY* TRIAL RELEASE REQUIREMENTS VIOLATED\n\n"
17         . "Unable to continue - a part of the bundled templib contents "
18         . "was already loaded (likely an older version from CPAN). "
19         . "Make sure that @{[ __PACKAGE__ ]} is loaded before $_\n"
20         . "\n\tThis *WILL NOT* be necessary for the official DBIC release\n\n"
21       ;
22     }
23   }
24
25   require File::Spec;
26   our ($HERE) = File::Spec->rel2abs(
27     File::Spec->catdir( (File::Spec->splitpath(__FILE__))[1], '_TempExtlib' )
28   ) =~ /^(.*)$/; # screw you, taint mode
29
30   die "TempExtlib $HERE does not seem to exist - perhaps you need to run `perl Makefile.PL` in the DBIC checkout?\n"
31     unless -d $HERE;
32
33   unshift @INC, $HERE;
34 }
35
36 1;
37
38 __END__
39
40 =head1 NAME
41
42 DBIx::Class::StartupCheck - Run environment checks on startup
43
44 =head1 SYNOPSIS
45
46   use DBIx::Class::StartupCheck;
47
48 =head1 DESCRIPTION
49
50 This module used to check for, and if necessary issue a warning for, a
51 particular bug found on Red Hat and Fedora systems using their system
52 perl build. As of September 2008 there are fixed versions of perl for
53 all current Red Hat and Fedora distributions, but the old check still
54 triggers, incorrectly flagging those versions of perl to be buggy. A
55 more comprehensive check has been moved into the test suite in
56 C<t/99rh_perl_perf_bug.t> and further information about the bug has been
57 put in L<DBIx::Class::Manual::Troubleshooting>.
58
59 Other checks may be added from time to time.
60
61 Any checks herein can be disabled by setting an appropriate environment
62 variable. If your system suffers from a particular bug, you will get a
63 warning message on startup sent to STDERR, explaining what to do about
64 it and how to suppress the message. If you don't see any messages, you
65 have nothing to worry about.
66
67 =head1 FURTHER QUESTIONS?
68
69 Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>.
70
71 =head1 COPYRIGHT AND LICENSE
72
73 This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE>
74 by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can
75 redistribute it and/or modify it under the same terms as the
76 L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>.