summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Bryskin2022-09-19 15:50:46 +0300
committerNikolay Bryskin2022-09-19 15:50:46 +0300
commit32b4cc33722e28a35d95ab5344a4f9a27855b0d7 (patch)
treea7ea5d6b475b3042e77edcce19dd750a75af8289
downloadaur-32b4cc33722e28a35d95ab5344a4f9a27855b0d7.tar.gz
Initial commit
-rw-r--r--.SRCINFO78
-rw-r--r--PKGBUILD77
-rw-r--r--screencast-vaapi.patch23
3 files changed, 178 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..215a570d81ca
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,78 @@
+pkgbase = gnome-shell-screencast-vaapi
+ pkgdesc = Next generation desktop shell (screencast records with VAAPI)
+ pkgver = 42.4+r1+gec04b253a
+ pkgrel = 1
+ epoch = 1
+ url = https://wiki.gnome.org/Projects/GnomeShell
+ arch = x86_64
+ groups = gnome
+ license = GPL
+ checkdepends = xorg-server-xvfb
+ makedepends = gtk-doc
+ makedepends = gnome-control-center
+ makedepends = evolution-data-server
+ makedepends = gobject-introspection
+ makedepends = git
+ makedepends = meson
+ makedepends = sassc
+ makedepends = asciidoc
+ makedepends = bash-completion
+ depends = accountsservice
+ depends = gcr
+ depends = gjs
+ depends = gnome-bluetooth-3.0
+ depends = upower
+ depends = gnome-session
+ depends = gtk4
+ depends = gnome-settings-daemon
+ depends = gsettings-desktop-schemas
+ depends = libcanberra-pulse
+ depends = libgdm
+ depends = libsecret
+ depends = mutter
+ depends = libnma
+ depends = unzip
+ depends = libibus
+ depends = gnome-autoar
+ depends = gnome-disk-utility
+ depends = libsoup3
+ depends = libgweather-4
+ depends = gst-plugins-base-libs
+ optdepends = gnome-control-center: System settings
+ optdepends = evolution-data-server: Evolution calendar integration
+ optdepends = gst-plugins-good: Screen recording
+ optdepends = gst-plugin-pipewire: Screen recording
+ provides = gnome-shell
+ conflicts = gnome-shell
+ conflicts = gnome-shell-debug
+ options = debug
+ source = git+https://gitlab.gnome.org/GNOME/gnome-shell.git#commit=ca0a1c02152a95c3c0acb39d1f328d786d0d8c87
+ source = git+https://gitlab.gnome.org/GNOME/libgnome-volume-control.git
+ source = screencast-vaapi.patch
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = d57693c0f180405d280e17dafe447924e59e19c21cdae001b6c455af4be969f7
+
+pkgname = gnome-shell-screencast-vaapi
+ depends = accountsservice
+ depends = gcr
+ depends = gjs
+ depends = gnome-bluetooth-3.0
+ depends = upower
+ depends = gnome-session
+ depends = gtk4
+ depends = gnome-settings-daemon
+ depends = gsettings-desktop-schemas
+ depends = libcanberra-pulse
+ depends = libgdm
+ depends = libsecret
+ depends = mutter
+ depends = libnma
+ depends = unzip
+ depends = libibus
+ depends = gnome-autoar
+ depends = gnome-disk-utility
+ depends = libsoup3
+ depends = libgweather-4
+ depends = gst-plugins-base-libs
+ depends = libmutter-10.so
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..af82cb815c38
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,77 @@
+# Maintainer: Nikolay Bryskin <nbryskin@gmail.com>
+# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Flamelab <panosfilip@gmail.com
+
+pkgname=gnome-shell-screencast-vaapi
+pkgver=42.4+r1+gec04b253a
+pkgrel=1
+epoch=1
+pkgdesc="Next generation desktop shell (screencast records with VAAPI)"
+url="https://wiki.gnome.org/Projects/GnomeShell"
+arch=(x86_64)
+license=(GPL)
+depends=(accountsservice gcr gjs gnome-bluetooth-3.0 upower gnome-session gtk4
+ gnome-settings-daemon gsettings-desktop-schemas libcanberra-pulse
+ libgdm libsecret mutter libnma unzip libibus gnome-autoar
+ gnome-disk-utility libsoup3 libgweather-4 gst-plugins-base-libs)
+makedepends=(gtk-doc gnome-control-center evolution-data-server
+ gobject-introspection git meson sassc asciidoc bash-completion)
+checkdepends=(xorg-server-xvfb)
+optdepends=('gnome-control-center: System settings'
+ 'evolution-data-server: Evolution calendar integration'
+ 'gst-plugins-good: Screen recording'
+ 'gst-plugin-pipewire: Screen recording')
+conflicts=(gnome-shell gnome-shell-debug)
+provides=(gnome-shell)
+groups=(gnome)
+options=(debug)
+_commit=ca0a1c02152a95c3c0acb39d1f328d786d0d8c87 # tags/42.4^0
+source=("git+https://gitlab.gnome.org/GNOME/gnome-shell.git#commit=$_commit"
+ "git+https://gitlab.gnome.org/GNOME/libgnome-volume-control.git"
+ screencast-vaapi.patch)
+sha256sums=('SKIP'
+ 'SKIP'
+ 'd57693c0f180405d280e17dafe447924e59e19c21cdae001b6c455af4be969f7')
+
+pkgver() {
+ cd gnome-shell
+ git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
+}
+
+prepare() {
+ cd gnome-shell
+
+ git cherry-pick d32c03488fcf6cdb0ca2e99b0ed6ade078460deb # https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5585
+ patch -p1 < ../../screencast-vaapi.patch
+ git submodule init
+ git submodule set-url subprojects/gvc "$srcdir/libgnome-volume-control"
+ git submodule update
+}
+
+build() {
+ CFLAGS="${CFLAGS/-O2/-O3} -fno-semantic-interposition"
+ LDFLAGS+=" -Wl,-Bsymbolic-functions"
+
+ arch-meson gnome-shell build -D gtk_doc=true
+ meson compile -C build
+}
+
+_check() (
+ mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
+ export XDG_RUNTIME_DIR
+
+ meson test -C build --print-errorlogs
+)
+
+check() {
+ dbus-run-session xvfb-run -s '-nolisten local +iglx -noreset' \
+ bash -c "$(declare -f _check); _check"
+}
+
+package() {
+ depends+=(libmutter-10.so)
+ meson install -C build --destdir "$pkgdir"
+}
+
+# vim:set sw=2 et:
diff --git a/screencast-vaapi.patch b/screencast-vaapi.patch
new file mode 100644
index 000000000000..da8710e4bf5c
--- /dev/null
+++ b/screencast-vaapi.patch
@@ -0,0 +1,23 @@
+diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
+index 4bce178ef..a2ae1a864 100644
+--- a/js/ui/screenshot.js
++++ b/js/ui/screenshot.js
+@@ -1839,11 +1839,15 @@ var ScreenshotUI = GObject.registerClass({
+ _('Screencasts'),
+ /* Translators: this is a filename used for screencast
+ * recording, where "%d" and "%t" date and time, e.g.
+- * "Screencast from 07-17-2013 10:00:46 PM.webm" */
++ * "Screencast from 07-17-2013 10:00:46 PM.mkv" */
+ /* xgettext:no-c-format */
+- _('Screencast from %d %t.webm'),
++ _('Screencast from %d %t.mkv'),
+ ]),
+- { 'draw-cursor': new GLib.Variant('b', drawCursor) },
++ {
++ 'draw-cursor': new GLib.Variant('b', drawCursor),
++ 'pipeline': new GLib.Variant('s', 'vaapipostproc ! video/x-raw,format=NV12,max-framerate=60/1 ! queue ! vaapih264enc ! video/x-h264,profile=main ! queue ! h264parse ! matroskamux'),
++ 'framerate': new GLib.Variant('u', 60),
++ },
+ ([success, path], error) => {
+ if (error !== null) {
+ this._setScreencastInProgress(false);