-use Cwd qw/cwd abs_path/;
-use File::Spec::Functions qw/catdir splitdir abs2rel file_name_is_absolute/;
-use POSIX qw/WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG SIGINT SIGQUIT/;
-
-use Object::Tiny qw/fake repo bare name work/;
-
-use App::Rgit::Utils qw/validate/;
+use Cwd (); # cwd
+use File::Spec (); # canonpath, catdir, splitdir, abs2rel
+use POSIX (); # WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG SIGINT SIGQUIT
+
+use App::Rgit::Utils (); # abs_path
+
+my ($WIFEXITED, $WEXITSTATUS, $WIFSIGNALED, $WTERMSIG);
+
+BEGIN {
+ $WIFEXITED = eval { POSIX::WIFEXITED(0); 1 } ? \&POSIX::WIFEXITED
+ : sub { 1 };
+ $WEXITSTATUS = eval { POSIX::WEXITSTATUS(0); 1 } ? \&POSIX::WEXITSTATUS
+ : sub { shift() >> 8 };
+ $WIFSIGNALED = eval { POSIX::WIFSIGNALED(0); 1 } ? \&POSIX::WIFSIGNALED
+ : sub { shift() & 127 };
+ $WTERMSIG = eval { POSIX::WTERMSIG(0); 1 } ? \&POSIX::WTERMSIG
+ : sub { shift() & 127 };
+}