Compare commits

..

2 Commits

Author SHA1 Message Date
Gregory Becker
1c6bb8cfc3 add regression number 2023-06-21 11:35:57 -07:00
Gregory Becker
9244ecacf0 bugfix: environments with unify:false can concretize abstract hash without name 2023-06-21 11:34:16 -07:00
122 changed files with 1363 additions and 1645 deletions

View File

@@ -916,9 +916,9 @@ function, as shown in the example below:
.. code-block:: yaml
projections:
zlib: "{name}-{version}"
^mpi: "{name}-{version}/{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}"
all: "{name}-{version}/{compiler.name}-{compiler.version}"
zlib: {name}-{version}
^mpi: {name}-{version}/{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}
all: {name}-{version}/{compiler.name}-{compiler.version}
The entries in the projections configuration file must all be either
specs or the keyword ``all``. For each spec, the projection used will

428
lib/spack/env/cc vendored
View File

@@ -416,14 +416,30 @@ input_command="$*"
# The lists are all bell-separated to be as flexible as possible, as their
# contents may come from the command line, from ' '-separated lists,
# ':'-separated lists, etc.
include_dirs_list=""
lib_dirs_list=""
rpath_dirs_list=""
system_include_dirs_list=""
system_lib_dirs_list=""
system_rpath_dirs_list=""
isystem_system_include_dirs_list=""
isystem_include_dirs_list=""
libs_list=""
other_args_list=""
# Global state for keeping track of -Wl,-rpath -Wl,/path
wl_expect_rpath=no
# Same, but for -Xlinker -rpath -Xlinker /path
xlinker_expect_rpath=no
parse_Wl() {
while [ $# -ne 0 ]; do
if [ "$wl_expect_rpath" = yes ]; then
if system_dir "$1"; then
append return_system_rpath_dirs_list "$1"
append system_rpath_dirs_list "$1"
else
append return_rpath_dirs_list "$1"
append rpath_dirs_list "$1"
fi
wl_expect_rpath=no
else
@@ -433,9 +449,9 @@ parse_Wl() {
if [ -z "$arg" ]; then
shift; continue
elif system_dir "$arg"; then
append return_system_rpath_dirs_list "$arg"
append system_rpath_dirs_list "$arg"
else
append return_rpath_dirs_list "$arg"
append rpath_dirs_list "$arg"
fi
;;
--rpath=*)
@@ -443,9 +459,9 @@ parse_Wl() {
if [ -z "$arg" ]; then
shift; continue
elif system_dir "$arg"; then
append return_system_rpath_dirs_list "$arg"
append system_rpath_dirs_list "$arg"
else
append return_rpath_dirs_list "$arg"
append rpath_dirs_list "$arg"
fi
;;
-rpath|--rpath)
@@ -459,7 +475,7 @@ parse_Wl() {
return 1
;;
*)
append return_other_args_list "-Wl,$1"
append other_args_list "-Wl,$1"
;;
esac
fi
@@ -467,210 +483,177 @@ parse_Wl() {
done
}
categorize_arguments() {
unset IFS
while [ $# -ne 0 ]; do
return_other_args_list=""
return_isystem_was_used=""
return_isystem_system_include_dirs_list=""
return_isystem_include_dirs_list=""
return_system_include_dirs_list=""
return_include_dirs_list=""
return_system_lib_dirs_list=""
return_lib_dirs_list=""
return_system_rpath_dirs_list=""
return_rpath_dirs_list=""
# an RPATH to be added after the case statement.
rp=""
# Global state for keeping track of -Wl,-rpath -Wl,/path
wl_expect_rpath=no
# Multiple consecutive spaces in the command line can
# result in blank arguments
if [ -z "$1" ]; then
shift
continue
fi
# Same, but for -Xlinker -rpath -Xlinker /path
xlinker_expect_rpath=no
while [ $# -ne 0 ]; do
# an RPATH to be added after the case statement.
rp=""
# Multiple consecutive spaces in the command line can
# result in blank arguments
if [ -z "$1" ]; then
shift
continue
fi
if [ -n "${SPACK_COMPILER_FLAGS_KEEP}" ] ; then
# NOTE: the eval is required to allow `|` alternatives inside the variable
eval "\
case \"\$1\" in
$SPACK_COMPILER_FLAGS_KEEP)
append return_other_args_list \"\$1\"
shift
continue
;;
esac
"
fi
# the replace list is a space-separated list of pipe-separated pairs,
# the first in each pair is the original prefix to be matched, the
# second is the replacement prefix
if [ -n "${SPACK_COMPILER_FLAGS_REPLACE}" ] ; then
for rep in ${SPACK_COMPILER_FLAGS_REPLACE} ; do
before=${rep%|*}
after=${rep#*|}
eval "\
stripped=\"\${1##$before}\"
"
if [ "$stripped" = "$1" ] ; then
continue
fi
replaced="$after$stripped"
# it matched, remove it
if [ -n "${SPACK_COMPILER_FLAGS_KEEP}" ] ; then
# NOTE: the eval is required to allow `|` alternatives inside the variable
eval "\
case \"\$1\" in
$SPACK_COMPILER_FLAGS_KEEP)
append other_args_list \"\$1\"
shift
if [ -z "$replaced" ] ; then
# completely removed, continue OUTER loop
continue 2
fi
# re-build argument list with replacement
set -- "$replaced" "$@"
done
fi
case "$1" in
-isystem*)
arg="${1#-isystem}"
return_isystem_was_used=true
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
append return_isystem_system_include_dirs_list "$arg"
else
append return_isystem_include_dirs_list "$arg"
fi
;;
-I*)
arg="${1#-I}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
append return_system_include_dirs_list "$arg"
else
append return_include_dirs_list "$arg"
fi
;;
-L*)
arg="${1#-L}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
append return_system_lib_dirs_list "$arg"
else
append return_lib_dirs_list "$arg"
fi
;;
-l*)
# -loopopt=0 is generated erroneously in autoconf <= 2.69,
# and passed by ifx to the linker, which confuses it with a
# library. Filter it out.
# TODO: generalize filtering of args with an env var, so that
# TODO: we do not have to special case this here.
if { [ "$mode" = "ccld" ] || [ $mode = "ld" ]; } \
&& [ "$1" != "${1#-loopopt}" ]; then
shift
continue
fi
arg="${1#-l}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
append return_other_args_list "-l$arg"
;;
-Wl,*)
IFS=,
if ! parse_Wl ${1#-Wl,}; then
append return_other_args_list "$1"
fi
unset IFS
;;
-Xlinker)
shift
if [ $# -eq 0 ]; then
# -Xlinker without value: let the compiler error about it.
append return_other_args_list -Xlinker
xlinker_expect_rpath=no
break
elif [ "$xlinker_expect_rpath" = yes ]; then
# Register the path of -Xlinker -rpath <other args> -Xlinker <path>
if system_dir "$1"; then
append return_system_rpath_dirs_list "$1"
else
append return_rpath_dirs_list "$1"
fi
xlinker_expect_rpath=no
else
case "$1" in
-rpath=*)
arg="${1#-rpath=}"
if system_dir "$arg"; then
append return_system_rpath_dirs_list "$arg"
else
append return_rpath_dirs_list "$arg"
fi
;;
--rpath=*)
arg="${1#--rpath=}"
if system_dir "$arg"; then
append return_system_rpath_dirs_list "$arg"
else
append return_rpath_dirs_list "$arg"
fi
;;
-rpath|--rpath)
xlinker_expect_rpath=yes
;;
"$dtags_to_strip")
;;
*)
append return_other_args_list -Xlinker
append return_other_args_list "$1"
;;
esac
fi
;;
"$dtags_to_strip")
;;
*)
append return_other_args_list "$1"
continue
;;
esac
shift
done
"
fi
# the replace list is a space-separated list of pipe-separated pairs,
# the first in each pair is the original prefix to be matched, the
# second is the replacement prefix
if [ -n "${SPACK_COMPILER_FLAGS_REPLACE}" ] ; then
for rep in ${SPACK_COMPILER_FLAGS_REPLACE} ; do
before=${rep%|*}
after=${rep#*|}
eval "\
stripped=\"\${1##$before}\"
"
if [ "$stripped" = "$1" ] ; then
continue
fi
# We found `-Xlinker -rpath` but no matching value `-Xlinker /path`. Just append
# `-Xlinker -rpath` again and let the compiler or linker handle the error during arg
# parsing.
if [ "$xlinker_expect_rpath" = yes ]; then
append return_other_args_list -Xlinker
append return_other_args_list -rpath
replaced="$after$stripped"
# it matched, remove it
shift
if [ -z "$replaced" ] ; then
# completely removed, continue OUTER loop
continue 2
fi
# re-build argument list with replacement
set -- "$replaced" "$@"
done
fi
# Same, but for -Wl flags.
if [ "$wl_expect_rpath" = yes ]; then
append return_other_args_list -Wl,-rpath
fi
}
case "$1" in
-isystem*)
arg="${1#-isystem}"
isystem_was_used=true
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
append isystem_system_include_dirs_list "$arg"
else
append isystem_include_dirs_list "$arg"
fi
;;
-I*)
arg="${1#-I}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
append system_include_dirs_list "$arg"
else
append include_dirs_list "$arg"
fi
;;
-L*)
arg="${1#-L}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
append system_lib_dirs_list "$arg"
else
append lib_dirs_list "$arg"
fi
;;
-l*)
# -loopopt=0 is generated erroneously in autoconf <= 2.69,
# and passed by ifx to the linker, which confuses it with a
# library. Filter it out.
# TODO: generalize filtering of args with an env var, so that
# TODO: we do not have to special case this here.
if { [ "$mode" = "ccld" ] || [ $mode = "ld" ]; } \
&& [ "$1" != "${1#-loopopt}" ]; then
shift
continue
fi
arg="${1#-l}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
append other_args_list "-l$arg"
;;
-Wl,*)
IFS=,
if ! parse_Wl ${1#-Wl,}; then
append other_args_list "$1"
fi
unset IFS
;;
-Xlinker)
shift
if [ $# -eq 0 ]; then
# -Xlinker without value: let the compiler error about it.
append other_args_list -Xlinker
xlinker_expect_rpath=no
break
elif [ "$xlinker_expect_rpath" = yes ]; then
# Register the path of -Xlinker -rpath <other args> -Xlinker <path>
if system_dir "$1"; then
append system_rpath_dirs_list "$1"
else
append rpath_dirs_list "$1"
fi
xlinker_expect_rpath=no
else
case "$1" in
-rpath=*)
arg="${1#-rpath=}"
if system_dir "$arg"; then
append system_rpath_dirs_list "$arg"
else
append rpath_dirs_list "$arg"
fi
;;
--rpath=*)
arg="${1#--rpath=}"
if system_dir "$arg"; then
append system_rpath_dirs_list "$arg"
else
append rpath_dirs_list "$arg"
fi
;;
-rpath|--rpath)
xlinker_expect_rpath=yes
;;
"$dtags_to_strip")
;;
*)
append other_args_list -Xlinker
append other_args_list "$1"
;;
esac
fi
;;
"$dtags_to_strip")
;;
*)
append other_args_list "$1"
;;
esac
shift
done
categorize_arguments "$@"
include_dirs_list="$return_include_dirs_list"
lib_dirs_list="$return_lib_dirs_list"
rpath_dirs_list="$return_rpath_dirs_list"
system_include_dirs_list="$return_system_include_dirs_list"
system_lib_dirs_list="$return_system_lib_dirs_list"
system_rpath_dirs_list="$return_system_rpath_dirs_list"
isystem_was_used="$return_isystem_was_used"
isystem_system_include_dirs_list="$return_isystem_system_include_dirs_list"
isystem_include_dirs_list="$return_isystem_include_dirs_list"
other_args_list="$return_other_args_list"
# We found `-Xlinker -rpath` but no matching value `-Xlinker /path`. Just append
# `-Xlinker -rpath` again and let the compiler or linker handle the error during arg
# parsing.
if [ "$xlinker_expect_rpath" = yes ]; then
append other_args_list -Xlinker
append other_args_list -rpath
fi
# Same, but for -Wl flags.
if [ "$wl_expect_rpath" = yes ]; then
append other_args_list -Wl,-rpath
fi
#
# Add flags from Spack's cppflags, cflags, cxxflags, fcflags, fflags, and
@@ -690,14 +673,12 @@ elif [ "$SPACK_ADD_DEBUG_FLAGS" = "custom" ]; then
extend flags_list SPACK_DEBUG_FLAGS
fi
spack_flags_list=""
# Fortran flags come before CPPFLAGS
case "$mode" in
cc|ccld)
case $lang_flags in
F)
extend spack_flags_list SPACK_FFLAGS
extend flags_list SPACK_FFLAGS
;;
esac
;;
@@ -706,7 +687,7 @@ esac
# C preprocessor flags come before any C/CXX flags
case "$mode" in
cpp|as|cc|ccld)
extend spack_flags_list SPACK_CPPFLAGS
extend flags_list SPACK_CPPFLAGS
;;
esac
@@ -716,10 +697,10 @@ case "$mode" in
cc|ccld)
case $lang_flags in
C)
extend spack_flags_list SPACK_CFLAGS
extend flags_list SPACK_CFLAGS
;;
CXX)
extend spack_flags_list SPACK_CXXFLAGS
extend flags_list SPACK_CXXFLAGS
;;
esac
@@ -731,25 +712,10 @@ esac
# Linker flags
case "$mode" in
ld|ccld)
extend spack_flags_list SPACK_LDFLAGS
extend flags_list SPACK_LDFLAGS
;;
esac
IFS="$lsep"
categorize_arguments $spack_flags_list
unset IFS
spack_flags_include_dirs_list="$return_include_dirs_list"
spack_flags_lib_dirs_list="$return_lib_dirs_list"
spack_flags_rpath_dirs_list="$return_rpath_dirs_list"
spack_flags_system_include_dirs_list="$return_system_include_dirs_list"
spack_flags_system_lib_dirs_list="$return_system_lib_dirs_list"
spack_flags_system_rpath_dirs_list="$return_system_rpath_dirs_list"
spack_flags_isystem_was_used="$return_isystem_was_used"
spack_flags_isystem_system_include_dirs_list="$return_isystem_system_include_dirs_list"
spack_flags_isystem_include_dirs_list="$return_isystem_include_dirs_list"
spack_flags_other_args_list="$return_other_args_list"
# On macOS insert headerpad_max_install_names linker flag
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then
@@ -775,8 +741,6 @@ if [ "$mode" = ccld ] || [ "$mode" = ld ]; then
extend lib_dirs_list SPACK_LINK_DIRS
fi
libs_list=""
# add RPATHs if we're in in any linking mode
case "$mode" in
ld|ccld)
@@ -805,16 +769,12 @@ args_list="$flags_list"
# Insert include directories just prior to any system include directories
# NOTE: adding ${lsep} to the prefix here turns every added element into two
extend args_list spack_flags_include_dirs_list "-I"
extend args_list include_dirs_list "-I"
extend args_list spack_flags_isystem_include_dirs_list "-isystem${lsep}"
extend args_list isystem_include_dirs_list "-isystem${lsep}"
case "$mode" in
cpp|cc|as|ccld)
if [ "$spack_flags_isystem_was_used" = "true" ]; then
extend args_list SPACK_INCLUDE_DIRS "-isystem${lsep}"
elif [ "$isystem_was_used" = "true" ]; then
if [ "$isystem_was_used" = "true" ]; then
extend args_list SPACK_INCLUDE_DIRS "-isystem${lsep}"
else
extend args_list SPACK_INCLUDE_DIRS "-I"
@@ -822,15 +782,11 @@ case "$mode" in
;;
esac
extend args_list spack_flags_system_include_dirs_list -I
extend args_list system_include_dirs_list -I
extend args_list spack_flags_isystem_system_include_dirs_list "-isystem${lsep}"
extend args_list isystem_system_include_dirs_list "-isystem${lsep}"
# Library search paths
extend args_list spack_flags_lib_dirs_list "-L"
extend args_list lib_dirs_list "-L"
extend args_list spack_flags_system_lib_dirs_list "-L"
extend args_list system_lib_dirs_list "-L"
# RPATHs arguments
@@ -839,25 +795,20 @@ case "$mode" in
if [ -n "$dtags_to_add" ] ; then
append args_list "$linker_arg$dtags_to_add"
fi
extend args_list spack_flags_rpath_dirs_list "$rpath"
extend args_list rpath_dirs_list "$rpath"
extend args_list spack_flags_system_rpath_dirs_list "$rpath"
extend args_list system_rpath_dirs_list "$rpath"
;;
ld)
if [ -n "$dtags_to_add" ] ; then
append args_list "$dtags_to_add"
fi
extend args_list spack_flags_rpath_dirs_list "-rpath${lsep}"
extend args_list rpath_dirs_list "-rpath${lsep}"
extend args_list spack_flags_system_rpath_dirs_list "-rpath${lsep}"
extend args_list system_rpath_dirs_list "-rpath${lsep}"
;;
esac
# Other arguments from the input command
extend args_list other_args_list
extend args_list spack_flags_other_args_list
# Inject SPACK_LDLIBS, if supplied
extend args_list libs_list "-l"
@@ -913,4 +864,3 @@ fi
# Execute the full command, preserving spaces with IFS set
# to the alarm bell separator.
IFS="$lsep"; exec $full_command_list

View File

@@ -121,7 +121,7 @@ def setup_run_environment(self, env):
$ source {prefix}/{component}/{version}/env/vars.sh
"""
# Only if environment modifications are desired (default is +envmods)
if "~envmods" not in self.spec:
if "+envmods" in self.spec:
env.extend(
EnvironmentModifications.from_sourcing_file(
join_path(self.component_prefix, "env", "vars.sh")

View File

@@ -224,20 +224,20 @@ def setup_parser(subparser):
# Sync buildcache entries from one mirror to another
sync = subparsers.add_parser("sync", help=sync_fn.__doc__)
sync.add_argument(
"--manifest-glob", help="A quoted glob pattern identifying copy manifest files"
"--manifest-glob",
default=None,
help="A quoted glob pattern identifying copy manifest files",
)
sync.add_argument(
"src_mirror",
metavar="source mirror",
type=arguments.mirror_name_or_url,
nargs="?",
help="Source mirror name, path, or URL",
)
sync.add_argument(
"dest_mirror",
metavar="destination mirror",
type=arguments.mirror_name_or_url,
nargs="?",
help="Destination mirror name, path, or URL",
)
sync.set_defaults(func=sync_fn)
@@ -557,9 +557,6 @@ def sync_fn(args):
manifest_copy(glob.glob(args.manifest_glob))
return 0
if args.src_mirror is None or args.dest_mirror is None:
tty.die("Provide mirrors to sync from and to.")
src_mirror = args.src_mirror
dest_mirror = args.dest_mirror

View File

@@ -2380,17 +2380,28 @@ def _concretize_from_constraints(spec_constraints, tests=False):
# Accept only valid constraints from list and concretize spec
# Get the named spec even if out of order
root_spec = [s for s in spec_constraints if s.name]
if len(root_spec) != 1:
m = "The constraints %s are not a valid spec " % spec_constraints
m += "concretization target. all specs must have a single name "
m += "constraint for concretization."
raise InvalidSpecConstraintError(m)
spec_constraints.remove(root_spec[0])
hash_spec = [s for s in spec_constraints if s.abstract_hash]
error_message = "The constraints %s are not a valid spec " % spec_constraints
error_message += "concretization target. all specs must have a single name "
error_message += "constraint for concretization."
if len(root_spec) > 1:
raise InvalidSpecConstraintError(error_message)
if len(root_spec) < 1:
if len(hash_spec) < 1:
raise InvalidSpecConstraintError(error_message)
if root_spec:
spec_constraints.remove(root_spec[0])
root_spec = root_spec[0] if root_spec else Spec()
invalid_constraints = []
while True:
# Attach all anonymous constraints to one named spec
s = root_spec[0].copy()
s = root_spec.copy()
for c in spec_constraints:
if c not in invalid_constraints:
s.constrain(c)

View File

@@ -676,7 +676,7 @@ def is_relocatable(spec):
Raises:
ValueError: if the spec is not installed
"""
if not spec.installed:
if not spec.install_status():
raise ValueError("spec is not installed [{0}]".format(str(spec)))
if spec.external or spec.virtual:

View File

@@ -50,7 +50,6 @@
"""
import collections
import collections.abc
import enum
import io
import itertools
import os
@@ -174,16 +173,6 @@
SPECFILE_FORMAT_VERSION = 4
# InstallStatus is used to map install statuses to symbols for display
# Options are artificially disjoint for dispay purposes
class InstallStatus(enum.Enum):
installed = "@g{[+]} "
upstream = "@g{[^]} "
external = "@g{[e]} "
absent = "@K{ - } "
missing = "@r{[-]} "
def colorize_spec(spec):
"""Returns a spec colorized according to the colors specified in
color_formats."""
@@ -4492,20 +4481,12 @@ def __str__(self):
def install_status(self):
"""Helper for tree to print DB install status."""
if not self.concrete:
return InstallStatus.absent
if self.external:
return InstallStatus.external
upstream, record = spack.store.db.query_by_spec_hash(self.dag_hash())
if not record:
return InstallStatus.absent
elif upstream and record.installed:
return InstallStatus.upstream
elif record.installed:
return InstallStatus.installed
else:
return InstallStatus.missing
return None
try:
record = spack.store.db.get_record(self)
return record.installed
except KeyError:
return None
def _installed_explicitly(self):
"""Helper for tree to print DB install status."""
@@ -4519,10 +4500,7 @@ def _installed_explicitly(self):
def tree(self, **kwargs):
"""Prints out this spec and its dependencies, tree-formatted
with indentation.
Status function may either output a boolean or an InstallStatus
"""
with indentation."""
color = kwargs.pop("color", clr.get_color_when())
depth = kwargs.pop("depth", False)
hashes = kwargs.pop("hashes", False)
@@ -4554,12 +4532,14 @@ def tree(self, **kwargs):
if status_fn:
status = status_fn(node)
if status in list(InstallStatus):
out += clr.colorize(status.value, color=color)
if node.installed_upstream:
out += clr.colorize("@g{[^]} ", color=color)
elif status is None:
out += clr.colorize("@K{ - } ", color=color) # !installed
elif status:
out += clr.colorize("@g{[+]} ", color=color)
out += clr.colorize("@g{[+]} ", color=color) # installed
else:
out += clr.colorize("@r{[-]} ", color=color)
out += clr.colorize("@r{[-]} ", color=color) # missing
if hashes:
out += clr.colorize("@K{%s} ", color=color) % node.dag_hash(hlen)

View File

@@ -173,7 +173,7 @@ def wrapper_environment(working_env):
SPACK_DTAGS_TO_ADD="--disable-new-dtags",
SPACK_DTAGS_TO_STRIP="--enable-new-dtags",
SPACK_COMPILER_FLAGS_KEEP="",
SPACK_COMPILER_FLAGS_REPLACE="-Werror*|",
SPACK_COMPILER_FLAGS_REPLACE="-Werror*",
):
yield
@@ -278,8 +278,8 @@ def test_ld_flags(wrapper_environment, wrapper_flags):
ld,
test_args,
["ld"]
+ spack_ldflags
+ test_include_paths
+ [spack_ldflags[i] + spack_ldflags[i + 1] for i in range(0, len(spack_ldflags), 2)]
+ test_library_paths
+ ["--disable-new-dtags"]
+ test_rpaths
@@ -293,10 +293,10 @@ def test_cpp_flags(wrapper_environment, wrapper_flags):
cpp,
test_args,
["cpp"]
+ spack_cppflags
+ test_include_paths
+ test_library_paths
+ test_args_without_paths
+ spack_cppflags,
+ test_args_without_paths,
)
@@ -306,14 +306,10 @@ def test_cc_flags(wrapper_environment, wrapper_flags):
test_args,
[real_cc]
+ target_args
+ test_include_paths
+ [spack_ldflags[i] + spack_ldflags[i + 1] for i in range(0, len(spack_ldflags), 2)]
+ test_library_paths
+ ["-Wl,--disable-new-dtags"]
+ test_wl_rpaths
+ test_args_without_paths
+ spack_cppflags
+ spack_cflags
+ spack_ldflags
+ common_compile_args
+ spack_ldlibs,
)
@@ -324,13 +320,10 @@ def test_cxx_flags(wrapper_environment, wrapper_flags):
test_args,
[real_cc]
+ target_args
+ test_include_paths
+ [spack_ldflags[i] + spack_ldflags[i + 1] for i in range(0, len(spack_ldflags), 2)]
+ test_library_paths
+ ["-Wl,--disable-new-dtags"]
+ test_wl_rpaths
+ test_args_without_paths
+ spack_cppflags
+ spack_cxxflags
+ spack_ldflags
+ common_compile_args
+ spack_ldlibs,
)
@@ -341,14 +334,10 @@ def test_fc_flags(wrapper_environment, wrapper_flags):
test_args,
[real_cc]
+ target_args
+ test_include_paths
+ [spack_ldflags[i] + spack_ldflags[i + 1] for i in range(0, len(spack_ldflags), 2)]
+ test_library_paths
+ ["-Wl,--disable-new-dtags"]
+ test_wl_rpaths
+ test_args_without_paths
+ spack_fflags
+ spack_cppflags
+ spack_ldflags
+ common_compile_args
+ spack_ldlibs,
)

View File

@@ -2402,6 +2402,21 @@ def test_env_activate_default_view_root_unconditional(mutable_mock_env_path):
)
@pytest.mark.regression("38510")
def test_concretize_separately_abstract_hash(install_mockery, mock_fetch):
"""Check that a root can have no name if it has a hash."""
s = Spec("trivial-install-test-package").concretized()
install(str(s))
e = ev.create("test")
e.unify = False
e.add(f"/{s.dag_hash()}")
e.concretize()
assert list(e.concretized_specs()) == [(Spec(f"/{s.dag_hash()}"), s)]
def test_concretize_user_specs_together():
e = ev.create("coconcretization")
e.unify = True

View File

@@ -337,15 +337,15 @@ def test_remove_complex_package_logic_filtered():
("grads", "rrlmwml3f2frdnqavmro3ias66h5b2ce"),
("llvm", "nufffum5dabmaf4l5tpfcblnbfjknvd3"),
# has @when("@4.1.0") and raw unicode literals
("mfem", "lbhr43gm5zdye2yhqznucxb4sg6vhryl"),
("mfem@4.0.0", "lbhr43gm5zdye2yhqznucxb4sg6vhryl"),
("mfem@4.1.0", "vjdjdgjt6nyo7ited2seki5epggw5gza"),
("mfem", "qtneutm6khd6epd2rhyuv2y6zavsxbed"),
("mfem@4.0.0", "qtneutm6khd6epd2rhyuv2y6zavsxbed"),
("mfem@4.1.0", "uit2ydzhra3b2mlvnq262qlrqqmuwq3d"),
# has @when("@1.5.0:")
("py-torch", "qs7djgqn7dy7r3ps4g7hv2pjvjk4qkhd"),
("py-torch@1.0", "qs7djgqn7dy7r3ps4g7hv2pjvjk4qkhd"),
("py-torch@1.6", "p4ine4hc6f2ik2f2wyuwieslqbozll5w"),
# has a print with multiple arguments
("legion", "efpfd2c4pzhsbyc3o7plqcmtwm6b57yh"),
("legion", "sffy6vz3dusxnxeetofoomlaieukygoj"),
# has nested `with when()` blocks and loops
("trilinos", "vqrgscjrla4hi7bllink7v6v6dwxgc2p"),
],

View File

@@ -87,11 +87,28 @@ def __init__(self, py_ver_consistent=False, _avoid_backslashes=False):
Arguments:
py_ver_consistent (bool): if True, generate unparsed code that is
consistent between Python versions 3.5-3.11.
consistent between Python 2.7 and 3.5-3.10.
Consistency is achieved by:
1. Ensuring that *args and **kwargs are always the last arguments,
regardless of the python version, because Python 2's AST does not
have sufficient information to reconstruct star-arg order.
2. Always unparsing print as a function.
3. Unparsing Python3 unicode literals the way Python 2 would.
Without these changes, the same source can generate different code for Python 2
and Python 3, depending on subtle AST differences. The first of these two
causes this module to behave differently from Python 3.8+'s `ast.unparse()`
One place where single source will generate an inconsistent AST is with
multi-argument print statements, e.g.::
print("foo", "bar", "baz")
In Python 2, this prints a tuple; in Python 3, it is the print function with
multiple arguments. Use ``from __future__ import print_function`` to avoid
this inconsistency.
For legacy reasons, consistency is achieved by unparsing Python3 unicode literals
the way Python 2 would. This preserved Spack package hash consistency during the
python2/3 transition
"""
self.future_imports = []
self._indent = 0
@@ -282,6 +299,61 @@ def visit_Exec(self, node):
self.write(", ")
self.dispatch(node.locals)
def visit_Print(self, node):
# Use print function so that python 2 unparsing is consistent with 3
if self._py_ver_consistent:
self.fill("print")
with self.delimit("(", ")"):
values = node.values
# Can't tell print(foo, bar, baz) and print((foo, bar, baz)) apart in
# python 2 and 3, so treat them the same to make hashes consistent.
# Single-tuple print are rare and unlikely to affect package hashes,
# esp. as they likely print to stdout.
if len(values) == 1 and isinstance(values[0], ast.Tuple):
values = node.values[0].elts
do_comma = False
for e in values:
if do_comma:
self.write(", ")
else:
do_comma = True
self.dispatch(e)
if not node.nl:
if do_comma:
self.write(", ")
else:
do_comma = True
self.write("end=''")
if node.dest:
if do_comma:
self.write(", ")
else:
do_comma = True
self.write("file=")
self.dispatch(node.dest)
else:
# unparse Python 2 print statements
self.fill("print ")
do_comma = False
if node.dest:
self.write(">>")
self.dispatch(node.dest)
do_comma = True
for e in node.values:
if do_comma:
self.write(", ")
else:
do_comma = True
self.dispatch(e)
if not node.nl:
self.write(",")
def visit_Global(self, node):
self.fill("global ")
interleave(lambda: self.write(", "), self.write, node.names)
@@ -890,28 +962,65 @@ def visit_Call(self, node):
self.set_precedence(_Precedence.ATOM, node.func)
args = node.args
self.dispatch(node.func)
if self._py_ver_consistent:
# make print(a, b, c) and print((a, b, c)) equivalent, since you can't
# tell them apart between Python 2 and 3. See _Print() for more details.
if getattr(node.func, "id", None) == "print":
if len(node.args) == 1 and isinstance(node.args[0], ast.Tuple):
args = node.args[0].elts
self.dispatch(node.func)
with self.delimit("(", ")"):
comma = False
# NOTE: this code is no longer compatible with python versions 2.7:3.4
# If you run on python@:3.4, you will see instability in package hashes
# across python versions
# starred arguments last in Python 3.5+, for consistency w/earlier versions
star_and_kwargs = []
move_stars_last = sys.version_info[:2] >= (3, 5)
for e in args:
if comma:
self.write(", ")
if move_stars_last and isinstance(e, ast.Starred):
star_and_kwargs.append(e)
else:
comma = True
self.dispatch(e)
if comma:
self.write(", ")
else:
comma = True
self.dispatch(e)
for e in node.keywords:
if comma:
self.write(", ")
# starting from Python 3.5 this denotes a kwargs part of the invocation
if e.arg is None and move_stars_last:
star_and_kwargs.append(e)
else:
comma = True
self.dispatch(e)
if comma:
self.write(", ")
else:
comma = True
self.dispatch(e)
if move_stars_last:
for e in star_and_kwargs:
if comma:
self.write(", ")
else:
comma = True
self.dispatch(e)
if sys.version_info[:2] < (3, 5):
if node.starargs:
if comma:
self.write(", ")
else:
comma = True
self.write("*")
self.dispatch(node.starargs)
if node.kwargs:
if comma:
self.write(", ")
else:
comma = True
self.write("**")
self.dispatch(node.kwargs)
def visit_Subscript(self, node):
self.set_precedence(_Precedence.ATOM, node.value)

View File

@@ -121,7 +121,9 @@ spack:
- py-jupyterhub
- py-libensemble +mpi +nlopt
- py-petsc4py
- py-warpx
- py-warpx ^warpx dims=2
- py-warpx ^warpx dims=3
- py-warpx ^warpx dims=rz
- qthreads scheduler=distrib
- quantum-espresso
- raja

View File

@@ -128,7 +128,9 @@ spack:
- py-jupyterhub
- py-libensemble +mpi +nlopt
- py-petsc4py
- py-warpx
- py-warpx ^warpx dims=2
- py-warpx ^warpx dims=3
- py-warpx ^warpx dims=rz
- qthreads scheduler=distrib
- quantum-espresso
- raja

View File

@@ -27,7 +27,6 @@ class Apptainer(SingularityBase):
git = "https://github.com/apptainer/apptainer.git"
version("main", branch="main")
version("1.1.9", sha256="c615777539154288542cf393d3fd44c04ccb3260bc6330dc324d4e4ebe902bfa")
version("1.1.7", sha256="e6d3956a26c3965703402e17f153ba07f59bf710068806462b314d2d04e825e7")
version("1.1.6", sha256="5f32d305279a51ce8bdbe69e733c4ac12b1efdcb77758fab8ec9463e96a8fd82")
version("1.1.5", sha256="3eadb26b6656a89a111abe29c7e50eab0023e9a8718f1e77e46ca871398bfa67")

View File

@@ -1,24 +0,0 @@
# Copyright 2013-2023 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.package import *
class Bulker(PythonPackage):
"""Bulker: multi-container environment manager"""
homepage = "https://bulker.databio.org/"
pypi = "bulker/bulker-0.7.3.tar.gz"
version("0.7.3", sha256="a7a3a97184d50d2247dc3b116f31f90c27435d9872c6845152ff46f5c4e39d50")
depends_on("py-setuptools", type="build")
depends_on("py-yacman@0.8.4:", type=("build", "run"))
depends_on("py-pyyaml@5.1:", type=("build", "run"))
depends_on("py-logmuse@0.2.0:", type=("build", "run"))
depends_on("py-jinja2", type=("build", "run"))
depends_on("py-ubiquerg@0.5.1:", type=("build", "run"))
depends_on("py-psutil", type=("build", "run"))
depends_on("singularityce", type="run")

View File

@@ -17,7 +17,6 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage):
maintainers("sethrj")
version("0.3.0", sha256="f9620b6bcd8c9b5324ef215f8e44461f915c3fff47bf85ae442c9dafacaa79ac")
version("0.2.2", sha256="ba5e341d636e00e3d7dbac13a2016b97014917489f46b8b387a2adf9d9563872")
version(
"0.2.1",
@@ -82,8 +81,7 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage):
depends_on("nlohmann-json")
depends_on("geant4@10.7:11.0", when="@:0.2.0 +geant4")
depends_on("geant4@10.6:11.0", when="@0.2.1:0.2 +geant4")
depends_on("geant4@10.6:", when="@0.3: +geant4")
depends_on("geant4@10.6:11.0", when="@0.2.1: +geant4")
depends_on("hepmc3", when="+hepmc3")
depends_on("root", when="+root")
depends_on("swig", when="+swig")

View File

@@ -17,7 +17,6 @@ class Charliecloud(AutotoolsPackage):
tags = ["e4s"]
version("master", branch="master")
version("0.33", sha256="ed2bd3589d1e5f7b33a1542c887d69856f6d7d57a6ec8ef5b8e9335eda48a045")
version("0.32", sha256="47826b14966c400b250c35ff28a903f8e5b5e12d9e2a2b473e0f00f4e8393c47")
version("0.31", sha256="7305c3d9010386c1b96fb95297feccb5c9d7ff82a3377d1d98eb8faef76bced9")
version("0.30", sha256="97d45b25c9f813d8bae79b16de49503a165bc94c05dd2166975154d9b6ac78e9")

View File

@@ -1,24 +0,0 @@
# Copyright 2013-2023 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.package import *
class Daemonize(Package):
"""The Emacs programmable text editor."""
homepage = "https://software.clapper.org/daemonize"
url = "https://github.com/bmc/daemonize/archive/refs/tags/release-1.7.8.tar.gz"
git = "https://github.com/bmc/daemonize.git"
maintainers("vmiheer")
version("master", branch="master")
version("1.7.8", sha256="20c4fc9925371d1ddf1b57947f8fb93e2036eb9ccc3b43a1e3678ea8471c4c60")
def install(self, spec, prefix):
configure("--prefix={0}".format(prefix))
make()
make("install")

View File

@@ -25,7 +25,6 @@ class DarshanRuntime(AutotoolsPackage):
test_requires_compiler = True
version("main", branch="main", submodules=True)
version("3.4.3", sha256="dca5f9f9b0ead55a8724b218071ecbb5c4f2ef6027eaade3a6477256930ccc2c")
version("3.4.2", sha256="b095c3b7c059a8eba4beb03ec092b60708780a3cae3fc830424f6f9ada811c6b")
version("3.4.1", sha256="77c0a4675d94a0f9df5710e5b8658cc9ef0f0981a6dafb114d0389b1af64774c")
version("3.4.0", sha256="7cc88b7c130ec3b574f6b73c63c3c05deec67b1350245de6d39ca91d4cff0842")

View File

@@ -21,7 +21,6 @@ class DarshanUtil(AutotoolsPackage):
tags = ["e4s"]
version("main", branch="main", submodules="True")
version("3.4.3", sha256="dca5f9f9b0ead55a8724b218071ecbb5c4f2ef6027eaade3a6477256930ccc2c")
version("3.4.2", sha256="b095c3b7c059a8eba4beb03ec092b60708780a3cae3fc830424f6f9ada811c6b")
version("3.4.1", sha256="77c0a4675d94a0f9df5710e5b8658cc9ef0f0981a6dafb114d0389b1af64774c")
version("3.4.0", sha256="7cc88b7c130ec3b574f6b73c63c3c05deec67b1350245de6d39ca91d4cff0842")

View File

@@ -12,12 +12,10 @@ class Dmtcp(AutotoolsPackage):
with no modifications to user code or to the O/S."""
homepage = "http://dmtcp.sourceforge.net/"
url = "https://github.com/dmtcp/dmtcp/archive/refs/tags/3.0.0.tar.gz"
url = "https://sourceforge.net/projects/dmtcp/files/2.6.0/dmtcp-2.6.0.tar.gz/download"
git = "https://github.com/dmtcp/dmtcp.git"
maintainers("karya0")
version("master", branch="master")
version("3.0.0", sha256="2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37")
version("2.6.0", sha256="3ed62a86dd0cb9c828b93ee8c7c852d6f9c96a0efa48bcfe867521adf7bced68")
version("2.5.2", sha256="0e3e5e15bd401b7b6937f2b678cd7d6a252eab0a143d5740b89cc3bebb4282be")
patch("for_aarch64.patch", when="@2.6.0 target=aarch64:")

View File

@@ -1,28 +0,0 @@
# Copyright 2013-2023 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.package import *
class Emblmygff3(PythonPackage):
"""
EMBLmyGFF3 converts an assembly in FASTA format along with associated
annotation in GFF3 format into the EMBL flat file format which is the
required format for submitting annotated assemblies to ENA.
"""
homepage = "https://github.com/NBISweden/EMBLmyGFF3"
url = "https://github.com/NBISweden/EMBLmyGFF3/archive/refs/tags/v2.2.tar.gz"
maintainers("snehring")
version("2.2", sha256="225b2b50da9064f779e164b2859506d7540d11fa78f7d41b5c0d94f02f7845c5")
version("2.1", sha256="64aef403bc64088eca504b69acffb3fb16ec4448cd3d6c9692b7baf276b92fd2")
depends_on("py-setuptools", type="build")
depends_on("python@3.8.0:", type=("build", "run"))
depends_on("py-biopython@1.78:", type=("build", "run"))
depends_on("py-bcbio-gff@0.6.4:", type=("build", "run"))
depends_on("py-numpy@1.22:", type=("build", "run"))

View File

@@ -24,7 +24,6 @@ class Enzyme(CMakePackage):
root_cmakelists_dir = "enzyme"
version("main", branch="main")
version("0.0.69", sha256="144d964187551700fdf0a4807961ceab1480d4e4cd0bb0fc7bbfab48fe053aa2")
version("0.0.48", sha256="f5af62448dd2a8a316e59342ff445003581bc154f06b9b4d7a5a2c7259cf5769")
version("0.0.32", sha256="9d42e42f7d0faf9beed61b2b1d27c82d1b369aeb9629539d5b7eafbe95379292")
version("0.0.15", sha256="1ec27db0d790c4507b2256d851b256bf7e074eec933040e9e375d6e352a3c159")
@@ -32,10 +31,9 @@ class Enzyme(CMakePackage):
version("0.0.13", sha256="d4a53964ec1f763772db2c56e6734269b7656c8b2ecd41fa7a41315bcd896b5a")
depends_on("llvm@7:12", when="@0.0.13:0.0.15")
depends_on("llvm@7:14", when="@0.0.32:0.0.47")
depends_on("llvm@7:14", when="@0.0.48:0.0.68")
depends_on("llvm@9:16", when="@0.0.69:")
depends_on("cmake@3.13:", type="build")
depends_on("llvm@7:14", when="@0.0.32:") # TODO actual lower bound
depends_on("llvm@7:14", when="@0.0.48:")
depends_on("cmake@3.9:", type="build")
def cmake_args(self):
spec = self.spec

View File

@@ -23,7 +23,6 @@ class Fastjet(AutotoolsPackage):
maintainers("drbenmorgan", "vvolkl")
version("3.4.1", sha256="05608c6ff213f06dd9de723813d6b4dccd51e661ac13098f74bfc9eeaf1cb5aa")
version("3.4.0", sha256="ee07c8747c8ead86d88de4a9e4e8d1e9e7d7614973f5631ba8297f7a02478b91")
version("3.3.4", sha256="432b51401e1335697c9248519ce3737809808fc1f6d1644bfae948716dddfc03")
version("3.3.3", sha256="30b0a0282ce5aeac9e45862314f5966f0be941ce118a83ee4805d39b827d732b")
@@ -61,13 +60,7 @@ class Fastjet(AutotoolsPackage):
variant("auto-ptr", default=False, description="Use auto_ptr")
variant("atlas", default=False, description="Patch to make random generator thread_local")
patch("atlas.patch", when="@:3.3 +atlas", level=0)
patch(
"https://gitlab.cern.ch/sft/lcgcmake/-/raw/23c82f269b8e5df0190e20b7fbe06db16b24d667/externals/patches/fastjet-3.4.1.patch",
sha256="1c7eed1d825f2013116778366a2d27b850c46a2848389174f78829fa24cd1c45",
when="@3.4: +atlas",
level=0,
)
patch("atlas.patch", when="+atlas", level=0)
def configure_args(self):
extra_args = ["--enable-allplugins"]

View File

@@ -30,18 +30,6 @@ class Freefem(AutotoolsPackage):
variant("mpi", default=False, description="Activate MPI support")
variant("petsc", default=False, description="Compile with PETSc/SLEPc")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
depends_on("bison", type="build")
depends_on("flex", type="build")
depends_on("m4", type="build")
# depends_on("patch", type="build")
# depends_on("unzip", type="build")
depends_on("netlib-lapack")
depends_on("mpi", when="+mpi")
depends_on("slepc", when="+petsc")
@@ -58,6 +46,10 @@ class Freefem(AutotoolsPackage):
sha256="be84f7b1b8182ff0151c258056a09bda70d72a611b0a4da1fa1954df2e0fe84e",
)
def autoreconf(self, spec, prefix):
autoreconf = which("autoreconf")
autoreconf("-i")
def configure_args(self):
spec = self.spec
options = [

View File

@@ -21,7 +21,6 @@ class Geant4(CMakePackage):
maintainers("drbenmorgan")
version("11.1.2", sha256="e9df8ad18c445d9213f028fd9537e174d6badb59d94bab4eeae32f665beb89af")
version("11.1.1", sha256="c5878634da9ba6765ce35a469b2893044f4a6598aa948733da8436cdbfeef7d2")
version("11.1.0", sha256="c4a23f2f502efeab56de43a4412b21f65c7ca1b0877b9bc1d7e845ee12edf70a")
version("11.0.4", sha256="673fb409fd1f54b65b52ddd21596f33ebb210f153730b7887a5dee7fea4d15a2")

View File

@@ -55,8 +55,3 @@ def configure_args(self):
configure_args.append("CBLAS_LIBS=%s" % self.spec["blas"].libs.ld_flags)
return configure_args
def setup_run_environment(self, env):
# cmake looks for GSL_ROOT_DIR to find GSL so this helps pick the spack one
# when there are multiple installations (e.g. a system one and a spack one)
env.set("GSL_ROOT_DIR", self.prefix)

View File

@@ -27,7 +27,7 @@ class Hdf5VfdGds(CMakePackage, CudaPackage):
# system can obtaion via `find_library`. Packaging issues fixed in 11.7.1.
conflicts("^cuda@:11.7.0")
depends_on("cmake@3.12:", type="build")
depends_on("hdf5@1.14.0:")
depends_on("hdf5@1.13.0:")
def cmake_args(self):
# CMake options

View File

@@ -17,7 +17,7 @@ class Hdf5VolCache(CMakePackage):
version("v1.1", tag="v1.1")
version("v1.0", tag="v1.0")
depends_on("hdf5@1.14: +mpi +threadsafe")
depends_on("hdf5@1.13: +mpi +threadsafe")
depends_on("hdf5-vol-async")
def setup_run_environment(self, env):

View File

@@ -18,8 +18,12 @@ class Hdf5VolLog(AutotoolsPackage):
version("master-1.1", branch="master")
version("1.4.0", tag="logvol.1.4.0")
version("1.3.0", tag="logvol.1.3.0")
version("1.2.0", tag="logvol.1.2.0")
version("1.1.0", tag="logvol.1.1.0")
depends_on("hdf5@1.14.0:", when="@1.4.0:")
depends_on("hdf5@1.13.2", when="@:1.3.0")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")

View File

@@ -40,6 +40,11 @@ class Hdf5(CMakePackage):
version("develop-1.8", branch="hdf5_1_8")
# Odd versions are considered experimental releases
# Note: These are still required to build some VOL adapters, but even releases should be
# preferred.
version("1.13.3", sha256="83c7c06671f975cee6944b0b217f95005faa55f79ea5532cf4ac268989866af4")
version("1.13.2", sha256="01643fa5b37dba7be7c4db6bbf3c5d07adf5c1fa17dbfaaa632a279b1b2f06da")
# Even versions are maintenance versions
version(
"1.14.1-2",
@@ -66,11 +71,6 @@ class Hdf5(CMakePackage):
sha256="a62dcb276658cb78e6795dd29bf926ed7a9bc4edf6e77025cd2c689a8f97c17a",
preferred=True,
)
version(
"1.10.10",
sha256="a6877ab7bd5d769d2d68618fdb54beb50263dcc2a8c157fe7e2186925cdb02db",
preferred=True,
)
version(
"1.10.9",
sha256="f5b77f59b705a755a5a223372d0222c7bc408fe8db6fa8d9d7ecf8bce291b8dd",

View File

@@ -30,7 +30,7 @@ class Hermes(CMakePackage):
depends_on("glpk")
depends_on("glog@0.4.0:")
depends_on("mpi")
depends_on("hdf5@1.14.0:", when="+vfd")
depends_on("hdf5@1.13.0:", when="+vfd")
depends_on("yaml-cpp")
def cmake_args(self):

View File

@@ -177,14 +177,6 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage):
# both include a fix.
conflicts("boost@:1.77.0", when="@:1.7 +rocm")
# libstdc++ has a broken valarray in some versions that clang/hipcc refuses
# to compile:
# https://github.com/spack/spack/issues/38104
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103022
conflicts("%gcc@9.1:9.4", when="+rocm")
conflicts("%gcc@10.1:10.3", when="+rocm")
conflicts("%gcc@11.2", when="+rocm")
# boost 1.73.0 build problem with HPX 1.4.0 and 1.4.1
# https://github.com/STEllAR-GROUP/hpx/issues/4728#issuecomment-640685308
depends_on("boost@:1.72.0", when="@:1.4")

View File

@@ -14,7 +14,6 @@ class IqTree(CMakePackage):
git = "https://github.com/iqtree/iqtree2.git"
url = "https://github.com/Cibiv/IQ-TREE/archive/v1.6.12.tar.gz"
version("2.2.2.7", tag="v2.2.2.7", submodules=True)
version("2.1.3", tag="v2.1.3", submodules=True)
version("2.0.6", tag="v2.0.6", submodules=True)
version("1.6.12", sha256="9614092de7a157de82c9cc402b19cc8bfa0cb0ffc93b91817875c2b4bb46a284")

View File

@@ -19,19 +19,6 @@ class KokkosNvccWrapper(Package):
maintainers("Rombur")
version("4.0.01", sha256="bb942de8afdd519fd6d5d3974706bfc22b6585a62dd565c12e53bdb82cd154f0")
version("4.0.00", sha256="1829a423883d4b44223c7c3a53d3c51671145aad57d7d23e6a1a4bebf710dcf6")
version("3.7.02", sha256="5024979f06bc8da2fb696252a66297f3e0e67098595a0cc7345312b3b4aa0f54")
version("3.7.01", sha256="0481b24893d1bcc808ec68af1d56ef09b82a1138a1226d6be27c3b3c3da65ceb")
version("3.7.00", sha256="62e3f9f51c798998f6493ed36463f66e49723966286ef70a9dcba329b8443040")
version("3.6.01", sha256="1b80a70c5d641da9fefbbb652e857d7c7a76a0ebad1f477c253853e209deb8db")
version("3.6.00", sha256="53b11fffb53c5d48da5418893ac7bc814ca2fde9c86074bdfeaa967598c918f4")
version("3.5.00", sha256="748f06aed63b1e77e3653cd2f896ef0d2c64cb2e2d896d9e5a57fec3ff0244ff")
version("3.4.01", sha256="146d5e233228e75ef59ca497e8f5872d9b272cb93e8e9cdfe05ad34a23f483d1")
version("3.4.00", sha256="2e4438f9e4767442d8a55e65d000cc9cde92277d415ab4913a96cd3ad901d317")
version("3.3.01", sha256="4919b00bb7b6eb80f6c335a32f98ebe262229d82e72d3bae6dd91aaf3d234c37")
version("3.3.00", sha256="170b9deaa1943185e928f8fcb812cd4593a07ed7d220607467e8f0419e147295")
version("3.2.01", sha256="9e27a3d8f81559845e190d60f277d84d6f558412a3df3301d9545e91373bcaf1")
version("3.2.00", sha256="05e1b4dd1ef383ca56fe577913e1ff31614764e65de6d6f2a163b2bddb60b3e9")
version("3.1.01", sha256="ff5024ebe8570887d00246e2793667e0d796b08c77a8227fe271127d36eec9dd")
version("3.1.00", sha256="b935c9b780e7330bcb80809992caa2b66fd387e3a1c261c955d622dae857d878")

View File

@@ -28,8 +28,6 @@ class Lammps(CMakePackage, CudaPackage, ROCmPackage):
# marked deprecated=True
# * patch releases older than a stable release should be marked deprecated=True
version("develop", branch="develop")
version("20230615", sha256="8470ed7b26ccd3728f4b44a7f1c520f1af23a648af685fd30b42b840fdfae2ff")
version("20230328", sha256="14f5a5c37e4b46466e90d8b35476800e66acee74999f7358f4c12dfe662bfd99")
version("20230208", sha256="60221242145da4479e5b207d9a0eed90af4168d7a297b4dc8c0e7f2b3215602e")
version("20221222", sha256="75372ee7ef982767fc4ed4dc95e20ddca8247419adeb0c1276c40e43d1eab955")
version("20221103", sha256="d28517b84b157d4e46a1a64ed787b4662d8f2f5ade3f5a04bb0caed068f32f7e")
@@ -387,7 +385,7 @@ def url_for_version(self, version):
"kokkos": {},
"kspace": {"default": True},
"latboltz": {"when": "@20210702:"},
"latte": {"when": "@20170922:20230328"},
"latte": {"when": "@20170922:"},
"lepton": {"when": "@20230208:"},
"machdyn": {"when": "@20210702:"},
"manifold": {"when": "@20210702:"},
@@ -547,7 +545,7 @@ def url_for_version(self, version):
depends_on("latte@1.0.1", when="@:20180222+latte")
depends_on("latte@1.1.1:", when="@20180316:20180628+latte")
depends_on("latte@1.2.1:", when="@20180629:20200505+latte")
depends_on("latte@1.2.2:", when="@20200602:20230328+latte")
depends_on("latte@1.2.2:", when="@20200602:+latte")
depends_on("blas", when="+latte")
depends_on("lapack", when="+latte")
depends_on("python", when="+python")
@@ -655,8 +653,8 @@ def url_for_version(self, version):
# Older LAMMPS does not compile with Kokkos 4.x
conflicts(
"^kokkos @4:",
when="@:20230615",
msg="LAMMPS is incompatible with Kokkos 4.x until @20230615",
when="@:20221222",
msg="LAMMPS is incompatible with Kokkos 4.x until @20230208",
)
patch("lib.patch", when="@20170901")

View File

@@ -1,41 +0,0 @@
# Copyright 2013-2023 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.package import *
class Lfortran(CMakePackage):
"""Modern interactive LLVM-based Fortran compiler"""
homepage = "https://lfortran.org"
url = "https://lfortran.github.io/tarballs/release/lfortran-0.19.0.tar.gz"
git = "https://github.com/lfortran/lfortran.git"
maintainers = ["certik"]
# The build process uses 'git describe --tags' to get the package version
version("main", branch="main", get_full_repo=True)
version("0.19.0", sha256="d496f61d7133b624deb3562677c0cbf98e747262babd4ac010dbd3ab4303d805")
variant("llvm", default=True, description="Build with LLVM support")
variant("stacktrace", default=True, description="Build with stacktrace support")
depends_on("python@3:", type="build", when="@main")
depends_on("cmake", type="build")
depends_on("llvm@11:15", type=("build", "run"), when="+llvm")
depends_on("zlib", type="build")
depends_on("re2c", type="build", when="@main")
depends_on("bison@:3.4", type="build", when="@main")
depends_on("binutils@2.38:", type="build", when="platform=linux")
def cmake_args(self):
args = [
self.define_from_variant("WITH_LLVM", "llvm"),
self.define_from_variant("WITH_STACKTRACE", "stacktrace"),
]
if self.spec.satisfies("@main"):
args.append("-DLFORTRAN_BUILD_ALL=yes")
return args

View File

@@ -35,7 +35,6 @@ class Llvm(CMakePackage, CudaPackage):
family = "compiler" # Used by lmod
version("main", branch="main")
version("16.0.6", sha256="56b2f75fdaa95ad5e477a246d3f0d164964ab066b4619a01836ef08e475ec9d5")
version("16.0.5", sha256="e0fbca476693fcafa125bc71c8535587b6d9950293122b66b262bb4333a03942")
version("16.0.4", sha256="10c3fe1757d2e4f1cd7745dc548ecf687680a71824ec81701c38524c2a0753e2")
version("16.0.3", sha256="0bd71bc687a4e5a250c40afb0decefc50c85178fcce726137b682039de63919b")

View File

@@ -18,7 +18,6 @@ class Millepede(MakefilePackage):
parallel = False
version("04-13-03", sha256="669a6e46a6f02ba3c78b2760e2ffb2c90d25b582ccd1a5c0770eef81c7bcbbe9")
version("04-11-01", sha256="9869eb84d8d07cecfab15c396f3faa36aef10906e39f8641c48b58e0325b3205")
depends_on("zlib")

View File

@@ -17,7 +17,6 @@ class MochiMargo(AutotoolsPackage):
maintainers("carns", "mdorier", "fbudin69500", "chuckatkins")
version("main", branch="main")
version("0.14.0", sha256="ff0e3fa786630b63280606243c35f1ea3a25fa2ba6f08bf9065cab9fcc7fa1c7")
version("0.13.1", sha256="cff1decb94089cd0f9c0930b02092838679827b09ce4a2f3a359d59caee28782")
version("0.13", sha256="9a5a4aa81ceb10e010fbad6c7bb8d39d082fe6e61ed33b2b2d2b056917f401d8")
version("0.12.1", sha256="ff9d0f8722aff17737cd63f27758314b2ed78e518cd45d1fb9f0e3b7ccbcef50")

View File

@@ -7,7 +7,6 @@
import re
import sys
from spack.build_environment import dso_suffix
from spack.package import *

View File

@@ -17,7 +17,6 @@ class Mpitrampoline(CMakePackage):
maintainers("eschnett")
version("develop", branch="main")
version("5.3.1", sha256="8671370750587f212f059138abc6dcaa5a1079d3dbd9189dc21bf353611159eb")
version("5.3.0", sha256="c20a04fe72965d46f747d5e2c4e7854cfe0cc1b2db47c2484b06a7f24f86728f")
version("5.2.3", sha256="41ef0f5bc8bbf3497c4595e845cb15573dde1c9395a031b63a3f7e09673c8ce8")
version("5.2.0", sha256="5f89c61f7b93d8f249ffc8de1abad7acab34c5f980e5d74915e4e041c461aeb4")

View File

@@ -17,7 +17,6 @@ class Mpiwrapper(CMakePackage):
maintainers("eschnett")
version("develop", branch="main")
version("2.10.4", sha256="af644bf4ba69964a4f7b35fbe6b8bbc67afe7bef75ba69895a227f4f465b3eaa")
version("2.10.3", sha256="63f34df837cb9d7cae0b5ab8c0f09e8c5a60a8c0e85f248bf34fedda6488a870")
version("2.10.1", sha256="54b57642b14b7b2dc257f7066eec8639133e4a4d5c351b8d689e31816b872b0d")
version("2.10.0", sha256="b866fa65905ededb8c7611ab501b1e7f608802b7e0dffd77ef8b602818a62c59")

View File

@@ -1,10 +0,0 @@
--- c++/include/util/impl/compile_time_bits.hpp 2023-01-05 15:04:14.000000000 +0000
+++ c++/include/util/impl/compile_time_bits.hpp.patched 2023-06-14 10:38:16.316603211 +0100
@@ -39,6 +39,7 @@
#include <limits>
#include <stdexcept>
#include <array>
+#include <cstdint>
// forward declarations to avoid unnecessary includes
namespace ncbi

View File

@@ -10,9 +10,7 @@ class NcbiRmblastn(AutotoolsPackage):
"""RMBlast search engine for NCBI"""
homepage = "https://www.repeatmasker.org/rmblast/"
url = (
"https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.9.0/ncbi-blast-2.9.0+-src.tar.gz"
)
url = "ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.9.0/ncbi-blast-2.9.0+-src.tar.gz"
version("2.14.0", sha256="bf477f1b0c3b82f0b7a7094bf003a9a83e37e3b0716c1df799060c4feab17500")
version("2.11.0", sha256="d88e1858ae7ce553545a795a2120e657a799a6d334f2a07ef0330cc3e74e1954")
@@ -28,7 +26,7 @@ class NcbiRmblastn(AutotoolsPackage):
# The patch is downloaded and unzipped in the ncbi-rmblastn Spack package
# directory to make it available for the patch directive.
patch(
"https://www.repeatmasker.org/rmblast/isb-2.14.0+-rmblast.patch.gz",
"http://www.repeatmasker.org/rmblast/isb-2.14.0+-rmblast.patch.gz",
sha256="cd083f256551c6d6021897a1b08e023976e82c59576787d4885f57d36f9e6fdf",
archive_sha256="9de0e67467a4cffdde0c5f67e3658fb52ed313e4550f9a36a251bddb2ba33f49",
when="@2.14.0",
@@ -45,9 +43,6 @@ class NcbiRmblastn(AutotoolsPackage):
archive_sha256="e746ee480ade608052306fd21f015c8a323f27029f65399275216f9a4c882d59",
when="@2.9.0",
)
patch("gcc13.patch", level=0, when="@2.14.0:%gcc@13:")
depends_on("cpio", type="build")
depends_on("boost")
depends_on("lzo")
@@ -58,9 +53,7 @@ class NcbiRmblastn(AutotoolsPackage):
configure_directory = "c++"
def url_for_version(self, version):
url = (
"https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/{0}/ncbi-blast-{1}+-src.tar.gz"
)
url = "ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/{0}/ncbi-blast-{1}+-src.tar.gz"
return url.format(version, version)
def configure_args(self):

View File

@@ -17,8 +17,6 @@ class Neovim(CMakePackage):
version("master", branch="master")
version("stable", tag="stable")
version("0.9.1", sha256="8db17c2a1f4776dcda00e59489ea0d98ba82f7d1a8ea03281d640e58d8a3a00e")
version("0.9.0", sha256="39d79107c54d2f3babcad2cd157c399241c04f6e75e98c18e8afaf2bb5e82937")
version("0.8.3", sha256="adf45ff160e1d89f519b6114732eba03485ae469beb27919b0f7a4f6b44233c1")
version("0.8.2", sha256="c516c8db73e1b12917a6b2e991b344d0914c057cef8266bce61a2100a28ffcc9")
version("0.8.0", sha256="505e3dfb71e2f73495c737c034a416911c260c0ba9fd2092c6be296655be4d18")
@@ -130,8 +128,6 @@ class Neovim(CMakePackage):
depends_on("tree-sitter@0.20.6:")
with when("@0.8:"):
depends_on("libvterm@0.3:", type="link")
with when("@0.9:"):
depends_on("tree-sitter@0.20.8:")
# Support for `libvterm@0.2:` has been added in neovim@0.8.0
# term: Add support for libvterm >= 0.2 (https://github.com/neovim/neovim/releases/tag/v0.8.0)

View File

@@ -182,7 +182,7 @@ def use_3rdparty(feature, spack_variant=None, depends_on=None, extra_dirs=[]):
args.append("-DBUILD_DOC_Overview=OFF")
# Always build the foundation classes
args.append(self.define("BUILD_MODULE_FoundationClasses", True))
args.append(self.define("BUILD_MODULE_FoundationClasses", true))
# Specify which modules to build
for module in [
"ApplicationFramework",

View File

@@ -494,7 +494,6 @@ class Openmpi(AutotoolsPackage, CudaPackage):
)
# Variants to use internal packages
variant("internal-hwloc", default=False, description="Use internal hwloc")
variant("internal-pmix", default=False, description="Use internal pmix")
provides("mpi")
provides("mpi@:2.2", when="@1.6.5")
@@ -553,9 +552,9 @@ class Openmpi(AutotoolsPackage, CudaPackage):
# OpenMPI @2: includes a vendored version:
# depends_on('pmix@1.1.2', when='@2.1.6')
# depends_on('pmix@3.2.3', when='@4.1.2')
depends_on("pmix@1.0:1", when="@2.0:2 ~internal-pmix")
depends_on("pmix@3.2:", when="@4.0:4 ~internal-pmix")
depends_on("pmix@4.2:", when="@5.0:5 ~internal-pmix")
depends_on("pmix@1.0:1", when="@2.0:2")
depends_on("pmix@3.2:", when="@4.0:4")
depends_on("pmix@4.2:", when="@5.0:5")
# Libevent is required when *vendored* PMIx is used
depends_on("libevent@2:", when="@main")
@@ -960,22 +959,13 @@ def configure_args(self):
config_args.extend(["--enable-debug"])
# Package dependencies
for dep in ["libevent", "lustre", "singularity", "valgrind", "zlib"]:
for dep in ["libevent", "lustre", "pmix", "singularity", "valgrind", "zlib"]:
if "^" + dep in spec:
config_args.append("--with-{0}={1}".format(dep, spec[dep].prefix))
# PMIx support
if spec.satisfies("+internal-pmix"):
config_args.append("--with-pmix=internal")
elif "^pmix" in spec:
config_args.append("--with-pmix={0}".format(spec["pmix"].prefix))
# Hwloc support
if spec.satisfies("+internal-hwloc"):
config_args.append("--with-hwloc=internal")
elif "^hwloc" in spec:
if "^hwloc" in spec:
config_args.append("--with-hwloc=" + spec["hwloc"].prefix)
# Java support
if "+java" in spec:
config_args.extend(

View File

@@ -20,13 +20,10 @@ class Openturns(CMakePackage):
git = "https://github.com/openturns/openturns.git"
maintainers("liuyangzhuan")
version("master", branch="master")
version("1.20", sha256="2be5247f0266d153619b35dfb1eeeb46736c502dad993b40aff8857d6314f293")
version("1.19", sha256="1d61cb6ce8ec1121db9f1e9fb490aaa056d2ff250db26df05d2e3e30ceb32344")
version("1.18", sha256="1840d3fd8b38fd5967b1fa04e49d8f760c2c497400430e97623595ca48754ae0")
version("master", branch="master")
variant("python", default=True, description="Build Python bindings")
variant("libxml2", default=False, description="Use LibXML2 for XML support")
extends("python", when="+python")
@@ -41,7 +38,6 @@ class Openturns(CMakePackage):
depends_on("intel-tbb", type=("build", "run"))
depends_on("py-cloudpickle", type=("build", "run"))
depends_on("py-urllib3", type=("build", "run"))
depends_on("libxml2", type=("build", "run"), when="+libxml2")
def cmake_args(self):
spec = self.spec

View File

@@ -10,19 +10,11 @@ class PerlGd(PerlPackage):
"""Interface to Gd Graphics Library"""
homepage = "https://metacpan.org/pod/GD"
url = "https://cpan.metacpan.org/authors/id/R/RU/RURBAN/GD-2.77.tar.gz"
url = "http://search.cpan.org/CPAN/authors/id/L/LD/LDS/GD-2.53.tar.gz"
version("2.77", sha256="b56c88b8ef3be016ce29bb62dd1f1b6f6b5fbcaa57fea59e9468af6901016fb5")
version("2.53", sha256="d05d01fe95e581adb3468cf05ab5d405db7497c0fb3ec7ecf23d023705fab7aa")
depends_on("perl-module-build", type="build")
depends_on("perl-extutils-makemaker", type=("build", "run"))
depends_on("perl-extutils-pkgconfig", type=("build", "run"))
depends_on("libgd")
def url_for_version(self, version):
if version <= Version("2.56"):
url = "http://search.cpan.org/CPAN/authors/id/L/LD/LDS/GD-{0}.tar.gz"
else:
url = "https://cpan.metacpan.org/authors/id/R/RU/RURBAN/GD-{0}.tar.gz"
return url.format(version)

View File

@@ -85,11 +85,11 @@ class Pfunit(CMakePackage):
# The maximum rank of an array in the Fortran 2008 standard is 15
max_rank = 15
allowed_array_ranks = tuple(str(i) for i in range(3, max_rank + 1))
allowed_array_ranks = tuple(str(i) for i in range(1, max_rank + 1))
variant(
"max_array_rank",
default="5",
default=5,
values=allowed_array_ranks,
description="Max rank for assertion overloads (higher values may be slower to build)",
)

View File

@@ -13,7 +13,6 @@ class PyAenum(PythonPackage):
homepage = "https://github.com/ethanfurman/aenum"
pypi = "aenum/aenum-2.1.2.tar.gz"
version("3.1.12", sha256="3e531c91860a81f885f7e6e97d219ae9772cb899580084788935dad7d9742ef0")
version("2.1.2", sha256="a3208e4b28db3a7b232ff69b934aef2ea1bf27286d9978e1e597d46f490e4687")
depends_on("py-setuptools", type="build")

View File

@@ -16,28 +16,25 @@ class PyAiohttp(PythonPackage):
homepage = "https://github.com/aio-libs/aiohttp"
pypi = "aiohttp/aiohttp-3.8.1.tar.gz"
version("3.8.4", sha256="bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c")
version("3.8.1", sha256="fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578")
version("3.8.0", sha256="d3b19d8d183bcfd68b25beebab8dc3308282fe2ca3d6ea3cb4cd101b3c279f8d")
version("3.7.4", sha256="5d84ecc73141d0a0d61ece0742bb7ff5751b0657dab8405f899d3ceb104cc7de")
version("3.6.2", sha256="259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326")
depends_on("py-setuptools@46.4:", type="build")
depends_on("py-charset-normalizer@2.0:2", type=("build", "run"), when="@3.8.0:")
depends_on("python@3.5.3:", type=("build", "run"))
depends_on("python@3.6:", type=("build", "run"), when="@3.7:")
depends_on("py-attrs@17.3.0:", type=("build", "run"))
depends_on("py-charset-normalizer@2:3", when="@3.8.4:", type=("build", "run"))
depends_on("py-charset-normalizer@2", when="@3.8.0:3.8.3", type=("build", "run"))
depends_on("py-multidict@4.5:6", when="@3.6.3:", type=("build", "run"))
depends_on("py-multidict@4.5:4", when="@:3.6.2", type=("build", "run"))
depends_on("py-async-timeout@4", when="@3.8.0:", type=("build", "run"))
depends_on("py-async-timeout@3", when="@:3.7.4", type=("build", "run"))
depends_on("py-asynctest@0.13.0", when="@3.8.0: ^python@:3.7", type=("build", "run"))
depends_on("py-yarl@1", type=("build", "run"))
depends_on("py-typing-extensions@3.7.4:", when="@3.8: ^python@:3.7", type=("build", "run"))
depends_on("py-typing-extensions@3.6.5:", when="@3.7", type=("build", "run"))
depends_on("py-typing-extensions@3.6.5:", when="@:3.6 ^python@:3.7", type=("build", "run"))
depends_on("py-frozenlist@1.1.1:", when="@3.8.1:", type=("build", "run"))
depends_on("py-aiosignal@1.1.2:", when="@3.8.1:", type=("build", "run"))
# Historical dependencies
depends_on("py-chardet@2.0:3", when="@:3.7", type=("build", "run"))
depends_on("py-chardet@2.0:3", type=("build", "run"), when="@:3.7")
depends_on("py-multidict@4.5:4", type=("build", "run"), when="@:3.6.2")
depends_on("py-multidict@4.5:6", type=("build", "run"), when="@3.6.3:")
depends_on("py-async-timeout@3.0:3", type=("build", "run"), when="@:3.7.4")
depends_on("py-async-timeout@4.0:4", type=("build", "run"), when="@3.8.0:")
depends_on("py-asynctest@0.13.0", type=("build", "run"), when="@3.8.0: ^python@:3.7")
depends_on("py-yarl@1.0:1", type=("build", "run"))
depends_on("py-typing-extensions@3.7.4:", type=("build", "run"), when="@3.8: ^python@:3.7")
depends_on("py-typing-extensions@3.6.5:", type=("build", "run"), when="@3.7")
depends_on("py-typing-extensions@3.6.5:", type=("build", "run"), when="@:3.6 ^python@:3.7")
depends_on("py-frozenlist@1.1.1:", type=("build", "run"), when="@3.8.1:")
depends_on("py-aiosignal@1.1.2:", type=("build", "run"), when="@3.8.1:")

View File

@@ -12,7 +12,6 @@ class PyBcbioGff(PythonPackage):
pypi = "bcbio-gff/bcbio-gff-0.6.2.tar.gz"
version("0.7.0", sha256="f7b3922ee274106f8716703f41f05a1795aa9d73e903f4e481995ed8f5f65d2d")
version("0.6.2", sha256="c682dc46a90e9fdb124ab5723797a5f71b2e3534542ceff9f6572b64b9814e68")
depends_on("py-setuptools", type="build")

View File

@@ -24,8 +24,6 @@ class PyChainer(PythonPackage):
maintainers("adamjstewart")
skip_modules = ["onnx_chainer"]
version("7.2.0", sha256="6e2fba648cc5b8a5421e494385b76fe5ec154f1028a1c5908557f5d16c04f0b3")
version("6.7.0", sha256="87cb3378a35e7c5c695028ec91d58dc062356bc91412384ea939d71374610389")
@@ -50,21 +48,25 @@ def cache_test_sources(self):
if "+mn" in self.spec:
self.cache_extra_test_sources("examples")
def test_chainermn(self):
"""run the ChainerMN test"""
if "+mn" not in self.spec:
raise SkipTest("Test only supported when built with +mn")
def test(self):
if "+mn" in self.spec:
# Run test of ChainerMN
test_dir = self.test_suite.current_test_data_dir
mnist_file = join_path(self.install_test_root.examples.chainermn.mnist, "train_mnist.py")
mpirun = which(self.spec["mpi"].prefix.bin.mpirun)
opts = ["-n", "4", self.spec["python"].command.path, mnist_file, "-o", "."]
env["OMP_NUM_THREADS"] = "4"
mnist_dir = join_path(self.install_test_root, "examples", "chainermn", "mnist")
mnist_file = join_path(mnist_dir, "train_mnist.py")
mpi_name = self.spec["mpi"].prefix.bin.mpirun
python_exe = self.spec["python"].command.path
opts = ["-n", "4", python_exe, mnist_file, "-o", test_dir]
env["OMP_NUM_THREADS"] = "4"
mpirun(*opts)
self.run_test(mpi_name, options=opts, work_dir=test_dir)
# check results
json_open = open(join_path(".", "log"), "r")
json_load = json.load(json_open)
v = dict([(d.get("epoch"), d.get("main/accuracy")) for d in json_load])
assert (1 in v) or (20 in v), "Cannot find epoch 1 or epoch 20"
assert abs(1.0 - v[1]) >= abs(1.0 - v[20]), "ChainerMN Test Failed!"
# check results
json_open = open(join_path(test_dir, "log"), "r")
json_load = json.load(json_open)
v = dict([(d.get("epoch"), d.get("main/accuracy")) for d in json_load])
if 1 not in v or 20 not in v:
raise RuntimeError("Cannot find epoch 1 or epoch 20")
if abs(1.0 - v[1]) < abs(1.0 - v[20]):
raise RuntimeError("ChainerMN Test Failed !")

View File

@@ -14,12 +14,10 @@ class PyCython(PythonPackage):
version("3.0.0a9", sha256="23931c45877432097cef9de2db2dc66322cbc4fc3ebbb42c476bb2c768cecff0")
version(
"0.29.35",
sha256="6e381fa0bf08b3c26ec2f616b19ae852c06f5750f4290118bf986b6f85c8c527",
"0.29.33",
sha256="5040764c4a4d2ce964a395da24f0d1ae58144995dab92c6b96f44c3f4d72286a",
preferred=True,
)
version("0.29.34", sha256="1909688f5d7b521a60c396d20bba9e47a1b2d2784bfb085401e1e1e7d29a29a8")
version("0.29.33", sha256="5040764c4a4d2ce964a395da24f0d1ae58144995dab92c6b96f44c3f4d72286a")
version("0.29.32", sha256="8733cf4758b79304f2a4e39ebfac5e92341bce47bcceb26c1254398b2f8c1af7")
version("0.29.30", sha256="2235b62da8fe6fa8b99422c8e583f2fb95e143867d337b5c75e4b9a1a865f9e3")
version("0.29.24", sha256="cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443")

View File

@@ -14,31 +14,30 @@ class PyDarshan(PythonPackage):
maintainers("jeanbez", "shanedsnyder")
version("3.4.3.0", sha256="e0708fc5445f2d491ebd381a253cd67534cef13b963f1d749dd605a10f5c0f8f")
version("3.4.2.0", sha256="eb00eb758c96899c0d523b71eb00caa3b967509c27fd504c579ac8c9b521845c")
version("3.4.1.0", sha256="41a033ebac6fcd0ca05b8ccf07e11191286dee923ec334b876a7ec8e8a6add84")
version("3.4.0.1", sha256="0142fc7c0b12a9e5c22358aa26cca7083d28af42aeea7dfcc5698c56b6aee6b7")
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools@:63", type="build")
depends_on("py-pytest-runner", type="build")
depends_on("python@3.6:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-importlib-resources", when="^python@:3.8", type=("build", "run"))
depends_on("py-cffi", type=("build", "run"))
# NOTE: SciPy is an indirect dependency needed for interpolate usage in pandas
# This indirect dependency was dropped starting with v3.4.1.0
depends_on("py-scipy", when="@3.4.0.1", type=("build", "run"))
depends_on("py-numpy", type=("build", "run"))
# It will be fixed in the next release
depends_on("py-scipy", type=("build", "run"))
depends_on("py-numpy@1.21:", type=("build", "run"))
depends_on("py-pandas", type=("build", "run"))
depends_on("py-matplotlib", type=("build", "run"))
# NOTE: matplotlib should be pinned until next release, for details:
# https://github.com/darshan-hpc/darshan/issues/742
depends_on("py-matplotlib@3.4", type=("build", "run"))
depends_on("py-seaborn", type=("build", "run"))
depends_on("py-mako", type=("build", "run"))
depends_on("py-humanize", when="@3.4.3.0:", type=("build", "run"))
depends_on("py-pytest", type="test")
# NOTE: lxml is test-only indirect dependency via pandas
# It will become optional in the next release
depends_on("py-lxml", type=("test"))
# py-darshan depends on specific darshan-util versions corresponding
# to the first 3 parts of the py-darshan version string
# (i.e., py-darshan@3.4.3.0 requires darshan-util@3.4.3, etc.)
for v in ["3.4.0", "3.4.1", "3.4.2", "3.4.3"]:
depends_on(f"darshan-util@{v}", when=f"@{v}", type=("build", "run"))
depends_on("darshan-util", type=("build", "run"))
@run_after("install")
@on_package_attributes(run_tests=True)

View File

@@ -15,14 +15,12 @@ class PyGcsOauth2BotoPlugin(PythonPackage):
maintainers("dorton21")
version("3.0", sha256="f4120b08b7f8d32904674c98f07d4caf4083a58343c0c0fa0016e0f0254dfe31")
version("2.7", sha256="c95b011717911a6c40fbd3aa07a8faa0ab57570dee178d7148531327c4c6f93e")
depends_on("python@2.7:2.8,3.4:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-rsa@4.7.2", when="@3:", type=("build", "run"))
depends_on("py-boto@2.29.1:", type=("build", "run"))
depends_on("py-google-reauth@0.1.0:", type=("build", "run"))
depends_on("py-google-auth@0.1.0:", type=("build", "run"))
depends_on("py-httplib2@0.18:", type=("build", "run"))
depends_on("py-oauth2client@2.2.0:", type=("build", "run"))
depends_on("py-pyopenssl@0.13:", type=("build", "run"))

View File

@@ -13,14 +13,11 @@ class PyGoogleAuth(PythonPackage):
homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python"
pypi = "google-auth/google-auth-1.6.3.tar.gz"
version("2.20.0", sha256="030af34138909ccde0fbce611afc178f1d65d32fbff281f25738b1fe1c6f3eaa")
version("2.16.2", sha256="07e14f34ec288e3f33e00e2e3cc40c8942aa5d4ceac06256a28cd8e786591420")
version("2.11.0", sha256="ed65ecf9f681832298e29328e1ef0a3676e3732b2e56f41532d45f70a22de0fb")
version("2.3.2", sha256="2dc5218ee1192f9d67147cece18f47a929a9ef746cb69c50ab5ff5cfc983647b")
version("1.6.3", sha256="0f7c6a64927d34c1a474da92cfc59e552a5d3b940d3266606c6a28b72888b9e4")
variant("aiohttp", default=False, when="@1.22.1:", description="Enables aiohttp support")
depends_on("py-setuptools", type=("build", "run"))
depends_on("py-cachetools@2:5", when="@2.11:", type=("build", "run"))
depends_on("py-cachetools@2:4", when="@2.3", type=("build", "run"))
@@ -29,8 +26,3 @@ class PyGoogleAuth(PythonPackage):
depends_on("py-rsa@3.1.4:4", when="@2.3:", type=("build", "run"))
depends_on("py-rsa@3.1.4:", type=("build", "run"))
depends_on("py-six@1.9:", type=("build", "run"))
depends_on("py-urllib3@:1", when="@2.18:", type=("build", "run"))
with when("+aiohttp"):
depends_on("py-aiohttp@3.6.2:3", type=("build", "run"))
depends_on("py-requests@2.20:2", when="@1.30.2:", type=("build", "run"))

View File

@@ -1,18 +0,0 @@
# Copyright 2013-2023 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.package import *
class PyGoogleReauth(PythonPackage):
"""Google Reauth Library."""
homepage = "https://github.com/Google/google-reauth-python"
pypi = "google-reauth/google-reauth-0.1.1.tar.gz"
version("0.1.1", sha256="f9f6852a55c2c5453d581cd01f3d1278e86147c03d008409800390a834235892")
depends_on("py-setuptools", type="build")
depends_on("py-pyu2f", type=("build", "run"))

View File

@@ -11,33 +11,23 @@ class PyGsutil(PythonPackage):
homepage = "https://cloud.google.com/storage/docs/gsutil"
pypi = "gsutil/gsutil-4.59.tar.gz"
git = "https://github.com/GoogleCloudPlatform/gsutil.git"
maintainers("dorton21")
version("5.24", sha256="1f841645cda40fcc817e9ca84d285cdf541cc015fd38a5862017b085756729a0")
version("5.2", sha256="08857eedbd89c7c6d10176b14f94fb1168d5ef88f5b5b15b3e8a37e29302b79b")
version("4.59", sha256="349e0e0b48c281659acec205917530ae57e2eb23db7220375f5add44688d3ddf")
depends_on("python@2.7:2.8,3.5:3", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-argcomplete@1.9.4:", type=("build", "run"))
depends_on("py-crcmod@1.7:", type=("build", "run"))
depends_on("py-fasteners@0.14.1:", type=("build", "run"))
depends_on("py-gcs-oauth2-boto-plugin@3:", when="@5:", type=("build", "run"))
depends_on("py-gcs-oauth2-boto-plugin@2.7:", type=("build", "run"))
depends_on("py-google-apitools@0.5.32:", type=("build", "run"))
depends_on("py-httplib2@0.20.4", when="@5.17:", type=("build", "run"))
depends_on("py-httplib2@0.18:", type=("build", "run"))
depends_on("py-google-reauth@0.1.0:", type=("build", "run"))
depends_on("py-google-auth@0.1.0:", type=("build", "run"))
depends_on("py-mock@2.0.0", type=("build", "run"))
depends_on("py-monotonic@1.4:", type=("build", "run"))
depends_on("py-pyopenssl@0.13:", type=("build", "run"))
depends_on("py-retry-decorator@1.0.0:", type=("build", "run"))
depends_on("py-six@1.12.0:", type=("build", "run"))
depends_on("py-google-auth+aiohttp@2.5:", when="@5.7:", type=("build", "run"))
# Historical dependencies
depends_on("py-mock@2:3.0.5", when="@:4.67", type=("build", "run"))
skip_modules = ["gslib.vendored"]

View File

@@ -12,13 +12,7 @@ class PyHttplib2(PythonPackage):
homepage = "https://github.com/httplib2/httplib2"
pypi = "httplib2/httplib2-0.13.1.tar.gz"
version("0.22.0", sha256="d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81")
version("0.20.4", sha256="58a98e45b4b1a48273073f905d2961666ecf0fbac4250ea5b47aef259eb5c585")
version("0.18.0", sha256="b0e1f3ed76c97380fe2485bc47f25235453b40ef33ca5921bb2897e257a49c4c")
version("0.13.1", sha256="6901c8c0ffcf721f9ce270ad86da37bc2b4d32b8802d4a9cec38274898a64044")
depends_on("py-setuptools@40.8.0:", when="@0.18.1:", type="build")
depends_on("py-setuptools", type="build")
depends_on("py-pyparsing@2.4.2:3", when="@0.19:", type=("build", "run"))
conflicts("^py-pyparsing@3.0.1:3.0.3", when="@0.19:")

View File

@@ -1,35 +0,0 @@
# Copyright 2013-2023 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.package import *
class PyIterativeStats(PythonPackage):
"""Bacis iterative statistics implementation."""
pypi = "iterative-stats/iterative_stats-0.0.4.tar.gz"
git = "https://github.com/IterativeStatistics/BasicIterativeStatistics.git"
maintainers("frobinou")
version("main", branch="main")
version("0.0.4", sha256="7e838aa79de867b0e312be8cdf9319bb70824b624c684e968636cc8d4c9d5712")
# main dependencies
depends_on("python@3.8.0:3.10", type=("build", "run"))
depends_on("py-poetry-core@1.0.0:", type=("build"))
depends_on("py-pyyaml@6.0", type=("build", "run"))
depends_on("py-numpy@1.19:1", type=("build", "run"))
# dev dependencies
depends_on("py-pytest@6.2.1:6", type=("test"))
depends_on("py-autopep8@1.6.0", type=("test"))
depends_on("openturns@1.19+python+libxml2", type=("test"))
depends_on("py-scipy@1.8", type=("test"))
@run_after("install")
@on_package_attributes(run_tests=True)
def install_test(self):
pytest = which("pytest")
pytest()

View File

@@ -12,14 +12,13 @@ class PyLibensemble(PythonPackage):
"""Library for managing ensemble-like collections of computations."""
homepage = "https://libensemble.readthedocs.io"
pypi = "libensemble/libensemble-0.10.0.tar.gz"
pypi = "libensemble/libensemble-0.9.3.tar.gz"
git = "https://github.com/Libensemble/libensemble.git"
maintainers("shuds13", "jlnav")
tags = ["e4s"]
version("develop", branch="develop")
version("0.10.0", sha256="f800f38d02def526f1d2a325710d01fdd3637cd1e33a9a083a3cf4a7f419a726")
version("0.9.3", sha256="00e5a65d6891feee6a686c048d8de72097b8bff164431f163be96ec130a9c390")
version("0.9.2", sha256="e46598e5696f770cbff4cb90507b52867faad5654f1b80de35405a95228c909f")
version("0.9.1", sha256="684e52b0ea64f5ec610e7868b7e4c9fa5fd2316a370a726870aa5fd5fb1b0ede")
@@ -45,13 +44,11 @@ class PyLibensemble(PythonPackage):
variant("mpmath", default=False, description="Install with mpmath")
variant("deap", default=False, description="Install with DEAP")
variant("tasmanian", default=False, description="Install with tasmanian")
variant("pyyaml", default=False, description="Install with pyyaml")
depends_on("py-setuptools", type="build")
depends_on("py-numpy", type=("build", "run"))
depends_on("py-psutil", type=("build", "run"), when="@0.7.1:")
depends_on("py-setuptools", type=("build", "run"))
depends_on("py-pydantic", type=("build", "run"), when="@0.10:")
depends_on("py-tomli", type=("build", "run"), when="@0.10:")
depends_on("py-pyyaml", type=("build", "run"), when="@0.10:")
depends_on("mpi", when="@:0.4.1")
depends_on("mpi", when="+mpi")
depends_on("py-mpi4py@2.0:", type=("build", "run"), when="@:0.4.1")
@@ -63,6 +60,7 @@ class PyLibensemble(PythonPackage):
depends_on("py-mpmath", type=("build", "run"), when="+mpmath")
depends_on("py-deap", type=("build", "run"), when="+deap")
depends_on("tasmanian+python", type=("build", "run"), when="+tasmanian")
depends_on("py-pyyaml", type=("build", "run"), when="+pyyaml")
conflicts("~mpi", when="@:0.4.1")
@run_after("install")

View File

@@ -15,8 +15,6 @@ class PyLightly(PythonPackage):
maintainers("adamjstewart")
version("1.4.9", sha256="33c7988b41447c9beeb1781805ad24c8a61aa174e1a37b0b95d8e91e4a7c7f96")
version("1.4.8", sha256="3af5d8da0ac981f362bd61cbd4935dadbc32d24995c40ac2a511e6d743a03fd7")
version("1.4.7", sha256="dce719996d9b01b2a3c652e9cbab3ff80d078c4ed86d1adb39220d20e1f3fdf2")
version("1.4.6", sha256="1c8b904a96fadaefbaa00296eea0ac1e8b50cb10e94595c74b0abada5f4f5a64")
version("1.4.5", sha256="67b1de64950ff5bc35ef86fec3049f437ed1c9cb4a191c43b52384460207535f")
@@ -39,12 +37,6 @@ class PyLightly(PythonPackage):
depends_on("py-tqdm@4.44:", type=("build", "run"))
depends_on("py-urllib3@1.15.1:", type=("build", "run"))
# requirements/openapi.txt
depends_on("py-python-dateutil@2.5.3:", when="@1.4.8:", type=("build", "run"))
depends_on("py-urllib3@1.25.3:", when="@1.4.8:", type=("build", "run"))
depends_on("py-pydantic@1.10.5:1", when="@1.4.8:", type=("build", "run"))
depends_on("py-aenum@3.1.11:", when="@1.4.8:", type=("build", "run"))
# requirements/torch.txt
depends_on("py-torch", type=("build", "run"))
depends_on("py-torch@:1", when="@:1.4.1", type=("build", "run"))
@@ -56,5 +48,4 @@ class PyLightly(PythonPackage):
depends_on("py-torch+distributed", when="@:1.4.4", type=("build", "run"))
# Historical dependencies
depends_on("py-setuptools@21:", when="@1.4.8", type=("build", "run"))
depends_on("py-setuptools@21:65.5.1", when="@:1.4.1", type=("build", "run"))

View File

@@ -18,51 +18,141 @@ class PyMdanalysis(PythonPackage):
maintainers("RMeli")
version("2.5.0", sha256="06ce4efab6ca1dbd2ee2959fc668049e1d574a8fe94ab948a4608244da1d016b")
version("2.4.3", sha256="c4fbdc414e4fdda69052fff2a6e412180fe6fa90a42c24793beee04123648c92")
version("2.4.2", sha256="ae2ee5627391e73f74eaa3c547af3ec6ab8b040d27dedffe3a7ece8e0cd27636")
version(
"1.0.0",
sha256="f45a024aca45e390ff1c45ca90beb2180b78881be377e2a1aa9cd6c109bcfa81",
deprecated=True,
)
version(
"0.20.1",
sha256="d04b71b193b9716d2597ffb9938b93f43487fa535da1bb5c1f2baccf356d7df9",
deprecated=True,
)
version(
"0.19.2",
sha256="c5395bbafa5efca2e1aee4715d26129844140c47cb8301da0293106cb969de7d",
deprecated=True,
)
version(
"0.19.1",
sha256="ff1d694f8598c0833ec340de6a6adb3b5e62b92d0fa94ee6401718ba972db3cc",
deprecated=True,
)
version(
"0.19.0",
sha256="248e3b37fc6150e31c609cc18a3927c32aee37b76d29cbfedf635e7e1aa982cf",
deprecated=True,
)
version(
"0.18.0",
sha256="a08acea1755112411e7db55e3f282e164b47a59e15794b38744cce6c596f252a",
deprecated=True,
)
version(
"0.17.0",
sha256="9bd61760334698cc7b8a57ad26456451e926e9c9e66722594ad8816561348cde",
deprecated=True,
)
version(
"0.16.2",
sha256="407d9a9ff1ab8a5e47973714d06fabff220f8d08a28792dee93e88e70e995b0a",
deprecated=True,
)
version(
"0.16.1",
sha256="3dc8f5d639ab3a0d152cbd7259ae9372ec8a9bac0f8cb7d3b80ce5adc1e3ee57",
deprecated=True,
)
version(
"0.16.0",
sha256="c4824fa1fddd336daa39371436187ebb023366885fb250c2827ed7fce2546bd4",
deprecated=True,
)
version(
"0.15.0",
sha256="9088786048b47339cba1f8a586977bbb3bb04ae1bcd0462b59e45bda37e25533",
deprecated=True,
)
variant(
"analysis",
default=True,
description="Enable analysis packages: matplotlib, scipy, seaborn",
)
variant("extra_formats", default=False, description="Support extra formats")
variant("amber", default=False, when="@:1.0.0", description="Support AMBER netcdf format.")
variant("extra_formats", default=False, when="@2.4.0:", description="Support extra formats")
depends_on("python@3.9:", type=("build", "run"), when="@2.5.0:")
depends_on("python@3.8:", type=("build", "run"))
depends_on("python@2.7:", type=("build", "run"), when="@:1.0.0")
depends_on("python@3.8:", type=("build", "run"), when="@2.4.0:")
depends_on("py-setuptools", type="build")
depends_on("py-cython@0.28:", type="build")
depends_on("py-cython@0.16:", type="build", when="@:1.0.0")
depends_on("py-cython@0.28:", type="build", when="@2.4.0:")
# MDAnalysis required dependencies (install_requires)
depends_on("py-numpy@1.21.0:", when="@2.5.0:", type=("build", "run"))
depends_on("py-numpy@1.20.0:", type=("build", "run"))
depends_on("py-numpy@1.5.0:", when="@:0.15.0", type=("build", "run"))
depends_on("py-numpy@1.10.4:", when="@0.16.0:0.19.2", type=("build", "run"))
depends_on("py-numpy@1.13.3:", when="@0.20.1:1.0.0", type=("build", "run"))
depends_on("py-numpy@1.20.0:", when="@2.4.0:", type=("build", "run"))
depends_on("py-biopython@1.80:", type=("build", "run"))
depends_on("py-networkx@2.0:", type=("build", "run"))
depends_on("py-griddataformats@0.4.0:", type=("build", "run"))
depends_on("py-mmtf-python@1.0.0:", type=("build", "run"))
depends_on("py-joblib@0.12:", type=("build", "run"))
depends_on("py-biopython@1.59:", when="@:0.17.0", type=("build", "run"))
depends_on("py-biopython@1.71:", when="@0.18.0:1.0.0", type=("build", "run"))
depends_on("py-biopython@1.80:", when="@2.4.0:", type=("build", "run"))
depends_on("py-scipy@1.5.0:", type=("build", "run"))
depends_on("py-networkx@1.0:", type=("build", "run"), when="@:1.0.0")
depends_on("py-networkx@2.0:", type=("build", "run"), when="@2.4.0:")
depends_on("py-matplotlib@1.5.1:", type=("build", "run"))
depends_on("py-tqdm@4.43.0:", type=("build", "run"))
depends_on("py-threadpoolctl", type=("build", "run"))
depends_on("py-packaging", type=("build", "run"))
depends_on("py-fasteners", type=("build", "run"))
depends_on("py-gsd@1.9.3:", type=("build", "run"))
depends_on("py-griddataformats@0.3.2:", when="@:0.16.2", type=("build", "run"))
depends_on("py-griddataformats@0.4.0:", when="@0.17.0:", type=("build", "run"))
depends_on("py-mmtf-python@1.0.0:", when="@0.16.0:", type=("build", "run"))
depends_on("py-joblib", when="@0.16.0:0.20.1", type=("build", "run"))
depends_on("py-joblib@0.12:", when="@1.0.0:", type=("build", "run"))
depends_on("py-scipy", when="@:0.16.1+analysis", type=("build", "run"))
depends_on("py-scipy", when="@0.16.2:0.17.0", type=("build", "run"))
depends_on("py-scipy@1.0.0:", when="@0.18.0:1.0.0", type=("build", "run"))
depends_on("py-scipy@1.5.0:", when="@2.4.0:", type=("build", "run"))
depends_on("py-matplotlib", when="@:0.15.0+analysis", type=("build", "run"))
depends_on("py-matplotlib@1.5.1:", when="@0.16.0:0.16.1+analysis", type=("build", "run"))
depends_on("py-matplotlib@1.5.1:", when="@0.16.2:", type=("build", "run"))
depends_on("py-tqdm@4.43.0:", when="@1.0.0:", type=("build", "run"))
depends_on("py-threadpoolctl", type=("build", "run"), when="@2.4.0:") # Requirement from
depends_on("py-packaging", when="@2.4.2:", type=("build", "run"))
depends_on("py-fasteners", when="@2.4.2:", type=("build", "run"))
depends_on("py-gsd@1.4.0:", when="@0.17.0:1.0.0", type=("build", "run"))
depends_on("py-gsd@1.9.3:", when="@2.4.0:", type=("build", "run"))
# extra_format (extras_require)
depends_on("py-netcdf4@1.0:", when="+amber", type=("build", "run"))
depends_on("py-netcdf4@1.0:", when="+extra_formats", type=("build", "run"))
depends_on("hdf5", when="+amber", type=("run"))
depends_on("py-h5py@2.10:", when="+extra_formats", type=("build", "run"))
depends_on("py-chemfiles@0.10:", when="+extra_formats", type=("build", "run"))
depends_on("py-pyedr@0.7.0:", when="+extra_formats", type=("build", "run"))
depends_on("py-pytng@0.2.3:", when="+extra_formats", type=("build", "run"))
depends_on("py-pytng@0.2.3:", when="@2.4.0:+extra_formats", type=("build", "run"))
depends_on("py-chemfiles@0.10:", when="@2.4.0:+extra_formats", type=("build", "run"))
depends_on("py-pyedr@0.7.0:", when="@2.4.0:+extra_formats", type=("build", "run"))
# analysis (extras_require)
depends_on("py-seaborn", when="+analysis", type=("build", "run"))
depends_on("py-scikit-learn", when="+analysis", type=("build", "run"))
depends_on("py-tidynamics@1:", when="+analysis", type=("build", "run"))
depends_on("py-scikit-learn", when="@0.16.0:+analysis", type=("build", "run"))
depends_on("py-tidynamics@1:", when="@2.4.0:+analysis", type=("build", "run"))
# Deprecated after @1
depends_on("py-mock", when="@0.18.0:1.0.0", type=("build", "run"))
depends_on("py-six@1.4.0:", type=("build", "run"), when="@:1.0.0")

View File

@@ -14,16 +14,13 @@ class PyMdanalysistests(PythonPackage):
maintainers("RMeli")
version("2.5.0", sha256="a15b53b7f8bed67900a2bf542bbb3cab81dc71674fa6cddb3248dd11880e4c9d")
version("2.4.3", sha256="6fbdeccdbfb249f76520ee3605d007cd70292187e3754d0184c71e5afe133abb")
version("2.4.2", sha256="6e8fb210a4268691c77717ea5157e82d85874a4f7ee0f8f177718451a44ee793")
# Version need to match MDAnalysis'
depends_on("py-mdanalysis@2.5.0", when="@2.5.0", type=("build", "run"))
depends_on("py-mdanalysis@2.4.3", when="@2.4.3", type=("build", "run"))
depends_on("py-mdanalysis@2.4.2", when="@2.4.2", type=("build", "run"))
depends_on("python@3.9:", when="@2.5.0", type=("build", "run"))
depends_on("python@3.8:", type=("build", "run"))
depends_on("py-pytest@3.3.0:", type=("build", "run"))

View File

@@ -12,9 +12,7 @@ class PyNetworkx(PythonPackage):
homepage = "https://networkx.github.io/"
pypi = "networkx/networkx-2.4.tar.gz"
git = "https://github.com/networkx/networkx.git"
version("3.1", sha256="de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61")
version("2.8.6", sha256="bd2b7730300860cbd2dafe8e5af89ff5c9a65c3975b352799d87a6238b4301a6")
version("2.7.1", sha256="d1194ba753e5eed07cdecd1d23c5cd7a3c772099bd8dbd2fea366788cf4de7ba")
version("2.6.3", sha256="c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51")
@@ -28,46 +26,32 @@ class PyNetworkx(PythonPackage):
version("1.11", sha256="0d0e70e10dfb47601cbb3425a00e03e2a2e97477be6f80638fef91d54dd1e4b8")
version("1.10", sha256="ced4095ab83b7451cec1172183eff419ed32e21397ea4e1971d92a5808ed6fb8")
variant("default", default=True, description="Enable installation of default dependencies.")
# variant would be available for earlier versions as well, but then the
# dependencies increase a lot
variant(
"extra",
default=False,
when="@2.5:",
description="Optional requirements that may require extra steps to install",
default=False,
)
depends_on("python@3.8:", when="@2.7:", type=("build", "run"))
depends_on("python@2.7:", type=("build", "run"))
depends_on("python@3.5:", when="@2.3:", type=("build", "run"))
depends_on("python@3.6:", when="@2.5:", type=("build", "run"))
depends_on("python@3.7:", when="@2.6:", type=("build", "run"))
depends_on("python@3.8:", when="@2.7:", type=("build", "run"))
depends_on("py-setuptools", type="build")
with when("+default"):
# From requirements/default.txt
depends_on("py-numpy@1.20:", when="@3:", type=("build", "run"))
depends_on("py-numpy@1.19:", when="@2.8.6:", type=("build", "run"))
depends_on("py-scipy@1.8:", when="@2.8.6:", type=("build", "run"))
depends_on("py-matplotlib@3.4:", when="@2.8.6:", type=("build", "run"))
depends_on("py-pandas@1.3:", when="@2.8.6:", type=("build", "run"))
# Historical dependencies
depends_on("py-decorator@4.3.0:4", when="@2.5.1:2.5", type=("build", "run"))
depends_on("py-decorator@4.3.0:", when="@2.2:2.4", type=("build", "run"))
depends_on("py-decorator@4.1.0:", when="@2.0:2.1", type=("build", "run"))
depends_on("py-decorator@3.4.0:", when="@:1", type=("build", "run"))
with when("+extra"):
# From requirements/extra.txt
depends_on("py-lxml@4.6:", when="@2.7:", type=("build", "run"))
depends_on("py-lxml@4.5:", when="@2.6:", type=("build", "run"))
depends_on("py-pygraphviz@1.10:", when="@3:", type=("build", "run"))
depends_on("py-pygraphviz@1.9:", when="@2.7:", type=("build", "run"))
depends_on("py-pygraphviz@1.7:", when="@2.6:", type=("build", "run"))
depends_on("py-pygraphviz@1.5:1", type=("build", "run"))
depends_on("py-pydot@1.4.2:", when="@2.7:", type=("build", "run"))
depends_on("py-pydot@1.4.1:", type=("build", "run"))
depends_on("py-sympy@1.10:", when="@2.8:", type=("build", "run"))
depends_on("py-decorator@3.4.0:", when="@:1", type=("build", "run"))
depends_on("py-decorator@4.1.0:", when="@2.0:2.1", type=("build", "run"))
depends_on("py-decorator@4.3.0:", when="@2.2:2.4", type=("build", "run"))
depends_on("py-decorator@4.3.0:4", when="@2.5.1:2.5", type=("build", "run"))
# From requirements/default.txt
depends_on("py-numpy@1.19:", when="@2.8.6:", type=("build", "run"))
depends_on("py-scipy@1.8:", when="@2.8.6:", type=("build", "run"))
depends_on("py-matplotlib@3.4:", when="@2.8.6:", type=("build", "run"))
depends_on("py-pandas@1.3:", when="@2.8.6:", type=("build", "run"))
# From requirements/extra.txt
depends_on("py-lxml@4.6:", when="@2.8.6:+extra", type=("build", "run"))
depends_on("py-pygraphviz@1.9:", when="@2.8.6:+extra", type=("build", "run"))
depends_on("py-pydot@1.4.2:", when="@2.8.6:+extra", type=("build", "run"))
depends_on("py-sympy@1.10:", when="@2.8.6:+extra", type=("build", "run"))
def url_for_version(self, version):
ext = "tar.gz"

View File

@@ -12,9 +12,8 @@ class PyNodeenv(PythonPackage):
homepage = "https://github.com/ekalinin/nodeenv"
pypi = "nodeenv/nodeenv-1.3.3.tar.gz"
version("1.8.0", sha256="d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2")
version("1.7.0", sha256="e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b")
version("1.3.3", sha256="ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a")
depends_on("py-setuptools", when="@1.7:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-setuptools", when="@1.7:", type=("build", "run"))

View File

@@ -13,7 +13,6 @@ class PyNotebook(PythonPackage):
homepage = "https://github.com/jupyter/notebook"
pypi = "notebook/notebook-6.1.4.tar.gz"
version("6.5.4", sha256="517209568bd47261e2def27a140e97d49070602eea0d226a696f42a7f16c9a4e")
version("6.4.12", sha256="6268c9ec9048cff7a45405c990c29ac9ca40b0bc3ec29263d218c5e01f2b4e86")
version("6.4.11", sha256="709b1856a564fe53054796c80e17a67262071c86bfbdfa6b96aaa346113c555a")
version("6.4.5", sha256="872e20da9ae518bbcac3e4e0092d5bd35454e847dedb8cb9739e9f3b68406be0")
@@ -38,42 +37,42 @@ class PyNotebook(PythonPackage):
version("4.0.4", sha256="a57852514bce1b1cf41fa0311f6cf894960cf68b083b55e6c408316b598d5648")
version("4.0.2", sha256="8478d7e2ab474855b0ff841f693983388af8662d3af1adcb861acb900274f22a")
depends_on("python@3.7:", type=("build", "run"), when="@6.4:")
depends_on("python@2.7:2.8,3.3:", type=("build", "run"))
depends_on("python@3.5:", type=("build", "run"), when="@6:")
depends_on("python@3.6:", type=("build", "run"), when="@6.3:")
depends_on("python@3.7:", type=("build", "run"), when="@6.4:")
# TODO: replace this after concretizer learns how to concretize separate build deps
depends_on("py-jupyter-packaging11", when="@6.4.1:", type="build")
# depends_on('py-jupyter-packaging@0.9:0', when='@6.4.1:', type='build')
depends_on("py-setuptools", when="@5:", type="build")
depends_on("py-setuptools", type=("build", "run"), when="@5:")
depends_on("py-jinja2", type=("build", "run"))
depends_on("py-tornado@6.1:", when="@6.4.5:", type=("build", "run"))
depends_on("py-tornado@5.0:", when="@6:", type=("build", "run"))
depends_on("py-tornado@4.1:6", when="@5.7.5:5", type=("build", "run"))
depends_on("py-tornado@4.0:6", when="@:5.7.4", type=("build", "run"))
depends_on("py-pyzmq@17:", when="@6:", type=("build", "run"))
depends_on("py-argon2-cffi", when="@6.1:", type=("build", "run"))
depends_on("py-traitlets@4.2.1:", when="@5:", type=("build", "run"))
depends_on("py-tornado@4.0:6", type=("build", "run"), when="@:5.7.4")
depends_on("py-tornado@4.1:6", type=("build", "run"), when="@5.7.5:5")
depends_on("py-tornado@5.0:", type=("build", "run"), when="@6:")
depends_on("py-tornado@6.1:", type=("build", "run"), when="@6.4.5:")
depends_on("py-pyzmq@17:", type=("build", "run"), when="@6:")
depends_on("py-argon2-cffi", type=("build", "run"), when="@6.1:")
depends_on("py-traitlets", type=("build", "run"))
depends_on("py-jupyter-core@4.6.1:", when="@6.0.3:", type=("build", "run"))
depends_on("py-jupyter-core@4.6.0:", when="@6.0.2", type=("build", "run"))
depends_on("py-jupyter-core@4.4.0:", when="@5.7.0:6.0.1", type=("build", "run"))
depends_on("py-traitlets@4.2.1:", type=("build", "run"), when="@5:")
depends_on("py-jupyter-core", type=("build", "run"))
depends_on("py-jupyter-client@5.3.4:", when="@6.0.2:", type=("build", "run"))
depends_on("py-jupyter-client@5.3.1:", when="@6.0.0:6.0.1", type=("build", "run"))
depends_on("py-jupyter-client@5.2.0:", when="@5.7.0:5", type=("build", "run"))
depends_on("py-jupyter-core@4.4.0:", type=("build", "run"), when="@5.7.0:6.0.1")
depends_on("py-jupyter-core@4.6.0:", type=("build", "run"), when="@6.0.2")
depends_on("py-jupyter-core@4.6.1:", type=("build", "run"), when="@6.0.3:")
depends_on("py-jupyter-client", type=("build", "run"))
depends_on("py-jupyter-client@5.2.0:", type=("build", "run"), when="@5.7.0:5")
depends_on("py-jupyter-client@5.3.1:", type=("build", "run"), when="@6.0.0:6.0.1")
depends_on("py-jupyter-client@5.3.4:", type=("build", "run"), when="@6.0.2:")
depends_on("py-ipython-genutils", type=("build", "run"))
depends_on("py-nbformat", type=("build", "run"))
# https://github.com/jupyter/notebook/pull/6286
depends_on("py-nbconvert@5:", when="@5.5:", type=("build", "run"))
depends_on("py-nbconvert@5:", type=("build", "run"), when="@5.5:")
depends_on("py-nbconvert", type=("build", "run"))
depends_on("py-nest-asyncio@1.5:", when="@6.4.10:", type=("build", "run"))
depends_on("py-nest-asyncio@1.5:", type=("build", "run"), when="@6.4.10:")
depends_on("py-ipykernel", type=("build", "run"))
depends_on("py-send2trash@1.8:", when="@6.4.10:", type=("build", "run"))
depends_on("py-send2trash@1.5:", when="@6.2.0:", type=("build", "run"))
depends_on("py-send2trash", when="@6:", type=("build", "run"))
depends_on("py-terminado@0.8.3:", when="@6.1:", type=("build", "run"))
depends_on("py-terminado@0.8.1:", when="@5.7.0:", type=("build", "run"))
depends_on("py-terminado@0.3.3:", when="@:5.7.0", type=("build", "run"))
depends_on("py-prometheus-client", when="@5.7.0:", type=("build", "run"))
depends_on("py-nbclassic@0.4.7:", when="@6.5:", type=("build", "run"))
depends_on("py-send2trash", type=("build", "run"), when="@6:")
depends_on("py-send2trash@1.5:", type=("build", "run"), when="@6.2.0:")
depends_on("py-send2trash@1.8:", type=("build", "run"), when="@6.4.10:")
depends_on("py-terminado@0.3.3:", type=("build", "run"), when="@:5.7.0")
depends_on("py-terminado@0.8.1:", type=("build", "run"), when="@5.7.0:")
depends_on("py-terminado@0.8.3:", type=("build", "run"), when="@6.1:")
depends_on("py-prometheus-client", type=("build", "run"), when="@5.7.0:")

View File

@@ -12,7 +12,6 @@ class PyNumexpr(PythonPackage):
homepage = "https://github.com/pydata/numexpr"
url = "https://github.com/pydata/numexpr/archive/v2.7.0.tar.gz"
version("2.8.4", sha256="0e21addd25db5f62d60d97e4380339d9c1fb2de72c88b070c279776ee6455d10")
version("2.8.3", sha256="389ceefca74eff30ec3fd03fc4c3b7ab3df8f22d1f235117a392ce702ed208c0")
version("2.7.3", sha256="00d6b1518605afe0ed10417e0ff07123e5d531c02496c6eed7dd4b9923238e1e")
version("2.7.2", sha256="7d1b3790103221feda07f4a93a4fa5c6654f46865197a677ca6f27eb5cb4e5ef")
@@ -24,11 +23,10 @@ class PyNumexpr(PythonPackage):
version("2.4.6", sha256="2681faf55a3f19ba4424cc3d6f0a10610ebd49f029f8453f0ba64dd5c0fe4e0f")
depends_on("python@3.7:", when="@2.8.3:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-numpy@1.13.3:", type=("build", "run"), when="@2.8.3:")
depends_on("python@2.7:", when="@2.7.3", type=("build", "run"))
depends_on("python@2.6:", when="@:2.7.2", type=("build", "run"))
# https://github.com/pydata/numexpr/issues/397
depends_on("py-numpy@1.7:1.22", type=("build", "run"), when="@:2.7")
# Historical dependencies
depends_on("py-packaging", type=("build", "run"), when="@2.8.3")
depends_on("py-numpy@1.13.3:", type=("build", "run"), when="@2.8.3:")
depends_on("py-setuptools", type="build")
depends_on("py-packaging", type=("build", "run"), when="@2.8.3:")

View File

@@ -23,7 +23,6 @@ class PyNumpy(PythonPackage):
maintainers("adamjstewart", "rgommers")
version("main", branch="main")
version("1.25.0", sha256="f1accae9a28dc3cda46a91de86acf69de0d1b5f4edd44a9b0c3ceb8036dfff19")
version("1.24.3", sha256="ab344f1bf21f140adab8e47fdbc7c35a477dc01408791f8ba00d018dd0bc5155")
version("1.24.2", sha256="003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22")
version("1.24.1", sha256="2386da9a471cc00a1f47845e27d916d5ec5346ae9696e01a8a34760858fe9dd2")
@@ -88,8 +87,7 @@ class PyNumpy(PythonPackage):
variant("lapack", default=True, description="Build with LAPACK support")
# Based on wheel availability on PyPI
depends_on("python@3.9:3.11", when="@1.25:", type=("build", "link", "run"))
depends_on("python@3.8:3.11", when="@1.23.2:1.24", type=("build", "link", "run"))
depends_on("python@3.8:3.11", when="@1.23.2:", type=("build", "link", "run"))
depends_on("python@3.8:3.10", when="@1.22:1.23.1", type=("build", "link", "run"))
depends_on("python@:3.10", when="@1.21.2:1.21", type=("build", "link", "run"))
depends_on("python@:3.9", when="@1.19.3:1.21.1", type=("build", "link", "run"))
@@ -100,7 +98,6 @@ class PyNumpy(PythonPackage):
depends_on("py-setuptools@:63", type=("build", "run"))
depends_on("py-setuptools@:59", when="@:1.22.1", type=("build", "run"))
# Check pyproject.toml for updates to the required cython version
depends_on("py-cython@0.29.34:2", when="@1.25:", type="build")
depends_on("py-cython@0.29.13:2", when="@1.18.0:", type="build")
depends_on("py-cython@0.29.14:2", when="@1.18.1:", type="build")
depends_on("py-cython@0.29.21:2", when="@1.19.1:", type="build")

View File

@@ -12,7 +12,6 @@ class PyPackaging(PythonPackage):
homepage = "https://github.com/pypa/packaging"
pypi = "packaging/packaging-19.2.tar.gz"
version("23.1", sha256="a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f")
version("23.0", sha256="b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97")
version("21.3", sha256="dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb")
version("21.0", sha256="7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7")

View File

@@ -14,7 +14,6 @@ class PyPatsy(PythonPackage):
homepage = "https://github.com/pydata/patsy"
pypi = "patsy/patsy-0.5.2.tar.gz"
version("0.5.3", sha256="bdc18001875e319bc91c812c1eb6a10be4bb13cb81eb763f466179dca3b67277")
version("0.5.2", sha256="5053de7804676aba62783dbb0f23a2b3d74e35e5bfa238b88b7cbf148a38b69d")
version("0.5.1", sha256="f115cec4201e1465cd58b9866b0b0e7b941caafec129869057405bfe5b5e3991")
version(
@@ -25,9 +24,7 @@ class PyPatsy(PythonPackage):
variant("splines", default=False, description="Offers spline related functions")
depends_on("py-setuptools", type="build")
depends_on("py-six", type=("build", "run"))
depends_on("py-numpy@1.4:", type=("build", "run"), when="@0.5.1:")
depends_on("py-numpy", type=("build", "run"))
depends_on("py-numpy@1.4:", type=("build", "run"), when="@0.5.1:")
depends_on("py-scipy", type=("build", "run"), when="+splines")
depends_on("py-six", type=("build", "run"))

View File

@@ -16,10 +16,6 @@ class PyPicmistandard(PythonPackage):
maintainers("ax3l", "dpgrote", "RemiLehe")
version("develop", branch="master")
version("0.25.0", sha256="0a78b3b17054d0861626287ace1fb9321469a9c95795b92981103b27d7797f67")
version("0.24.0", sha256="55a82adcc14b41eb612caf0d9e47b0e2a56ffc196a58b41fa0cc395c6924be9a")
version("0.23.2", sha256="e6b4c46b23520d0a97b904df90d53ff6a3209b2b6b2fa741f684c594429a591c")
version("0.23.1", sha256="90ad1d3d2759d910cfdb88484516b7d0434ec98e881af46961b7e2faa534434d")
version("0.0.22", sha256="e234a431274254b22cd70be64d6555b383d98426b2763ea0c174cf77bf4d0890")
version("0.0.21", sha256="930056a23ed92dac7930198f115b6248606b57403bffebce3d84579657c8d10b")
version("0.0.20", sha256="9c1822eaa2e4dd543b5afcfa97940516267dda3890695a6cf9c29565a41e2905")

View File

@@ -12,9 +12,9 @@ class PyPkginfo(PythonPackage):
homepage = "https://code.launchpad.net/~tseaver/pkginfo/trunk"
pypi = "pkginfo/pkginfo-1.5.0.1.tar.gz"
version("1.9.6", sha256="8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046")
version("1.8.3", sha256="a84da4318dd86f870a9447a8c98340aa06216bfc6f2b7bdc4b8766984ae1867c")
version("1.7.1", sha256="e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd")
version("1.5.0.1", sha256="7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb")
depends_on("py-setuptools", type="build")
depends_on("py-setuptools", type=("build", "run"))
depends_on("python@2.7:2,3.6:", when="@1.8.3:", type=("build", "run"))

View File

@@ -14,7 +14,6 @@ class PyPlatformdirs(PythonPackage):
homepage = "https://github.com/platformdirs/platformdirs"
pypi = "platformdirs/platformdirs-2.4.0.tar.gz"
version("3.5.3", sha256="e48fabd87db8f3a7df7150a4a5ea22c546ee8bc39bc2473244730d4b56d2cc4e")
version("3.5.0", sha256="7954a68d0ba23558d753f73437c55f89027cf8f5108c19844d4b82e5af396335")
version("3.1.1", sha256="024996549ee88ec1a9aa99ff7f8fc819bb59e2c3477b410d90a16d32d6e707aa")
version("2.5.2", sha256="58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19")
@@ -32,12 +31,10 @@ class PyPlatformdirs(PythonPackage):
depends_on("python@3.7:", when="@2.4.1:", type=("build", "run"))
depends_on("py-hatch-vcs@0.3:", when="@3:", type="build")
depends_on("py-hatch-vcs", when="@2.5.2:", type="build")
depends_on("py-hatchling@1.17:", when="@3.5.2:", type="build")
depends_on("py-hatchling@1.14:", when="@3.3:", type="build")
depends_on("py-hatchling@1.12.2:", when="@3:", type="build")
depends_on("py-hatchling@0.22.0:", when="@2.5.2:", type="build")
depends_on("py-typing-extensions@4.6.3:", when="@3.5.2: ^python@:3.7", type=("build", "run"))
depends_on("py-typing-extensions@4.5:", when="@3.2: ^python@:3.7", type=("build", "run"))
depends_on("py-typing-extensions@4.4:", when="@3: ^python@:3.7", type=("build", "run"))

View File

@@ -14,20 +14,12 @@ class PyPooch(PythonPackage):
homepage = "https://github.com/fatiando/pooch"
pypi = "pooch/pooch-1.3.0.tar.gz"
version("1.7.0", sha256="f174a1041b6447f0eef8860f76d17f60ed2f857dc0efa387a7f08228af05d998")
version("1.5.2", sha256="5969b2f1defbdc405df932767e05e0b536e2771c27f1f95d7f260bc99bf13581")
version("1.3.0", sha256="30d448e825904e2d763bbbe418831a788813c32f636b21c8d60ee5f474532898")
depends_on("py-setuptools@45:", when="@1.6:", type="build")
depends_on("python@3.6:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-setuptools-scm+toml@6.2:", when="@1.6:", type="build")
depends_on("py-setuptools-scm", when="@1.4:", type="build")
depends_on("py-platformdirs@2.5:", when="@1.7:", type=("build", "run"))
depends_on("py-packaging@20:", when="@1.6:", type=("build", "run"))
depends_on("py-packaging", type=("build", "run"))
depends_on("py-requests@2.19:", when="@1.6:", type=("build", "run"))
depends_on("py-requests", type=("build", "run"))
# Historical dependencies
depends_on("py-appdirs", when="@:1.5", type=("build", "run"))
depends_on("py-packaging", type=("build", "run"))
depends_on("py-appdirs", type=("build", "run"))

View File

@@ -13,28 +13,23 @@ class PyPreCommit(PythonPackage):
homepage = "https://github.com/pre-commit/pre-commit"
pypi = "pre_commit/pre_commit-1.20.0.tar.gz"
version("3.3.3", sha256="a2256f489cd913d575c145132ae196fe335da32d91a8294b7afe6622335dd023")
version("2.20.0", sha256="a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959")
version("2.17.0", sha256="c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a")
version("2.10.1", sha256="399baf78f13f4de82a29b649afd74bef2c4e28eb4f021661fc7f29246e8c7a3a")
version("1.20.0", sha256="9f152687127ec90642a2cc3e4d9e1e6240c4eb153615cb02aa1ad41d331cbb6e")
depends_on("python@3.8:", when="@3:", type=("build", "run"))
depends_on("python@3.7:", when="@2.20.0:", type=("build", "run"))
depends_on("python@3.6.1:", when="@2.1.0:", type=("build", "run"))
depends_on("python@2.7:2.8,3.5:", type=("build", "run"))
depends_on("python@3.6.1:", type=("build", "run"), when="@2.1.0:")
depends_on("python@3.7:", type=("build", "run"), when="@2.20.0:")
depends_on("py-setuptools", type="build")
depends_on("py-cfgv@2:", type=("build", "run"))
depends_on("py-identify@1:", type=("build", "run"))
depends_on("py-aspy-yaml", type=("build", "run"), when="@1")
depends_on("py-cfgv@2.0.0:", type=("build", "run"))
depends_on("py-identify@1.0.0:", type=("build", "run"))
depends_on("py-nodeenv@0.11.1:", type=("build", "run"))
depends_on("py-pyyaml@5.1:", when="@2.1:", type=("build", "run"))
depends_on("py-pyyaml", type=("build", "run"))
depends_on("py-virtualenv@20.10:", when="@2.21:", type=("build", "run"))
depends_on("py-virtualenv@20.0.8:", when="@2.4:", type=("build", "run"))
depends_on("py-pyyaml@5.1:", type=("build", "run"), when="@2.1.0:")
depends_on("py-six", type=("build", "run"), when="@1")
depends_on("py-toml", type=("build", "run"))
depends_on("py-virtualenv@15.2:", type=("build", "run"))
# Historical dependencies
depends_on("py-toml", when="@:2.20", type=("build", "run"))
depends_on("py-aspy-yaml", when="@1", type=("build", "run"))
depends_on("py-six", when="@1", type=("build", "run"))
depends_on("py-importlib-metadata", when="@:2 ^python@:3.7", type=("build", "run"))
depends_on("py-virtualenv@20.0.8:", type=("build", "run"), when="@2.4.0:")
depends_on("py-importlib-metadata", type=("build", "run"), when="^python@:3.7")

View File

@@ -9,10 +9,8 @@
class PyPrometheusClient(PythonPackage):
"""Prometheus instrumentation library for Python applications."""
homepage = "https://github.com/prometheus/client_python"
pypi = "prometheus_client/prometheus_client-0.7.1.tar.gz"
version("0.17.0", sha256="9c3b26f1535945e85b8934fb374678d263137b78ef85f305b1156c7c881cd11b")
version("0.14.1", sha256="5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a")
version("0.12.0", sha256="1b12ba48cee33b9b0b9de64a1047cbd3c5f2d0ab6ebcead7ddda613a750ec3c5")
version("0.7.1", sha256="71cd24a2b3eb335cb800c7159f423df1bd4dcd5171b234be15e3f31ec9f622da")
@@ -24,14 +22,20 @@ class PyPrometheusClient(PythonPackage):
depends_on("py-setuptools", type="build")
# Notice: prometheus_client/twisted/_exposition.py imports 'twisted.web.wsgi'
# which was not ported to Python 3 until twisted 16.0.0
depends_on("py-twisted@16:", when="@0.12.0: +twisted ^python@3:", type=("build", "run"))
depends_on("py-twisted", when="+twisted", type=("build", "run"))
depends_on("py-twisted@16:", when="@0.12.0: +twisted ^python@3:", type=("build", "run"))
depends_on("python@2.7:2,3.4:", when="@0.12.0", type=("build", "run"))
depends_on("python@3.6:", when="@0.14.1:", type=("build", "run"))
@property
def skip_modules(self):
modules = []
def import_modules(self):
modules = [
"prometheus_client",
"prometheus_client.openmetrics",
"prometheus_client.bridge",
]
if self.spec.satisfies("~twisted"):
if "+twisted" in self.spec:
modules.append("prometheus_client.twisted")
return modules

View File

@@ -9,14 +9,34 @@
class PyPromptToolkit(PythonPackage):
"""Library for building powerful interactive command lines in Python"""
homepage = "https://github.com/prompt-toolkit/python-prompt-toolkit"
pypi = "prompt_toolkit/prompt_toolkit-1.0.9.tar.gz"
# 'prompt_toolkit.contrib.ssh' requires 'asyncssh', but 'asyncssh' isn't listed as a
# dependency. Leave out of 'import_modules' to avoid unnecessary dependency.
skip_modules = ["prompt_toolkit.contrib.ssh"]
import_modules = [
"prompt_toolkit",
"prompt_toolkit.filters",
"prompt_toolkit.lexers",
"prompt_toolkit.input",
"prompt_toolkit.layout",
"prompt_toolkit.output",
"prompt_toolkit.completion",
"prompt_toolkit.contrib",
"prompt_toolkit.contrib.completers",
"prompt_toolkit.contrib.regular_languages",
"prompt_toolkit.contrib.telnet",
"prompt_toolkit.key_binding",
"prompt_toolkit.key_binding.bindings",
"prompt_toolkit.styles",
"prompt_toolkit.shortcuts",
"prompt_toolkit.shortcuts.progress_bar",
"prompt_toolkit.formatted_text",
"prompt_toolkit.eventloop",
"prompt_toolkit.application",
"prompt_toolkit.widgets",
"prompt_toolkit.clipboard",
]
version("3.0.38", sha256="23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b")
version("3.0.31", sha256="9ada952c9d1787f52ff6d5f3484d0b4df8952787c087edf6a1f7c2cb1ea88148")
version("3.0.29", sha256="bd640f60e8cecd74f0dc249713d433ace2ddc62b65ee07f96d358e0b152b6ea7")
version("3.0.24", sha256="1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6")
@@ -28,14 +48,9 @@ class PyPromptToolkit(PythonPackage):
version("1.0.16", sha256="c1cedd626e08b8ee830ee65897de754113ff3f3035880030c08b01674d85c5b4")
version("1.0.9", sha256="cd6523b36adc174cc10d54b1193eb626b4268609ff6ea92c15bcf1996609599c")
depends_on("python@3.7:", when="@3.0.37:", type=("build", "run"))
depends_on("python@3.6.2:", when="@3.0.24:", type=("build", "run"))
depends_on("python@3.6.1:", when="@3:3.0.17", type=("build", "run"))
# collections.Mapping was removed in python@3.10
depends_on("python@:3.9", when="@1.0.9", type=("build", "run"))
depends_on("python@2.6:2.8,3.3:", when="@:2", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-wcwidth", type=("build", "run"))
# Historical dependencies
depends_on("py-six@1.9.0:", when="@:2", type=("build", "run"))
depends_on("py-wcwidth", type=("build", "run"))

View File

@@ -14,7 +14,6 @@ class PyPsutil(PythonPackage):
homepage = "https://github.com/giampaolo/psutil"
pypi = "psutil/psutil-5.6.3.tar.gz"
version("5.9.5", sha256="5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c")
version("5.9.4", sha256="3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62")
version("5.9.2", sha256="feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c")
version("5.8.0", sha256="0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6")
@@ -28,3 +27,7 @@ class PyPsutil(PythonPackage):
# pyproject.toml
depends_on("py-setuptools@43:", when="@5.9.4:", type="build")
depends_on("py-setuptools", type="build")
# setup.py
# depends_on("py-pywin32", when="platform=windows", type=("build", "run"))
# depends_on("py-wmi", when="platform=windows", type=("build", "run"))

View File

@@ -12,7 +12,6 @@ class PyPybids(PythonPackage):
homepage = "https://github.com/bids-standard/pybids"
pypi = "pybids/pybids-0.13.1.tar.gz"
version("0.16.1", sha256="1a6ab06d375f3b783e738826e6d220b2f4145419b4b02f4edbcc8cb7c9b2208a")
version("0.15.3", sha256="4d99c979bc4bc209cff70a02d1da309c9bf8c6b0338e2a0b66ebea77c7f3c461")
version("0.15.1", sha256="0253507a04dbfea43eb1f75a1f71aab04be21076bfe96c004888000b802e38f2")
version("0.14.0", sha256="73c4d03aad333f2a7cb4405abe96f55a33cffa4b5a2d23fad6ac5767c45562ef")
@@ -21,32 +20,22 @@ class PyPybids(PythonPackage):
version("0.9.5", sha256="0e8f8466067ff3023f53661c390c02702fcd5fe712bdd5bf167ffb0c2b920430")
version("0.8.0", sha256="fe60fa7d1e171e75a38a04220ed992f1b062531a7452fcb7ce5ba81bb6abfdbc")
depends_on("python@3.8:", when="@0.16:", type=("build", "run"))
depends_on("python@3.7:", when="@0.15:", type=("build", "run"))
depends_on("py-setuptools", when="@0.15.6:", type="build")
depends_on("py-setuptools@30.3:60,61.0.1:", when="@:0.15.5", type="build")
depends_on("py-versioneer+toml", when="@0.15.6:", type="build")
depends_on("py-numpy@1.19:", when="@0.16:", type=("build", "run"))
depends_on("python@3.6:", when="@0.14:", type=("build", "run"))
depends_on("python@3.5:", when="@0.10:", type=("build", "run"))
depends_on("python@2.7:2,3.5:", type=("build", "run"))
depends_on("py-setuptools@30.3.0:60,61.0.1:", type="build")
depends_on("py-numpy", type=("build", "run"))
depends_on("py-scipy@1.5:", when="@0.16:", type=("build", "run"))
depends_on("py-scipy", type=("build", "run"))
depends_on("py-nibabel@3:", when="@0.16:", type=("build", "run"))
depends_on("py-nibabel@2.1:", type=("build", "run"))
depends_on("py-pandas@0.25.2:", when="@0.16:", type=("build", "run"))
depends_on("py-pandas@0.23:", type=("build", "run"))
depends_on("py-formulaic@0.2.4:0.5", when="@0.15.6:", type=("build", "run"))
depends_on("py-formulaic@0.2.4:0.3", when="@0.15.1:0.15.5", type=("build", "run"))
depends_on("py-formulaic@0.2.4:0.3", when="@0.15.1:", type=("build", "run"))
depends_on("py-formulaic@0.2.4:0.2", when="@0.14:0.15.0", type=("build", "run"))
depends_on("py-sqlalchemy@1.3.16:", when="@0.16:", type=("build", "run"))
depends_on("py-sqlalchemy@:1.3", when="@0.12.4:", type=("build", "run"))
depends_on("py-sqlalchemy", type=("build", "run"))
depends_on("py-bids-validator@1.11:", when="@0.16:", type=("build", "run"))
depends_on("py-bids-validator", type=("build", "run"))
depends_on("py-num2words@0.5.5:", when="@0.16:", type=("build", "run"))
depends_on("py-num2words", type=("build", "run"))
depends_on("py-click@8:", when="@0.15.2:", type=("build", "run"))
depends_on("py-click", when="@0.12.1:", type=("build", "run"))
# Historical dependencies
depends_on("py-patsy", when="@:0.13", type=("build", "run"))

View File

@@ -13,22 +13,18 @@ class PyPycairo(PythonPackage):
homepage = "https://www.cairographics.org/pycairo/"
pypi = "pycairo/pycairo-1.17.1.tar.gz"
git = "https://github.com/pygobject/pycairo.git"
version("1.24.0", sha256="1444d52f1bb4cc79a4a0c0fe2ccec4bd78ff885ab01ebe1c0f637d8392bcafb6")
version("1.20.0", sha256="5695a10cb7f9ae0d01f665b56602a845b0a8cb17e2123bfece10c2e58552468c")
version("1.18.1", sha256="70172e58b6bad7572a3518c26729b074acdde15e6fee6cbab6d3528ad552b786")
version("1.17.1", sha256="0f0a35ec923d87bc495f6753b1e540fd046d95db56a35250c44089fbce03b698")
depends_on("python@3.8:", when="@1.23:", type=("build", "run"))
depends_on("python@3.6:3", when="@1.20:1.22", type=("build", "run"))
depends_on("python@2.7:2.8,3.4:3.7", when="@1.18.1:1.19", type=("build", "run"))
depends_on("py-setuptools", type="build")
# https://github.com/pygobject/pycairo/blob/main/docs/getting_started.rst
depends_on("pkgconfig", type="build")
# version requirements from setup.py
depends_on("cairo@1.15.10: +pdf", when="@1.20:")
depends_on("cairo@1.15.10: +pdf", when="@1.20.0:")
depends_on("cairo@1.13.1: +pdf", when="@:1.18.1")
depends_on("pkgconfig", type="build")
depends_on("py-setuptools", type="build")
depends_on("python@2.7:2.8,3.3:", when="@:1.17.1", type=("build", "run"))
depends_on("python@2.7:2.8,3.4:3.7", when="@1.18.1:1.19", type=("build", "run"))
depends_on("python@3.6:3", when="@1.20.0:", type=("build", "run"))
@run_after("install")
def post_install(self):

View File

@@ -12,16 +12,16 @@ class PyPydantic(PythonPackage):
homepage = "https://github.com/samuelcolvin/pydantic"
pypi = "pydantic/pydantic-1.8.2.tar.gz"
version("1.10.9", sha256="95c70da2cd3b6ddf3b9645ecaa8d98f3d80c606624b6d245558d202cd23ea3be")
version("1.10.2", sha256="91b8e218852ef6007c2b98cd861601c6a09f1aa32bbbb74fab5b1c33d4a1e410")
version("1.9.2", sha256="8cb0bc509bfb71305d7a59d00163d5f9fc4530f0881ea32c74ff4f74c85f3d3d")
version("1.8.2", sha256="26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b")
variant("dotenv", default=False, description="Install requirements for pydantic.dotenv")
depends_on("python@3.7:", when="@1.10.2:", type=("build", "run"))
depends_on("python@3.6.1:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-typing-extensions@4.2:", when="@1.10.9:", type=("build", "run"))
depends_on("py-typing-extensions@4.1:", when="@1.10:", type=("build", "run"))
depends_on("py-typing-extensions@4.1.0:", when="@1.10.2:", type=("build", "run"))
depends_on("py-typing-extensions@3.7.4.3:", type=("build", "run"))
depends_on("py-python-dotenv@0.10.4:", when="+dotenv", type=("build", "run"))

View File

@@ -15,16 +15,11 @@ class PyPydicom(PythonPackage):
homepage = "https://github.com/pydicom/pydicom"
pypi = "pydicom/pydicom-2.1.2.tar.gz"
version("2.4.1", sha256="6cb210dbe5586841036e8eeb2d4feb4df22a48f39161ba7ee0bf3c89faaba946")
version("2.3.0", sha256="dbfa081c9ad9ac8ff8a8efbd71784104db9eecf02fd775f7d7773f2183f89386")
version("2.1.2", sha256="65f36820c5fec24b4e7ca45b7dae93e054ed269d55f92681863d39d30459e2fd")
variant("numpy", default=False, description="Use NumPy for Pixel data")
depends_on("python@3.7:", when="@2.4:", type=("build", "run"))
depends_on("python@3.6.1:", type=("build", "run"))
depends_on("py-flit-core@3.2:3", when="@2.4:", type=("build", "run"))
depends_on("py-setuptools", type=("build", "run"))
depends_on("py-numpy", when="+numpy", type="run")
# Historical dependencies
depends_on("py-setuptools", when="@:2.3", type=("build", "run"))

View File

@@ -11,9 +11,7 @@ class PyPygments(PythonPackage):
homepage = "https://pygments.org/"
pypi = "Pygments/Pygments-2.4.2.tar.gz"
git = "https://github.com/pygments/pygments.git"
version("2.15.1", sha256="8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c")
version("2.13.0", sha256="56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1")
version("2.12.0", sha256="5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb")
version("2.10.0", sha256="f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6")
@@ -25,6 +23,7 @@ class PyPygments(PythonPackage):
version("2.0.1", sha256="5e039e1d40d232981ed58914b6d1ac2e453a7e83ddea22ef9f3eeadd01de45cb")
version("2.0.2", sha256="7320919084e6dac8f4540638a46447a3bd730fca172afc17d2c03eed22cf4f51")
depends_on("python@3.7:", when="@2.15:", type=("build", "run"))
depends_on("py-setuptools@61:", when="@2.15:", type=("build", "run"))
depends_on("python@3.6:", type=("build", "run"), when="@2.12:")
depends_on("python@3.5:", type=("build", "run"), when="@2.6:")
depends_on("python@2.7:2.8,3.5:", type=("build", "run"), when="@:2.5")
depends_on("py-setuptools", type=("build", "run"))

View File

@@ -17,17 +17,11 @@ class PyPyopenssl(PythonPackage):
homepage = "https://pyopenssl.org/"
pypi = "pyOpenSSL/pyOpenSSL-19.0.0.tar.gz"
version("23.2.0", sha256="276f931f55a452e7dea69c7173e984eb2a4407ce413c918aa34b55f82f9b8bac")
version("22.1.0", sha256="7a83b7b272dd595222d672f5ce29aa030f1fb837630ef229f62e72e395ce8968")
version("19.0.0", sha256="aeca66338f6de19d1aa46ed634c3b9ae519a64b458f8468aec688e7e3c20f200")
depends_on("py-setuptools", type="build")
depends_on("py-cryptography@38:41", when="@23.2:", type=("build", "run"))
depends_on("py-cryptography@38", when="@22", type=("build", "run"))
depends_on("py-cryptography@2.3:", type=("build", "run"))
conflicts("^py-cryptography@40:40.0.1", when="@23.2:")
# Historical dependencies
depends_on("py-cryptography@38", when="@22:", type=("build", "run"))
depends_on("python@3.6:", when="@22:", type=("build", "run"))
depends_on("py-six@1.5.2:", when="@:19", type=("build", "run"))

View File

@@ -16,7 +16,6 @@ class PyPyproj(PythonPackage):
maintainers("citibeth", "adamjstewart")
version("3.6.0", sha256="a5b111865b3f0f8b77b3983f2fbe4dd6248fc09d3730295949977c8dcd988062")
version("3.5.0", sha256="9859d1591c1863414d875ae0759e72c2cffc01ab989dc64137fbac572cc81bf6")
version("3.4.1", sha256="261eb29b1d55b1eb7f336127344d9b31284d950a9446d1e0d1c2411f7dd8e3ac")
version("3.4.0", sha256="a708445927ace9857f52c3ba67d2915da7b41a8fdcd9b8f99a4c9ed60a75eb33")
@@ -36,7 +35,8 @@ class PyPyproj(PythonPackage):
depends_on("py-setuptools@61:", when="@3.4:", type="build")
depends_on("py-setuptools", type="build")
depends_on("py-cython@0.28.4:", when="@2:", type="build")
depends_on("python@3.9:", when="@3.6:", type=("build", "link", "run"))
# In setup.cfg
depends_on("python@3.8:", when="@3.3:", type=("build", "link", "run"))
depends_on("py-certifi", when="@3:", type=("build", "run"))

View File

@@ -11,9 +11,7 @@ class PyPytest(PythonPackage):
homepage = "https://pytest.org/"
pypi = "pytest/pytest-5.2.1.tar.gz"
git = "https://github.com/pytest-dev/pytest"
version("7.3.2", sha256="ee990a3cc55ba808b80795a79944756f315c67c12b56abd3ac993a7b8c17030b")
version("7.2.1", sha256="d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42")
version("7.1.3", sha256="4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39")
version("6.2.5", sha256="131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89")
@@ -37,8 +35,10 @@ class PyPytest(PythonPackage):
# python_requires
depends_on("python@3.7:", when="@7.1:", type=("build", "run"))
# see https://github.com/pytest-dev/pytest/releases/tag/7.3.2
depends_on("python@:3.11", when="@:7.3.1", type=("build", "run"))
depends_on("python@3.6:", when="@6.2:", type=("build", "run"))
depends_on("python@3.5:", when="@5:6.1", type=("build", "run"))
depends_on("python@2.7:2.8,3.4:", when="@3.3:4", type=("build", "run"))
depends_on("python@2.6:2.8,3.3:", when="@:3.2", type=("build", "run"))
# setup_requires
depends_on("py-setuptools@45.0:", when="@7:", type=("build", "run"))
@@ -51,6 +51,9 @@ class PyPytest(PythonPackage):
depends_on("py-setuptools-scm", when="@3.1:", type="build")
# install_requires
depends_on("py-attrs@19.2.0:", when="@6.2:", type=("build", "run"))
depends_on("py-attrs@17.4.0:", when="@3.5:6.1", type=("build", "run"))
depends_on("py-attrs@17.2.0:", when="@3.3:3.4", type=("build", "run"))
depends_on("py-iniconfig", when="@6.0:", type=("build", "run"))
depends_on("py-packaging", when="@4.6:", type=("build", "run"))
depends_on("py-pluggy@0.12:1", when="@6.2:", type=("build", "run"))
@@ -63,15 +66,12 @@ class PyPytest(PythonPackage):
depends_on("py-pluggy@0.5:0.6", when="@:3.6.3", type=("build", "run"))
depends_on("py-colorama", when="platform=windows", type=("build", "run"))
depends_on("py-exceptiongroup@1:", when="@7: ^python@:3.10", type=("build", "run"))
depends_on("py-importlib-metadata@0.12:", when="@5.1: ^python@:3.7", type=("build", "run"))
depends_on("py-importlib-metadata@0.12:", when="@4.6:5.0", type=("build", "run"))
depends_on("py-importlib-metadata@0.12:", when="@5.1: ^python@:3.7", type=("build", "run"))
depends_on("py-tomli@1:", when="@7.1: ^python@:3.10", type=("build", "run"))
depends_on("py-tomli@1:", when="@7.0", type=("build", "run"))
# Historic dependencies
depends_on("py-attrs@19.2.0:", when="@6.2:7.2", type=("build", "run"))
depends_on("py-attrs@17.4.0:", when="@3.5:6.1", type=("build", "run"))
depends_on("py-attrs@17.2.0:", when="@3.3:3.4", type=("build", "run"))
depends_on("py-py@1.8.2:", when="@6:7.1", type=("build", "run"))
depends_on("py-py@1.5.0:", when="@3.3:5", type=("build", "run"))
depends_on("py-py@1.4.33:", when="@3.1.2:3.2.3,3.2.5:3.2", type=("build", "run"))

View File

@@ -12,7 +12,6 @@ class PyPythonGitlab(PythonPackage):
homepage = "https://github.com/gpocentek/python-gitlab"
pypi = "python-gitlab/python-gitlab-0.19.tar.gz"
version("3.15.0", sha256="c9e65eb7612a9fbb8abf0339972eca7fd7a73d4da66c9b446ffe528930aff534")
version("3.9.0", sha256="5fc5e88f81f366e11851cb8b4b9a5b827491ce20ba7585446b74c9b097726ba3")
version("2.10.1", sha256="7afa7d7c062fa62c173190452265a30feefb844428efc58ea5244f3b9fc0d40f")
version("1.8.0", sha256="a6b03bc53f6e2e22b88d5ff9772b1bb360570ec82752f1def3d6eb60cda093e7")
@@ -22,15 +21,11 @@ class PyPythonGitlab(PythonPackage):
version("0.16", sha256="2c50dc0bd3ed7c6b1edb6e556b0f0109493ae9dfa46e3bffcf3e5e67228d7d53")
depends_on("python@3.7:", when="@3:", type=("build", "run"))
depends_on("python@3.6:", when="@2:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-requests@2.25:", when="@2.10.1:", type=("build", "run"))
depends_on("py-requests@2.22:", when="@2:", type=("build", "run"))
depends_on("py-requests@2.4.2:", when="@1.4:", type=("build", "run"))
depends_on("py-requests@1:", type=("build", "run"))
depends_on("py-requests-toolbelt@0.10.1:", when="@3.13:", type=("build", "run"))
depends_on("py-requests-toolbelt@0.9.1:", when="@2.6:", type=("build", "run"))
depends_on("py-typing-extensions@4:", when="@3.14: ^python@:3.7", type=("build", "run"))
# Historical dependencies
depends_on("py-requests-toolbelt@0.9.1:", when="@2.6.0:", type=("build", "run"))
depends_on("py-requests@2.25.0:", when="@2.10.1:", type=("build", "run"))
depends_on("py-requests@2.22.0:", when="@2.0.0:", type=("build", "run"))
depends_on("py-requests@2.4.2:", when="@1.4.0:", type=("build", "run"))
depends_on("py-requests@1.0:", type=("build", "run"))
depends_on("py-six", when="@:1", type=("build", "run"))

View File

@@ -11,9 +11,7 @@ class PyPytz(PythonPackage):
homepage = "https://pythonhosted.org/pytz"
pypi = "pytz/pytz-2019.3.tar.gz"
git = "https://github.com/stub42/pytz.git"
version("2023.3", sha256="1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588")
version("2022.2.1", sha256="cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5")
version("2021.3", sha256="acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326")
version("2021.1", sha256="83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da")

View File

@@ -1,18 +0,0 @@
# Copyright 2013-2023 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.package import *
class PyPyu2f(PythonPackage):
"""U2F host library for interacting with a U2F device over USB."""
homepage = "https://github.com/google/pyu2f"
pypi = "pyu2f/pyu2f-0.1.5.tar.gz"
version("0.1.5", sha256="a3caa3a11842fc7d5746376f37195e6af5f17c0a15737538bb1cebf656fb306b")
depends_on("py-setuptools", type="build")
depends_on("py-six", type=("build", "run"))

View File

@@ -16,8 +16,5 @@ class PyQmtest(PythonPackage):
version("2.4.1", sha256="098f705aea9c8f7f5b6b5fe131974cee33b50cad3e13977e39708f306ce9ac91")
# Patch to fix python 3.10 and above compatibility
patch("wininst.patch", when="@2.4.1^python@3.10:")
depends_on("python@2.2:", type=("build", "run"))
depends_on("py-setuptools", type="build")

View File

@@ -1,20 +0,0 @@
diff --git a/setup.py b/setup.py
index 198cc92..2e07495 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,6 @@ from qmdist.command.build_py import build_py
from qmdist.command.build_scripts import build_scripts
from qmdist.command.build_doc import *
from qmdist.command.install_lib import install_lib
-from qmdist.command.bdist_wininst import bdist_wininst
from qmdist.command.check import check
import sys, os, os.path, glob, shutil
@@ -66,7 +65,6 @@ setup(name="qmtest",
'build_ref_manual': build_ref_manual,
'build_man_page': build_man_page,
'install_lib': install_lib,
- 'bdist_wininst' : bdist_wininst,
'check': check},
packages=('qm',

View File

@@ -12,9 +12,7 @@ class PyRequestsToolbelt(PythonPackage):
homepage = "https://toolbelt.readthedocs.org/"
pypi = "requests-toolbelt/requests-toolbelt-0.9.1.tar.gz"
git = "https://github.com/requests/toolbelt.git"
version("1.0.0", sha256="7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6")
version("0.9.1", sha256="968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0")
version("0.8.0", sha256="f6a531936c6fa4c6cfce1b9c10d5c4f498d16528d2a54a22ca00011205a187b5")

View File

@@ -0,0 +1,31 @@
diff --git a/WORKSPACE b/WORKSPACE
index 48227b5d8439..5ce04e1097eb 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -97,6 +97,8 @@ http_archive(
name = "org_tensorflow_tensorboard",
sha256 = "528afecdcc551c31baa6c7c3f702439cb6a52b711a12f9773177d0a9221f0620",
strip_prefix = "tensorboard-22b1f7413a917249245ab63a33d1f03514039294",
+ patch_args = ["-p1"],
+ patches = ["defaultshellenv.patch"],
urls = [
"https://github.com/tensorflow/tensorboard/archive/22b1f7413a917249245ab63a33d1f03514039294.tar.gz", # 2019-12-04
],
diff --git a/external/defaultshellenv.patch b/external/defaultshellenv.patch
new file mode 100644
index 000000000000..d22faf5662b6
--- /dev/null
+++ b/external/defaultshellenv.patch
@@ -0,0 +1,12 @@
+diff --git a/tensorboard/defs/web.bzl b/tensorboard/defs/web.bzl
+index dfca0bfd21b5..fb981493b25d 100644
+--- a/tensorboard/defs/web.bzl
++++ b/tensorboard/defs/web.bzl
+@@ -180,6 +180,7 @@ def _tf_web_library(ctx):
+ tools=ctx.files._tsc,
+ inputs=ts_inputs,
+ outputs=ts_outputs,
++ use_default_shell_env=True,
+ executable=ctx.executable._execrooter,
+ arguments=(
+ [er_config.path] +

View File

@@ -0,0 +1,12 @@
diff --git a/tensorboard/defs/web.bzl b/tensorboard/defs/web.bzl
index dfca0bfd21b5..fb981493b25d 100644
--- a/tensorboard/defs/web.bzl
+++ b/tensorboard/defs/web.bzl
@@ -180,6 +180,7 @@ def _tf_web_library(ctx):
tools=ctx.files._tsc,
inputs=ts_inputs,
outputs=ts_outputs,
+ use_default_shell_env=True,
executable=ctx.executable._execrooter,
arguments=(
[er_config.path] +

View File

@@ -0,0 +1,11 @@
diff -ru a/tensorboard/plugins/projector/vz_projector/BUILD b/tensorboard/plugins/projector/vz_projector/BUILD
--- a/tensorboard/plugins/projector/vz_projector/BUILD 2021-10-13 11:04:47.000000000 -0500
+++ b/tensorboard/plugins/projector/vz_projector/BUILD 2021-12-02 14:27:59.275004056 -0600
@@ -64,6 +64,7 @@
"@npm//@polymer/decorators",
"@npm//@polymer/polymer",
"@npm//numeric",
+ "@npm//@types/three",
"@npm//three",
"@npm//umap-js",
],

View File

@@ -0,0 +1,11 @@
diff -ru a/tensorboard/webapp/runs/views/runs_table/regex_edit_dialog_component.ts b/tensorboard/webapp/runs/views/runs_table/regex_edit_dialog_component.ts
--- a/tensorboard/webapp/runs/views/runs_table/regex_edit_dialog_component.ts 2021-10-13 11:04:47.000000000 -0500
+++ b/tensorboard/webapp/runs/views/runs_table/regex_edit_dialog_component.ts 2021-12-01 20:39:45.512831971 -0600
@@ -79,6 +79,6 @@
handleFocusOut() {
clearTimeout(this.timeOutId);
- this.timeOutId = setTimeout(this.resetFocus.bind(this), 0);
+ this.timeOutId = window.setTimeout(this.resetFocus.bind(this), 0);
}
}

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