#43080 closed submission (fixed)
New port for SeqAn applications
Reported by: | tre@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | kurthindenburg (Kurt Hindenburg) | |
Port: | seqan-apps |
Description
Hi,
I would like to add a new port named seqan-apps. As I mentioned in #43072 this is a separation of the applications that were part of the former seqan port. The port now downloads pre-built binaries from our servers for i686 and x86_64 darwin platforms which saves build time and user build requirements (took >30min and >4GB RAM).
Thanks in advance, David
For more information about the seqan port see #43072 and our website http://www.seqan.de
Attachments (4)
Change History (25)
Changed 11 years ago by tre@…
comment:1 Changed 11 years ago by tre@…
Changed 11 years ago by tre@…
Attachment: | Portfile.2 added |
---|
comment:4 follow-up: 5 Changed 11 years ago by mf2k (Frank Schima)
Some comments:
- Macports must build the binary in the Portfile otherwise your binary is not compatible with Macports. If it takes a while, then that is what happens. We can distribute the binary on our buildslaves.
- It is not correct to specify a compiler directly with
configure.compiler
. See this link for more guidance.
comment:5 Changed 11 years ago by david.weese@…
- Macports must build the binary in the Portfile otherwise your binary is not compatible with Macports. If it takes a while, then that is what happens. We can distribute the binary on our buildslaves.
That's ok. I've observed problems on older versions of OS X myself, so I decided to go back to client-side builds, as you can see in Portfile.2
- It is not correct to specify a compiler directly with
configure.compiler
. See this link for more guidance.
The reason why I specified the compiler explicitly was to avoid Clang which misses OpenMP (used by a couple of our apps) and is the default for Mac OS 10.9. The apps would compile without OpenMP on clang as well but silently without multithreading. Hence I chose a g++ compiler.
comment:6 Changed 11 years ago by mf2k (Frank Schima)
That's ok to avoid clang, but please read the link above. You must blacklist clang if the code is broken and does not compile with it. Then it will properly fallback to other compilers as needed depending on the OS version.
Changed 11 years ago by david.weese@…
Attachment: | Portfile.3 added |
---|
comment:7 Changed 11 years ago by david.weese@…
Ok, I just blacklisted clang and removed the license references in the long description, see Portfile.3 above.
comment:8 Changed 11 years ago by david.weese@…
It seems that llvm-gcc-4.2 no longer supports OpenMP on Mac OS 10.9. Is there any possible way use an OpenMP capable compiler there?
comment:9 Changed 11 years ago by mf2k (Frank Schima)
I know next to nothing about OpenMP. Maybe look at the OpenMPI port for guidance? There it blacklists as follows:
# https://trac.macports.org/ticket/39089 compiler.blacklist gcc-4.0 compiler.blacklist-append llvm-gcc-4.2 macports-llvm-gcc-4.2
clang appears to work with OpenMP, can this port's source be fixed to compile with clang? That is the best solution for OS X going forward anyway.
comment:10 Changed 11 years ago by mf2k (Frank Schima)
Cc: | sean@… added |
---|
Cc'ing the maintainer of the OpenMPI port for possible comment. Sean?
comment:11 Changed 11 years ago by david.weese@…
Do you mistake OpenMP with OpenMPI? For multi-core parallelization in the SeqAn our apps need OpenMP which is a C++ language extension supported by the gcc compilers but not clang yet.
SeqAn's apps very well compile with almost any compiler and on any platform but with clang they cannot benefit from multi-threading which is a performance problem when processing biological mass data. A second issue is the coinor-LEMON library I made a portfile for (#43101). LEMON does not compile with clang, only with gcc and we have one app (breakpoint-calculator) depending on LEMON.
What is the problem to have port depending on gcc47 during installation? We didn't encounter any problems with gcc4x neither on Mac OS 10.8 nor 10.9 yet.
comment:12 Changed 11 years ago by mf2k (Frank Schima)
See, I told you I didn't know anything about OpenMP! :)
comment:13 Changed 11 years ago by mf2k (Frank Schima)
Cc: | sean@… removed |
---|---|
Version: | 2.2.1 |
Changed 11 years ago by david.weese@…
Attachment: | Portfile.4 added |
---|
comment:14 Changed 11 years ago by david.weese@…
There are other ports that depend on OpenMP, e.g healpix-cxx. They solved that problem by blacklisting all compilers that currently don't support OpenMP (clang, gcc-apple-4.2 and llvm-gcc-4.2), see http://trac.macports.org/browser/trunk/dports/science/healpix-cxx/Portfile
I integrated this solution and now the seqan-apps compile without any issues and are multithreaded again.
Please tell me what you think about it, David.
comment:18 Changed 10 years ago by kurthindenburg (Kurt Hindenburg)
Resolution: | → fixed |
---|---|
Status: | new → closed |
done r128961
comment:18 Changed 10 years ago by kurthindenburg (Kurt Hindenburg)
Resolution: | → fixed |
---|---|
Status: | new → closed |
done r128961
comment:19 Changed 10 years ago by kurthindenburg (Kurt Hindenburg)
I see 1.4.2 is out - let me know if you want to upgrade to that version.
comment:20 Changed 10 years ago by david.weese@…
Hi,
port:coinor-liblemon is here https://trac.macports.org/ticket/43101, but I cannot see if the coinor port is available now. And yes, 1.4.2 is the final 1.4 release and I'll send an update of portfile later today.
Cheers, Dave
I tested the portfile on an older iMac with Lion and all apps early exited with an "Illegal instruction". So it decided to turn from pre-compilation back to live compilation. Please find my update portfile attached.
The new portfile has a dependency to the Coin-OR::LEMON graph library for which there exists no port yet. So I had to create one, see ticket #43101.
Thanks, David
PS: I have to mention that there is a slight urgency in the seqan and seqan-apps portfiles as the current one (seqan @1.3.1) doesn't compile on Mavericks.