Bug 224419 - biology/hmmer: fails to build on various non-x86 architectures
Summary: biology/hmmer: fails to build on various non-x86 architectures
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jan Beich
URL:
Keywords: patch, patch-ready
Depends on:
Blocks:
 
Reported: 2017-12-18 04:42 UTC by Mark Linimon
Modified: 2018-07-11 15:33 UTC (History)
2 users (show)

See Also:
mzaki: maintainer-feedback-


Attachments
v0 (2.27 KB, patch)
2017-12-18 05:48 UTC, Jan Beich
jbeich: maintainer-approval? (mzaki)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Linimon freebsd_committer freebsd_triage 2017-12-18 04:42:50 UTC
e.g.:

http://thunderx1.nyi.freebsd.org/data/head-arm64-default/p454157_s325785/logs/errors/hmmer-3.1b2.log

Similar failures are observed on locally-built armv6 packages.
Comment 1 Bugzilla Automation freebsd_committer freebsd_triage 2017-12-18 04:42:50 UTC
Maintainer informed via mail
Comment 2 Jan Beich freebsd_committer freebsd_triage 2017-12-18 05:48:43 UTC
Created attachment 188922 [details]
v0

There're a few issues:
- FreeBSD unlike Linux targets i486 on x86 by default thus has no SSE2
- non-x86 archs install include/impl_dummy.h, not include/impl_sse.h

Build logs:
- 10.3 amd64:   https://clbin.com/YgGLf
- 10.3 i386:    https://clbin.com/vMVUt
- 10.4 amd64:   https://clbin.com/FcyuP
- 10.4 i386:    https://clbin.com/zVFv4
- 11.1 aarch64: https://clbin.com/YGtSo
- 11.1 amd64:   https://clbin.com/Zz4Bc
- 11.1 armv6:   https://clbin.com/73e3X
- 11.1 i386:    https://clbin.com/uLgyY (SSE2 by default via custom CPUTYPE)
- 11.1 mips64:  https://clbin.com/bfvS6
- 12.0 aarch64: https://clbin.com/k2feN
- 12.0 amd64:   https://clbin.com/ROhCL
- 12.0 armv6:   https://clbin.com/eKV1w
- 12.0 armv7:   https://clbin.com/NDfs7
- 12.0 i386:    https://clbin.com/mnMO7
Comment 3 Jan Beich freebsd_committer freebsd_triage 2017-12-18 05:50:13 UTC
Mark, can you check ALTIVEC=on builds on powerpc* ? I mainly test non-x86 via poudriere + qemu-user-static.
Comment 4 Jan Beich freebsd_committer freebsd_triage 2017-12-18 05:54:37 UTC
(In reply to Jan Beich from comment #2)
> - 11.1 i386:    https://clbin.com/uLgyY (SSE2 by default via custom CPUTYPE)

That was a typo. I only test custom CPUTYPE on 12.0 i386.
Comment 5 Jan Beich freebsd_committer freebsd_triage 2017-12-18 06:50:15 UTC
(In reply to Mark Linimon from comment #0)
> e.g.:

In future, please, provide an excerpt of the error message in addition to links. Build logs on *.freebsd.org machines tend to disappear over the years.

=======================<phase: package        >============================
===>  Building package for hmmer-3.1b2
pkg-static: Unable to access file /wrkdirs/usr/ports/biology/hmmer/work/stage/usr/local/include/impl_sse.h:No such file or directory
*** Error code 1

> Similar failures are observed on locally-built armv6 packages.

armv6 is represented on https://pkg-status.freebsd.org/ For example:

http://beefy7.nyi.freebsd.org/data/latest-per-pkg/hmmer/3.1b2/head-mips-default.log
http://beefy13.nyi.freebsd.org/data/latest-per-pkg/hmmer/3.1b2/head-mips64-default.log
http://beefy8.nyi.freebsd.org/data/latest-per-pkg/hmmer/3.1b2/head-armv6-default.log
Comment 6 Jan Beich freebsd_committer freebsd_triage 2017-12-18 06:56:46 UTC
Motomichi, can you review and/or approve the fix as maintainer? Did I miss something?
Comment 7 Motomichi Matsuzaki 2017-12-18 09:21:04 UTC
(In reply to Jan Beich from comment #6)

The patch seems OK, but
* Now files/patch-configure is needless
* The document says, "The dummy implementation is two orders of magnitude slower.
It will enable you to see H3’s scientific features on a much wider range of processors, but is not suited for real production work."
The configure script also emits "WARNING: We will compile the "dummy", a portable ANSI C reference implementation. It is slow, about 100x slower than real H3, and is NOT intended for production use! It only intended to show the basics of how HMMER3 works, portably."
The users (especially package users) should be warned so, in the case that the Dummy code is used for building.
This is absolutely required because i386 packages from 3.0_1 (Revision 383013) were built with SSE2 implementation. When i386 users update HMMER with pkg or the distributed package, they will be forced to downgrade to useless binary (see Makefile comments in the previous revisions). 
https://svnweb.freebsd.org/ports/head/biology/hmmer/Makefile?revision=383013
Comment 8 Motomichi Matsuzaki 2018-07-11 11:10:09 UTC
The upstream dropped "dummy" implementation in release 3.2
https://github.com/EddyRivasLab/hmmer/blob/master/release-notes/RELEASE-3.2.1

HMMER now strictly requires SSE2 or Altivec instructions,
so I believe this PR should be closed.

The update to the current release 3.2.1 is submitted as bug #229693
Comment 9 Walter Schwarzenfeld freebsd_triage 2018-07-11 15:33:22 UTC
Seems fixed with ports r474455. Close here with overcome by events.