summaryrefslogtreecommitdiff
path: root/gui-libs
diff options
context:
space:
mode:
Diffstat (limited to 'gui-libs')
-rw-r--r--gui-libs/Manifest.gzbin3802 -> 3799 bytes
-rw-r--r--gui-libs/display-manager-init/Manifest2
-rw-r--r--gui-libs/display-manager-init/display-manager-init-1.0-r3.ebuild54
-rw-r--r--gui-libs/display-manager-init/files/display-manager.initd-r1236
-rw-r--r--gui-libs/gtk/Manifest2
-rw-r--r--gui-libs/gtk/gtk-4.6.7.ebuild212
6 files changed, 214 insertions, 292 deletions
diff --git a/gui-libs/Manifest.gz b/gui-libs/Manifest.gz
index b776ce18d1ea..126cadcb3c7f 100644
--- a/gui-libs/Manifest.gz
+++ b/gui-libs/Manifest.gz
Binary files differ
diff --git a/gui-libs/display-manager-init/Manifest b/gui-libs/display-manager-init/Manifest
index d8e15bd02b5d..0389c689d130 100644
--- a/gui-libs/display-manager-init/Manifest
+++ b/gui-libs/display-manager-init/Manifest
@@ -1,9 +1,7 @@
AUX display-manager-setup.initd 224 BLAKE2B 8513295b8c315d71521ac24fc9da1878e32044ebe7b6e37afb77a25eb8ec449568a82e516fd04de7fb2b0f0b5ff355a54a257041616d0035b25d0ae191e336e4 SHA512 d0048fc5b3c0fd92a44b71f7b8132e35787e42095c22f53aa41c10505c219eb25015f76163069aab7ebb6f0ac9feeac62d1b74682fd3947e835ea5de36957727
AUX display-manager.confd 608 BLAKE2B 814b4d36ce74d2f70a771cda31c3b9f6e21246bef681607d2687b3ed51f1baab8752fe94ad1021b9fd81b3e8444a328d2c1de83718534ea722ef9dadcbdca164 SHA512 40fb28fb6ac06b59fed9fec86816a444f53ea499bb9a7e7a072a5a932b45a29f830b9da9de0954b1f5cb21903c08ff5c997db2e32ee0bb1a300cd6c070cc8aa6
-AUX display-manager.initd-r1 6201 BLAKE2B d30dd3c2cfc651c48e4f5a25ddae401894c994286fd5dd5c3668de92e107fdd36a7c14d47f0c080854004aaf6f9cfe7e0a41abee552a69077ed4c795ce834623 SHA512 fdef2ff2eedda6c0b262f5f1fa4b0f3c9bea56b575956b308c2fd145eba204c3cf9f336b6348cc12dd342bcbb64ed2e49f3f82c143249d74c922ac472b786851
AUX display-manager.initd-r2 6237 BLAKE2B a0bf7c7563419f14867568c111a7d3456eadf5037a0d993ed92bc2270fed6f920e1a23602f2de0d287e05844d1a0d52dfc663da9a4bfcdfd3d54615cc8282dca SHA512 084eb98fe656fdfdf669345738009b722dec8cc3eddea5d4df184a70985152e19925b4e4c00d695e5ae29cc8f93aee9d3ac353483df7f3bda25d4fbb1ceea50e
AUX startDM-r1 778 BLAKE2B 134345da401d5d75cb4e3cf79189a2594e508d4afe748bc209e8a93ea754169b205b114fcdb830ed95908788d0bf9cf071cd50de0c37df7fe5b83827f406d766 SHA512 e0cbb1f0ca6d6d3ae3f963bb5508e5b58e03682aba3f35cb2c1819c17e2d94ee240a5dc603f9fd93d22ecca060d131e46c0a0a25685aa8deac280294ff76b8c9
AUX xdm.initd 200 BLAKE2B ec997b7080037a7197a6f75728d9075c846168115d705015afc6518e1e72d815cdf87c2e9e3f3ad950034599e548d015e530cb7821f83b9d289337908455c17a SHA512 4552215cc2cdffa3298a9136e2a22f600f55958d7f74b2d06bbf48568d8034ef24deea27ad9f8d6d100516b0efb4e2688c1f454dc556120f759b1da7fecd877c
-EBUILD display-manager-init-1.0-r3.ebuild 1678 BLAKE2B 7f273bc6a60add881ca14152682cc73397034a6d704a02ad91512746a5765b8910137a157fe650ef8cd2a9925fceee8bc60d7278a316853b87a3eaa611f19432 SHA512 3a1d038ce0a6788ebb21fdd76d8fe0f8a24cede8595d54b0030254a0e7ffae90966185840981626e31ae68322096d36f56c5e6011fc15f95da19d28a9a38e5ee
EBUILD display-manager-init-1.0-r4.ebuild 1678 BLAKE2B 6f660ee635bf419c54e8a72efc4f5a8a8a3044cdfdf71a94d3a170408f5e9587a68d5ca0744e8f880144c18ba20b2af70086732d9b1cdbf0fb3c3351554e21b8 SHA512 c7ecf09d9a875ed9216a9e2b343f996610d20427d4c9f5e427784a6700f8473c720c4051011ad99e5c4ea95177ead20ac0fe251adbfbdbe73e400759f066cb2a
MISC metadata.xml 259 BLAKE2B cc7abf54ed4398a2cfb77310c63f5fae3e432488b0c7466f8148c5d009d38aa4ca78eef78712f0b7b6aca6710aab1dfe3c07440f36179fde03f8a97a49b3c080 SHA512 6f50c5d3c735db431156906312a7c1dab3723d8c9e51d15148b92d97a998221c6838eb926f36c6b924c9fc8a6a64ba904e36482ff5164867c482502aa638462f
diff --git a/gui-libs/display-manager-init/display-manager-init-1.0-r3.ebuild b/gui-libs/display-manager-init/display-manager-init-1.0-r3.ebuild
deleted file mode 100644
index f7ac8e8f201e..000000000000
--- a/gui-libs/display-manager-init/display-manager-init-1.0-r3.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="RC init files for starting display and login managers"
-HOMEPAGE="https://wiki.gentoo.org/wiki/Project:X11"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-
-S="${WORKDIR}"
-
-RDEPEND="
- sys-apps/gentoo-functions
- !<=sys-apps/sysvinit-2.98
- !<=x11-apps/xinit-1.4.1
- !<=x11-base/xorg-server-1.20.10
- !=x11-base/xorg-server-1.20.10-r2
-"
-
-src_install() {
- newinitd "${FILESDIR}"/display-manager-setup.initd display-manager-setup
- newinitd "${FILESDIR}"/display-manager.initd-r1 display-manager
- newinitd "${FILESDIR}"/xdm.initd xdm
- newconfd "${FILESDIR}"/display-manager.confd display-manager
- newbin "${FILESDIR}"/startDM-r1 startDM
- # backwards compatibility
- dosym "${ESYSROOT}"/usr/bin/startDM /etc/X11/startDM.sh
-}
-
-pkg_preinst() {
- if [[ ${REPLACING_VERSIONS} == "" && -f "${EROOT}"/etc/conf.d/xdm && ! -f "${EROOT}"/etc/conf.d/display-manager ]]; then
- cp -a "${EROOT}"/etc/conf.d/{xdm,display-manager} || die
- fi
- local rlevel using_xdm
- using_xdm=no
- for rlevel in boot default sysinit; do
- if [[ -e "${EROOT}"/etc/runlevels/${rlevel}/xdm ]]; then
- using_xdm=yes
- fi
- done
- if [[ "${using_xdm}" = "yes" ]]; then
- ewarn "The 'xdm' service has been replaced by new 'display-manager'"
- ewarn "service, please switch now:"
- ewarn
- ewarn " # rc-update del xdm default"
- ewarn " # rc-update add display-manager default"
- ewarn
- ewarn "Remember to run etc-update or dispatch-conf to update the"
- ewarn "config protected service files."
- fi
-}
diff --git a/gui-libs/display-manager-init/files/display-manager.initd-r1 b/gui-libs/display-manager-init/files/display-manager.initd-r1
deleted file mode 100644
index 9402e969f4a5..000000000000
--- a/gui-libs/display-manager-init/files/display-manager.initd-r1
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License, v2
-
-# This is here to serve as a note to myself, and future developers.
-#
-# Any Display manager (gdm,kdm,xdm) has the following problem: if
-# it is started before any getty, and no vt is specified, it will
-# usually run on vt2. When the getty on vt2 then starts, and the
-# DM is already started, the getty will take control of the keyboard,
-# leaving us with a "dead" keyboard.
-#
-# Resolution: add the following line to /etc/inittab
-#
-# x:a:once:/usr/bin/startDM
-#
-# and have /usr/bin/startDM start the DM in daemon mode if
-# a lock is present (with the info of what DM should be started),
-# else just fall through.
-#
-# How this basically works, is the "a" runlevel is a additional
-# runlevel that you can use to fork processes with init, but the
-# runlevel never gets changed to this runlevel. Along with the "a"
-# runlevel, the "once" key word means that startDM will only be
-# run when we specify it to run, thus eliminating respawning
-# startDM when "display-manager" is not added to the default
-# runlevel, as was done previously.
-#
-# This script then just calls "telinit a", and init will run
-# /usr/bin/startDM after the current runlevel completes (this
-# script should only be added to the actual runlevel the user is
-# using).
-#
-# Martin Schlemmer
-# aka Azarah
-# 04 March 2002
-
-depend() {
- need localmount display-manager-setup
-
- # this should start as early as possible
- # we can't do 'before *' as that breaks it
- # (#139824) Start after ypbind and autofs for network authentication
- # (#145219 #180163) Could use lirc mouse as input device
- # (#70689 comment #92) Start after consolefont to avoid display corruption
- # (#291269) Start after quota, since some dm need readable home
- # (#390609) gdm-3 will fail when dbus is not running
- # (#366753) starting keymaps after X causes problems
- # (#768834) race condition with elogind
- after bootmisc consolefont modules netmount
- after readahead-list ypbind autofs openvpn gpm lircmd
- after quota keymaps
- after elogind
- before alsasound
-
- # Start before GUI
- use dbus xfs
-}
-
-setup_dm() {
- local MY_XDM
-
- MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]')
-
- NAME=
- case "${MY_XDM}" in
- kdm|kde)
- # Load our root path from profile.env
- # Needed for kdm
- PATH=${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}")
- EXE=/usr/bin/kdm
- PIDFILE=/run/kdm.pid
- ;;
- entrance*)
- EXE=/usr/sbin/entrance
- PIDFILE=/run/entrance.pid
- ;;
- gdm|gnome)
- # gdm-3 and above has different paths
- if [ -f /usr/sbin/gdm ]; then
- EXE=/usr/sbin/gdm
- PIDFILE=/run/gdm/gdm.pid
- START_STOP_ARGS="--background"
- AUTOCLEAN_CGROUP="yes"
- else
- EXE=/usr/bin/gdm
- PIDFILE=/run/gdm.pid
- fi
- [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary
- ;;
- greetd)
- EXE=/usr/bin/greetd
- PIDFILE=/run/greetd.pid
- START_STOP_ARGS="-m --background"
- ;;
- wdm)
- EXE=/usr/bin/wdm
- PIDFILE=
- ;;
- gpe)
- EXE=/usr/bin/gpe-dm
- PIDFILE=/run/gpe-dm.pid
- ;;
- lxdm)
- EXE=/usr/sbin/lxdm-binary
- PIDFILE=/run/lxdm.pid
- START_STOP_ARGS="--background"
- ;;
- lightdm)
- EXE=/usr/sbin/lightdm
- PIDFILE=/run/lightdm.pid
- START_STOP_ARGS="--background"
- ;;
- sddm)
- EXE="/usr/bin/sddm"
- START_STOP_ARGS="-m --background"
- PIDFILE=/run/sddm.pid
- ;;
- *)
- # first find out if there is such executable
- EXE="$(command -v ${MY_XDM} 2>/dev/null)"
- PIDFILE="/run/${MY_XDM}.pid"
-
- # warn user that they are doing sick things if the exe was not found
- if [ -z "${EXE}" ]; then
- echo "ERROR: Your XDM value is invalid."
- echo " No ${MY_XDM} executable could be found on your system."
- fi
- ;;
- esac
-
- if ! [ -x "${EXE}" ]; then
- EXE=/usr/bin/xdm
- PIDFILE=/run/xdm.pid
- if ! [ -x "/usr/bin/xdm" ]; then
- echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm,"
- echo " or install x11-apps/xdm package"
- eend 255
- fi
- fi
-}
-
-# Check to see if something is defined on our VT
-vtstatic() {
- if [ -e /etc/inittab ] ; then
- grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab
- elif [ -e /etc/ttys ] ; then
- grep -q "^ttyv$(($1 - 1))" /etc/ttys
- else
- return 1
- fi
-}
-
-start() {
- local EXE NAME PIDFILE AUTOCLEAN_CGROUP
- setup_dm
-
- if [ -f /run/.nogui ]; then
- einfo "Skipping ${EXE##*/}, /run/.nogui found or 'nogui' bootparam passed."
- rm /run/.nogui
- return 0
- fi
-
- ebegin "Setting up ${EXE##*/}"
-
- # save the prefered DM
- save_options "service" "${EXE}"
- save_options "name" "${NAME}"
- save_options "pidfile" "${PIDFILE}"
- save_options "start_stop_args" "${START_STOP_ARGS}"
- save_options "autoclean_cgroup" "${AUTOCLEAN_CGROUP:-no}"
-
- if [ -n "${CHECKVT-y}" ] ; then
- if vtstatic "${CHECKVT:-7}" ; then
- if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then
- ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later"
- telinit a >/dev/null 2>&1
- return 0
- else
- eerror "Something is already defined on VT ${CHECKVT:-7}, not starting"
- return 1
- fi
- fi
- fi
-
- /usr/bin/startDM
- eend 0
-}
-
-stop() {
- local curvt retval
-
- retval=0
- if [ -t 0 ]; then
- if type fgconsole >/dev/null 2>&1; then
- curvt=$(fgconsole 2>/dev/null)
- else
- curvt=$(tty)
- case "${curvt}" in
- /dev/ttyv[0-9]*) curvt=${curvt#/dev/ttyv} ;;
- *) curvt= ;;
- esac
- fi
- fi
- local myexe myname mypidfile myservice
- myexe=$(get_options "service")
- myname=$(get_options "name")
- mypidfile=$(get_options "pidfile")
- myservice=${myexe##*/}
- yesno "${rc_cgroup_cleanup:-no}" || rc_cgroup_cleanup=$(get_options "autoclean_cgroup")
-
- [ -z "${myexe}" ] && return 0
-
- ebegin "Stopping ${myservice}"
-
- if start-stop-daemon --quiet --test --stop --exec "${myexe}" 2>/dev/null; then
- start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \
- "${mypidfile:+--pidfile}" "${mypidfile}" \
- "${myname:+--name}" "${myname}"
- retval=${?}
- fi
-
- # switch back to original vt
- if [ -n "${curvt}" ]; then
- if type chvt >/dev/null 2>&1; then
- chvt "${curvt}"
- else
- vidcontrol -s "$((curvt + 1))"
- fi
- fi
-
- eend ${retval} "Error stopping ${myservice}"
- return ${retval}
-}
-
-# vim: set ts=4 :
diff --git a/gui-libs/gtk/Manifest b/gui-libs/gtk/Manifest
index a78c62a2b87a..99dc2c47991c 100644
--- a/gui-libs/gtk/Manifest
+++ b/gui-libs/gtk/Manifest
@@ -1,3 +1,5 @@
DIST gtk-4.6.6.tar.xz 23085304 BLAKE2B 2f0eacb9aaa3fad4e8d99feeadc93e04151f6c4552412d5b7485b972e97c8c9a7296143b39791e9e3230546770174a208ba6906179b9fed37414ee83a1980abb SHA512 b743d99029d7d51db19396641023eefd5d25bbacbd89ad6660d43e382b26fe6cc5e9ce8f0dbb3f4ac7d2143db617ea0c2e2d3cc8926fc93d735eb76ffb2f8309
+DIST gtk-4.6.7.tar.xz 22885556 BLAKE2B ff3647fbb87fb7743c6aaf84f4de463275ff5816ccdba7f29425ee5268677e53ef56507ddd71447def5a1707e7509958068d5b8a7c64816cc3a1541691d7a262 SHA512 7f9068f66b472e796c1611625a34466b13aa51bce2dfc7661928e6d8087ed39ed0f6adf47a6691609b85540c588621bebc5951e81435277071abe7d2facf28bb
EBUILD gtk-4.6.6.ebuild 5745 BLAKE2B c090fbea68e8d23d71acbffa6edb1aeeb8e608b590bdd91b4cc62cfe87dc2d1cf9188b32f40ced56dab76720f405cd72b96a9122025b139baf31d30b410d378a SHA512 8882fa618521b5142904b8cee86eab996f3ab11cefa3727e9b3e58b409cbe9968a644f64790233f8629b8dcc0ba63e645c9b480e929921c5c2440cef2d8e3238
+EBUILD gtk-4.6.7.ebuild 5751 BLAKE2B 86ced14f38da4d73952ba9696731fbb320ca0aeb982f10d94d59431c45e7f085a4f8b42eeb86ebb8a92b054e9692168ce10daf0cf95d3f079f1962325186fa21 SHA512 4c57a850a9aafe4a8f48c88d7a97d0652fbdbbda2cab4689fe6f5665526f54067c1212aeb9261c2f471a26490b602ee396ff6d7ce376021d3bc0c3b676da1fb6
MISC metadata.xml 690 BLAKE2B 4ae68aa63a0aea931c3584ac288ac62226bc1a78395dad3e7401f1988d4ab45d3895eb8149f1c06a849e1e27926097d8aa09dd5a33a2bf8b4ce52e4e1694b1e0 SHA512 ff6bd9799fe0f9e3e922744ed78cc9db278801e6e2d309fbf146535b061670f5f9162946ddf76cdf3d0e4defca16657ba39b3af81e5bcf2423385c74fc299779
diff --git a/gui-libs/gtk/gtk-4.6.7.ebuild b/gui-libs/gtk/gtk-4.6.7.ebuild
new file mode 100644
index 000000000000..5901072e16fc
--- /dev/null
+++ b/gui-libs/gtk/gtk-4.6.7.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+inherit gnome.org gnome2-utils meson optfeature python-any-r1 virtualx xdg
+
+DESCRIPTION="GTK is a multi-platform toolkit for creating graphical user interfaces"
+HOMEPAGE="https://www.gtk.org/ https://gitlab.gnome.org/GNOME/gtk/"
+
+LICENSE="LGPL-2+"
+SLOT="4"
+IUSE="aqua broadway colord cups examples ffmpeg gstreamer +introspection sysprof test vulkan wayland +X cpu_flags_x86_f16c"
+REQUIRED_USE="
+ || ( aqua wayland X )
+ test? ( introspection )
+"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+COMMON_DEPEND="
+ >=dev-libs/fribidi-0.19.7
+ >=dev-libs/glib-2.66.0:2
+ >=media-libs/graphene-1.9.1[introspection?]
+ >=media-libs/libepoxy-1.4[egl,X(+)?]
+ >=x11-libs/cairo-1.14[aqua?,glib,svg,X?]
+ >=x11-libs/gdk-pixbuf-2.30:2[introspection?]
+ >=x11-libs/pango-1.50.0[introspection?]
+ media-libs/libpng:0=
+ media-libs/tiff:0=
+ media-libs/libjpeg-turbo:0=
+ >=media-libs/harfbuzz-2.1.0:=
+ x11-misc/shared-mime-info
+
+ colord? ( >=x11-misc/colord-0.1.9:0= )
+ cups? ( >=net-print/cups-2.0 )
+ ffmpeg? ( media-video/ffmpeg )
+ gstreamer? (
+ >=media-libs/gst-plugins-bad-1.12.3
+ >=media-libs/gst-plugins-base-1.12.3[opengl]
+ )
+ introspection? ( >=dev-libs/gobject-introspection-1.39:= )
+ vulkan? ( media-libs/vulkan-loader:= )
+ wayland? (
+ >=dev-libs/wayland-1.20.0
+ >=dev-libs/wayland-protocols-1.23
+ media-libs/mesa[wayland]
+ >=x11-libs/libxkbcommon-0.2
+ )
+ X? (
+ >=app-accessibility/at-spi2-atk-2.5.3
+ media-libs/fontconfig
+ media-libs/mesa[X(+)]
+ x11-libs/libX11
+ >=x11-libs/libXi-1.8
+ x11-libs/libXext
+ >=x11-libs/libXrandr-1.5
+ x11-libs/libXcursor
+ x11-libs/libXfixes
+ x11-libs/libXdamage
+ x11-libs/libXinerama
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
+ X? ( x11-base/xorg-proto )
+"
+RDEPEND="${COMMON_DEPEND}
+ >=dev-util/gtk-update-icon-cache-3
+"
+# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710
+PDEPEND="
+ gnome-base/librsvg
+ >=x11-themes/adwaita-icon-theme-3.14
+"
+BDEPEND="
+ dev-libs/gobject-introspection-common
+ introspection? (
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ )
+ dev-python/docutils
+ >=dev-util/gdbus-codegen-2.48
+ dev-util/glib-utils
+ >=sys-devel/gettext-0.19.7
+ virtual/pkgconfig
+ test? (
+ dev-libs/glib:2
+ wayland? ( dev-libs/weston[headless] )
+ )
+"
+
+python_check_deps() {
+ python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]" || return
+}
+
+pkg_setup() {
+ use introspection && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+ xdg_environment_reset
+
+ # dev-python/docutils installs rst2man.py, not rst2man
+ sed -i -e "s/'rst2man'/'rst2man.py'/" docs/reference/gtk/meson.build || die
+ # Nothing should use gtk4-update-icon-cache and an unversioned one is shipped by dev-util/gtk-update-icon-cache
+ sed -i -e '/gtk4-update-icon-cache/d' tools/meson.build || die
+ # Workaround RWX ELF sections, https://gitlab.gnome.org/GNOME/gtk/-/issues/4598
+ sed -i -e 's/^ld =.*/ld = disabler()/g' gtk/meson.build demos/gtk-demo/meson.build demos/widget-factory/meson.build || die
+ sed -i -e 's/^objcopy =.*/objcopy = disabler()/g' gtk/meson.build demos/gtk-demo/meson.build demos/widget-factory/meson.build || die
+}
+
+src_configure() {
+ local emesonargs=(
+ # GDK backends
+ $(meson_use X x11-backend)
+ $(meson_use wayland wayland-backend)
+ $(meson_use broadway broadway-backend)
+ -Dwin32-backend=false
+ $(meson_use aqua macos-backend)
+
+ # Media backends
+ $(meson_feature ffmpeg media-ffmpeg)
+ $(meson_feature gstreamer media-gstreamer)
+
+ # Print backends
+ $(meson_feature cups print-cups)
+
+ # Optional dependencies
+ $(meson_feature vulkan)
+ -Dcloudproviders=disabled # cloudprovider is not packaged in Gentoo yet
+ $(meson_feature sysprof)
+ -Dtracker=disabled # tracker3 is not packaged in Gentoo yet
+ $(meson_feature colord)
+ # Expected to fail with GCC < 11
+ # See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71993
+ $(meson_feature cpu_flags_x86_f16c f16c)
+
+ # Documentation and introspection
+ -Dgtk_doc=false # we ship pregenerated API docs from tarball
+ -Dman-pages=true
+ $(meson_feature introspection)
+
+ # Demos and binaries
+ $(meson_use examples build-examples)
+ $(meson_use examples demos)
+ $(meson_use test build-tests)
+ -Dinstall-tests=false
+ )
+ meson_src_configure
+}
+
+src_test() {
+ "${BROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die
+
+ if use X; then
+ einfo "Running tests under X"
+ GSETTINGS_SCHEMA_DIR="${S}/gtk" virtx meson_src_test --setup=x11
+ fi
+
+ if use wayland; then
+ einfo "Running tests under Weston"
+
+ export XDG_RUNTIME_DIR="$(mktemp -p $(pwd) -d xdg-runtime-XXXXXX)"
+
+ weston --backend=headless-backend.so --socket=wayland-5 --idle-time=0 &
+ compositor=$!
+ export WAYLAND_DISPLAY=wayland-5
+
+ GSETTINGS_SCHEMA_DIR="${S}/gtk" meson_src_test --setup=wayland
+
+ exit_code=$?
+ kill ${compositor}
+ fi
+}
+
+src_install() {
+ meson_src_install
+
+ insinto /usr/share/gtk-doc/html
+ # This will install API docs specific to X11 and wayland regardless of USE flags, but this is intentional
+ doins -r "${S}"/docs/reference/{gtk/gtk4,gsk/gsk4,gdk/gdk4{,-wayland,-x11}}
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+ gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+
+ if ! has_version "app-text/evince"; then
+ elog "Please install app-text/evince for print preview functionality."
+ elog "Alternatively, check \"gtk-print-preview-command\" documentation and"
+ elog "add it to your settings.ini file."
+ fi
+
+ if use examples ; then
+ optfeature "syntax highlighting in gtk4-demo" app-text/highlight
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}