Adds the `gearshifft` package, a benchmark suite for heterogeneous implementations of FFTs.
Adds clFFT, a software library containing FFT functions written in OpenCL.
see: https://github.com/clMathLibraries/clFFT
The vcftools package was installing its Perl libraries into a
directory in the staging directory named 'lib', instead of installing
them into `prefix.lib` where they should have been because the value
passed to the configure script was wrong.
The result was that any attempt to run one of the scripts in the
package failed with something like:
> Can't locate VcfStats.pm in @INC (you may need to install the
> VcfStats module) [...]
This fix provides the correct information in `configure_args`.
Tested lightly on CentOS 7.
* Dataspaces spack package, hard-wired for ubuntu VM
* Initial commit of dataspaces spack package
* Made changes and additions necessary to install on Cori and Titan
* Added temp 1.6.2.1 for testing
* Updated tar file for 1.6.2
* Fixed formatting
* Set the type of build dependencies
* Changed the way autogen.sh is called for compatibility
* Use append instead of extend to add configure flags
* Various syntax fixes
* Switched string checking to method for compatibility
Now using the six library for Python 3 compatibility. Thanks @adamjstewart
* Made MPI variant default
- renamed develop version from 'plus' to 'develop'
- patches now prefixed by corresponding OpenFOAM version number.
This makes it easier to sort and see what old/junk exists.
- remove MPI_BUFFER_SIZEk env variable (for all openfoam variants).
The OpenFOAM shell setup addresses this and there is no reason
to pollute the module environment at this stage.
* sabre initial commit, works but test does not
* removing test until I have time to fix it
* sabre: fixing flake8 errors
* sabre: changing to MakefilePackage
* mpifileutils: update to v0.7
* mpifileutils: disable --enable-experimental in v0.6 and earlier
* mpifileutils: list newest version first, avoid experimental switch unless at v0.7 or later
* * 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
* Add package for primer3
Built and mildly tested on CentOS 7.
* Convert to MakefilePackage
I always forget about this...
* Set build_directory the easy way
Life's not always complicated. Don't go out of my way
to make it so....
* Fix Flake8 issue
* added perl-star-fusion and perl-intervaltree
* added perl-star-fusion and all dependencies
* changes
* made changes as requested to perl-star-fusion dependencies
* changed perl-intervaltree dependency
* changes to star fusion
* now using perl properly
- Thanks to pointer from @adamjstewart - can avoid this either by
avoiding an external mxml dependency, or by making certain that they
both use consistent code generation.
The adios package uses '-fPIC' for python linkage and this seems to
require the same for mxml too. If the adios-internal version of mxml
is used, it has the same flags for both.
- 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).
* Remove unneeded patch lines which fail for the most recent CNTK version on the head of the git repo
* Really check for NVML/GDK
* Fix some violations
* gtkplus: set XDG_DATA_DIRS
* shared-mime-info: database of common MIME types
* gtkplus: needs shared-mime-info for correct handling of stock icons
* shared-mime-info: builds with newer intltool than provided by some platforms
* atk: set XDG_DATA_DIRS at run-time
* gdk-pixbuf: set XDG_DATA_DIRS at run-time
* gtkplus: set XDG_DATA_DIRS at run-time
* pango: set XDG_DATA_DIRS at run-time
* shared-mime-info: set XDG_DATA_DIRS at run-time
* enable some of the tools
do not make zoltan default
* modify moab package
add shared, debug options to cgm, too
build some tools by default (mbsize, mbconvert)
add hdf5, netcdf dependency
add pnetcdf variant (dependency), metis, parmetis, zoltan
add shared, debug, fortran options to moab
* few kinks for moab
zoltan should be built without fortran api, otherwise moab
complains (need to fix)
also, notice that when built with cgm, shared can't find
cgm libraries for the new tools/geometry execs
install in serial for the time being (because of example makefile
duplicate?)
for example, these builds are successful:
spack install moab+mpi+hdf5+zoltan ^mpich@3.2
spack install moab+mpi+hdf5+shared ^mpich@3.2
* force hdf5+mpi if both are specified
also, something like this works:
spack install moab+mpi+hdf5+cgm ^mpich@3.2 ^cgm+oce+mpi ^oce@0.17.2
use mpich32, and cgm built with oce 0.17.2
* forgot about irel, fbigeom, mbcoupler
* add meshkit package
simple build so far, moab and cgm deps only
also, an example of complex build for cgm
spack install moab+mpi+hdf5+cgm+irel+fbigeom ^mpich@3.2 ^cgm+oce+mpi ^oce@0.17.2
* for meshkit, moab needs to have irel, fbigeom
* forgot to self.spec
after building moab with cgm with oce 0.17.2, we can build
meshkit with something like this
spack install meshkit ^moab/tsb75zk
cgm depencency is found out from moab
moab has to be built with irel and fbigeom
* add netgen package and review
do not support yet older versions of meshkit
(which depend on lasso, etc)
add netgen package; tested with meshkit (netgen has to be built without
occ, for meshkit)
We are not enforcing that yet, we may have to test
* use conflicts where needed, suggested by review
remove release candidates
* flake8 alignment errors
* flake8
* reviews
flake8 alignment
explicit options, even for default variants
variant for netgen should be "gui", with the default ~gui (False)
FIXME: with-occ does not work right for netgen ; maybe it should be disabled?
also, with +gui, it should depend on a lot more, like tk, tcl?
* flake8 issues
whitespaces and a comment in netgen
* add more explicit options
--without-mpi needs fixing for cgm, moab and meshkit
add variable url for netgen (although we don''t know if other
versions will appear)
* flake8, trailing whitespace
* ninja-fortran: a Fortran-capable fork of ninja build tool
* Use url_for_version for clarity
* Clean ninja-fortran
* Cleanup in the original ninja package
* added py-tomopy package
* fixed dependencies and added import_modules
* edited deps for tomopy with import_modules and added py-olefile pkg
* changed module name
* changed dependency to python because it will not build with setuptools
* fixed dependency list for py-tomopy and py-dxchange
* added py-nose dependency
* fixed tests
* commented out dependency py-counter
* fixed dependency py-pybtex-docutils
* removed nose as a dependency
* fixed flake8 errors
* fixed import_modules
* fixed import_modules indent
* fixed various issues in tomopy and deps files
- paraview 5.2.1 -> 5.4.0 supports both Qt4 and Qt5, but the assumed
default version changes between versions. So explicitly define
which QT major version is being used.
* Several improvements for the openfoam packages
--
Refactor openfoam packages by adding an OpenfoamArch class
Use separate configure, build, install phases.
Provide FOAM_PROJECT_DIR dependent env for openfoam packages
- easier way to locate
Eliminate intermediate installation directories
- unneeded clutter.
- makes it less than easy to find the etc/bashrc file
Add versioning for all openfoam patches
- no certainty which parts (if any) will be needed in future versions,
especially if we strive to ensure that the upstream version builds
well with spack to begin with.
Support build of develop branches
- helps track build regressions for future openfoam releases
STYLE: use common/ and assets/ to provide additional (build) resources ...
* - adjust OpenFOAM provider
Move openfoam-com up front since this is the one being used as a base
for the others
Added line in package.py to patch using ipopt_ppc_build.patch. The patch simply adds support in config.guess and Ipopt/config.guess to build ipopt on ppc64le.
* adding H5Z-ZFP; updating zfp to use choice variant for bit stream word size
* fixing homepage url
* removed fortran error message...just build fortran if can, otherwise ignore
* Added magma package
* Incorporated Serban's change
* fftw: patch configuration file to remove search for xlc_r compiler
when compiler not gcc
FFTW assumes there are only 2 compilers: gcc and IBM XL. When
building threaded fftw, the configuration file is looking for
the threaded IBM XL's xlc_r compiler when the compiler is not gcc.
The PGI compiler is not gcc.
* Include depends_on for gperf
Sometime around 2.12.2 fontconfig acquired a build-time
dependency on `gperf` (this commit, I think:
59fd9960bbb58fd6257adb13ec0f918882149332).
This adds the dependency.
`gperf` is called in the `src/Makefile`, see line 907 of
`src/Makefile.in`.
* Only depend_on gperf if @2.12.2:
The gperf dependency *seems* to only be required when @2.12.2:.
Earlier releases do not check the arg type of the gperf lookup
function (which requires gperf) and are able to use pre-generated
files so gperf is not required at build time.
* fixes#967
* Version bump to 0.9.1
- Bugfixes for spack find
- 0.9.1 can read specs from current develop.
* Don't assume spack is in the path when building docs.
* fixing Makefile override of PREFIX and install w/gcc-6
* oce changes for cgm
cgm can be configured with oce, but oce needs
to have X11 enabled, because some libraries
(like TKCAF in occ/oce) gets built only of X11 is NOT disabled
so introduce a variant +X11 for oce, which is needed when
configuring cgm with oce(+X11)
* follow up review
simplify by removing the patch and different url paths
use append instead of extend, when necessary
make mpi true by default
X11 dependency is still to be addressed; it pulls in some opengl
library (on laptop nvidia seem to work, on virtual linux machine
mesa was good enough)
- invoke make with the correct TARGET for aarch64
- foforce PILERDRIVER as openblas cannot correctly detect CPU on aarch64
- update url to more recent version
* Fix tpetra-related xsdk errors
Recent changes to the trilinos package broke the xsdk build.
xSDK explicitly disables tpetra, but packages depending on it
(such as ifpack2 and amesos2) are explicitly enabled by default
in the trilinos package. This commit explicitly disables them
within the xsdk package.py.
* Disabled exodus in the xsdk build
See issue #4502 for details
- Introduce an opengl variant that is enabled by default. Disabling it
allows building qt for X forwarding etc.
- Depend on fontconfig and freetype to make use of system fonts.
Otherwise qt can not find any fonts.
- libx11 is required when libxcb is used.
- Set MAKEFLAGS to parallelize qmake compilation.
* Initial version of the namd package
* Modified charm to consider compile against intel/intel-mpi
* Correction of namd to compile with intel-mkl and intel compiler
* Adding inclue64 in the prefix
* adding property for the build directory
* removing useless function build
Fixes#4488. When compiling metis as a shared library, the package
used the syntax `-rpath=`, followed by a path. This syntax is
non-portable, so replace it using Spack's compiler rpath argument
property.
* During install, remove prior unfinished installs
If a user performs an installation which fails, in some cases the
install prefix is still present, and the stage path may also be
present. With this commit, unless the user specifies
'--keep-prefix', installs are guaranteed to begin with a clean
slate. The database is used to decide whether an install finished,
since a database record is not added until the end of the install
process.
* test updates
* repair_partial uses keep_prefix and keep_stage
* use of mock stage object to ensure that stage is destroyed when it should be destroyed (and otherwise not)
* add --restage option to 'install' command; when this option is not set, the default is to reuse a stage if it is found.
* espresso: fixed compilation for 6.1 (elpa) and added support for hdf5
* espresso: addressed items in @davydden review
* espresso: fixed behavior for espresso@:5.4.0
* New Package: lanl-bml
Added LANL's BML library as Spack Package as dependency for future
packages
* Adjusted lanl-bml versions
Specified current master as develop and added v1.1.0 tagged version
* Renamed lanlbml package to bml
* First draft package for mono
Mono's vendor'ed boringssl interacts badly with openssl, so
you need to use `cmake~openssl`.
Left to its own devices, it wants to refer to things in
`/usr/share/.mono`. This doesn't work for installs that don't run as
root, etc... This package includes a variant to redirect those paths
to `prefix.share`.
* Whitespace/Flake8
* Adding Nalu package.
* Fixing flake8 stuff.
* Fixing flake8 stuff.
* Reorganizing trilinos package file a little to make it less verbose.
* Reorganizing trilinos package file for more general use as well as use as a dependency of the Nalu package. Setting fpic as default for yaml-cpp and superlu.
* Explicitly stating fpic variants in dependent packages.
* Updating nalu and trilinos package files with suggested changes.
* Fixing formatting issues. Making suggested changes.
* Fixing formatting.
* Reducing amount of explicit variants in Nalu. Adding suggested changes to Trilinos package file.
* Making suggested changes to Nalu package.
* Turning off superlu-dist variant.
* Cleaning up yaml-cpp file.
* Fixing pnetcdf requirements in trilinos.
* Handle missing defn of __NR_memfd_create
Generally SYS_foo is defined to __NR_foo (in sys/syscall.h) which is
then defined to a syscall number (in asm/unistd_64.h). Certain CentOS
systems have SYS_memfd_create defined to __NR_memfd_create but are
missing the second definition. This is a belt and suspenders solution
to the problem.
See [this post][syscall] for a nice general description of how these
parts fit together.
[syscall]: https://www.uninformativ.de/blog/postings/2017-02-11/0/POSTING-en.html
* Avoid flake8 warning
* postgresql: Fix build with threadsafe and add variant.
* postgresql: Convert Package to AutotoolsPackage.
Also add explicit enable flag for +threadsafe variant.
* Add add'l output formats for graphviz
Add support for additional output formats to graphviz, including gif,
jpg, pdf, and png.
Graphviz calls its pango+cairo option *pangocairo* so I followed suit.
Libgd was missing jpeg/jpg support. None of the other supported
formats are conditionalized and there is no --with/--without support,
so I followed suit.
* Fix ghostscript plugin
When I installed thusly:
spack install graphviz+pangocairo+libgd^cairo+X^pango+X
the ghostscript plugin tripped over some variable names that had
changes in `gs@9.18:`. This fixes them.
* Remove wayward import of tty
* Need to help Makefile.PL find the expat bits
We need to provide Makefile.PL with a clue about where our
expat bits live. We had the dependency, but I suspect
that the lib was actually linking against a system version.
* Use prefix.lib instead of building path myself
Ditto with .include
I've had non-repeatable failures in my CI runs on all three clusters
at the bamutil's step. In each case there are .o or .so files that
are corrupt or truncated.
I suspect that the homebrewed bamutil Makefile scheme doesn't actually
support parallel builds.
* Tighten up graphviz package
The fun started when configure discovered a broken/partial
installation of `swig` in `/usr/local`, then auto-discovered my
system's python and ruby packages.
- SpackException doesn't seem to exist. Convert it to a SpackError
and call `.format(...)` on the error string to fill in the
placeholder.
- Pull swig out of the list of languages. It's something that can be
asked for explicitly and that is needed if *any* of the langagues
are enabled. It's disabled by default.
- Explicitly disable the languages that are in "untested_bindings"
list lest the configure script pick up things from the system.
* Touch up variant description string
* Clean up conditional statement
* Use InstallError, not SpackError
* Drop the swig variant
Get rid of the swig variant and drive that bit based on whether any
languages are enabled.
* Move perl to the untested list
That's not strictly accurate. I tested it and it doesn't work.
There's a missing depends_on(). When you add that you'll discover
that the language binding bit can't find Perl's 'EXTERN.h'. Then
you'll discover that graphviz's `configure` script doesn't have a good
way to include the paths to Perl's bits (looks like I'll have to
gather them for each language and then use them to build `CFLAGS` and
`CXXFLAGS` and `LDFLAGS`). While pondering that, you'll discover that
EXTERN.h is buried down here:
```
opt/spack/linux-centos7-x86_64/gcc-4.8.5/perl-5.24.1-35ejv4426dmzreum4ekdibu3ddmhquvi/lib/5.24.1/x86_64-linux/CORE/EXTERN.h
```
and decide that you wish you had never thought to actually test
`graphviz+perl`.
I could find that directory with a snippet like so:
```
perl -MConfig -e 'print "$Config{archlib}\n"'
```
but at this point I'm much, much further down this rabbit hole then I
ever wanted to go.
* Convince python that tested_bindings is a list
When I removed `+perl` and made `tested_bindings` a list of one
thing, I ended up with this:
```
==> Error: cannot concatenate 'str' and 'tuple' objects
```
* Flake8 cleanup
* Don't convert a string to a string
* rm unused () and clarify variable name
Feedback from @adamjstewart
- Get rid of some unnecessary parens.
- Clearer variable name and use.
* Further cleanup of language enabling loop
Now we don't need that pesky temporary variable.
* Add package for cctools
Add a package for cctools.
Requires the recently submitted "useshrplib" support in Perl (or some
other mechanism to enable -fPIC for perl).
* Delete extraneous import
* Perl's shared variant changed, adapt...
The name of the variant that perl uses to build a shared lib changed and
it now defaults to True. Use the new name and continue to be insistent
about using the shared variant.
* Flake8 cleanup
* Added magma package
* Incorporated Serban's change
* boost-pgi: Add support for PGI compiler
There are two patches required:
(1) general fixes required by PGI
(2) workaround for a bug in PGI 17.4
Conflicts:
var/spack/repos/builtin/packages/boost/package.py
* Add variant to build shared Perl lib
Add a variant that enables Perl's "useshrplib" feature, which builds a
shared perl library.
This addresses problems like so:
```
/usr/bin/ld: /blah/blah/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/perl-5.24.1-y43dp3p5w66v7qh5xkwgufxohyuodyew/lib/5.24.1/x86_64-linux/CORE/libperl.a(op.o): relocation R_X86_64_32S against `PL_opargs' can not be used when making a shared object; recompile with -fPIC
/blah/blah/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/perl-5.24.1-y43dp3p5w66v7qh5xkwgufxohyuodyew/lib/5.24.1/x86_64-linux/CORE/libperl.a: could not read symbols: Bad value
```
It should also address the Intel compiler issue discussed in #3081
while respecting Perl's configuration machinery.
* Rename shared variant and default to True
* Use correct variant to add configure arg
* Restore bits that set ccflags for intel compilers
After some experimentation we've established that setting
the flag to build a shared perl library is tightly tied to
the use of -fPIC.
This commit restores the code that sets ccflags for
intel compilers.
* Flake8 cleanup
See the discussion about installing jar files in #4386.
Also installs a wrapper script that has explicit references to the
prerequisite java exe and to the jar file in it's final resting place.
* Add packages for clustalw and clustalo (and argtable)
Add packages for the classic multiple alignment package, `clustalw`
and its younger sibling, `clustalo`.
`clustalo` needed the `argtable` package (command line arg parsing).
Lightly tested on CentOS 7.
* Remove FIXME (sigh...)
* Add mpi support to R
* Add multiple precision math routines to R
* Updated the URL to match the version
* Remove duplicate packages
* Add packages for r-ergm and it's dependents
* Fixed depends-on types
* Correct flake8 errors
* Correct Build type
* r-factoextra and dependents
* Revert "r-factoextra and dependents"
This reverts commit afbf477fd66e565fd187262c386bcc08c98a4d7e.
* Add only r-factoextra files
* Add a package for Trimmomatic
See the discussion about installing jar files in #4386.
Also installs a wrapper script that has explicit references to the prerequisite java exe and to the jar file in it's final resting place.
* Fix bad format statement
Apparently something like this "blah{}".format(...) works (it's missing
something inside the curly braces) but fails the travis test.
The two given versions of mariadb are not fetchable under the given
URL, probably because older versions are purged and only kept in
an archive.
Add two working, latest revisions of each release line.
Somehow the path to `CMakeLists.txt` via the class property
`root_cmakelists_dir` was relative but is now actually relative
to `spack-build/`.
Close 4324 by providing a path relative to the source repo
of the stage via a method instead of a member variable
* Add package for vcftools@0.1.14
The package munges the various perl scripts so that their sbang lines
point to the depended upon perl (perhaps with Spack sbanger in the
dance) instead of relying on `/usr/bin/env perl`.
As it stands it installs its Perl libraries into `prefix/lib` and then
depends on `setup_environment` to prepend that dir onto PERL5LIB.
See my [vcftools issue
80](https://github.com/vcftools/vcftools/issues/80) for a discussion
about fixing its non-functional attempt at isolating itself from
PERL5LIB shenanigans.
* perl dependency should be build/run
* Ensure Config.pm has correct setting for cc
Run a filter after install so that Config.pm records the compiler that
Spack built the package with. If this isn't done, $Config{cc} will be
set to Spack's cc wrapper script.
* Also patch compilers Config_heavy.pl
This patch sets ld=gcc, which appears to work. I'm not sure if
there's a good way to get at the ld that Spack uses.
* Clean up quoting
* Fix pattern for Config.pm
Does not start at beginning of line...
What the user wants, the user etc....
Add info for STAR@2.4.2a. It's URL looks different, so added a URL for
it. This broke the URL for the current version, so added a URL for it
also (known bug).
*Minimally* tested on CentOS 7.
* python: ensure that distutils sets valid compiler options for RPATH on cray
* python: add cray-rpath patches for python@2.3:3.0.1 and python@3.1:
* python: in patch(..., when="@a:b platform=c"), limit b must be specified
* python: assume that python@4 will break the cray patches
* Fix mummerplot when ^perl@5.20:
Calling defined() on a hash has been deprecated for ages. It became
an error in perl@5.20. If we're building with a perl where it's
illegal, we should fix it.
* Simplify call to filter_file
Treat the first arg to filter_file as a string rather than
a regex, so that we don't have to figure out the escapes.
* Patch mummerplot for *any* perl version.
* Fix bwa url's
Work around varying github URLs.
See #4365 for details.
* Restore main url entry
@adamjstewart pointed out that the package still needs a main url
so that `spack versions` works.
- Add a `spack gpg` subcommand in anticipation of signed binaries.
- GPG keys are stored in var/spack/gpg, and the spack gpg command manages them.
- Docs are included on the command.
* Add info for jdk@7u80 (not downloadable)
Add version info for jdk@7u80. Oracle does't seem to be
distributing it any longer so there's no reasonable URL to
provide, but for those of us who already have the tarball
this is useful.
* Flake8 cleanup
* Add mpi support to R
* Add multiple precision math routines to R
* Updated the URL to match the version
* Remove duplicate packages
* Add packages for r-ergm and it's dependents
* Fixed depends-on types
* Correct flake8 errors
* Correct Build type
* r-adegenet and dependent packages
* fix parser
* Removed xfails
* cleaned up debug print statements
* make use of these changes in gcc
* Added comment explaining unreachable line, line left for added protection
* cairo: ensure that X support is disabled for variant "~X"
* cairo: explicitly enable X support for +X variant
* cairo: prefer "variant in spec" over spec.satisfies(variant)
* Trailing whitespace cleanup
* Handcraft an install process for mummer (grumble)
Mummer punts on an installation step, they just build in and run from
the same directory.
Mummer also has various hardcoded paths built into it that allow it to
find other executables that it needs as well as its Perl library.
This updates the package to deal with this approach.
It patches the Makefile and scripts/Makefile so that the correct info
is fed to sed when it munges the perl scripts.
The install step is now finer grained and puts things where mummer
relatively wants to find them.
* Add perl dependency
* perl should be build/run dependency
* Fix whitespace
* Delete stray u at top of file
Two changes:
- It seems that Illumina version numbers are dotted and that the
dashed version in the 2.18... filename is an anomaly (based on the
names for 2.17.1.14 and 2.19.0). `url_for_version` does the right
thing for 2.18. It will need to be fixed when support for 2.19 is
added. 2.17 is no longer generally available so it gets a pass.
- Add version and hash for 2.17.1.14.
2.17.1.14 is no longer distributed. If you have a copy of the
source tarball, you can drop it into a local mirror w/ the name
mirror/bcl2fastq2/bcl2fastq2-2.17.1.14.zip and go from there.
* Add mpi support to R
* Add multiple precision math routines to R
* Add packages for r-ergm and it's dependents
* Fixed depends-on types
* Correct flake8 errors
* flex: create variant +lex that creates symlinks for lex and libl.{a,so}
* flex: enable variant +lex by default
* flex: use dso_suffix for portability; replace repetitive code with a loop
I need boost@1.54.0 for bcl2fastq2. I tested bcl2fastq2 using the
system compiler (gcc@4.8.5). My full build uses a spack-build
gcc@5.4.0.
boost@1.54.0 won't build. I found the answer
[here](https://github.com/hashdist/hashstack/issues/802) with the
details in [this upstream/boost
ticket](https://svn.boost.org/trac/boost/ticket/10125).
I've confirmed that these combo's build:
boost version| compiler
------------ | ------------------
boost@1.54.0 | gcc@4.8.5 (system)
boost@1.54.0 | gcc@5.4.0 (Spack)
boost@1.64.0 | gcc@5.5.0 (system)
* added openmpi support to meme
* openmpi is a link dependency which leverages r_path
* openmpi support now the default - meme does not have configure argument for mpi - if it's found then it's used
* added serial option and set mpi to not be default
* modified meme
* Add the gnupg package and missing dependencies. Update versions of existing dependencies.
* this ended up in the wrong repo
* put versions back, remove uneeded function
* OK ;)
* autopep8
* typo on npth line
* whitespace
* Add a new package for Open Babel
* Add post-installation tests, stolen from the fine folks at Homebrew
* Add patch to fix Python 3.6 support
* Add a more complete patch to get Python 3.6 support working
* Add patch to convert tabs to spaces in test script
testpdbformat.py contains mixed tabs and spaces
causing the unit tests to fail. With this patch,
all tests pass with flying colors.
* Add v1.1.26 and make crypto a variant
I need 1.1.26 for bcl2fastq2.
I also need to build it without crypto support.
* Initial support for bcl2fastq2
* Clean up commentary, messages, names
No substantial changes intended, just cleanup.
* fix flake8 and extra import
* The masked grammarian strikes again...
* Be normal (messages don't end in periods)
* When +crypto, add --with-crypto
Add `--with-crypto` to configure args when user hasn't explicitly set
`~crypto`.
* self.spec.satisfies is unsatisfying, in is in instead
See #4135, self.spec.satisfies has issues. @adamjstewart suggests
simply using in.
* added albacore package as well as dependency py-ont-fast5-api
* added py-cutadapt and dependency py-xopen
* made more changes to albacore and cutadapt as well as dependencies
* made changes again per @adamjstewart
* fixed by python n00b errors i think
* fixed?
* tw=79
* made changes to py-ont-fast5-api ont-albacore
* removed bad characters
* albacore requires setuptools as build and run dependency
* added vmd
* added back albacore
* removed vmd package
* added meme software
* libz is only needed as link depedency for meme
* added libxml2 libxslt libgcrypt as link dependencies
* added albacore package as well as dependency py-ont-fast5-api
* added py-cutadapt and dependency py-xopen
* made more changes to albacore and cutadapt as well as dependencies
* made changes again per @adamjstewart
* fixed by python n00b errors i think
* fixed?
* tw=79
* made changes to py-ont-fast5-api ont-albacore
* removed bad characters
* py-cdat-lite: a python package for managing and analysing climate science data
* py-cdat-lite: depends on py-numpy
* py-cdat-lite: flake8 compliance
* py-cdat-lite: provide a generic URL where multiple versions are listed
* py-cdat-lite: restrict python versions; python required at run-time
* py-cdat-lite: use URL under pypi.io for consistency with other packages
* py-cdat-lite: add run-time dependency on py-numpy
* Initial attempt at flann packaging.
Python2 somehow works. Python3 does not. Still debugging their
obscure setup.py configuration.
* Flann good enough. Python3 broken but close.
Flake8 checks in place. Unsure about CMAKE_BUILD_TYPE and default
spack behavior.
* spack uses RelWithDebInfo as default build type.
* builds py2/3, but direct site-packages install
* prefix working, empty python install dir
* flann package +python installs correctly
* str format {0} instead of {}
* potential doctest fix
* consistency of build env with PythonPackage
* fix python again, test deptype todo, build type
* potentially enable matlab, untested
* highfive: New package; this is a C++ wrapper for the HDF5 library
The C++ wrapper that is shipped with the HDF5 library has several shortcomings. The highfive library seems to avoid these.
* highfive: Make MPI variant default to true
* enable cuda support for suite-sparse
* do not use spec.satisfies
* cuda restructure, give clearer comment of why
* str format compatibility
* flake8 checks
* adding 0.5.1 and variant for uint8 bit stream word type
* Revisions as per davydden
* fixing style (flake8) issues
* - switched to derive from MakefilePackage
- fixed typo in variant check
- Confirmed installs correctly with bswtuint8 variant
* added build method; changed zfp_incdir to incdir
* * Adding uber fastmath package to support 'spack install fastmath'
* Adding dims variant boxlib to control compile-time spatial dimension count
* Explicitly disabling many parts of moab to get lib to build. Don't need tools yet.
* Add logic to spack/setup-env to not refer to $SYS_TYPE if its not defined.
* adding mesquite package
* * Added Chombo (still working on Fortran name mangling)
* Made mesquite depend on mpi
* Fixed use of boxlib's dims numerical variant
* adding PUMI
* flake8 compliance
* adding phasta
* fixing flake8 issues
* undue $SYS_TYPE protection change
* fixing install step for fastmath uber package; resolve issues requested by adamjstewart in PR
* revisions as per adamjstewart
* re-enabling trilinos and phasta dependencies
* all changes requested modulu values= and assert statement
* fixing cmake_args usage in pumi; fixing lib installs for chombo
* first pass at numerical variant
* fixing dims variant as per @adamjstewart
* fixing func/var name collision
* fixing means of disabling -Werror
* fix name collision for cmake_args var/func
* fixing chombo homepage/url; make FASTMath use chombo#3.2; remove extraneous comment about boxlib dim
* remove dummy fastmath package; switch to @BarrySmith soln for install of dummy bundle
* fix flake8 import os issue
* remove extraneous comment
* adding url for fastmath scidac site
* final fixes as per @adamjstewart
* adding 1 dims option for boxlib
* switching make(all) to gmake(all)
Added DFLAGS to the `make.inc` file being written.
These macros are also added to the language specific variables
like CFLAGS, CXXFLAGS and FCFLAGS. Changed `spec.satisfies('foo')`
with `'foo' in spec` in `intel-mkl`, see #4135. Added a basic
build interface to `intel-mpi`.
* Add GCC 7
* Allow users to build subset of GCC compilers with multi-value variant.
* Add comment explaining what 'all' actually means
* More specific golang support
* Only require Zip when building Java
* Comment out provide directives that don't currently work
* Add Ada support
* Use conflicts directive
* Fix joining of languages
* Need special flag to build jit
* Explicitly declare GNAT download extension
* Import tty, update lib64 to lib
* BRIG and Go are not supported on macOS
* Simplify formatting and imports
* JIT patch required for newer versions as well
* Updating bamtools to include a dependency for zlib.
In a standard compile, bamtools will fail if zlib headers are not installed on the target machine. In order to maintain compatibility with all systems -- and since zlib is included already as a dependency for cmake -- this patch adds zlib as a link dependency for the bamtools package.
* Modified cmake rpath include.
Bamtools has a non-standard library location, so we need to append $prefix/lib/bamtools to the rpath. Not sure there's a better way to do this...
* Fixing syntax error in package.py
Fixed a non-terminated parenthesis on line 46.
* Updated bamtools to be a CMakePackage
Removed extraneous code, and altered the package to extend cmake_args
including the non-standard library location.
* UpRemoving cmake dependency and removing blank line from end of file
* Updates to cmake_args.
Removed the duplicate definition of std_cmake_args in favor of simply overriding the CMAKE_INSTALL_RPATH variable that is provided. This should allow the package to be linked correctly to itself.
python+tk will not build because it depends (indirectly) on python~tk
via libxcb. There are efforts to allow multiple instances of a package
to concretize together but they are ongoing so in the meantime this
comments out the dependencies and adds TODOs
* SV variants are evaluated correctly in `when=` statements fixes#4113
The problem here was tricky:
```python
spec.satisfies(other)
```
changes already the MV variants in others into SV variants (where
necessary) if spec is concrete. If it is not concrete it does
nothing because we may be acting at a pure syntactical level.
When evaluating a `when=` keyword spec is for sure not concrete
as it is in the middle of the concretization process. In this case we
have to trigger manually the substitution in other to not end up
comparing a MV variant "foo=bar" to a SV variant "foo=bar" and having
False in return. Which is wrong.
* sv variants: improved error message for typos in "when=" statements
Modifications:
- added support for multi-valued variants
- refactored code related to variants into variant.py
- added new generic features to AutotoolsPackage that leverage multi-valued variants
- modified openmpi to use new features
- added unit tests for the new semantics
## 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.
* Make dia build w/ Spack's X bits (and misc)
X related
- need to depend on the +X variant of gtkplus
- need to depend on freetype
misc
- fix path to tarball
* Make freetype a "build" dependency
* Freetype is not just a build dep
* ncurses package will build ncurses and ncursesw
* Added libs property to ncurses, added fix for hstr
* flake8 is a harsh mistress
* make libs() more robust
* atop depends on ncurses
* fish depends on ncurses
* libtermkey and nano depend on ncurses
* Adjust url spacing
* Added a patch to the openblas package to change the openmp flag for
icc to qopenmp.
* Fixed a linking problem where when using Intel compilers, it was still
pulling in -lgfortran
* depend on readline, remove hardcoded -ltermcap
Bowtie should use Spack's readline and not explicitly depend on the
system termcap (which, on CentOS, leads to linking against the
system's tinfo library).
* Add depends_on('zlib')
* Add conflict with gcc@6:
Build seems to have trouble with 6's migration to -std=gnu++14.