diff --git a/devel/qbs/Makefile b/devel/qbs/Makefile index 982246a8eacb..4bf89ff0500d 100644 --- a/devel/qbs/Makefile +++ b/devel/qbs/Makefile @@ -1,34 +1,35 @@ PORTNAME= qbs DISTVERSIONPREFIX= src- DISTVERSION= 3.0.1 +PORTREVISION= 1 CATEGORIES= devel MASTER_SITES= QT/official_releases/${PORTNAME}/${PORTVERSION} DIST_SUBDIR= KDE/Qt/qbs MAINTAINER= kde@FreeBSD.org COMMENT= Qbs Build Suite WWW= https://doc.qt.io/qbs/ LICENSE= GPLv3 LGPL21 LICENSE_COMB= dual USES= cmake compiler:c++20-lang gl python:run qt:6 USE_GL= opengl USE_LDCONFIG= yes USE_QT= 5compat base CMAKE_ON= QBS_INSTALL_MAN_PAGE PLIST_SUB= QBS_VER="${DISTVERSION:R}" \ QBS_VERSION="${DISTVERSION}" OPTIONS_DEFINE= DOCS DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4.12.2:www/py-beautifulsoup@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}lxml5>=4.9.3:devel/py-lxml5@${PY_FLAVOR} DOCS_USES= python:build DOCS_USE= QT=tools:build DOCS_CMAKE_BOOL= QBS_INSTALL_HTML_DOCS \ QBS_INSTALL_QCH_DOCS .include 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,11 +1,11 @@ ---- 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); - if (HostOsInfo::isLinuxHost()) { + if (true || HostOsInfo::isLinuxHost()) { // Some distributions ship binaries called qmake-qt5 or qmake-qt4. lst << baseName + QLatin1String("-qt5") << baseName + QLatin1String("-qt4"); } 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;