* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/, eclass/
@ 2022-08-02 21:51 Sam James
0 siblings, 0 replies; only message in thread
From: Sam James @ 2022-08-02 21:51 UTC (permalink / raw
To: gentoo-commits
commit: 96837e4d39ffa0a8da392fa0039b80c72e56c234
Author: Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
AuthorDate: Wed May 25 22:40:57 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Aug 2 21:49:46 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96837e4d
dev-qt/qtbase: new package
Version 6.3.1 qtbase in non-split form.
Bug: https://bugs.gentoo.org/838970
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org>
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-qt/qtbase/Manifest | 1 +
dev-qt/qtbase/metadata.xml | 38 ++++++++
dev-qt/qtbase/qtbase-6.3.1.ebuild | 178 ++++++++++++++++++++++++++++++++++++++
eclass/qt6-build.eclass | 161 ++++++++++++++++++++++++++++++++++
4 files changed, 378 insertions(+)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
new file mode 100644
index 000000000000..7501b9d04ca4
--- /dev/null
+++ b/dev-qt/qtbase/Manifest
@@ -0,0 +1 @@
+DIST qtbase-everywhere-src-6.3.1.tar.xz 47118260 BLAKE2B b8b819330011033275d9532219bf09cce3ef1e7d8e50945b1cdeceddf3742c1ee4a1bba9d4340f1f6b48fd59659920c3652abf21bbd8b4bbed0c635a3caafb0c SHA512 5c4304dc1f5fa80201b61c9c8dbf4c3449506a243ea1f87e336dc3641a37b9d40c2aa4a93190cc69ddde0f349c74e327c35de5f46de888ddfd49616903e8a7b5
diff --git a/dev-qt/qtbase/metadata.xml b/dev-qt/qtbase/metadata.xml
new file mode 100644
index 000000000000..809758b7ae0e
--- /dev/null
+++ b/dev-qt/qtbase/metadata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>qt@gentoo.org</email>
+ <name>Gentoo Qt Project</name>
+ </maintainer>
+ <use>
+ <flag name="brotli">Enable support for Brotli decompression</flag>
+ <flag name="concurrent">Build Qt6Concurrent module</flag>
+ <flag name="dbus">Build Qt6DBus module</flag>
+ <flag name="egl">Enable EGL integration</flag>
+ <flag name="eglfs">Build the EGL Full Screen/Single Surface platform plugin</flag>
+ <flag name="evdev">Enable support for input devices via evdev</flag>
+ <flag name="gssapi">Enable support for GSSAPI (<pkg>virtual/krb5</pkg>)</flag>
+ <flag name="gtk">Build the GTK platform theme plugin</flag>
+ <flag name="gui">Build Qt6Gui module</flag>
+ <flag name="libinput">Enable support for input devices via <pkg>dev-libs/libinput</pkg></flag>
+ <flag name="libproxy">Use <pkg>net-libs/libproxy</pkg> for automatic HTTP/SOCKS proxy configuration</flag>
+ <flag name="network">Build Qt6Network module</flag>
+ <flag name="sql">Build Qt6Sql module</flag>
+ <flag name="systemd">Enable native journald logging support</flag>
+ <flag name="tslib">Enable support for touchscreen devices via <pkg>x11-libs/tslib</pkg></flag>
+ <flag name="tuio">Build plugin to receive touch events over the TUIO protocol</flag>
+ <flag name="vulkan">Enable support for Vulkan</flag>
+ <flag name="widgets">Build Qt6Widgets module</flag>
+ <flag name="X">Build the XCB platform plugin and enable X11 integration</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://bugreports.qt.io/</bugs-to>
+ <doc>https://doc.qt.io/</doc>
+ </upstream>
+ <slots>
+ <subslots>
+ Must only be used by packages that are known to use private parts of the Qt API.
+ </subslots>
+ </slots>
+</pkgmetadata>
diff --git a/dev-qt/qtbase/qtbase-6.3.1.ebuild b/dev-qt/qtbase/qtbase-6.3.1.ebuild
new file mode 100644
index 000000000000..36931e0ea933
--- /dev/null
+++ b/dev-qt/qtbase/qtbase-6.3.1.ebuild
@@ -0,0 +1,178 @@
+# Copyright 2021-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit qt6-build
+
+DESCRIPTION="Cross-platform application development framework"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64"
+fi
+
+# Qt Modules
+# TODO: Restore/patch xml flag support (seems fixed in 6.9999).
+IUSE="+concurrent +dbus +gui +network +sql opengl +widgets zstd"
+REQUIRED_USE="
+ opengl? ( gui )
+ widgets? ( gui )
+ X? ( || ( evdev libinput ) )
+"
+
+QTGUI_IUSE="accessibility egl eglfs evdev gles2-only +jpeg +libinput tslib tuio vulkan +X"
+QTNETWORK_IUSE="brotli gssapi libproxy sctp +ssl vnc"
+QTSQL_IUSE="freetds mysql oci8 odbc postgres +sqlite"
+IUSE+=" ${QTGUI_IUSE} ${QTNETWORK_IUSE} ${QTSQL_IUSE} cups gtk icu systemd +udev"
+# QtPrintSupport = QtGui + QtWidgets enabled.
+# ibus = xkbcommon + dbus, and xkbcommon needs either libinput or X
+REQUIRED_USE+="
+ $(printf '%s? ( gui ) ' ${QTGUI_IUSE//+/})
+ $(printf '%s? ( network ) ' ${QTNETWORK_IUSE//+/})
+ $(printf '%s? ( sql ) ' ${QTSQL_IUSE//+/})
+ accessibility? ( dbus X )
+ cups? ( gui widgets )
+ eglfs? ( egl )
+ gtk? ( widgets )
+ gui? ( || ( eglfs X ) || ( libinput X ) )
+ libinput? ( udev )
+ sql? ( || ( freetds mysql oci8 odbc postgres sqlite ) )
+ vnc? ( gui )
+ X? ( gles2-only? ( egl ) )
+"
+
+# TODO:
+# qtimageformats: mng not done yet, qtimageformats.git upstream commit 9443239c
+# qtnetwork: connman, networkmanager
+DEPEND="
+ app-crypt/libb2
+ dev-libs/double-conversion:=
+ dev-libs/glib:2
+ dev-libs/libpcre2:=[pcre16,unicode]
+ dev-util/gtk-update-icon-cache
+ media-libs/fontconfig
+ >=media-libs/freetype-2.6.1:2
+ >=media-libs/harfbuzz-1.6.0:=
+ media-libs/tiff:0
+ >=sys-apps/dbus-1.4.20
+ sys-libs/zlib:=
+ brotli? ( app-arch/brotli:= )
+ evdev? ( sys-libs/mtdev )
+ freetds? ( dev-db/freetds )
+ gles2-only? ( media-libs/libglvnd )
+ !gles2-only? ( media-libs/libglvnd[X] )
+ gssapi? ( virtual/krb5 )
+ gtk? (
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ x11-libs/pango
+ )
+ gui? ( media-libs/libpng:0= )
+ icu? ( dev-libs/icu:= )
+ !icu? ( virtual/libiconv )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ libinput? (
+ dev-libs/libinput:=
+ >=x11-libs/libxkbcommon-0.5.0
+ )
+ libproxy? ( net-libs/libproxy )
+ mysql? ( dev-db/mysql-connector-c:= )
+ oci8? ( dev-db/oracle-instantclient:=[sdk] )
+ odbc? ( dev-db/unixODBC )
+ postgres? ( dev-db/postgresql:* )
+ sctp? ( kernel_linux? ( net-misc/lksctp-tools ) )
+ sqlite? ( dev-db/sqlite:3 )
+ ssl? ( dev-libs/openssl:= )
+ systemd? ( sys-apps/systemd:= )
+ tslib? ( >=x11-libs/tslib-1.21 )
+ udev? ( virtual/libudev:= )
+ vulkan? ( dev-util/vulkan-headers )
+ X? (
+ x11-libs/libdrm
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ >=x11-libs/libxcb-1.12:=[xkb]
+ >=x11-libs/libxkbcommon-0.5.0[X]
+ x11-libs/xcb-util-image
+ x11-libs/xcb-util-keysyms
+ x11-libs/xcb-util-renderutil
+ x11-libs/xcb-util-wm
+ )
+ zstd? ( app-arch/zstd:= )
+"
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ local mycmakeargs=(
+ -DINSTALL_BINDIR=${QT6_BINDIR}
+ -DINSTALL_INCLUDEDIR=${QT6_HEADERDIR}
+ -DINSTALL_LIBDIR=${QT6_LIBDIR}
+ -DINSTALL_ARCHDATADIR=${QT6_ARCHDATADIR}
+ -DINSTALL_PLUGINSDIR=${QT6_PLUGINDIR}
+ -DINSTALL_LIBEXECDIR=${QT6_LIBEXECDIR}
+ -DINSTALL_QMLDIR=${QT6_QMLDIR}
+ -DINSTALL_DATADIR=${QT6_DATADIR}
+ -DINSTALL_DOCDIR=${QT6_DOCDIR}
+ -DINSTALL_TRANSLATIONSDIR=${QT6_TRANSLATIONDIR}
+ -DINSTALL_SYSCONFDIR=${QT6_SYSCONFDIR}
+ -DINSTALL_MKSPECSDIR=${QT6_ARCHDATADIR}/mkspecs
+ -DINSTALL_EXAMPLESDIR=${QT6_EXAMPLESDIR}
+ -DQT_FEATURE_androiddeployqt=OFF
+ $(qt_feature concurrent)
+ $(qt_feature dbus)
+ $(qt_feature gui)
+ $(qt_feature gui testlib)
+ $(qt_feature icu)
+ $(qt_feature network)
+ $(qt_feature sql)
+ $(qt_feature systemd journald)
+ $(qt_feature udev libudev)
+ $(qt_feature zstd)
+ )
+ use gui && mycmakeargs+=(
+ $(qt_feature accessibility accessibility_atspi_bridge)
+ $(qt_feature egl)
+ $(qt_feature eglfs eglfs_egldevice)
+ $(qt_feature eglfs eglfs_gbm)
+ $(qt_feature evdev)
+ $(qt_feature evdev mtdev)
+ -DQT_FEATURE_gif=ON
+ $(qt_feature jpeg)
+ $(qt_feature opengl)
+ $(qt_feature gles2-only opengles2)
+ $(qt_feature libinput)
+ $(qt_feature tslib)
+ $(qt_feature tuio tuiotouch)
+ $(qt_feature vulkan)
+ $(qt_feature widgets)
+ $(qt_feature X xcb)
+ $(qt_feature X xcb_xlib)
+ )
+ use widgets && mycmakeargs+=(
+ $(qt_feature cups)
+ $(qt_feature gtk gtk3)
+ )
+ if use libinput || use X; then
+ mycmakeargs+=( -DQT_FEATURE_xkbcommon=ON )
+ fi
+ use network && mycmakeargs+=(
+ $(qt_feature brotli)
+ $(qt_feature gssapi)
+ $(qt_feature libproxy)
+ $(qt_feature sctp)
+ $(qt_feature ssl openssl)
+ $(qt_feature vnc)
+ )
+ use sql && mycmakeargs+=(
+ $(qt_feature freetds sql_tds)
+ $(qt_feature mysql sql_mysql)
+ $(qt_feature oci8 sql_oci)
+ $(qt_feature odbc sql_odbc)
+ $(qt_feature postgres sql_psql)
+ $(qt_feature sqlite sql_sqlite)
+ $(qt_feature sqlite system_sqlite)
+ )
+
+ qt6-build_src_configure
+}
diff --git a/eclass/qt6-build.eclass b/eclass/qt6-build.eclass
new file mode 100644
index 000000000000..139fb03e17f4
--- /dev/null
+++ b/eclass/qt6-build.eclass
@@ -0,0 +1,161 @@
+# Copyright 2021-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: qt6-build.eclass
+# @MAINTAINER:
+# qt@gentoo.org
+# @SUPPORTED_EAPIS: 8
+# @BLURB: Eclass for Qt6 split ebuilds.
+# @DESCRIPTION:
+# This eclass contains various functions that are used when building Qt6.
+# Requires EAPI 8.
+
+if [[ ${CATEGORY} != dev-qt ]]; then
+ die "qt6-build.eclass is only to be used for building Qt 6"
+fi
+
+case ${EAPI} in
+ 8) : ;;
+ *) die "qt6-build.eclass: unsupported EAPI=${EAPI:-0}" ;;
+esac
+
+# @ECLASS-VARIABLE: QT6_MODULE
+# @PRE_INHERIT
+# @DESCRIPTION:
+# The upstream name of the module this package belongs to. Used for
+# SRC_URI and EGIT_REPO_URI. Must be set before inheriting the eclass.
+: ${QT6_MODULE:=${PN}}
+
+# @ECLASS-VARIABLE: VIRTUALX_REQUIRED
+# @DESCRIPTION:
+# For proper description see virtualx.eclass man page.
+# Here we redefine default value to be manual, if your package needs virtualx
+# for tests you should proceed with setting VIRTUALX_REQUIRED=test.
+: ${VIRTUALX_REQUIRED:=manual}
+
+inherit cmake virtualx
+
+HOMEPAGE="https://www.qt.io/"
+LICENSE="|| ( GPL-2 GPL-3 LGPL-3 ) FDL-1.3"
+SLOT=6/$(ver_cut 1-2)
+
+QT6_MINOR_VERSION=$(ver_cut 2)
+readonly QT6_MINOR_VERSION
+
+case ${PV} in
+ 6.9999)
+ # git dev branch
+ QT6_BUILD_TYPE="live"
+ EGIT_BRANCH="dev"
+ ;;
+ 6.?.9999|6.??.9999)
+ # git stable branch
+ QT6_BUILD_TYPE="live"
+ EGIT_BRANCH=${PV%.9999}
+ ;;
+ *_alpha*|*_beta*|*_rc*)
+ # development release
+ QT6_BUILD_TYPE="release"
+ MY_P=${QT6_MODULE}-everywhere-src-${PV/_/-}
+ SRC_URI="https://download.qt.io/development_releases/qt/${PV%.*}/${PV/_/-}/submodules/${MY_P}.tar.xz"
+ S=${WORKDIR}/${MY_P}
+ ;;
+ *)
+ # official stable release
+ QT6_BUILD_TYPE="release"
+ MY_P=${QT6_MODULE}-everywhere-src-${PV}
+ SRC_URI="https://download.qt.io/official_releases/qt/${PV%.*}/${PV}/submodules/${MY_P}.tar.xz"
+ S=${WORKDIR}/${MY_P}
+ ;;
+esac
+readonly QT6_BUILD_TYPE
+
+EGIT_REPO_URI=(
+ "https://code.qt.io/qt/${QT6_MODULE}.git"
+ "https://github.com/qt/${QT6_MODULE}.git"
+)
+[[ ${QT6_BUILD_TYPE} == live ]] && inherit git-r3
+
+# @ECLASS-VARIABLE: QT6_BUILD_DIR
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# Build directory for out-of-source builds.
+: ${QT6_BUILD_DIR:=${S}_build}
+
+IUSE="debug test"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+ RESTRICT="test" # bug 457182
+else
+ RESTRICT="!test? ( test )"
+fi
+
+BDEPEND="
+ dev-lang/perl
+ virtual/pkgconfig
+"
+# TODO: Tests have not been split from qtbase.
+#if [[ ${PN} != qttest ]]; then
+# DEPEND+=" test? ( ~dev-qt/qttest-${PV} )"
+#fi
+
+EXPORT_FUNCTIONS src_prepare src_configure
+
+###### Phase functions ######
+
+# @FUNCTION: qt6-build_src_prepare
+# @DESCRIPTION:
+# Prepares the environment and patches the sources if necessary.
+qt6-build_src_prepare() {
+ qt6_prepare_env
+
+ cmake_src_prepare
+}
+
+# @FUNCTION: qt6-build_src_configure
+# @DESCRIPTION:
+# Configures sources.
+qt6-build_src_configure() {
+ cmake_src_configure
+}
+
+###### Public helpers ######
+
+# @FUNCTION: qt_feature
+# @USAGE: <flag> [feature]
+# @DESCRIPTION:
+# <flag> is the name of a flag in IUSE.
+qt_feature() {
+ [[ $# -ge 1 ]] || die "${FUNCNAME}() requires at least one argument"
+ echo "-DQT_FEATURE_${2:-$1}=$(usex $1 ON OFF)"
+}
+
+###### Internal functions ######
+
+# @FUNCTION: qt6_prepare_env
+# @INTERNAL
+# @DESCRIPTION:
+# Prepares the environment for building Qt.
+qt6_prepare_env() {
+ # setup installation directories
+ # note: keep paths in sync with qmake-utils.eclass
+ QT6_PREFIX=${EPREFIX}/usr
+ QT6_HEADERDIR=${QT6_PREFIX}/include/qt6
+ QT6_LIBDIR=${QT6_PREFIX}/$(get_libdir)
+ QT6_ARCHDATADIR=${QT6_PREFIX}/$(get_libdir)/qt6
+ QT6_BINDIR=${QT6_ARCHDATADIR}/bin
+ QT6_PLUGINDIR=${QT6_ARCHDATADIR}/plugins
+ QT6_LIBEXECDIR=${QT6_ARCHDATADIR}/libexec
+ QT6_IMPORTDIR=${QT6_ARCHDATADIR}/imports
+ QT6_QMLDIR=${QT6_ARCHDATADIR}/qml
+ QT6_DATADIR=${QT6_PREFIX}/share/qt6
+ QT6_DOCDIR=${QT6_PREFIX}/share/qt6-doc
+ QT6_TRANSLATIONDIR=${QT6_DATADIR}/translations
+ QT6_EXAMPLESDIR=${QT6_DATADIR}/examples
+ QT6_TESTSDIR=${QT6_DATADIR}/tests
+ QT6_SYSCONFDIR=${EPREFIX}/etc/xdg
+ readonly QT6_PREFIX QT6_HEADERDIR QT6_LIBDIR QT6_ARCHDATADIR \
+ QT6_BINDIR QT6_PLUGINDIR QT6_LIBEXECDIR QT6_IMPORTDIR \
+ QT6_QMLDIR QT6_DATADIR QT6_DOCDIR QT6_TRANSLATIONDIR \
+ QT6_EXAMPLESDIR QT6_TESTSDIR QT6_SYSCONFDIR
+}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2022-08-02 21:51 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-02 21:51 [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/, eclass/ Sam James
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox