- migrated to Exherbo
- added a few initial Pantheon components
This commit is contained in:
parent
cb6360a7e8
commit
2d2bbbc830
85 changed files with 931 additions and 2 deletions
|
@ -0,0 +1,129 @@
|
|||
Upstream: Yes
|
||||
Reason_ Work with pipewire 0.2
|
||||
From 0407a8b33d8c3503fba63ad260984bb08bd6e0dc Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Mon, 9 Jul 2018 17:27:47 +0200
|
||||
Subject: [PATCH] screen-cast-src: Port to pipewire master
|
||||
|
||||
The PipeWire master branch saw some backports from the work branch,
|
||||
including API changes making the 0.1 series more aligned with future
|
||||
plans. Make mutter use the new API. This is needed to avoid dead locks
|
||||
that existed in the older version.
|
||||
---
|
||||
src/backends/meta-screen-cast-stream-src.c | 46 +++++++++++-----------
|
||||
1 file changed, 23 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c
|
||||
index 337755002..8cd8911ae 100644
|
||||
--- a/src/backends/meta-screen-cast-stream-src.c
|
||||
+++ b/src/backends/meta-screen-cast-stream-src.c
|
||||
@@ -132,8 +132,8 @@ meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src)
|
||||
{
|
||||
MetaScreenCastStreamSrcPrivate *priv =
|
||||
meta_screen_cast_stream_src_get_instance_private (src);
|
||||
- uint32_t buffer_id;
|
||||
- struct spa_buffer *buffer;
|
||||
+ struct pw_buffer *buffer;
|
||||
+ struct spa_buffer *spa_buffer;
|
||||
uint8_t *map = NULL;
|
||||
uint8_t *data;
|
||||
uint64_t now_us;
|
||||
@@ -148,22 +148,24 @@ meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src)
|
||||
if (!priv->pipewire_stream)
|
||||
return;
|
||||
|
||||
- buffer_id = pw_stream_get_empty_buffer (priv->pipewire_stream);
|
||||
- if (buffer_id == SPA_ID_INVALID)
|
||||
- return;
|
||||
-
|
||||
- buffer = pw_stream_peek_buffer (priv->pipewire_stream, buffer_id);
|
||||
+ buffer = pw_stream_dequeue_buffer (priv->pipewire_stream);
|
||||
if (!buffer)
|
||||
{
|
||||
- g_warning ("Failed to peek at PipeWire buffer");
|
||||
+ g_warning ("Failed to dequeue at PipeWire buffer");
|
||||
return;
|
||||
}
|
||||
|
||||
- if (buffer->datas[0].type == priv->pipewire_type->data.MemFd)
|
||||
+ spa_buffer = buffer->buffer;
|
||||
+
|
||||
+ if (spa_buffer->datas[0].data)
|
||||
+ {
|
||||
+ data = spa_buffer->datas[0].data;
|
||||
+ }
|
||||
+ else if (spa_buffer->datas[0].type == priv->pipewire_type->data.MemFd)
|
||||
{
|
||||
- map = mmap (NULL, buffer->datas[0].maxsize + buffer->datas[0].mapoffset,
|
||||
+ map = mmap (NULL, spa_buffer->datas[0].maxsize + spa_buffer->datas[0].mapoffset,
|
||||
PROT_READ | PROT_WRITE, MAP_SHARED,
|
||||
- buffer->datas[0].fd, 0);
|
||||
+ spa_buffer->datas[0].fd, 0);
|
||||
if (map == MAP_FAILED)
|
||||
{
|
||||
g_warning ("Failed to mmap pipewire stream buffer: %s\n",
|
||||
@@ -171,14 +173,11 @@ meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src)
|
||||
return;
|
||||
}
|
||||
|
||||
- data = SPA_MEMBER (map, buffer->datas[0].mapoffset, uint8_t);
|
||||
- }
|
||||
- else if (buffer->datas[0].type == priv->pipewire_type->data.MemPtr)
|
||||
- {
|
||||
- data = buffer->datas[0].data;
|
||||
+ data = SPA_MEMBER (map, spa_buffer->datas[0].mapoffset, uint8_t);
|
||||
}
|
||||
else
|
||||
{
|
||||
+ g_warning ("Unhandled spa buffer type: %d", spa_buffer->datas[0].type);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -186,11 +185,11 @@ meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src)
|
||||
priv->last_frame_timestamp_us = now_us;
|
||||
|
||||
if (map)
|
||||
- munmap (map, buffer->datas[0].maxsize + buffer->datas[0].mapoffset);
|
||||
+ munmap (map, spa_buffer->datas[0].maxsize + spa_buffer->datas[0].mapoffset);
|
||||
|
||||
- buffer->datas[0].chunk->size = buffer->datas[0].maxsize;
|
||||
+ spa_buffer->datas[0].chunk->size = spa_buffer->datas[0].maxsize;
|
||||
|
||||
- pw_stream_send_buffer (priv->pipewire_stream, buffer_id);
|
||||
+ pw_stream_queue_buffer (priv->pipewire_stream, buffer);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -266,8 +265,8 @@ on_stream_state_changed (void *data,
|
||||
}
|
||||
|
||||
static void
|
||||
-on_stream_format_changed (void *data,
|
||||
- struct spa_pod *format)
|
||||
+on_stream_format_changed (void *data,
|
||||
+ const struct spa_pod *format)
|
||||
{
|
||||
MetaScreenCastStreamSrc *src = data;
|
||||
MetaScreenCastStreamSrcPrivate *priv =
|
||||
@@ -276,7 +275,7 @@ on_stream_format_changed (void *data,
|
||||
uint8_t params_buffer[1024];
|
||||
int32_t width, height, stride, size;
|
||||
struct spa_pod_builder pod_builder;
|
||||
- struct spa_pod *params[1];
|
||||
+ const struct spa_pod *params[1];
|
||||
const int bpp = 4;
|
||||
|
||||
if (!format)
|
||||
@@ -372,7 +371,8 @@ create_pipewire_stream (MetaScreenCastStreamSrc *src,
|
||||
result = pw_stream_connect (pipewire_stream,
|
||||
PW_DIRECTION_OUTPUT,
|
||||
NULL,
|
||||
- PW_STREAM_FLAG_NONE,
|
||||
+ (PW_STREAM_FLAG_DRIVER |
|
||||
+ PW_STREAM_FLAG_MAP_BUFFERS),
|
||||
params, G_N_ELEMENTS (params));
|
||||
if (result != 0)
|
||||
{
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
Upstream: Yes, rebased for 3.28.3 here
|
||||
From c216397974a7d75a3fdb374becbc40a23ec878bf Mon Sep 17 00:00:00 2001
|
||||
From: Jan Grulich <jgrulich@redhat.com>
|
||||
Date: Mon, 6 Aug 2018 10:05:36 +0200
|
||||
Subject: [PATCH] Update libpipewire requirements
|
||||
|
||||
PipeWire 0.2.2+ now provides libpipewire-0.2 and not libpipewire-0.1 anymore
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e795159..9adb14b 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -245,7 +245,7 @@ AC_ARG_ENABLE(remote-desktop,
|
||||
enable_remote_desktop=no
|
||||
)
|
||||
AS_IF([test "$enable_remote_desktop" = "yes"], [
|
||||
- MUTTER_PC_MODULES="$MUTTER_PC_MODULES libpipewire-0.1 >= 0.1.8"
|
||||
+ MUTTER_PC_MODULES="$MUTTER_PC_MODULES libpipewire-0.2 >= 0.2.2"
|
||||
AC_DEFINE([HAVE_REMOTE_DESKTOP],[1], [Defined if screen cast and remote desktop support is enabled])
|
||||
])
|
||||
AM_CONDITIONAL([HAVE_REMOTE_DESKTOP],[test "$enable_remote_desktop" = "yes"])
|
94
packages/gnome-desktop/mutter/mutter-3.28.3-r1.exheres-0
Normal file
94
packages/gnome-desktop/mutter/mutter-3.28.3-r1.exheres-0
Normal file
|
@ -0,0 +1,94 @@
|
|||
# Copyright 2009 Saleem Abdulrasool <compnerd@compnerd.org>
|
||||
# Copyright 2011 Brett Witherspoon <spoonb@exherbo.org>
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require gnome.org [ suffix=tar.xz ] gsettings autotools [ supported_autoconf=[ 2.5 ] supported_automake=[ 1.16 ] ]
|
||||
|
||||
|
||||
SUMMARY="Clutter and metacity based compositing window manager"
|
||||
|
||||
LICENCES="GPL-2"
|
||||
SLOT="0"
|
||||
PLATFORMS="~amd64 ~x86"
|
||||
MYOPTIONS="gobject-introspection
|
||||
remote-desktop [[ description = [ Support remote desktop and screen casting ] ]]
|
||||
sound [[ description = [ Enable the use of libcanberra for event sounds ] ]]
|
||||
wacom [[ description = [ Use libwacom for tablet identification ] ]]
|
||||
( linguas: am ar as ast az be be@latin bg bn bn_IN br bs ca ca@valencia cs cy da de dz el en_CA
|
||||
en_GB eo es et eu fa fi fr fur ga gl gu ha he hi hr hu hy id ig is it ja ka kk kn ko ku
|
||||
la lt lv mai mg mk ml mn mr ms nb nds ne nl nn oc or pa pl pt pt_BR ro ru rw si sk
|
||||
sl sq sr sr@latin sv ta te tg th tk tr ug uk vi wa xh yo zh_CN zh_HK zh_TW )
|
||||
( providers: elogind systemd ) [[
|
||||
*description = [ Session tracking provider ]
|
||||
number-selected = at-most-one
|
||||
]]
|
||||
"
|
||||
|
||||
BUGS_TO="spoonb@exherbo.org"
|
||||
|
||||
DEPENDENCIES="
|
||||
build:
|
||||
sys-devel/gettext[>=0.19.6]
|
||||
sys-libs/wayland-protocols[>=1.12]
|
||||
virtual/pkg-config[>=0.21]
|
||||
build+run:
|
||||
core/json-glib
|
||||
dev-libs/glib:2[>=2.53.2]
|
||||
gnome-desktop/gnome-desktop:3.0
|
||||
gnome-desktop/gsettings-desktop-schemas[>=3.21.4][gobject-introspection?]
|
||||
gnome-desktop/libgudev[>=232]
|
||||
gnome-desktop/zenity
|
||||
sys-apps/upower[>=0.99.0]
|
||||
sys-libs/libinput[>=1.4]
|
||||
sys-libs/wayland[>=1.13.0]
|
||||
x11-apps/xkeyboard-config
|
||||
x11-dri/mesa[>=10.3]
|
||||
x11-dri/libdrm[>=2.4.83]
|
||||
x11-libs/cairo[>=1.10.0]
|
||||
x11-libs/gtk+:3[>=3.19.8][gobject-introspection?][wayland]
|
||||
x11-libs/pango[>=1.2.0]
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcomposite[>=0.2]
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXi[>=1.6.99.1]
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXrandr[>=1.5.0]
|
||||
x11-libs/libXrender
|
||||
x11-libs/libxcb
|
||||
x11-libs/libxkbcommon[X][>=0.4.3]
|
||||
x11-libs/libxkbfile
|
||||
x11-libs/startup-notification[>=0.7]
|
||||
gobject-introspection? ( gnome-desktop/gobject-introspection:1[>=0.9.5] )
|
||||
providers:elogind? ( sys-auth/elogind )
|
||||
providers:systemd? ( sys-apps/systemd )
|
||||
remote-desktop? ( media/pipewire[>=0.2.2] )
|
||||
sound? ( media-libs/libcanberra[providers:gtk3][>=0.26] )
|
||||
wacom? ( x11-libs/libwacom[>=0.19] )
|
||||
run:
|
||||
x11-server/xorg-server[xwayland]
|
||||
recommendation:
|
||||
gnome-desktop/gnome-themes-standard [[
|
||||
description = [ Provides default GNOME 3 theme (Adwaita) ]
|
||||
]]
|
||||
"
|
||||
|
||||
# Bundled clutter fails its tests
|
||||
RESTRICT="test"
|
||||
|
||||
DEFAULT_SRC_PREPARE_PATCHES=(
|
||||
"${FILES}"/c216397974a7d75a3fdb374becbc40a23ec878bf.patch
|
||||
"${FILES}"/0407a8b33d8c3503fba63ad260984bb08bd6e0dc.patch
|
||||
)
|
||||
DEFAULT_SRC_CONFIGURE_PARAMS=( '--enable-sm' '--enable-startup-notification' '--disable-debug'
|
||||
'--enable-native-backend' '--enable-wayland' '--enable-gudev'
|
||||
'--enable-egl-device' '--disable-scrollkeeper' '--disable-static'
|
||||
# need to reduce default compiler warnings due to deprecation errors
|
||||
'--enable-compile-warnings=maximum' )
|
||||
DEFAULT_SRC_CONFIGURE_OPTION_ENABLES=( 'gobject-introspection introspection' 'remote-desktop' 'wacom libwacom' )
|
||||
DEFAULT_SRC_CONFIGURE_OPTION_WITHS=( 'sound libcanberra' )
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue