Opened 7 years ago

Closed 6 years ago

Last modified 6 years ago

#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)

Portfile (1.8 KB) - added by tre@… 7 years ago.
Portfile.2 (1.4 KB) - added by tre@… 7 years ago.
Portfile.3 (1.1 KB) - added by david.weese@… 6 years ago.
Portfile.4 (1.5 KB) - added by david.weese@… 6 years ago.

Download all attachments as: .zip

Change History (25)

Changed 7 years ago by tre@…

Attachment: Portfile added

comment:1 Changed 7 years ago by tre@…

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.

Changed 7 years ago by tre@…

Attachment: Portfile.2 added

comment:2 Changed 7 years ago by tre@…

ping

comment:3 in reply to:  2 Changed 6 years ago by tre@…

ping

comment:4 Changed 6 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 in reply to:  4 Changed 6 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 6 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 6 years ago by david.weese@…

Attachment: Portfile.3 added

comment:7 Changed 6 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 6 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 6 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 6 years ago by mf2k (Frank Schima)

Cc: sean@… added

Cc'ing the maintainer of the OpenMPI port for possible comment. Sean?

comment:11 Changed 6 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.

Last edited 6 years ago by david.weese@… (previous) (diff)

comment:12 Changed 6 years ago by mf2k (Frank Schima)

See, I told you I didn't know anything about OpenMP! :)

comment:13 Changed 6 years ago by mf2k (Frank Schima)

Cc: sean@… removed
Version: 2.2.1

Changed 6 years ago by david.weese@…

Attachment: Portfile.4 added

comment:14 Changed 6 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:15 Changed 6 years ago by david.weese@…

Hello? Anyone there?

comment:16 Changed 6 years ago by kurthindenburg (Kurt Hindenburg)

Cc: khindenburg@… added

Cc Me!

comment:17 Changed 6 years ago by kurthindenburg (Kurt Hindenburg)

where's port:coinor-liblemon ?

comment:18 Changed 6 years ago by kurthindenburg (Kurt Hindenburg)

Resolution: fixed
Status: newclosed

done r128961

comment:18 Changed 6 years ago by kurthindenburg (Kurt Hindenburg)

Resolution: fixed
Status: newclosed

done r128961

comment:19 Changed 6 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 6 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

Note: See TracTickets for help on using tickets.