Commit Graph

37 Commits

Author SHA1 Message Date
Matthias Diener
b25187bfa6 Scotch: update package (#8711) 2018-07-15 15:54:28 -05:00
Matthias Diener
2cf9c7955c Scotch: fix compilation of 6.0.5a (#8704)
Prevent this error:

metis_graph_part.c:301:7: error: non-void function 'METIS_PartGraphVKway' should return a value
      [-Wreturn-type]
2018-07-13 15:51:04 -05:00
Oliver Pola
cd860d7554 new version scotch@6.0.5a (#8254)
* new version scotch@6.0.5a

* patch metis headers on scotch@6.0.4 according to https://gforge.inria.fr/tracker/?func=detail&atid=1082&aid=19521&group_id=248
2018-06-08 08:39:03 -05:00
Todd Gamblin
54f97d1dec
Update copyright on LLNL files for 2018. (#7592) 2018-03-24 12:13:52 -07:00
lpoirel
9d2fce4544 scotch%intel: remove restrict (#7148)
The restrict compilation option with icc causes deadlock when multithreading is used. This issue has already been reported to the Scotch development team, but for current versions it is more reliable not to use the restrict compilation option.
2018-03-21 14:22:50 -05:00
alalazo
e72b69732e Changed keyword argument 'recurse' to 'recursive' 2018-02-13 02:18:28 -08:00
Todd Gamblin
05fa302655
Replace github.com/llnl/spack with github.com/spack/spack (#6142)
We moved to a new GitHub org! Now make the code and docs reflect that.
2017-11-04 17:08:04 -07:00
Michael Kuhn
84ae7872d3 Update copyright notices for 2017 (#5295) 2017-09-06 17:44:16 -10:00
Massimiliano Culpo
9be294de31 Changed every 'fpic' variant to 'pic' (#4969)
* Changed every 'fpic' variant to 'pic'. fixes #2463

Every variant that activates compilation of position independent code
has been changed to 'pic'. Hardcoded compiler flags in packages have
been substituted with `self.compiler.pic_flag`.

* Changed literal uses of '-fpic' to 'self.compiler.pic_flag'
2017-08-04 18:21:43 +02:00
Darach Golden
6550aeeafc Requested changes related to mumps compilation (#4614)
*  * add mpii* wrappers for use with intel compilers

 * in mumps package, scotch is compiled without metis option when
   ptscotch variant is selected. This removes confusion over which
   metis.h to use

 * for intel mkl, add SPACK_COMPILER_EXTRA_RPATHS ending in 'intel64'

 * scotch lib requires libz when compression is turned on.  This
   caused a link issue on some Ubuntu distributions (not
   redhat). Change Scotch package to add -lz when needed

*  * intel-mkl append to SPACK_COMPILER_EXTRA_RPATHS rather than setting

 * use more concise method to obtain libz libraries for scotch

* remove changes to intel mpi

* remove commented out depends_on

* fix flake8 errors
2017-06-28 13:22:18 -05:00
Mark Olesen
767cdf98d3 Cleanup some depends_on flex for scotch and things depending on scotch (#4600) (#4601)
- The buggy flex-2.6.2 was blacklisted in the corresponding flex
  package, but now also removed the md5sum to avoid suggesting that
  this version should be revived.
  The 2.6.3 has similar problems (at least for scotch), but 2.6.4
  seems to work.

- Rejig flex restriction for scotch to exclude 2.6.2-2.6.3 only. Since
  flex-2.6.4 appears to be okay again, we can remove the flex version
  restriction that trickled through into the openfoam packages as a
  consequent of an spack spec bug.

- Make flex a build dependency for the openfoam packages
  (seems to have been an earlier oversight).
2017-06-26 09:58:02 -05:00
Adam J. Stewart
e5ce7b1639 Allow arbitrary Prefix attributes (#4591)
* Allow arbitrary Prefix attributes
* Test attribute type as well

* Flake8 fixes

* Remove __new__ method

* Fewer uses of join_path in the docs
2017-06-24 22:39:31 -07:00
Todd Gamblin
cac4362f64 Make LICENSE recognizable by GitHub. (#4598) 2017-06-24 22:22:55 -07:00
Massimiliano Culpo
59b66b0d27 mumps: fixed compilation issues due to scotch not found at link time (#4567) 2017-06-21 11:36:18 -05:00
Adam J. Stewart
ce3ab503de Python command, libraries, and headers (#3367)
## Motivation

Python installations are both important and unfortunately inconsistent. Depending on the Python version, OS, and the strength of the Earth's magnetic field when it was installed, the name of the Python executable, directory containing its libraries, library names, and the directory containing its headers can vary drastically. 

I originally got into this mess with #3274, where I discovered that Boost could not be built with Python 3 because the executable is called `python3` and we were telling it to use `python`. I got deeper into this mess when I started hacking on #3140, where I discovered just how difficult it is to find the location and name of the Python libraries and headers.

Currently, half of the packages that depend on Python and need to know this information jump through hoops to determine the correct information. The other half are hard-coded to use `python`, `spec['python'].prefix.lib`, and `spec['python'].prefix.include`. Obviously, none of these packages would work for Python 3, and there's no reason to duplicate the effort. The Python package itself should contain all of the information necessary to use it properly. This is in line with the recent work by @alalazo and @davydden with respect to `spec['blas'].libs` and friends.

## Prefix

For most packages in Spack, we assume that the installation directory is `spec['python'].prefix`. This generally works for anything installed with Spack, but gets complicated when we include external packages. Python is a commonly used external package (it needs to be installed just to run Spack). If it was installed with Homebrew, `which python` would return `/usr/local/bin/python`, and most users would erroneously assume that `/usr/local` is the installation directory. If you peruse through #2173, you'll immediately see why this is not the case. Homebrew actually installs Python in `/usr/local/Cellar/python/2.7.12_2` and symlinks the executable to `/usr/local/bin/python`. `PYTHONHOME` (and presumably most things that need to know where Python is installed) needs to be set to the actual installation directory, not `/usr/local`.

Normally I would say, "sounds like user error, make sure to use the real installation directory in your `packages.yaml`". But I think we can make a special case for Python. That's what we decided in #2173 anyway. If we change our minds, I would be more than happy to simplify things.

To solve this problem, I created a `spec['python'].home` attribute that works the same way as `spec['python'].prefix` but queries Python to figure out where it was actually installed. @tgamblin Is there any way to overwrite `spec['python'].prefix`? I think it's currently immutable.

## Command

In general, Python 2 comes with both `python` and `python2` commands, while Python 3 only comes with a `python3` command. But this is up to the OS developers. For example, `/usr/bin/python` on Gentoo is actually Python 3. Worse yet, if someone is using an externally installed Python, all 3 commands may exist in the same directory! Here's what I'm thinking:

If the spec is for Python 3, try searching for the `python3` command.
If the spec is for Python 2, try searching for the `python2` command.
If neither are found, try searching for the `python` command.

## Libraries

Spack installs Python libraries in `spec['python'].prefix.lib`. Except on openSUSE 13, where it installs to `spec['python'].prefix.lib64` (see #2295 and #2253). On my CentOS 6 machine, the Python libraries are installed in `/usr/lib64`. Both need to work.

The libraries themselves change name depending on OS and Python version. For Python 2.7 on macOS, I'm seeing:
```
lib/libpython2.7.dylib
```
For Python 3.6 on CentOS 6, I'm seeing:
```
lib/libpython3.so
lib/libpython3.6m.so.1.0
lib/libpython3.6m.so -> lib/libpython3.6m.so.1.0
```
Notice the `m` after the version number. Yeah, that's a thing.

## Headers

In Python 2.7, I'm seeing:
```
include/python2.7/pyconfig.h
```
In Python 3.6, I'm seeing:
```
include/python3.6m/pyconfig.h
```
It looks like all Python 3 installations have this `m`. Tested with Python 3.2 and 3.6 on macOS and CentOS 6

Spack has really nice support for libraries (`find_libraries` and `LibraryList`), but nothing for headers. Fixed.
2017-04-29 17:24:13 -07:00
Adam J. Stewart
50df071ad9 Overhaul Spack's URL parsing (#2972)
* Remove fake URLs from Spack

* Ignore long lines for URLs that start with ftp:

* Preliminary changes to version regexes

* New redesign of version regexes

* Allow letters in version-only

* Fix detection of versions that end in Final

* Rearrange a few regexes and add examples

* Add tests for common download repositories

* Add test cases for common tarball naming schemes

* Finalize version regexes

* spack url test -> spack url summary

* Clean up comments

* Rearrange suffix checks

* Use query strings for name detection

* Remove no longer necessary url_for_version functions

* Strip off extraneous information after package name

* Add one more test

* Dot in square brackets does not need to be escaped

* Move renaming outside of parse_name_offset

* Fix versions for a couple more packages

* Fix flake8 and doc tests

* Correctly parse Python, Lua, and Bio++ package names

* Use effective URLs for mfem

* Add checksummed version to mitos

* Remove url_for_version from STAR-CCM+ package

* Revert changes to version numbers with underscores and dashes

* Fix name detection for tbb

* Correctly parse Ruby gems

* Reverted mfem back to shortened URLs.

* Updated instructions for better security

* Remove preferred=True from newest version

* Add tests for new `spack url list` flags

* Add tests for strip_name_suffixes

* Add unit tests for version separators

* Fix bugs related to parseable name but in parseable version

* Remove dead code, update docstring

* Ignore 'binary' at end of version string

* Remove platform from version

* Flip libedit version numbers

* Re-support weird NCO alpha/beta versions

* Rebase and remove one new fake URL

* Add / to beginning of regex to avoid picking up similarly named packages

* Ignore weird tar versions

* Fix bug in url parse --spider when no versions found

* Less strict version matching for spack versions

* Don't rename Python packages

* Be a little more selective, version must begin with a digit

* Re-add fake URLs

* Fix up several other packages

* Ignore more file endings

* Add parsing support for Miniconda

* Update tab completion

* XFAILS are now PASSES for 2 web tests
2017-04-03 15:34:16 -07:00
Mark Olesen
1c73f9d92f ENH: add int64 variant to scotch (as per metis +int64) (#3536)
BUG: provide patch for scotch 6.0.4 if building non-threaded

- corresponds to issue #20179 from the scotch issue trackter
2017-03-27 07:48:14 -05:00
Pramod Kumbhar
f86dcd8b4c Fix scotch build on bg-q (#3196)
* Fix build issue #3190 on bg-q :
 - disable parallel build as it produces weired linker errors
   in cross compiling environment
 - update ldflags for bg-q as per Makefile provided Makefile.inc.ppca2_ibm_bgq
* Added note about -lpthread vs -pthread
2017-02-22 11:04:14 -08:00
Adam J. Stewart
36072c4776 [HACK] Make concretization great again! (#2590)
* Always default to +mpi

* Always default to ~X
2016-12-16 10:49:02 -08:00
Stephen McDowell
3887d9b2bc Scotch 6.0.4 is available. (#2552)
Source project page states [6.0.4 is latest stable](http://scotch.gforge.inria.fr/)
2016-12-10 16:23:03 -08:00
Adam J. Stewart
ed8060abe0 Scotch fails to build with latest flex (#2523) 2016-12-08 09:37:18 -08:00
Denis Davydov
b47bd9cc00 scotch: fix compilation on macOS (#2326) 2016-11-26 16:48:50 -08:00
Todd Gamblin
240f1fd223 Spack packages now PEP8 compliant. 2016-08-10 16:33:39 -07:00
Ben Boeckel
6fd45520da deptypes: mark deptypes in packages 2016-07-14 16:21:46 -04:00
Nicolas Richart
4122ecbc80 First try at OpenFOAM-extend 2016-05-30 16:49:25 +02:00
Nicolas Richart
2e77cc635e missing @ in version definition 2016-05-20 00:51:58 +02:00
Nicolas Richart
a233ed2de7 changes scotch package to make he coverage test pass 2016-05-20 00:42:34 +02:00
Nicolas Richart
a51566ec6e changes to simplify the esmumps variant for version < 6.0.0 + typos corrections, according to the remarks on PR #979 2016-05-20 00:31:12 +02:00
Nicolas Richart
1bf306bbbd Adding +metis variant to scotch + minor changes 2016-05-19 17:26:44 +02:00
Joseph Ciurej
761c5c8450 Added line limit exemptions for 'variant' and 'version' directives.
Updated the 'scotch' package to use oneline 'variant' directives.
2016-05-16 12:14:57 -07:00
Joseph Ciurej
52c8bedb9c Updated style checking to ignore refinition errors for '@when' fxns.
Updated the Scotch package to conform to PEP8 standards and to test style checking improvements.
2016-05-16 11:09:44 -07:00
Todd Gamblin
e7ced54369 Correct LLNL LGPL license template for clarity. 2016-05-11 21:22:25 -07:00
Joseph Ciurej
ceab445b9f Integrated improvements from PR #893 to remove hardcoded MPI path. 2016-05-09 14:39:42 -07:00
Joseph Ciurej
88d2f6b83a Enabled the '+esmumps' variant for 'scotch@:6.0.0'.
Added support for 'scotch@6.0.0'.
2016-05-09 14:19:42 -07:00
Joseph Ciurej
7e6be184bc Updated and fixed the Scotch package.
- Fixed a bug that was causing shared library usage to fail when linking with another application.
- Updated the repository URL to allow for more general version downloading.
- Added installation support for version 5.1.10b.
- Cleaned up the installation file to make it a bit easier to follow and modify.
2016-05-09 14:19:42 -07:00
Todd Gamblin
c65fd3a289 Merge branch 'develop' into mplegendre-multi_pkgsrc_roots
Conflicts:
	lib/spack/spack/cmd/create.py
	lib/spack/spack/cmd/extensions.py
	lib/spack/spack/cmd/fetch.py
	lib/spack/spack/cmd/uninstall.py
	lib/spack/spack/config.py
	lib/spack/spack/database.py
	lib/spack/spack/directory_layout.py
	lib/spack/spack/packages.py
	lib/spack/spack/spec.py
2015-12-25 16:35:55 -08:00
Todd Gamblin
89d5127900 New, cleaner package repository structure.
Package repositories now look like this:

    top-level-dir/
        repo.yaml
        packages/
            libelf/
                package.py
            mpich/
                package.py
            ...

This leaves room at the top level for additional metadata, source,
per-repo configs, indexes, etc., and it makes it easy to see that
something is a spack repo (just look for repo.yaml and packages).
2015-11-26 14:19:27 -08:00