Bug 209366

Summary: biology/ugene: Fix build with libc++ 3.8.0
Product: Ports & Packages Reporter: Dimitry Andric <dim>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Some People CC: h2+fbsdports, junovitch
Priority: --- Flags: bugzilla: maintainer-feedback? (h2+fbsdports)
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Remove -isystem from compile flags to fix build under libc++ 3.8.0 none

Description Dimitry Andric freebsd_committer freebsd_triage 2016-05-07 16:25:41 UTC
Created attachment 170099 [details]
Remove -isystem from compile flags to fix build under libc++ 3.8.0

During the exp-run in bug 208158, it was found that biology/ugene gives errors with libc++ 3.8.0 [1]:

In file included from src/QScoreAdapter.cpp:1:
In file included from src/QScoreAdapter.h:4:
In file included from ../../include/U2Core/MAlignment.h:1:
In file included from ../../include/U2Core/../../corelibs/U2Core/src/datatype/MAlignment.h:25:
In file included from ../../include/U2Core/../../corelibs/U2Core/src/datatype/MAlignmentInfo.h:25:
In file included from /usr/local/include/qt5/QtCore/QString:1:
In file included from /usr/local/include/qt5/QtCore/qstring.h:41:
In file included from /usr/local/include/qt5/QtCore/qchar.h:37:
In file included from /usr/local/include/qt5/QtCore/qglobal.h:39:
/usr/include/c++/v1/cstddef:43:15: fatal error: 'stddef.h' file not found
#include_next <stddef.h>
              ^

This is because the port tries to add /usr/include as a system include directory, using -isystem, and this screws up the order of include directories.  Fix it by patching up a number of .pri files to avoid using the -isystem flag.

[1] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_10h29m48s/logs/errors/ugene-1.22.0.log
Comment 1 Hannes Hauswedell 2016-05-07 17:17:34 UTC
Sure, go ahead!
Comment 2 commit-hook freebsd_committer freebsd_triage 2016-05-07 19:39:34 UTC
A commit references this bug:

Author: dim
Date: Sat May  7 19:38:54 UTC 2016
New revision: 414784
URL: https://svnweb.freebsd.org/changeset/ports/414784

Log:
  During the exp-run in bug 208158, it was found that biology/ugene gives
  errors with libc++ 3.8.0:

  In file included from src/QScoreAdapter.cpp:1:
  In file included from src/QScoreAdapter.h:4:
  In file included from ../../include/U2Core/MAlignment.h:1:
  In file included from ../../include/U2Core/../../corelibs/U2Core/src/datatype/MAlignment.h:25:
  In file included from ../../include/U2Core/../../corelibs/U2Core/src/datatype/MAlignmentInfo.h:25:
  In file included from /usr/local/include/qt5/QtCore/QString:1:
  In file included from /usr/local/include/qt5/QtCore/qstring.h:41:
  In file included from /usr/local/include/qt5/QtCore/qchar.h:37:
  In file included from /usr/local/include/qt5/QtCore/qglobal.h:39:
  /usr/include/c++/v1/cstddef:43:15: fatal error: 'stddef.h' file not found
  #include_next <stddef.h>
                ^

  This is because the port tries to add /usr/include as a system include
  directory, using -isystem, and this screws up the order of include
  directories.  Fix it by patching up a number of .pri files to avoid
  using the -isystem flag.

  Approved by:	h2+fbsdports@fsfe.org (maintainer)
  PR:		209366
  MFH:		2016Q2

Changes:
  head/biology/ugene/Makefile
  head/biology/ugene/files/patch-src_libs__3rdparty_samtools_samtools.pri
  head/biology/ugene/files/patch-src_plugins__3rdparty_variants_variants.pri
  head/biology/ugene/files/patch-src_ugene__globals.pri
Comment 3 Jason Unovitch freebsd_committer freebsd_triage 2016-05-08 01:54:43 UTC
(In reply to Hannes Hauswedell from comment #1)
Should the 1.17.0 -> 1.22.0 update be merged with this? That prior update changed a bunch and just this looks like it will conflict.
Comment 4 Hannes Hauswedell 2016-05-08 12:17:40 UTC
(In reply to Jason Unovitch from comment #3)

Hm, I won't have any time to debug this in the next two weeks, but if you think it can feasibly be combined with an upgrade of the port, please don't hesitate :)