closes#5506
The application of patches to upstream executables has been reworked
according to the suggestions of the main developer in #5506. In
particular we are not maintaining a dictionary that maps plumed
versions to the versions of patchable executables, and we are using a
non-interactive command to patch applications.
All the comments on substituting plumed at run-time do not apply here,
since we use RPATH and we want to maintain a 1:1 relationship between
the DAG hash and the plumed library used.
* Add package for aspell and ass't dictionaries
Add a package definition for aspell.
Add a handful of dictionaries to convince myself that the support for
a bunch of dictionaries works.
* Flake8 cleanup
* Use six's version of urlparse
`urlparse` is not python3 friendly. This works around it (stolen from
`.../cmd/md5.py`).
* Fix incorrect trimming regexp
* Clean up dictionary build
- more parsimonious use of `which` (`make()` has already been made)
- use `sh` instead of `bash`
* Use a helper method to generate info for variants
I figured out my issues with static methods. I *think* that it this
is pythonic.
* Convert aspell to an extendable package
Convert aspell to be extendable and rework the dictionaries to be
extensions.
As it stands, there's a great deal of cut and paste in the
dictionaries, I'll abstract that out next.
The {de,}activate methods copy a great deal of code out of
package.py. Perhaps there's a better way....
* Create AspellDictPackage and use it for the dictionaries
Reduce the repeated code, pull it into a base class.
I'm confused about why 'from spack import *' wasn't more useful in the
base class.
* Oops, -de & -es should be AspellDictPackages too
* Typo: pakcage -> package
* Address some commentary
* Update copyright dates, 2016->2017
* spec and spec.package.spec can refer to different objects in the
database. When these two instances of spec differ in terms of
the value of the 'concrete' property, Spec._mark_concrete can
fail when checking Spec.package.installed (which requires
package.spec to be concrete). This skips the check for
spec.package.installed when _mark_concrete is called with
'True' (in other words, when the database is marking all specs
as being concrete).
* add test to confirm this fixes#5293
This is a simple package that drops their shell wrapper into
prefix.bin and their jar files into prefix.lib.
The approach comes from the picard package.
* Updating ag to the latest version
* Pretty by request
* Restore url to previous value
There *is* an https version available, but I've also been told
to not just update the url when adding new version. I'm following
the latter advice and trusting security to the digest.
* Adding maven v3.5.0
Updating package file to include later version of maven but still signifying a preference for the older
* removing specific preference flag
* ncl: Fix temp directory
Currently, ncl is configured using a transient temp directory. This
leads to warnings such as this when executing ncl later on:
warning:"/tmp/ncl_ncar_xxxxxx" tmp dir does not exist or is not writable:
NCL functionality may be limited -- check TMPDIR environment variable
As this also breaks some functionality, use the system temp directory
instead (typically /tmp).
* ncl: Depend on esmf
esmf is required for some ncl scripts (such as ESMF_regridding.ncl).
* Add link dependency on xproto to xau
The libxcb build was failing like so:
```
1 error found in build log:
[ ... ]
131 checking whether to build developer documentation... yes
132 checking for doxygen... /usr/bin/doxygen
133 checking for dot... /usr/bin/dot
134 checking for CHECK... no
135 checking for XCBPROTO... yes
136 checking for NEEDED... no
>> 137 configure: error: Package requirements (pthread-stubs xau >= 0.99.2) were not met:
138
139 Package 'xproto', required by 'xau', not found
140
141 Consider adjusting the PKG_CONFIG_PATH environment variable if you
142 installed software in a non-standard prefix.
143
```
This adds a link dependency on libxproto that allows the libxcb build to
succeed.
* Change more build deps to build, link
These were also necessary for emacs+X to build.
* Fix flake8 complaint
* edits to address issues where spack concretization attempts to set properties on already-installed specs
* most added checks only need to check if the spec is concrete; they dont also need to check if the package is installed
* add test to ensure that patches are not applied to an installed spec
* add test to ensure that an error is detected when a dependent requests a dependency constraint which conflicts with a requested installed dependency
Fixes#5455
All methods within setup_package use an EnvironmentModifications object
to control the environment. Those modifications are applied at the end
of setup_package. Module loads for the build environment need to be
done after the rest of the environment modifications are applied, as
otherwise Spack may unset variables set by those modules (for example
LD_LIBRARY_PATH).