Bug 222222

Summary: lang/phantomjs: fails to build ICU 59.1 (2 ports skipped
Product: Ports & Packages Reporter: Jan Beich <jbeich>
Component: Individual Port(s)Assignee: Jan Beich <jbeich>
Status: Closed FIXED    
Severity: Affects Only Me CC: feld, freebsd-2024
Priority: --- Keywords: needs-patch
Version: LatestFlags: bugzilla: maintainer-feedback? (feld)
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 218788    

Description Jan Beich freebsd_committer freebsd_triage 2017-09-11 12:35:43 UTC
Running configuration tests...
The ICU library support cannot be enabled.
 Turn on verbose messaging (-v) to /wrkdirs/usr/ports/lang/phantomjs/work/phantomjs-2.1.1/src/qt/qtbase/configure to see the final report.
 If you believe this message is in error you may use the continue
 switch (-continue) to /wrkdirs/usr/ports/lang/phantomjs/work/phantomjs-2.1.1/src/qt/qtbase/configure to continue.

ERROR: Failed to build PhantomJS! Configuration of Qt Base failed.

http://package23.nyi.freebsd.org/data/103i386-default-PR218788/2017-05-17_09h18m57s/logs/errors/phantomjs-2.1.1_1.log
Comment 1 Jan Beich freebsd_committer freebsd_triage 2017-09-11 18:01:12 UTC
Looks like another case of -std=c++11 being passed only during build but not during configure.
Comment 2 commit-hook freebsd_committer freebsd_triage 2017-09-11 18:06:34 UTC
A commit references this bug:

Author: jbeich
Date: Mon Sep 11 18:06:04 UTC 2017
New revision: 449662
URL: https://svnweb.freebsd.org/changeset/ports/449662

Log:
  lang/phantomjs: unbreak with ICU >= 59

  Running configuration tests...
  The ICU library support cannot be enabled.

  PR:		222222

Changes:
  head/lang/phantomjs/Makefile
Comment 3 commit-hook freebsd_committer freebsd_triage 2017-09-12 13:02:29 UTC
A commit references this bug:

Author: jbeich
Date: Tue Sep 12 13:01:24 UTC 2017
New revision: 449685
URL: https://svnweb.freebsd.org/changeset/ports/449685

Log:
  Back out C++11 changes for ICU >= 59

  r449608, r449609, r449610, r449611, r449612, r449613, r449614,
  r449621, r449661, r449662 are reverted. ICU will pull char16_t typedef
  in C++98 mode instead.

  Pointy hat to:	jbeich
  PR:		218788 222222 222225

Changes:
  head/databases/evolution-data-server/Makefile
  head/devel/icu-le-hb/Makefile
  head/devel/pecl-intl/Makefile
  head/devel/php70-intl/Makefile
  head/devel/php71-intl/Makefile
  head/devel/py-pyicu/Makefile
  head/emulators/open-vm-tools/Makefile
  head/lang/phantomjs/Makefile
  head/misc/sword/Makefile
  head/print/texlive-base/Makefile
  head/www/cppcms/Makefile
Comment 4 Jan Beich freebsd_committer freebsd_triage 2017-09-12 14:39:35 UTC
Wasn't enough to unbreak with ICU 59.1: http://sprunge.us/HIPR
Comment 5 commit-hook freebsd_committer freebsd_triage 2017-09-12 14:40:57 UTC
A commit references this bug:

Author: jbeich
Date: Tue Sep 12 14:39:53 UTC 2017
New revision: 449690
URL: https://svnweb.freebsd.org/changeset/ports/449690

Log:
  lang/phantomjs: unbreak with ICU 59.1

  API/JSStringRef.cpp:40:12: error: no matching function for call to 'create'
      return OpaqueJSString::create(chars, numChars).leakRef();
             ^~~~~~~~~~~~~~~~~~~~~~
  API/OpaqueJSString.h:44:39: note: candidate function not viable: no known conversion from 'const JSChar *' (aka 'const unsigned short *') to 'const LChar *' (aka 'const unsigned char *') for 1st argument
      static PassRefPtr<OpaqueJSString> create(const LChar* characters, unsigned length)
                                        ^
  API/OpaqueJSString.h:49:39: note: candidate function not viable: no known conversion from 'const JSChar *' (aka 'const unsigned short *') to 'const UChar *' (aka 'const char16_t *') for 1st argument
      static PassRefPtr<OpaqueJSString> create(const UChar* characters, unsigned length)
                                        ^
  API/OpaqueJSString.h:39:39: note: candidate function not viable: requires 0 arguments, but 2 were provided
      static PassRefPtr<OpaqueJSString> create() // null
                                        ^
  API/OpaqueJSString.h:54:57: note: candidate function not viable: requires 1 argument, but 2 were provided
      JS_EXPORT_PRIVATE static PassRefPtr<OpaqueJSString> create(const String&);
                                                          ^
  API/JSStringRef.cpp:65:35: error: no matching function for call to 'createWithoutCopying'
      return OpaqueJSString::create(StringImpl::createWithoutCopying(chars, numChars, WTF::DoesNotHaveTerminatingNullCharacter)).leakRef();
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ../WTF/wtf/text/StringImpl.h:431:57: note: candidate function not viable: no known conversion from 'const JSChar *' (aka 'const unsigned short *') to 'const UChar *' (aka 'const char16_t *') for 1st argument
      WTF_EXPORT_STRING_API static PassRefPtr<StringImpl> createWithoutCopying(const UChar* characters, unsigned length, HasTerminatingNullCharacter);
                                                          ^
  ../WTF/wtf/text/StringImpl.h:432:57: note: candidate function not viable: no known conversion from 'const JSChar *' (aka 'const unsigned short *') to 'const LChar *' (aka 'const unsigned char *') for 1st argument
      WTF_EXPORT_STRING_API static PassRefPtr<StringImpl> createWithoutCopying(const LChar* characters, unsigned length, HasTerminatingNullCharacter);
                                                          ^
  API/JSStringRef.cpp:86:12: error: cannot initialize return object of type 'const JSChar *' (aka 'const unsigned short *') with an rvalue of type 'const UChar *' (aka 'const char16_t *')
      return string->characters();
             ^~~~~~~~~~~~~~~~~~~~

  PR:		222222
  Obtained from:	upstream (WebKit, rebased)

Changes:
  head/lang/phantomjs/Makefile
  head/lang/phantomjs/files/patch-icu59
Comment 6 Mikhail T. 2017-09-27 19:45:29 UTC
Why is phantomjs building its own webkit instead of using the version from an already existing port?