summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory L. Lee <lee218@llnl.gov>2016-05-13 15:16:07 -0700
committerGregory L. Lee <lee218@llnl.gov>2016-05-13 15:16:07 -0700
commite9b71872a8d590d342e4cfcc78ff9855cff7fc24 (patch)
tree35a3450db7327ed57a97e998d4116af11cb18952
parentb8a91db08948440100a2d4d6a0cad01f1eb9b33a (diff)
downloadspack-e9b71872a8d590d342e4cfcc78ff9855cff7fc24.tar.gz
spack-e9b71872a8d590d342e4cfcc78ff9855cff7fc24.tar.bz2
spack-e9b71872a8d590d342e4cfcc78ff9855cff7fc24.tar.xz
spack-e9b71872a8d590d342e4cfcc78ff9855cff7fc24.zip
addressed PR#946 comments from @adamjstewart
-rw-r--r--lib/spack/spack/hooks/licensing.py2
-rw-r--r--lib/spack/spack/package.py6
-rw-r--r--var/spack/repos/builtin/packages/daal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/intel-parallel-studio/package.py (renamed from var/spack/repos/builtin/packages/intel-parallelstudio/package.py)36
-rw-r--r--var/spack/repos/builtin/packages/intel/package.py17
5 files changed, 24 insertions, 39 deletions
diff --git a/lib/spack/spack/hooks/licensing.py b/lib/spack/spack/hooks/licensing.py
index f5d3ebd98c..9010b84154 100644
--- a/lib/spack/spack/hooks/licensing.py
+++ b/lib/spack/spack/hooks/licensing.py
@@ -154,7 +154,7 @@ def symlink_license(pkg):
target = pkg.global_license_file
for filename in pkg.license_files:
link_name = join_path(pkg.prefix, filename)
- license_dir = os.path.split(link_name)[0]
+ license_dir = os.path.dirname(link_name)
if not os.path.exists(license_dir):
mkdirp(license_dir)
if os.path.exists(target):
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index cda6a4be18..fa3ece47f7 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -399,13 +399,15 @@ class Package(object):
@property
def global_license_dir(self):
- """Returns the path where a global license file should be stored."""
+ """Returns the directory where global license files for all
+ packages are stored."""
spack_root = ancestor(__file__, 4)
return join_path(spack_root, 'etc', 'spack', 'licenses')
@property
def global_license_file(self):
- """Returns the path where a global license file should be stored."""
+ """Returns the path where a global license file for this
+ particular package should be stored."""
if not self.license_files:
return
return join_path(self.global_license_dir, self.name,
diff --git a/var/spack/repos/builtin/packages/daal/package.py b/var/spack/repos/builtin/packages/daal/package.py
index 16ae048a4c..9fdbd7bf5e 100644
--- a/var/spack/repos/builtin/packages/daal/package.py
+++ b/var/spack/repos/builtin/packages/daal/package.py
@@ -4,7 +4,7 @@ import sys, os, re
from spack.pkg.builtin.intel import IntelInstaller
class Daal(IntelInstaller):
- """Intel Data Analytics Accesleration Library.
+ """Intel Data Analytics Acceleration Library.
Note: You will have to add the download file to a
mirror so that Spack can find it. For instructions on how to set up a
diff --git a/var/spack/repos/builtin/packages/intel-parallelstudio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
index 127a89654d..3a44cb32a3 100644
--- a/var/spack/repos/builtin/packages/intel-parallelstudio/package.py
+++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
@@ -1,9 +1,9 @@
from spack import *
import sys, os, re
-from spack.pkg.builtin.intel import IntelInstaller, filter_pick
+from spack.pkg.builtin.intel import IntelInstaller, filter_pick, get_all_components
-class IntelParallelstudio(IntelInstaller):
+class IntelParallelStudio(IntelInstaller):
"""Intel Parallel Studio.
Note: You will have to add the download file to a
@@ -41,12 +41,6 @@ class IntelParallelstudio(IntelInstaller):
def install(self, spec, prefix):
- # remove the installation DB, otherwise it will try to install into location of other Intel builds
- try:
- os.remove(os.path.join(os.environ["HOME"], "intel", "intel_sdp_products.db"))
- except OSError:
- pass # if the file does not exist
-
base_components = "ALL" # when in doubt, install everything
mpi_components = ""
mkl_components = ""
@@ -57,19 +51,13 @@ class IntelParallelstudio(IntelInstaller):
if spec.satisfies('+all'):
base_components = "ALL"
else:
- with open("pset/mediaconfig.xml", "r") as f:
- lines = f.readlines()
- all_components = []
- for line in lines:
- if line.find('<Abbr>') != -1:
- component = line[line.find('<Abbr>') + 6:line.find('</Abbr>')]
- all_components.append(component)
- base_components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
- mpi_components = filter_pick(all_components, re.compile('(icsxe|imb|mpi|itac|intel-tc|clck)').search)
- mkl_components = filter_pick(all_components, re.compile('(mkl)').search)
- daal_components = filter_pick(all_components, re.compile('(daal)').search)
- ipp_components = filter_pick(all_components, re.compile('(ipp)').search)
- tool_components = filter_pick(all_components, re.compile('(gdb|vtune|inspector|advisor)').search)
+ all_components = get_all_components()
+ base_components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
+ mpi_components = filter_pick(all_components, re.compile('(icsxe|imb|mpi|itac|intel-tc|clck)').search)
+ mkl_components = filter_pick(all_components, re.compile('(mkl)').search)
+ daal_components = filter_pick(all_components, re.compile('(daal)').search)
+ ipp_components = filter_pick(all_components, re.compile('(ipp)').search)
+ tool_components = filter_pick(all_components, re.compile('(gdb|vtune|inspector|advisor)').search)
components = base_components
if not spec.satisfies('+all'):
@@ -87,10 +75,10 @@ class IntelParallelstudio(IntelInstaller):
self.intel_components = ';'.join(components)
IntelInstaller.install(self, spec, prefix)
- absbindir = os.path.split(os.path.realpath(os.path.join(self.prefix.bin, "icc")))[0]
- abslibdir = os.path.split(os.path.realpath(os.path.join(self.prefix.lib, "intel64", "libimf.a")))[0]
+ absbindir = os.path.dirname(os.path.realpath(os.path.join(self.prefix.bin, "icc")))
+ abslibdir = os.path.dirname(os.path.realpath(os.path.join(self.prefix.lib, "intel64", "libimf.a")))
- # symlink or copy?
+ relbindir = absbindir.strip(os.path.commonprefix([self.prefix, absbindir]))
os.symlink(self.global_license_file, os.path.join(absbindir, "license.lic"))
if spec.satisfies('+tools') and (spec.satisfies('@cluster') or spec.satisfies('@professional')):
os.mkdir(os.path.join(self.prefix, "inspector_xe/licenses"))
diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py
index e51cc773af..a547ab56db 100644
--- a/var/spack/repos/builtin/packages/intel/package.py
+++ b/var/spack/repos/builtin/packages/intel/package.py
@@ -2,12 +2,15 @@ from spack import *
import sys, os, re
def filter_pick(input_list, regex_filter):
+ """Returns the items in input_list that are found in the regex_filter"""
return [l for l in input_list for m in (regex_filter(l),) if m]
def unfilter_pick(input_list, regex_filter):
+ """Returns the items in input_list that are not found in the regex_filter"""
return [l for l in input_list for m in (regex_filter(l),) if not m]
def get_all_components():
+ """Returns a list of all the components associated with the downloaded Intel package"""
all_components = []
with open("pset/mediaconfig.xml", "r") as f:
lines = f.readlines()
@@ -39,10 +42,8 @@ class IntelInstaller(Package):
def install(self, spec, prefix):
# remove the installation DB, otherwise it will try to install into location of other Intel builds
- try:
+ if os.path.exists(os.path.join(os.environ["HOME"], "intel", "intel_sdp_products.db")):
os.remove(os.path.join(os.environ["HOME"], "intel", "intel_sdp_products.db"))
- except OSError:
- pass # if the file does not exist
if not hasattr(self, "intel_prefix"):
self.intel_prefix = self.prefix
@@ -90,14 +91,8 @@ class Intel(IntelInstaller):
pass # if the file does not exist
components = []
- with open("pset/mediaconfig.xml", "r") as f:
- lines = f.readlines()
- all_components = []
- for line in lines:
- if line.find('<Abbr>') != -1:
- component = line[line.find('<Abbr>') + 6:line.find('</Abbr>')]
- all_components.append(component)
- components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
+ all_components = get_all_components()
+ components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
self.intel_components = ';'.join(components)
IntelInstaller.install(self, spec, prefix)