From 6d7b26d4e08c2ca29f2fe6ff32e63ebfd377d164 Mon Sep 17 00:00:00 2001
From: Peter Scheibel <scheibel1@llnl.gov>
Date: Wed, 11 Nov 2015 18:04:22 -0800
Subject: [PATCH] Insert lib/spack/external into sys.path. This avoids cases
 where the system python install and lib/spack/external have the same library
 installed. This requires modifying the names of some modules in
 lib/spack/external in cases where both the system python and backported
 features of future python versions (i.e. after 2.6) are used (previously
 distinguished by "from external import X" and "import X").

---
 bin/spack                                                   | 2 ++
 lib/spack/external/{functools.py => functools_backport.py}  | 0
 .../external/{ordereddict.py => ordereddict_backport.py}    | 0
 lib/spack/spack/cmd/activate.py                             | 2 +-
 lib/spack/spack/cmd/checksum.py                             | 2 +-
 lib/spack/spack/cmd/clean.py                                | 2 +-
 lib/spack/spack/cmd/compiler.py                             | 2 +-
 lib/spack/spack/cmd/config.py                               | 2 +-
 lib/spack/spack/cmd/create.py                               | 2 +-
 lib/spack/spack/cmd/deactivate.py                           | 2 +-
 lib/spack/spack/cmd/dependents.py                           | 2 +-
 lib/spack/spack/cmd/diy.py                                  | 2 +-
 lib/spack/spack/cmd/env.py                                  | 2 +-
 lib/spack/spack/cmd/extensions.py                           | 2 +-
 lib/spack/spack/cmd/fetch.py                                | 2 +-
 lib/spack/spack/cmd/find.py                                 | 2 +-
 lib/spack/spack/cmd/graph.py                                | 2 +-
 lib/spack/spack/cmd/install.py                              | 2 +-
 lib/spack/spack/cmd/list.py                                 | 2 +-
 lib/spack/spack/cmd/load.py                                 | 2 +-
 lib/spack/spack/cmd/location.py                             | 2 +-
 lib/spack/spack/cmd/md5.py                                  | 2 +-
 lib/spack/spack/cmd/mirror.py                               | 2 +-
 lib/spack/spack/cmd/module.py                               | 2 +-
 lib/spack/spack/cmd/patch.py                                | 2 +-
 lib/spack/spack/cmd/pkg.py                                  | 2 +-
 lib/spack/spack/cmd/providers.py                            | 2 +-
 lib/spack/spack/cmd/python.py                               | 2 +-
 lib/spack/spack/cmd/reindex.py                              | 2 +-
 lib/spack/spack/cmd/restage.py                              | 2 +-
 lib/spack/spack/cmd/spec.py                                 | 2 +-
 lib/spack/spack/cmd/stage.py                                | 2 +-
 lib/spack/spack/cmd/test-install.py                         | 2 +-
 lib/spack/spack/cmd/uninstall.py                            | 2 +-
 lib/spack/spack/cmd/unload.py                               | 2 +-
 lib/spack/spack/cmd/unuse.py                                | 2 +-
 lib/spack/spack/cmd/use.py                                  | 2 +-
 lib/spack/spack/config.py                                   | 6 +++---
 lib/spack/spack/database.py                                 | 4 ++--
 lib/spack/spack/directory_layout.py                         | 2 +-
 lib/spack/spack/spec.py                                     | 4 ++--
 lib/spack/spack/test/python_version.py                      | 2 +-
 lib/spack/spack/version.py                                  | 2 +-
 43 files changed, 46 insertions(+), 44 deletions(-)
 rename lib/spack/external/{functools.py => functools_backport.py} (100%)
 rename lib/spack/external/{ordereddict.py => ordereddict_backport.py} (100%)

diff --git a/bin/spack b/bin/spack
index 127a85f6fe..f587e206db 100755
--- a/bin/spack
+++ b/bin/spack
@@ -38,6 +38,8 @@ SPACK_PREFIX = os.path.dirname(os.path.dirname(SPACK_FILE))
 # Allow spack libs to be imported in our scripts
 SPACK_LIB_PATH = os.path.join(SPACK_PREFIX, "lib", "spack")
 sys.path.insert(0, SPACK_LIB_PATH)
+SPACK_EXTERNAL_LIBS = os.path.join(SPACK_LIB_PATH, "external")
+sys.path.insert(0, SPACK_EXTERNAL_LIBS)
 
 # If there is no working directory, use the spack prefix.
 try:
diff --git a/lib/spack/external/functools.py b/lib/spack/external/functools_backport.py
similarity index 100%
rename from lib/spack/external/functools.py
rename to lib/spack/external/functools_backport.py
diff --git a/lib/spack/external/ordereddict.py b/lib/spack/external/ordereddict_backport.py
similarity index 100%
rename from lib/spack/external/ordereddict.py
rename to lib/spack/external/ordereddict_backport.py
diff --git a/lib/spack/spack/cmd/activate.py b/lib/spack/spack/cmd/activate.py
index 1004f1f8e6..1e44948d24 100644
--- a/lib/spack/spack/cmd/activate.py
+++ b/lib/spack/spack/cmd/activate.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import llnl.util.tty as tty
 import spack
 import spack.cmd
diff --git a/lib/spack/spack/cmd/checksum.py b/lib/spack/spack/cmd/checksum.py
index 8a448450c2..c940d57781 100644
--- a/lib/spack/spack/cmd/checksum.py
+++ b/lib/spack/spack/cmd/checksum.py
@@ -24,7 +24,7 @@
 ##############################################################################
 import os
 import re
-from external import argparse
+import argparse
 import hashlib
 from pprint import pprint
 from subprocess import CalledProcessError
diff --git a/lib/spack/spack/cmd/clean.py b/lib/spack/spack/cmd/clean.py
index c20136ebe5..e303b3d634 100644
--- a/lib/spack/spack/cmd/clean.py
+++ b/lib/spack/spack/cmd/clean.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 
diff --git a/lib/spack/spack/cmd/compiler.py b/lib/spack/spack/cmd/compiler.py
index 2a64dc914e..3173d11070 100644
--- a/lib/spack/spack/cmd/compiler.py
+++ b/lib/spack/spack/cmd/compiler.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 from llnl.util.tty.color import colorize
diff --git a/lib/spack/spack/cmd/config.py b/lib/spack/spack/cmd/config.py
index 8c18f88b64..78972a8be0 100644
--- a/lib/spack/spack/cmd/config.py
+++ b/lib/spack/spack/cmd/config.py
@@ -23,7 +23,7 @@
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 import sys
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 
diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py
index 46e6bcec14..05cf170e39 100644
--- a/lib/spack/spack/cmd/create.py
+++ b/lib/spack/spack/cmd/create.py
@@ -27,7 +27,7 @@
 import hashlib
 import re
 
-from external.ordereddict import OrderedDict
+from ordereddict_backport import OrderedDict
 import llnl.util.tty as tty
 from llnl.util.filesystem import mkdirp
 
diff --git a/lib/spack/spack/cmd/deactivate.py b/lib/spack/spack/cmd/deactivate.py
index 1f0e303cdf..5a2b353fa2 100644
--- a/lib/spack/spack/cmd/deactivate.py
+++ b/lib/spack/spack/cmd/deactivate.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import llnl.util.tty as tty
 
 import spack
diff --git a/lib/spack/spack/cmd/dependents.py b/lib/spack/spack/cmd/dependents.py
index 652f243b98..129a4eeb23 100644
--- a/lib/spack/spack/cmd/dependents.py
+++ b/lib/spack/spack/cmd/dependents.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 
diff --git a/lib/spack/spack/cmd/diy.py b/lib/spack/spack/cmd/diy.py
index 9f8a6d39db..d6bd1fbb79 100644
--- a/lib/spack/spack/cmd/diy.py
+++ b/lib/spack/spack/cmd/diy.py
@@ -24,7 +24,7 @@
 ##############################################################################
 import sys
 import os
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 
diff --git a/lib/spack/spack/cmd/env.py b/lib/spack/spack/cmd/env.py
index bde76b5daf..ae8e95491e 100644
--- a/lib/spack/spack/cmd/env.py
+++ b/lib/spack/spack/cmd/env.py
@@ -23,7 +23,7 @@
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 import os
-from external import argparse
+import argparse
 import llnl.util.tty as tty
 import spack.cmd
 import spack.build_environment as build_env
diff --git a/lib/spack/spack/cmd/extensions.py b/lib/spack/spack/cmd/extensions.py
index 7cadc424b0..86dec7b9e7 100644
--- a/lib/spack/spack/cmd/extensions.py
+++ b/lib/spack/spack/cmd/extensions.py
@@ -23,7 +23,7 @@
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 import sys
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 from llnl.util.tty.colify import colify
diff --git a/lib/spack/spack/cmd/fetch.py b/lib/spack/spack/cmd/fetch.py
index 0ccebd9486..1dd8703daf 100644
--- a/lib/spack/spack/cmd/fetch.py
+++ b/lib/spack/spack/cmd/fetch.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 
 import spack
 import spack.cmd
diff --git a/lib/spack/spack/cmd/find.py b/lib/spack/spack/cmd/find.py
index 0b0dd6ef6f..05fa620c59 100644
--- a/lib/spack/spack/cmd/find.py
+++ b/lib/spack/spack/cmd/find.py
@@ -25,7 +25,7 @@
 import sys
 import collections
 import itertools
-from external import argparse
+import argparse
 from StringIO import StringIO
 
 import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/graph.py b/lib/spack/spack/cmd/graph.py
index cb93a1b543..586a02c53b 100644
--- a/lib/spack/spack/cmd/graph.py
+++ b/lib/spack/spack/cmd/graph.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 
 import spack
 import spack.cmd
diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py
index 836a6260c8..e4338e222f 100644
--- a/lib/spack/spack/cmd/install.py
+++ b/lib/spack/spack/cmd/install.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 
diff --git a/lib/spack/spack/cmd/list.py b/lib/spack/spack/cmd/list.py
index 1f0978a18e..0b55d9fb7b 100644
--- a/lib/spack/spack/cmd/list.py
+++ b/lib/spack/spack/cmd/list.py
@@ -24,7 +24,7 @@
 ##############################################################################
 import sys
 import llnl.util.tty as tty
-from external import argparse
+import argparse
 from llnl.util.tty.colify import colify
 
 import spack
diff --git a/lib/spack/spack/cmd/load.py b/lib/spack/spack/cmd/load.py
index 06574d9725..5bc6b15784 100644
--- a/lib/spack/spack/cmd/load.py
+++ b/lib/spack/spack/cmd/load.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import spack.modules
 
 description ="Add package to environment using modules."
diff --git a/lib/spack/spack/cmd/location.py b/lib/spack/spack/cmd/location.py
index e8e9c3f277..6fbab9782f 100644
--- a/lib/spack/spack/cmd/location.py
+++ b/lib/spack/spack/cmd/location.py
@@ -24,7 +24,7 @@
 ##############################################################################
 import os
 import sys
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 from llnl.util.filesystem import join_path
diff --git a/lib/spack/spack/cmd/md5.py b/lib/spack/spack/cmd/md5.py
index dfa1be412b..8be0a7ad4c 100644
--- a/lib/spack/spack/cmd/md5.py
+++ b/lib/spack/spack/cmd/md5.py
@@ -24,7 +24,7 @@
 ##############################################################################
 import os
 import hashlib
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 from llnl.util.filesystem import *
diff --git a/lib/spack/spack/cmd/mirror.py b/lib/spack/spack/cmd/mirror.py
index 2356170a9a..4599944f1c 100644
--- a/lib/spack/spack/cmd/mirror.py
+++ b/lib/spack/spack/cmd/mirror.py
@@ -26,7 +26,7 @@
 import sys
 from datetime import datetime
 
-from external import argparse
+import argparse
 import llnl.util.tty as tty
 from llnl.util.tty.colify import colify
 
diff --git a/lib/spack/spack/cmd/module.py b/lib/spack/spack/cmd/module.py
index 654b0cb2fa..c3daed6402 100644
--- a/lib/spack/spack/cmd/module.py
+++ b/lib/spack/spack/cmd/module.py
@@ -25,7 +25,7 @@
 import sys
 import os
 import shutil
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 from llnl.util.lang import partition_list
diff --git a/lib/spack/spack/cmd/patch.py b/lib/spack/spack/cmd/patch.py
index a6556c4828..2356583b07 100644
--- a/lib/spack/spack/cmd/patch.py
+++ b/lib/spack/spack/cmd/patch.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 
 import spack.cmd
 import spack
diff --git a/lib/spack/spack/cmd/pkg.py b/lib/spack/spack/cmd/pkg.py
index 055b7c2062..ae5efd9d9c 100644
--- a/lib/spack/spack/cmd/pkg.py
+++ b/lib/spack/spack/cmd/pkg.py
@@ -24,7 +24,7 @@
 ##############################################################################
 import os
 
-from external import argparse
+import argparse
 import llnl.util.tty as tty
 from llnl.util.tty.colify import colify
 
diff --git a/lib/spack/spack/cmd/providers.py b/lib/spack/spack/cmd/providers.py
index 2bcdc9fba2..1a652c82d1 100644
--- a/lib/spack/spack/cmd/providers.py
+++ b/lib/spack/spack/cmd/providers.py
@@ -23,7 +23,7 @@
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 import os
-from external import argparse
+import argparse
 
 from llnl.util.tty.colify import colify
 
diff --git a/lib/spack/spack/cmd/python.py b/lib/spack/spack/cmd/python.py
index 7bd2e45ce0..15c45654c2 100644
--- a/lib/spack/spack/cmd/python.py
+++ b/lib/spack/spack/cmd/python.py
@@ -25,7 +25,7 @@
 import os
 import sys
 import code
-from external import argparse
+import argparse
 import platform
 
 import spack
diff --git a/lib/spack/spack/cmd/reindex.py b/lib/spack/spack/cmd/reindex.py
index b584729ea4..c0008930c4 100644
--- a/lib/spack/spack/cmd/reindex.py
+++ b/lib/spack/spack/cmd/reindex.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import spack
 
 description = "Rebuild Spack's package database."
diff --git a/lib/spack/spack/cmd/restage.py b/lib/spack/spack/cmd/restage.py
index e735a12c32..9230cf5a1a 100644
--- a/lib/spack/spack/cmd/restage.py
+++ b/lib/spack/spack/cmd/restage.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 
diff --git a/lib/spack/spack/cmd/spec.py b/lib/spack/spack/cmd/spec.py
index 407519313c..af7ec1b36c 100644
--- a/lib/spack/spack/cmd/spec.py
+++ b/lib/spack/spack/cmd/spec.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import spack.cmd
 
 import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/stage.py b/lib/spack/spack/cmd/stage.py
index f3dc97be17..09cf0e1a1c 100644
--- a/lib/spack/spack/cmd/stage.py
+++ b/lib/spack/spack/cmd/stage.py
@@ -23,7 +23,7 @@
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 import os
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 import spack
diff --git a/lib/spack/spack/cmd/test-install.py b/lib/spack/spack/cmd/test-install.py
index 68b761d5dc..ba0cb39baf 100644
--- a/lib/spack/spack/cmd/test-install.py
+++ b/lib/spack/spack/cmd/test-install.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import xml.etree.ElementTree as ET
 import itertools
 import re
diff --git a/lib/spack/spack/cmd/uninstall.py b/lib/spack/spack/cmd/uninstall.py
index e80f2d2636..93575e005d 100644
--- a/lib/spack/spack/cmd/uninstall.py
+++ b/lib/spack/spack/cmd/uninstall.py
@@ -23,7 +23,7 @@
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 import sys
-from external import argparse
+import argparse
 
 import llnl.util.tty as tty
 from llnl.util.tty.colify import colify
diff --git a/lib/spack/spack/cmd/unload.py b/lib/spack/spack/cmd/unload.py
index 6442c48cb1..24e49b3f24 100644
--- a/lib/spack/spack/cmd/unload.py
+++ b/lib/spack/spack/cmd/unload.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import spack.modules
 
 description ="Remove package from environment using module."
diff --git a/lib/spack/spack/cmd/unuse.py b/lib/spack/spack/cmd/unuse.py
index 2a7229a3a0..7f0b384ea0 100644
--- a/lib/spack/spack/cmd/unuse.py
+++ b/lib/spack/spack/cmd/unuse.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import spack.modules
 
 description ="Remove package from environment using dotkit."
diff --git a/lib/spack/spack/cmd/use.py b/lib/spack/spack/cmd/use.py
index e34c194739..4990fea2f8 100644
--- a/lib/spack/spack/cmd/use.py
+++ b/lib/spack/spack/cmd/use.py
@@ -22,7 +22,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-from external import argparse
+import argparse
 import spack.modules
 
 description ="Add package to environment using dotkit."
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index 3e91958c2c..41afe8b232 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -90,12 +90,12 @@
 import exceptions
 import sys
 
-from external.ordereddict import OrderedDict
+from ordereddict_backport import OrderedDict
 from llnl.util.lang import memoized
 import spack.error
 
-from external import yaml
-from external.yaml.error import MarkedYAMLError
+import yaml
+from yaml.error import MarkedYAMLError
 import llnl.util.tty as tty
 from llnl.util.filesystem import mkdirp
 
diff --git a/lib/spack/spack/database.py b/lib/spack/spack/database.py
index e0c14a0455..908ffc7fa4 100644
--- a/lib/spack/spack/database.py
+++ b/lib/spack/spack/database.py
@@ -43,8 +43,8 @@
 import time
 import socket
 
-from external import yaml
-from external.yaml.error import MarkedYAMLError, YAMLError
+import yaml
+from yaml.error import MarkedYAMLError, YAMLError
 
 import llnl.util.tty as tty
 from llnl.util.filesystem import *
diff --git a/lib/spack/spack/directory_layout.py b/lib/spack/spack/directory_layout.py
index da8f4187cc..918405cab6 100644
--- a/lib/spack/spack/directory_layout.py
+++ b/lib/spack/spack/directory_layout.py
@@ -29,7 +29,7 @@
 import shutil
 import glob
 import tempfile
-from external import yaml
+import yaml
 
 import llnl.util.tty as tty
 from llnl.util.filesystem import join_path, mkdirp
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 7b79feb311..92880e9cbf 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -96,8 +96,8 @@
 import base64
 from StringIO import StringIO
 from operator import attrgetter
-from external import yaml
-from external.yaml.error import MarkedYAMLError
+import yaml
+from yaml.error import MarkedYAMLError
 
 import llnl.util.tty as tty
 from llnl.util.lang import *
diff --git a/lib/spack/spack/test/python_version.py b/lib/spack/spack/test/python_version.py
index 5779d31ed2..ba7bab6f4b 100644
--- a/lib/spack/spack/test/python_version.py
+++ b/lib/spack/spack/test/python_version.py
@@ -34,7 +34,7 @@
 
 import llnl.util.tty as tty
 
-from external import pyqver2
+import pyqver2
 import spack
 
 spack_max_version = (2,6)
diff --git a/lib/spack/spack/version.py b/lib/spack/spack/version.py
index 35db05e018..ffce2d1ff8 100644
--- a/lib/spack/spack/version.py
+++ b/lib/spack/spack/version.py
@@ -48,7 +48,7 @@
 import re
 from bisect import bisect_left
 from functools import wraps
-from external.functools import total_ordering
+from functools_backport import total_ordering
 
 # Valid version characters
 VALID_VERSION = r'[A-Za-z0-9_.-]'
-- 
GitLab