Merge branch 'develop' into features/shared to support Spack 0.13.3

This commit is contained in:
Carson Woods
2019-12-26 21:00:09 -06:00
882 changed files with 14977 additions and 6328 deletions

View File

@@ -19,6 +19,9 @@ class HashTest1(Package):
version('1.2', 'b' * 32)
version('1.3', 'c' * 32)
version('1.4', 'd' * 32)
version('1.5', 'd' * 32)
version('1.6', 'e' * 32)
version('1.7', 'f' * 32)
patch('patch1.patch', when="@1.1")
patch('patch2.patch', when="@1.4")
@@ -34,6 +37,10 @@ def install(self, spec, prefix):
print("install 1")
os.listdir(os.getcwd())
@when('@1.5')
@when('@1.5:')
def install(self, spec, prefix):
os.listdir(os.getcwd())
@when('@1.5,1.6')
def extra_phase(self, spec, prefix):
pass

View File

@@ -0,0 +1,42 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os
class HashTest3(Package):
"""Used to test package hashing
"""
homepage = "http://www.hashtest3.org"
url = "http://www.hashtest1.org/downloads/hashtest3-1.1.tar.bz2"
version('1.2', 'b' * 32)
version('1.3', 'c' * 32)
version('1.5', 'd' * 32)
version('1.6', 'e' * 32)
version('1.7', 'f' * 32)
variant('variantx', default=False, description='Test variant X')
variant('varianty', default=False, description='Test variant Y')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
pass
@when('@:1.4')
def install(self, spec, prefix):
print("install 1")
os.listdir(os.getcwd())
@when('@1.5:')
def install(self, spec, prefix):
os.listdir(os.getcwd())
for _version_constraint in ['@1.5', '@1.6']:
@when(_version_constraint)
def extra_phase(self, spec, prefix):
pass

View File

@@ -0,0 +1,21 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class MissingDependency(Package):
"""Package with a dependency that does not exist."""
homepage = "http://www.example.com"
url = "http://www.example.com/missing-dependency-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
# intentionally missing to test possible_dependencies()
depends_on("this-is-a-missing-dependency")
# this one is a "real" mock dependency
depends_on("a")

View File

@@ -14,5 +14,5 @@ class NoversionBundle(BundlePackage):
"""
homepage = "http://www.example.com"
url = "http://www.example.com/a-1.0.tar.gz"
depends_on('dependency-install')

View File

@@ -0,0 +1 @@
this patch is never applied, it is used to check spec semantics on when the concretizer chooses to include a patch

View File

@@ -13,11 +13,14 @@ class Patch(Package):
url = "http://www.example.com/patch-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
version('1.0.1')
version('1.0.2')
version('2.0', '0123456789abcdef0123456789abcdef')
patch('foo.patch')
patch('bar.patch', when='@2:')
patch('baz.patch')
patch('biz.patch', when='@1.0.1:1.0.2')
def install(self, spec, prefix):
pass

View File

@@ -0,0 +1,23 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class AbseilCpp(CMakePackage):
"""Abseil Common Libraries (C++) """
homepage = "https://abseil.io/"
url = "https://github.com/abseil/abseil-cpp/archive/20180600.tar.gz"
maintainers = ['jcftang']
version('20190808', sha256='8100085dada279bf3ee00cd064d43b5f55e5d913be0dfe2906f06f8f28d5b37e')
version('20181200', sha256='e2b53bfb685f5d4130b84c4f3050c81bf48c497614dc85d91dbd3ed9129bce6d')
version('20180600', sha256='794d483dd9a19c43dc1fbbe284ce8956eb7f2600ef350dac4c602f9b4eb26e90')
def cmake_args(self):
args = ["-DBUILD_TESTING=OFF", "-DCMAKE_CXX_STANDARD=11"]
return args

View File

@@ -0,0 +1,11 @@
--- spack-src/include/parUtils.txx.org 2019-11-27 16:41:07.438799437 +0900
+++ spack-src/include/parUtils.txx 2019-11-27 16:54:51.654921619 +0900
@@ -70,7 +70,7 @@
}
omp_par::scan(&s_cnt[0],&s_dsp[0],np+1);
- size_t range[2]={0,np};
+ size_t range[2]={0,(unsigned long)np};
for(size_t np_new=np; np_new>1; np_new/=kway){
double tt=omp_get_wtime();
if(kway>np_new) kway=np_new;

View File

@@ -24,6 +24,9 @@ class Accfft(CMakePackage, CudaPackage):
depends_on('parallel-netcdf', when='+pnetcdf')
# fix error [-Wc++11-narrowing]
patch('fix_narrowing_error.patch')
parallel = False
def cmake_args(self):

View File

@@ -25,11 +25,13 @@ class Ack(Package):
def install(self, spec, prefix):
mkdirp(prefix.bin)
ack = 'ack-{0}-single-file'.format(self.version)
ack_source = 'ack-{0}-single-file'.format(self.version)
ack_installed = join_path(prefix.bin, "ack")
# install source
install(ack_source, ack_installed)
set_executable(ack_installed)
# rewrite the script's #! line to call the perl dependency
shbang = '#!' + spec['perl'].command.path
filter_file(r'^#!/usr/bin/env perl', shbang, ack)
install(ack, join_path(prefix.bin, "ack"))
set_executable(join_path(prefix.bin, "ack"))
filter_file(r'^#!/usr/bin/env perl', shbang, ack_installed)

View File

@@ -0,0 +1,21 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Activemq(Package):
"""
Apache ActiveMQ is a high performance Apache 2.0 licensed Message Broker
and JMS 1.1 implementation.
"""
homepage = "https://archive.apache.org/dist/activemq"
url = "https://archive.apache.org/dist/activemq/5.14.0/apache-activemq-5.14.0-bin.tar.gz"
version('5.14.0', sha256='81c623465af277dd50a141a8d9308d6ec8e1b78d9019b845873dc12d117aa9a6')
def install(self, spec, prefix):
install_tree('.', prefix)

View File

@@ -31,8 +31,14 @@ class ActsCore(CMakePackage):
homepage = "http://acts.web.cern.ch/ACTS/"
git = "https://gitlab.cern.ch/acts/acts-core.git"
maintainers = ['HadrienG2']
version('develop', branch='master')
version('0.13.0', commit='b33f7270ddbbb33050b7ec60b4fa255dc2bfdc88')
version('0.12.1', commit='a8b3d36e7c6cb86487637589e0eff7bbe626054a')
version('0.12.0', commit='f9cda77299606d78c889fb1db2576c1971a271c4')
version('0.11.1', commit='c21196cd6c3ecc6da0f14d0a9ef227a274be584b')
version('0.11.0', commit='22bcea1f19adb0021ca61b843b95cfd2462dd31d')
version('0.10.5', commit='b6f7234ca8f18ee11e57709d019c14bf41cf9b19')
version('0.10.4', commit='42cbc359c209f5cf386e620b5a497192c024655e')
version('0.10.3', commit='a3bb86b79a65b3d2ceb962b60411fd0df4cf274c')
@@ -84,7 +90,7 @@ def cmake_variant(cmake_label, spack_variant):
cmake_variant("INTEGRATION_TESTS", "integration_tests"),
cmake_variant("DIGITIZATION_PLUGIN", "digitization"),
cmake_variant("DD4HEP_PLUGIN", "dd4hep"),
cmake_variant("IDENTIFICATION", "identification"),
cmake_variant("IDENTIFICATION_PLUGIN", "identification"),
cmake_variant("JSON_PLUGIN", "json"),
cmake_variant("TGEO_PLUGIN", "tgeo")
]

View File

@@ -0,0 +1,213 @@
From 2f05a0b1def194001d1f6e0f9a07725c10b48301 Mon Sep 17 00:00:00 2001
From: Greg Eisenhauer <eisen@cc.gatech.edu>
Date: Fri, 13 Dec 2019 10:00:15 -0500
Subject: [PATCH] Merge branch 'upstream-dill' into DillUpstream
* upstream-dill:
dill 2019-12-12 (dac6dfcc)
---
thirdparty/dill/dill/CMakeLists.txt | 5 ++++-
thirdparty/dill/dill/LICENSE | 24 ++++++++++++++++++++++++
thirdparty/dill/dill/arm6.c | 19 +++----------------
thirdparty/dill/dill/arm6_rt.c | 19 +++----------------
thirdparty/dill/dill/arm8.c | 19 +++----------------
thirdparty/dill/dill/arm8_rt.c | 19 +++----------------
thirdparty/dill/dill/config.h.cmake | 7 +++++--
7 files changed, 45 insertions(+), 67 deletions(-)
create mode 100644 thirdparty/dill/dill/LICENSE
diff --git a/thirdparty/dill/dill/CMakeLists.txt b/thirdparty/dill/dill/CMakeLists.txt
index 0461556a..695db8c6 100644
--- a/thirdparty/dill/dill/CMakeLists.txt
+++ b/thirdparty/dill/dill/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.0)
-project(DILL VERSION 2.4.0 LANGUAGES C CXX)
+project(DILL VERSION 2.4.1 LANGUAGES C CXX)
# Some boilerplate to setup nice output directories
include(GNUInstallDirs)
@@ -265,6 +265,9 @@ check_include_files(unistd.h HAVE_UNISTD_H)
check_include_files(stdarg.h STDC_HEADERS)
check_include_files(malloc.h HAVE_MALLOC_H)
check_include_files(memory.h HAVE_MEMORY_H)
+include(CheckSymbolExists)
+check_symbol_exists(__clear_cache "" CLEAR_CACHE_DEFINED)
+message(STATUS "Clear cache defined is ${CLEAR_CACHE_DEFINED}")
set(NO_DISASSEMBLER TRUE)
if(DILL_ENABLE_DISASSEMBLY)
diff --git a/thirdparty/dill/dill/LICENSE b/thirdparty/dill/dill/LICENSE
new file mode 100644
index 00000000..81b08341
--- /dev/null
+++ b/thirdparty/dill/dill/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2010, Georgia Tech Research Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the Georgia Tech Research Corporation nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY GEORGIA TECH RESEARCH CORPORATION ''AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL GEORGIA TECH BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/thirdparty/dill/dill/arm6.c b/thirdparty/dill/dill/arm6.c
index f2be1725..da90507c 100644
--- a/thirdparty/dill/dill/arm6.c
+++ b/thirdparty/dill/dill/arm6.c
@@ -1526,22 +1526,9 @@ arm6_call_link(dill_stream s)
}
-/* Clear the instruction cache from `beg' to `end'. This makes an
- inline system call to SYS_cacheflush. */
-#define CLEAR_INSN_CACHE(BEG, END) \
-{ \
- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \
- register unsigned long _end __asm ("a2") = (unsigned long) (END); \
- register unsigned long _flg __asm ("a3") = 0; \
- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \
- : "=r" (_beg) \
- : "0" (_beg), "r" (_end), "r" (_flg)); \
-}
-/*
- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker
- * mailing list
- */
-extern void __clear_cache(char*, char *);
+#ifndef CLEAR_CACHE_DEFINED
+extern void __clear_cache(void *, void *);
+#endif
static void
arm6_flush(void *base, void *limit)
diff --git a/thirdparty/dill/dill/arm6_rt.c b/thirdparty/dill/dill/arm6_rt.c
index 1f64b477..6b7e908e 100644
--- a/thirdparty/dill/dill/arm6_rt.c
+++ b/thirdparty/dill/dill/arm6_rt.c
@@ -109,22 +109,9 @@ arm6_rt_call_link(char *code, call_t *t)
}
}
-/* Clear the instruction cache from `beg' to `end'. This makes an
- inline system call to SYS_cacheflush. */
-#define CLEAR_INSN_CACHE(BEG, END) \
-{ \
- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \
- register unsigned long _end __asm ("a2") = (unsigned long) (END); \
- register unsigned long _flg __asm ("a3") = 0; \
- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \
- : "=r" (_beg) \
- : "0" (_beg), "r" (_end), "r" (_flg)); \
-}
-/*
- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker
- * mailing list
- */
-extern void __clear_cache(char*, char *);
+#ifndef CLEAR_CACHE_DEFINED
+extern void __clear_cache(void *, void *);
+#endif
static void
arm6_flush(void *base, void *limit)
diff --git a/thirdparty/dill/dill/arm8.c b/thirdparty/dill/dill/arm8.c
index fd5ed79f..d1894635 100644
--- a/thirdparty/dill/dill/arm8.c
+++ b/thirdparty/dill/dill/arm8.c
@@ -1524,22 +1524,9 @@ arm8_call_link(dill_stream s)
}
-/* Clear the instruction cache from `beg' to `end'. This makes an
- inline system call to SYS_cacheflush. */
-#define CLEAR_INSN_CACHE(BEG, END) \
-{ \
- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \
- register unsigned long _end __asm ("a2") = (unsigned long) (END); \
- register unsigned long _flg __asm ("a3") = 0; \
- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \
- : "=r" (_beg) \
- : "0" (_beg), "r" (_end), "r" (_flg)); \
-}
-/*
- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker
- * mailing list
- */
-extern void __clear_cache(char*, char *);
+#ifndef CLEAR_CACHE_DEFINED
+extern void __clear_cache(void *, void *);
+#endif
static void
arm8_flush(void *base, void *limit)
diff --git a/thirdparty/dill/dill/arm8_rt.c b/thirdparty/dill/dill/arm8_rt.c
index bd0209cd..5cb107ed 100644
--- a/thirdparty/dill/dill/arm8_rt.c
+++ b/thirdparty/dill/dill/arm8_rt.c
@@ -109,22 +109,9 @@ arm8_rt_call_link(char *code, call_t *t)
}
}
-/* Clear the instruction cache from `beg' to `end'. This makes an
- inline system call to SYS_cacheflush. */
-#define CLEAR_INSN_CACHE(BEG, END) \
-{ \
- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \
- register unsigned long _end __asm ("a2") = (unsigned long) (END); \
- register unsigned long _flg __asm ("a3") = 0; \
- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \
- : "=r" (_beg) \
- : "0" (_beg), "r" (_end), "r" (_flg)); \
-}
-/*
- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker
- * mailing list
- */
-extern void __clear_cache(char*, char *);
+#ifndef CLEAR_CACHE_DEFINED
+extern void __clear_cache(void *, void *);
+#endif
static void
arm8_flush(void *base, void *limit)
diff --git a/thirdparty/dill/dill/config.h.cmake b/thirdparty/dill/dill/config.h.cmake
index a8519064..a9622f56 100644
--- a/thirdparty/dill/dill/config.h.cmake
+++ b/thirdparty/dill/dill/config.h.cmake
@@ -16,10 +16,13 @@
#cmakedefine HAVE_DIS_ASM_H
/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
+#cmakedefine HAVE_DLFCN_H
/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
+#cmakedefine HAVE_INTTYPES_H
+
+/* Define to 1 if you have __clear_cache is defined */
+#cmakedefine CLEAR_CACHE_DEFINED
/* Define to 1 if you have the <malloc.h> header file. */
#cmakedefine HAVE_MALLOC_H
--
2.18.1

View File

@@ -109,6 +109,11 @@ class Adios2(CMakePackage):
# See https://github.com/ornladios/ADIOS2/pull/1632
patch('cmake-update-findmpi.patch', when='@2.4.0')
# Fix the signature of the builtin clear_cache function in the
# third-party dill library.
# See https://github.com/ornladios/ADIOS2/pull/1899
patch('2.5-fix-clear_cache.patch', when='@2.5.0')
def cmake_args(self):
spec = self.spec

View File

@@ -0,0 +1,23 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Alluxio(Package):
"""
Alluxio (formerly known as Tachyon) is a virtual distributed storage
system. It bridges the gap between computation frameworks and storage
systems, enabling computation applications to connect to numerous
storage systems through a common interface.
"""
homepage = "https://github.com/Alluxio/alluxio"
url = "https://github.com/Alluxio/alluxio/archive/v2.1.0.tar.gz"
version('2.1.0', sha256='c8b5b7848488e0ac10b093eea02ef05fa822250669d184291cc51b2f8aac253e')
def install(self, spec, prefix):
install_tree('.', prefix)

View File

@@ -5,6 +5,7 @@
from spack import *
import os
import shutil
class Amber(Package, CudaPackage):
@@ -17,63 +18,171 @@ class Amber(Package, CudaPackage):
http://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "http://ambermd.org/"
url = "file://{0}/Amber16.tar.bz2".format(os.getcwd())
url = "file://{0}/Amber18.tar.bz2".format(os.getcwd())
maintainers = ['hseara']
version('18', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277')
version('16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d')
variant('mpi', description='Build MPI executables', default=True)
resources = [
# [version amber, version ambertools , sha256sum]
('18', '19', '0c86937904854b64e4831e047851f504ec45b42e593db4ded92c1bee5973e699'),
('16', '16', '7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa'),
]
for ver, ambertools_ver, checksum in resources:
resource(when='@{0}'.format(ver),
name='AmberTools',
url='file://{0}/AmberTools{1}.tar.bz2'.format(os.getcwd(),
ambertools_ver),
sha256=checksum,
destination='',
placement='ambertools_tmpdir',
)
resource(
name='AmberTools',
sha256='7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa',
url='file://{0}/AmberTools16.tar.bz2'.format(os.getcwd()),
destination='.',
)
patches = [
('18', '1', '3cefac9a24ece99176d5d2d58fea2722de3e235be5138a128428b9260fe922ad'),
('18', '2', '3a0707a9a59dcbffa765dcf87b68001450095c51b96ec39d21260ba548a2f66a'),
('18', '3', '24c2e06f71ae553a408caa3f722254db2cbf1ca4db274542302184e3d6ca7015'),
('18', '4', '51de613e8fda20cc92979265cf7179288df8c1af4202f02794ad7327fda2657b'),
('18', '5', 'c70354bfa312603e4819efce11a242ddcc3830895453d9424f0c83f7ae98bc5b'),
('18', '6', '3450433a8697b27e43172043be68d31515a7c7c00b2b248f84043dd70a2f59a8'),
('18', '7', '10ba41422b7a3eb5b32bc6453231100544cf620c764ab8332c629a3b9fc749d4'),
('18', '8', '73968dc0fd99bcbd5eae2223bd54f414879c062ac933948ba6b8b67383dc6a53'),
('18', '9', 'e7d72fa31560f1e8ea572b8c73259d9fe512f56fbeb1b58ae014c43b9b5b6290'),
('18', '10', '1bee419a3b0b686a729aa12515b0f96a9a8f43478ca2c01ea1661cc1698c6266'),
('18', '11', '926557f0c137ea8dbf99a0487b25e131b12dfd39977d3e515f01f49187e6a09c'),
('18', '12', '7e2645d539d257f7064808308048622818c9083dedfa4ac0a958cd15181231ac'),
('18', '13', '95d2e33d0d05b8f9b6d8091d1c804271ec3a69e9aef792cc3b1ab8a2165eca3e'),
('18', '14', 'a1adfb072f60ffcb67adb589df7c5578629441bee4ccb89ab635a6e8d7a35277'),
('18', '15', '4deb3df329c05729561dcc7310e49059eaddc504c4210ad31fad11dc70f61742'),
('18', '16', 'cf02f9b949127363bad1aa700ab662a3c7cf9ce0e2e4750e066d2204b9500a99'),
('18', '17', '480300f949e0dd6402051810a9714adb388cf96e454a55346c76954cdd69413d'),
('16', '1.txt', 'c7ef2303bb35131a48e2256c5a3c7b391efa73e2acf757d7e39760efb6320ed4'),
('16', '2', 'a4db183f7c337a67f5d6b5015e3ae0af0d0edaa56894f0e9e3469c99708fed1c'),
('16', '3', '5b279531c42445c6f58281dd94588460218d2258ec9013c8447f3e2b7b81bf02'),
('16', '4', '035bddd63bc9d5fd6de26beab31887e5c14c3caa4958d2424d72f3c49832bd42'),
('16', '5', '02d8a1fcb6baa466de4e3683afa48076394acd805f490fbbe50ab19040675136'),
('16', '6', '69a3e64d75255d9179c98a2b3a63fe76d5be08c9fc41f27ac197663c97915113'),
('16', '7', '0d674c907758e90a168345e6b35b7a0de79c2ead390ab372465a354fcab67d17'),
('16', '8', 'd722c0db46af905a5bd13b60e3130c4ddfb0c9da86df0a33253e5f8d53068946'),
('16', '9', 'b563e744fbc50c1240d23df369750879df2cec69fba933704b97a73a66d9c4f1'),
('16', '10', '99affc65740080b7a1ab87c5c9119bf5be7cf47b2b2d8fc13407d35bd2ba6238'),
('16', '11', '86b89dbcae80ef48720fd3c7da88cffbdabfd4021af5a827339b56a33ddae27a'),
('16', '12', 'c8d61d1efbd44086f88d74ad9e07dfdc3737dc7053c7d2503131ba0918973a03'),
('16', '13', '5ce28e6e0118a4780ad72fc096e617c874cde7d140e15f87451babb25aaf2d8f'),
('16', '14', '93703e734e76da30a5e050189a66d5a4d6bec5885752503c4c798e2f44049080'),
('16', '15', 'a156ec246cd06688043cefde24de0d715fd46b08f5c0235015c2c5c3c6e37488'),
]
for ver, num, checksum in patches:
patch_url_str = 'https://ambermd.org/bugfixes/{0}.0/update.{1}'
patch(patch_url_str.format(ver, num),
sha256=checksum, level=0, when='@{0}'.format(ver))
depends_on('mpi', when='+mpi')
depends_on('cuda@7.5.18', when='+cuda')
variant('mpi', description='Build MPI executables',
default=True)
variant('openmp', description='Use OpenMP pragmas to parallelize',
default=False)
variant('x11', description='Build programs that require X11',
default=False)
variant('update', description='Update the sources prior compilation',
default=False)
depends_on('netcdf-fortran')
depends_on('python+tkinter@2.7:2.8', type=('build', 'run'))
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-scipy', type=('build', 'run'))
depends_on('py-matplotlib@:2.9', type=('build', 'run'))
depends_on('zlib')
depends_on('flex', type='build')
depends_on('bison', type='build')
depends_on('netcdf-fortran')
# Potential issues with openmpi 4
# (http://archive.ambermd.org/201908/0105.html)
depends_on('mpi', when='+mpi')
def setup_environment(self, spack_env, run_env):
sp_dir = join_path(self.prefix, 'python2.7/site-packages')
# Cuda dependencies
depends_on('cuda@:10.1.243', when='@18:+cuda')
depends_on('cuda@7.5.18', when='@:16+cuda')
run_env.set('AMBERHOME', self.prefix)
run_env.prepend_path('PYTHONPATH', sp_dir)
# conflicts
conflicts('+x11', when='platform=cray',
msg='x11 amber applications not available for cray')
conflicts('+openmp', when='%clang',
msg='openmp optimizations not available for the clang compiler')
conflicts('+openmp', when='%pgi',
msg='openmp optimizations not available for the pgi compiler')
def setup_build_environment(self, env):
amber_src = self.stage.source_path
env.set('AMBERHOME', amber_src)
# CUDA
if self.spec.satisfies('+cuda'):
env.set('CUDA_HOME', self.spec['cuda'].prefix)
def install(self, spec, prefix):
# install AmberTools where it should be
install_tree('amber16', '.')
# The resource command does not allow us to expand the package in the
# root stage folder as required, as it already contains files. Here we
# install AmberTools where it should be, which results in 3 copies of
# the ambertools (~9 GB). This has to be improved in the future.
install_tree('ambertools_tmpdir', '.')
shutil.rmtree(join_path(self.stage.source_path, 'ambertools_tmpdir'))
base_args = [
'-noX11',
'--no-updates',
'--skip-python',
'--with-netcdf', self.spec['netcdf-fortran'].prefix
]
configure_env = {
'AMBERHOME': self.stage.source_path,
'CUDA_HOME': self.spec['cuda'].prefix,
}
# Select compiler style
if self.spec.satisfies('%cce'):
compiler = 'cray'
elif self.spec.satisfies('%gcc'):
compiler = 'gnu'
elif self.spec.satisfies('%intel'):
compiler = 'intel'
elif self.spec.satisfies('%pgi'):
compiler = 'pgi'
elif self.spec.satisfies('%clang'):
compiler = 'clang'
else:
raise InstallError('Unknown compiler, exiting!!!')
# Base configuration
conf = Executable('./configure')
base_args = ['--skip-python',
'--with-netcdf', self.spec['netcdf-fortran'].prefix,
]
if self.spec.satisfies('~x11'):
base_args += ['-noX11']
conf(*(base_args + ['gnu']), extra_env=configure_env)
make('install', extra_env=configure_env)
# Update the sources: Apply all upstream patches
if self.spec.satisfies('+update'):
update = Executable('./update_amber')
update(*(['--update']))
else:
base_args += ['--no-updates']
if '+mpi' in spec:
conf(*(base_args + ['-mpi', 'gnu']), extra_env=configure_env)
make('install', extra_env=configure_env)
# Single core
conf(*(base_args + [compiler]))
make('install')
if '+cuda' in spec:
conf(*(base_args + ['-cuda', 'gnu']), extra_env=configure_env)
make('install', extra_env=configure_env)
# CUDA
if self.spec.satisfies('+cuda'):
conf(*(base_args + ['-cuda', compiler]))
make('install')
# MPI
if self.spec.satisfies('+mpi'):
conf(*(base_args + ['-mpi', compiler]))
make('install')
# Openmp
if self.spec.satisfies('+openmp'):
make('clean')
conf(*(base_args + ['-openmp', compiler]))
make('openmp')
# CUDA + MPI
if self.spec.satisfies('+cuda') and self.spec.satisfies('+mpi'):
make('clean')
conf(*(base_args + ['-cuda', '-mpi', compiler]))
make('install')
# just install everything that was built
install_tree('.', prefix)
def setup_run_environment(self, env):
env.set('AMBER_PREFIX', self.prefix)
env.set('AMBERHOME', self.prefix)
# CUDA
if self.spec.satisfies('+cuda'):
env.prepend_path('LD_LIBRARY_PATH', self.spec['cuda'].prefix.lib)

View File

@@ -79,4 +79,7 @@ def cmake_args(self):
'-DENABLE_PARTICLES:BOOL=%s' % self.cmake_is_on('+particles'),
'-DENABLE_SUNDIALS:BOOL=%s' % self.cmake_is_on('+sundials')
]
if self.spec.satisfies('%fj'):
args.append('-DCMAKE_Fortran_MODDIR_FLAG=-M')
return args

View File

@@ -173,16 +173,16 @@ def edit(self, spec, prefix):
with open('GNUmakefile', 'w') as file:
file.writelines(contents)
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
# We don't want an AMREX_HOME the user may have set already
spack_env.unset('AMREX_HOME')
env.unset('AMREX_HOME')
# Help force Amrvis to not pick up random system compilers
if '+mpi' in self.spec:
spack_env.set('MPI_HOME', self.spec['mpi'].prefix)
spack_env.set('CC', self.spec['mpi'].mpicc)
spack_env.set('CXX', self.spec['mpi'].mpicxx)
spack_env.set('F77', self.spec['mpi'].mpif77)
spack_env.set('FC', self.spec['mpi'].mpifc)
env.set('MPI_HOME', self.spec['mpi'].prefix)
env.set('CC', self.spec['mpi'].mpicc)
env.set('CXX', self.spec['mpi'].mpicxx)
env.set('F77', self.spec['mpi'].mpif77)
env.set('FC', self.spec['mpi'].mpifc)
def install(self, spec, prefix):
# Install exe manually

View File

@@ -22,8 +22,8 @@ class Angsd(MakefilePackage):
depends_on('htslib')
conflicts('^htslib@1.6:', when='@0.919')
def setup_environment(self, spack_env, run_env):
run_env.set('R_LIBS', prefix.R)
def setup_run_environment(self, env):
env.set('R_LIBS', self.prefix.R)
def install(self, spec, prefix):
mkdirp(prefix.bin)

View File

@@ -30,5 +30,5 @@ def install(self, spec, prefix):
make("install")
install_tree('Scripts', prefix.bin)
def setup_environment(self, spack_env, run_env):
run_env.set('ANTSPATH', self.prefix.bin)
def setup_run_environment(self, env):
env.set('ANTSPATH', self.prefix.bin)

View File

@@ -28,10 +28,10 @@ class Argobots(AutotoolsPackage):
variant("valgrind", default=False, description="Enable Valgrind")
depends_on("m4", type=("build"), when="@develop")
depends_on("autoconf", type=("build"), when="@develop")
depends_on("automake", type=("build"), when="@develop")
depends_on("libtool", type=("build"), when="@develop")
depends_on("m4", type=("build"), when="@master")
depends_on("autoconf", type=("build"), when="@master")
depends_on("automake", type=("build"), when="@master")
depends_on("libtool", type=("build"), when="@master")
depends_on("valgrind", when="+valgrind")
def configure_args(self):

View File

@@ -0,0 +1,59 @@
diff -ur spack-src.org/src/mtl_headers/mtl/linalg_vec.h spack-src/src/mtl_headers/mtl/linalg_vec.h
--- spack-src.org/src/mtl_headers/mtl/linalg_vec.h 2019-12-25 13:38:14.191695748 +0900
+++ spack-src/src/mtl_headers/mtl/linalg_vec.h 2019-12-25 13:39:08.887447770 +0900
@@ -116,6 +116,7 @@
typedef difference_type Vec_difference_type;
typedef iterator Vec_iterator;
typedef const_iterator Vec_const_iterator;
+ typedef value_type Vec_value_type;
class IndexArray {
public:
diff -ur spack-src.org/src/utils/toolbox/database/HDFDatabase.cc spack-src/src/utils/toolbox/database/HDFDatabase.cc
--- spack-src.org/src/utils/toolbox/database/HDFDatabase.cc 2019-12-25 13:38:14.201696799 +0900
+++ spack-src/src/utils/toolbox/database/HDFDatabase.cc 2019-12-25 14:50:42.627965265 +0900
@@ -686,7 +686,7 @@
herr_t errf;
if (nelements > 0) {
- hsize_t dim[] = {nelements};
+ hsize_t dim[] = {(unsigned long long)nelements};
hid_t space = H5Screate_simple(1, dim, NULL);
#ifdef ASSERT_HDF5_RETURN_VALUES
assert( space >= 0 );
@@ -1233,7 +1233,7 @@
herr_t errf;
if (nelements > 0) {
- hsize_t dim[] = {nelements};
+ hsize_t dim[] = {(unsigned long long)nelements};
hid_t space = H5Screate_simple(1, dim, NULL);
#ifdef ASSERT_HDF5_RETURN_VALUES
assert( space >= 0 );
@@ -1478,7 +1478,7 @@
herr_t errf;
if (nelements > 0) {
- hsize_t dim[] = {nelements};
+ hsize_t dim[] = {(unsigned long long)nelements};
hid_t space = H5Screate_simple(1, dim, NULL);
#ifdef ASSERT_HDF5_RETURN_VALUES
assert( space >= 0 );
@@ -1722,7 +1722,7 @@
herr_t errf;
if (nelements > 0) {
- hsize_t dim[] = {nelements};
+ hsize_t dim[] = {(unsigned long long)nelements};
hid_t space = H5Screate_simple(1, dim, NULL);
#ifdef ASSERT_HDF5_RETURN_VALUES
assert(space >= 0);
@@ -1998,7 +1998,7 @@
assert( errf >= 0 );
#endif
- hsize_t dim[] = {nelements};
+ hsize_t dim[] = {(unsigned long long)nelements};
hid_t space = H5Screate_simple(1, dim, NULL);
#ifdef ASSERT_HDF5_RETURN_VALUES
assert( space >= 0 );

View File

@@ -28,6 +28,8 @@ class Aspa(MakefilePackage):
depends_on('mpi', when='+mpi')
depends_on('hdf5')
patch('fix_common_errors.patch')
@property
def build_targets(self):
targets = [

View File

@@ -11,12 +11,13 @@ class Aspect(CMakePackage):
Earth's mantle and elsewhere."""
homepage = "https://aspect.geodynamics.org"
url = "https://github.com/geodynamics/aspect/releases/download/v2.0.0/aspect-2.0.0.tar.gz"
url = "https://github.com/geodynamics/aspect/releases/download/v2.1.0/aspect-2.1.0.tar.gz"
git = "https://github.com/geodynamics/aspect.git"
maintainers = ['tjhei']
version('develop', branch='master')
version('2.1.0', sha256='bd574d60ed9df1f4b98e68cd526a074d0527c0792763187c9851912327d861a3')
version('2.0.1', sha256='0bf5600c42afce9d39c1d285b0654ecfdeb0f30e9f3421651c95f54ca01ac165')
version('2.0.0', sha256='d485c07f54248e824bdfa35f3eec8971b65e8b7114552ffa2c771bc0dede8cc0')
@@ -35,5 +36,5 @@ def cmake_args(self):
('ON' if '+fpe' in self.spec else 'OFF')
]
def setup_environment(self, spack_env, run_env):
run_env.set('Aspect_DIR', self.prefix)
def setup_run_environment(self, env):
env.set('Aspect_DIR', self.prefix)

View File

@@ -7,16 +7,16 @@
# See also: AspellDictPackage
class Aspell(AutotoolsPackage):
class Aspell(AutotoolsPackage, GNUMirrorPackage):
"""GNU Aspell is a Free and Open Source spell checker designed to
eventually replace Ispell."""
homepage = "http://aspell.net/"
url = "https://ftpmirror.gnu.org/aspell/aspell-0.60.6.1.tar.gz"
gnu_mirror_path = "aspell/aspell-0.60.6.1.tar.gz"
extendable = True # support activating dictionaries
extendable = True # support activating dictionaries
version('0.60.6.1', sha256='f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1')
patch('darwin.patch', when='platform=darwin')
patch('fix_cpp.patch')
patch('issue-519.patch', when='@:0.60.6.1')

View File

@@ -6,10 +6,10 @@
from spack import *
class Aspell6De(AspellDictPackage):
class Aspell6De(AspellDictPackage, GNUMirrorPackage):
"""German (de) dictionary for aspell."""
homepage = "http://aspell.net/"
url = "https://ftpmirror.gnu.org/aspell/dict/de/aspell6-de-20030222-1.tar.bz2"
gnu_mirror_path = "aspell/dict/de/aspell6-de-20030222-1.tar.bz2"
version('6-de-20030222-1', sha256='ba6c94e11bc2e0e6e43ce0f7822c5bba5ca5ac77129ef90c190b33632416e906')

View File

@@ -6,10 +6,10 @@
from spack import *
class Aspell6En(AspellDictPackage):
class Aspell6En(AspellDictPackage, GNUMirrorPackage):
"""English (en) dictionary for aspell."""
homepage = "http://aspell.net/"
url = "https://ftpmirror.gnu.org/aspell/dict/en/aspell6-en-2017.01.22-0.tar.bz2"
gnu_mirror_path = "aspell/dict/en/aspell6-en-2017.01.22-0.tar.bz2"
version('2017.01.22-0', sha256='93c73fae3eab5ea3ca6db3cea8770715a820f1b7d6ea2b932dd66a17f8fd55e1')

View File

@@ -6,10 +6,10 @@
from spack import *
class Aspell6Es(AspellDictPackage):
class Aspell6Es(AspellDictPackage, GNUMirrorPackage):
"""Spanish (es) dictionary for aspell."""
homepage = "http://aspell.net/"
url = "https://ftpmirror.gnu.org/aspell/dict/es/aspell6-es-1.11-2.tar.bz2"
gnu_mirror_path = "aspell/dict/es/aspell6-es-1.11-2.tar.bz2"
version('1.11-2', sha256='ad367fa1e7069c72eb7ae37e4d39c30a44d32a6aa73cedccbd0d06a69018afcc')

View File

@@ -17,8 +17,8 @@ class AsperaCli(Package):
url='https://download.asperasoft.com/download/sw/cli/3.7.7/aspera-cli-3.7.7.608.927cce8-linux-64-release.sh',
expand=False)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.prefix.cli.bin)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix.cli.bin)
def install(self, spec, prefix):
runfile = glob(join_path(self.stage.source_path, 'aspera-cli*.sh'))[0]

View File

@@ -44,5 +44,5 @@ def install(self, spec, prefix):
filter_file('astral.jar', join_path(prefix.tools, jar_file),
script, **kwargs)
def setup_environment(self, spack_env, run_env):
run_env.set('ASTRAL_HOME', self.prefix.tools)
def setup_run_environment(self, env):
env.set('ASTRAL_HOME', self.prefix.tools)

View File

@@ -35,6 +35,6 @@ def url_for_version(self, version):
url = 'http://ftp.gnome.org/pub/gnome/sources/at-spi2-core'
return url + '/%s/at-spi2-core-%s.tar.xz' % (version.up_to(2), version)
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
# this avoids an "import site" error in the build
spack_env.unset('PYTHONHOME')
env.unset('PYTHONHOME')

View File

@@ -35,11 +35,11 @@ def url_for_version(self, version):
url = 'http://ftp.gnome.org/pub/gnome/sources/atk'
return url + '/%s/atk-%s.tar.xz' % (version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS",
self.prefix.share)
run_env.prepend_path("XDG_DATA_DIRS",
self.prefix.share)
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def install(self, spec, prefix):
with working_dir('spack-build', create=True):

View File

@@ -34,6 +34,31 @@ class Augustus(MakefilePackage):
depends_on('curl', when='@3.3.1:')
def edit(self, spec, prefix):
# Set compile commands for each compiler and
# Fix for using 'boost' on Spack. (only after ver.3.3.1-tag1)
if self.version >= Version('3.3.1-tag1'):
with working_dir(join_path('auxprogs', 'utrrnaseq', 'Debug')):
filter_file('g++', spack_cxx, 'makefile', string=True)
filter_file('g++ -I/usr/include/boost', '{0} -I{1}'
.format(spack_cxx,
self.spec['boost'].prefix.include),
'src/subdir.mk', string=True)
# Set compile commands to all makefiles.
makefiles = [
'auxprogs/aln2wig/Makefile',
'auxprogs/bam2hints/Makefile',
'auxprogs/bam2wig/Makefile',
'auxprogs/checkTargetSortedness/Makefile',
'auxprogs/compileSpliceCands/Makefile',
'auxprogs/homGeneMapping/src/Makefile',
'auxprogs/joingenes/Makefile',
'src/Makefile'
]
for makefile in makefiles:
filter_file('gcc', spack_cc, makefile, string=True)
filter_file('g++', spack_cxx, makefile, string=True)
with working_dir(join_path('auxprogs', 'filterBam', 'src')):
makefile = FileFilter('Makefile')
makefile.filter('BAMTOOLS = .*', 'BAMTOOLS = %s' % self.spec[

View File

@@ -6,11 +6,11 @@
from spack import *
class Autoconf(AutotoolsPackage):
class Autoconf(AutotoolsPackage, GNUMirrorPackage):
"""Autoconf -- system configuration part of autotools"""
homepage = 'https://www.gnu.org/software/autoconf/'
url = 'https://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz'
gnu_mirror_path = 'autoconf/autoconf-2.69.tar.gz'
version('2.69', sha256='954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969')
version('2.62', sha256='83aa747e6443def0ebd1882509c53f5a2133f502ddefa21b3de141c433914bdd')

View File

@@ -6,14 +6,14 @@
from spack import *
class Autogen(AutotoolsPackage):
class Autogen(AutotoolsPackage, GNUMirrorPackage):
"""AutoGen is a tool designed to simplify the creation and maintenance of
programs that contain large amounts of repetitious text. It is especially
valuable in programs that have several blocks of text that must be kept
synchronized."""
homepage = "https://www.gnu.org/software/autogen/index.html"
url = "https://ftpmirror.gnu.org/autogen/rel5.18.12/autogen-5.18.12.tar.gz"
gnu_mirror_path = "autogen/rel5.18.12/autogen-5.18.12.tar.gz"
list_url = "https://ftp.gnu.org/gnu/autogen"
list_depth = 1

View File

@@ -6,11 +6,11 @@
from spack import *
class Automake(AutotoolsPackage):
class Automake(AutotoolsPackage, GNUMirrorPackage):
"""Automake -- make file builder part of autotools"""
homepage = 'http://www.gnu.org/software/automake/'
url = 'https://ftpmirror.gnu.org/automake/automake-1.15.tar.gz'
gnu_mirror_path = 'automake/automake-1.15.tar.gz'
version('1.16.1', sha256='608a97523f97db32f1f5d5615c98ca69326ced2054c9f82e65bade7fc4c9dea8')
version('1.15.1', sha256='988e32527abe052307d21c8ca000aa238b914df363a617e38f4fb89f5abf6260')

View File

@@ -0,0 +1,52 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os
import tarfile
class Avizo(Package):
"""Avizo is a 3D analysis software for scientific and industrial data.
Wherever three-dimensional imaging data sets need to be processed, in
materials science, geosciences or engineering applications, Avizo offers
abundant state-of-the-art image data processing, exploration and analysis
features within an intuitive workflow and easy-to-use graphical user
interface."""
homepage = "https://www.thermofisher.com/sa/en/home/industrial/electron-microscopy/electron-microscopy-instruments-workflow-solutions/3d-visualization-analysis-software.html"
version('9.7.0', '9c9b9e81957387f4218df0c5adbb80717e9ae80ab3ca6ff8da523f7f499dcc5b',
expand=False)
def url_for_version(self, version):
return "file://{0}/Avizo-{1}-Linux64-gcc44.bin".format(os.getcwd(),
version.joined)
# Licensing
license_required = True
license_comment = '#'
license_files = ['share/license/password.dat']
license_vars = ['MCSLMD_LICENSE_FILE']
def setup_run_environment(self, env):
run_env.set('MCSLMD_LICENSE_FILE', join_path(self.prefix.share.license,
'password.dat'))
def install(self, spec, prefix):
ver = self.version.joined
sh = which('sh')
sh('Avizo-{0}-Linux64-gcc44.bin'.format(ver), '--noexec', '--keep')
with working_dir('Avizo'):
avizo_tar = tarfile.open(name='Avizo-{0}-Linux64-gcc44.tar.bz2'
.format(self.version))
avizo_tar.extractall()
with working_dir('Avizo-{0}'.format(self.version)):
install_tree('bin', prefix.bin)
install_tree('lib', prefix.lib)
install_tree('data', prefix.data)
install_tree('share', prefix.share)
install_tree('python', prefix.python)

View File

@@ -0,0 +1,26 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class AwsParallelcluster(PythonPackage):
"""AWS ParallelCluster is an AWS supported Open Source cluster management
tool to deploy and manage HPC clusters in the AWS cloud."""
homepage = "https://github.com/aws/aws-parallelcluster"
url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.5.0.tar.gz"
version('2.5.0', sha256='3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3')
depends_on('python@2.7:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-boto3@1.10.15:', type=('build', 'run'))
depends_on('py-future@0.16.0:0.18.2', type=('build', 'run'))
depends_on('py-tabulate@0.8.2:0.8.3', type=('build', 'run'))
depends_on('py-ipaddress@1.0.22:', type=('build', 'run'))
depends_on('py-enum34@1.1.6:', when='^python@:3.3', type=('build', 'run'))
depends_on('py-pyyaml@5.1.2:', type=('build', 'run'))
depends_on('py-configparser@3.5.0:3.8.1', when='^python@:2', type=('build', 'run'))

View File

@@ -12,21 +12,21 @@ class Awscli(PythonPackage):
Amazon Web Services"""
homepage = "https://pypi.org/project/awscli/"
url = "https://pypi.io/packages/source/a/awscli/awscli-1.16.179.tar.gz"
url = "https://pypi.io/packages/source/a/awscli/awscli-1.16.308.tar.gz"
version('1.16.308', sha256='3632fb1db2538128509a7b5e89f2a2c4ea3426bec139944247bddc4d79bf7603')
version('1.16.179', sha256='6a87114d1325358d000abe22b2103baae7b91f053ff245b9fde33cb0affb5e4f')
depends_on('py-setuptools', type='build')
depends_on('py-docutils@0.10:', type=('build', 'run'))
depends_on('py-colorama@0.2.5:0.3.9', type=('build', 'run'))
depends_on('py-botocore@1.13.44', when='@1.16.308', type=('build', 'run'))
depends_on('py-botocore@1.12.169', when='@1.16.179', type=('build', 'run'))
depends_on('py-docutils@0.10:0.15', type=('build', 'run'))
depends_on('py-rsa@3.1.2:3.5.0', type=('build', 'run'))
depends_on('py-pyyaml@3.10:3.13', type=('build', 'run'),
when='^python@2.6:2.6.99')
depends_on('py-pyyaml@3.10:5.1', type=('build', 'run'),
when='^python@2.7:')
depends_on('py-argparse@1.1:', when='^python@2.6:2.6.99',
type=('build', 'run'))
depends_on('py-s3transfer@0.2.0:0.2.999', type=('build', 'run'))
depends_on('py-botocore@1.12.169', type=('build', 'run'))
depends_on('py-argparse@1.1:', when='^python@:2.6', type=('build', 'run'))
depends_on('py-pyyaml@3.10:3.13', when='^python@:2.6,3.0:3.3', type=('build', 'run'))
depends_on('py-pyyaml@3.10:5.2', when='^python@3.4:', type=('build', 'run'))
depends_on('py-colorama@0.2.5:0.3.9', when='^python@:2.6,3.0:3.3', type=('build', 'run'))
depends_on('py-colorama@0.2.5:0.4.1', when='^python@3.4:', type=('build', 'run'))
depends_on('py-nose', type='test')
depends_on('py-mock@1.3.0:', type='test')

View File

@@ -6,11 +6,11 @@
from spack import *
class Bash(AutotoolsPackage):
class Bash(AutotoolsPackage, GNUMirrorPackage):
"""The GNU Project's Bourne Again SHell."""
homepage = "https://www.gnu.org/software/bash/"
url = "https://ftpmirror.gnu.org/bash/bash-4.4.tar.gz"
gnu_mirror_path = "bash/bash-4.4.tar.gz"
version('5.0', sha256='b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d')
version('4.4.12', sha256='57d8432be54541531a496fd4904fdc08c12542f43605a9202594fa5d5f9f2331')
@@ -35,6 +35,7 @@ class Bash(AutotoolsPackage):
('5.0', '011', '2c4de332b91eaf797abbbd6c79709690b5cbd48b12e8dfe748096dbd7bf474ea'),
]
# TODO: patches below are not managed by the GNUMirrorPackage base class
for ver, num, checksum in patches:
ver = Version(ver)
patch('https://ftpmirror.gnu.org/bash/bash-{0}-patches/bash{1}-{2}'.format(ver, ver.joined, num),

View File

@@ -0,0 +1,16 @@
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
@@ -150,6 +150,13 @@
builder.put("PATH", null);
builder.put("LD_LIBRARY_PATH", null);
}
+
+ Map<String, String> spackEnv = System.getenv();
+ for (String envName : spackEnv.keySet()) {
+ if (envName.startsWith("SPACK_")) {
+ builder.put(envName, spackEnv.get(envName));
+ }
+ }
}
private static PathFragment determineShellExecutable(OS os, PathFragment fromOption) {

View File

@@ -0,0 +1,16 @@
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -168,6 +168,13 @@ public class BazelRuleClassProvider {
env.put("PATH", null);
}
+ Map<String, String> spackEnv = System.getenv();
+ for (String envName : spackEnv.keySet()) {
+ if (envName.startsWith("SPACK_")) {
+ env.put(envName, spackEnv.get(envName));
+ }
+ }
+
// Shell environment variables specified via options take precedence over the
// ones inherited from the fragments. In the long run, these fragments will
// be replaced by appropriate default rc files anyway.

View File

@@ -0,0 +1,16 @@
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -181,6 +181,13 @@ public class BazelRuleClassProvider {
env.put("PATH", null);
}
+ Map<String, String> spackEnv = System.getenv();
+ for (String envName : spackEnv.keySet()) {
+ if (envName.startsWith("SPACK_")) {
+ env.put(envName, spackEnv.get(envName));
+ }
+ }
+
// Shell environment variables specified via options take precedence over the
// ones inherited from the fragments. In the long run, these fragments will
// be replaced by appropriate default rc files anyway.

View File

@@ -1,6 +1,6 @@
--- bazel-0.3.1/tools/cpp/cc_configure.bzl 2016-10-13 14:00:32.118358387 +0200
+++ bazel-0.3.1/tools/cpp/cc_configure.bzl 2016-10-13 13:52:45.342610147 +0200
@@ -173,8 +173,23 @@
--- a/tools/cpp/cc_configure.bzl
+++ b/tools/cpp/cc_configure.bzl
@@ -173,8 +173,19 @@
else:
inc_dirs = result.stderr[index1 + 1:index2].strip()
@@ -12,12 +12,8 @@
+ ]
+
+ env = repository_ctx.os.environ
+ if "SPACK_DEPENDENCIES" in env:
+ for dep in env["SPACK_DEPENDENCIES"].split(":"):
+ path = dep + "/include"
+ # path = repository_ctx.os.path.join(dep, "include")
+ # if not repository_ctx.os.path.exists(path):
+ # continue
+ if "SPACK_INCLUDE_DIRS" in env:
+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
+ default_inc_directories.append(
+ repository_ctx.path(_cxx_inc_convert(path))
+ )

View File

@@ -0,0 +1,24 @@
--- a/tools/cpp/cc_configure.bzl
+++ b/tools/cpp/cc_configure.bzl
@@ -200,8 +200,19 @@
else:
inc_dirs = result.stderr[index1 + 1:index2].strip()
- return [_escape_string(repository_ctx.path(_cxx_inc_convert(p)))
- for p in inc_dirs.split("\n")]
+ default_inc_directories = [
+ _escape_string(repository_ctx.path(_cxx_inc_convert(p)))
+ for p in inc_dirs.split("\n")
+ ]
+
+ env = repository_ctx.os.environ
+ if "SPACK_INCLUDE_DIRS" in env:
+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
+ default_inc_directories.append(
+ repository_ctx.path(_cxx_inc_convert(path))
+ )
+
+ return default_inc_directories
def _add_option_if_supported(repository_ctx, cc, option):

View File

@@ -0,0 +1,11 @@
--- a/compile.sh
+++ b/compile.sh
@@ -92,7 +92,7 @@
log "Building output/bazel"
# We set host and target platform directly since the defaults in @bazel_tools
# have not yet been generated.
-bazel_build "src:bazel${EXE_EXT}" \
+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \
--host_platform=@bazel_tools//platforms:host_platform \
--platforms=@bazel_tools//platforms:target_platform \
|| fail "Could not build Bazel"

View File

@@ -0,0 +1,11 @@
--- a/compile.sh
+++ b/compile.sh
@@ -92,7 +92,7 @@ display "."
log "Building output/bazel"
# We set host and target platform directly since the defaults in @bazel_tools
# have not yet been generated.
-bazel_build "src:bazel_nojdk${EXE_EXT}" \
+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel_nojdk${EXE_EXT}" \
--host_platform=@bazel_tools//platforms:host_platform \
--platforms=@bazel_tools//platforms:target_platform \
|| fail "Could not build Bazel"

View File

@@ -0,0 +1,11 @@
--- a/compile.sh
+++ b/compile.sh
@@ -92,7 +92,7 @@ display "."
log "Building output/bazel"
# We set host and target platform directly since the defaults in @bazel_tools
# have not yet been generated.
-bazel_build "src:bazel_nojdk${EXE_EXT}" \
+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel_nojdk${EXE_EXT}" \
--action_env=PATH \
--host_platform=@bazel_tools//platforms:host_platform \
--platforms=@bazel_tools//platforms:target_platform \

View File

@@ -0,0 +1,11 @@
--- a/compile.sh
+++ b/compile.sh
@@ -63,7 +63,7 @@
log "Building output/bazel"
# We set host and target platform directly because we are building for the local
# host.
-bazel_build "src:bazel_nojdk${EXE_EXT}" \
+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel_nojdk${EXE_EXT}" \
--action_env=PATH \
--host_platform=@local_config_platform//:host \
--platforms=@local_config_platform//:host \

View File

@@ -0,0 +1,11 @@
--- a/compile.sh
+++ b/compile.sh
@@ -99,7 +99,7 @@
new_step 'Building Bazel with Bazel'
display "."
log "Building output/bazel"
- bazel_build "src:bazel${EXE_EXT}"
+ CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}"
cp -f "bazel-bin/src/bazel${EXE_EXT}" "output/bazel${EXE_EXT}"
chmod 0755 "output/bazel${EXE_EXT}"
BAZEL="$(pwd)/output/bazel${EXE_EXT}"

View File

@@ -0,0 +1,11 @@
--- a/compile.sh
+++ b/compile.sh
@@ -124,7 +124,7 @@
new_step 'Building Bazel with Bazel'
display "."
log "Building output/bazel"
- bazel_build "src:bazel${EXE_EXT}" \
+ CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \
|| fail "Could not build Bazel"
bazel_bin_path="$(get_bazel_bin_path)/src/bazel${EXE_EXT}"
[ -e "$bazel_bin_path" ] \

View File

@@ -0,0 +1,11 @@
--- a/compile.sh
+++ b/compile.sh
@@ -85,7 +85,7 @@
log "Building output/bazel"
# We set host and target platform directly since the defaults in @bazel_tools
# have not yet been generated.
-bazel_build "src:bazel${EXE_EXT}" \
+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \
--experimental_host_platform=//tools/platforms:host_platform \
--experimental_platforms=//tools/platforms:target_platform \
|| fail "Could not build Bazel"

View File

@@ -0,0 +1,11 @@
--- a/compile.sh
+++ b/compile.sh
@@ -92,7 +92,7 @@
log "Building output/bazel"
# We set host and target platform directly since the defaults in @bazel_tools
# have not yet been generated.
-bazel_build "src:bazel${EXE_EXT}" \
+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \
--host_platform=//tools/platforms:host_platform \
--platforms=//tools/platforms:target_platform \
|| fail "Could not build Bazel"

View File

@@ -1,129 +0,0 @@
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java.orig 2018-05-23 12:11:29.319402761 +0200
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2018-05-23 12:35:21.817904301 +0200
@@ -150,6 +150,126 @@
builder.put("PATH", null);
builder.put("LD_LIBRARY_PATH", null);
}
+
+ String spack_prefix = System.getenv("SPACK_PREFIX");
+ if (spack_prefix != null) {
+ builder.put("SPACK_PREFIX", spack_prefix);
+ }
+
+ String spack_env_path = System.getenv("SPACK_ENV_PATH");
+ if (spack_env_path != null) {
+ builder.put("SPACK_ENV_PATH", spack_env_path);
+ }
+
+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID");
+ if (spack_debug_log_id != null) {
+ builder.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id);
+ }
+
+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR");
+ if (spack_debug_log_dir != null) {
+ builder.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir);
+ }
+
+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC");
+ if (spack_compiler_spec != null) {
+ builder.put("SPACK_COMPILER_SPEC", spack_compiler_spec);
+ }
+
+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG");
+ if (spack_cc_rpath_arg != null) {
+ builder.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg);
+ }
+
+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG");
+ if (spack_cxx_rpath_arg != null) {
+ builder.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg);
+ }
+
+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG");
+ if (spack_f77_rpath_arg != null) {
+ builder.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg);
+ }
+
+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG");
+ if (spack_fc_rpath_arg != null) {
+ builder.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg);
+ }
+
+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC");
+ if (spack_short_spec != null) {
+ builder.put("SPACK_SHORT_SPEC", spack_short_spec);
+ }
+
+ String spack_system_dirs = System.getenv("SPACK_SYSTEM_DIRS");
+ if (spack_system_dirs != null) {
+ builder.put("SPACK_SYSTEM_DIRS", spack_system_dirs);
+ }
+
+ String spack_cc = System.getenv("SPACK_CC");
+ if (spack_cc != null) {
+ builder.put("SPACK_CC", spack_cc);
+ }
+
+ String spack_cxx = System.getenv("SPACK_CXX");
+ if (spack_cxx != null) {
+ builder.put("SPACK_CXX", spack_cxx);
+ }
+
+ String spack_f77 = System.getenv("SPACK_F77");
+ if (spack_f77 != null) {
+ builder.put("SPACK_F77", spack_f77);
+ }
+
+ String spack_fc = System.getenv("SPACK_FC");
+ if (spack_fc != null) {
+ builder.put("SPACK_FC", spack_fc);
+ }
+
+ String spack_cflags = System.getenv("SPACK_CFLAGS");
+ if (spack_cflags != null) {
+ builder.put("SPACK_CFLAGS", spack_cflags);
+ }
+
+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS");
+ if (spack_cxxflags != null) {
+ builder.put("SPACK_CXXFLAGS", spack_cxxflags);
+ }
+
+ String spack_fcflags = System.getenv("SPACK_FCFLAGS");
+ if (spack_fcflags != null) {
+ builder.put("SPACK_FCFLAGS", spack_fcflags);
+ }
+
+ String spack_fflags = System.getenv("SPACK_FFLAGS");
+ if (spack_fflags != null) {
+ builder.put("SPACK_FFLAGS", spack_fflags);
+ }
+
+ String spack_ldflags = System.getenv("SPACK_LDFLAGS");
+ if (spack_ldflags != null) {
+ builder.put("SPACK_LDFLAGS", spack_ldflags);
+ }
+
+ String spack_ldlibs = System.getenv("SPACK_LDLIBS");
+ if (spack_ldlibs != null) {
+ builder.put("SPACK_LDLIBS", spack_ldlibs);
+ }
+
+ String spack_debug = System.getenv("SPACK_DEBUG");
+ if (spack_debug != null) {
+ builder.put("SPACK_DEBUG", spack_debug);
+ }
+
+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND");
+ if (spack_test_command != null) {
+ builder.put("SPACK_TEST_COMMAND", spack_test_command);
+ }
+
+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES");
+ if (spack_dependencies != null) {
+ builder.put("SPACK_DEPENDENCIES", spack_dependencies);
+ }
}
private static PathFragment determineShellExecutable(OS os, PathFragment fromOption) {

View File

@@ -1,131 +0,0 @@
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index 72c40ac..2e73530 100755
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -168,6 +168,126 @@ public class BazelRuleClassProvider {
env.put("PATH", null);
}
+ String spack_prefix = System.getenv("SPACK_PREFIX");
+ if (spack_prefix != null) {
+ env.put("SPACK_PREFIX", spack_prefix);
+ }
+
+ String spack_env_path = System.getenv("SPACK_ENV_PATH");
+ if (spack_env_path != null) {
+ env.put("SPACK_ENV_PATH", spack_env_path);
+ }
+
+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID");
+ if (spack_debug_log_id != null) {
+ env.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id);
+ }
+
+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR");
+ if (spack_debug_log_dir != null) {
+ env.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir);
+ }
+
+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC");
+ if (spack_compiler_spec != null) {
+ env.put("SPACK_COMPILER_SPEC", spack_compiler_spec);
+ }
+
+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG");
+ if (spack_cc_rpath_arg != null) {
+ env.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg);
+ }
+
+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG");
+ if (spack_cxx_rpath_arg != null) {
+ env.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg);
+ }
+
+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG");
+ if (spack_f77_rpath_arg != null) {
+ env.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg);
+ }
+
+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG");
+ if (spack_fc_rpath_arg != null) {
+ env.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg);
+ }
+
+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC");
+ if (spack_short_spec != null) {
+ env.put("SPACK_SHORT_SPEC", spack_short_spec);
+ }
+
+ String spack_system_dirs = System.getenv("SPACK_SYSTEM_DIRS");
+ if (spack_system_dirs != null) {
+ env.put("SPACK_SYSTEM_DIRS", spack_system_dirs);
+ }
+
+ String spack_cc = System.getenv("SPACK_CC");
+ if (spack_cc != null) {
+ env.put("SPACK_CC", spack_cc);
+ }
+
+ String spack_cxx = System.getenv("SPACK_CXX");
+ if (spack_cxx != null) {
+ env.put("SPACK_CXX", spack_cxx);
+ }
+
+ String spack_f77 = System.getenv("SPACK_F77");
+ if (spack_f77 != null) {
+ env.put("SPACK_F77", spack_f77);
+ }
+
+ String spack_fc = System.getenv("SPACK_FC");
+ if (spack_fc != null) {
+ env.put("SPACK_FC", spack_fc);
+ }
+
+ String spack_cflags = System.getenv("SPACK_CFLAGS");
+ if (spack_cflags != null) {
+ env.put("SPACK_CFLAGS", spack_cflags);
+ }
+
+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS");
+ if (spack_cxxflags != null) {
+ env.put("SPACK_CXXFLAGS", spack_cxxflags);
+ }
+
+ String spack_fcflags = System.getenv("SPACK_FCFLAGS");
+ if (spack_fcflags != null) {
+ env.put("SPACK_FCFLAGS", spack_fcflags);
+ }
+
+ String spack_fflags = System.getenv("SPACK_FFLAGS");
+ if (spack_fflags != null) {
+ env.put("SPACK_FFLAGS", spack_fflags);
+ }
+
+ String spack_ldflags = System.getenv("SPACK_LDFLAGS");
+ if (spack_ldflags != null) {
+ env.put("SPACK_LDFLAGS", spack_ldflags);
+ }
+
+ String spack_ldlibs = System.getenv("SPACK_LDLIBS");
+ if (spack_ldlibs != null) {
+ env.put("SPACK_LDLIBS", spack_ldlibs);
+ }
+
+ String spack_debug = System.getenv("SPACK_DEBUG");
+ if (spack_debug != null) {
+ env.put("SPACK_DEBUG", spack_debug);
+ }
+
+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND");
+ if (spack_test_command != null) {
+ env.put("SPACK_TEST_COMMAND", spack_test_command);
+ }
+
+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES");
+ if (spack_dependencies != null) {
+ env.put("SPACK_DEPENDENCIES", spack_dependencies);
+ }
+
// Shell environment variables specified via options take precedence over the
// ones inherited from the fragments. In the long run, these fragments will
// be replaced by appropriate default rc files anyway.

View File

@@ -1,126 +0,0 @@
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java.orig b/home/jtang/spack/var/spack/stage/bazel-0.9.0-xcsfcyrpdn3df755cwpk4sxtfwjdv4ub/spack-expanded-archive/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
index f1a7a1f..32cd181 100755
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java.orig
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
@@ -154,6 +154,121 @@ public class BazelConfiguration extends Fragment {
if (tmpdir != null) {
builder.put("TMPDIR", tmpdir);
}
+
+ String spack_prefix = System.getenv("SPACK_PREFIX");
+ if (spack_prefix != null) {
+ builder.put("SPACK_PREFIX", spack_prefix);
+ }
+
+ String spack_env_path = System.getenv("SPACK_ENV_PATH");
+ if (spack_env_path != null) {
+ builder.put("SPACK_ENV_PATH", spack_env_path);
+ }
+
+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID");
+ if (spack_debug_log_id != null) {
+ builder.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id);
+ }
+
+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR");
+ if (spack_debug_log_dir != null) {
+ builder.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir);
+ }
+
+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC");
+ if (spack_compiler_spec != null) {
+ builder.put("SPACK_COMPILER_SPEC", spack_compiler_spec);
+ }
+
+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG");
+ if (spack_cc_rpath_arg != null) {
+ builder.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg);
+ }
+
+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG");
+ if (spack_cxx_rpath_arg != null) {
+ builder.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg);
+ }
+
+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG");
+ if (spack_f77_rpath_arg != null) {
+ builder.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg);
+ }
+
+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG");
+ if (spack_fc_rpath_arg != null) {
+ builder.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg);
+ }
+
+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC");
+ if (spack_short_spec != null) {
+ builder.put("SPACK_SHORT_SPEC", spack_short_spec);
+ }
+
+ String spack_cc = System.getenv("SPACK_CC");
+ if (spack_cc != null) {
+ builder.put("SPACK_CC", spack_cc);
+ }
+
+ String spack_cxx = System.getenv("SPACK_CXX");
+ if (spack_cxx != null) {
+ builder.put("SPACK_CXX", spack_cxx);
+ }
+
+ String spack_f77 = System.getenv("SPACK_F77");
+ if (spack_f77 != null) {
+ builder.put("SPACK_F77", spack_f77);
+ }
+
+ String spack_fc = System.getenv("SPACK_FC");
+ if (spack_fc != null) {
+ builder.put("SPACK_FC", spack_fc);
+ }
+
+ String spack_cflags = System.getenv("SPACK_CFLAGS");
+ if (spack_cflags != null) {
+ builder.put("SPACK_CFLAGS", spack_cflags);
+ }
+
+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS");
+ if (spack_cxxflags != null) {
+ builder.put("SPACK_CXXFLAGS", spack_cxxflags);
+ }
+
+ String spack_fcflags = System.getenv("SPACK_FCFLAGS");
+ if (spack_fcflags != null) {
+ builder.put("SPACK_FCFLAGS", spack_fcflags);
+ }
+
+ String spack_fflags = System.getenv("SPACK_FFLAGS");
+ if (spack_fflags != null) {
+ builder.put("SPACK_FFLAGS", spack_fflags);
+ }
+
+ String spack_ldflags = System.getenv("SPACK_LDFLAGS");
+ if (spack_ldflags != null) {
+ builder.put("SPACK_LDFLAGS", spack_ldflags);
+ }
+
+ String spack_ldlibs = System.getenv("SPACK_LDLIBS");
+ if (spack_ldlibs != null) {
+ builder.put("SPACK_LDLIBS", spack_ldlibs);
+ }
+
+ String spack_debug = System.getenv("SPACK_DEBUG");
+ if (spack_debug != null) {
+ builder.put("SPACK_DEBUG", spack_debug);
+ }
+
+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND");
+ if (spack_test_command != null) {
+ builder.put("SPACK_TEST_COMMAND", spack_test_command);
+ }
+
+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES");
+ if (spack_dependencies != null) {
+ builder.put("SPACK_DEPENDENCIES", spack_dependencies);
+ }
}
}

View File

@@ -1,124 +0,0 @@
diff -pu bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
--- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2016-09-14 11:56:01.565756979 +0200
+++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2016-09-14 12:04:13.292839801 +0200
@@ -92,5 +92,120 @@ public class BazelConfiguration extends
if (tmpdir != null) {
builder.put("TMPDIR", tmpdir);
}
+
+ String spack_prefix = System.getenv("SPACK_PREFIX");
+ if (spack_prefix != null) {
+ builder.put("SPACK_PREFIX", spack_prefix);
+ }
+
+ String spack_env_path = System.getenv("SPACK_ENV_PATH");
+ if (spack_env_path != null) {
+ builder.put("SPACK_ENV_PATH", spack_env_path);
+ }
+
+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID");
+ if (spack_debug_log_id != null) {
+ builder.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id);
+ }
+
+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR");
+ if (spack_debug_log_dir != null) {
+ builder.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir);
+ }
+
+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC");
+ if (spack_compiler_spec != null) {
+ builder.put("SPACK_COMPILER_SPEC", spack_compiler_spec);
+ }
+
+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG");
+ if (spack_cc_rpath_arg != null) {
+ builder.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg);
+ }
+
+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG");
+ if (spack_cxx_rpath_arg != null) {
+ builder.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg);
+ }
+
+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG");
+ if (spack_f77_rpath_arg != null) {
+ builder.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg);
+ }
+
+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG");
+ if (spack_fc_rpath_arg != null) {
+ builder.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg);
+ }
+
+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC");
+ if (spack_short_spec != null) {
+ builder.put("SPACK_SHORT_SPEC", spack_short_spec);
+ }
+
+ String spack_cc = System.getenv("SPACK_CC");
+ if (spack_cc != null) {
+ builder.put("SPACK_CC", spack_cc);
+ }
+
+ String spack_cxx = System.getenv("SPACK_CXX");
+ if (spack_cxx != null) {
+ builder.put("SPACK_CXX", spack_cxx);
+ }
+
+ String spack_f77 = System.getenv("SPACK_F77");
+ if (spack_f77 != null) {
+ builder.put("SPACK_F77", spack_f77);
+ }
+
+ String spack_fc = System.getenv("SPACK_FC");
+ if (spack_fc != null) {
+ builder.put("SPACK_FC", spack_fc);
+ }
+
+ String spack_cflags = System.getenv("SPACK_CFLAGS");
+ if (spack_cflags != null) {
+ builder.put("SPACK_CFLAGS", spack_cflags);
+ }
+
+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS");
+ if (spack_cxxflags != null) {
+ builder.put("SPACK_CXXFLAGS", spack_cxxflags);
+ }
+
+ String spack_fcflags = System.getenv("SPACK_FCFLAGS");
+ if (spack_fcflags != null) {
+ builder.put("SPACK_FCFLAGS", spack_fcflags);
+ }
+
+ String spack_fflags = System.getenv("SPACK_FFLAGS");
+ if (spack_fflags != null) {
+ builder.put("SPACK_FFLAGS", spack_fflags);
+ }
+
+ String spack_ldflags = System.getenv("SPACK_LDFLAGS");
+ if (spack_ldflags != null) {
+ builder.put("SPACK_LDFLAGS", spack_ldflags);
+ }
+
+ String spack_ldlibs = System.getenv("SPACK_LDLIBS");
+ if (spack_ldlibs != null) {
+ builder.put("SPACK_LDLIBS", spack_ldlibs);
+ }
+
+ String spack_debug = System.getenv("SPACK_DEBUG");
+ if (spack_debug != null) {
+ builder.put("SPACK_DEBUG", spack_debug);
+ }
+
+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND");
+ if (spack_test_command != null) {
+ builder.put("SPACK_TEST_COMMAND", spack_test_command);
+ }
+
+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES");
+ if (spack_dependencies != null) {
+ builder.put("SPACK_DEPENDENCIES", spack_dependencies);
+ }
}
}

View File

@@ -1,138 +0,0 @@
--- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java 2016-07-29 10:22:16.000000000 +0200
+++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java 2016-10-13 15:21:35.036617890 +0200
@@ -214,6 +214,135 @@
.getParentDirectory()
.getPathString());
}
+
+ String path = System.getenv("PATH");
+ result.put("PATH", path == null ? "/bin:/usr/bin" : path);
+
+ String ldLibraryPath = System.getenv("LD_LIBRARY_PATH");
+ if (ldLibraryPath != null) {
+ result.put("LD_LIBRARY_PATH", ldLibraryPath);
+ }
+
+ String tmpdir = System.getenv("TMPDIR");
+ if (tmpdir != null) {
+ result.put("TMPDIR", tmpdir);
+ }
+
+ String spack_prefix = System.getenv("SPACK_PREFIX");
+ if (spack_prefix != null) {
+ result.put("SPACK_PREFIX", spack_prefix);
+ }
+
+ String spack_env_path = System.getenv("SPACK_ENV_PATH");
+ if (spack_env_path != null) {
+ result.put("SPACK_ENV_PATH", spack_env_path);
+ }
+
+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID");
+ if (spack_debug_log_id != null) {
+ result.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id);
+ }
+
+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR");
+ if (spack_debug_log_dir != null) {
+ result.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir);
+ }
+
+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC");
+ if (spack_compiler_spec != null) {
+ result.put("SPACK_COMPILER_SPEC", spack_compiler_spec);
+ }
+
+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG");
+ if (spack_cc_rpath_arg != null) {
+ result.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg);
+ }
+
+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG");
+ if (spack_cxx_rpath_arg != null) {
+ result.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg);
+ }
+
+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG");
+ if (spack_f77_rpath_arg != null) {
+ result.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg);
+ }
+
+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG");
+ if (spack_fc_rpath_arg != null) {
+ result.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg);
+ }
+
+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC");
+ if (spack_short_spec != null) {
+ result.put("SPACK_SHORT_SPEC", spack_short_spec);
+ }
+
+ String spack_cc = System.getenv("SPACK_CC");
+ if (spack_cc != null) {
+ result.put("SPACK_CC", spack_cc);
+ }
+
+ String spack_cxx = System.getenv("SPACK_CXX");
+ if (spack_cxx != null) {
+ result.put("SPACK_CXX", spack_cxx);
+ }
+
+ String spack_f77 = System.getenv("SPACK_F77");
+ if (spack_f77 != null) {
+ result.put("SPACK_F77", spack_f77);
+ }
+
+ String spack_fc = System.getenv("SPACK_FC");
+ if (spack_fc != null) {
+ result.put("SPACK_FC", spack_fc);
+ }
+
+ String spack_cflags = System.getenv("SPACK_CFLAGS");
+ if (spack_cflags != null) {
+ result.put("SPACK_CFLAGS", spack_cflags);
+ }
+
+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS");
+ if (spack_cxxflags != null) {
+ result.put("SPACK_CXXFLAGS", spack_cxxflags);
+ }
+
+ String spack_fcflags = System.getenv("SPACK_FCFLAGS");
+ if (spack_fcflags != null) {
+ result.put("SPACK_FCFLAGS", spack_fcflags);
+ }
+
+ String spack_fflags = System.getenv("SPACK_FFLAGS");
+ if (spack_fflags != null) {
+ result.put("SPACK_FFLAGS", spack_fflags);
+ }
+
+ String spack_ldflags = System.getenv("SPACK_LDFLAGS");
+ if (spack_ldflags != null) {
+ result.put("SPACK_LDFLAGS", spack_ldflags);
+ }
+
+ String spack_ldlibs = System.getenv("SPACK_LDLIBS");
+ if (spack_ldlibs != null) {
+ result.put("SPACK_LDLIBS", spack_ldlibs);
+ }
+
+ String spack_debug = System.getenv("SPACK_DEBUG");
+ if (spack_debug != null) {
+ result.put("SPACK_DEBUG", spack_debug);
+ }
+
+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND");
+ if (spack_test_command != null) {
+ result.put("SPACK_TEST_COMMAND", spack_test_command);
+ }
+
+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES");
+ if (spack_dependencies != null) {
+ result.put("SPACK_DEPENDENCIES", spack_dependencies);
+ }
+
return result.build();
}

View File

@@ -3,93 +3,173 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import inspect
from spack import *
from multiprocessing import cpu_count
from spack.util.environment import env_flag
from spack.build_environment import SPACK_NO_PARALLEL_MAKE
class Bazel(Package):
"""Bazel is Google's own build tool"""
"""Bazel is an open-source build and test tool similar to Make, Maven, and
Gradle. It uses a human-readable, high-level build language. Bazel supports
projects in multiple languages and builds outputs for multiple platforms.
Bazel supports large codebases across multiple repositories, and large
numbers of users."""
homepage = "https://www.bazel.io"
url = "https://github.com/bazelbuild/bazel/releases/download/0.11.1/bazel-0.11.1-dist.zip"
homepage = "https://bazel.build/"
url = "https://github.com/bazelbuild/bazel/releases/download/1.2.0/bazel-1.2.0-dist.zip"
maintainers = ['adamjstewart']
version('1.2.1', sha256='255da49d0f012bc4f2c1d6d3ccdbe578e22fe97b8d124e1629a486fe2a09d3e1')
version('1.2.0', sha256='9cb46b0a18b9166730307a0e82bf4c02281a1cc6da0fb11239e6fe4147bdee6e')
version('1.1.0', sha256='4b66a8c93af7832ed32e7236cf454a05f3aa06d25a8576fc3f83114f142f95ab')
version('1.0.1', sha256='f4d2dfad011ff03a5fae41b9b02cd96cd7297c1205d496603d66516934fbcfee')
version('1.0.0', sha256='c61daf0b69dd95205c695b2f9022d296d052c727062cfd396d54ffb2154f8cac')
version('0.29.1', sha256='872a52cff208676e1169b3e1cae71b1fe572c4109cbd66eab107d8607c378de5')
version('0.29.0', sha256='01cb6f2e808bd016cf0e217e12373c9efb808123e58b37885be8364458d3a40a')
version('0.28.1', sha256='2cea463d611f5255d2f3d41c8de5dcc0961adccb39cf0ac036f07070ba720314')
version('0.28.0', sha256='26ad8cdadd413b8432cf46d9fc3801e8db85d9922f85dd8a7f5a92fec876557f')
version('0.27.2', sha256='5e1bf2b48e54eb7e518430667d29aef53695d6dd7c718665a52131ab27aadab2')
version('0.27.1', sha256='8051d77da4ec338acd91770f853e4c25f4407115ed86fd35a6de25921673e779')
version('0.27.0', sha256='c3080d3b959ac08502ad5c84a51608c291accb1481baad88a628bbf79b30c67a')
version('0.26.1', sha256='c0e94f8f818759f3f67af798c38683520c540f469cb41aea8f5e5a0e43f11600')
version('0.26.0', sha256='d26dadf62959255d58e523da3448a6222af768fe1224e321b120c1d5bbe4b4f2')
version('0.25.3', sha256='23eafd3e439bc71baba9c592b52cb742dabc8640a13b9da1751fec090a2dda99')
version('0.25.2', sha256='7456032199852c043e6c5b3e4c71dd8089c1158f72ec554e6ec1c77007f0ab51')
version('0.25.1', sha256='a52bb31aeb1f821e649d25ef48023cfb54a12887aff875c6349ebcac36c2f056')
version('0.25.0', sha256='f624fe9ca8d51de192655369ac538c420afb7cde16e1ad052554b582fff09287')
version('0.24.1', sha256='56ea1b199003ad832813621744178e42b39e6206d34fbae342562c287da0cd54')
version('0.24.0', sha256='621d2a97899a88850a913eabf9285778331a309fd4658b225b1377f80060fa85')
version('0.23.2', sha256='293a5a7d851e0618eeb5e6958d94a11d45b6a00f2ba9376de61ac2bd5f917439')
version('0.23.1', sha256='dd47199f92452bf67b2c5d60ad4b7143554eaf2c6196ab6e8713449d81a0491d')
version('0.23.0', sha256='2daf9c2c6498836ed4ebae7706abb809748b1350cacd35b9f89452f31ac0acc1')
version('0.22.0', sha256='6860a226c8123770b122189636fb0c156c6e5c9027b5b245ac3b2315b7b55641')
version('0.21.0', sha256='6ccb831e683179e0cfb351cb11ea297b4db48f9eab987601c038aa0f83037db4')
version('0.20.0', sha256='1945afa84fd8858b0a3c68c09915a4bc81065c61df2591387b2985e2297d30bd')
version('0.19.2', sha256='11234cce4f6bdc62c3ac688f41c7b5c178eecb6f7e2c4ba0bcf00ba8565b1d19')
version('0.19.1', sha256='c9405f7b8c79ebc81f9f0e49bb656df4a0da246771d010c2cdd6bb30e2500ac0')
version('0.19.0', sha256='ee6135c5c47306c8421d43ad83aabc4f219cb065376ee37797f2c8ba9a615315')
version('0.18.1', sha256='baed9f28c317000a4ec1ad2571b3939356d22746ca945ac2109148d7abb860d4')
version('0.18.0', sha256='d0e86d2f7881ec8742a9823a986017452d2da0dfe4e989111da787cb89257155')
version('0.17.2', sha256='b6e87acfa0a405bb8b3417c58477b66d5bc27dc0d31ba6fa12bc255b9278d33b')
version('0.17.1', sha256='23e4281c3628cbd746da3f51330109bbf69780bd64461b63b386efae37203f20')
version('0.16.1', sha256='09c66b94356c82c52f212af52a81ac28eb06de1313755a2f23eeef84d167b36c')
version('0.16.0', sha256='c730593916ef0ba62f3d113cc3a268e45f7e8039daf7b767c8641b6999bd49b1')
version('0.15.2', sha256='bf53ec73be3a6d412d85ef612cec6e9c85db45da42001fab0cf1dad44cfc03f1')
version('0.15.1', sha256='c62b351fa4c1ba5aeb34d0a137176f8e8f1d89a32f548a10e96c11df176ffc6c')
version('0.15.0', sha256='c3b716e6625e6b8c323350c95cd3ae0f56aeb00458dddd10544d5bead8a7b602')
version('0.14.1', sha256='d49cdcd82618ae7a7a190e6f0a80d9bf85c1a66b732f994f37732dc14ffb0025')
version('0.14.0', sha256='259627de8b9d415cc80904523facf3d50e6e8e68448ab968eb1c9cb8ca1ef843')
version('0.13.1', sha256='b0269e75b40d87ff87886e5f3432cbf88f70c96f907ab588e6c21b2922d72db0')
version('0.13.0', sha256='82e9035084660b9c683187618a29aa896f8b05b5f16ae4be42a80b5e5b6a7690')
version('0.12.0', sha256='3b3e7dc76d145046fdc78db7cac9a82bc8939d3b291e53a7ce85315feb827754')
version('0.11.1', sha256='e8d762bcc01566fa50952c8028e95cfbe7545a39b8ceb3a0d0d6df33b25b333f')
version('0.11.0', sha256='abfeccc94728cb46be8dbb3507a23ccffbacef9fbda96a977ef4ea8d6ab0d384')
version('0.10.1', sha256='708248f6d92f2f4d6342006c520f22dffa2f8adb0a9dc06a058e3effe7fee667')
version('0.10.0', sha256='47e0798caaac4df499bce5fe554a914abd884a855a27085a4473de1d737d9548')
version('0.9.0', sha256='efb28fed4ffcfaee653e0657f6500fc4cbac61e32104f4208da385676e76312a')
version('0.4.5', sha256='2b737be42678900470ae9e48c975ac5b2296d9ae23c007bf118350dbe7c0552b')
version('0.4.4', sha256='d52a21dda271ae645711ce99c70cf44c5d3a809138e656bbff00998827548ebb')
version('0.9.0', sha256='efb28fed4ffcfaee653e0657f6500fc4cbac61e32104f4208da385676e76312a')
version('0.8.1', sha256='dfd0761e0b7e36c1d74c928ad986500c905be5ebcfbc29914d574af1db7218cf')
version('0.8.0', sha256='aa840321d056abd3c6be10c4a1e98a64f9f73fff9aa89c468dae8c003974a078')
version('0.7.0', sha256='a084a9c5d843e2343bf3f319154a48abe3d35d52feb0ad45dec427a1c4ffc416')
version('0.6.1', sha256='dada1f60a512789747011184b2767d2b44136ef3b036d86947f1896d200d2ba7')
version('0.6.0', sha256='a0e53728a9541ef87934831f3d05f2ccfdc3b8aeffe3e037be2b92b12400598e')
version('0.5.4', sha256='2157b05309614d6af0e4bbc6065987aede590822634a0522161f3af5d647abc9')
version('0.5.3', sha256='76b5c5880a0b15f5b91f7d626c5bc3b76ce7e5d21456963c117ab711bf1c5333')
version('0.5.2', sha256='2418c619bdd44257a170b85b9d2ecb75def29e751b725e27186468ada2e009ea')
version('0.5.1', sha256='85e6a18b111afeea2e475fe991db2a441ec3824211d659bee7b0012c36be9a40')
version('0.5.0', sha256='ebba7330a8715e96a6d6dc0aa085125d529d0740d788f0544c6169d892e4f861')
version('0.4.5', sha256='2b737be42678900470ae9e48c975ac5b2296d9ae23c007bf118350dbe7c0552b')
version('0.4.4', sha256='d52a21dda271ae645711ce99c70cf44c5d3a809138e656bbff00998827548ebb')
version('0.4.3', sha256='cbd2ab580181c17317cf18b2bf825bcded2d97cab01cd5b5fe4f4d520b64f90f')
version('0.4.2', sha256='8e6f41252abadcdb2cc7a07f910ec4b45fb12c46f0a578672c6a186c7efcdb36')
version('0.4.1', sha256='008c648d3c46ece063ae8b5008480d8ae6d359d35967356685d1c09da07e1064')
version('0.4.0', sha256='6474714eee72ba2d4e271ed00ce8c05d67a9d15327bc03962b821b2af2c5ca36')
version('0.3.2', sha256='ca5caf7b2b48c7639f45d815b32e76d69650f3199eb8caa541d402722e3f6c10')
version('0.3.1', sha256='218d0e28b4d1ee34585f2ac6b18d169c81404d93958815e73e60cc0368efcbb7')
version('0.3.0', sha256='357fd8bdf86034b93902616f0844bd52e9304cccca22971ab7007588bf9d5fb3')
depends_on('java@8:', type=('build', 'link', 'run'))
depends_on('zip')
# https://docs.bazel.build/versions/master/install-compile-source.html#bootstrap-bazel
# Until https://github.com/spack/spack/issues/14058 is fixed, use jdk to build bazel
# Strict dependency on java@8 as per
# https://docs.bazel.build/versions/master/install-compile-source.html#bootstrap-unix-prereq
depends_on('jdk@1.8.0:1.8.999', type=('build', 'run'))
depends_on('python', type=('build', 'run'))
patch('fix_env_handling.patch', when='@:0.4.5')
patch('fix_env_handling-0.9.0.patch', when='@0.9.0:0.12.0')
patch('fix_env_handling-0.13.0.patch', when='@0.13.0:0.13.999')
patch('fix_env_handling-0.17.2.patch', when='@0.14.0:')
patch('link.patch')
patch('cc_configure.patch', when='@:0.4.5')
patch('unix_cc_configure.patch', when='@0.9.0')
patch('unix_cc_configure-0.10.0.patch', when='@0.10.0:0.14.999')
patch('unix_cc_configure-0.17.2.patch', when='@0.15.0:')
# Pass Spack environment variables to the build
patch('bazelruleclassprovider-0.25.patch', when='@0.25:')
patch('bazelruleclassprovider-0.14.patch', when='@0.14:0.24')
patch('bazelconfiguration-0.3.patch', when='@:0.13')
# Inject include paths
patch('unix_cc_configure-0.15.patch', when='@0.15:')
patch('unix_cc_configure-0.10.patch', when='@0.10:0.14')
patch('unix_cc_configure-0.5.3.patch', when='@0.5.3:0.9')
patch('cc_configure-0.5.0.patch', when='@0.5.0:0.5.2')
patch('cc_configure-0.3.0.patch', when='@:0.4')
# Set CC and CXX
patch('compile-0.29.patch', when='@0.29:')
patch('compile-0.21.patch', when='@0.21:0.28')
patch('compile-0.16.patch', when='@0.16:0.20')
patch('compile-0.13.patch', when='@0.13:0.15')
patch('compile-0.9.patch', when='@0.9:0.12')
patch('compile-0.6.patch', when='@0.6:0.8')
patch('compile-0.4.patch', when='@0.4:0.5')
patch('compile-0.3.patch', when='@:0.3')
phases = ['bootstrap', 'install']
def url_for_version(self, version):
if version >= Version('0.4.1'):
return 'https://github.com/bazelbuild/bazel/releases/download/{0}/bazel-{0}-dist.zip'.format(version)
url = 'https://github.com/bazelbuild/bazel/releases/download/{0}/bazel-{0}-dist.zip'
else:
return 'https://github.com/bazelbuild/bazel/archive/{0}.tar.gz'.format(version)
url = 'https://github.com/bazelbuild/bazel/archive/{0}.tar.gz'
return url.format(version)
def setup_build_environment(self, env):
env.set('EXTRA_BAZEL_ARGS',
# Spack's logs don't handle colored output well
'--color=no --host_javabase=@local_jdk//:jdk')
def bootstrap(self, spec, prefix):
bash = which('bash')
bash('./compile.sh')
def install(self, spec, prefix):
bash = which('bash')
bash('-c', './compile.sh')
mkdir(prefix.bin)
install('output/bazel', prefix.bin)
@run_after('install')
@on_package_attributes(run_tests=True)
def test(self):
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/bazel.rb
# Bazel does not work properly on NFS, switch to /tmp
with working_dir('/tmp/spack/bazel/spack-test', create=True):
touch('WORKSPACE')
with open('ProjectRunner.java', 'w') as f:
f.write("""\
public class ProjectRunner {
public static void main(String args[]) {
System.out.println("Hi!");
}
}""")
with open('BUILD', 'w') as f:
f.write("""\
java_binary(
name = "bazel-test",
srcs = glob(["*.java"]),
main_class = "ProjectRunner",
)""")
# Spack's logs don't handle colored output well
bazel = Executable(self.prefix.bin.bazel)
bazel('--output_user_root=/tmp/spack/bazel/spack-test',
'build', '--color=no', '//:bazel-test')
exe = Executable('bazel-bin/bazel-test')
assert exe(output=str) == 'Hi!\n'
def setup_dependent_package(self, module, dependent_spec):
class BazelExecutable(Executable):
"""Special callable executable object for bazel so the user can
specify parallel or not on a per-invocation basis. Using
'parallel' as a kwarg will override whatever the package's
global setting is, so you can either default to true or false
and override particular calls.
Note that if the SPACK_NO_PARALLEL_MAKE env var is set it
overrides everything.
"""
def __init__(self, name, command, jobs):
super(BazelExecutable, self).__init__(name)
self.bazel_command = command
self.jobs = jobs
def __call__(self, *args, **kwargs):
disable = env_flag(SPACK_NO_PARALLEL_MAKE)
parallel = ((not disable) and kwargs.get('parallel',
self.jobs > 1))
jobs = "--jobs=1"
if parallel:
jobs = "--jobs=%d" % self.jobs
args = (self.bazel_command,) + (jobs,) + args
return super(BazelExecutable, self).__call__(*args, **kwargs)
jobs = cpu_count()
dependent_module = inspect.getmodule(dependent_spec.package)
if not dependent_spec.package.parallel:
jobs = 1
elif dependent_module.make_jobs:
jobs = dependent_module.make_jobs
module.bazel = BazelExecutable('bazel', 'build', jobs)
module.bazel = Executable('bazel')

View File

@@ -1,6 +1,4 @@
diff --git a/tools/cpp/unix_cc_configure.bzl.orig b/tools/cpp/unix_cc_configure.bzl
index f67b9b5..cc952e0 100755
--- a/tools/cpp/unix_cc_configure.bzl.orig
--- a/tools/cpp/unix_cc_configure.bzl
+++ b/tools/cpp/unix_cc_configure.bzl
@@ -147,9 +147,18 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc, additional_flags = []):
else:
@@ -12,14 +10,13 @@ index f67b9b5..cc952e0 100755
+ _prepare_include_path(repository_ctx, _cxx_inc_convert(p))
+ for p in inc_dirs.split("\n")
+ ]
+
+ env = repository_ctx.os.environ
+ if "SPACK_DEPENDENCIES" in env:
+ for dep in env["SPACK_DEPENDENCIES"].split(":"):
+ path = dep + "/include"
+ if "SPACK_INCLUDE_DIRS" in env:
+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
+ default_inc_directories.append(path)
+
+ return default_inc_directories
def _is_option_supported(repository_ctx, cc, option):
"""Checks that `option` is supported by the C compiler. Doesn't %-escape the option."""

View File

@@ -1,8 +1,6 @@
diff --git a/tools/cpp/unix_cc_configure.bzl b/tools/cpp/unix_cc_configure.bzl
index 361931b..a79129b 100755
--- a/tools/cpp/unix_cc_configure.bzl
+++ b/tools/cpp/unix_cc_configure.bzl
@@ -145,11 +145,19 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc, lang_flag, additional_fl
@@ -145,11 +145,18 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc, lang_flag, additional_fl
else:
inc_dirs = result.stderr[index1 + 1:index2].strip()
@@ -13,9 +11,8 @@ index 361931b..a79129b 100755
]
+ env = repository_ctx.os.environ
+ if "SPACK_DEPENDENCIES" in env:
+ for dep in env["SPACK_DEPENDENCIES"].split(":"):
+ path = dep + "/include"
+ if "SPACK_INCLUDE_DIRS" in env:
+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
+ default_inc_directories.append(path)
+
+ return default_inc_directories

View File

@@ -1,10 +1,6 @@
diff --git a/spack-expanded-archive/tools/cpp/unix_cc_configure.bzl.orig b/spack-expanded-archive/tools/cpp/unix_cc_configure.bzl
old mode 100644
new mode 100755
index aa46f55..ae3c689
--- spack-expanded-archive/tools/cpp/unix_cc_configure.bzl
+++ spack-expanded-archive/tools/cpp/unix_cc_configure.bzl
@@ -117,9 +117,23 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc):
--- a/tools/cpp/unix_cc_configure.bzl
+++ b/tools/cpp/unix_cc_configure.bzl
@@ -117,9 +117,19 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc):
else:
inc_dirs = result.stderr[index1 + 1:index2].strip()
@@ -16,12 +12,8 @@ index aa46f55..ae3c689
+ ]
+ env = repository_ctx.os.environ
+ if "SPACK_DEPENDENCIES" in env:
+ for dep in env["SPACK_DEPENDENCIES"].split(":"):
+ path = dep + "/include"
+ # path = repository_ctx.os.path.join(dep, "include")
+ # if not repository_ctx.os.path.exists(path):
+ # continue
+ if "SPACK_INCLUDE_DIRS" in env:
+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
+ default_inc_directories.append(
+ repository_ctx.path(_cxx_inc_convert(path))
+ )

View File

@@ -20,6 +20,6 @@ class Bbmap(Package):
def install(self, spec, prefix):
install_tree('.', prefix.bin)
def setup_environment(self, spack_env, run_env):
run_env.set('BBMAP_CONFIG', self.prefix.bin.config)
run_env.set('BBMAP_RESOURCES', self.prefix.bin.resources)
def setup_run_environment(self, env):
env.set('BBMAP_CONFIG', self.prefix.bin.config)
env.set('BBMAP_RESOURCES', self.prefix.bin.resources)

View File

@@ -6,13 +6,13 @@
from spack import *
class Bc(AutotoolsPackage):
class Bc(AutotoolsPackage, GNUMirrorPackage):
"""bc is an arbitrary precision numeric processing language. Syntax is
similar to C, but differs in many substantial areas. It supports
interactive execution of statements."""
homepage = "https://www.gnu.org/software/bc"
url = "https://ftpmirror.gnu.org/bc/bc-1.07.tar.gz"
gnu_mirror_path = "bc/bc-1.07.tar.gz"
version('1.07', sha256='55cf1fc33a728d7c3d386cc7b0cb556eb5bacf8e0cb5a3fcca7f109fc61205ad')

View File

@@ -0,0 +1,4 @@
#!/bin/sh
# convenience wrapper for the jar file
java $JAVA_ARGS $JAVA_OPTS -jar beagle.jar "$@"

View File

@@ -0,0 +1,43 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os.path
class Beagle(Package):
"""Beagle is a software package for phasing genotypes and for imputing
ungenotyped markers."""
homepage = "http://faculty.washington.edu/browning/beagle/beagle.html"
version('5.1', sha256='994f926a4ec0eac665631f37c4a961d3f75c966c71841079275364013c90996c',
expand=False, url='http://faculty.washington.edu/browning/beagle/beagle.25Nov19.28d.jar')
version('5.0', sha256='8390fe18b53786b676b67dddae6d1c086d6225e518f6a82047f4138196b48621',
expand=False, url='https://faculty.washington.edu/browning/beagle/beagle.12Jul19.0df.jar')
version('4.1', sha256='6c94610b278fc108c3e80b1134226911be1fc92b7d378ba648ac3eb97c5a3207',
expand=False, url='https://faculty.washington.edu/browning/beagle/beagle.27Jan18.7e1.jar')
depends_on('java@8', type='run')
def install(self, spec, prefix):
mkdirp(prefix.bin)
jar_file = os.path.basename(self.stage.archive_file)
install(jar_file, prefix.bin)
# Set up a helper script to call java on the jar file,
# explicitly codes the path for java and the jar file.
script_sh = join_path(os.path.dirname(__file__), "beagle.sh")
script = prefix.bin.beagle
install(script_sh, script)
set_executable(script)
# Munge the helper script to explicitly point to java and the
# jar file.
java = self.spec['java'].prefix.bin.java
kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
filter_file('^java', java, script, **kwargs)
filter_file('beagle.jar', join_path(prefix.bin, jar_file),
script, **kwargs)

View File

@@ -22,8 +22,8 @@ class Beast2(Package):
depends_on('java')
def setup_environment(self, spack_env, run_env):
run_env.set('BEAST', self.prefix)
def setup_run_environment(self, env):
env.set('BEAST', self.prefix)
def install(self, spec, prefix):
install_tree('bin', prefix.bin)

View File

@@ -12,17 +12,23 @@ class BerkeleyDb(AutotoolsPackage):
homepage = "http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
url = "http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz"
version('5.3.28', sha256='e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628')
version('6.0.35', sha256='24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55')
version('6.1.29', sha256='b3c18180e4160d97dd197ba1d37c19f6ea2ec91d31bbfaf8972d99ba097af17d')
version('6.2.32', sha256='a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb')
version('6.1.29', sha256='b3c18180e4160d97dd197ba1d37c19f6ea2ec91d31bbfaf8972d99ba097af17d')
version('6.0.35', sha256='24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55')
version('5.3.28', sha256='e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628')
configure_directory = 'dist'
build_directory = 'spack-build'
def url_for_version(self, version):
# newer version need oracle login, so get them from gentoo mirror
return 'http://distfiles.gentoo.org/distfiles/db-{0}.tar.gz'.format(version)
# TODO: Gentoo's website removed the BerkeleyDB archives.
# Please update the function bellow with a valid mirror.
# Right now this package will fetch from the Oracle website,
# and versions 5.3.28 and 6.0.35 will fail to download.
#
# def url_for_version(self, version):
# # newer version need oracle login, so get them from gentoo mirror
# url_fmt = 'http://distfiles.gentoo.org/distfiles/db-{0}.tar.gz'
# return url_fmt.format(version)
def configure_args(self):
return ['--disable-static', '--enable-cxx', '--enable-stl']

View File

@@ -0,0 +1,21 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Bind9(AutotoolsPackage):
"""
BIND 9 has evolved to be a very flexible, full-featured DNS system.
"""
homepage = "https://github.com/isc-projects/bind9"
url = "https://github.com/isc-projects/bind9/archive/v9_14_6.tar.gz"
version('9_14_6', sha256='98be7a7b6d614b519f6c8d6ec7a8a39759ae9604d87228d9dc7c034471e5433e')
def configure_args(self):
args = ["--without-python", "--disable-linux-caps"]
return args

View File

@@ -7,11 +7,11 @@
import glob
class Binutils(AutotoolsPackage):
class Binutils(AutotoolsPackage, GNUMirrorPackage):
"""GNU binutils, which contain the linker, assembler, objdump and others"""
homepage = "http://www.gnu.org/software/binutils/"
url = "https://ftpmirror.gnu.org/binutils/binutils-2.28.tar.bz2"
gnu_mirror_path = "binutils/binutils-2.28.tar.bz2"
version('2.32', sha256='de38b15c902eb2725eac6af21183a5f34ea4634cb0bcef19612b50e5ed31072d')
version('2.31.1', sha256='ffcc382695bf947da6135e7436b8ed52d991cf270db897190f19d6f9838564d0')

View File

@@ -8,13 +8,13 @@
import sys
class Bison(AutotoolsPackage):
class Bison(AutotoolsPackage, GNUMirrorPackage):
"""Bison is a general-purpose parser generator that converts
an annotated context-free grammar into a deterministic LR or
generalized LR (GLR) parser employing LALR(1) parser tables."""
homepage = "https://www.gnu.org/software/bison/"
url = "https://ftpmirror.gnu.org/bison/bison-3.4.2.tar.gz"
gnu_mirror_path = "bison/bison-3.4.2.tar.gz"
version('3.4.2', sha256='ff3922af377d514eca302a6662d470e857bd1a591e96a2050500df5a9d59facf')
version('3.0.5', sha256='cd399d2bee33afa712bac4b1f4434e20379e9b4099bce47189e09a7675a2d566')

View File

@@ -45,10 +45,7 @@ def install(self, spec, prefix):
install_tree('hdf', prefix.hdf)
install_tree('pbdata', prefix.pbdata)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path('LD_LIBRARY_PATH',
self.spec.prefix.hdf)
spack_env.prepend_path('LD_LIBRARY_PATH',
self.spec.prefix.alignment)
spack_env.prepend_path('LD_LIBRARY_PATH',
self.spec.prefix.pbdata)
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.hdf)
env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.alignment)
env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.pbdata)

View File

@@ -26,19 +26,19 @@ class Blasr(Package):
phases = ['configure', 'build', 'install']
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.spec.prefix.utils)
spack_env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix)
spack_env.prepend_path('CPATH', self.spec[
'blasr-libcpp'].prefix.pbdata)
spack_env.prepend_path('CPATH', self.spec[
'blasr-libcpp'].prefix.alignment)
spack_env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.hdf)
def setup_build_environment(self, env):
env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix)
env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.pbdata)
env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.alignment)
env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.hdf)
# hdf has +mpi by default, so handle that possibility
if ('+mpi' in self.spec['hdf5']):
spack_env.set('CC', self.spec['mpi'].mpicc)
spack_env.set('CXX', self.spec['mpi'].mpicxx)
env.set('CC', self.spec['mpi'].mpicc)
env.set('CXX', self.spec['mpi'].mpicxx)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.spec.prefix.utils)
def configure(self, spec, prefix):
configure_args = [

View File

@@ -17,8 +17,8 @@ class Blat(Package):
depends_on('libpng')
def setup_environment(self, spack_env, run_env):
spack_env.set('MACHTYPE', 'x86_64')
def setup_build_environment(self, env):
env.set('MACHTYPE', 'x86_64')
def install(self, spec, prefix):
mkdirp(prefix.bin)

View File

@@ -0,0 +1,31 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Blktrace(MakefilePackage):
"""
blktrace is a block layer IO tracing mechanism which provides detailed
information about request queue operations up to user space. There are
three major components: a kernel component, a utility to record the i/o
trace information for the kernel to user space, and utilities to analyse
and view the trace information.
"""
homepage = "https://brick.kernel.dk"
url = "https://brick.kernel.dk/snaps/blktrace-1.2.0.tar.gz"
version('1.2.0', sha256='d14029bc096026dacb206bf115c912dcdb795320b5aba6dff3e46d7f94c5242d')
version('1.1.0', sha256='dc1e5da64b8fef454ec24aa4fcc760112b4ea7c973e2485961aa5668b3a8ce1d')
version('1.0.5', sha256='783b4c8743498de74b3492725815d31f3842828baf8710c53bc4e7e82cee387c')
version('1.0.4', sha256='c1b53e2382f7309e822d48fef187cf44e84bb44df52a0a9786d447d127af75cf')
version('1.0.3', sha256='78c6825212fe6700039fab77d53bc02e6b324e712caea718fff190e4e034cfa8')
version('1.0.2', sha256='15f01e2a952919ba3c7b90f8bd891d1a98c454626501094030df632666786343')
depends_on('libaio')
def install(self, spec, prefix):
install_tree('.', prefix)

View File

@@ -201,11 +201,11 @@ def cmake_args(self):
#
# Environment setup
#
def setup_environment(self, spack_env, run_env):
def setup_run_environment(self, env):
# Bohrium needs an extra include dir apart from
# the self.prefix.include dir
run_env.prepend_path("CPATH", self.prefix.include.bohrium)
run_env.set("BH_CONFIG", self.config_file)
env.prepend_path("CPATH", self.prefix.include.bohrium)
env.set("BH_CONFIG", self.config_file)
#
# Quick tests

View File

@@ -367,6 +367,12 @@ def determine_b2_options(self, spec, options):
cxxflags.append('-stdlib=libc++')
options.extend(['toolset=clang',
'linkflags="-stdlib=libc++"'])
elif spec.satisfies('%xl') or spec.satisfies('%xl_r'):
# see also: https://lists.boost.org/boost-users/2019/09/89953.php
# the cxxstd setting via spack is not sufficient to drive the
# change into boost compilation
if spec.variants['cxxstd'].value == '11':
cxxflags.append('-std=c++11')
if cxxflags:
options.append('cxxflags="{0}"'.format(' '.join(cxxflags)))

View File

@@ -62,5 +62,5 @@ def filter_sbang(self):
for file in files:
filter_file(pattern, repl, *files, backup=False)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PERL5LIB', prefix.lib)
def setup_run_environment(self, env):
env.prepend_path('PERL5LIB', self.prefix.lib)

View File

@@ -30,8 +30,6 @@ class Breseq(AutotoolsPackage):
conflicts('%gcc@:4.8')
conflicts('%clang@:3.3')
def setup_environment(self, spack_env, run_env):
spack_env.set('LDFLAGS',
"-L{0}".format(self.spec['zlib'].prefix.lib))
spack_env.set('CFLAGS',
"-I{0}".format(self.spec['zlib'].prefix.include))
def setup_build_environment(self, env):
env.set('LDFLAGS', "-L{0}".format(self.spec['zlib'].prefix.lib))
env.set('CFLAGS', "-I{0}".format(self.spec['zlib'].prefix.include))

View File

@@ -0,0 +1,28 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Busybox(MakefilePackage):
"""BusyBox combines tiny versions of many common UNIX utilities into
a single small executable. It provides replacements for most of
the utilities you usually find in GNU fileutils, shellutils, etc"""
homepage = "https://busybox.net"
url = "https://busybox.net/downloads/busybox-1.31.0.tar.bz2"
version('1.31.1', sha256='d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998')
version('1.31.0', sha256='0e4925392fd9f3743cc517e031b68b012b24a63b0cf6c1ff03cce7bb3846cc99')
version('1.30.1', sha256='3d1d04a4dbd34048f4794815a5c48ebb9eb53c5277e09ffffc060323b95dfbdc')
version('1.30.0', sha256='9553da068c0a30b1b8b72479908c1ba58672e2be7b535363a88de5e0f7bc04ce')
def build(self, spec, prefix):
make('defconfig')
make()
def install(self, spec, prefix):
make('install')
install_tree('.', prefix)

View File

@@ -0,0 +1,36 @@
diff --git a/test/Makefile.am b/test/Makefile.am
index e3c42ea88..7b5568d85 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -158,8 +158,10 @@ ps-features \
svg-clip \
svg-surface \
toy-font-face \
-font-variations \
user-data
+#if CAIRO_HAS_FT_FONT
+NOLOG_TESTS += font-variations
+#endif
# A target to summarise the failures
check-summary:
diff --git a/test/Makefile.sources b/test/Makefile.sources
index c47131faf..8568f7cf8 100644
--- a/test/Makefile.sources
+++ b/test/Makefile.sources
@@ -144,7 +144,6 @@ test_sources = \
font-face-get-type.c \
font-matrix-translation.c \
font-options.c \
- font-variations.c \
glyph-cache-pressure.c \
get-and-set.c \
get-clip.c \
@@ -399,6 +398,7 @@ pthread_test_sources = \
ft_font_test_sources = \
bitmap-font.c \
+ font-variations.c \
ft-font-create-for-ft-face.c \
ft-show-glyphs-positioning.c \
ft-show-glyphs-table.c \

View File

@@ -21,18 +21,39 @@ class Cairo(AutotoolsPackage):
variant('X', default=False, description="Build with X11 support")
variant('pdf', default=False, description="Enable cairo's PDF surface backend feature")
variant('gobject', default=False, description="Enable cairo's gobject functions feature")
variant('ft', default=False, description="Enable cairo's FreeType font backend feature")
variant('fc', default=False, description="Enable cairo's Fontconfig font backend feature")
variant('png', default=False, description="Enable cairo's PNG functions feature")
variant('svg', default=False, description="Enable cairo's SVN functions feature")
depends_on('libx11', when='+X')
depends_on('libxext', when='+X')
depends_on('libxrender', when='+X')
depends_on('libxcb', when='+X')
depends_on('python', when='+X', type='build')
depends_on('libpng')
depends_on('libpng', when='+png')
depends_on('librsvg', when='+svg')
depends_on('glib')
depends_on('pixman')
depends_on('freetype')
depends_on('automake', type='build')
depends_on('autoconf', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('freetype', when='+ft')
depends_on('pkgconfig', type='build')
depends_on('fontconfig@2.10.91:') # Require newer version of fontconfig.
depends_on('fontconfig@2.10.91:', when='+fc') # Require newer version of fontconfig.
conflicts('+png', when='platform=darwin')
conflicts('+svg', when='platform=darwin')
# patch from https://gitlab.freedesktop.org/cairo/cairo/issues/346
patch('fontconfig.patch', when='@1.16.0')
def setup_build_environment(self, env):
env.set('NOCONFIGURE', "1")
def autoreconf(self, spec, prefix):
which('sh')('./autogen.sh')
def configure_args(self):
args = [
@@ -47,5 +68,7 @@ def configure_args(self):
args.extend(self.enable_or_disable('pdf'))
args.extend(self.enable_or_disable('gobject'))
args.extend(self.enable_or_disable('ft'))
args.extend(self.enable_or_disable('fc'))
return args

View File

@@ -27,10 +27,10 @@ class Cantera(SConsPackage):
# Required dependencies
depends_on('fmt@3.0.0:3.0.2', when='@2.3.0:')
depends_on('googletest', when='@2.3.0:')
depends_on('googletest+gmock', when='@2.3.0:')
depends_on('eigen', when='@2.3.0:')
depends_on('boost')
depends_on('sundials', when='+sundials') # must be compiled with -fPIC
depends_on('sundials@:3.1.2', when='+sundials') # must be compiled with -fPIC
depends_on('blas')
depends_on('lapack')

View File

@@ -25,5 +25,5 @@ class Casper(MakefilePackage):
def install(self, spec, prefix):
install_tree('.', prefix)
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.spec.prefix)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.spec.prefix)

View File

@@ -0,0 +1,23 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Cassandra(Package):
"""
Apache Cassandra is a highly-scalable partitioned row store. Rows are
organized into tables with a required primary key.
"""
homepage = "https://github.com/apache/cassandra"
url = "https://github.com/apache/cassandra/archive/cassandra-4.0-alpha2.tar.gz"
version('4.0-alpha2', sha256='6a8e99d8bc51efd500981c85c6aa547387b2fdbedecd692308f4632dbc1de3ba')
version('4.0-alpha1', sha256='2fdf5e3d6c03a29d24a09cd52bb17575e5faccdc4c75a07edd63a9bf4f740105')
version('3.11.5', sha256='0ee3da12a2be86d7e03203fcc56c3589ddb38347b9cd031495a2b7fcf639fea6', preferred=True)
def install(self, spec, prefix):
install_tree('.', prefix)

View File

@@ -148,7 +148,7 @@ def do_stage(self, mirror_only=False):
tty.msg("Already generated %s in %s" % (self.name,
self.stage.source_path))
def setup_environment(self, spack_env, run_env):
def setup_run_environment(self, env):
# paraview 5.5 and later
# - cmake under lib/cmake/paraview-5.5
# - libs under lib
@@ -160,18 +160,18 @@ def setup_environment(self, spack_env, run_env):
if self.spec.version <= Version('5.4.1'):
lib_dir = join_path(lib_dir, paraview_subdir)
run_env.set('ParaView_DIR', self.prefix)
run_env.prepend_path('LIBRARY_PATH', lib_dir)
run_env.prepend_path('LD_LIBRARY_PATH', lib_dir)
env.set('ParaView_DIR', self.prefix)
env.prepend_path('LIBRARY_PATH', lib_dir)
env.prepend_path('LD_LIBRARY_PATH', lib_dir)
if '+python' in self.spec or '+python3' in self.spec:
python_version = self.spec['python'].version.up_to(2)
run_env.prepend_path('PYTHONPATH', join_path(lib_dir,
'python{0}'.format(python_version),
'site-packages'))
env.prepend_path('PYTHONPATH', join_path(lib_dir,
'python{0}'.format(python_version),
'site-packages'))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('ParaView_DIR', self.prefix)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('ParaView_DIR', self.prefix)
@property
def root_cmakelists_dir(self):

View File

@@ -31,27 +31,27 @@ class Cbench(MakefilePackage):
conflicts('%xl')
conflicts('%xl_r')
def setup_environment(self, build_env, run_env):
def setup_build_environment(self, env):
# The location of the Cbench source tree
build_env.set('CBENCHOME', self.stage.source_path)
env.set('CBENCHOME', self.stage.source_path)
# The location that will contain all of your tests and their results
build_env.set('CBENCHTEST', self.prefix)
env.set('CBENCHTEST', self.prefix)
# The location of the system MPI tree
build_env.set('MPIHOME', self.spec['mpi'].prefix)
env.set('MPIHOME', self.spec['mpi'].prefix)
# Pick the compiler collection/chain you want to compile with.
# Examples include: intel, gcc, pgi.
build_env.set('COMPILERCOLLECTION', self.compiler.name)
env.set('COMPILERCOLLECTION', self.compiler.name)
# Linking flags for BLAS/LAPACK and FFTW
build_env.set('BLASLIB', self.spec['blas'].libs.ld_flags)
build_env.set('LAPACKLIB', self.spec['lapack'].libs.ld_flags)
build_env.set('FFTWLIB', self.spec['fftw'].libs.ld_flags)
env.set('BLASLIB', self.spec['blas'].libs.ld_flags)
env.set('LAPACKLIB', self.spec['lapack'].libs.ld_flags)
env.set('FFTWLIB', self.spec['fftw'].libs.ld_flags)
# The number of make jobs (commands) to run simultaneously
build_env.set('JOBS', str(make_jobs))
env.set('JOBS', str(make_jobs))
@run_before('build')
@on_package_attributes(run_tests=True)

View File

@@ -100,10 +100,10 @@ class CbtfKrell(CMakePackage):
# MPI Installations
depends_on("openmpi", when='+openmpi')
depends_on("mpich", when='+mpich')
depends_on("mpich2", when='+mpich2')
depends_on("mvapich2", when='+mvapich2')
depends_on("mvapich", when='+mvapich')
depends_on("mpich@:1", when='+mpich')
depends_on("mpich@2:", when='+mpich2')
depends_on("mvapich2@2:", when='+mvapich2')
depends_on("mvapich2@:1", when='+mvapich')
depends_on("mpt", when='+mpt')
depends_on("python", when='@develop', type=('build', 'run'))

View File

@@ -34,6 +34,12 @@ class Cbtf(CMakePackage):
depends_on("cmake@3.0.2:", type='build')
# for rpcgen
depends_on("rpcsvc-proto", type='build')
# for rpc
depends_on("libtirpc", type='link')
depends_on("boost@1.66.0:1.69.0")
# For MRNet

View File

@@ -0,0 +1,11 @@
--- spack-src.org/umbrella/src/Makefile 2017-05-30 20:49:30.000000000 +0900
+++ spack-src/umbrella/src/Makefile 2019-11-20 17:23:42.101854924 +0900
@@ -16,7 +16,7 @@
umbrella_helper.html: umbrella.py
# pydoc2/pydoc creates a html file, umbrella.html.
- if which pydoc2; then pydoc2 -w umbrella; elif which pydoc; then pydoc -w umbrella; fi
+ if which pydoc; then pydoc -w umbrella; elif which pydoc2; then pydoc2 -w umbrella; fi
if [ -f umbrella.html ]; then mv umbrella.html umbrella_helper.html; fi
clean:

View File

@@ -0,0 +1,116 @@
--- spack-src.org/configure 2019-11-25 14:33:33.991883993 +0900
+++ spack-src/configure 2019-11-25 14:47:11.591066274 +0900
@@ -973,18 +973,46 @@
fi
fi
+PYDOC=""
python=0 #to be set to the python path
if [ $config_python_path != no ]
then
if [ -n "$PYTHON" ] && check_file ${PYTHON}
then
python=${PYTHON}
+ python_dir=`dirname ${PYTHON}`
+ python_cmd=`basename ${PYTHON}`
+ pydoc_cmd=`echo $python_cmd | sed s/python/pydoc/`
+ pydoc2_cmd=`echo $python_cmd | sed s/python/pydoc2/`
+ pydoc=${python_dir}/${pydoc_cmd}
+ pydoc2=${python_dir}/${pydoc2_cmd}
+ if check_file $pydoc
+ then
+ PYDOC=$pydoc
+ elif check_file $pydoc2
+ then
+ PYDOC=$pydoc2
+ fi
elif check_file ${python_path}/bin/python2
then
python=${python_path}/bin/python2
+ if check_file ${python_path}/bin/pydoc
+ then
+ PYDOC=${python_path}/bin/pydoc
+ elif check_file ${python_path}/bin/pydoc2
+ then
+ PYDOC=${python_path}/bin/pydoc2
+ fi
elif check_file ${python_path}/bin/python
then
python=${python_path}/bin/python
+ if check_file ${python_path}/bin/pydoc
+ then
+ PYDOC=${python_path}/bin/pydoc
+ elif check_file ${python_path}/bin/pydoc2
+ then
+ PYDOC=${python_path}/bin/pydoc2
+ fi
else
python=0
fi
@@ -1056,7 +1084,7 @@
fi
fi
-if [ $python_dev = no ]
+if [ "$python_dev" = no ]
then
if [ $config_python_path = yes ]
then
@@ -1073,12 +1101,48 @@
if [ -n "$PYTHON3" ] && check_file ${PYTHON3}
then
python3=${PYTHON3}
+ if [ "$PYDOC" = "" ]
+ then
+ python_dir=`dirname ${PYTHON3}`
+ python_cmd=`basename ${PYTHON3}`
+ pydoc_cmd=`echo $python_cmd | sed s/python/pydoc/`
+ pydoc3_cmd=`echo $python_cmd | sed s/python/pydoc3/`
+ pydoc=${python_dir}/${pydoc_cmd}
+ pydoc3=${python_dir}/${pydoc3_cmd}
+ if check_file $pydoc
+ then
+ PYDOC=$pydoc
+ elif heck_file $pydoc3
+ then
+ PYDOC=$pydoc3
+ fi
+ fi
elif check_file ${python3_path}/bin/python3
then
python3=${python3_path}/bin/python3
+ if [ "$PYDOC" = "" ]
+ then
+ if check_file ${python3_path}/bin/pydoc
+ then
+ PYDOC=${python3_path}/bin/pydoc
+ elif check_file ${python3_path}/bin/pydoc3
+ then
+ PYDOC=${python3_path}/bin/pydoc3
+ fi
+ fi
elif check_file ${python3_path}/bin/python
then
python3=${python3_path}/bin/python
+ if [ "$PYDOC" = "" ]
+ then
+ if check_file ${python3_path}/bin/pydoc
+ then
+ PYDOC=${python3_path}/bin/pydoc
+ elif check_file ${python3_path}/bin/pydoc3
+ then
+ PYDOC=${python3_path}/bin/pydoc3
+ fi
+ fi
else
python3=0
fi
@@ -1630,7 +1694,7 @@
CCTOOLS_PYTHON3_2TO3=${python3_2to3}
CCTOOLS_PYTHON3_PATH=\$(CCTOOLS_INSTALL_DIR)/lib/python\$(CCTOOLS_PYTHON3_VERSION)/site-packages
-CCTOOLS_PYDOC=$(which pydoc 2> /dev/null || which pydoc2 2> /dev/null || which pydoc3 > /dev/null)
+CCTOOLS_PYDOC=${PYDOC}
CCTOOLS_SGE_PARAMETERS=$(echo ${sge_parameters} | sed -e 's/\$/\\\$\$/g')

View File

@@ -20,12 +20,15 @@ class Cctools(AutotoolsPackage):
depends_on('openssl')
depends_on('perl+shared', type=('build', 'run'))
depends_on('python@:3', type=('build', 'run'))
depends_on('python@:2.9', when='@6.1.1', type=('build', 'run'))
depends_on('python', type=('build', 'run'))
depends_on('readline')
depends_on('swig')
# depends_on('xrootd')
depends_on('zlib')
patch('arm.patch', when='target=aarch64:')
patch('cctools_7.0.18.python.patch', when='@7.0.18')
patch('cctools_6.1.1.python.patch', when='@6.1.1')
# Generally SYS_foo is defined to __NR_foo (sys/syscall.h) which
# is then defined to a syscall number (asm/unistd_64.h). Certain
@@ -41,10 +44,21 @@ def patch(self):
def configure_args(self):
args = []
# For python
if self.spec.satisfies('^python@3:'):
args.append('--with-python-path=no')
args.append(
'--with-python3-path={0}'.format(self.spec['python'].prefix)
)
else:
args.append('--with-python3-path=no')
args.append(
'--with-python-path={0}'.format(self.spec['python'].prefix)
)
# disable these bits
for p in ['mysql', 'python3', 'xrootd']:
for p in ['mysql', 'xrootd']:
args.append('--with-{0}-path=no'.format(p))
# point these bits at the Spack installations
for p in ['openssl', 'perl', 'python', 'readline', 'swig', 'zlib']:
for p in ['openssl', 'perl', 'readline', 'swig', 'zlib']:
args.append('--with-{0}-path={1}'.format(p, self.spec[p].prefix))
return args

View File

@@ -31,5 +31,5 @@ def build(self, spec, prefix):
make_args.append('zlib=no')
make(*make_args)
def setup_environment(self, spack_env, run_env):
spack_env.set('PREFIX', prefix.bin)
def setup_build_environment(self, env):
env.set('PREFIX', self.prefix.bin)

View File

@@ -16,6 +16,8 @@ class Ceed(BundlePackage):
homepage = "https://ceed.exascaleproject.org"
version('2.0')
variant('cuda', default=False,
description='Build MAGMA; enable CUDA support in libCEED and OCCA')
variant('mfem', default=True, description='Build MFEM and Laghos')

View File

@@ -82,17 +82,17 @@ class Charmpp(Package):
provides('mpi@2', when='@6.7.1: build-target=AMPI backend={0}'.format(b))
provides('mpi@2', when='@6.7.1: build-target=LIBS backend={0}'.format(b))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('MPICC', join_path(self.prefix.bin, 'ampicc'))
spack_env.set('MPICXX', join_path(self.prefix.bin, 'ampicxx'))
spack_env.set('MPIF77', join_path(self.prefix.bin, 'ampif77'))
spack_env.set('MPIF90', join_path(self.prefix.bin, 'ampif90'))
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('MPICC', self.prefix.bin.ampicc)
env.set('MPICXX', self.prefix.bin.ampicxx)
env.set('MPIF77', self.prefix.bin.ampif77)
env.set('MPIF90', self.prefix.bin.ampif90)
def setup_dependent_package(self, module, dependent_spec):
self.spec.mpicc = join_path(self.prefix.bin, 'ampicc')
self.spec.mpicxx = join_path(self.prefix.bin, 'ampicxx')
self.spec.mpifc = join_path(self.prefix.bin, 'ampif90')
self.spec.mpif77 = join_path(self.prefix.bin, 'ampif77')
self.spec.mpicc = self.prefix.bin.ampicc
self.spec.mpicxx = self.prefix.bin.ampicxx
self.spec.mpifc = self.prefix.bin.ampif90
self.spec.mpif77 = self.prefix.bin.ampif77
depends_on("mpi", when="backend=mpi")
depends_on("papi", when="+papi")
@@ -238,6 +238,14 @@ def install(self, spec, prefix):
pass
shutil.rmtree(join_path(prefix, "tmp"))
# A broken 'doc' link in the prefix can break the build.
# Remove it and replace it if it is broken.
try:
os.stat(prefix.doc)
except OSError:
os.remove(prefix.doc)
mkdirp(prefix.doc)
@run_after('install')
@on_package_attributes(run_tests=True)
def check_build(self):

View File

@@ -35,22 +35,27 @@ def autoreconf(self, spec, prefix):
bash = which('bash')
bash('./bootstrap')
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
rose_home = self.spec['rose'].prefix
boost_home = self.spec['boost'].prefix
iegen_home = self.spec['iegenlib'].prefix
spack_env.append_path('LD_LIBRARY_PATH', rose_home.lib)
spack_env.append_path('LD_LIBRARY_PATH', boost_home.lib)
spack_env.append_path('LD_LIBRARY_PATH', iegen_home.lib)
env.set('ROSEHOME', rose_home)
env.set('BOOSTHOME', boost_home)
env.set('IEGENHOME', iegen_home)
run_env.append_path('LD_LIBRARY_PATH', rose_home.lib)
run_env.append_path('LD_LIBRARY_PATH', boost_home.lib)
run_env.append_path('LD_LIBRARY_PATH', iegen_home.lib)
env.append_path('LD_LIBRARY_PATH', rose_home.lib)
env.append_path('LD_LIBRARY_PATH', boost_home.lib)
env.append_path('LD_LIBRARY_PATH', iegen_home.lib)
spack_env.set('ROSEHOME', rose_home)
spack_env.set('BOOSTHOME', boost_home)
spack_env.set('IEGENHOME', iegen_home)
def setup_run_environment(self, env):
rose_home = self.spec['rose'].prefix
boost_home = self.spec['boost'].prefix
iegen_home = self.spec['iegenlib'].prefix
env.append_path('LD_LIBRARY_PATH', rose_home.lib)
env.append_path('LD_LIBRARY_PATH', boost_home.lib)
env.append_path('LD_LIBRARY_PATH', iegen_home.lib)
def configure_args(self):
args = ['--with-rose={0}'.format(self.spec['rose'].prefix),

View File

@@ -29,5 +29,5 @@ def install(self, spec, prefix):
os.rename('chlorop', 'bin/chlorop')
install_tree('.', prefix)
def setup_environment(self, spack_env, run_env):
run_env.set('CHLOROP', self.prefix)
def setup_run_environment(self, env):
env.set('CHLOROP', self.prefix)

View File

@@ -23,6 +23,6 @@ def install(self, spec, prefix):
# (CMake) Header Only library so just copy
install_tree(self.stage.source_path, prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path('CMAKE_PREFIX_PATH', self.prefix)
spack_env.set('CINCH_SOURCE_DIR', self.prefix)
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path('CMAKE_PREFIX_PATH', self.prefix)
env.set('CINCH_SOURCE_DIR', self.prefix)

View File

@@ -36,9 +36,9 @@ class Citcoms(AutotoolsPackage):
conflicts('+pyre', when='@3.3:', msg='Pyre support was removed from 3.3+')
conflicts('+exchanger', when='@3.3:', msg='Exchanger support was removed from 3.3+')
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
if '+ggrd' in self.spec:
spack_env.set('HC_HOME', self.spec['hc'].prefix)
env.set('HC_HOME', self.spec['hc'].prefix)
def configure_args(self):
args = ['CC={0}'.format(self.spec['mpi'].mpicc)]

Some files were not shown because too many files have changed in this diff Show More