This commit is contained in:
Gerben Jan Dijkman 2022-12-15 13:54:39 +01:00
parent 058f9787d0
commit b4b3f647ee
52 changed files with 795 additions and 1542 deletions

View File

@ -0,0 +1 @@
DIST feedbackd-device-themes-0.0.20220523.tar.gz 15113 BLAKE2B 0c95a17f875b20d8bcc8eb05ed576f73dab7cc1b716133eba9b129a3e7a78f310c3f16d434712480058bf0281543f06404a1b04946fa7a9809163b3d7a099748 SHA512 ec669fd51dffb976ea5b04ba92e496e62d8e0d2ea82b16127e0c5d18daa536526e6506c0fab0d98f6ea1fb9231da38658809d56b3ce6c5e97c62d95443429336

View File

@ -0,0 +1,17 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit meson
MY_PV="v${PV}"
MY_P="${PN}-${MY_PV}"
DESCRIPTION="A daemon to provide haptic feedback on events (themes package)"
HOMEPAGE="https://source.puri.sm/Librem5/feedbackd-device-themes"
SRC_URI="https://source.puri.sm/Librem5/${PN}/-/archive/${MY_PV}/${MY_P}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-3"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
SLOT="0"

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>cyber+gentoo@sysrq.in</email>
<name>Anna</name>
</maintainer>
</pkgmetadata>

View File

@ -1 +0,0 @@
DIST gnome-calendar-43.0.tar.xz 422052 BLAKE2B 08f11b309087c80090f364fa569738a0348d609fa5c0a32b5c5ea4f32681bf53c54248fc7fc3b755f2d01f382b3a8c27511daef9f0bd59faaa148b1f6d253add SHA512 33c77b37e53132892665a44547974c44b7155e673bff27f438fcd30ee68b16b4bbabd9e6a287f3680b39e5032b19409278bc1c63ae46b1ea1191e32f81a55e32

View File

@ -1,51 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org gnome2-utils meson virtualx xdg
DESCRIPTION="Manage your online calendars with simple and modern interface"
HOMEPAGE="https://wiki.gnome.org/Apps/Calendar"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
# >=libical-1.0.1 for https://bugzilla.gnome.org/show_bug.cgi?id=751244
# <libgweather-4.2.0 because of libsoup:3 transition
DEPEND="
>=dev-libs/libical-1.0.1:0=
>=gnome-base/gsettings-desktop-schemas-3.21.2
>=gnome-extra/evolution-data-server-3.33.2:=[gtk]
net-libs/libsoup:2.4
>=gui-libs/libadwaita-1.0.0:1=
>=dev-libs/glib-2.67.5:2
>=gui-libs/gtk-4.6.0:4
>=dev-libs/libgweather-4.0.0:4=
>=dev-libs/libgweather-4.2.0:4=
>=app-misc/geoclue-2.4:2.0
>=sci-geosciences/geocode-glib-3.23:0
"
RDEPEND="${DEPEND}"
BDEPEND="
dev-libs/appstream-glib
dev-libs/libxml2:2
dev-util/gdbus-codegen
dev-util/glib-utils
>=sys-devel/gettext-0.19.8
virtual/pkgconfig
"
src_test() {
virtx meson_src_test
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
}

View File

@ -1 +1 @@
DIST vvmplayer-1.5.tar.gz 303227 BLAKE2B fb59369bb252929b6862f841c89492f5180e0cb7b5d93cbe102846f7f04498b4721a5e8d4e57444194a46ae8cc7f33ac8052127dde96390da232dfdfab294b24 SHA512 6290f06f6a7b6d56eaf86a13595643734888fe03396da16cd0148196ed095cb56807d3b0abd20129c4a9b4b40761ff7fab243916f9e355d21e490277467a2d6e
DIST vvmplayer-2.0.0.tar.gz 141817 BLAKE2B f7f51d6003745e5eabecca29bcbc61925764d2d017340feba0a33b83aedae4c93eeaf0fd2c860fe268c977e8da42d4840d12af6b0bb5c3f628a868819dcf98a4 SHA512 fa09f8096ff86565362dfa81233369bf8f65894c92a5285f53713abaf534edc4a3c866a6d2658babd421a6131045acaa79867dcc5a73a7aab29ed5bd872317ff

View File

@ -15,8 +15,8 @@ KEYWORDS="~amd64 ~arm64"
RDEPEND="
>=dev-libs/glib-2.50
>=x11-libs/gtk+-3.22.0
>=gui-libs/libhandy-1.0
>=gui-libs/gtk-4.8.2
>=gui-libs/libadwaita-1.2.0
>=media-libs/gstreamer-1.16.0
gnome-extra/evolution-data-server
media-sound/callaudiod

View File

@ -1,2 +0,0 @@
DIST vte-0.70.0.tar.bz2 499283 BLAKE2B 694cf4dfee334e9b54bb8e47f862167acbb8ffc7ac8e81889acd4786449cb45944a87a5adaa036f46458c350ca2119bb356e90dfa71f03638c9c2b14d2ccb877 SHA512 362b71296ae39a16b55402f524a39b063f66ae237e6e161ccc89ca2bb1f2a5c43f4d706d9f3bfae12a99fdb81c4e70408c7f3eca2c01316950b0a3a1a1d79423
DIST vte-0.70.1.tar.bz2 502044 BLAKE2B 0a9ce43c1863e823fcd073fd30fb6b2cb39e9168e850796fe12be2b9bdfc0b24ceea974b4c94bcdd10f2225613990e0e079194380241b7e625cb6dc4309a7476 SHA512 88de629b382eca8a42199b2ba9b248e231817e1de7183417aed150bcf61530084f7177d73dee9aab25fe4c3ab80d795b5fdcae336687560d3b582bd04181353d

View File

@ -1,29 +0,0 @@
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);
}
}

View File

@ -1,78 +0,0 @@
# 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
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" # vte_api_version in meson.build
IUSE="systemd"
KEYWORDS="~amd64 ~arm64"
# Upstream is hostile and refuses to upload tarballs.
SRC_URI="https://gitlab.gnome.org/GNOME/vte/-/archive/${PV}/vte-${PV}.tar.bz2"
DEPEND="
|| ( >=gui-libs/gtk-4.0.1:4 >=x11-libs/gtk+-3.24.22:3 )
>=dev-libs/fribidi-1.0.0
>=dev-libs/glib-2.52:2
>=x11-libs/pango-1.22.0
>=dev-libs/libpcre2-10.21
systemd? ( >=sys-apps/systemd-220:= )
sys-libs/zlib
x11-libs/pango
"
RDEPEND="
!<x11-libs/vte-0.70.0
"
BDEPEND="
${PYTHON_DEPS}
dev-libs/libxml2:2
dev-util/glib-utils
>=sys-devel/gettext-0.19.8
virtual/pkgconfig
"
S="${WORKDIR}/vte-0.70.1"
src_prepare() {
default
use elibc_musl && eapply "${FILESDIR}"/${PN}-0.70.0-musl-W_EXITCODE.patch
}
src_configure() {
local emesonargs=(
-Da11y=false
-Ddebugg=false
-Ddocs=false
-Dgir=false
-Dfribidi=true # pulled in by pango anyhow
-Dglade=false
-Dgnutls=false
-Dgtk3=false
-Dgtk4=false
-Dicu=false
$(meson_use systemd _systemd)
-Dvapi=false
)
meson_src_configure
}
src_install() {
exeinto /usr/libexec/
doexe "${BUILD_DIR}"/src/vte-urlencode-cwd
insinto /etc/profile.d/
newins "${BUILD_DIR}"/src/vte.sh vte-${SLOT}.sh
newins "${BUILD_DIR}"/src/vte.csh vte-${SLOT}.csh
if use systemd; then
insinto /usr/lib/systemd/user/vte-spawn-.scode.d/
newins "${S}"/src/vte-spawn-.scope.conf defaults.conf
fi
einstalldocs
}

View File

@ -1,162 +0,0 @@
# Copyright 2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="Meta package for Gnome Mobile"
SRC_URI=""
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~arm64 ~arm"
IUSE="cawbird chromium firefox geary lollypop owncloud nextcloud voicemail accessibility +bluetooth +classic cups python"
DEPEND="
>=dev-libs/glib-2.70.2:2
>=x11-libs/gdk-pixbuf-2.42.6:2
>=x11-libs/pango-1.48.10
>=x11-libs/gtk+-3.24.31:3[cups?]
>=dev-libs/atk-2.36.0
>=gnome-base/librsvg-2.52.5
>=gnome-base/gnome-desktop-43:3
>=gnome-base/gvfs-1.48.1
>=gnome-base/dconf-0.40.0
>=media-libs/gstreamer-1.16.2:1.0
>=media-libs/gst-plugins-base-1.16.2:1.0
>=media-libs/gst-plugins-good-1.16.2:1.0
python? ( >=dev-python/pygobject-3.42.0:3 )
>=gnome-base/gdm-43.0
>=x11-wm/mutter-43[mobile]
>=gnome-base/gnome-shell-43[mobile]
>=media-fonts/cantarell-0.301
>=x11-themes/gnome-backgrounds-40.0
x11-themes/sound-theme-freedesktop
accessibility? (
>=app-accessibility/at-spi2-atk-2.38.0
>=app-accessibility/at-spi2-core-2.40.0
>=app-accessibility/orca-40.0
>=gnome-extra/mousetweaks-3.32.0
)
>=gnome-base/gnome-session-40.1.1
>=gnome-base/gnome-settings-daemon-41.0[cups?]
>=gnome-base/gnome-control-center-41.2[cups?]
>=gnome-extra/gnome-color-manager-3.36.0
>=app-crypt/gcr-3.40.0
>=gnome-base/nautilus-41.1
>=gnome-base/gnome-keyring-40.0
>=gnome-extra/evolution-data-server-3.42.3
>=app-crypt/seahorse-41.0
>=app-editors/gedit-41
>=app-text/evince-41.3
>=gnome-extra/gnome-contacts-41.0
>=media-gfx/eog-41.1
>=media-video/totem-3.38.2
>=x11-terms/gnome-terminal-3.42.2
>=gnome-extra/gnome-user-docs-41.1
>=gnome-extra/yelp-41.2
>=x11-themes/adwaita-icon-theme-41.0
bluetooth? ( >=net-wireless/gnome-bluetooth-3.34.5 )
classic? ( >=gnome-extra/gnome-shell-extensions-43.0 )
gnome-extra/phosh-antispam
net-voip/gnome-calls
net-im/chatty
net-dns/dnsmasq
app-editors/gedit
app-misc/gnote
media-video/megapixels
gnome-base/gnome-control-center
gnome-base/gnome-keyring
gnome-extra/gnome-contacts
gnome-extra/gnome-calculator
gnome-extra/gnome-calendar
gnome-extra/gnome-clocks
gnome-extra/gnome-weather
gnome-extra/portfolio
gnome-base/gnome-session
gnome-extra/gnome-system-monitor
media-gfx/gnome-screenshot
sys-process/gnome-usage
gnome-extra/gnome-tweaks
app-arch/file-roller
sys-apps/gnome-disk-utility
media-sound/gnome-sound-recorder
www-client/epiphany
sci-geosciences/gnome-maps
x11-terms/gnome-terminal
x11-themes/sound-theme-librem5
app-text/evince
sys-power/gtherm
sys-auth/rtkit
gnome-extra/sushi
media-gfx/eog
cawbird? (
net-im/cawbird
)
chromium? (
www-client/chromium
)
firefox? (
www-client/firefox
)
geary? (
mail-client/geary
)
lollypop? (
media-sound/lollypop
)
owncloud? (
net-misc/owncloud-client
)
nextcloud? (
net-misc/nextcloud-client
)
voicemail? (
gnome-extra/vvmplayer
)
"
RDEPEND="${DEPEND}"
BDEPEND=""
PDEPEND=">=gnome-base/gvfs-1.48.0[udisks]"
S="${WORKDIR}"
pkg_postinst() {
[ -e /usr/share/applications-bak ] || mkdir /usr/share/applications-bak
for i in vim org.gnupg.pinentry-qt org.gnome.Extensions mupdf \
gnome-printers-panel gnome-wifi-pannel pidgin wpa_gui cups \
Gentoo-system-config-printer
do
if [ -e /usr/share/applications/$i.desktop ]; then
mv /usr/share/applications/$i.desktop /usr/share/applications-bak
fi
done
# Remind people where to find our project information
elog "Please remember to look at https://wiki.gentoo.org/wiki/Project:GNOME"
elog "for information about the project and documentation."
}

View File

@ -1 +0,0 @@
DIST libshumate-1.0.2.tar.xz 110656 BLAKE2B 75abbfd9b4e1e7eb1044a33ff1b46391024005487f01aa4401552727322f92f28120104af4c2f90bb91c70ada6282882b9ee7f50ac62542aab8c88cc227799f8 SHA512 15539ce50462b345e4329fc27f52a5d1fb143e82821a990ce818a576fec94d1fe1fbef9926d0251d169f22394f3f21c62e56fe4d97bbdd4482429c70f22c6b2d

View File

@ -1,60 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org meson vala virtualx
DESCRIPTION="Shumate is a GTK toolkit providing widgets for embedded maps"
HOMEPAGE="https://wiki.gnome.org/Projects/libshumate https://gitlab.gnome.org/GNOME/libshumate"
SLOT="1.0/1"
LICENSE="LGPL-2.1+"
KEYWORDS="~amd64 ~arm64"
REQUIRED_USE="gtk-doc? ( introspection )"
IUSE="gtk-doc +introspection vala" # vector-renderer is still experimental, maybe put in at a later release
RDEPEND="
>=dev-libs/glib-2.68.0:2
>=x11-libs/cairo-1.4
>=dev-db/sqlite-1.12:3
>=gui-libs/gtk-4:4
>=net-libs/libsoup-3.0:3.0
introspection? ( >=dev-libs/gobject-introspection-0.6.3:= )
"
# vector-renderer? (
# >=dev-libs/json-glib-1.6.0[introspection?]
# dev-libs/protobuf-c
# )
DEPEND="${RDEPEND}"
BDEPEND="
gtk-doc? ( >=dev-util/gi-docgen-2021.1 )
vala? ( $(vala_depend) )
"
src_configure() {
local emesonargs=(
$(meson_use introspection gir)
$(meson_use vala vapi)
$(meson_use gtk-doc gtk_doc)
-Ddemos=false # only built, not installed
# $(meson_use vector-renderer vector_renderer)
-Dvector_renderer=false
-Dlibsoup3=true
)
meson_src_configure
}
src_test() {
virtx meson_src_test
}
src_install() {
meson_src_install
if use gtk-doc; then
mkdir -p "${ED}"/usr/share/gtk-doc/ || die
mv "${ED}"/usr/share/doc/libshumate-1.0 "${ED}"/usr/share/gtk-doc/libshumate-1.0 || die
fi
}

View File

@ -1,2 +1,2 @@
DIST gst-plugins-bad-1.20.2.tar.xz 6216208 BLAKE2B bbbe77a1255991a2f96696996fb0c99f14f6d63fef455feb1ce90ae518bb9f80fd61bcfb223c20407b8d6240faaa93478495f8e9fda16fab36a311d167e88e25 SHA512 3f98973dc07ead745418e0a30f9f6b5c8d328e3d126f54d92c10ab5da04271768a5c5dffc36ea24ccf8fb516b1e3733be9fb18dc0db419dea4d37d17018f8a70
DIST gst-plugins-bad-1.20.3.tar.xz 6222824 BLAKE2B 01aae59adbe76b8e50a49fb8bb8037e6f3aa93cbc2b658aab05ebbf30f8d1aef98c1981712caa39e3c9d08f1e0c9d76f2f874f7d2fdd994b3a0735b2809eafdf SHA512 cfcf126eabff550455decd7054a269b73489708c10a6b6090dddb5fde29bfba07ed330c339927ff170e025fa3a08d2ffb822322dc3798679366207a54132c71b
DIST gst-plugins-bad-1.20.4.tar.xz 6229992 BLAKE2B 2cd276cec9991e2ca7367a43024d7aee43adaa185a4a06ec08d1e736e72333f7f38cb54257120b9a313feb1fdc285a50d456b4c1fb33627d83acfcd3ece20687 SHA512 31b28d4a1bbecf021a90f2aa49dd344ccea12533b65f3bf3a8426ca2175469fff7b7f8e08af7d3d22c18db2fe48b9d5fbea2b325d296aee04b019cebef1eaec4

View File

@ -1 +1,2 @@
DIST callaudiod-0.1.4.tar.gz 31476 BLAKE2B 0573d89e5b7652c1cbffa8f10fac7b8d75d63088496f76ace25ba2001eb0a6b2d642d6a67aecd2124e7e0feba7fe1c4b856fd8de9ac7e636b6b9c07c954c8811 SHA512 5d344f5d0f04076b2d22a6fe4c728fb18081934e9651e91fe32d590983ca06b06341434489bc1d28322f09218373a3e8c983ff57fddc3d41a3d48bd4b35d1bce
DIST callaudiod-0.1.5.tar.bz2 28355 BLAKE2B da43d51cf1a2818bad227e5bf453a27c6c8431bf9332758be378c2f1072354ad0438cdae77088e8a4587e132f116f64cbb7ac293ad985ab82b436e455547624b SHA512 8eac3929bbb9b700dab3ca230f3cb0dd17b90af1e0e56b4d92070423c11b1ca806984640bbc88ea42ae2ae1d2c19000b7f0d27a863d67eb11b021e53784bd39a
DIST callaudiod-0.1.6.tar.bz2 28456 BLAKE2B 2307b2ed5a696b57afe9251e38a6396e152f5c377e7403510e079de8b373d5bdf829b9e83bd6b12a69e04994aeb726b74565d101a9377351d7a3f0cf5e222f70 SHA512 e8f5988614045bdec5daca4421a26e2ae228f78fb9a95e91d29d212068fa3a7b87a54f14eb3e4db58c230a7470731af3da5d535a26f88e44181bfdc1e5091982

View File

@ -1,31 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit meson
COMMIT="a7ca6ce9d4c947f19c3f99ff2cab986c64434e57"
DESCRIPTION="Call audio routing daemon"
HOMEPAGE="https://gitlab.com/mobian1/callaudiod"
SRC_URI="https://gitlab.com/mobian1/callaudiod/-/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm64"
LICENSE="GPL-3"
SLOT="0"
S="${WORKDIR}/${PN}-${COMMIT}"
RDEPEND="
dev-libs/glib
dev-util/gdbus-codegen
media-libs/alsa-lib
|| (
media-sound/pulseaudio
>=media-sound/apulse-0.1.12-r4[sdk]
)
"
BUILD_DIR="${S}"/build

View File

@ -0,0 +1,22 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit meson
DESCRIPTION="Call audio routing daemon"
HOMEPAGE="https://gitlab.com/mobian1/callaudiod"
SRC_URI="https://gitlab.com/mobian1/${PN}/-/archive/${PV}/${P}.tar.bz2"
KEYWORDS="~amd64 ~arm64"
LICENSE="LGPL-3+"
SLOT="0"
RDEPEND="
dev-libs/glib:2
media-libs/alsa-lib
media-libs/libpulse[glib]
"
DEPEND="${RDEPEND}"
BDEPEND="dev-util/gdbus-codegen"

View File

@ -0,0 +1,22 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit meson
DESCRIPTION="Call audio routing daemon"
HOMEPAGE="https://gitlab.com/mobian1/callaudiod"
SRC_URI="https://gitlab.com/mobian1/${PN}/-/archive/${PV}/${P}.tar.bz2"
KEYWORDS="~amd64 ~arm64"
LICENSE="LGPL-3+"
SLOT="0"
RDEPEND="
dev-libs/glib:2
media-libs/alsa-lib
media-libs/libpulse[glib]
"
DEPEND="${RDEPEND}"
BDEPEND="dev-util/gdbus-codegen"

View File

@ -1 +1 @@
DIST megapixels-1.5.2.tar.gz 93905 BLAKE2B 08071c83c1d07dab9da15526bec06db5460e5e24afe1599b6fd8657259d4cd2715db0cde4f97b244018e09818fb699e147935279c55f69a6145e2cfd21109264 SHA512 a0dcec454e49043e87513ed42228aded7b4a0761b03f844885871d8052e67fb269732d44730ff70a93f7b5d3fa6e1406e246460d9969ea5b2dd3a02ed9b4ef10
DIST megapixels-1.6.0.tar.gz 95992 BLAKE2B adca9fcad9e6d7b4181a0aac8aa8c1a7b00978ce22d79a589e161fb8736e850d5e431263885a56a4407f5ee58f6cdb915aa6bbfb8c5fc13ee13567d3bbea2bbd SHA512 6711383c91c4d02363f8dc8580940436bb37637b56d8bb905d597df2ed98ed15be32b7d63666bb33b290ddfdda891dbc277c15a2e71aad9f2daa0c2d705b293a

View File

@ -0,0 +1,706 @@
From 8721f29e27f21111c439ee45f4ea76b56017d016 Mon Sep 17 00:00:00 2001
From: kgmt0 <kritphong@teknik.io>
Date: Fri, 17 Jun 2022 02:08:44 +0700
Subject: [PATCH] WIP: Support Pinephone Pro
Both cameras work now but the quality is very poor.
The config file format is extended to include 2 new options
"media-formats" and "media-crops" that can be used to set formats and
crops on a per-pad basis. These are needed to initialize Pinephone Pro's
media controller.
Tested with Linux 6.0.8-1 from Arch Linux ARM (linux-megi).
---
config/motorola,osprey.ini | 1 +
config/pine64,pinephone-pro.ini | 51 ++++++++
config/xiaomi,scorpio.ini | 1 +
meson.build | 1 +
src/camera.c | 10 +-
src/camera_config.c | 61 ++++++++++
src/camera_config.h | 23 ++++
src/device.c | 82 +++++++++++++
src/device.h | 9 ++
src/io_pipeline.c | 201 +++++++++++++++++++++++++-------
10 files changed, 392 insertions(+), 48 deletions(-)
create mode 100644 config/pine64,pinephone-pro.ini
diff --git a/config/motorola,osprey.ini b/config/motorola,osprey.ini
index ab8990d..5809a8e 100644
--- a/config/motorola,osprey.ini
+++ b/config/motorola,osprey.ini
@@ -15,3 +15,4 @@ preview-rate=30
preview-fmt=RGGB10P
rotate=270
media-links=msm_csiphy0:1->msm_csid0:0,msm_csid0:1->msm_ispif0:0,msm_ispif0:1->msm_vfe0_rdi0:0
+media-formats=msm_csiphy0:1:RGGB10P:4096:2304,msm_csid0:0:RGGB10P:4096:2304,msm_csid0:1:RGGB10P:4096:2304,msm_ispif0:0:RGGB10P:4096:2304,msm_ispif0:1:RGGB10P:4096:2304,msm_vfe0_rdi0:0:RGGB10P:4096:2304
diff --git a/config/pine64,pinephone-pro.ini b/config/pine64,pinephone-pro.ini
new file mode 100644
index 0000000..3416ca0
--- /dev/null
+++ b/config/pine64,pinephone-pro.ini
@@ -0,0 +1,51 @@
+[device]
+make=PINE64
+model=PinePhone
+
+[rear]
+driver=imx258 1-001a
+media-driver=rkisp1
+capture-width=1048
+capture-height=780
+capture-rate=30
+capture-fmt=RGGB8
+preview-width=1048
+preview-height=780
+preview-rate=30
+preview-fmt=RGGB8
+rotate=270
+mirrored=false
+blacklevel=3
+whitelevel=255
+focallength=2.35
+cropfactor=10.81
+fnumber=2.2
+iso-min=100
+iso-max=64000
+flash-path=/sys/class/leds/white:flash
+media-links=imx258 1-001a:0->rkisp1_csi:0,rkisp1_csi:1->rkisp1_isp:0,rkisp1_isp:2->rkisp1_resizer_mainpath:0
+media-formats=imx258 1-001a:0:RGGB10P:1048:780,rkisp1_csi:0:RGGB10P:1048:780,rkisp1_isp:0:RGGB10P:1048:780,rkisp1_isp:2:RGGB8:1048:780,rkisp1_resizer_mainpath:0:RGGB8:1048:780,rkisp1_resizer_mainpath:1:RGGB8:1048:780
+media-crops=rkisp1_isp:0:0:0:1048:780,rkisp1_isp:2:0:0:1048:780,rkisp1_resizer_mainpath:0:0:0:1048:768
+
+[front]
+driver=m00_f_ov8858 1-0036
+media-driver=rkisp1
+capture-width=3264
+capture-height=2448
+capture-rate=30
+;capture-fmt=BGGR10P
+capture-fmt=BGGR8
+preview-width=3264
+preview-height=2448
+preview-rate=30
+;preview-fmt=BGGR10P
+preview-fmt=BGGR8
+rotate=90
+mirrored=true
+focallength=2.94
+cropfactor=12.7
+fnumber=2.4
+flash-display=true
+media-links=m00_f_ov8858 1-0036:0->rkisp1_csi:0,rkisp1_csi:1->rkisp1_isp:0,rkisp1_isp:2->rkisp1_resizer_mainpath:0,rkisp1_resizer_mainpath:1->rkisp1_mainpath:0
+media-formats=m00_f_ov8858 1-0036:0:BGGR10P:3264:2448,rkisp1_csi:0:BGGR10P:3264:2448,rkisp1_isp:0:BGGR10P:3264:2448,rkisp1_isp:2:BGGR8:3264:2448,rkisp1_resizer_mainpath:0:BGGR8:3264:2448,rkisp1_resizer_mainpath:1:BGGR8:3264:2448
+media-crops=rkisp1_isp:0:0:0:3264:2448,rkisp1_isp:2:0:0:3264:2448,rkisp1_resizer_mainpath:0:0:0:3264:768
diff --git a/config/xiaomi,scorpio.ini b/config/xiaomi,scorpio.ini
index cce6d49..14b7f29 100644
--- a/config/xiaomi,scorpio.ini
+++ b/config/xiaomi,scorpio.ini
@@ -15,3 +15,4 @@ preview-rate=30
preview-fmt=RGGB10P
rotate=90
media-links=imx318 3-001a:0->msm_csiphy0:0,msm_csiphy0:1->msm_csid0:0,msm_csid0:1->msm_ispif0:0,msm_ispif0:1->msm_vfe0_rdi0:0
+media-formats=imx318 3-001a:0:RGGB10P:3840:2160,msm_csiphy0:0:RGGB10P:3840:2160,msm_csiphy0:1:RGGB10P:3840:2160,msm_csid0:0:RGGB10P:3840:2160,msm_csid0:1:RGGB10P:3840:2160,msm_ispif0:0:RGGB10P:3840:2160,msm_ispif0:1:RGGB10P:3840:2160,msm_vfe0_rdi0:0:RGGB10P:3840:2160
diff --git a/meson.build b/meson.build
index 3b98f19..d53dec9 100644
--- a/meson.build
+++ b/meson.build
@@ -72,6 +72,7 @@ install_data(
'config/pine64,pinephone-1.0.ini',
'config/pine64,pinephone-1.1.ini',
'config/pine64,pinephone-1.2.ini',
+ 'config/pine64,pinephone-pro.ini',
'config/pine64,pinetab.ini',
'config/xiaomi,scorpio.ini',
],
diff --git a/src/camera.c b/src/camera.c
index 9a08f56..7368189 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -305,11 +305,11 @@ mp_camera_set_mode(MPCamera *camera, MPMode *mode)
}
// Update the mode
- mode->pixel_format =
- mp_pixel_format_from_v4l_bus_code(fmt.format.code);
- mode->frame_interval = interval.interval;
- mode->width = fmt.format.width;
- mode->height = fmt.format.height;
+ //mode->pixel_format =
+ // mp_pixel_format_from_v4l_bus_code(fmt.format.code);
+ //mode->frame_interval = interval.interval;
+ //mode->width = fmt.format.width;
+ //mode->height = fmt.format.height;
}
// Set the mode for the video device
diff --git a/src/camera_config.c b/src/camera_config.c
index 6ff74d1..1102354 100644
--- a/src/camera_config.c
+++ b/src/camera_config.c
@@ -184,6 +184,67 @@ config_ini_handler(void *user,
++cc->num_media_links;
}
g_strfreev(linkdefs);
+ } else if (strcmp(name, "media-formats") == 0) {
+ struct mp_camera_config *cc = &cameras[index];
+ char **formatdefs = g_strsplit(value, ",", 0);
+
+ for (int i = 0; i < MP_MAX_FORMATS && formatdefs[i] != NULL;
+ ++i) {
+ char **entry = g_strsplit(formatdefs[i], ":", 5);
+ char *name = entry[0];
+ int pad = strtoint(entry[1], NULL, 10);
+ char *format = entry[2];
+ char *width = entry[3];
+ char *height = entry[4];
+
+ const size_t name_size =
+ sizeof(cc->media_formats[i].name);
+ strncpy(cc->media_formats[i].name,
+ name,
+ name_size );
+
+ cc->media_formats[i].pad = pad;
+
+ cc->media_formats[i].mode.pixel_format =
+ mp_pixel_format_from_str(format);
+ cc->media_formats[i].mode.width =
+ strtoint(width, NULL, 10);
+ cc->media_formats[i].mode.height =
+ strtoint(height, NULL, 10);
+
+ cc->num_media_formats++;
+
+ g_strfreev(entry);
+ }
+ } else if (strcmp(name, "media-crops") == 0) {
+ char **formatdefs = g_strsplit(value, ",", 0);
+
+ for (int i = 0; i < MP_MAX_CROPS && formatdefs[i] != NULL;
+ ++i) {
+ char **entry = g_strsplit(formatdefs[i], ":", 6);
+ char *name = entry[0];
+ int pad = strtoint(entry[1], NULL, 10);
+ int top = strtoint(entry[2], NULL, 10);
+ int left = strtoint(entry[3], NULL, 10);
+ int width = strtoint(entry[4], NULL, 10);
+ int height = strtoint(entry[5], NULL, 10);
+
+ const size_t name_size =
+ sizeof(cc->media_crops[i].name);
+ strncpy(cc->media_crops[i].name,
+ name,
+ name_size );
+
+ cc->media_crops[i].pad = pad;
+ cc->media_crops[i].top = top;
+ cc->media_crops[i].left = left;
+ cc->media_crops[i].width = width;
+ cc->media_crops[i].height = height;
+
+ cc->num_media_crops++;
+
+ g_strfreev(entry);
+ }
} else if (strcmp(name, "colormatrix") == 0) {
sscanf(value,
"%f,%f,%f,%f,%f,%f,%f,%f,%f",
diff --git a/src/camera_config.h b/src/camera_config.h
index d53d36f..b1bd5a5 100644
--- a/src/camera_config.h
+++ b/src/camera_config.h
@@ -7,6 +7,8 @@
#define MP_MAX_CAMERAS 5
#define MP_MAX_LINKS 10
+#define MP_MAX_FORMATS 10
+#define MP_MAX_CROPS 10
struct mp_media_link_config {
char source_name[100];
@@ -15,6 +17,21 @@ struct mp_media_link_config {
int target_port;
};
+struct mp_media_format_config {
+ char name[100];
+ int pad;
+ MPMode mode;
+};
+
+struct mp_media_crop_config {
+ char name[100];
+ int pad;
+ int left;
+ int top;
+ int width;
+ int height;
+};
+
struct mp_camera_config {
size_t index;
@@ -30,6 +47,12 @@ struct mp_camera_config {
struct mp_media_link_config media_links[MP_MAX_LINKS];
int num_media_links;
+ struct mp_media_format_config media_formats[MP_MAX_FORMATS];
+ int num_media_formats;
+
+ struct mp_media_crop_config media_crops[MP_MAX_CROPS];
+ int num_media_crops;
+
float colormatrix[9];
float forwardmatrix[9];
float previewmatrix[9];
diff --git a/src/device.c b/src/device.c
index 9e2db00..0defccb 100644
--- a/src/device.c
+++ b/src/device.c
@@ -8,6 +8,8 @@
#include <string.h>
#include <sys/ioctl.h>
#include <unistd.h>
+#include <linux/v4l2-subdev.h>
+#include <linux/media.h>
bool
mp_find_device_path(struct media_v2_intf_devnode devnode, char *path, int length)
@@ -237,6 +239,73 @@ mp_entity_pad_set_format(MPDevice *device,
return true;
}
+const struct media_v2_pad *
+mp_device_get_pad_at_index_from_entity(const MPDevice *device, uint32_t entity_id, uint32_t index)
+{
+ for (int i = 0; i < device->num_pads; ++i) {
+ if (device->pads[i].entity_id == entity_id && index-- == 0) {
+ return &device->pads[i];
+ }
+ }
+ return NULL;
+}
+
+bool
+mp_device_setup_link_by_name(MPDevice *device,
+ const char *source_entity_name,
+ uint32_t source_pad_index,
+ const char *sink_entity_name,
+ uint32_t sink_pad_index,
+ bool enabled)
+{
+ const struct media_v2_entity *source_entity =
+ mp_device_find_entity
+ (device, source_entity_name);
+ const struct media_v2_entity *sink_entity =
+ mp_device_find_entity
+ (device, sink_entity_name);
+
+ struct media_link_desc link = {};
+ link.flags = enabled ? MEDIA_LNK_FL_ENABLED : 0;
+ link.source.entity = source_entity->id;
+ link.source.index = source_pad_index;
+ link.sink.entity = sink_entity->id;
+ link.sink.index = sink_pad_index;
+ if (xioctl(device->fd, MEDIA_IOC_SETUP_LINK, &link) == -1) {
+ errno_printerr("MEDIA_IOC_SETUP_LINK");
+ return false;
+ }
+
+ return true;
+}
+
+int
+mp_device_get_fd_by_name(const MPDevice *device, const char *driver_name)
+{
+ struct media_entity_desc desc = {};
+
+ desc.id |= MEDIA_ENT_ID_FLAG_NEXT;
+
+ while(true) {
+ desc.id |= MEDIA_ENT_ID_FLAG_NEXT;
+ if(xioctl(device->fd, MEDIA_IOC_ENUM_ENTITIES, &desc) == -1) {
+ errno_printerr("MEDIA_IOC_ENUM_ENTITIES");
+ return -1;
+ }
+
+ if(strncmp(desc.name, driver_name, 32) == 0) {
+ const uint32_t major = desc.dev.major;
+ const uint32_t minor = desc.dev.minor;
+ char path[256];
+ int rc = snprintf(path, 256, "/dev/char/%u:%u", major, minor);
+
+ return rc > 0 ? open(path, O_RDWR) : -1;
+ }
+ }
+
+ return -1;
+}
+
const struct media_v2_entity *
mp_device_find_entity(const MPDevice *device, const char *driver_name)
{
@@ -263,6 +332,19 @@ mp_device_find_entity_type(const MPDevice *device, const uint32_t type)
return NULL;
}
+bool
+mp_xioctl(const MPDevice *device, const char *driver_name, unsigned long request, void *argp)
+{
+ int fd = mp_device_get_fd_by_name(device, driver_name);
+
+ if(fd < 0)
+ {
+ printf("ERROR: device with driver name %s not found\n", driver_name);
+ }
+
+ return fd >= 0 && xioctl(fd, request, argp) != -1;
+}
+
const struct media_device_info *
mp_device_get_info(const MPDevice *device)
{
diff --git a/src/device.h b/src/device.h
index 1894c67..a9e1b59 100644
--- a/src/device.h
+++ b/src/device.h
@@ -36,6 +36,15 @@ bool mp_entity_pad_set_format(MPDevice *device,
uint32_t pad,
MPMode *mode);
+bool mp_xioctl(const MPDevice *device, const char *driver_name, unsigned long request, void *argp);
+
+bool mp_device_setup_link_by_name(MPDevice *device,
+ const char *source_entity_name,
+ uint32_t source_pad_index,
+ const char *sink_entity_name,
+ uint32_t sink_pad_index,
+ bool enabled);
+
const struct media_device_info *mp_device_get_info(const MPDevice *device);
const struct media_v2_entity *mp_device_find_entity(const MPDevice *device,
const char *driver_name);
diff --git a/src/io_pipeline.c b/src/io_pipeline.c
index 8434420..da95678 100644
--- a/src/io_pipeline.c
+++ b/src/io_pipeline.c
@@ -47,7 +47,8 @@ struct camera_info {
// int media_fd;
// struct mp_media_link media_links[MP_MAX_LINKS];
- // int num_media_links;
+ struct mp_media_link_config media_links[MP_MAX_LINKS];
+ int num_media_links;
// int gain_ctrl;
};
@@ -100,36 +101,68 @@ static bool want_focus = false;
static MPPipeline *pipeline;
static GSource *capture_source;
+// TODO: move to device.c
+static void
+mp_setup_media_link_pad_crops(struct device_info *dev_info,
+ const struct mp_media_crop_config media_crops[],
+ int num_media_crops)
+{
+ for(int i = 0; i < num_media_crops; i++) {
+ const struct mp_media_crop_config *crop = media_crops + i;
+ struct v4l2_subdev_crop v4l2_crop = {};
+ v4l2_crop.pad = crop->pad;
+ v4l2_crop.which = V4L2_SUBDEV_FORMAT_ACTIVE;
+ v4l2_crop.rect.top = crop->top;
+ v4l2_crop.rect.left = crop->left;
+ v4l2_crop.rect.width = crop->width;
+ v4l2_crop.rect.height = crop->height;
+
+ if(!mp_xioctl(dev_info->device, crop->name, VIDIOC_SUBDEV_S_CROP, &v4l2_crop)) {
+ //errno_printerr("VIDIOC_SUBDEV_S_CROP");
+ }
+ }
+}
+
static void
mp_setup_media_link_pad_formats(struct device_info *dev_info,
- const struct mp_media_link_config media_links[],
- int num_media_links,
- MPMode *mode)
+ const struct mp_media_format_config media_formats[],
+ int num_media_formats)
{
- const struct media_v2_entity *entities[2];
- int ports[2];
- for (int i = 0; i < num_media_links; i++) {
- entities[0] = mp_device_find_entity(
- dev_info->device, (const char *)media_links[i].source_name);
- entities[1] = mp_device_find_entity(
- dev_info->device, (const char *)media_links[i].target_name);
- ports[0] = media_links[i].source_port;
- ports[1] = media_links[i].target_port;
-
- for (int j = 0; j < 2; j++)
- if (!mp_entity_pad_set_format(
- dev_info->device, entities[j], ports[j], mode)) {
- g_printerr("Failed to set %s:%d format\n",
- entities[j]->name,
- ports[j]);
- exit(EXIT_FAILURE);
- }
+ for(int i = 0; i < num_media_formats; i++) {
+ const struct mp_media_format_config *format =
+ media_formats + i;
+ const struct media_v2_entity *entity =
+ mp_device_find_entity
+ (dev_info->device, format->name);
+ MPMode *mode =
+ (MPMode *)
+ &format->mode;
+ bool successful =
+ mp_entity_pad_set_format
+ (dev_info->device, entity, format->pad, mode);
+
+ if(!successful) {
+ g_printerr( "Failed to set %s:%d format\n",
+ entity->name,
+ format->pad );
+ exit(EXIT_FAILURE);
+ }
}
}
static void
setup_camera(MPDeviceList **device_list, const struct mp_camera_config *config)
{
+ char compat[512];
+ FILE *fp = fopen("/proc/device-tree/compatible", "r");
+ fgets(compat, 512, fp);
+ fclose(fp);
+
+ printf("setup_camera()\n");
+ printf("compatible: %s\n", compat);
+ printf("media_dev: %s\n", config->media_dev_name);
+ printf("dev: %s\n", config->dev_name);
+
// Find device info
size_t device_index = 0;
for (; device_index < num_devices; ++device_index) {
@@ -144,6 +177,7 @@ setup_camera(MPDeviceList **device_list, const struct mp_camera_config *config)
if (device_index == num_devices) {
device_index = num_devices;
+ printf("initializing new device\n");
// Initialize new device
struct device_info *info = &devices[device_index];
info->media_dev_name = config->media_dev_name;
@@ -175,6 +209,8 @@ setup_camera(MPDeviceList **device_list, const struct mp_camera_config *config)
exit(EXIT_FAILURE);
}
+ printf("video path: %s\n", dev_name);
+
info->video_fd = open(dev_name, O_RDWR);
if (info->video_fd == -1) {
g_printerr("Could not open %s: %s\n",
@@ -191,6 +227,9 @@ setup_camera(MPDeviceList **device_list, const struct mp_camera_config *config)
struct device_info *dev_info = &devices[device_index];
info->device_index = device_index;
+ info->num_media_links = config->num_media_links;
+
+ memcpy(info->media_links, config->media_links, MP_MAX_LINKS * sizeof(struct mp_media_link_config));
const struct media_v2_entity *entity =
mp_device_find_entity(dev_info->device, config->dev_name);
@@ -205,11 +244,48 @@ setup_camera(MPDeviceList **device_list, const struct mp_camera_config *config)
info->pad_id = pad->id;
+ // Disable all links
+ const size_t num_links =
+ mp_device_get_num_links(dev_info->device);
+ const struct media_v2_link *links =
+ mp_device_get_links(dev_info->device);
+
+ for(int i = 0; i < num_links; i++) {
+ const struct media_v2_link *link = links + i;
+
+ if(!(link->flags & MEDIA_LNK_FL_IMMUTABLE)) {
+ mp_device_setup_link(dev_info->device,
+ link->source_id,
+ link->sink_id,
+ false);
+ }
+ }
+
// Make sure the camera starts out as disabled
- mp_device_setup_link(dev_info->device,
- info->pad_id,
- dev_info->interface_pad_id,
- false);
+ printf("making sure camera starts out disabled\n");
+ if(config->num_media_links > 0)
+ {
+ const struct media_v2_entity *entity =
+ mp_device_find_entity(dev_info->device, config->media_links[0].source_name);
+
+ // This gets the first pad for this entity, which is
+ // fine for Pinephone Pro, but does it really work for
+ // all devices?
+ const struct media_v2_pad* pad =
+ mp_device_get_pad_from_entity(dev_info->device, entity->id);
+
+ mp_device_setup_link(dev_info->device,
+ info->pad_id,
+ pad->id,
+ false);
+ }
+ else
+ {
+ mp_device_setup_link(dev_info->device,
+ info->pad_id,
+ dev_info->interface_pad_id,
+ false);
+ }
const struct media_v2_interface *interface =
mp_device_find_entity_interface(dev_info->device,
@@ -220,6 +296,7 @@ setup_camera(MPDeviceList **device_list, const struct mp_camera_config *config)
exit(EXIT_FAILURE);
}
+ printf("camera device path: %s\n", info->dev_fname);
info->fd = open(info->dev_fname, O_RDWR);
if (info->fd == -1) {
g_printerr("Could not open %s: %s\n",
@@ -234,11 +311,14 @@ setup_camera(MPDeviceList **device_list, const struct mp_camera_config *config)
// the ov5640 driver where it won't allow setting the preview
// format initially.
MPMode mode = config->capture_mode;
- if (config->num_media_links)
+ if (config->num_media_formats)
mp_setup_media_link_pad_formats(dev_info,
- config->media_links,
- config->num_media_links,
- &mode);
+ config->media_formats,
+ config->num_media_formats);
+ if (config->num_media_crops)
+ mp_setup_media_link_pad_crops(dev_info,
+ config->media_crops,
+ config->num_media_crops);
mp_camera_set_mode(info->camera, &mode);
// Trigger continuous auto focus if the sensor supports it
@@ -400,9 +480,12 @@ capture(MPPipeline *pipeline, const void *data)
mode = camera->capture_mode;
if (camera->num_media_links)
mp_setup_media_link_pad_formats(dev_info,
- camera->media_links,
- camera->num_media_links,
- &mode);
+ camera->media_formats,
+ camera->num_media_formats);
+ if (camera->num_media_crops)
+ mp_setup_media_link_pad_crops(dev_info,
+ camera->media_crops,
+ camera->num_media_crops);
mp_camera_set_mode(info->camera, &mode);
just_switched_mode = true;
@@ -569,9 +652,13 @@ on_frame(MPBuffer buffer, void *_data)
if (camera->num_media_links)
mp_setup_media_link_pad_formats(
dev_info,
- camera->media_links,
- camera->num_media_links,
- &mode);
+ camera->media_formats,
+ camera->num_media_formats);
+ if (camera->num_media_crops)
+ mp_setup_media_link_pad_crops(
+ dev_info,
+ camera->media_crops,
+ camera->num_media_crops);
mp_camera_set_mode(info->camera, &mode);
just_switched_mode = true;
@@ -609,6 +696,8 @@ mp_setup_media_link(struct device_info *dev_info,
static void
update_state(MPPipeline *pipeline, const struct mp_io_pipeline_state *state)
{
+ printf("update_state()\n");
+
// Make sure the state isn't updated more than it needs to be by checking
// whether this state change actually changes anything.
bool has_changed = false;
@@ -617,6 +706,7 @@ update_state(MPPipeline *pipeline, const struct mp_io_pipeline_state *state)
has_changed = true;
if (camera) {
+ printf("uninitializing current camera\n");
struct camera_info *info = &cameras[camera->index];
struct device_info *dev_info = &devices[info->device_index];
@@ -634,6 +724,7 @@ update_state(MPPipeline *pipeline, const struct mp_io_pipeline_state *state)
}
if (capture_source) {
+ printf("uninitializing current capture source\n");
g_source_destroy(capture_source);
capture_source = NULL;
}
@@ -641,13 +732,33 @@ update_state(MPPipeline *pipeline, const struct mp_io_pipeline_state *state)
camera = state->camera;
if (camera) {
+ printf("initializing camera\n");
struct camera_info *info = &cameras[camera->index];
struct device_info *dev_info = &devices[info->device_index];
- mp_device_setup_link(dev_info->device,
- info->pad_id,
- dev_info->interface_pad_id,
- true);
+ if(info->num_media_links > 0)
+ {
+ const struct media_v2_entity *entity =
+ mp_device_find_entity(dev_info->device, info->media_links[0].source_name);
+
+ // This gets the first pad for this entity, which is
+ // fine for Pinephone Pro, but does it really work for
+ // all devices?
+ const struct media_v2_pad* pad =
+ mp_device_get_pad_from_entity(dev_info->device, entity->id);
+
+ mp_device_setup_link(dev_info->device,
+ info->pad_id,
+ pad->id,
+ true);
+ }
+ else
+ {
+ mp_device_setup_link(dev_info->device,
+ info->pad_id,
+ dev_info->interface_pad_id,
+ true);
+ }
// Enable media links
for (int i = 0; i < camera->num_media_links; i++)
@@ -658,9 +769,13 @@ update_state(MPPipeline *pipeline, const struct mp_io_pipeline_state *state)
if (camera->num_media_links)
mp_setup_media_link_pad_formats(
dev_info,
- camera->media_links,
- camera->num_media_links,
- &mode);
+ camera->media_formats,
+ camera->num_media_formats);
+ if (camera->num_media_crops)
+ mp_setup_media_link_pad_crops(
+ dev_info,
+ camera->media_crops,
+ camera->num_media_crops);
mp_camera_set_mode(info->camera, &mode);
mp_camera_start_capture(info->camera);

View File

@ -27,6 +27,10 @@ DEPEND="
RDEPEND="${DEPEND}"
BDEPEND=""
PATCHES=(
"${FILESDIR}"/8721f29e27f21111c439ee45f4ea76b56017d016.patch
)
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update

View File

@ -1,4 +1,4 @@
DIST chatty-v0.6.7.tar.gz 576407 BLAKE2B a6d6d2db170f689b30fb81c7ed3b6e66145eb559b6baf48cd0c2db7a3c4d70b1a16b7735ca7de552d5fbbd28219377676d0128debece9eb2fdba59fa18c7aa5f SHA512 3029843ad6064001e87f8a8a8af82b23cfc7d5dc2ffd35e3506b178a2dbd88046d88c4a22cd2b65f9a279a5ed2199f5dc5cfcbe657c36b79738d4bc0777de6f1
DIST chatty-v0.7.0_rc1.tar.gz 548140 BLAKE2B 0c2f4b4161beaaa543fa275848d0f15841343124ea42ca997c888f27023c2fad1e3ad93634ee73ffa96ab2320f996c3b21c4c66320f6b4d519b6770515075369 SHA512 df696f4ba0a06a2d3bf1478c6ab72bf6671f26b0b3c505873c4aa125813867fbcda8b79a2365f58d3d382cf6a3f2cb8c2eb4dcdf99d1dad80fb49ca210130188
DIST libcmatrix-13bdda3e2b6ef4747feeccbb0a9ddcfafb63f898.tar.gz 154080 BLAKE2B b0208b9c039b5915f1ef99f513f7079288caacdae0e38485af97ec31dfae20f117763e7d2565e62138e46e5af4cb76613aea7efdbffaf196cbaa5bba8cb08a38 SHA512 001f44aa70bab9e5115b4f325d5e091693b757f2cb51318e77df474bd0671c067a9231674636855d8ba5fe57ef39102fca4ee8680d6e27db8445c07c6576463c
DIST chatty-v0.7.0_rc4.tar.gz 556961 BLAKE2B 643088e1e8b02b73442a3a8bffb613a088b75a0bec5e9a393fe2ea4c0db835dc3a8a4bb29f79b91621f24fe9325d2ce641803daa003d72306b983d89585ebe1b SHA512 e0ba0bd221f5e257d9fbde6632581abf002521aa870d4062de6a30d151414be700567638af1c61eab3f3057094cc4663d1f597280c93886283246e7c3f3763cb
DIST libcmatrix-e9854d058068df258e7c0a60979e611ad2dc7a25.tar.gz 156438 BLAKE2B 14c197c7c620353164ba79251f2fb92b221a2b4a0bc8ddb140697ab2aa16bf00a45ce6a161564db2958f8a2333744a7c78e354ff7bd7c6cd60c0842ae5bda827 SHA512 9d04a121d91a04b59df85036ca868fa30a23edf7520ba44cb17c7f46cecd03fa04adf77e12c07c1e321e9d83ecca77dc3cc69d5901ce1e49d3e46369ecded26d
DIST libgd-c7c7ff4e05d3fe82854219091cf116cce6b19de0.tar.gz 58318 BLAKE2B f6e02c179340431655965e84f6fb8fac0543b220c2915c111eb7dc32c16d3d595d42c6cf5d303c20e02ebbbc5f01493b830eb99e3e4337a805f6f8b48fd27377 SHA512 681cc23b5a33df88a92e3aac33d0dba1c6ebb69a2bd6f15b6ae31f0b444c108f7bfd1391e604433be58d82c0032028b112652d3d0c473abe4db02d66c55cdef3

View File

@ -5,9 +5,9 @@ EAPI=7
inherit meson gnome2-utils xdg
COMMIT="37e96593d4accb1c637e992daa8466d444365db5"
COMMIT="8ec02491e9b26ce30f5d56a9737ccf160b37b65c"
LIBGD_COMMIT="c7c7ff4e05d3fe82854219091cf116cce6b19de0"
LIBCM_COMMIT="13bdda3e2b6ef4747feeccbb0a9ddcfafb63f898"
LIBCM_COMMIT="e9854d058068df258e7c0a60979e611ad2dc7a25"
DESCRIPTION="XMPP and SMS messaging via libpurple and Modemmanager"
HOMEPAGE="https://source.puri.sm/Librem5/chatty"

View File

@ -1 +0,0 @@
DIST libcloudproviders-0.3.1.tar.xz 22072 BLAKE2B ecd573507b75c144d94678b693181efc9420fed2d9103cb35653a5f83435e544e77cba232c490ad946ace1eb3cc7382d746ca9fadb55a69c87f55ba3aa09ec83 SHA512 66e951380da8447529d04cc9cbaa0587f40152ab0b66787ce3939104a49eeb16808499a5dcdcd38b7ae9c8cca8bec66ae0bbf04524e7ff8fdf6d420e8a71d609

View File

@ -1,44 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org meson vala
DESCRIPTION="DBus API that allows cloud storage sync clients to expose their services"
HOMEPAGE="https://gitlab.gnome.org/World/libcloudproviders"
LICENSE="LGPL-3"
SLOT="0"
IUSE="gtk-doc +introspection vala"
REQUIRED_USE="vala? ( introspection )"
KEYWORDS="~amd64 ~arm64"
DEPEND=">=dev-libs/glib-2.51.2:2"
RDEPEND="${DEPEND}"
BDEPEND="
dev-util/gdbus-codegen
dev-util/glib-utils
gtk-doc? ( dev-util/gtk-doc )
vala? ( $(vala_depend) )
"
src_prepare() {
default
use vala && vala_setup
}
src_configure() {
local emesonargs=(
$(meson_use gtk-doc enable-gtk-doc)
-Dinstalled-tests=false
$(meson_use introspection)
$(meson_use vala vapigen)
)
meson_src_configure
}
src_install() {
meson_src_install
}

View File

@ -1,2 +0,0 @@
DIST rest-0.8.1.tar.xz 333376 BLAKE2B 595576f29ebe35121b7a896086abd3411ac3b2d324d2e50d646274c4060cfaffbd3b701eaae80afdc60d52c77bb5076135064648536378f2562f27c79c5738b7 SHA512 824a341db3827e4360abe03e33735918c68913c70d797699ef74271080a1985872006ec70fd994dc8fa3fbfef417e6fe979883c11286512d0ce623b8368e40c3
DIST rest-0.9.1.tar.xz 71136 BLAKE2B 696a43db8a05d90cd2cb86cb2ffe22a817c7b0565c1e90e2508b0dffd3824fa46afef78c039d8911dc50f93c0afe1efbc783676c677b71bb7a2b5ad9ac5a1a26 SHA512 7fb219f571aec2b8d09d71e257e2b230bfb5c862e7e425fd540c96f6e2a22457df7d3df32838d71beec00ba54c7adbd0301d744bb0497c46b3a1413949304462

View File

@ -1,59 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org meson vala
DESCRIPTION="Helper library for RESTful services"
HOMEPAGE="https://wiki.gnome.org/Projects/Librest"
LICENSE="LGPL-2.1"
SLOT="1.0" # librest_soversion
KEYWORDS="~amd64 ~arm64"
IUSE="gtk-doc +introspection test vala"
REQUIRED_USE="
gtk-doc? ( introspection )
vala? ( introspection )
"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-libs/glib-2.44.0:2
>=net-libs/libsoup-2.99.2:3.0
dev-libs/json-glib:0[introspection?]
dev-libs/libxml2:2
app-misc/ca-certificates
introspection? ( >=dev-libs/gobject-introspection-1.74.0:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/glib-utils
gtk-doc? ( >=dev-util/gi-docgen-2021.6 )
vala? ( $(vala_depend) )
"
src_prepare() {
default
vala_setup
# The only two tests from the rest-extras suite (flickr and lastfm) require
# network access
if has network-sandbox ${FEATURES}; then
sed -i -e '/flickr/d' -e '/lastfm/d' tests/meson.build
fi
}
src_configure() {
local emesonargs=(
-Dca_certificates=true
-Dca_certificates_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
$(meson_use introspection)
$(meson_use vala vapi)
-Dexamples=false
$(meson_use gtk-doc gtk_doc)
-Dsoup2=false
$(meson_use test tests)
)
meson_src_configure
}

View File

@ -1 +1 @@
DIST eg25-manager-0.4.5.tar.gz 54313 BLAKE2B 1ac8d0866a9dc633547b6dc334c88c84fbf8c6978c8601ecad1b9d9ec2a777129ce42e604d5cc32bcead24d916dc0687dd1a352500f454f88cbaac42634f5ff5 SHA512 0aa5cabbb4eadfa1784aa9f8bd22b4c517dcf39c8e7dc694ab5fc4e0681a91c43354a82b1d877a87c94b89a156b5a09035a25beb47e503c9c4b0b41405e0e438
DIST eg25-manager-0.4.6.tar.gz 54287 BLAKE2B 31273d1c3676c3da026c2aebf3f1039ac14b640f4792ba4b045267c04393d2e1685d11cee847fb027ee2eb991fafae945ad63db6c9a22fd4ff9708142fb3e09b SHA512 f67e2a903ccb8c1428e46a7b25a7abfee4345de960c02cc523fd9490b7bbc61ff5134170c82c0bfe6bdc3dc311f1b66b1392f07c1041d610d75c745703b63b09

View File

@ -5,7 +5,7 @@ EAPI=7
inherit meson systemd
COMMIT="5b4f9bcc1205c4084049e8e627528e6e6beb3a98"
COMMIT="e7790f941c053837e596dccd92ba97051a2d4cc1"
DESCRIPTION="Daemon for managing the Quectel EG25 modem"
HOMEPAGE="https://gitlab.com/mobian1/eg25-manager"

View File

@ -1,2 +1,2 @@
DIST calls-v43.0.tar.gz 490744 BLAKE2B f89d6d02982b183beed3c5d6abde84de67b337427d801a82b591035ca8d93f744bb7f5f4366b79105606c3895cd5cbd0cc8163f5f19797db8c81d81244363264 SHA512 d72a80fa4a4e3a891b8f0e44709b70aa9427b31cd7c7906626dfb728aae8aa75f2db46bd8efaaf79ce7b15c1c72b53be4055f5b81d556f2407a601060aebbb4a
DIST calls-v43.2.tar.gz 718776 BLAKE2B 9101ff58fdb2c2eae94c39e7e0ed2e1b6f806e7fea16bfbd215f96fc0ec369fb4fc7389d7787f0da1c4363c511160847b24aa16122e3850715df42bbdc0e4184 SHA512 abffb4eb375e107c72db0fdc8848afc2f065ce0c57a852163c176ee508074653195b492a0e111986f4ce091df98ee75861c6bb73275aec1ad846cab4c70a13ab
DIST libcall-ui-619dd91561ad470db3d0e0e263ebc35d787afd2e.tar.gz 165840 BLAKE2B 4bbeec0dd5314bdbd4aacef4cb7a7599557a35c32b3135120bfbc6977a2a1a4f17f702eac021f694f11dffe5ecebc23b44ffda765d1b9e10d5f23f88461e1b2a SHA512 c42bb6474fd7215b23a5496ae6ebbcf3e0e3f123c358f79f9fb0800def336386ff334d9b780f1f77614e94003f79dce739edb4bdd0502b9969f3706a6d2091a5

View File

@ -1 +1 @@
DIST vvmd-0.10.tar.gz 164157 BLAKE2B e55f659c21d3596dbc07f3d1314614021eb281e64b0d0167a966c832d5411ee8e341192b62021796ec525cb1b4dca76c22c7548f9bd13dbec9d9855c7897e5f9 SHA512 3a0241df8579b59dd8259114b727876da2499c058b4332fa98ac999d1977d88560a527997fd20fe8506706996890a76ce8db11d2ebf8d02d98f27ed6f8ace318
DIST vvmd-0.13.tar.gz 167051 BLAKE2B 50360dc8d7e145d9d6ff625ff8c08b2f7c8e0b3dc41e891b4adae73019ac9f59a2943a5b678752532fbb6404e54df8bd511f2bc32d6c2ef7b01df01a349a4995 SHA512 8149c4570f0353c923faf33dc3d01a21901c71294d30763cdb596273c32942dd9bdfc50b6a7d12442577cb7251c7d9da6724f9526c4b20934875cab00b897f5a

View File

@ -1,6 +0,0 @@
DIST vte-0.28.2.tar.xz 962340 BLAKE2B 1e4b5977962265be77917ccfc9118ed93232c03d7a16b6c08a27e721fe71f8c1dd1783a439530d7b3d915111cb8cc78281f1e9e351d6a83edd31f224309ca1e9 SHA512 d6a50481aaa8946cca3779e0b328fef551be534d70366a75385d1f8ead3fcddec57bed85c7d4bc2d9f34546532129e63083aafa33cbb0efcbc7dc9d66e7c45f6
DIST vte-0.68.0-command-notify.patch.xz 9748 BLAKE2B de2d4c9b7f2c2b21518984f818d0052c0084398f5f4ee30d766a6adb9c4536fdec5027c753d3d710fb7432e67472b7f8ca44f1dd5f51aaef48d9124708975d24 SHA512 89be91cdba36749f97bac872f0f2196be7d36a58beaf94fa24a3ae9c266bdfbf4f4fbf1d10f43a276540653fff7062eb844107016e7f014437f2903d251dc1d7
DIST vte-0.68.0.tar.bz2 507598 BLAKE2B 10274d9e804f00bf071b7848633ca8de2953f4e91dc2967e33b7d6698bb304baac4f0e0431debae5a972c2c56c65efd1c5b92455a17db08cf254ddec56d3276e SHA512 785df7261b5075f166e59de7d3535b381564715ce65efd4837a130e153528691b610fc6160c00f0f17008f5f4ee94c23350d9a477b4b1d58da6ace083e5caae1
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
DIST vte-0.70.1.tar.bz2 502044 BLAKE2B 0a9ce43c1863e823fcd073fd30fb6b2cb39e9168e850796fe12be2b9bdfc0b24ceea974b4c94bcdd10f2225613990e0e079194380241b7e625cb6dc4309a7476 SHA512 88de629b382eca8a42199b2ba9b248e231817e1de7183417aed150bcf61530084f7177d73dee9aab25fe4c3ab80d795b5fdcae336687560d3b582bd04181353d

View File

@ -1,51 +0,0 @@
reported upstream: https://bugzilla.gnome.org/show_bug.cgi?id=652290
diff -ru vte-0.26.2.orig/configure.in vte-0.26.2/configure.in
--- vte-0.26.2.orig/configure.in 2011-08-17 08:30:55 +0200
+++ vte-0.26.2/configure.in 2011-08-17 08:35:42 +0200
@@ -362,7 +362,11 @@
AC_DEFINE(HAVE_RECVMSG,1,[Define if you have the recvmsg function.])
fi
AC_CHECK_FUNC(floor,,AC_CHECK_LIB(m,floor,LIBS=["$LIBS -lm"]))
-AC_CHECK_FUNCS([ceil floor])
+dnl if the first check didn't find floor, it caches the "no" value,
+dnl and doesn't recheck. this makes the below check fail always on
+dnl systems with floor in -lm. thus we unset the chached result.
+unset ac_cv_func_floor
+AC_CHECK_FUNCS([ceil floor round])
# Look for tgetent
--- vte-0.26.2.orig/configure 2012-04-30 20:02:55.000000000 +0200
+++ vte-0.26.2/configure 2012-04-30 20:03:16.000000000 +0200
@@ -13277,7 +13277,7 @@
fi
-for ac_func in ceil floor
+for ac_func in ceil floor round
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
diff -ru vte-0.26.2.orig/src/vte.c vte-0.26.2/src/vte.c
--- vte-0.26.2.orig/src/vte.c 2011-08-17 08:30:58 +0200
+++ vte-0.26.2/src/vte.c 2011-08-17 08:38:09 +0200
@@ -63,6 +63,18 @@
#include <locale.h>
#endif
+#ifndef HAVE_ROUND
+# if defined(HAVE_CEIL) && defined(HAVE_FLOOR)
+static inline double round(double x) {
+ if(x - floor(x) < 0.5) {
+ return floor(x);
+ } else {
+ return ceil(x);
+ }
+}
+# endif
+#endif
+
#if GTK_CHECK_VERSION (2, 90, 7)
#define GDK_KEY(symbol) GDK_KEY_##symbol
#else

View File

@ -1,40 +0,0 @@
From feeee4b5832b17641e505b7083e0d299fdae318e Mon Sep 17 00:00:00 2001
From: Christian Persch <chpe@gnome.org>
Date: Sat, 19 May 2012 17:36:09 +0000
Subject: emulation: Limit integer arguments to 65535
To guard against malicious sequences containing excessively big numbers,
limit all parsed numbers to 16 bit range. Doing this here in the parsing
routine is a catch-all guard; this doesn't preclude enforcing
more stringent limits in the handlers themselves.
https://bugzilla.gnome.org/show_bug.cgi?id=676090
---
diff --git a/src/table.c b/src/table.c
index 140e8c8..85cf631 100644
--- a/src/table.c
+++ b/src/table.c
@@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array,
if (G_UNLIKELY (*array == NULL)) {
*array = g_value_array_new(1);
}
- g_value_set_long(&value, total);
+ g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT));
g_value_array_append(*array, &value);
} while (i++ < arginfo->length);
g_value_unset(&value);
diff --git a/src/vteseq.c b/src/vteseq.c
index 457c06a..46def5b 100644
--- a/src/vteseq.c
+++ b/src/vteseq.c
@@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal,
GValueArray *params,
VteTerminalSequenceHandler handler)
{
- vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG);
+ vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT);
}
static void
--
cgit v0.9.0.2

View File

@ -1,86 +0,0 @@
https://git.gnome.org/browse/vte/commit/?id=88e8e89560a62d0981ce2b18974a230d0a07dbdd
From 88e8e89560a62d0981ce2b18974a230d0a07dbdd Mon Sep 17 00:00:00 2001
From: Micah Cowan <micah@cowan.name>
Date: Tue, 22 Oct 2013 23:30:43 +0200
Subject: widget: Fix invalidation region
When the sequence handler moves the cursor into the restricted scrolling region,
the bbox needs to be reset, too.
Fixes glitches with interspersing writes to the bottom line with scrolls of the
upper region, and also fixes missing screen redraws when using mosh.
https://bugzilla.gnome.org/show_bug.cgi?id=542087
https://bugzilla.gnome.org/show_bug.cgi?id=686097
diff --git a/src/vte.c b/src/vte.c
index 9f6d7d8..a4d9d25 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -4077,6 +4077,7 @@ vte_terminal_process_incoming(VteTerminal *terminal)
long wcount, start, delta;
gboolean leftovers, modified, bottom, again;
gboolean invalidated_text;
+ gboolean in_scroll_region;
GArray *unichars;
struct _vte_incoming_chunk *chunk, *next_chunk, *achunk = NULL;
@@ -4096,6 +4097,10 @@ vte_terminal_process_incoming(VteTerminal *terminal)
cursor = screen->cursor_current;
cursor_visible = terminal->pvt->cursor_visible;
+ in_scroll_region = screen->scrolling_restricted
+ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start))
+ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end));
+
/* We should only be called when there's data to process. */
g_assert(terminal->pvt->incoming ||
(terminal->pvt->pending->len > 0));
@@ -4194,6 +4199,8 @@ skip_chunk:
* points to the first character which isn't part of this
* sequence. */
if ((match != NULL) && (match[0] != '\0')) {
+ gboolean new_in_scroll_region;
+
/* Call the right sequence handler for the requested
* behavior. */
_vte_terminal_handle_sequence(terminal,
@@ -4204,12 +4211,21 @@ skip_chunk:
start = (next - wbuf);
modified = TRUE;
- /* if we have moved during the sequence handler, restart the bbox */
+ new_in_scroll_region = screen->scrolling_restricted
+ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start))
+ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end));
+
+ delta = screen->scroll_delta; /* delta may have changed from sequence. */
+
+ /* if we have moved greatly during the sequence handler, or moved
+ * into a scroll_region from outside it, restart the bbox.
+ */
if (invalidated_text &&
- (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK ||
- screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK ||
- screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK ||
- screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK)) {
+ ((new_in_scroll_region && !in_scroll_region) ||
+ (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK))) {
/* Clip off any part of the box which isn't already on-screen. */
bbox_topleft.x = MAX(bbox_topleft.x, 0);
bbox_topleft.y = MAX(bbox_topleft.y, delta);
@@ -4229,6 +4245,8 @@ skip_chunk:
bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT;
bbox_topleft.x = bbox_topleft.y = G_MAXINT;
}
+
+ in_scroll_region = new_in_scroll_region;
} else
/* Second, we have a NULL match, and next points to the very
* next character in the buffer. Insert the character which
--
cgit v0.10.2

View File

@ -1,74 +0,0 @@
From 180dcc578e13c6096e277fb853e7162db640f207 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Tue, 15 Nov 2011 03:06:40 -0500
Subject: [PATCH] Map both gdk's Meta and Alt to vte's Meta for >=gtk+-3.2.2
compatibility
Also, since VTE_META_MASK is now a mask with multiple bits set, code that
compares gdk key modifiers to VTE_META_MASK by numerical equality is no
longer guaranteed to work. Therefore, for such comparisons a new function,
vte_keymap_fixup_modifiers, is introduced; it ensures that if any bits
matching matching VTE_META_MASK are set, then all are set.
https://bugzilla.gnome.org/show_bug.cgi?id=663779
---
src/keymap.c | 15 +++++++++++++--
src/keymap.h | 2 +-
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/keymap.c b/src/keymap.c
index 9a21669..95b4c5b 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -990,6 +990,17 @@ static const struct _vte_keymap_group {
{GDK_KEY (F35), _vte_keymap_GDK_F35},
};
+/* Restrict modifiers to the specified mask and ensure that VTE_META_MASK,
+ * despite being a compound mask, is treated as indivisible. */
+GdkModifierType
+_vte_keymap_fixup_modifiers(GdkModifierType modifiers,
+ GdkModifierType mask)
+{
+ if (modifiers & VTE_META_MASK)
+ modifiers |= VTE_META_MASK;
+ return modifiers & mask;
+}
+
/* Map the specified keyval/modifier setup, dependent on the mode, to either
* a literal string or a capability name. */
void
@@ -1104,7 +1115,7 @@ _vte_keymap_map(guint keyval,
} else {
fkey_mode = fkey_default;
}
- modifiers &= (GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
+ modifiers = _vte_keymap_fixup_modifiers(modifiers, GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
/* Search for the conditions. */
for (i = 0; entries[i].normal_length || entries[i].special[0]; i++)
@@ -1375,7 +1386,7 @@ _vte_keymap_key_add_key_modifiers(guint keyval,
return;
}
- switch (modifiers & significant_modifiers) {
+ switch (_vte_keymap_fixup_modifiers(modifiers, significant_modifiers)) {
case 0:
modifier = 0;
break;
diff --git a/src/keymap.h b/src/keymap.h
index 243e22e..21d9b8e 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -27,7 +27,7 @@
G_BEGIN_DECLS
-#define VTE_META_MASK GDK_META_MASK
+#define VTE_META_MASK (GDK_META_MASK | GDK_MOD1_MASK)
#define VTE_NUMLOCK_MASK GDK_MOD2_MASK
/* Map the specified keyval/modifier setup, dependent on the mode, to either
--
1.7.8.rc3

View File

@ -1,48 +0,0 @@
https://gitlab.gnome.org/GNOME/vte/-/issues/350
From d459d32126119c8d78f8239b8b857a255e6005d7 Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gmail.com>
Date: Sat, 1 May 2021 08:31:45 -0400
Subject: [PATCH] meson: Find python explicitly to honor downstream python
choice
---
meson.build | 1 +
src/meson.build | 2 ++
2 files changed, 3 insertions(+)
diff --git a/meson.build b/meson.build
index 4f5a7c57..6404802f 100644
--- a/meson.build
+++ b/meson.build
@@ -461,6 +461,7 @@ pango_dep = dependency('pango', version: '>=' + pango_req_version)
pcre2_dep = dependency('libpcre2-8', version: '>=' + pcre2_req_version)
pthreads_dep = dependency('threads')
zlib_dep = dependency('zlib')
+python = import('python').find_installation('python3')
if get_option('fribidi')
fribidi_dep = dependency('fribidi', version: '>=' + fribidi_req_version)
diff --git a/src/meson.build b/src/meson.build
index a1440da5..4ac6a7f2 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -60,6 +60,7 @@ modes_sources = files(
modes_sources += custom_target(
'modes',
command: [
+ python,
files('modes.py'),
'--destdir', '@OUTDIR@',
],
@@ -92,6 +93,7 @@ parser_sources = files(
parser_sources += custom_target(
'parser-seq',
command: [
+ python,
files('parser-seq.py'),
'--destdir', '@OUTDIR@',
],
--
2.26.3

View File

@ -1,29 +0,0 @@
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);
}
}

View File

@ -1,101 +0,0 @@
# 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" # vte_api_version in meson.build
IUSE="+crypt debug gtk-doc +icu +introspection systemd +vala vanilla"
KEYWORDS="~amd64 ~arm64"
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="
>=x11-libs/gtk+-3.24.22:3[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_gtk3_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=true
-Dgtk4=false
$(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 gui-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/vte-${SLOT}-gtk3 || die
fi
}

View File

@ -1,101 +0,0 @@
# 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" # vte_api_version in meson.build
IUSE="+crypt debug gtk-doc +icu +introspection systemd +vala vanilla"
KEYWORDS="~amd64 ~arm64"
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="
>=x11-libs/gtk+-3.24.22:3[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_gtk3_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=true
-Dgtk4=false
$(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 gui-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/vte-${SLOT}-gtk3 || die
fi
}

View File

@ -1,5 +0,0 @@
DIST gnome-terminal-3.44.0-cntr-ntfy-autottl-ts.patch.xz 37248 BLAKE2B b3599386e7272fc5b742c11663f09bbfafa84cc855bd13fd602d679601fbb4126f36cdb157db37db335bf9edfe7d2b85e534baf837c5817984ec17baa4cdbb6c SHA512 6422a774abfee18b2681115344f508b72ead1bb9f27b5b1596b419a9ce5a137d41e2d749b6d784170225e7f21f15c109f7eb74cc3164371d53dee7790bf99187
DIST gnome-terminal-3.44.1.tar.xz 1813032 BLAKE2B 3e001139aa0516bd27f7215c692c048393d6ad41737b8817f212529d3c530f6417d05601f63e6265e3fb84e788322341c25784a0a26ee7434f1d4bccd31c1eea SHA512 afaa9a1b4fa86fea853a242f167d1ba3438efe4e049336bae138cb800d43c3325f624849463f16c9d4e34360916377c4edbfd2f3977212b51e35a41cca88b283
DIST gnome-terminal-3.46.2-cntr-ntfy-autottl-ts.patch.xz 34980 BLAKE2B 97a634da8f586fe03770540a00480f04de5d3210bb45e9af216ac876a85a8199d2d9ed651cae6631a0b432c96d28b5a07202baf79765a2b3767160c1df5cb84a SHA512 96591f7e1f4febfce9d8b10a0fc8aebc09ad07cb2fb36876affaa47f19360944c37e63c173af6f07807247c6f60f34e4e39590ccb1632a64d6e5dbf3912bea74
DIST gnome-terminal-3.46.2.tar.gz 2881209 BLAKE2B 191e9f2f074e2965e85708e92608903173228e9c8df8df3f67eea33a95ab0726f5a0e10c80839d735c57f47ee5388fe70b2eedff21c1d73019ede95d6a00fd78 SHA512 b5a6507f9e908d9bdd4659d961e9618ff75ed5c6e02c6818d8399d4ea355dff7ea1b8bafb4304501d5a46e83e5f8633524c7851d42a39b1bdea5a1545ca1d31d
DIST gnome-terminal-3.46.3.tar.gz 2881211 BLAKE2B a5c0aea858692bbab3ed20d4daa54dc97c98d4b920b09fa0aa52963658f6a327e90398c45ae5ed4dd3a40823ba84eff208f6df5e5e0731a1b1e7d8e531ad7b73 SHA512 d1408bfaf0a7c0b090f140c5ac12fe406fcfb18ddda5745616f209e196cc0b29887a312afa29a8ce319cbc7a0093908305a0fc95c357f8c714084cc696c8e79c

View File

@ -1,21 +0,0 @@
https://gitlab.gnome.org/GNOME/vte/-/issues/72
Someone already tried to upstream a similar patch to gnome vte that
would fix this but was rejected by maintainer. More info can be found
on the link above.
W_EXITCODE is missing in musl thus causing gnome-terminal build to fail.
This patch checks if W_EXITCODE is not defined and then defines it.
--- a/src/terminal.cc
+++ b/src/terminal.cc
@@ -47,6 +47,11 @@
GS_DEFINE_CLEANUP_FUNCTION0(TerminalOptions*, gs_local_options_free, terminal_options_free)
#define gs_free_options __attribute__ ((cleanup(gs_local_options_free)))
+/* fix for musl */
+#ifndef W_EXITCODE
+#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
+#endif
+
/* Wait-for-exit helper */
typedef struct {

View File

@ -1,2 +0,0 @@
[org.gnome.Terminal.Legacy.Settings]
unified-menu=false

View File

@ -1,96 +0,0 @@
# 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 python-any-r1 readme.gentoo-r1 xdg
DESCRIPTION="A terminal emulator for GNOME"
HOMEPAGE="https://wiki.gnome.org/Apps/Terminal/ https://gitlab.gnome.org/GNOME/gnome-terminal"
LICENSE="GPL-3+"
SLOT="0"
IUSE="debug +gnome-shell +nautilus vanilla"
# Upstream is hostile and refuses to upload tarballs.
SRC_URI="https://gitlab.gnome.org/GNOME/${PN}/-/archive/${PV}/${P}.tar.gz"
SRC_URI+=" !vanilla? ( https://dev.gentoo.org/~mattst88/distfiles/${PN}-3.46.2-cntr-ntfy-autottl-ts.patch.xz )"
KEYWORDS="~amd64 ~arm64"
# FIXME: automagic dependency on gtk+[X], just transitive but needs proper control, bug 624960
RDEPEND="
>=dev-libs/glib-2.52:2
>=x11-libs/gtk+-3.22.27:3
>=x11-libs/vte-0.70.0:2.91[!vanilla?]
>=dev-libs/libpcre2-10
>=gnome-base/gsettings-desktop-schemas-0.1.0
sys-apps/util-linux
gnome-shell? ( gnome-base/gnome-shell )
nautilus? ( >=gnome-base/nautilus-43.0 )
"
DEPEND="${RDEPEND}"
# itstool required for help/* with non-en LINGUAS, see bug #549358
# xmllint required for glib-compile-resources, see bug #549304
BDEPEND="
${PYTHON_DEPS}
dev-libs/libxml2:2
dev-libs/libxslt
dev-util/gdbus-codegen
dev-util/glib-utils
dev-util/itstool
>=sys-devel/gettext-0.19.8
virtual/pkgconfig
"
DOC_CONTENTS="To get previous working directory inherited in new opened tab, or
notifications of long-running commands finishing, you will need
to add the following line to your ~/.bashrc:\n
. /etc/profile.d/vte-2.91.sh"
src_prepare() {
eapply "${FILESDIR}"/${PN}-3.44.1-fix-missing-wexitcode.patch
if ! use vanilla; then
# https://bugzilla.gnome.org/show_bug.cgi?id=695371
# Fedora patches:
# Restore transparency support (with compositing WMs only)
# OSC 777 desktop notification support (notifications on tabs for long-running commands completing)
# Restore "Set title" support
# Automatic title updating based on currently running foreground process
# https://src.fedoraproject.org/rpms/gnome-terminal/raw/f31/f/gnome-terminal-cntr-ntfy-autottl-ts.patch
# Depends on vte[-vanilla] for OSC 777 and the preexec/precmd/etc patches in VTE
eapply "${WORKDIR}"/${PN}-3.46.2-cntr-ntfy-autottl-ts.patch
fi
default
}
src_configure() {
local emesonargs=(
$(meson_use debug dbg)
-Ddocs=false
$(meson_use nautilus nautilus_extension)
$(meson_use gnome-shell search_provider)
)
meson_src_configure
}
src_install() {
meson_src_install
if ! use vanilla; then
# Separate "New Window/Tab" menu entries by default, instead of unified "New Terminal"
insinto /usr/share/glib-2.0/schemas
newins "${FILESDIR}"/separate-new-tab-window.gschema.override org.gnome.Terminal.gschema.override
fi
readme.gentoo_create_doc
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
readme.gentoo_print_elog
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
}

View File

@ -1 +0,0 @@
DIST mutter-913655c03539fb03ff691dc5192acb03c7f0c011.tar.gz 4598084 BLAKE2B 19395d4473b4b4c6827fd71ea2cd013a2310b3e0318b13bfb2a6ff598d33fbfd4b9da3a8ac8a9dd53fff8be8909732d064b6dd8289a9e7ee2bd37a15ff79e7ba SHA512 ed07d3df1dbd313f11724b70c9bff15589979bd534cf5f9790ae6ad9aec90a5e94b131c17578417363a68b571c2c747e48fa706c1c25d54d3dc732fa44d735ae

View File

@ -1,30 +0,0 @@
From 8cb699dc59c64dc9f58873b3bbe2d17c3a08d2f9 Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gmail.com>
Date: Fri, 18 Mar 2022 17:40:52 -0700
Subject: [PATCH] Disable anonymous-file test
It attempts to open /proc/self/fd/* (an fd created by memfd_create),
which sandbox disallows.
---
src/tests/meson.build | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/tests/meson.build b/src/tests/meson.build
index a19703288..50027d1f8 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -180,11 +180,6 @@ test_cases += [
'suite': 'compositor',
'sources': [ 'stage-view-tests.c', ],
},
- {
- 'name': 'anonymous-file',
- 'suite': 'unit',
- 'sources': [ 'anonymous-file.c', ],
- },
]
if have_native_tests
--
2.34.1

View File

@ -1,79 +0,0 @@
From db854a8588c1164df2f54c5718930aadf353b948 Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@debian.org>
Date: Thu, 18 Aug 2022 10:41:01 +0100
Subject: [PATCH] backend/native: Don't warn on EACCES if headless
Since commit 1bf70334 "tests/runner: Make test runner use the headless
backend", tests are run with the native backend in headless mode, which
will attempt to open each GPU and show a warning (fatal during tests)
if it cannot.
However, in headless mode we might not be logged in on any seat (for
example we might be logged in via ssh instead), which means we might
legitimately not have permission to use any GPUs, even if they exist.
Downgrade the warning to a debug message in this case.
Resolves: https://gitlab.gnome.org/GNOME/mutter/-/issues/2381
Signed-off-by: Simon McVittie <smcv@debian.org>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2584>
(cherry picked from commit 64a67aa00bfe54fe7219d7f581950897fcbf9a75)
---
src/backends/native/meta-backend-native.c | 35 +++++++++++++++++++----
1 file changed, 30 insertions(+), 5 deletions(-)
diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c
index 224538787..a2babb4b0 100644
--- a/src/backends/native/meta-backend-native.c
+++ b/src/backends/native/meta-backend-native.c
@@ -514,8 +514,20 @@ on_udev_device_added (MetaUdev *udev,
new_gpu_kms = create_gpu_from_udev_device (native, device, &error);
if (!new_gpu_kms)
{
- g_warning ("Failed to hotplug secondary gpu '%s': %s",
- device_path, error->message);
+ if (meta_backend_is_headless (backend) &&
+ g_error_matches (error, G_IO_ERROR,
+ G_IO_ERROR_PERMISSION_DENIED))
+ {
+ meta_topic (META_DEBUG_BACKEND,
+ "Ignoring unavailable secondary gpu '%s': %s",
+ device_path, error->message);
+ }
+ else
+ {
+ g_warning ("Failed to hotplug secondary gpu '%s': %s",
+ device_path, error->message);
+ }
+
return;
}
@@ -552,9 +564,22 @@ init_gpus (MetaBackendNative *native,
if (!gpu_kms)
{
- g_warning ("Failed to open gpu '%s': %s",
- g_udev_device_get_device_file (device),
- local_error->message);
+ if (meta_backend_is_headless (backend) &&
+ g_error_matches (local_error, G_IO_ERROR,
+ G_IO_ERROR_PERMISSION_DENIED))
+ {
+ meta_topic (META_DEBUG_BACKEND,
+ "Ignoring unavailable gpu '%s': %s'",
+ g_udev_device_get_device_file (device),
+ local_error->message);
+ }
+ else
+ {
+ g_warning ("Failed to open gpu '%s': %s",
+ g_udev_device_get_device_file (device),
+ local_error->message);
+ }
+
g_clear_error (&local_error);
continue;
}
--
2.35.1

View File

@ -1,27 +0,0 @@
From 8cb699dc59c64dc9f58873b3bbe2d17c3a08d2f9 Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gmail.com>
Date: Fri, 18 Mar 2022 17:40:52 -0700
Subject: [PATCH] Disable anonymous-file test
It attempts to open /proc/self/fd/* (an fd created by memfd_create),
which sandbox disallows.
---
src/tests/meson.build | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/tests/meson.build b/src/tests/meson.build
index a19703288..50027d1f8 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -224,11 +224,6 @@ test_cases += [
'suite': 'compositor',
'sources': [ 'stage-view-tests.c', ],
},
- {
- 'name': 'anonymous-file',
- 'suite': 'unit',
- 'sources': [ 'anonymous-file.c', ],
- },
{
'name': 'edid',
'suite': 'unit',

View File

@ -1,210 +0,0 @@
# 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 python-any-r1 udev xdg
COMMIT="913655c03539fb03ff691dc5192acb03c7f0c011"
DESCRIPTION="GNOME compositing window manager based on Clutter"
HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
SRC_URI="https://gitlab.gnome.org/verdre/mutter/-/archive/${COMMIT}/mutter-${COMMIT}.tar.gz"
LICENSE="GPL-2+"
SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
IUSE="doc elogind gnome input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia mobile"
# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
REQUIRED_USE="
wayland? ( ^^ ( elogind systemd ) udev )
test? ( wayland )"
RESTRICT="!test? ( test )"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
# xorg-server is needed at build and runtime with USE=wayland for Xwayland
# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
DEPEND="
>=media-libs/lcms-2.6:2
>=x11-misc/colord-1.4.5:=
>=x11-libs/libX11-1.7.0
>=media-libs/graphene-1.10.2[introspection?]
>=x11-libs/gtk+-3.19.8:3[X,introspection?]
x11-libs/gdk-pixbuf:2
>=x11-libs/pango-1.46[introspection?]
>=dev-libs/fribidi-1.0.0
>=x11-libs/cairo-1.14[X]
>=gnome-base/gsettings-desktop-schemas-42.0[introspection?]
>=dev-libs/glib-2.69.0:2
gnome-base/gnome-settings-daemon
>=dev-libs/json-glib-0.12.0[introspection?]
>=x11-libs/libxkbcommon-0.4.3
x11-libs/libICE
>=dev-libs/atk-2.5.3[introspection?]
>=media-libs/libcanberra-0.26
sys-apps/dbus
gnome? ( gnome-base/gnome-desktop:3= )
media-libs/mesa[X(+),egl(+)]
sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
systemd? ( sys-apps/systemd )
wayland? (
>=dev-libs/wayland-protocols-1.26
>=dev-libs/wayland-1.21.0
x11-libs/libdrm
>=media-libs/mesa-21.3[egl(+),gbm(+),wayland,gles2]
>=dev-libs/libinput-1.18.0:=
elogind? ( sys-auth/elogind )
x11-base/xwayland
video_cards_nvidia? ( gui-libs/egl-wayland )
)
udev? ( >=dev-libs/libgudev-232
>=virtual/libudev-232-r1:=
)
x11-libs/libSM
input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
>=x11-libs/startup-notification-0.7
screencast? ( >=media-video/pipewire-0.3.21:= )
introspection? ( >=dev-libs/gobject-introspection-1.54:= )
doc? ( >=dev-util/gi-docgen-2021.1 )
"
# for now upstream has "have_x11 = true" in the meson.build, but sooner or later upstream is going to make X optional.
# X? (
DEPEND+="
>=x11-libs/libXcomposite-0.4
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXext
>=x11-libs/libXfixes-3
>=x11-libs/libXi-1.7.4
x11-libs/libXtst
x11-libs/libxkbfile
x11-misc/xkeyboard-config
>=x11-libs/libxkbcommon-0.4.3[X]
x11-libs/libXrender
>=x11-libs/libXrandr-1.5.0
x11-libs/libxcb:=
x11-libs/libXinerama
x11-libs/libXau
"
# )"
RDEPEND="${DEPEND}
gnome-extra/zenity
!<gui-libs/gtk-4.6.4:4
!<x11-libs/gtk+-3.24.34:3
"
DEPEND="${DEPEND}
x11-base/xorg-proto
sysprof? ( >=dev-util/sysprof-common-3.38.0 )
"
BDEPEND="
dev-util/wayland-scanner
dev-util/gdbus-codegen
dev-util/glib-utils
>=sys-devel/gettext-0.19.8
virtual/pkgconfig
test? (
${PYTHON_DEPS}
$(python_gen_any_dep '
>=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
')
app-text/docbook-xml-dtd:4.5
x11-misc/xvfb-run
)
wayland? (
>=sys-kernel/linux-headers-4.4
x11-libs/libxcvt
)
"
PATCHES=(
"${FILESDIR}"/${PN}-43.0-Disable-anonymous-file-test.patch
)
S="${WORKDIR}/mutter-${COMMIT}"
python_check_deps() {
if use test; then
python_has_version ">=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]"
fi
}
src_prepare() {
default
sed -i -e "s:#!/usr/bin/bash:#!$(command -v bash):" src/tests/x11-test.sh || die
}
src_configure() {
# TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
local emesonargs=(
-Dopengl=true
#opengl_libname
#gles2_libname
$(meson_use wayland gles2)
-Degl=true
-Dglx=true
$(meson_use wayland)
$(meson_use systemd)
$(meson_use wayland native_backend)
$(meson_use screencast remote_desktop)
-Dlibgnome_desktop=true
$(meson_use udev)
-Dudev_dir=$(get_udevdir)
$(meson_use input_devices_wacom libwacom)
-Dsound_player=true
-Dpango_ft2=true
-Dstartup_notification=true
-Dsm=true
$(meson_use introspection)
$(meson_use doc docs)
$(meson_use test cogl_tests)
$(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
-Dnative_tests=false
$(meson_use test clutter_tests)
$(meson_use test tests)
-Dkvm_tests=false
-Dtty_tests=false
$(meson_use sysprof profiler)
-Dinstalled_tests=false
#verbose # Let upstream choose default for verbose mode
#xwayland_path
# TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
#xwayland_grab_default_access_rules
)
if use wayland && use video_cards_nvidia; then
emesonargs+=(
-Degl_device=true
-Dwayland_eglstream=true
)
else
emesonargs+=(
-Degl_device=false
-Dwayland_eglstream=false
)
fi
meson_src_configure
}
src_test() {
gnome2_environment_reset # Avoid dconf that looks at XDG_DATA_DIRS, which can sandbox fail if flatpak is installed
glib-compile-schemas "${BUILD_DIR}"/data
GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
}
pkg_postinst() {
use udev && udev_reload
xdg_pkg_postinst
gnome2_schemas_update
}
pkg_postrm() {
use udev && udev_reload
xdg_pkg_postrm
gnome2_schemas_update
}