Bug 219239

Summary: textproc/sphinxsearch does not compile
Product: Ports & Packages Reporter: Gerrit Beine <mail+freebsd>
Component: Individual Port(s)Assignee: Matthew Seaman <matthew>
Status: Closed Overcome By Events    
Severity: Affects Only Me CC: olivierw1+bugzilla-freebsd, w.schwarzenfeld
Priority: --- Flags: bugzilla: maintainer-feedback? (matthew)
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Compilation log from poudriere none

Description Gerrit Beine 2017-05-12 14:55:20 UTC
Created attachment 182545 [details]
Compilation log from poudriere

Compilation via poudriere fails with notice of bad C++ code, the same happens on amd64, armv6 and i386.
Comment 1 Matthew Seaman freebsd_committer freebsd_triage 2017-05-12 15:14:12 UTC
Thank you very much for your report.  This seems to be localized in the libstemmer code.  I'll look into it over the weekend, but if you need a quick work-around, disabling the LIBSTEMMER option should get you running at least.
Comment 2 Gerrit Beine 2017-05-12 15:43:42 UTC
(In reply to Matthew Seaman from comment #1)
Thank you very much for your fast reply!
I'll try to compile it without libstemmer.
Comment 3 Walter Schwarzenfeld freebsd_triage 2017-05-12 16:48:38 UTC
Libstemmer is no problem on my system (10.3-amd64). I had to set off re2.
Comment 4 Matthew Seaman freebsd_committer freebsd_triage 2017-05-13 12:47:20 UTC
(In reply to w.schwarzenfeld from comment #3)

Yes, you are correct.  The LIBSTEMMER option has no effect on this problem,
but the RE2 option does.  Turn off RE2 as a work-around.

Now to work out why this is happening:
```
/usr/local/include/re2/re2.h:915:5: error: no matching function for call to 'call_once'
    std::call_once(once_, &LazyRE2::Init, this);
    ^~~~~~~~~~~~~~
/usr/include/c++/v1/mutex:559:1: note: candidate function template not viable: requires 2 arguments, but 3 were provided
call_once(once_flag& __flag, _Callable& __func)
^
/usr/include/c++/v1/mutex:571:1: note: candidate function template not viable: requires 2 arguments, but 3 were provided
call_once(once_flag& __flag, const _Callable& __func)
^
```
Comment 5 Walter Schwarzenfeld freebsd_triage 2017-05-14 11:01:21 UTC
Re2 option compiles with the older revision of devel/re2 (r437439).
Comment 6 Walter Schwarzenfeld freebsd_triage 2017-05-14 11:46:17 UTC
I could compile it with re2 on. If I comment out the whole section
between line 880 and 920 (#ifndef swig <-> #endif) in /usr/local/include/re2/re2.h.
Seem it is need another or additional condition.
Comment 7 commit-hook freebsd_committer freebsd_triage 2017-05-14 20:34:07 UTC
A commit references this bug:

Author: matthew
Date: Sun May 14 20:33:31 UTC 2017
New revision: 440902
URL: https://svnweb.freebsd.org/changeset/ports/440902

Log:
  Pending a better fix, mark broken when the RE2 option is enabled.
  Recent versions of devel/re2 install headers that result in error
  messages like so:

  /usr/local/include/re2/re2.h:915:5: error: no matching function for call to 'call_once'
      std::call_once(once_, &LazyRE2::Init, this);
      ^~~~~~~~~~~~~~

  No change to the default package, so no PORTREVISION bump.

  PR:		219239
  Submitted by:	mail+freebsd@gerritbeine.de, w.schwarzenfeld@utanet.at

Changes:
  head/textproc/sphinxsearch/Makefile
Comment 8 Walter Schwarzenfeld freebsd_triage 2018-01-10 01:57:20 UTC
I think this could be closed. Seems only forgotten to close.
Comment 9 Matthew Seaman freebsd_committer freebsd_triage 2018-01-10 06:20:38 UTC
Agreed.