Bug 225682 - [maintainer-update] biology/seqan and biology/seqan-apps
Summary: [maintainer-update] biology/seqan and biology/seqan-apps
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Yuri Victorovich
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-05 13:58 UTC by Hannes Hauswedell
Modified: 2018-03-10 06:22 UTC (History)
1 user (show)

See Also:


Attachments
update for biology/seqan (28.56 KB, patch)
2018-02-05 13:58 UTC, Hannes Hauswedell
no flags Details | Diff
update for biology/seqan-apps (2.40 KB, patch)
2018-02-05 13:58 UTC, Hannes Hauswedell
no flags Details | Diff
Updated patch: biology/seqan (90.00 KB, patch)
2018-02-11 10:23 UTC, Yuri Victorovich
no flags Details | Diff
Updated patch: biology/seqan-apps (2.60 KB, patch)
2018-02-11 10:26 UTC, Yuri Victorovich
no flags Details | Diff
update for biology/seqan-apps (2.92 KB, patch)
2018-02-14 17:12 UTC, Hannes Hauswedell
h2+fbsdports: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Hannes Hauswedell 2018-02-05 13:58:10 UTC
Created attachment 190337 [details]
update for biology/seqan

* update both ports to 2.4.0
* add OPTIMIZED_CFLAGS option to biology/seqan-apps
* move a section of the biology/seqan-apps/Makefile  around to satisfy portlint
* remove BROKEN_* from biology/seqan-apps/Makefile because upstream now claims support for these architectures

biology/seqan:

root@celegans /usr/ports/biology/seqan # portlint
looks fine.
root@celegans /usr/ports/biology/seqan # make check-plist
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for items in pkg-plist which are not in STAGEDIR
===> No pkg-plist issues found (check-plist)
root@celegans /usr/ports/biology/seqan # make stage-qa
====> Running Q/A tests (stage-qa)
/!\ To run stage-qa automatically add DEVELOPER=yes to your environment /!\


biology/seqan-apps:

root@celegans /usr/ports/biology/seqan-apps # portlint
looks fine.
root@celegans /usr/ports/biology/seqan-apps # make check-plist
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for items in pkg-plist which are not in STAGEDIR
===> No pkg-plist issues found (check-plist)
root@celegans /usr/ports/biology/seqan-apps # make stage-qa
====> Running Q/A tests (stage-qa)
/!\ To run stage-qa automatically add DEVELOPER=yes to your environment /!\
root@celegans /usr/ports/biology/seqan-apps #
Comment 1 Hannes Hauswedell 2018-02-05 13:58:39 UTC
Created attachment 190338 [details]
update for biology/seqan-apps
Comment 2 Yuri Victorovich freebsd_committer 2018-02-11 10:23:58 UTC
Created attachment 190502 [details]
Updated patch: biology/seqan
Comment 3 Yuri Victorovich freebsd_committer 2018-02-11 10:26:34 UTC
Created attachment 190503 [details]
Updated patch: biology/seqan-apps

I updated patches.
Particularly, USE_GCC isn't needed.
AVX2/ARCH_AVX512_xxx should be added too.
Comment 4 Hannes Hauswedell 2018-02-11 10:40:28 UTC
> I updated patches.

Thanks!

> Particularly, USE_GCC isn't needed.

Because base compiler and most others are now c++14 safe?

> AVX2/ARCH_AVX512_xxx should be added too.

Sure, I can do that.

Should the options be named as the extension? I noticed you renamed it from OPTIMIZED_CFLAGS. Doesn't that mean that people who have a custom make.conf with OPTIMIZED_CFLAGS set don't get the optimizations by default? But maybe they would have SSE4 set then, as well. (I have been using only packages for years now)

Actually, I thought about making the SSE4 option on by default since I guess >90% of amd64 platforms have SSE4 nowadays, or not? Or would flavors make sense here?
Comment 5 Yuri Victorovich freebsd_committer 2018-02-11 10:46:25 UTC
(In reply to Hannes Hauswedell from comment #4)

> Thanks!

You're welcome! Thank you for submitting the patches!

> Doesn't that mean that people who have a custom make.conf with OPTIMIZED_CFLAGS

SIMD aren't optimization options. They are separate. SIMD can be or not be optimized. The effect is speeding it up, but they are different. People shouldn't have SIMD options in /etc/make.conf

> I thought about making the SSE4 option on by default

This is a bad idea. SIMD is poorly supported on FreeBSD. SSE2 is a base level.

> > AVX2/ARCH_AVX512_xxx should be added too.
> Sure, I can do that.

This would be great!

Thank you,
Yuri
Comment 6 Yuri Victorovich freebsd_committer 2018-02-11 11:18:50 UTC
(In reply to Hannes Hauswedell from comment #4)

> Because base compiler and most others are now c++14 safe?

I think so. Also, we only need it to work on 10/11/12, I verified and it works on these systems. So c++14-lang isn't practically important.

---

What I also don't understand is why USES=compiler:openmp always switches to gcc. clang does support OpenMP. And clang also builds seqan-apps fine. But USES=compiler:openmp here is fine.
Comment 7 Hannes Hauswedell 2018-02-11 11:50:08 UTC
> People shouldn't have SIMD options in /etc/make.conf

Why not? SIMD options get activated by -march=native and quite a few people set that... 

> This is a bad idea. SIMD is poorly supported on FreeBSD. SSE2 is a base level.

In what regard is SIMD poorly supported? I have been using SSE4 and all my benchmarks say that it actually works quite well.

(questions just out of curiosity, I am fine with leaving it turned off, because of older CPUs)


> I think so. Also, we only need it to work on 10/11/12, I verified and it works on these systems. So c++14-lang isn't practically important.

While hopefully not common: this will break now if someone hardcodes their Ports-compiler to be gcc48 (independent of FreeBSD version), because the port no longer know that it doesn't work with pre-c++14 compilers.

> What I also don't understand is why USES=compiler:openmp always switches to gcc. clang does support OpenMP. And clang also builds seqan-apps fine. But USES=compiler:openmp here is fine.

The base clang does not come with OpenMP libraries unfortunately. Base-clang + devel/openmp works, ports-clang>=3.9 work and all the GCCs work. But I don't know how the ports system decides between these options.

[note that seqan-apps actually does compile without openmp, but it then creates binaries without multi-threading which renders the apps more or less useless, because they usually work on large scientific datasets]
Comment 8 Yuri Victorovich freebsd_committer 2018-02-11 18:04:26 UTC
(In reply to Hannes Hauswedell from comment #7)

> > People shouldn't have SIMD options in /etc/make.conf
> Why not? SIMD options get activated by -march=native and quite a few people set that... 

> In what regard is SIMD poorly supported?

Setting SIMD options in /etc/make.conf is a hack.

Currently the right way is to have port options in every package that depends on SIMD optimizations. Users who need SIMD should have those options set locally, and rebuild relevant packages.

Ideally, port/packaging system should support SIMD. You should set the SIMD level as a global setting, and pkg should install/update with package options/flavors set to that SIMD. But this isn't implemented yet.

> The base clang does not come with OpenMP libraries unfortunately. Base-clang + devel/openmp works

I was just wondering why doesn't USES=compiler:openmp use clang+libimp. Instead it just switches to gcc.

> While hopefully not common: this will break now if someone hardcodes their Ports-compiler to be gcc48 (independent of FreeBSD version), because the port no longer know that it doesn't work with pre-c++14 compilers.

This is not supported. Such people should upgrade gcc or use clang.
Comment 9 Hannes Hauswedell 2018-02-14 17:12:33 UTC
Created attachment 190628 [details]
update for biology/seqan-apps

I have updated the patch to include an option for AVX2 and for native builds. I don't think AVX512 is optimised enough on any of the apps, yet, to provide a benefit and people can just chose NATIVE to get it. (And I didn't want to add three xtra options that no-one uses ;-) ).
Comment 10 Hannes Hauswedell 2018-02-26 17:28:06 UTC
*polite ping*
Comment 11 Yuri Victorovich freebsd_committer 2018-02-26 17:51:14 UTC
(In reply to Hannes Hauswedell from comment #10)

Hi Hannes,

I will look at this today.

Thanks for reminding!
Yuri
Comment 12 Hannes Hauswedell 2018-03-09 17:45:25 UTC
friendly reminder :)
Comment 13 Yuri Victorovich freebsd_committer 2018-03-10 06:21:43 UTC
Sorry for the delay.

Committed.
Thank you for the update!
Comment 14 commit-hook freebsd_committer 2018-03-10 06:22:17 UTC
A commit references this bug:

Author: yuri
Date: Sat Mar 10 06:21:38 UTC 2018
New revision: 464043
URL: https://svnweb.freebsd.org/changeset/ports/464043

Log:
  biology/seqan-apps, biology/seqan: Update to 2.4.0

  Port changes for biology/seqan-apps:
  * Changed to DISTVERSION
  * Updated COMMENT
  * Added USES=compiler:openmp
  * Removed BROKEN_xx (upstream now claims support for these architectures)
  * Removed USE_GCC
  * Added SSE4/AVX2/NATIVE SIMD options

  Port changes for biology/seqan:
  * Changed to DISTVERSION
  * Added NO_ARCH
  * Added PORTDOCS=*
  * Updated do-install

  PR:		225682
  Submitted by:	Hannes Hauswedell <h2+fbsdports@fsfe.org> (maintainer)
  Approved by:	tcberner (mentor, implicit)

Changes:
  head/biology/seqan/Makefile
  head/biology/seqan/distinfo
  head/biology/seqan/pkg-descr
  head/biology/seqan/pkg-plist
  head/biology/seqan-apps/Makefile
  head/biology/seqan-apps/distinfo
  head/biology/seqan-apps/pkg-plist