From b984adb386e1feeeeb00b60ce69da58f583c7a73 Mon Sep 17 00:00:00 2001 From: George Hartzell Date: Mon, 7 Jan 2019 09:30:59 -0800 Subject: bowtie: new versions and %gcc@8.0.0: fix (#10232) * bowtie: new versions and %gcc@8.0.0: fix Bowtie development shifted from Sourceforge to GitHub. This commit adds several versions from GitHub, using the archive tarballs. Note that the URL for 1.2.2 tarball is actually an '_p1' tag.... It leaves the old 1.2 release download info in place. Versions 1.2.0 and newer come from GitHub (I'm unsure if the 1.2 and 1.2.0 are equivalent). Include a fix that enables %gcc@8.0.0: from: https://github.com/BenLangmead/bowtie/issues/87 But, v1.2.2 has trouble with "newer" gcc's, so it only adds v1.2.2 for %gcc@6.0.0:. Feel free to tighten this. I know that: - 1.2 -> 1.2.2 work with %gcc@5.5.0; - 1.2 -> 1.2.1.1 work with %gcc@8.2.0; and - 1.2.2 fails with %gcc@8.2.0 * Tighten to `conflicts('%gcc@8:', when='@1.2.2')` * Point 1.2.2 and 1.2.2_p1 at the 1.2.2_p1 tarball --- .../repos/builtin/packages/bowtie/issue-87.patch | 22 +++++++++++++++ var/spack/repos/builtin/packages/bowtie/package.py | 31 +++++++++++++++++++--- 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 var/spack/repos/builtin/packages/bowtie/issue-87.patch diff --git a/var/spack/repos/builtin/packages/bowtie/issue-87.patch b/var/spack/repos/builtin/packages/bowtie/issue-87.patch new file mode 100644 index 0000000000..de19e42a84 --- /dev/null +++ b/var/spack/repos/builtin/packages/bowtie/issue-87.patch @@ -0,0 +1,22 @@ +From 58c6ac97b1938909881877ef83167f5eff0e8ab1 Mon Sep 17 00:00:00 2001 +From: Rone Charles +Date: Tue, 4 Sep 2018 21:06:39 -0400 +Subject: [PATCH] Fix isa return type + +--- + ebwt.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ebwt.h b/ebwt.h +index fe6300cc..8f886b8d 100644 +--- a/ebwt.h ++++ b/ebwt.h +@@ -862,7 +862,7 @@ class Ebwt { + TIndexOffU* ftab() const { return _ftab; } + TIndexOffU* eftab() const { return _eftab; } + TIndexOffU* offs() const { return _offs; } +- uint32_t* isa() const { return _isa; } /* check */ ++ TIndexOffU* isa() const { return _isa; } /* check */ + TIndexOffU* plen() const { return _plen; } + TIndexOffU* rstarts() const { return _rstarts; } + uint8_t* ebwt() const { return _ebwt; } diff --git a/var/spack/repos/builtin/packages/bowtie/package.py b/var/spack/repos/builtin/packages/bowtie/package.py index a7f547ce24..021b50c477 100644 --- a/var/spack/repos/builtin/packages/bowtie/package.py +++ b/var/spack/repos/builtin/packages/bowtie/package.py @@ -11,14 +11,39 @@ class Bowtie(MakefilePackage): for short DNA sequences (reads) from next-gen sequencers.""" homepage = "https://sourceforge.net/projects/bowtie-bio/" - url = "https://downloads.sourceforge.net/project/bowtie-bio/bowtie/1.2.0/bowtie-1.2-source.zip" - - version('1.2', '6d97f0ea1a65af11d17cc270cfac4af9') + url = "https://github.com/BenLangmead/bowtie/archive/v1.2.0.tar.gz" + + # The bowtie project git tagged and GitHub released a v1.2.2, + # discovered/fixed a bug, git tagged a v1.2.2_p1 and moved the + # 1.2.2 release to use it rather than making a new `1.2.2_p1` + # release. + # + # We point both of the Spack versions at the same tarball so they + # build the binaries that are on the release page as v1.2.2 + version('1.2.2_p1', sha256='e1b02b2e77a0d44a3dd411209fa1f44f0c4ee304ef5cc83f098275085740d5a1') + version('1.2.2', sha256='e1b02b2e77a0d44a3dd411209fa1f44f0c4ee304ef5cc83f098275085740d5a1', url="https://github.com/BenLangmead/bowtie/archive/v1.2.2_p1.tar.gz") + version('1.2.1.1', sha256='1b38408b88f61d18d7ff28b2470a8cfeefccb3fc59fd46e4cc62e23874e52c20') + version('1.2.1', sha256='b2a7c8c879cb08f00a82665bee43e1d4861de44a87912c54d168e44c90869728') + version('1.2.0', sha256='dc4e7951b8eca56ce7714c47fd4e84f72badd5312ee9546c912af1963570f894') + # Keeping the old 1.2 version around for reproducibility, it's not + # clearly identical to 1.2.0. + version('1.2', md5='6d97f0ea1a65af11d17cc270cfac4af9', url='https://downloads.sourceforge.net/project/bowtie-bio/bowtie/1.2.0/bowtie-1.2-source.zip') + + # Feel free to tighten this. I know that v1.2.2 (aka v1.2.2_p1) + # builds with %gcc@5.5.5 and fails to build with %gcc@8.2.0. I'm + # not sure whether or not it works with other versions in the + # interval. + conflicts('%gcc@8:', when='@1.2.2:') variant('tbb', default=False, description='Use Intel thread building block') depends_on('tbb', when='+tbb') + # See: https://github.com/BenLangmead/bowtie/issues/87, a + # different fix is in the FreeBSD ports/package tree + # https://svnweb.freebsd.org/ports?view=revision&revision=483954 + patch('issue-87.patch', when='%gcc@8.0.0:') + def edit(self, spec, prefix): makefile = FileFilter('Makefile') makefile.filter('CC = .*', 'CC = ' + env['CC']) -- cgit v1.2.3-70-g09d2