primer3: move to github, add 2.5.0, fix 2.3.7 (#15958)

* primer3: move to github, add 2.5.0, fix 2.3.7

- The Primer3 project moved to GitHub.

  - update the URL
  - compare the tarballs 2.3.7 from Sourceforge and github, no
    significant differences (e.g. the Sourceforge tarball contained a
    couple of "tmp" files).
  - update the signature for the 2.3.7 tarball.

- @2.3.7 doesn't build with gcc@8.4.0, there's a dubious pointer/int
  comparison that causes an error.  It was fixed upstream in newer
  versions, apply simple patch to this version so that it continues to
  be build-able with newer compilers.  See:

  - https://github.com/primer3-org/primer3/issues/2
  - https://github.com/primer3-org/primer3/issues/3

- Add info for @2.5.0, which builds cleanly.

* Flake8 cleanup
This commit is contained in:
George Hartzell 2020-04-09 09:53:34 -07:00 committed by GitHub
parent 05a80523c8
commit 1b2638c9b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12,13 +12,25 @@ class Primer3(MakefilePackage):
ubiquitous tool in genetics and molecular biology. Primer3
can also design hybridization probes and sequencing primers."""
homepage = "http://primer3.sourceforge.net/"
url = "https://sourceforge.net/projects/primer3/files/primer3/2.3.7/primer3-2.3.7.tar.gz/download"
homepage = "https://primer3.org/"
url = "https://github.com/primer3-org/primer3/archive/v2.3.7.tar.gz"
version('2.3.7', sha256='9e37a301d2ca9e5034c9a9d4afcb3e90041f6cc44c658b63598d0ccfcb176e5e')
version('2.5.0', sha256='7581e2fa3228ef0ee1ffa427b2aa0a18fc635d561208327471daf59d1b804da0')
version('2.3.7', sha256='f7ac3e64dc89b7c80882bf0f52c2c0a58572f5fdafd178680d4a7ae91b6c465b')
build_directory = 'src'
# Prior to May 15, 2018, the code contained invalid pointer/int
# comparisons, leading to compilers that default to strict mode
# failing to compile thal.c.
# This prevents building 2.3.7 w/ gcc@8.4.0. Details here:
# https://github.com/primer3-org/primer3/issues/2
# https://github.com/primer3-org/primer3/issues/3
def patch(self):
if self.spec.version == Version('2.3.7'):
filter_file(r'^(CC_OPTS.*)', r'\1 -fpermissive',
join_path('src', 'Makefile'))
def install(self, spec, prefix):
with working_dir(self.build_directory):
mkdirp(prefix.bin)