Added
This commit is contained in:
parent
058f9787d0
commit
b4b3f647ee
1
dev-libs/feedbackd-device-themes/Manifest
Normal file
1
dev-libs/feedbackd-device-themes/Manifest
Normal file
@ -0,0 +1 @@
|
||||
DIST feedbackd-device-themes-0.0.20220523.tar.gz 15113 BLAKE2B 0c95a17f875b20d8bcc8eb05ed576f73dab7cc1b716133eba9b129a3e7a78f310c3f16d434712480058bf0281543f06404a1b04946fa7a9809163b3d7a099748 SHA512 ec669fd51dffb976ea5b04ba92e496e62d8e0d2ea82b16127e0c5d18daa536526e6506c0fab0d98f6ea1fb9231da38658809d56b3ce6c5e97c62d95443429336
|
@ -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"
|
8
dev-libs/feedbackd-device-themes/metadata.xml
Normal file
8
dev-libs/feedbackd-device-themes/metadata.xml
Normal 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>
|
@ -1 +0,0 @@
|
||||
DIST gnome-calendar-43.0.tar.xz 422052 BLAKE2B 08f11b309087c80090f364fa569738a0348d609fa5c0a32b5c5ea4f32681bf53c54248fc7fc3b755f2d01f382b3a8c27511daef9f0bd59faaa148b1f6d253add SHA512 33c77b37e53132892665a44547974c44b7155e673bff27f438fcd30ee68b16b4bbabd9e6a287f3680b39e5032b19409278bc1c63ae46b1ea1191e32f81a55e32
|
@ -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
|
||||
}
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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);
|
||||
}
|
||||
}
|
@ -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
|
||||
}
|
@ -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."
|
||||
}
|
@ -1 +0,0 @@
|
||||
DIST libshumate-1.0.2.tar.xz 110656 BLAKE2B 75abbfd9b4e1e7eb1044a33ff1b46391024005487f01aa4401552727322f92f28120104af4c2f90bb91c70ada6282882b9ee7f50ac62542aab8c88cc227799f8 SHA512 15539ce50462b345e4329fc27f52a5d1fb143e82821a990ce818a576fec94d1fe1fbef9926d0251d169f22394f3f21c62e56fe4d97bbdd4482429c70f22c6b2d
|
@ -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
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
22
media-sound/callaudiod/callaudiod-0.1.5.ebuild
Normal file
22
media-sound/callaudiod/callaudiod-0.1.5.ebuild
Normal 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"
|
22
media-sound/callaudiod/callaudiod-0.1.6.ebuild
Normal file
22
media-sound/callaudiod/callaudiod-0.1.6.ebuild
Normal 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"
|
@ -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
|
||||
|
@ -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);
|
@ -27,6 +27,10 @@ DEPEND="
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND=""
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/8721f29e27f21111c439ee45f4ea76b56017d016.patch
|
||||
)
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
gnome2_schemas_update
|
@ -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
|
||||
|
@ -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"
|
@ -1 +0,0 @@
|
||||
DIST libcloudproviders-0.3.1.tar.xz 22072 BLAKE2B ecd573507b75c144d94678b693181efc9420fed2d9103cb35653a5f83435e544e77cba232c490ad946ace1eb3cc7382d746ca9fadb55a69c87f55ba3aa09ec83 SHA512 66e951380da8447529d04cc9cbaa0587f40152ab0b66787ce3939104a49eeb16808499a5dcdcd38b7ae9c8cca8bec66ae0bbf04524e7ff8fdf6d420e8a71d609
|
@ -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
|
||||
}
|
@ -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
|
@ -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
|
||||
}
|
@ -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
|
||||
|
@ -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"
|
@ -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
|
||||
|
@ -1 +1 @@
|
||||
DIST vvmd-0.10.tar.gz 164157 BLAKE2B e55f659c21d3596dbc07f3d1314614021eb281e64b0d0167a966c832d5411ee8e341192b62021796ec525cb1b4dca76c22c7548f9bd13dbec9d9855c7897e5f9 SHA512 3a0241df8579b59dd8259114b727876da2499c058b4332fa98ac999d1977d88560a527997fd20fe8506706996890a76ce8db11d2ebf8d02d98f27ed6f8ace318
|
||||
DIST vvmd-0.13.tar.gz 167051 BLAKE2B 50360dc8d7e145d9d6ff625ff8c08b2f7c8e0b3dc41e891b4adae73019ac9f59a2943a5b678752532fbb6404e54df8bd511f2bc32d6c2ef7b01df01a349a4995 SHA512 8149c4570f0353c923faf33dc3d01a21901c71294d30763cdb596273c32942dd9bdfc50b6a7d12442577cb7251c7d9da6724f9526c4b20934875cab00b897f5a
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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
|
||||
}
|
@ -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
|
||||
}
|
@ -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
|
@ -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 {
|
@ -1,2 +0,0 @@
|
||||
[org.gnome.Terminal.Legacy.Settings]
|
||||
unified-menu=false
|
@ -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
|
||||
}
|
@ -1 +0,0 @@
|
||||
DIST mutter-913655c03539fb03ff691dc5192acb03c7f0c011.tar.gz 4598084 BLAKE2B 19395d4473b4b4c6827fd71ea2cd013a2310b3e0318b13bfb2a6ff598d33fbfd4b9da3a8ac8a9dd53fff8be8909732d064b6dd8289a9e7ee2bd37a15ff79e7ba SHA512 ed07d3df1dbd313f11724b70c9bff15589979bd534cf5f9790ae6ad9aec90a5e94b131c17578417363a68b571c2c747e48fa706c1c25d54d3dc732fa44d735ae
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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',
|
@ -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
|
||||
}
|
Loading…
Reference in New Issue
Block a user