summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/qbs')
-rw-r--r--dev-util/qbs/Manifest5
-rw-r--r--dev-util/qbs/files/qbs-2.3.1-qtver.patch9
-rw-r--r--dev-util/qbs/metadata.xml19
-rw-r--r--dev-util/qbs/qbs-1.12.2.ebuild115
-rw-r--r--dev-util/qbs/qbs-1.14.1.ebuild115
-rw-r--r--dev-util/qbs/qbs-1.15.0.ebuild116
-rw-r--r--dev-util/qbs/qbs-1.16.0.ebuild116
-rw-r--r--dev-util/qbs/qbs-2.3.1.ebuild90
8 files changed, 110 insertions, 475 deletions
diff --git a/dev-util/qbs/Manifest b/dev-util/qbs/Manifest
index ed20307b5455..f1834e3241d5 100644
--- a/dev-util/qbs/Manifest
+++ b/dev-util/qbs/Manifest
@@ -1,4 +1 @@
-DIST qbs-src-1.12.2.tar.gz 4374830 BLAKE2B 8ace5ac7fea9bcd944dd02280a36f0f275749512e44ab9e3221e154d80ccf8aa25e3452eb90b1396323b540ec97e4b72c29b3a1d4727a72791a0e267bd89df13 SHA512 eb8c5db94f6b4e2300951d9cb6e092b873381421a1bff31a9e8422859aee3c0b3d038b6a2927a4f5c8fd871a0a7d283f7b7c3be74834dd30d640a1ed9c87a147
-DIST qbs-src-1.14.1.tar.gz 4365537 BLAKE2B 5a51ddea64023c76b6934634f72ab19d54a3e857efe30d7698a3970d099e436599b53b369d81434cc8e721606513bd487010047e60ccfa289574f606cf020dc5 SHA512 df9031e2749ba598129daef0a6b4322ad964c87a33bfd079bb231170da49c42708740ec63e351607b7e9da1dd11310802b14917eaf2ec97bb747a6df9890f2f3
-DIST qbs-src-1.15.0.tar.gz 4531882 BLAKE2B 95ef24a3c63972a5c4111b68c19d57d83552c8c2fd771bda6291d99564c2e3e80488700ceaf88e64bf6edca1d156dc912757ebe682cb5e3d5aec015640e8641f SHA512 461ac2e1574c163149b080936233144b3941024e7f61c2b2514e58089b7fa100e576c0336e16a3c51a0f4b77e575081350550e23b543e86a2023d524aba18d07
-DIST qbs-src-1.16.0.tar.gz 4571788 BLAKE2B 4fb06314d0d0a532574e0d245ea85b6d596850ffe4b81b621406d1bc99e0529fc491bf5c7db514d90026c0bf4916f9fa102457aab2bbaaddbbe2e90c03aa04a4 SHA512 65c5398ffad54e10e251bed79a5b58abd722c0f95a031c536fc8647d915dd696923401c767a7a8ac029f4f571b6bbf96ef4b7493bb30768f675477bd68fcc21c
+DIST qbs-src-2.3.1.tar.gz 5614581 BLAKE2B 92fa24d75248a3732cbd99b660141e56654574f1388d50d5359afef7b442889fa59c4ab4f029f055ee618c0222f94faba47ae9fff85f0fae26e95f2ba34995f9 SHA512 27ba33805b942cf8180e55bdd6c37ccfd2aeaa2e8c01ca7e7485720030dfad7c5f1a3f92b77bff97a7ebf8878e455758c8729005e8b03959d18106f945d8d42c
diff --git a/dev-util/qbs/files/qbs-2.3.1-qtver.patch b/dev-util/qbs/files/qbs-2.3.1-qtver.patch
new file mode 100644
index 000000000000..3117c432c544
--- /dev/null
+++ b/dev-util/qbs/files/qbs-2.3.1-qtver.patch
@@ -0,0 +1,9 @@
+https://bugs.gentoo.org/931596
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -29,3 +29,5 @@
+
++if (NOT DEFINED QT_VERSION_MAJOR)
+ find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
++endif()
+
diff --git a/dev-util/qbs/metadata.xml b/dev-util/qbs/metadata.xml
index 4311f5d8ba92..e07e064c9841 100644
--- a/dev-util/qbs/metadata.xml
+++ b/dev-util/qbs/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>pesa@gentoo.org</email>
- <name>Davide Pesavento</name>
- </maintainer>
<maintainer type="project">
<email>qt@gentoo.org</email>
<name>Gentoo Qt Project</name>
@@ -14,13 +10,18 @@
projects across multiple platforms. Qbs can be used for any software
project, regardless of programming language, toolkit, or libraries used.
- Qbs is an all-in-one tool that generates a build graph from a
- high-level project description (like qmake or cmake) and additionally
- undertakes the task of executing the commands in the low-level build
- graph (like make).
+ Qbs projects are specified in a QML dialect. QML is a concise, easy to
+ learn, and intuitive language that is used successfully in the Qt project.
+ Its core is declarative, but it can be extended with JavaScript snippets
+ for extra flexibility.
+
+ Qbs is an all-in-one tool that generates a build graph from a high-level
+ project description (like qmake or CMake) and additionally undertakes the
+ task of executing the commands in the low-level build graph (like make).
</longdescription>
<upstream>
<bugs-to>https://bugreports.qt.io/</bugs-to>
<doc>https://doc.qt.io/qbs/</doc>
+ <remote-id type="github">qbs/qbs</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-util/qbs/qbs-1.12.2.ebuild b/dev-util/qbs/qbs-1.12.2.ebuild
deleted file mode 100644
index c5815752c219..000000000000
--- a/dev-util/qbs/qbs-1.12.2.ebuild
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit qmake-utils
-
-MY_P=${PN}-src-${PV}
-
-DESCRIPTION="Modern build tool for software projects"
-HOMEPAGE="https://wiki.qt.io/Qbs"
-SRC_URI="http://download.qt.io/official_releases/${PN}/${PV}/${MY_P}.tar.gz"
-
-LICENSE="|| ( LGPL-2.1 LGPL-3 )"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~x86"
-IUSE="doc examples test"
-RESTRICT="!test? ( test )"
-
-# see bug 581874 for the qttest dep in RDEPEND
-RDEPEND="
- dev-qt/qtcore:5=
- dev-qt/qtgui:5
- dev-qt/qtnetwork:5
- dev-qt/qtscript:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- test? ( dev-qt/qttest:5 )
-"
-DEPEND="${RDEPEND}
- doc? (
- dev-qt/qdoc:5
- dev-qt/qthelp:5
- )
- test? ( dev-qt/qtdeclarative:5 )
-"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- default
-
- if ! use examples; then
- sed -i -e '/INSTALLS +=/ s:examples::' static.pro || die
- fi
-
- # the qbsres target uses the newly built qbs binary, so we have to tell it where to find its libraries
- sed -i -e '/qbsres\.commands =/ a\LD_LIBRARY_PATH=$$shell_quote($$shell_path($$QBS_LIBRARY_DIRNAME)) \\' \
- static-res.pro || die
-
- echo "SUBDIRS = $(usex test auto '')" >> tests/tests.pro
-
- # skip several tests that fail and/or have additional deps
- sed -i \
- -e 's/findArchiver("7z")/""/' `# requires p7zip, fails` \
- -e 's/findArchiver(binaryName,.*/"";/' `# requires zip and jar` \
- -e 's/p\.value("nodejs\./true||&/' `# requires nodejs, bug 527652` \
- -e 's/\(p\.value\|m_qbsStderr\.contains\)("typescript\./true||&/' `# requires nodejs and typescript` \
- tests/auto/blackbox/tst_blackbox.cpp || die
-
- # requires jdk, fails, bug 585398
- sed -i -e '/blackbox-java\.pro/ d' tests/auto/auto.pro || die
-}
-
-src_configure() {
- local myqmakeargs=(
- qbs.pro # bug 523218
- -recursive
- CONFIG+=qbs_disable_rpath
- CONFIG+=qbs_enable_project_file_updates
- $(usex test 'CONFIG+=qbs_enable_unit_tests' '')
- QBS_INSTALL_PREFIX="${EPREFIX}/usr"
- QBS_LIBRARY_DIRNAME="$(get_libdir)"
- )
- eqmake5 "${myqmakeargs[@]}"
-}
-
-src_test() {
- einfo "Setting up test environment in ${T}"
-
- export HOME=${T}
- export LD_LIBRARY_PATH=${S}/$(get_libdir)
- export QBS_AUTOTEST_PROFILE=autotests
-
- "${S}"/bin/qbs-setup-toolchains --detect || die
- "${S}"/bin/qbs-setup-qt "$(qt5_get_bindir)/qmake" autotests || die
-
- einfo "Running autotests"
-
- # simply exporting LD_LIBRARY_PATH doesn't work
- # we have to use a custom testrunner script
- local testrunner=${WORKDIR}/gentoo-testrunner
- cat <<-EOF > "${testrunner}"
- #!/bin/sh
- export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}"
- exec "\$@"
- EOF
- chmod +x "${testrunner}"
-
- emake TESTRUNNER="'${testrunner}'" check
-}
-
-src_install() {
- emake INSTALL_ROOT="${D}" install
-
- dodoc -r changelogs
-
- # install documentation
- if use doc; then
- emake docs
- dodoc -r doc/qbs/html
- dodoc doc/qbs.qch
- docompress -x /usr/share/doc/${PF}/qbs.qch
- fi
-}
diff --git a/dev-util/qbs/qbs-1.14.1.ebuild b/dev-util/qbs/qbs-1.14.1.ebuild
deleted file mode 100644
index 689ab954a115..000000000000
--- a/dev-util/qbs/qbs-1.14.1.ebuild
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit qmake-utils
-
-MY_P=${PN}-src-${PV}
-
-DESCRIPTION="Modern build tool for software projects"
-HOMEPAGE="https://wiki.qt.io/Qbs"
-SRC_URI="http://download.qt.io/official_releases/${PN}/${PV}/${MY_P}.tar.gz"
-
-LICENSE="|| ( LGPL-2.1 LGPL-3 )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="doc examples test"
-RESTRICT="!test? ( test )"
-
-# see bug 581874 for the qttest dep in RDEPEND
-RDEPEND="
- dev-qt/qtcore:5=
- dev-qt/qtgui:5
- dev-qt/qtnetwork:5
- dev-qt/qtscript:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- test? ( dev-qt/qttest:5 )
-"
-DEPEND="${RDEPEND}
- doc? (
- dev-qt/qdoc:5
- dev-qt/qthelp:5
- )
- test? (
- dev-qt/linguist-tools:5
- dev-qt/qtdbus:5
- dev-qt/qtdeclarative:5
- )
-"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- default
-
- if ! use examples; then
- sed -i -e '/INSTALLS +=/ s:examples::' static.pro || die
- fi
-
- echo "SUBDIRS = $(usex test auto '')" >> tests/tests.pro
-
- # skip several tests that fail and/or have additional deps
- sed -i \
- -e 's/findArchiver("7z")/""/' `# requires p7zip, fails` \
- -e 's/findArchiver(binaryName,.*/"";/' `# requires zip and jar` \
- -e 's/p\.value("nodejs\./true||&/' `# requires nodejs, bug 527652` \
- -e 's/\(p\.value\|m_qbsStderr\.contains\)("typescript\./true||&/' `# requires nodejs and typescript` \
- tests/auto/blackbox/tst_blackbox.cpp || die
-
- # requires jdk, fails, bug 585398
- sed -i -e '/blackbox-java\.pro/ d' tests/auto/auto.pro || die
-}
-
-src_configure() {
- local myqmakeargs=(
- qbs.pro # bug 523218
- -recursive
- CONFIG+=qbs_disable_rpath
- CONFIG+=qbs_enable_project_file_updates
- $(usex test 'CONFIG+=qbs_enable_unit_tests' '')
- QBS_INSTALL_PREFIX="${EPREFIX}/usr"
- QBS_LIBRARY_DIRNAME="$(get_libdir)"
- )
- eqmake5 "${myqmakeargs[@]}"
-}
-
-src_test() {
- einfo "Setting up test environment in ${T}"
-
- export HOME=${T}
- export LD_LIBRARY_PATH=${S}/$(get_libdir)
- export QBS_AUTOTEST_PROFILE=autotests
-
- "${S}"/bin/qbs-setup-toolchains --detect || die
- "${S}"/bin/qbs-setup-qt "$(qt5_get_bindir)/qmake" autotests || die
-
- einfo "Running autotests"
-
- # simply exporting LD_LIBRARY_PATH doesn't work
- # we have to use a custom testrunner script
- local testrunner=${WORKDIR}/gentoo-testrunner
- cat <<-EOF > "${testrunner}"
- #!/bin/sh
- export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}"
- exec "\$@"
- EOF
- chmod +x "${testrunner}"
-
- emake TESTRUNNER="'${testrunner}'" check
-}
-
-src_install() {
- emake INSTALL_ROOT="${D}" install
-
- dodoc -r changelogs
-
- # install documentation
- if use doc; then
- emake docs
- dodoc -r doc/qbs/html
- dodoc doc/qbs.qch
- docompress -x /usr/share/doc/${PF}/qbs.qch
- fi
-}
diff --git a/dev-util/qbs/qbs-1.15.0.ebuild b/dev-util/qbs/qbs-1.15.0.ebuild
deleted file mode 100644
index 5fa4f467db39..000000000000
--- a/dev-util/qbs/qbs-1.15.0.ebuild
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit qmake-utils toolchain-funcs
-
-MY_P=${PN}-src-${PV}
-
-DESCRIPTION="Modern build tool for software projects"
-HOMEPAGE="https://wiki.qt.io/Qbs"
-SRC_URI="http://download.qt.io/official_releases/${PN}/${PV}/${MY_P}.tar.gz"
-
-LICENSE="|| ( LGPL-2.1 LGPL-3 )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="doc examples test"
-RESTRICT="!test? ( test )"
-
-# see bug 581874 for the qttest dep in RDEPEND
-RDEPEND="
- dev-qt/qtcore:5=
- dev-qt/qtgui:5
- dev-qt/qtnetwork:5
- dev-qt/qtscript:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- test? ( dev-qt/qttest:5 )
-"
-DEPEND="${RDEPEND}
- doc? (
- dev-qt/qdoc:5
- dev-qt/qthelp:5
- )
- test? (
- dev-qt/linguist-tools:5
- dev-qt/qtdbus:5
- dev-qt/qtdeclarative:5
- )
-"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- default
-
- if ! use examples; then
- sed -i -e '/INSTALLS +=/ s:examples::' static.pro || die
- fi
-
- echo "SUBDIRS = $(usex test auto '')" >> tests/tests.pro
-
- # skip several tests that fail and/or have additional deps
- sed -i \
- -e 's/findArchiver("7z")/""/' `# requires p7zip, fails` \
- -e 's/findArchiver(binaryName,.*/"";/' `# requires zip and jar` \
- -e 's/p\.value("nodejs\./true||&/' `# requires nodejs, bug 527652` \
- -e 's/\(p\.value\|m_qbsStderr\.contains\)("typescript\./true||&/' `# requires nodejs and typescript` \
- tests/auto/blackbox/tst_blackbox.cpp || die
-
- # requires jdk, fails, bug 585398
- sed -i -e '/blackbox-java\.pro/ d' tests/auto/auto.pro || die
-}
-
-src_configure() {
- local myqmakeargs=(
- qbs.pro # bug 523218
- -recursive
- CONFIG+=qbs_disable_rpath
- CONFIG+=qbs_enable_project_file_updates
- $(usex test 'CONFIG+=qbs_enable_unit_tests' '')
- QBS_INSTALL_PREFIX="${EPREFIX}/usr"
- QBS_LIBRARY_DIRNAME="$(get_libdir)"
- )
- eqmake5 "${myqmakeargs[@]}"
-}
-
-src_test() {
- einfo "Setting up test environment in ${T}"
-
- export HOME=${T}
- export LD_LIBRARY_PATH=${S}/$(get_libdir)
- export QBS_AUTOTEST_PROFILE=testProfile
-
- "${S}"/bin/qbs-setup-toolchains "$(tc-getCC)" testToolchain || die
- "${S}"/bin/qbs-setup-qt "$(qt5_get_bindir)/qmake" ${QBS_AUTOTEST_PROFILE} || die
- "${S}"/bin/qbs-config profiles.${QBS_AUTOTEST_PROFILE}.qbs.targetPlatform linux || die
-
- einfo "Running autotests"
-
- # simply exporting LD_LIBRARY_PATH doesn't work
- # we have to use a custom testrunner script
- local testrunner=${WORKDIR}/gentoo-testrunner
- cat <<-EOF > "${testrunner}"
- #!/bin/sh
- export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}"
- exec "\$@"
- EOF
- chmod +x "${testrunner}"
-
- emake TESTRUNNER="'${testrunner}'" check
-}
-
-src_install() {
- emake INSTALL_ROOT="${D}" install
-
- dodoc -r changelogs
-
- # install documentation
- if use doc; then
- emake docs
- dodoc -r doc/qbs/html
- dodoc doc/qbs.qch
- docompress -x /usr/share/doc/${PF}/qbs.qch
- fi
-}
diff --git a/dev-util/qbs/qbs-1.16.0.ebuild b/dev-util/qbs/qbs-1.16.0.ebuild
deleted file mode 100644
index 2ecd2be09ac4..000000000000
--- a/dev-util/qbs/qbs-1.16.0.ebuild
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit qmake-utils toolchain-funcs
-
-MY_P=${PN}-src-${PV}
-
-DESCRIPTION="Modern build tool for software projects"
-HOMEPAGE="https://doc.qt.io/qbs/"
-SRC_URI="http://download.qt.io/official_releases/${PN}/${PV}/${MY_P}.tar.gz"
-
-LICENSE="|| ( LGPL-2.1 LGPL-3 )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="doc examples test"
-RESTRICT="!test? ( test )"
-
-# see bug 581874 for the qttest dep in RDEPEND
-RDEPEND="
- dev-qt/qtcore:5=
- dev-qt/qtgui:5
- dev-qt/qtnetwork:5
- dev-qt/qtscript:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- test? ( dev-qt/qttest:5 )
-"
-DEPEND="${RDEPEND}
- doc? (
- dev-qt/qdoc:5
- dev-qt/qthelp:5
- )
- test? (
- dev-qt/linguist-tools:5
- dev-qt/qtdbus:5
- dev-qt/qtdeclarative:5
- )
-"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- default
-
- if ! use examples; then
- sed -i -e '/INSTALLS +=/ s:examples::' static.pro || die
- fi
-
- echo "SUBDIRS = $(usex test auto '')" >> tests/tests.pro
-
- # skip several tests that fail and/or have additional deps
- sed -i \
- -e 's/findArchiver("7z")/""/' `# requires p7zip, fails` \
- -e 's/findArchiver(binaryName,.*/"";/' `# requires zip and jar` \
- -e 's/p\.value("nodejs\./true||&/' `# requires nodejs, bug 527652` \
- -e 's/\(p\.value\|m_qbsStderr\.contains\)("typescript\./true||&/' `# requires nodejs and typescript` \
- tests/auto/blackbox/tst_blackbox.cpp || die
-
- # requires jdk, fails, bug 585398
- sed -i -e '/blackbox-java\.pro/ d' tests/auto/auto.pro || die
-}
-
-src_configure() {
- local myqmakeargs=(
- qbs.pro # bug 523218
- -recursive
- CONFIG+=qbs_disable_rpath
- CONFIG+=qbs_enable_project_file_updates
- $(usex test 'CONFIG+=qbs_enable_unit_tests' '')
- QBS_INSTALL_PREFIX="${EPREFIX}/usr"
- QBS_LIBRARY_DIRNAME="$(get_libdir)"
- )
- eqmake5 "${myqmakeargs[@]}"
-}
-
-src_test() {
- einfo "Setting up test environment in ${T}"
-
- export HOME=${T}
- export LD_LIBRARY_PATH=${S}/$(get_libdir)
- export QBS_AUTOTEST_PROFILE=testProfile
-
- "${S}"/bin/qbs-setup-toolchains "$(tc-getCC)" testToolchain || die
- "${S}"/bin/qbs-setup-qt "$(qt5_get_bindir)/qmake" ${QBS_AUTOTEST_PROFILE} || die
- "${S}"/bin/qbs-config profiles.${QBS_AUTOTEST_PROFILE}.qbs.targetPlatform linux || die
-
- einfo "Running autotests"
-
- # simply exporting LD_LIBRARY_PATH doesn't work
- # we have to use a custom testrunner script
- local testrunner=${WORKDIR}/gentoo-testrunner
- cat <<-EOF > "${testrunner}"
- #!/bin/sh
- export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}"
- exec "\$@"
- EOF
- chmod +x "${testrunner}"
-
- emake TESTRUNNER="'${testrunner}'" check
-}
-
-src_install() {
- emake INSTALL_ROOT="${D}" install
-
- dodoc -r changelogs README.md
-
- # install documentation
- if use doc; then
- emake docs
- dodoc -r doc/qbs/html
- dodoc doc/qbs.qch
- docompress -x /usr/share/doc/${PF}/qbs.qch
- fi
-}
diff --git a/dev-util/qbs/qbs-2.3.1.ebuild b/dev-util/qbs/qbs-2.3.1.ebuild
new file mode 100644
index 000000000000..1eaaf83d9393
--- /dev/null
+++ b/dev-util/qbs/qbs-2.3.1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit cmake flag-o-matic python-any-r1 toolchain-funcs
+
+DESCRIPTION="Modern build tool for software projects"
+HOMEPAGE="https://doc.qt.io/qbs/"
+SRC_URI="https://download.qt.io/official_releases/qbs/${PV}/${PN}-src-${PV}.tar.gz"
+S=${WORKDIR}/${PN}-src-${PV}
+
+LICENSE="|| ( LGPL-2.1 LGPL-3 ) BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-qt/qt5compat:6
+ dev-qt/qtbase:6[concurrent,gui,network,widgets,xml]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ doc? (
+ $(python_gen_any_dep '
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ ')
+ dev-qt/qttools:6[assistant,qdoc]
+ )
+"
+
+CMAKE_SKIP_TESTS=(
+ # QBS does not inherit toolchain/flags knowlege from cmake, and
+ # while can use ${BUILD_DIR}/bin/qbs-config to improve this it
+ # remains very fickle and will fail in varied ways with clang,
+ # musl, -native-symlinks, and libc++. After consideration it is
+ # not worth worrying about affected tests here (even if notable).
+ tst_api
+ tst_blackbox # also skips blackbox-* (intended)
+ tst_language
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.3.1-qtver.patch
+)
+
+python_check_deps() {
+ # _find_python_module in cmake/QbsDocumentation.cmake
+ python_has_version "dev-python/beautifulsoup4[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/lxml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use doc && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ # temporary workaround for musl-1.2.4 (bug #906929), this ideally
+ # needs fixing in qtbase as *64 usage comes from its headers' macros
+ use elibc_musl && append-lfs-flags
+
+ # fails to build with gcc:14 and -O3 (bug #933187)
+ tc-is-gcc && [[ $(gcc-major-version) -ge 14 ]] &&
+ replace-flags -O3 -O2
+
+ local mycmakeargs=(
+ -DQBS_DOC_INSTALL_DIR="${EPREFIX}"/usr/share/doc/${PF}
+ -DQBS_INSTALL_HTML_DOCS=$(usex doc)
+ -DQBS_INSTALL_MAN_PAGE=yes
+ -DQBS_INSTALL_QCH_DOCS=$(usex doc)
+ -DQBS_LIB_INSTALL_DIR="$(get_libdir)"
+ -DQT_VERSION_MAJOR=6 #931596
+ -DWITH_TESTS=$(usex test)
+ -DWITH_UNIT_TESTS=$(usex test)
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ local DOCS=( README.md changelogs )
+ cmake_src_install
+
+ use !test || rm -- "${ED}"/usr/bin/{tst_*,qbs_*,clang-format-test} || die
+
+ docompress -x /usr/share/doc/${PF}/qbs.qch
+}