Bug 229260

Summary: devel/qt5-core: fails (configure) when using LOCALBASE != /usr/local
Product: Ports & Packages Reporter: John Hein <jcfyecrayz>
Component: Individual Port(s)Assignee: freebsd-kde (group) <kde>
Status: Closed FIXED    
Severity: Affects Some People CC: jcfyecrayz, tcberner
Priority: --- Flags: tcberner: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   

Description John Hein 2018-06-23 21:31:27 UTC
If you build with LOCALBASE != /usr/local, devel/qt5-core (and probably other qt ports) fails to configure:

 .
 .
  Using system PCRE2 ..................... no
 .
 .
Project ERROR: Library 'pcre2' is not defined.
*** Error code 3

Stop.
make: stopped in /usr/ports/devel/qt5-core


If you change the references in <LOCALBASE>/lib/qt5/mkspecs/freebsd-clang/qmake.conf that contain the hard-coded /usr/local to the value of the non-default LOCALBASE, then the configure is able to find pcre2.  For example:

--- mkspecs/freebsd-clang/qmake.conf.orig   2018-06-19 23:00:56.000000000 -0600
+++ mkspecs/freebsd-clang/qmake.conf
@@ -8,8 +8,8 @@
 include(../common/bsd/bsd.conf)

 # Addon software goes into /usr/local on FreeBSD, by default we will look there
-QMAKE_INCDIR_POST       = /usr/local/include
-QMAKE_LIBDIR_POST       = /usr/local/lib
+QMAKE_INCDIR_POST       = /opt/pcre2/include
+QMAKE_LIBDIR_POST       = /opt/pcre2/lib

 QMAKE_LFLAGS_NOUNDEF    = -Wl,--no-undefined


I'm sure that's not the only way to address the problem.  Note that that qmake.conf file is owned by the devel/qt5-qmake port, of course, not devel/qt5-core.
Comment 1 John Hein 2018-06-23 21:33:53 UTC
I didn't mean to include 'pcre2' in the path in the patch in the previous comment.

--- mkspecs/freebsd-clang/qmake.conf.orig   2018-06-19 23:00:56.000000000 -0600
+++ mkspecs/freebsd-clang/qmake.conf
@@ -8,8 +8,8 @@
 include(../common/bsd/bsd.conf)

 # Addon software goes into /usr/local on FreeBSD, by default we will look there
-QMAKE_INCDIR_POST       = /usr/local/include
-QMAKE_LIBDIR_POST       = /usr/local/lib
+QMAKE_INCDIR_POST       = /opt/include
+QMAKE_LIBDIR_POST       = /opt/lib

 QMAKE_LFLAGS_NOUNDEF    = -Wl,--no-undefined
Comment 2 Tobias C. Berner freebsd_committer freebsd_triage 2019-03-30 20:18:13 UTC
Hi John

What's the status of this now, is it still failing?


mfg Tobias
Comment 3 John Hein 2019-04-03 15:16:33 UTC
Yes, it still fails the same way.
Comment 4 commit-hook freebsd_committer freebsd_triage 2019-04-06 15:21:55 UTC
A commit references this bug:

Author: tcberner
Date: Sat Apr  6 15:21:42 UTC 2019
New revision: 498144
URL: https://svnweb.freebsd.org/changeset/ports/498144

Log:
  devel/qt5-qmake: override hardocded value of localbase with ${LOCALBASE}

  - The qmake.conf shipped with Qt5 sets /usr/local by default. This patch
    replaces that string with the value of ${LOCALBASE} to ease use with
    different prefixes.

  PR:		229260

Changes:
  head/Mk/Uses/qt-dist.mk
  head/devel/qt5/files/extrapatch-mkspecs_freebsd-clang_qmake.conf
Comment 5 Tobias C. Berner freebsd_committer freebsd_triage 2019-04-06 15:23:02 UTC
I don't quite get how you even get to try building Qt5 with non standard prefix as quite a few of the dependencies already do not support it. 

However, Qt5 is now patched to sed in the value of ${LOCALBASE} when building qt-base. This hopefully should get you further.