git: f83fa7a95730 - main - devel/qbs: Fix build on i386 [1]

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Thu, 21 Aug 2025 00:12:54 UTC
The branch main has been updated by jhale:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f83fa7a95730725b45fa878a125762747be9c06c

commit f83fa7a95730725b45fa878a125762747be9c06c
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2025-08-21 00:06:27 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2025-08-21 00:12:45 +0000

    devel/qbs: Fix build on i386 [1]
    
    In file included from /wrkdirs/usr/ports/devel/qbs/work/qbs-src-3.0.1/src/lib/corelib/api/internaljobs.cpp:52:
    In file included from /wrkdirs/usr/ports/devel/qbs/work/qbs-src-3.0.1/src/lib/corelib/language/scriptengine.h:52:
    /wrkdirs/usr/ports/devel/qbs/work/qbs-src-3.0.1/src/lib/corelib/tools/scripttools.h:193:47: error:
    member reference base type 'const JSValue' (aka 'const unsigned long long') is not a structure or union
      193 |     operator bool() const { return m_exception.tag != JS_TAG_UNINITIALIZED; }
          |                                    ~~~~~~~~~~~^~~~
    
    Add upstream patch to support -STABLE and -CURRENT.
    
    Reported by:    pkg-fallout [1]
---
 devel/qbs/Makefile                                 |  1 +
 .../files/patch-share_qbs_modules_cpp_freebsd.js   | 22 ++++++++++++++++++++++
 .../files/patch-src_app_qbs-setup-qt_setupqt.cpp   |  4 ++--
 .../patch-src_lib_corelib_tools_scripttools.h      | 20 ++++++++++++++++++++
 4 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/devel/qbs/Makefile b/devel/qbs/Makefile
index 982246a8eacb..4bf89ff0500d 100644
--- a/devel/qbs/Makefile
+++ b/devel/qbs/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	qbs
 DISTVERSIONPREFIX=	src-
 DISTVERSION=	3.0.1
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	QT/official_releases/${PORTNAME}/${PORTVERSION}
 DIST_SUBDIR=	KDE/Qt/qbs
diff --git a/devel/qbs/files/patch-share_qbs_modules_cpp_freebsd.js b/devel/qbs/files/patch-share_qbs_modules_cpp_freebsd.js
new file mode 100644
index 000000000000..8cc059c53135
--- /dev/null
+++ b/devel/qbs/files/patch-share_qbs_modules_cpp_freebsd.js
@@ -0,0 +1,22 @@
+freebsd: fix support for STABLE and CURRENT releases
+
+https://code.qt.io/cgit/qbs/qbs.git/commit/?h=3.0&id=a0dfa99c6071fede3be6522102818839a7f8365a
+
+--- share/qbs/modules/cpp/freebsd.js.orig	2025-06-20 12:42:25 UTC
++++ share/qbs/modules/cpp/freebsd.js
+@@ -1,8 +1,13 @@ function stripKernelReleaseSuffix(r) {
+ var Utilities = require("qbs.Utilities");
+ 
+ function stripKernelReleaseSuffix(r) {
+-    var idx = r.indexOf("-RELEASE");
+-    return idx >= 0 ? r.substr(0, idx) : r;
++    var suffixes = ["-RELEASE", "-STABLE", "-CURRENT"];
++    for (var i = 0; i < suffixes.length; i++) {
++        var idx = r.indexOf(suffixes[i]);
++        if (idx >= 0)
++            return r.substr(0, idx);
++    }
++    return r;
+ }
+ 
+ function hostKernelRelease() {
diff --git a/devel/qbs/files/patch-src_app_qbs-setup-qt_setupqt.cpp b/devel/qbs/files/patch-src_app_qbs-setup-qt_setupqt.cpp
index 7824f9aba426..85d9fbbc44f2 100644
--- a/devel/qbs/files/patch-src_app_qbs-setup-qt_setupqt.cpp
+++ b/devel/qbs/files/patch-src_app_qbs-setup-qt_setupqt.cpp
@@ -1,6 +1,6 @@
---- src/app/qbs-setup-qt/setupqt.cpp.orig	2021-11-28 22:25:29 UTC
+--- src/app/qbs-setup-qt/setupqt.cpp.orig	2025-06-20 12:42:25 UTC
 +++ src/app/qbs-setup-qt/setupqt.cpp
-@@ -70,7 +70,7 @@ static QStringList qmakeExecutableNames()
+@@ -71,7 +71,7 @@ static QStringList qmakeExecutableNames()
  {
      const QString baseName = HostOsInfo::appendExecutableSuffix(QStringLiteral("qmake"));
      QStringList lst(baseName);
diff --git a/devel/qbs/files/patch-src_lib_corelib_tools_scripttools.h b/devel/qbs/files/patch-src_lib_corelib_tools_scripttools.h
new file mode 100644
index 000000000000..e573f303ff5b
--- /dev/null
+++ b/devel/qbs/files/patch-src_lib_corelib_tools_scripttools.h
@@ -0,0 +1,20 @@
+Fix build on i386.
+
+In file included from /wrkdirs/usr/ports/devel/qbs/work/qbs-src-3.0.1/src/lib/corelib/api/internaljobs.cpp:52:
+In file included from /wrkdirs/usr/ports/devel/qbs/work/qbs-src-3.0.1/src/lib/corelib/language/scriptengine.h:52:
+/wrkdirs/usr/ports/devel/qbs/work/qbs-src-3.0.1/src/lib/corelib/tools/scripttools.h:193:47: error:
+member reference base type 'const JSValue' (aka 'const unsigned long long') is not a structure or union
+  193 |     operator bool() const { return m_exception.tag != JS_TAG_UNINITIALIZED; }
+      |                                    ~~~~~~~~~~~^~~~
+
+--- src/lib/corelib/tools/scripttools.h.orig	2025-06-20 12:42:25 UTC
++++ src/lib/corelib/tools/scripttools.h
+@@ -190,7 +190,7 @@ class QBS_AUTOTEST_EXPORT JsException (public)
+     JsException(const JsException &) = delete;
+     JsException &operator=(const JsException &) = delete;
+ 
+-    operator bool() const { return m_exception.tag != JS_TAG_UNINITIALIZED; }
++    operator bool() const { return !JS_IsUninitialized(m_exception); }
+     QString message() const;
+     const QStringList stackTrace() const;
+     ErrorInfo toErrorInfo() const;