prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Error "_set_blas_variables: blas_lib not set" in EasyBuild 3.9.1
  I am getting the following error when I am trying to build LAMMPS with EasyBuild 3.9.1. 
  For an extended dry run, the following is included in the logs:
  ```
  WARNING: ignoring error '_set_blas_variables: BLAS_LIB not set'
  ```
  
  Using EasyBuild 3.8.1 the build succeeds. The eb recipe is this https://github.com/eth-cscs/production/blob/master/easybuild/easyconfigs/l/LAMMPS/LAMMPS-22Aug2018-CrayGNU-18.08.eb,
  
  </issue>
  <code>
  [start of easybuild/toolchains/linalg/libsci.py]
  1 ##
  2 # Copyright 2014-2019 Ghent University
  3 #
  4 # This file is part of EasyBuild,
  5 # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
  6 # with support of Ghent University (http://ugent.be/hpc),
  7 # the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),
  8 # Flemish Research Foundation (FWO) (http://www.fwo.be/en)
  9 # and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
  10 #
  11 # https://github.com/easybuilders/easybuild
  12 #
  13 # EasyBuild is free software: you can redistribute it and/or modify
  14 # it under the terms of the GNU General Public License as published by
  15 # the Free Software Foundation v2.
  16 #
  17 # EasyBuild is distributed in the hope that it will be useful,
  18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
  19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20 # GNU General Public License for more details.
  21 #
  22 # You should have received a copy of the GNU General Public License
  23 # along with EasyBuild.  If not, see <http://www.gnu.org/licenses/>.
  24 ##
  25 """
  26 Support for Cray's LibSci library, which provides BLAS/LAPACK support.
  27 cfr. https://www.nersc.gov/users/software/programming-libraries/math-libraries/libsci/
  28 
  29 :author: Petar Forai (IMP/IMBA, Austria)
  30 :author: Kenneth Hoste (Ghent University)
  31 """
  32 import os
  33 
  34 from easybuild.tools.build_log import EasyBuildError
  35 from easybuild.tools.toolchain.linalg import LinAlg
  36 
  37 
  38 CRAY_LIBSCI_MODULE_NAME = 'cray-libsci'
  39 TC_CONSTANT_CRAY_LIBSCI = 'CrayLibSci'
  40 
  41 
  42 class LibSci(LinAlg):
  43     """Support for Cray's LibSci library, which provides BLAS/LAPACK support."""
  44     # BLAS/LAPACK support
  45     # via cray-libsci module, which gets loaded via the PrgEnv module
  46     # see https://www.nersc.gov/users/software/programming-libraries/math-libraries/libsci/
  47     BLAS_MODULE_NAME = [CRAY_LIBSCI_MODULE_NAME]
  48 
  49     # no need to specify libraries, compiler driver takes care of linking the right libraries
  50     # FIXME: need to revisit this, on numpy we ended up with a serial BLAS through the wrapper.
  51     BLAS_LIB = []
  52     BLAS_LIB_MT = []
  53     BLAS_FAMILY = TC_CONSTANT_CRAY_LIBSCI
  54 
  55     LAPACK_MODULE_NAME = [CRAY_LIBSCI_MODULE_NAME]
  56     LAPACK_IS_BLAS = True
  57     LAPACK_FAMILY = TC_CONSTANT_CRAY_LIBSCI
  58 
  59     BLACS_MODULE_NAME = []
  60     SCALAPACK_MODULE_NAME = []
  61 
  62     def _get_software_root(self, name):
  63         """Get install prefix for specified software name; special treatment for Cray modules."""
  64         if name == 'cray-libsci':
  65             # Cray-provided LibSci module
  66             env_var = 'CRAY_LIBSCI_PREFIX_DIR'
  67             root = os.getenv(env_var, None)
  68             if root is None:
  69                 raise EasyBuildError("Failed to determine install prefix for %s via $%s", name, env_var)
  70             else:
  71                 self.log.debug("Obtained install prefix for %s via $%s: %s", name, env_var, root)
  72         else:
  73             root = super(LibSci, self)._get_software_root(name)
  74 
  75         return root
  76 
  77     def _set_blacs_variables(self):
  78         """Skip setting BLACS related variables"""
  79         pass
  80 
  81     def _set_scalapack_variables(self):
  82         """Skip setting ScaLAPACK related variables"""
  83         pass
  84 
  85     def definition(self):
  86         """
  87         Filter BLAS module from toolchain definition.
  88         The cray-libsci module is loaded indirectly (and versionless) via the PrgEnv module,
  89         and thus is not a direct toolchain component.
  90         """
  91         tc_def = super(LibSci, self).definition()
  92         tc_def['BLAS'] = []
  93         tc_def['LAPACK'] = []
  94         return tc_def
  95
  [end of easybuild/toolchains/linalg/libsci.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/easybuild/toolchains/linalg/libsci.py b/easybuild/toolchains/linalg/libsci.py
  --- a/easybuild/toolchains/linalg/libsci.py
  +++ b/easybuild/toolchains/linalg/libsci.py
  @@ -48,8 +48,8 @@
   
       # no need to specify libraries, compiler driver takes care of linking the right libraries
       # FIXME: need to revisit this, on numpy we ended up with a serial BLAS through the wrapper.
  -    BLAS_LIB = []
  -    BLAS_LIB_MT = []
  +    BLAS_LIB = ['']
  +    BLAS_LIB_MT = ['']
       BLAS_FAMILY = TC_CONSTANT_CRAY_LIBSCI
   
       LAPACK_MODULE_NAME = [CRAY_LIBSCI_MODULE_NAME]
  
verification_info: {"golden_diff": "diff --git a/easybuild/toolchains/linalg/libsci.py b/easybuild/toolchains/linalg/libsci.py\n--- a/easybuild/toolchains/linalg/libsci.py\n+++ b/easybuild/toolchains/linalg/libsci.py\n@@ -48,8 +48,8 @@\n \n     # no need to specify libraries, compiler driver takes care of linking the right libraries\n     # FIXME: need to revisit this, on numpy we ended up with a serial BLAS through the wrapper.\n-    BLAS_LIB = []\n-    BLAS_LIB_MT = []\n+    BLAS_LIB = ['']\n+    BLAS_LIB_MT = ['']\n     BLAS_FAMILY = TC_CONSTANT_CRAY_LIBSCI\n \n     LAPACK_MODULE_NAME = [CRAY_LIBSCI_MODULE_NAME]\n", "issue": "Error \"_set_blas_variables: blas_lib not set\" in EasyBuild 3.9.1\nI am getting the following error when I am trying to build LAMMPS with EasyBuild 3.9.1. \r\nFor an extended dry run, the following is included in the logs:\r\n```\r\nWARNING: ignoring error '_set_blas_variables: BLAS_LIB not set'\r\n```\r\n\r\nUsing EasyBuild 3.8.1 the build succeeds. The eb recipe is this https://github.com/eth-cscs/production/blob/master/easybuild/easyconfigs/l/LAMMPS/LAMMPS-22Aug2018-CrayGNU-18.08.eb,\n", "before_files": [{"content": "##\n# Copyright 2014-2019 Ghent University\n#\n# This file is part of EasyBuild,\n# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),\n# with support of Ghent University (http://ugent.be/hpc),\n# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),\n# Flemish Research Foundation (FWO) (http://www.fwo.be/en)\n# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).\n#\n# https://github.com/easybuilders/easybuild\n#\n# EasyBuild is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation v2.\n#\n# EasyBuild is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with EasyBuild.  If not, see <http://www.gnu.org/licenses/>.\n##\n\"\"\"\nSupport for Cray's LibSci library, which provides BLAS/LAPACK support.\ncfr. https://www.nersc.gov/users/software/programming-libraries/math-libraries/libsci/\n\n:author: Petar Forai (IMP/IMBA, Austria)\n:author: Kenneth Hoste (Ghent University)\n\"\"\"\nimport os\n\nfrom easybuild.tools.build_log import EasyBuildError\nfrom easybuild.tools.toolchain.linalg import LinAlg\n\n\nCRAY_LIBSCI_MODULE_NAME = 'cray-libsci'\nTC_CONSTANT_CRAY_LIBSCI = 'CrayLibSci'\n\n\nclass LibSci(LinAlg):\n    \"\"\"Support for Cray's LibSci library, which provides BLAS/LAPACK support.\"\"\"\n    # BLAS/LAPACK support\n    # via cray-libsci module, which gets loaded via the PrgEnv module\n    # see https://www.nersc.gov/users/software/programming-libraries/math-libraries/libsci/\n    BLAS_MODULE_NAME = [CRAY_LIBSCI_MODULE_NAME]\n\n    # no need to specify libraries, compiler driver takes care of linking the right libraries\n    # FIXME: need to revisit this, on numpy we ended up with a serial BLAS through the wrapper.\n    BLAS_LIB = []\n    BLAS_LIB_MT = []\n    BLAS_FAMILY = TC_CONSTANT_CRAY_LIBSCI\n\n    LAPACK_MODULE_NAME = [CRAY_LIBSCI_MODULE_NAME]\n    LAPACK_IS_BLAS = True\n    LAPACK_FAMILY = TC_CONSTANT_CRAY_LIBSCI\n\n    BLACS_MODULE_NAME = []\n    SCALAPACK_MODULE_NAME = []\n\n    def _get_software_root(self, name):\n        \"\"\"Get install prefix for specified software name; special treatment for Cray modules.\"\"\"\n        if name == 'cray-libsci':\n            # Cray-provided LibSci module\n            env_var = 'CRAY_LIBSCI_PREFIX_DIR'\n            root = os.getenv(env_var, None)\n            if root is None:\n                raise EasyBuildError(\"Failed to determine install prefix for %s via $%s\", name, env_var)\n            else:\n                self.log.debug(\"Obtained install prefix for %s via $%s: %s\", name, env_var, root)\n        else:\n            root = super(LibSci, self)._get_software_root(name)\n\n        return root\n\n    def _set_blacs_variables(self):\n        \"\"\"Skip setting BLACS related variables\"\"\"\n        pass\n\n    def _set_scalapack_variables(self):\n        \"\"\"Skip setting ScaLAPACK related variables\"\"\"\n        pass\n\n    def definition(self):\n        \"\"\"\n        Filter BLAS module from toolchain definition.\n        The cray-libsci module is loaded indirectly (and versionless) via the PrgEnv module,\n        and thus is not a direct toolchain component.\n        \"\"\"\n        tc_def = super(LibSci, self).definition()\n        tc_def['BLAS'] = []\n        tc_def['LAPACK'] = []\n        return tc_def\n", "path": "easybuild/toolchains/linalg/libsci.py"}]}