summaryrefslogtreecommitdiff
path: root/dev-util/qbs
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 16:47:34 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 16:47:34 -0500
commitdda948891d3731927b821ce31f9d9a2d03ba20c5 (patch)
tree99cd40be4cbb0606260da212cd81b8ab2db9da9b /dev-util/qbs
parenta3ceca1b4c0d9bdb550dc23f06ffbb5a8e033bc7 (diff)
downloadbaldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.gz
baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.xz
baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.zip
Adding metadata
Diffstat (limited to 'dev-util/qbs')
-rw-r--r--dev-util/qbs/Manifest1
-rw-r--r--dev-util/qbs/files/qbs-2.3.1-qtver.patch9
-rw-r--r--dev-util/qbs/files/qbs-2.4.1-ldconfig.patch17
-rw-r--r--dev-util/qbs/metadata.xml27
-rw-r--r--dev-util/qbs/qbs-3.1.2.ebuild101
5 files changed, 155 insertions, 0 deletions
diff --git a/dev-util/qbs/Manifest b/dev-util/qbs/Manifest
new file mode 100644
index 000000000000..a97181d0b5c9
--- /dev/null
+++ b/dev-util/qbs/Manifest
@@ -0,0 +1 @@
+DIST qbs-src-3.1.2.tar.gz 5803135 BLAKE2B 762cd97b4140b296c3d3b589b829ee6f21c8423a1482f28702ebaa3d29eaabec9dc2144b787ec8c825374adba61310aac53d72eceec399b9ef7f01102730fc8d SHA512 aed42df2545f3866ead1b99a5efb71c741a3446c8c6974d2eca1d946249445e13bd11b4b9e7633841d7800203c27530f5a96ec39611b6448d9ec7016d27330a8
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/files/qbs-2.4.1-ldconfig.patch b/dev-util/qbs/files/qbs-2.4.1-ldconfig.patch
new file mode 100644
index 000000000000..aa20ee42c57e
--- /dev/null
+++ b/dev-util/qbs/files/qbs-2.4.1-ldconfig.patch
@@ -0,0 +1,17 @@
+https://bugs.gentoo.org/939142
+
+Exact cause unknown, but running qbs in portage's sandbox hangs
+for a few people while running ldconfig, and using "env" seemingly
+helps. Better (potentially upstreamable) patch welcome if someone
+can figure out the right fix.
+--- a/share/qbs/modules/cpp/LinuxGCC.qbs
++++ b/share/qbs/modules/cpp/LinuxGCC.qbs
+@@ -48,7 +48,7 @@ UnixGCC {
+ var paths = [];
+ var ldconfig = new Process();
+ try {
+- var success = ldconfig.exec("ldconfig", ["-vNX"]);
++ var success = ldconfig.exec("env", ["ldconfig", "-vNX"]);
+ if (success === -1)
+ return;
+ var line;
diff --git a/dev-util/qbs/metadata.xml b/dev-util/qbs/metadata.xml
new file mode 100644
index 000000000000..956c74362125
--- /dev/null
+++ b/dev-util/qbs/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>qt@gentoo.org</email>
+ <name>Gentoo Qt Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ Qbs is a tool that helps simplify the build process for developing
+ projects across multiple platforms. Qbs can be used for any software
+ project, regardless of programming language, toolkit, or libraries used.
+
+ 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>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-util/qbs/qbs-3.1.2.ebuild b/dev-util/qbs/qbs-3.1.2.ebuild
new file mode 100644
index 000000000000..5420e0ba4058
--- /dev/null
+++ b/dev-util/qbs/qbs-3.1.2.ebuild
@@ -0,0 +1,101 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+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 ) Boost-1.0 BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+# uses CorePrivate wrt qtbase:=
+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 knowledge 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 feels
+ # 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
+ "${FILESDIR}"/${PN}-2.4.1-ldconfig.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_prepare() {
+ cmake_src_prepare
+
+ # test fails to build with Qt 6.10.1 since [1] and, given skipping
+ # this test either way, may as well also not build it for now
+ # [1] https://github.com/qt/qtbase/commit/7196bb00ed7
+ cmake_comment_add_subdirectory -f tests/auto language
+}
+
+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
+
+ # tests build failure w/ gcc:14 + -O3 (bug #933187, needs looking into)
+ use test && 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
+}