diff options
Diffstat (limited to 'dev-qt/qt-docs/qt-docs-6.8.2_p202501260838.ebuild')
-rw-r--r-- | dev-qt/qt-docs/qt-docs-6.8.2_p202501260838.ebuild | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/dev-qt/qt-docs/qt-docs-6.8.2_p202501260838.ebuild b/dev-qt/qt-docs/qt-docs-6.8.2_p202501260838.ebuild new file mode 100644 index 000000000000..d483d141e746 --- /dev/null +++ b/dev-qt/qt-docs/qt-docs-6.8.2_p202501260838.ebuild @@ -0,0 +1,187 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit unpacker + +DESCRIPTION="Qt6 documentation and examples for Qt Creator and other tools" +HOMEPAGE="https://doc.qt.io/" + +LICENSE="FDL-1.3" +SLOT="6" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" +IUSE="+examples +html +qch" +REQUIRED_USE="|| ( examples html qch )" + +BDEPEND=" + examples? ( $(unpacker_src_uri_depends .7z) ) +" + +qt6_docs_generate_metadata() { + local qtver=${PV%%_p*} + local prefix=${qtver}-0-${PV##*_p} + local doc_suffix=-documentation.tar.xz + local exa_suffix=-examples-${qtver}.7z + local baseuri=https://download.qt.io/online/qtsdkrepository/all_os/qt/qt6_${qtver//.}_unix_line_endings_src/qt.qt6.${qtver//.} + SRC_URI= + S=${WORKDIR} + + # Bumping involves diff'ing the unversioned *_src/*/ files list from + # old version to the new for -documentation and -examples files, + # then adding/removing entries if anything changed. + # + # Format: [+-%]<USE>[</|^><package>[!|:]][="<module> ..."] + # - [+-%]<USE>: enable(+), disable(-), or no IUSE(%) + # (should disable if associated package is not in tree) + # - /<package>: qt.qt6.*.examples.<package>/*-<package>-examples* + # - ^<package>: qt.qt6.*.examples/*-<package>-examples.7z + # - <module>: qt.qt6.*.doc.<package>/*-<module>-documentation* + # (if <module> is unspecified, defaults to <package>) + # - <package>[!:]: only has examples(!) or documentation(:) + # + # To future maintainers: if this feels too complex, could either + # replace by generating the ebuild with a new less-compact script + # or go for the simplest alternative by redistributing 1-2 big + # tarballs with everything. + local map=( + # map with (non-split) Qt6 packages rather than per-module + %base^qtbase=" + qmake qtcmake qtconcurrent qtcore qtdbus + qtgui qtnetwork qtopengl qtplatformintegration + qtprintsupport qtsql qttestlib qtwidgets qtxml + " + +3d/qt3d + -activeqt/qtactiveqt="activeqt" + +charts/qtcharts + +connectivity/qtbluetooth: + +connectivity/qtconnectivity! + +connectivity/qtnfc: + -datavis/qtdatavis3d + +declarative^qtdeclarative=" + qtlabsplatform qtqml qtqmlcore qtqmlmodels + qtqmltest qtqmlworkerscript qtqmlxmllistmodel + qtquick qtquickcontrols qtquickdialogs + " + %doc^qtdoc + -graphs/qtgraphs + -grpc/qtgrpc="qtgrpc qtprotobuf" + +httpserver/qthttpserver + +imageformats/qtimageformats: + +location/qtlocation + -lottie/qtlottie:="qtlottieanimation" + +multimedia/qtmultimedia + +multimedia/qtmultimedia:="qtspatialaudio" + +networkauth/qtnetworkauth + +positioning/qtpositioning + +qt5compat/qt5compat="qtcore5compat qtgraphicaleffects5compat" +# +qt5="qt5" # already installed by qtbase (conflicts) + -quick3dphysics/qtquick3dphysics + +quick3d/qtquick3d + -quickeffectmaker/qtquickeffectmaker + +remoteobjects/qtremoteobjects + +scxml/qtscxml + +scxml/qtscxml:="qtstatemachine" + +sensors/qtsensors + +serialbus/qtserialbus + +serialport/qtserialport + +shadertools/qtshadertools: + +speech/qtspeech="qttexttospeech" + +svg^qtsvg: + +timeline/qtquicktimeline: + +tools^qttools=" + qdoc qtassistant qtdesigner qtdistancefieldgenerator + qthelp qtlinguist qtuitools + " + +virtualkeyboard/qtvirtualkeyboard + +wayland/qtwaylandcompositor + +webchannel/qtwebchannel + # webengine archives for docs/examples missing since 6.8.0...? + #+webengine/qtpdf: + #+webengine/qtwebengine + +websockets/qtwebsockets + +webview/qtwebview + ) + + local entry operator use subdir package exception modules uris + local -A iuse + for entry in "${map[@]}"; do + [[ ${entry} =~ ^([%+-])([^/^!:=]+)([/^])?([^!:=]+)?([!:])?=?(.+)? ]] || + die "syntax error in '${entry}'" # global scope, must never fail + + operator=${BASH_REMATCH[1]#-} + use=${BASH_REMATCH[2]} + subdir=${BASH_REMATCH[3]} + package=${BASH_REMATCH[4]} + exception=${BASH_REMATCH[5]} + modules=${BASH_REMATCH[6]:-${package}} + + [[ ${subdir} == / ]] && subdir=.${package} || subdir= + + # special rule due to inconsistent examples path since qt 6.8.0 + [[ ${package} == qtwaylandcompositor ]] && package=qtwayland + + [[ ${exception} != ! ]] && + printf -v uris "${baseuri}.doc${subdir}/${prefix}%s${doc_suffix} " \ + ${modules} + [[ ${exception} != : ]] && + uris+=" examples? ( ${baseuri}.examples${subdir}/${prefix}${package}${exa_suffix} )" + + if [[ ${operator} == % ]]; then + SRC_URI+=" ${uris}" + else + iuse[${operator}${use}]= # avoid duplicates + SRC_URI+=" ${use}? ( ${uris} )" + fi + done + IUSE+=" ${!iuse[*]}" +} +qt6_docs_generate_metadata + +src_unpack() { + local a docs=() examples=() + for a in ${A}; do + case ${a} in + *documentation*) docs+=("${a}");; + *examples*) examples+=("${a}");; + *) die "unrecognized archive '${a}'";; + esac + done + + mkdir docs || die + pushd docs >/dev/null || die + unpack "${docs[@]}" + popd >/dev/null || die + + if use examples; then + mkdir examples || die + pushd examples >/dev/null || die + unpacker "${examples[@]}" # .7z + popd >/dev/null || die + fi +} + +src_install() { + insinto /usr/share/qt6-doc # QT6_DOCDIR + use qch && doins -r docs/*.qch + + if use html; then + doins -r docs/*/ # trailing '/' skips .qch files + + # needed not to let Qt Creator believe that these examples exist + use examples || + find "${ED}" -type f -name examples-manifest.xml -delete || die + elif use examples; then + # still need docs tarballs even with USE="-html -qch" + local dir + for dir in docs/*/; do + if [[ -e ${dir}/examples-manifest.xml ]]; then + insinto /usr/share/qt6-doc/"${dir#*/*/}" + doins ${dir}/examples-manifest.xml + fi + done + fi + + insinto /usr/share/qt6/examples # QT6_EXAMPLESDIR + use examples && doins -r examples/*/ +} |