diff options
Diffstat (limited to 'gui-libs/vte')
-rw-r--r-- | gui-libs/vte/Manifest | 2 | ||||
-rw-r--r-- | gui-libs/vte/files/vte-0.66.2-musl-W_EXITCODE.patch | 29 | ||||
-rw-r--r-- | gui-libs/vte/metadata.xml | 13 | ||||
-rw-r--r-- | gui-libs/vte/vte-0.70.0.ebuild | 101 |
4 files changed, 145 insertions, 0 deletions
diff --git a/gui-libs/vte/Manifest b/gui-libs/vte/Manifest new file mode 100644 index 000000000000..4874bf4d208c --- /dev/null +++ b/gui-libs/vte/Manifest @@ -0,0 +1,2 @@ +DIST vte-0.70.0-command-notify.patch.xz 9040 BLAKE2B 108dd05d00409af90b1fd3e9b5c3b0e5586ac80204cef8840fda935204cbc480fec1193e2a0a2782f98e2b094c3caebbfe61cf18631b16921df05cf3808afd22 SHA512 92123e7f5cb6ef876f2b2b108dbef59bce212efebd64cd790d49d9ee3215344acd848eec5d326fe2c3bd236846ed3b896148024390093491b2f6e2f7c46e2bd1 +DIST vte-0.70.0.tar.bz2 499283 BLAKE2B 694cf4dfee334e9b54bb8e47f862167acbb8ffc7ac8e81889acd4786449cb45944a87a5adaa036f46458c350ca2119bb356e90dfa71f03638c9c2b14d2ccb877 SHA512 362b71296ae39a16b55402f524a39b063f66ae237e6e161ccc89ca2bb1f2a5c43f4d706d9f3bfae12a99fdb81c4e70408c7f3eca2c01316950b0a3a1a1d79423 diff --git a/gui-libs/vte/files/vte-0.66.2-musl-W_EXITCODE.patch b/gui-libs/vte/files/vte-0.66.2-musl-W_EXITCODE.patch new file mode 100644 index 000000000000..b629613feaf6 --- /dev/null +++ b/gui-libs/vte/files/vte-0.66.2-musl-W_EXITCODE.patch @@ -0,0 +1,29 @@ +https://gitlab.gnome.org/GNOME/vte/-/issues/72 +https://bugs.gentoo.org/835489 +https://bugs.gentoo/org/554416 + +From 1c1de9e9119cf1e0ef45a594ca9bbf306d2209cb Mon Sep 17 00:00:00 2001 +From: +Date: Fri, 12 Mar 2021 08:41:13 -0600 +Subject: [PATCH] Expanded non-standard W_EXITCODE macro for Musl compatibility + +--- a/src/widget.cc ++++ b/src/widget.cc +@@ -20,8 +20,6 @@ + + #include "widget.hh" + +-#include <sys/wait.h> // for W_EXITCODE +- + #include <exception> + #include <new> + #include <string> +@@ -235,7 +233,7 @@ void + Widget::dispose() noexcept + { + if (m_terminal->terminate_child()) { +- int status = W_EXITCODE(0, SIGKILL); ++ int status = (0) << 8 | (SIGKILL); // W_EXITCODE(ret, sig) + emit_child_exited(status); + } + } diff --git a/gui-libs/vte/metadata.xml b/gui-libs/vte/metadata.xml new file mode 100644 index 000000000000..da14147f6e15 --- /dev/null +++ b/gui-libs/vte/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> + <use> + <flag name="icu">Enable legacy charset support using <pkg>dev-libs/icu</pkg></flag> + <flag name="systemd">Support moving terminal child processes to their own systemd user scopes + to avoid terminal getting killed due to child causing OOM</flag> + </use> +</pkgmetadata> diff --git a/gui-libs/vte/vte-0.70.0.ebuild b/gui-libs/vte/vte-0.70.0.ebuild new file mode 100644 index 000000000000..8f8f7969670b --- /dev/null +++ b/gui-libs/vte/vte-0.70.0.ebuild @@ -0,0 +1,101 @@ +# 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 meson python-any-r1 vala xdg + +DESCRIPTION="Library providing a virtual terminal emulator widget" +HOMEPAGE="https://wiki.gnome.org/Apps/Terminal/VTE https://gitlab.gnome.org/GNOME/vte" + +# Once SIXEL support ships (0.66 or later), might need xterm license (but code might be considered upgraded to LGPL-3+) +LICENSE="LGPL-3+ GPL-3+" +SLOT="2.91-gtk4" # vte_api_version + "-gtk4" in meson.build +IUSE="+crypt debug gtk-doc +icu +introspection systemd +vala vanilla" +KEYWORDS="~amd64" +REQUIRED_USE=" + gtk-doc? ( introspection ) + vala? ( introspection ) +" + +# Upstream is hostile and refuses to upload tarballs. +SRC_URI="https://gitlab.gnome.org/GNOME/${PN}/-/archive/${PV}/${P}.tar.bz2" +SRC_URI="${SRC_URI} !vanilla? ( https://dev.gentoo.org/~mattst88/distfiles/${PN}-0.70.0-command-notify.patch.xz )" + +DEPEND=" + >=gui-libs/gtk-4.0.1:4[introspection?] + >=dev-libs/fribidi-1.0.0 + >=dev-libs/glib-2.52:2 + crypt? ( >=net-libs/gnutls-3.2.7:0= ) + icu? ( dev-libs/icu:= ) + >=x11-libs/pango-1.22.0 + >=dev-libs/libpcre2-10.21:= + systemd? ( >=sys-apps/systemd-220:= ) + sys-libs/zlib + introspection? ( >=dev-libs/gobject-introspection-1.56:= ) + x11-libs/pango[introspection?] +" +RDEPEND="${DEPEND} + ~gui-libs/vte-common-${PV}[systemd?] +" +BDEPEND=" + ${PYTHON_DEPS} + dev-libs/libxml2:2 + dev-util/glib-utils + gtk-doc? ( dev-util/gi-docgen ) + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig + vala? ( $(vala_depend) ) +" + +src_prepare() { + default + use vala && vala_setup + xdg_environment_reset + + use elibc_musl && eapply "${FILESDIR}"/${PN}-0.66.2-musl-W_EXITCODE.patch + + if ! use vanilla; then + # Part of https://src.fedoraproject.org/rpms/vte291/raw/f37/f/vte291-cntnr-precmd-preexec-scroll.patch + # Adds OSC 777 support for desktop notifications in gnome-terminal or elsewhere + eapply "${WORKDIR}"/${PN}-0.70.0-command-notify.patch + fi + + # -Ddebugg option enables various debug support via VTE_DEBUG, but also ggdb3; strip the latter + sed -e '/ggdb3/d' -i meson.build || die + sed -i 's/vte_gettext_domain = vte_api_name/vte_gettext_domain = vte_gtk4_api_name/' meson.build || die +} + +src_configure() { + local emesonargs=( + -Da11y=true + $(meson_use debug debugg) + $(meson_use gtk-doc docs) + $(meson_use introspection gir) + -Dfribidi=true # pulled in by pango anyhow + -Dglade=true + $(meson_use crypt gnutls) + -Dgtk3=false + -Dgtk4=true + $(meson_use icu) + $(meson_use systemd _systemd) + $(meson_use vala vapi) + ) + meson_src_configure +} + +src_install() { + meson_install # not meson_src_install because this would include einstalldocs, which would result in file collisions with x11-libs/vte + # Remove files that are provided by gui-libs/vte-common + rm "${ED}"/usr/libexec/vte-urlencode-cwd || die + rm "${ED}"/etc/profile.d/vte.sh || die + rm "${ED}"/etc/profile.d/vte.csh || die + if use systemd; then + rm "${ED}"/usr/lib/systemd/user/vte-spawn-.scope.d/defaults.conf || die + fi + if use gtk-doc; then + mkdir -p "${ED}"/usr/share/gtk-doc/ || die + mv "${ED}"/usr/share/doc/vte-${SLOT} "${ED}"/usr/share/gtk-doc/ || die + fi +} |