(travis) Clear out some resolved FIXMEs
[dbsrgits/DBIx-Class.git] / maint / travis-ci_scripts / 30_before_script.bash
index d5f3cd0..958f2d8 100755 (executable)
@@ -5,16 +5,29 @@ source maint/travis-ci_scripts/common.bash
 
 if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then exit 0 ; fi
 
-# The prereq-install stage will not work with both POISON and DEVREL
+# The DEVREL_DEPS prereq-install stage won't mix with MVDT
 # DEVREL wins
-if [[ "$DEVREL_DEPS" = "true" ]] ; then
-  export POISON_ENV=""
+if [[ "$DEVREL_DEPS" == "true" ]] ; then
+  export MVDT=""
 fi
 
-# FIXME - this is a kludge in place of proper MDV testing. For the time
+# Need a shitton of patches to run on cperl (luckily all provided)
+# Also need to have YAML in place, otherwise the distroprefs are not readable
+if is_cperl ; then
+
+  run_or_err "Downloading and installing cperl distroprefs" '
+    wget -qO- https://github.com/rurban/distroprefs/archive/master.tar.gz |\
+    tar -C $HOME/.cpan --strip-components 1 -zx distroprefs-master/prefs distroprefs-master/sources
+  '
+
+  installdeps YAML
+
+fi
+
+# FIXME - this is a kludge in place of proper MVDT testing. For the time
 # being simply use the minimum versions of our DBI/DBDstack, to avoid
 # fuckups like 0.08260 (went unnoticed for 5 months)
-if [[ "$POISON_ENV" = "true" ]] ; then
+if [[ "$MVDT" == "true" ]] ; then
 
   # use url-spec for DBI due to https://github.com/miyagawa/cpanminus/issues/328
   if [[ "$CLEANTEST" != "true" ]] || perl -M5.013003 -e1 &>/dev/null ; then
@@ -32,20 +45,36 @@ if [[ "$POISON_ENV" = "true" ]] ; then
   else
     parallel_installdeps_notest DBD::SQLite@1.29
   fi
+fi
 
-  # also try minimal tested installs *without* a compiler
-  if [[ "$CLEANTEST" = "true" ]]; then
+#
+# try minimal fully tested installs *without* a compiler (with some exceptions of course)
+if [[ "$BREAK_CC" == "true" ]] ; then
+
+  [[ "$CLEANTEST" != "true" ]] && echo_err "Breaking the compiler without CLEANTEST makes no sense" && exit 1
 
-    # Clone and P::S::XS are both bugs
-    # List::Util can be excised after that as well (need to make my own max() routine for older perls)
+  # FIXME - working around RT#74707, https://metacpan.org/source/DOY/Package-Stash-0.37/Makefile.PL#L112-122
+  #
+  # DEVREL_DEPS means our installer is cpanm, which will respect failures
+  # and the like, so stuff soft-failing (failed deps that are not in fact
+  # needed) will not fly. Add *EVEN MORE* stuff that needs a compiler
+  #
+  # FIXME - the PathTools 3.47 is to work around https://rt.cpan.org/Ticket/Display.html?id=107392
+  #
+  installdeps Sub::Name Clone Package::Stash::XS \
+              $( [[ "$DEVREL_DEPS" == "true" ]] && ( perl -MFile::Spec\ 3.13 -e1 &>/dev/null || echo "S/SM/SMUELLER/PathTools-3.47.tar.gz" ) ) \
+              $( perl -MDBI -e1 &>/dev/null || echo "DBI" ) \
+              $( perl -MDBD::SQLite -e1 &>/dev/null || echo "DBD::SQLite" )
 
-    installdeps Sub::Name Clone Package::Stash::XS \
-                $( perl -MList::Util\ 1.16 -e1 &>/dev/null || echo "List::Util" )
+  mkdir -p "$HOME/bin" # this is already in $PATH, just doesn't exist
+  run_or_err "Linking ~/bin/cc to /bin/false - thus essentially BREAKING the C compiler" \
+             "ln -s /bin/false $HOME/bin/cc"
 
-    mkdir -p "$HOME/bin" # this is already in $PATH, just doesn't exist
-    run_or_err "Linking ~/bin/cc to /bin/false - thus essentially BREAKING the C compiler" \
-               "ln -s /bin/false $HOME/bin/cc"
-  fi
+  # FIXME: working around RT#113682, and some other unfiled bugs
+  installdeps Module::Build Devel::GlobalDestruction Class::Accessor::Grouped
+
+  run_or_err "Linking ~/bin/cc to /bin/true - BREAKING the C compiler even harder" \
+             "ln -fs /bin/true $HOME/bin/cc"
 fi
 
 if [[ "$CLEANTEST" = "true" ]]; then
@@ -142,7 +171,12 @@ else
 
   run_or_err "Configure on current branch with --with-optdeps" "perl Makefile.PL --with-optdeps"
 
-  parallel_installdeps_notest "$(make listdeps | sort -R)"
+  # if we are smoking devrels - make sure we upgrade everything we know about
+  if [[ "$DEVREL_DEPS" == "true" ]] ; then
+    parallel_installdeps_notest "$(make listalldeps | sort -R)"
+  else
+    parallel_installdeps_notest "$(make listdeps | sort -R)"
+  fi
 
   run_or_err "Re-configure with --with-optdeps" "perl Makefile.PL --with-optdeps"
 fi
@@ -159,8 +193,8 @@ if [[ -n "$(make listdeps)" ]] ; then
   exit 1
 fi
 
-# check that our MDV somewhat works
-if [[ "$POISON_ENV" = "true" ]] && ( perl -MDBD::SQLite\ 1.38 -e1 || perl -MDBI\ 1.615 -e1 ) &>/dev/null ; then
+# check that our MVDT somewhat works
+if [[ "$MVDT" == "true" ]] && ( perl -MDBD::SQLite\ 1.38 -e1 || perl -MDBI\ 1.615 -e1 ) &>/dev/null ; then
   echo_err "Something went wrong - higher versions of DBI and/or DBD::SQLite than we expected"
   exit 1
 fi