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;
|
||||
|
||||