Commit Graph

125 Commits

Author SHA1 Message Date
Michael Kuhn
1f49fb8ceb
python: Add 3.7.7 (#16170) 2020-04-20 15:32:58 -05:00
Adam J. Stewart
284e450c91
Language-specific PIC flags (#15474)
* Language-specific PIC flags

* Add tests for every compiler flag

* Fix bad rebase

* pic_flag -> cxx_pic_flag
2020-04-17 16:28:51 -05:00
Hector
0ebed5a618
fix gdb installation (#15679)
* fix gdb installation

* add reference url
2020-03-26 22:45:47 -05:00
Adam J. Stewart
aa0ab13a73
Python: add 3.8.2 (#15365) 2020-03-05 17:02:13 -06:00
Sajid Ali
c607288a7c
fix env vars before install (#14575) 2020-02-13 20:16:34 -06:00
Dan Lipsa
e22ac814b0
Align default libxml2 settings for gettext and Python (#14795)
Python depends on gettext. Packages that depend on gettext and Python
together will encounter a concretizer bug which incorrectly detects
a constraint conflict. This sets the default value of +libxml2 in
Python to be the same as gettext so that packages which depend on
both (like mesa) can successfully concretize without adding manual
constraints.
2020-02-07 16:55:04 -08:00
Seth R. Johnson
52d1f5b839
Remove python patch for inapplicable versions (#14746)
This patch was merged in to upstream python 3.7 and is fixed in 3.7.6.
2020-02-04 19:32:48 -06:00
Greg Becker
bd60e0f137
fix cycle dependency in libxml+python (#13847)
* fix cycle dependency in libxml+python
* comment why we need these dependencies
2020-01-29 12:39:55 -08:00
Todd Gamblin
4d794d63b5
python: add debug variant to enable pydebug (#14584) 2020-01-21 15:09:41 -08:00
Adam J. Stewart
7a61d1dbd1
Add include/pythonX.Y to CPATH (#14523) 2020-01-16 15:21:14 -06:00
Michael Kuhn
b69cf08cfb python: Add 3.7.6 and 3.7.5 (#14497) 2020-01-15 11:24:48 -06:00
Michael Kuhn
8660b0b5b8 python: Fix post-install script without C++ compiler (#14481) 2020-01-13 20:29:02 -06:00
Adam J. Stewart
5b1297378c
Add Python 3.8.1 (#14484) 2020-01-13 20:27:57 -06:00
Todd Gamblin
4af6303086
copyright: update copyright dates for 2020 (#14328) 2019-12-30 22:36:56 -08:00
Sinan
0d7b9de3be compile python with sqlite loadable extensions (#14132) 2019-12-12 22:58:16 -06:00
Adam J. Stewart
7ec1917d9b
Add try-except for Python installation (#14122) 2019-12-11 20:16:33 -06:00
Massimiliano Culpo
bca59f8d83 Speedup environment activation (#13557)
* Add a transaction around repeated calls to `spec.prefix` in the activation process
* cache the computation of home in the python package to speed up setting deps
* ensure that module-scope variables are only set *once* per module
2019-12-02 14:05:02 -08:00
Greg Becker
a6ea0bbbae
Views: fix python in views when python prefix is under a symlink (#12575)
* Fix python in views when python prefix is under a symlink

* Add todo for future generalization
2019-10-24 16:27:21 -05:00
Adam J. Stewart
526ee113ea
Default to Python 3.7 (#10319)
* Default to Python 3

* Fix build with Intel compilers
2019-10-22 10:22:32 -05:00
Adam J. Stewart
4ab63c17d5
Fix Python 3.8 build on macOS (#13338) 2019-10-21 11:21:47 -05:00
Massimiliano Culpo
9ddc98e46a Separate setting build environment and run environment in packages (#11115)
* Methods setting the environment now do it separately for build and run

Before this commit the `*_environment` methods were setting
modifications to both the build-time and run-time environment
simultaneously. This might cause issues as the two environments
inherently rely on different preconditions:

1. The build-time environment is set before building a package, thus
the package prefix doesn't exist and can't be inspected

2. The run-time environment instead is set assuming the target package
has been already installed

Here we split each of these functions into two: one setting the
build-time environment, one the run-time.

We also adopt a fallback strategy that inspects for old methods and
executes them as before, but prints a deprecation warning to tty. This
permits to port packages to use the new methods in a distributed way,
rather than having to modify all the packages at once.

* Added a test that fails if any package uses the old API

Marked the test xfail for now as we have a lot of packages in that
state.

* Added a test to check that a package modified by a PR is up to date

This test can be used any time we deprecate a method call to ensure
that during the first modification of the package we update also
the deprecated calls.

* Updated documentation
2019-10-17 10:17:21 -07:00
Jeffrey Salmond
e17df2e8f5 add python version 3.8.0 (#13218) 2019-10-16 14:42:36 -07:00
Todd Gamblin
62927654dd checksums: use sha256 checksums everywhere
We'd like to use a consistent checksum scheme everywhere so that we can:

    a) incorporate archive checksums into our specs and have a
       consistent hashing algorithm across all specs.

    b) index mirrors with a consistent type of checksum, and not one that
       is dependent on how spack packages are written.

- [x] convert existing md5, sha224, sha512, sha1 checksums to sha256
2019-10-12 07:19:43 -07:00
Seth R. Johnson
46027bea13 Fix QT4 build for mac (#10944)
This updates the Spack QT package to enable building qt version 4 on
MacOS. 

This includes the following changes to the qt package:

* add version 4.8.7
* add option to build with or without shared libs
* add options to disable tools, ssl, sql, and freetype support
* add qt4-tools patch when building qt@4+tools
* add option to build as a framework (only available on MacOS)
* replace qt4-el-capitan patch with qt4-mac patch (which includes the
  edits from qt4-el-capitan)
* apply qt4-pcre-include-conflict.patch only for version 4.8.6
  (rather than all 4.x versions)
* apply qt4-gcc-and-webkit.patch for 4.x versions before 4.8.7 and
  create a separate qt4-gcc-and-webkit-487.patch for version 4.8.7
* update patch function for qt@4 on MacOS to update configure
  variables relevant to Spack (e.g. PREFIX)
* add option to build freetype with Spack, as a vendored dependency
  of QT, or not at all (default is to build with Spack)

This includes the following edits outside of the qt package:

* Update MacOS version utility function to return all parts of the
  Mac version (rather than just the first two)
* gettext package: implement "libs"
* python package: add gettext as a dependency
2019-08-01 10:22:35 -07:00
Glenn P Johnson
e7d9a6f426 Add conflicts statement for Python-3.6.7+ and Intel compiler
Python-3.6.7 and up do not build with the Intel compiler

- https://bugs.python.org/issue35473
- https://bugs.python.org/issue37415
2019-07-29 14:38:05 -07:00
Seth R. Johnson
95985e0798 Prevent conflicts between libuuid and Apple Cocoa Framework on Mac (#12166)
* Remove libuuid dependency for python on Darwin

Python 2.7 includes Carbon, which requires a proprietary typedef defined in
the system `/usr/include/uuid/uuid.h`:
```
In file included from /rnsdhpc/code/spack/var/spack/stage/python-2.7.16-chgwvgls4ezgujsknn27vlmkhwbzpqik/Python-2.7.16/Python/mactoolboxglue.c:27:
In file included from /rnsdhpc/code/spack/var/spack/stage/python-2.7.16-chgwvgls4ezgujsknn27vlmkhwbzpqik/Python-2.7.16/Include/pymactoolbox.h:10:
In file included from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20:
In file included from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:23:
In file included from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20:
In file included from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:208:
In file included from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/HFSVolumes.h:25:
/usr/include/hfs/hfs_format.h:794:2: error: unknown type name 'uuid_string_t'; did you mean 'io_string_t'?
```

Similarly, even with Python 3, having Spack's libuuid in the toolchain
causes matplotlib to fail to build downstream because its `osx` backend
links against Carbon:
```
building 'matplotlib.backends._macosx' extension
/rnsdhpc/code/spack/lib/spack/env/clang/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include -I/usr/X11/include -I/opt/X11/include -I. -I/rnsdhpc/code/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.1-apple/python-3.7.2-bipx24oyxqxowqc75o5vfih7dljiaohz/include/python3.7m -c src/_macosx.m -o build/temp.macosx-10.14.5-x86_64-3.7/src/_macosx.o
In file included from src/_macosx.m:1:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:87:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSURLError.h:15:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:24:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:208:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/HFSVolumes.h:25:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/hfs/hfs_format.h:794:2: error: unknown type name 'uuid_string_t'; did you mean 'io_string_t'?
        uuid_string_t   ext_jnl_uuid;
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/device/device_types.h:89:33: note: 'io_string_t' declared here
typedef char                    io_string_t[512];
```

MacOS version 10.14.5
Xcode 10.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)

* Mark libuuid as conflicting with Darwin due to framework

If Spack's libuuid is included by any other package that tests for or
requires the Cocoa or Carbon frameworks, the build will *fail* becuse it
appears that Apple's libraries require a special version of libuuid and
uuid.h.

```
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:87:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSURLError.h:15:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:24:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:208:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/HFSVolumes.h:25:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/hfs/hfs_format.h:794:2: error: unknown type name 'uuid_string_t'; did you mean 'io_string_t'?
        uuid_string_t   ext_jnl_uuid;
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/device/device_types.h:89:33: note: 'io_string_t' declared here
typedef char                    io_string_t[512];
```

* Revert "Mark libuuid as conflicting with Darwin due to framework"

This reverts commit 9a68b75202.

* Document libuuid exception in python package
2019-07-28 14:58:09 -05:00
Adam J. Stewart
07fefea52d Add Python 3.7.4 (#12142) 2019-07-26 09:18:46 +02:00
Shane R. Spencer
1b16be538e Added url_for_version to python/package.py (#12040) 2019-07-16 20:50:43 -05:00
Gregory Lee
7c8e9ab406 added tix package and python variant for tix (#11599)
* added tix package and python variant for tix

* addressing tix review requests

* python +tix requires +tkinter
2019-06-06 17:19:24 -04:00
Felix Mayr
c2e280b794 python: add versions 3.7.3, 3.5.7, and 3.4.10 (#11300) 2019-05-02 08:01:30 +09:00
Gregory Lee
10b0251af0 added python 2.7.16 (#10805) 2019-03-06 11:05:32 -08:00
Peter Scheibel
af4a36c4d9
Header subdirectories for Python and Eigen (#10773)
Fixes #10769 

This updates the .headers property to include header subdirectories
for Python and Eigen (as is recommended by these packages).

#10623 updated the default behavior of .headers.directories to
exclude subdirectories (since this can cause clashes with system
headers). This broke some packages which depended on the old behavior
of .headers.directories: for example if you had
<package-prefix>/include/subdir/ex1.h, .headers.directories would
include <package-prefix>/include/subdir.
2019-03-04 12:36:51 -06:00
Adam J. Stewart
b43e8fcaa7
Python: optional dependencies and post-installation tests (#10335)
* Add post-installation tests to Python package

* libbsd does not build on macOS

* Make Python dependencies optional

* Add readline dep, remove ncurses patch, fix autoreconf
2019-02-23 12:36:26 -06:00
Daniel Topa
d9d75635c7 Add Python 3.7.2 updated (#10531)
Also add versions 3.7.1, 3.6.8, 3.6.7, 3.6.6. Does NOT alter preferred version (2.7.15).

Supplants PR 10491 "Add Python 3.7.2" (https://github.com/spack/spack/pull/10491).

Verification builds on LANL Darwin:

**Intel Xeon**
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/general/opt/spack/linux-centos7-x86_64/gcc-4.8.5/python-3.7.2-d3p7vg6w2r563cpmwsmbgjbsiqc4j4fq
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/general/opt/spack/linux-centos7-x86_64/gcc-4.8.5/python-3.7.1-ibom6qj2z64egyaqz5htkwp5tr362il6
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/general/opt/spack/linux-centos7-x86_64/gcc-4.8.5/python-3.6.8-rkifc3c7mjgdglw27upiap767ut4wpkz
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/general/opt/spack/linux-centos7-x86_64/gcc-4.8.5/python-3.6.7-meuesn43twttt756exyzqgdhohjgipjq
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/general/opt/spack/linux-centos7-x86_64/gcc-4.8.5/python-3.6.6-qwnwme7otyuoqqudcglfmfy75t5npywl

**Arm**
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/arm/opt/spack/linux-rhel7-aarch64/gcc-4.8.5/python-3.7.2-qj27kzs4ttdqudm3hsi3pt57kv7lshco
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/arm/opt/spack/linux-rhel7-aarch64/gcc-4.8.5/python-3.7.1-io5eneirgvpegy3tosvp6wq5ndf7yjis
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/arm/opt/spack/linux-rhel7-aarch64/gcc-4.8.5/python-3.6.8-ej3vnvta2hbtrh7p5hokfqkuewxeqgsa
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/arm/opt/spack/linux-rhel7-aarch64/gcc-4.8.5/python-3.6.7-l3qnue72ewppn2wxza3w6l62l7ijlque
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/arm/opt/spack/linux-rhel7-aarch64/gcc-4.8.5/python-3.6.6-b55pdoqsr5bie4k5djd4vokm3nywhm45

**Power9**
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/power9/opt/spack/linux-rhel7-ppc64le/gcc-4.8.5/python-3.7.2-cicayvl7ki4tswoqlljsmcetwqcnoh3x
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/power9/opt/spack/linux-rhel7-ppc64le/gcc-4.8.5/python-3.7.1-7vej3zvnvyj2jvz5lnxhnts3ok2fcxbp
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/power9/opt/spack/linux-rhel7-ppc64le/gcc-4.8.5/python-3.6.8-xijljmdanyrybcx2rv65qshycmbrfv6c
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/power9/opt/spack/linux-rhel7-ppc64le/gcc-4.8.5/python-3.6.7-vqdhzg7c3xxxregqmzxsqqfzxt2hajvq
[+] /scratch/users/dantopa/new-spack/pr.new.python-3.7.2/power9/opt/spack/linux-rhel7-ppc64le/gcc-4.8.5/python-3.6.6-jf4bnsdwk3qjhtmvjjhblnrcz5dztfdq

2019-02-05
Signed-off-by: Daniel Topa <dantopa@lanl.gov>

Signed-off-by: Daniel Topa <dantopa@lanl.gov>
2019-02-06 12:03:25 -06:00
Greg Becker
450b0e3059 Allow combinatorial projections in views (#9679)
Allow customizing views with Spec-formatted directory structure

Allow views to specify projections that are more complicated than
merging every package into a single shared prefix. This will allow
sites to configure a view for the way they want to present packages
to their users; for example this can be used to create a prefix for
each package but omit the DAG hash from the path.

This includes a new YAML format file for specifying the simplified
prefix for a spec in a view. This configuration allows the use of
different prefix formats for different specs (i.e. specs depending
on MPI can include the MPI implementation in the prefix).
Documentation on usage of the view projection configuration is
included.

Depending on the projection configuration, paths are not guaranteed
to be unique and it may not be possible to add multiple installs of
a package to a view.
2019-01-09 17:39:35 -08:00
Todd Gamblin
6f50cd52ed copyright: update license headers for 2013-2019 copyright. 2019-01-01 00:44:28 -08:00
Todd Gamblin
eea786f4e8 relicense: replace LGPL headers with Apache-2.0/MIT SPDX headers
- remove the old LGPL license headers from all files in Spack
- add SPDX headers to all files
  - core and most packages are (Apache-2.0 OR MIT)
  - a very small number of remaining packages are LGPL-2.1-only
2018-10-17 14:42:06 -07:00
Denis Davydov
600acbbe66 python: add details on missing library to error message (#9332)
When a library cannot be found, the exception now includes the name
of the library that was requested.
2018-10-03 19:46:14 -07:00
Sergey Kosukhin
a9c434d7d7 Build Python 3.7 with external libffi. (#9245) 2018-09-14 17:07:13 -07:00
Adam J. Stewart
ccbff6e0cd
Improve spec['python'].command support for bwpy (#9157) 2018-09-10 17:14:57 -05:00
Andreas Baumbach
ead9363bee add patch for gcc@8 for python 2.7.14 (#8990)
* add gcc8 patch for python 2.7.14

Change-Id: I48cb5e717577d8158d1f7f1fe270156a01940d8a

* add explaining comment

Change-Id: Ia46168e2269d7de47d7ec8d0bf9e3b7696ea8e31

* remove unnecessary part of the patch

Change-Id: Iee763effe2439f0f160c1547640eca4bb9451a68
2018-08-16 07:51:09 -05:00
Adam J. Stewart
73c978ddd9 install_tree, copy_tree can install into existing directory structures (#8289)
Replace use of `shutil.copytree` with `copy_tree` and `install_tree` functions in `llnl.util.filesystem`.

- `copy_tree` copies without setting permissions.  It should be used to copy files around in the build directory.
- `install_tree` copies files and sets permissions.  It should be used to copy files into the installation directory.
- `install` and `copy` are analogous single-file functions.
- add more extensive tests for these functions
- update packages to use these functions.
2018-08-15 09:30:09 -07:00
Adam J. Stewart
a0c13229e8
Add Python 3.7.0 (#8619) 2018-06-29 16:25:39 -05:00
scheibelp
3560f6dbe9 views: packages can customize how they're added to views (#7152)
Functional updates:

- `python` now creates a copy of the `python` binaries when it is added
  to a view

- Python extensions (packages which subclass `PythonPackage`) rewrite
  their shebang lines to refer to python in the view

- Python packages in the same namespace will not generate conflicts if
  both have `...lib/site-packages/namespace-example/__init__.py`

  - These `__init__` files will also remain when removing any package in
    the namespace until the last package in the namespace is removed


Generally (Updated 2/16):

- Any package can define `add_files_to_view` to customize how it is added
  to a view (and at the moment custom definitions are included for
  `python` and `PythonPackage`)

  - Likewise any package can define `remove_files_from_view` to customize
    which files are removed (e.g. you don't always want to remove the
    namespace `__init__`)

- Any package can define `view_file_conflicts` to customize what it
  considers a merge conflict

- Global activations are handled like views (where the view root is the
  spec prefix of the extendee)

  - Benefit: filesystem-management aspects of activating extensions are
    now placed in views (e.g. now one can hardlink a global activation)

  - Benefit: overriding `Package.activate` is more straightforward (see
    `Python.activate`)

  - Complication: extension packages which have special-purpose logic
    *only* when activated outside of the extendee prefix must check for
    this in their `add_files_to_view` method (see `PythonPackage`)

- `LinkTree` is refactored to have separate methods for copying a
  directory structure and for copying files (since it was found that
  generally packages may want to alter how files are copied but still
  wanted to copy directories in the same way)


TODOs (updated 2/20):

- [x] additional testing (there is some unit testing added at this point
  but more would be useful)

- [x] refactor or reorganize `LinkTree` methods: currently there is a
  separate set of methods for replicating just the directory structure
  without the files, and a set for replicating everything

- [x] Right now external views (i.e. those not used for global
  activations) call `view.add_extension`, but global activations do not
  to avoid some extra work that goes into maintaining external views. I'm
  not sure if addressing that needs to be done here but I'd like to
  clarify it in the comments (UPDATE: for now I have added a TODO and in
  my opinion this can be merged now and the refactor handled later)

- [x] Several method descriptions (e.g. for `Package.activate`) are out
  of date and reference a distinction between global activations and
  views, they need to be updated

- [x] Update aspell package activations
2018-06-26 16:14:05 -07:00
Michael Kuhn
8af37d5d64 python: Update to 2.7.15 (#8306)
2.7.14 does not compile with GCC 8, see https://bugs.python.org/issue33374.
2018-05-29 10:28:32 -05:00
Todd Gamblin
f202198777 Convert lazy singleton functions to Singleton object
- simplify the singleton pattern across the codebase
- reduce lines of code needed for crufty initialization
- reduce functions that need to mess with a global

- Singletons whose semantics changed:
  - spack.store.store() -> spack.store
  - spack.repo.path() -> spack.repo.path
  - spack.config.config() -> spack.config.config
  - spack.caches.fetch_cache() -> spack.caches.fetch_cache
  - spack.caches.misc_cache() -> spack.caches.misc_cache
2018-05-17 14:10:30 -07:00
Todd Gamblin
6f2cac9565 init: initialize spack.store lazily
- spack.store was previously initialized at the spack.store module level,
  but this means the store has to be initialized on every spack call.

- this moves the state in spack.store to a singleton so that the store is
  only initialized when needed.
2018-05-17 14:10:30 -07:00
Todd Gamblin
a4d276fbe4 init: factor paths out of spack/__init__.py and into spack.paths module 2018-05-17 14:10:30 -07:00
Elizabeth Fischer
cbd77e3a8d make symlinking python3->python optional (#7960)
* Make symlinking python3->python optional
* Added reference to PEP 394
2018-05-02 12:26:30 -07:00
Adam J. Stewart
bde69177be Don't prepend Tcl/Python to PATH if in system directory (#7677) 2018-04-05 14:39:05 -07:00