* 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.