mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-02 15:37:49 +00:00
Merge pull request #6128 from SupervisedThinking/up_wayland
[le11] Wayland improvements - Sway & Nvidia
This commit is contained in:
commit
f4fab12465
@ -34,7 +34,7 @@ get_graphicdrivers() {
|
||||
V4L2_SUPPORT="no"
|
||||
|
||||
if [ "${GRAPHIC_DRIVERS}" = "all" ]; then
|
||||
GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi nvidia nvidia-legacy vmware virtio vc4"
|
||||
GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi nvidia nvidia-legacy nvidia-ng vmware virtio vc4"
|
||||
fi
|
||||
|
||||
if listcontains "${GRAPHIC_DRIVERS}" "crocus"; then
|
||||
@ -93,6 +93,11 @@ get_graphicdrivers() {
|
||||
VDPAU_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if listcontains "${GRAPHIC_DRIVERS}" "nvidia-ng"; then
|
||||
VULKAN_DRIVERS_CONFIG+=" nvidia-ng"
|
||||
VAAPI_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if listcontains "${GRAPHIC_DRIVERS}" "panfrost"; then
|
||||
GALLIUM_DRIVERS+=" kmsro panfrost"
|
||||
VULKAN_DRIVERS_MESA+=" panfrost"
|
||||
|
@ -8,11 +8,14 @@ PKG_SHA256="c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.gtk.org/"
|
||||
PKG_URL="https://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/${PKG_VERSION:0:4}/gdk-pixbuf-${PKG_VERSION}.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain glib libjpeg-turbo libpng jasper shared-mime-info tiff libX11"
|
||||
PKG_DEPENDS_TARGET="toolchain glib libjpeg-turbo libpng jasper shared-mime-info tiff"
|
||||
PKG_DEPENDS_CONFIG="shared-mime-info"
|
||||
PKG_LONGDESC="GdkPixbuf is a a GNOME library for image loading and manipulation."
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Ddocs=false \
|
||||
PKG_MESON_OPTS_TARGET="-Dbuiltin_loaders=all \
|
||||
-Dgtk_doc=false \
|
||||
-Ddocs=false \
|
||||
-Dintrospection=disabled \
|
||||
-Dman=false \
|
||||
-Drelocatable=false"
|
||||
-Drelocatable=false \
|
||||
-Dinstalled_tests=false"
|
||||
|
@ -0,0 +1,16 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="json-glib"
|
||||
PKG_VERSION="1.6.6"
|
||||
PKG_SHA256="bf4d1cd6c343ce13b9258e6703a0411a3b659887b65877e85a2aa488ae18b865"
|
||||
PKG_LICENSE="LGPL-2.1"
|
||||
PKG_SITE="https://github.com/GNOME/json-glib"
|
||||
PKG_URL="https://github.com/GNOME/json-glib/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain glib"
|
||||
PKG_LONGDESC="JSON-GLib implements a full suite of JSON-related tools using GLib and GObject."
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Dintrospection=disabled \
|
||||
-Dgtk_doc=disabled \
|
||||
-Dman=false \
|
||||
-Dtests=false"
|
@ -8,11 +8,20 @@ PKG_SHA256="4add05edf51c1fb375a1ccde7498914120e23cb280dd7395b1aeb441f1838a4c"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.pango.org/"
|
||||
PKG_URL="https://download.gnome.org/sources/pango/${PKG_VERSION:0:4}/pango-${PKG_VERSION}.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain cairo freetype fontconfig fribidi glib harfbuzz libX11 libXft"
|
||||
PKG_DEPENDS_CONFIG="libXft cairo"
|
||||
PKG_DEPENDS_TARGET="toolchain cairo freetype fontconfig fribidi glib json-glib harfbuzz"
|
||||
PKG_DEPENDS_CONFIG="cairo"
|
||||
PKG_LONGDESC="The Pango library for layout and rendering of internationalized text."
|
||||
PKG_TOOLCHAIN="meson"
|
||||
PKG_BUILD_FLAGS="-sysroot"
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Dgtk_doc=false \
|
||||
-Dintrospection=disabled"
|
||||
configure_package() {
|
||||
# Build with X11 support
|
||||
if [ ${DISPLAYSERVER} = "x11" ]; then
|
||||
PKG_DEPENDS_TARGET+=" libX11 libXft"
|
||||
PKG_DEPENDS_CONFIG+=" libXft"
|
||||
PKG_BUILD_FLAGS="-sysroot"
|
||||
fi
|
||||
}
|
||||
|
||||
pre_configure_target() {
|
||||
PKG_MESON_OPTS_TARGET="-Dgtk_doc=false \
|
||||
-Dintrospection=disabled"
|
||||
}
|
||||
|
@ -7,8 +7,24 @@ PKG_SHA256="37df6475da31a8b5fc63a54ba0770a3eefa0a708b778cb6366dccee96393cb60"
|
||||
PKG_LICENSE="GPL2"
|
||||
PKG_SITE="https://freedesktop.org/wiki/Software/shared-mime-info/"
|
||||
PKG_URL="https://gitlab.freedesktop.org/xdg/${PKG_NAME}/-/archive/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain glib libxml2 gettext itstool:host"
|
||||
PKG_DEPENDS_HOST="toolchain:host glib:host libxml2:host gettext:host itstool:host"
|
||||
PKG_DEPENDS_TARGET="toolchain glib libxml2 gettext shared-mime-info:host"
|
||||
PKG_LONGDESC="The shared-mime-info package contains the core database of common types."
|
||||
PKG_BUILD_FLAGS="-parallel -sysroot"
|
||||
PKG_BUILD_FLAGS="-parallel"
|
||||
|
||||
configure_package() {
|
||||
# Sway Support
|
||||
if [ ! "${WINDOWMANAGER}" = "sway" ]; then
|
||||
PKG_BUILD_FLAGS+=" -sysroot"
|
||||
fi
|
||||
}
|
||||
|
||||
PKG_MESON_OPTS_HOST="-Dupdate-mimedb=false"
|
||||
PKG_MESON_OPTS_TARGET="-Dupdate-mimedb=false"
|
||||
|
||||
post_makeinstall_target() {
|
||||
# Create /usr/share/mime/mime.cache
|
||||
if [ "${WINDOWMANAGER}" = "sway" ]; then
|
||||
${TOOLCHAIN}/bin/update-mime-database ${INSTALL}/usr/share/mime
|
||||
fi
|
||||
}
|
||||
|
@ -1,37 +0,0 @@
|
||||
diff -Nur shared-mime-info-2.1.orig/data/meson.build shared-mime-info-2.1/data/meson.build
|
||||
--- shared-mime-info-2.1.orig/data/meson.build 2021-01-01 06:12:16.000000000 +1100
|
||||
+++ shared-mime-info-2.1/data/meson.build 2021-01-14 00:25:58.299790452 +1100
|
||||
@@ -1,6 +1,4 @@
|
||||
|
||||
-install_man('update-mime-database.1')
|
||||
-
|
||||
freedesktop_org_xml = i18n.merge_file(
|
||||
input: 'freedesktop.org.xml.in',
|
||||
output: 'freedesktop.org.xml',
|
||||
@@ -15,15 +13,3 @@
|
||||
[ 'its/shared-mime-info.loc', 'its/shared-mime-info.its', ],
|
||||
install_dir : get_option('datadir') / 'gettext/its'
|
||||
)
|
||||
-
|
||||
-custom_target('shared-mime-info-spec-html',
|
||||
- input : 'shared-mime-info-spec.xml',
|
||||
- output: 'shared-mime-info-spec-html',
|
||||
- command: [
|
||||
- xmlto,
|
||||
- '-o', '@OUTPUT@',
|
||||
- 'html-nochunks',
|
||||
- '@INPUT@',
|
||||
- ],
|
||||
- build_by_default: true,
|
||||
-)
|
||||
diff -Nur shared-mime-info-2.1.orig/meson.build shared-mime-info-2.1/meson.build
|
||||
--- shared-mime-info-2.1.orig/meson.build 2021-01-01 06:12:16.000000000 +1100
|
||||
+++ shared-mime-info-2.1/meson.build 2021-01-14 00:24:18.552142696 +1100
|
||||
@@ -22,7 +22,6 @@
|
||||
|
||||
itstool = find_program('itstool')
|
||||
xmllint = find_program('xmllint')
|
||||
-xmlto = find_program('xmlto')
|
||||
|
||||
###############################################################################
|
||||
# Find xdgmime
|
@ -0,0 +1,58 @@
|
||||
From baeb49e36bc162bcbd243e733d2a9f1eb9abfefb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta@iki.fi>
|
||||
Date: Sun, 24 Jan 2021 11:45:52 +0200
|
||||
Subject: [PATCH] meson: make xmlto optional, build spec only if found
|
||||
|
||||
Refs https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/150
|
||||
---
|
||||
data/meson.build | 22 ++++++++++++----------
|
||||
meson.build | 2 +-
|
||||
2 files changed, 13 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/data/meson.build b/data/meson.build
|
||||
index 263567d..24361c9 100644
|
||||
--- a/data/meson.build
|
||||
+++ b/data/meson.build
|
||||
@@ -22,14 +22,16 @@ install_data(
|
||||
install_dir : get_option('datadir') / 'gettext/its'
|
||||
)
|
||||
|
||||
-custom_target('shared-mime-info-spec-html',
|
||||
- input : 'shared-mime-info-spec.xml',
|
||||
- output: 'shared-mime-info-spec-html',
|
||||
- command: [
|
||||
- xmlto,
|
||||
- '-o', '@OUTPUT@',
|
||||
- 'html-nochunks',
|
||||
- '@INPUT@',
|
||||
- ],
|
||||
- build_by_default: true,
|
||||
+if xmlto.found()
|
||||
+ custom_target('shared-mime-info-spec-html',
|
||||
+ input : 'shared-mime-info-spec.xml',
|
||||
+ output: 'shared-mime-info-spec-html',
|
||||
+ command: [
|
||||
+ xmlto,
|
||||
+ '-o', '@OUTPUT@',
|
||||
+ 'html-nochunks',
|
||||
+ '@INPUT@',
|
||||
+ ],
|
||||
+ build_by_default: true,
|
||||
)
|
||||
+endif
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 9a28573..0d08c8a 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -22,7 +22,7 @@ config.set_quoted('VERSION', meson.project_version())
|
||||
|
||||
itstool = find_program('itstool')
|
||||
xmllint = find_program('xmllint')
|
||||
-xmlto = find_program('xmlto')
|
||||
+xmlto = find_program('xmlto', required: false)
|
||||
|
||||
###############################################################################
|
||||
# Find xdgmime
|
||||
--
|
||||
GitLab
|
||||
|
@ -4,17 +4,29 @@
|
||||
PKG_NAME="glmark2"
|
||||
PKG_VERSION="2021.12"
|
||||
PKG_SHA256="9f111284b2ef1d3fce91928e249e6ca00796a036831b063a549a0f3b03557a95"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_LICENSE="GPL-3.0-or-later"
|
||||
PKG_SITE="https://github.com/glmark2/glmark2"
|
||||
PKG_URL="https://github.com/glmark2/glmark2/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_DEPENDS_TARGET="toolchain libjpeg-turbo libpng"
|
||||
PKG_LONGDESC="glmark2 is an OpenGL 2.0 and ES 2.0 benchmark"
|
||||
|
||||
if [ "${OPENGLES_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
|
||||
PKG_MESON_OPTS_TARGET="-Dflavors=drm-glesv2"
|
||||
elif [ "${OPENGL_SUPPORT}" = "yes" ]; then
|
||||
if [ "${OPENGL_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${OPENGL}"
|
||||
PKG_MESON_OPTS_TARGET="-Dflavors=drm-gl"
|
||||
elif [ "${OPENGLES_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
|
||||
fi
|
||||
|
||||
case ${DISPLAYSERVER} in
|
||||
wl)
|
||||
PKG_DEPENDS_TARGET+=" wayland wayland-protocols"
|
||||
PKG_MESON_OPTS_TARGET="-Dflavors=wayland-glesv2"
|
||||
;;
|
||||
x11)
|
||||
PKG_DEPENDS_TARGET+=" libX11"
|
||||
PKG_MESON_OPTS_TARGET="-Dflavors=x11-gl"
|
||||
;;
|
||||
*)
|
||||
PKG_DEPENDS_TARGET+=" systemd libdrm"
|
||||
PKG_MESON_OPTS_TARGET="-Dflavors=drm-glesv2"
|
||||
;;
|
||||
esac
|
||||
|
@ -2,18 +2,27 @@
|
||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="libglvnd"
|
||||
PKG_VERSION="1.3.4"
|
||||
PKG_SHA256="8f4218d7cdaf89d5b7eced818e810ccbc76f4bb9cba36d66eddac5a7ca892bab"
|
||||
PKG_VERSION="1.4.0"
|
||||
PKG_SHA256="1eb5c2be8d213ad5d31cfb4efbb331d42f3d9f5617c885ce7e89f572ec2bb4b8"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/NVIDIA/libglvnd"
|
||||
PKG_URL="https://github.com/NVIDIA/libglvnd/archive/v${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain libX11 libXext xorgproto"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors."
|
||||
|
||||
if [ "${OPENGLES_SUPPORT}" = "no" ]; then
|
||||
PKG_MESON_OPTS_TARGET="-Dgles1=false \
|
||||
-Dgles2=false"
|
||||
fi
|
||||
configure_package() {
|
||||
if [ "${DISPLAYSERVER}" = "x11" ]; then
|
||||
PKG_DEPENDS_TARGET+=" libX11 libXext xorgproto"
|
||||
fi
|
||||
}
|
||||
|
||||
pre_configure_target(){
|
||||
PKG_MESON_OPTS_TARGET="-Dgles1=false"
|
||||
|
||||
if [ "${OPENGLES_SUPPORT}" = "no" ]; then
|
||||
PKG_MESON_OPTS_TARGET+=" -Dgles2=false"
|
||||
fi
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
if [ "${DISPLAYSERVER}" = "x11" ]; then
|
||||
|
@ -38,8 +38,8 @@ if [ "${DISPLAYSERVER}" = "x11" ]; then
|
||||
export X11_INCLUDES=
|
||||
PKG_MESON_OPTS_TARGET+=" -Dplatforms=x11 -Ddri3=enabled -Dglx=dri -Dglvnd=true"
|
||||
elif [ "${DISPLAYSERVER}" = "wl" ]; then
|
||||
PKG_DEPENDS_TARGET+=" wayland wayland-protocols"
|
||||
PKG_MESON_OPTS_TARGET+=" -Dplatforms=wayland -Ddri3=disabled -Dglx=disabled -Dglvnd=false"
|
||||
PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd"
|
||||
PKG_MESON_OPTS_TARGET+=" -Dplatforms=wayland -Ddri3=disabled -Dglx=disabled -Dglvnd=true"
|
||||
else
|
||||
PKG_MESON_OPTS_TARGET+=" -Dplatforms="" -Ddri3=disabled -Dglx=disabled -Dglvnd=false"
|
||||
fi
|
||||
|
@ -0,0 +1 @@
|
||||
options nvidia-drm modeset=1
|
129
packages/graphics/nvidia/package.mk
Normal file
129
packages/graphics/nvidia/package.mk
Normal file
@ -0,0 +1,129 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="nvidia"
|
||||
PKG_VERSION="510.47.03"
|
||||
PKG_SHA256="694cda690ecffde7e9987f1fc0985d796a624185a2f5bda0a7e804ca791bf227"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="https://www.nvidia.com/en-us/drivers/unix/"
|
||||
PKG_URL="http://us.download.nvidia.com/XFree86/Linux-x86_64/${PKG_VERSION}/NVIDIA-Linux-x86_64-${PKG_VERSION}-no-compat32.run"
|
||||
PKG_DEPENDS_TARGET="toolchain util-macros libglvnd"
|
||||
PKG_LONGDESC="The GBM/Wayland graphic driver for NVIDIA GPUs supporting the GeForce 700 Series & above."
|
||||
PKG_TOOLCHAIN="manual"
|
||||
|
||||
PKG_IS_KERNEL_PKG="yes"
|
||||
|
||||
if [ "${VULKAN_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${VULKAN} vulkan-tools"
|
||||
fi
|
||||
|
||||
unpack() {
|
||||
[ -d ${PKG_BUILD} ] && rm -rf ${PKG_BUILD}
|
||||
|
||||
sh ${SOURCES}/${PKG_NAME}/${PKG_SOURCE_NAME} --extract-only --target ${PKG_BUILD}
|
||||
}
|
||||
|
||||
make_target() {
|
||||
unset LDFLAGS
|
||||
|
||||
cd kernel
|
||||
make module CC=${CC} LD=${LD} SYSSRC=$(kernel_path) SYSOUT=$(kernel_path)
|
||||
${STRIP} --strip-debug nvidia.ko
|
||||
cd ..
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
# Linux kernel modules
|
||||
mkdir -p ${INSTALL}/$(get_full_module_dir)/nvidia
|
||||
cp -P kernel/nvidia.ko ${INSTALL}/$(get_full_module_dir)/nvidia
|
||||
cp -P kernel/nvidia-drm.ko ${INSTALL}/$(get_full_module_dir)/nvidia
|
||||
cp -P kernel/nvidia-uvm.ko ${INSTALL}/$(get_full_module_dir)/nvidia
|
||||
cp -P kernel/nvidia-modeset.ko ${INSTALL}/$(get_full_module_dir)/nvidia
|
||||
|
||||
# GBM
|
||||
mkdir -p ${INSTALL}/usr/lib/gbm
|
||||
cp -p libnvidia-allocator.so.${PKG_VERSION} ${INSTALL}/usr/lib
|
||||
ln -sf libnvidia-allocator.so.${PKG_VERSION} ${INSTALL}/usr/lib/liballocator.so.0
|
||||
ln -sf ../libnvidia-allocator.so.${PKG_VERSION} ${INSTALL}/usr/lib/gbm/nvidia-drm_gbm.so
|
||||
|
||||
mkdir -p ${INSTALL}/usr/share/egl/egl_external_platform.d
|
||||
cp -p 15_nvidia_gbm.json ${INSTALL}/usr/share/egl/egl_external_platform.d
|
||||
cp -p libnvidia-egl-gbm.so.1.1.0 ${INSTALL}/usr/lib
|
||||
ln -sf libnvidia-egl-gbm.so.1.1.0 ${INSTALL}/usr/lib/libnvidia-egl-gbm.so.1
|
||||
ln -sf libnvidia-egl-gbm.so.1 ${INSTALL}/usr/lib/libnvidia-egl-gbm.so
|
||||
|
||||
# GLVND
|
||||
mkdir -p ${INSTALL}/usr/share/glvnd/egl_vendor.d
|
||||
cp -p 10_nvidia.json ${INSTALL}/usr/share/glvnd/egl_vendor.d
|
||||
|
||||
# Wayland
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -p libnvidia-egl-wayland.so.1.1.9 ${INSTALL}/usr/lib/
|
||||
ln -sf libnvidia-egl-wayland.so.1.1.9 ${INSTALL}/usr/lib/libnvidia-egl-wayland.so.1
|
||||
ln -sf libnvidia-egl-wayland.so.1 ${INSTALL}/usr/lib/libnvidia-egl-wayland.so
|
||||
|
||||
mkdir -p ${INSTALL}/usr/share/egl/egl_external_platform.d
|
||||
cp -p 10_nvidia_wayland.json ${INSTALL}/usr/share/egl/egl_external_platform.d
|
||||
|
||||
# OpenGL / EGL
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -p libEGL_nvidia.so.${PKG_VERSION} ${INSTALL}/usr/lib/
|
||||
ln -sf libEGL_nvidia.so.${PKG_VERSION} ${INSTALL}/usr/lib/libEGL_nvidia.so.0
|
||||
ln -sf libEGL_nvidia.so.0 ${INSTALL}/usr/lib/libEGL_nvidia.so
|
||||
|
||||
# OpenGL core
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -p libnvidia-eglcore.so.${PKG_VERSION} ${INSTALL}/usr/lib/
|
||||
ln -sf libnvidia-eglcore.so.${PKG_VERSION} ${INSTALL}/usr/lib/libnvidia-eglcore.so
|
||||
cp -p libnvidia-glsi.so.${PKG_VERSION} ${INSTALL}/usr/lib
|
||||
ln -sf libnvidia-glsi.so.${PKG_VERSION} ${INSTALL}/usr/lib/libnvidia-glsi.so
|
||||
|
||||
# OpenGL ES
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -p libGLESv2_nvidia.so.${PKG_VERSION} ${INSTALL}/usr/lib
|
||||
ln -sf libGLESv2_nvidia.so.${PKG_VERSION} ${INSTALL}/usr/lib/libGLESv2_nvidia.so.2
|
||||
ln -sf libGLESv2_nvidia.so.2 ${INSTALL}/usr/lib/libGLESv2_nvidia.so
|
||||
|
||||
# Vulkan
|
||||
if [ "${VULKAN_SUPPORT}" = "yes" ]; then
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -P libnvidia-glvkspirv.so.${PKG_VERSION} ${INSTALL}/usr/lib
|
||||
ln -sf libnvidia-glvkspirv.so.${PKG_VERSION} ${INSTALL}/usr/lib/libnvidia-glvkspirv.so
|
||||
|
||||
mkdir -p ${INSTALL}/usr/share/vulkan/implicit_layer.d
|
||||
cp -P nvidia_layers.json ${INSTALL}/usr/share/vulkan/implicit_layer.d
|
||||
mkdir -p ${INSTALL}/usr/share/vulkan/icd.d
|
||||
cp -P nvidia_icd.json ${INSTALL}/usr/share/vulkan/icd.d
|
||||
fi
|
||||
|
||||
# CUDA
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -p libcuda.so.${PKG_VERSION} ${INSTALL}/usr/lib
|
||||
ln -sf libcuda.so.${PKG_VERSION} ${INSTALL}/usr/lib/libcuda.so.1
|
||||
ln -sf libcuda.so.1 ${INSTALL}/usr/lib/libcuda.so
|
||||
|
||||
# NVDEC
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -p libnvcuvid.so.${PKG_VERSION} ${INSTALL}/usr/lib
|
||||
ln -sf libnvcuvid.so.${PKG_VERSION} ${INSTALL}/usr/lib/libnvcuvid.so.1
|
||||
ln -sf libnvcuvid.so.1 ${INSTALL}/usr/lib/libnvcuvid.so
|
||||
|
||||
# nvidia-tls
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -P libnvidia-tls.so.${PKG_VERSION} ${INSTALL}/usr/lib
|
||||
ln -sf libnvidia-tls.so.${PKG_VERSION} ${INSTALL}/usr/lib/libnvidia-tls.so
|
||||
|
||||
# NVML
|
||||
mkdir -p ${INSTALL}/usr/bin
|
||||
cp -P nvidia-smi ${INSTALL}/usr/bin
|
||||
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp -P libnvidia-ml.so.${PKG_VERSION} ${INSTALL}/usr/lib
|
||||
ln -sf libnvidia-ml.so.${PKG_VERSION} ${INSTALL}/usr/lib/libnvidia-ml.so.1
|
||||
ln -sf libnvidia-ml.so.1 ${INSTALL}/usr/lib/libnvidia-ml.so
|
||||
|
||||
# App profiles
|
||||
mkdir -p ${INSTALL}/usr/share/nvidia
|
||||
cp -P nvidia-application-profiles-${PKG_VERSION}-rc ${INSTALL}/usr/share/nvidia
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
From 81a2fb65100b88c31bb0168acc0c3b7bab09475a Mon Sep 17 00:00:00 2001
|
||||
From: Dominique Martinet <asmadeus@codewreck.org>
|
||||
Date: Sun, 5 Dec 2021 23:46:25 +0900
|
||||
Subject: [PATCH] windowing: base m_bFullScreenRoot setting on res info's
|
||||
bFullScreen
|
||||
|
||||
on wayland, the compositor can ignore fullscreen requests, so even if
|
||||
application's InitWindow created a window with res >= DESKTOP we have
|
||||
no guarantee that the actual window created is actually fullscreen.
|
||||
|
||||
CreateNewWindow will fill GetResolutionInfo(res) so we can check that
|
||||
for bFullScreen and use this information... in theory.
|
||||
|
||||
wayland was inconditionally setting it to the requested fullscreen
|
||||
state, so also make sure it's set based on the real state by keeping
|
||||
m_bFullScreen up to date and using that instead.
|
||||
|
||||
Fixes: #20629
|
||||
---
|
||||
xbmc/windowing/GraphicContext.cpp | 2 +-
|
||||
xbmc/windowing/wayland/WinSystemWayland.cpp | 5 +++--
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/windowing/GraphicContext.cpp b/xbmc/windowing/GraphicContext.cpp
|
||||
index 6a90ee28fc05c..83fedbabe1856 100644
|
||||
--- a/xbmc/windowing/GraphicContext.cpp
|
||||
+++ b/xbmc/windowing/GraphicContext.cpp
|
||||
@@ -409,7 +409,7 @@ void CGraphicContext::SetVideoResolutionInternal(RESOLUTION res, bool forceUpdat
|
||||
return;
|
||||
}
|
||||
|
||||
- if (res >= RES_DESKTOP)
|
||||
+ if (CDisplaySettings::GetInstance().GetResolutionInfo(res).bFullScreen)
|
||||
{
|
||||
CServiceBroker::GetSettingsComponent()->GetAdvancedSettings()->m_fullScreen = true;
|
||||
m_bFullScreenRoot = true;
|
||||
diff --git a/xbmc/windowing/wayland/WinSystemWayland.cpp b/xbmc/windowing/wayland/WinSystemWayland.cpp
|
||||
index bd17b44a19e50..02ba323d64817 100644
|
||||
--- a/xbmc/windowing/wayland/WinSystemWayland.cpp
|
||||
+++ b/xbmc/windowing/wayland/WinSystemWayland.cpp
|
||||
@@ -343,7 +343,7 @@ bool CWinSystemWayland::CreateNewWindow(const std::string& name,
|
||||
|
||||
// Update resolution with real size as it could have changed due to configure()
|
||||
UpdateDesktopResolution(res, res.strOutput, m_bufferSize.Width(), m_bufferSize.Height(), res.fRefreshRate, 0);
|
||||
- res.bFullScreen = fullScreen;
|
||||
+ res.bFullScreen = m_bFullScreen;
|
||||
|
||||
// Now start processing events
|
||||
//
|
||||
@@ -787,7 +787,7 @@ void CWinSystemWayland::OnConfigure(std::uint32_t serial, CSizeInt size, IShellS
|
||||
CLog::LogF(LOGDEBUG, "Initial configure serial {}: size {}x{} state {}", serial, size.Width(),
|
||||
size.Height(), IShellSurface::StateToString(state));
|
||||
m_shellSurfaceState = state;
|
||||
- if (!size.IsZero())
|
||||
+ if (!size.IsZero() || state.test(IShellSurface::STATE_FULLSCREEN))
|
||||
{
|
||||
UpdateSizeVariables(size, m_scale, m_shellSurfaceState, true);
|
||||
}
|
||||
@@ -1015,6 +1015,7 @@ CWinSystemWayland::SizeUpdateInformation CWinSystemWayland::UpdateSizeVariables(
|
||||
m_surfaceSize = sizes.surfaceSize;
|
||||
m_bufferSize = sizes.bufferSize;
|
||||
m_configuredSize = sizes.configuredSize;
|
||||
+ m_bFullScreen = state.test(IShellSurface::STATE_FULLSCREEN);
|
||||
|
||||
SizeUpdateInformation changes{m_surfaceSize != oldSurfaceSize, m_bufferSize != oldBufferSize, m_configuredSize != oldConfiguredSize, m_scale != oldBufferScale};
|
||||
|
201
packages/multimedia/gstreamer/gst-plugins-bad/package.mk
Normal file
201
packages/multimedia/gstreamer/gst-plugins-bad/package.mk
Normal file
@ -0,0 +1,201 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="gst-plugins-bad"
|
||||
PKG_VERSION="1.18.5"
|
||||
PKG_SHA256="a164923b94f0d08578a6fcaeaac6e0c05da788a46903a1086870e9ca45ad678e"
|
||||
PKG_LICENSE="LGPL-2.1-or-later"
|
||||
PKG_SITE="https://gstreamer.freedesktop.org/modules/gst-plugins-bad.html"
|
||||
PKG_URL="https://gstreamer.freedesktop.org/src/gst-plugins-bad/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain gst-plugins-base"
|
||||
PKG_LONGDESC="GStreamer Bad Plug-ins is a set of plug-ins that aren't up to par compared to the rest."
|
||||
|
||||
pre_configure_target() {
|
||||
PKG_MESON_OPTS_TARGET="-Dgst_player_tests=false \
|
||||
-Daccurip=disabled \
|
||||
-Dadpcmdec=disabled \
|
||||
-Dadpcmenc=disabled \
|
||||
-Daiff=disabled \
|
||||
-Dasfmux=disabled \
|
||||
-Daudiobuffersplit=disabled \
|
||||
-Daudiofxbad=disabled \
|
||||
-Daudiolatency=disabled \
|
||||
-Daudiomixmatrix=disabled \
|
||||
-Daudiovisualizers=disabled \
|
||||
-Dautoconvert=disabled \
|
||||
-Dbayer=disabled \
|
||||
-Dcamerabin2=disabled \
|
||||
-Dcoloreffects=disabled \
|
||||
-Ddebugutils=disabled \
|
||||
-Ddvbsubenc=disabled \
|
||||
-Ddvbsuboverlay=disabled \
|
||||
-Ddvdspu=disabled \
|
||||
-Dfaceoverlay=disabled \
|
||||
-Dfestival=disabled \
|
||||
-Dfieldanalysis=disabled \
|
||||
-Dfreeverb=disabled \
|
||||
-Dfrei0r=disabled \
|
||||
-Dgaudieffects=disabled \
|
||||
-Dgdp=disabled \
|
||||
-Dgeometrictransform=disabled \
|
||||
-Did3tag=disabled \
|
||||
-Dinter=disabled \
|
||||
-Dinterlace=disabled \
|
||||
-Divfparse=disabled \
|
||||
-Divtc=disabled \
|
||||
-Djp2kdecimator=disabled \
|
||||
-Djpegformat=disabled \
|
||||
-Dlibrfb=disabled \
|
||||
-Dmidi=disabled \
|
||||
-Dmpegdemux=disabled \
|
||||
-Dmpegpsmux=disabled \
|
||||
-Dmpegtsdemux=disabled \
|
||||
-Dmpegtsmux=disabled \
|
||||
-Dmxf=disabled \
|
||||
-Dnetsim=disabled \
|
||||
-Donvif=disabled \
|
||||
-Dpcapparse=disabled \
|
||||
-Dpnm=disabled \
|
||||
-Dproxy=disabled \
|
||||
-Drawparse=disabled \
|
||||
-Dremovesilence=disabled \
|
||||
-Drist=disabled \
|
||||
-Drtmp2=disabled \
|
||||
-Drtp=disabled \
|
||||
-Dsdp=disabled \
|
||||
-Dsegmentclip=disabled \
|
||||
-Dsiren=disabled \
|
||||
-Dsmooth=disabled \
|
||||
-Dspeed=disabled \
|
||||
-Dsubenc=disabled \
|
||||
-Dswitchbin=disabled \
|
||||
-Dtimecode=disabled \
|
||||
-Dvideofilters=disabled \
|
||||
-Dvideoframe_audiolevel=disabled \
|
||||
-Dvideoparsers=enabled \
|
||||
-Dvideosignal=disabled \
|
||||
-Dvmnc=disabled \
|
||||
-Dy4m=disabled \
|
||||
-Dopencv=disabled \
|
||||
-Dwayland=disabled \
|
||||
-Dx11=disabled \
|
||||
-Daom=disabled \
|
||||
-Davtp=disabled \
|
||||
-Dandroidmedia=disabled \
|
||||
-Dapplemedia=disabled \
|
||||
-Dassrender=disabled \
|
||||
-Dbluez=disabled \
|
||||
-Dbs2b=disabled \
|
||||
-Dbz2=disabled \
|
||||
-Dchromaprint=disabled \
|
||||
-Dclosedcaption=disabled \
|
||||
-Dcolormanagement=disabled \
|
||||
-Dcurl=disabled \
|
||||
-Dcurl-ssh2=disabled \
|
||||
-Dd3dvideosink=disabled \
|
||||
-Dd3d11=disabled \
|
||||
-Ddash=disabled \
|
||||
-Ddc1394=disabled \
|
||||
-Ddecklink=disabled \
|
||||
-Ddirectfb=disabled \
|
||||
-Ddirectsound=disabled \
|
||||
-Ddtls=disabled \
|
||||
-Ddts=disabled \
|
||||
-Ddvb=disabled \
|
||||
-Dfaac=disabled \
|
||||
-Dfaad=disabled \
|
||||
-Dfbdev=disabled \
|
||||
-Dfdkaac=disabled \
|
||||
-Dflite=disabled \
|
||||
-Dfluidsynth=disabled \
|
||||
-Dgl=disabled \
|
||||
-Dgme=disabled \
|
||||
-Dgsm=disabled \
|
||||
-Dipcpipeline=disabled \
|
||||
-Diqa=disabled \
|
||||
-Dkate=disabled \
|
||||
-Dkms=disabled \
|
||||
-Dladspa=disabled \
|
||||
-Dlibde265=disabled \
|
||||
-Dlibmms=disabled \
|
||||
-Dlv2=disabled \
|
||||
-Dmediafoundation=disabled \
|
||||
-Dmicrodns=disabled \
|
||||
-Dmodplug=disabled \
|
||||
-Dmpeg2enc=disabled \
|
||||
-Dmplex=disabled \
|
||||
-Dmsdk=disabled \
|
||||
-Dmusepack=disabled \
|
||||
-Dneon=disabled \
|
||||
-Dnvcodec=disabled \
|
||||
-Dofa=disabled \
|
||||
-Dopenal=disabled \
|
||||
-Dopenexr=disabled \
|
||||
-Dopenh264=disabled \
|
||||
-Dopenjpeg=disabled \
|
||||
-Dopenmpt=disabled \
|
||||
-Dopenni2=disabled \
|
||||
-Dopensles=disabled \
|
||||
-Dopus=disabled \
|
||||
-Dresindvd=disabled \
|
||||
-Drsvg=disabled \
|
||||
-Drtmp=disabled \
|
||||
-Dsbc=disabled \
|
||||
-Dsctp=disabled \
|
||||
-Dshm=disabled \
|
||||
-Dsmoothstreaming=disabled \
|
||||
-Dsndfile=disabled \
|
||||
-Dsoundtouch=disabled \
|
||||
-Dspandsp=disabled \
|
||||
-Dsrt=disabled \
|
||||
-Dsrtp=disabled \
|
||||
-Dsvthevcenc=disabled \
|
||||
-Dteletext=disabled \
|
||||
-Dtinyalsa=disabled \
|
||||
-Dtranscode=disabled \
|
||||
-Dttml=disabled \
|
||||
-Duvch264=disabled \
|
||||
-Dva=disabled \
|
||||
-Dvoaacenc=disabled \
|
||||
-Dvoamrwbenc=disabled \
|
||||
-Dvulkan=disabled \
|
||||
-Dwasapi=disabled \
|
||||
-Dwasapi2=disabled \
|
||||
-Dwebp=disabled \
|
||||
-Dwebrtc=disabled \
|
||||
-Dwebrtcdsp=disabled \
|
||||
-Dwildmidi=disabled \
|
||||
-Dwinks=disabled \
|
||||
-Dwinscreencap=disabled \
|
||||
-Dx265=disabled \
|
||||
-Dzbar=disabled \
|
||||
-Dzxing=disabled \
|
||||
-Dwpe=disabled \
|
||||
-Dmagicleap=disabled \
|
||||
-Dv4l2codecs=disabled \
|
||||
-Dhls=disabled \
|
||||
-Dsctp-internal-usrsctp=disabled \
|
||||
-Dexamples=disabled \
|
||||
-Dtests=disabled \
|
||||
-Dintrospection=disabled \
|
||||
-Dnls=disabled \
|
||||
-Dorc=disabled \
|
||||
-Dgobject-cast-checks=disabled \
|
||||
-Dglib-asserts=disabled \
|
||||
-Dglib-checks=disabled \
|
||||
-Dpackage-name="gst-plugins-bad"
|
||||
-Dpackage-origin="LibreELEC.tv"
|
||||
-Ddoc=disabled"
|
||||
}
|
||||
|
||||
post_makeinstall_target(){
|
||||
# clean up
|
||||
safe_remove ${INSTALL}/usr/bin
|
||||
for PKG_GST_PLUGINS_BAD in \
|
||||
libgstadaptivedemux libgstbadaudio libgstbasecamerabinsrc libgstcodecs libgstinsertbin libgstisoff libgstmpegts libgstphotography libgstplayer \
|
||||
libgstsctp libgsttranscoder libgsturidownloader libgstwebrtc
|
||||
do
|
||||
safe_remove ${INSTALL}/usr/lib/${PKG_GST_PLUGINS_BAD}-1.0*
|
||||
done
|
||||
safe_remove ${INSTALL}/usr/share
|
||||
}
|
68
packages/multimedia/gstreamer/gst-plugins-base/package.mk
Normal file
68
packages/multimedia/gstreamer/gst-plugins-base/package.mk
Normal file
@ -0,0 +1,68 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="gst-plugins-base"
|
||||
PKG_VERSION="1.18.5"
|
||||
PKG_SHA256="960b7af4585700db0fdd5b843554e11e2564fed9e061f591fae88a7be6446fa3"
|
||||
PKG_LICENSE="GPL-2.1-or-later"
|
||||
PKG_SITE="https://gstreamer.freedesktop.org/modules/gst-plugins-base.html"
|
||||
PKG_URL="https://gstreamer.freedesktop.org/src/gst-plugins-base/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain gstreamer"
|
||||
PKG_LONGDESC="Base GStreamer plugins and helper libraries"
|
||||
PKG_BUILD_FLAGS="-gold"
|
||||
|
||||
pre_configure_target() {
|
||||
PKG_MESON_OPTS_TARGET="-Dgl=disabled \
|
||||
-Dadder=disabled \
|
||||
-Dapp=disabled \
|
||||
-Daudioconvert=disabled \
|
||||
-Daudiomixer=disabled \
|
||||
-Daudiorate=disabled \
|
||||
-Daudioresample=disabled \
|
||||
-Daudiotestsrc=disabled \
|
||||
-Dcompositor=disabled \
|
||||
-Dencoding=disabled \
|
||||
-Dgio=disabled \
|
||||
-Dgio-typefinder=disabled \
|
||||
-Doverlaycomposition=disabled \
|
||||
-Dpbtypes=disabled \
|
||||
-Dplayback=disabled \
|
||||
-Drawparse=enabled \
|
||||
-Dsubparse=enabled \
|
||||
-Dtcp=disabled \
|
||||
-Dtypefind=disabled \
|
||||
-Dvideoconvert=disabled \
|
||||
-Dvideorate=disabled \
|
||||
-Dvideoscale=disabled \
|
||||
-Dvideotestsrc=disabled \
|
||||
-Dvolume=disabled \
|
||||
-Dalsa=disabled \
|
||||
-Dcdparanoia=disabled \
|
||||
-Dlibvisual=disabled \
|
||||
-Dogg=disabled \
|
||||
-Dopus=disabled \
|
||||
-Dpango=disabled \
|
||||
-Dtheora=disabled \
|
||||
-Dtremor=disabled \
|
||||
-Dvorbis=disabled \
|
||||
-Dx11=disabled \
|
||||
-Dxshm=disabled \
|
||||
-Dxvideo=disabled \
|
||||
-Dexamples=disabled \
|
||||
-Dtests=disabled \
|
||||
-Dtools=disabled \
|
||||
-Dintrospection=disabled \
|
||||
-Dnls=disabled \
|
||||
-Dorc=disabled \
|
||||
-Dgobject-cast-checks=disabled \
|
||||
-Dglib-asserts=disabled \
|
||||
-Dglib-checks=disabled \
|
||||
-Dpackage-name="gst-plugins-base"
|
||||
-Dpackage-origin="LibreELEC.tv"
|
||||
-Ddoc=disabled"
|
||||
}
|
||||
|
||||
post_makeinstall_target(){
|
||||
# clean up
|
||||
safe_remove ${INSTALL}
|
||||
}
|
46
packages/multimedia/gstreamer/gstreamer/package.mk
Normal file
46
packages/multimedia/gstreamer/gstreamer/package.mk
Normal file
@ -0,0 +1,46 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="gstreamer"
|
||||
PKG_VERSION="1.18.5"
|
||||
PKG_SHA256="55862232a63459bbf56abebde3085ca9aec211b478e891dacea4d6df8cafe80a"
|
||||
PKG_LICENSE="GPL-2.1-or-later"
|
||||
PKG_SITE="https://gstreamer.freedesktop.org"
|
||||
PKG_URL="https://gstreamer.freedesktop.org/src/gstreamer/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="GStreamer open-source multimedia framework core library"
|
||||
|
||||
pre_configure_target() {
|
||||
PKG_MESON_OPTS_TARGET="-Dgst_debug=false \
|
||||
-Dgst_parse=true \
|
||||
-Dregistry=false \
|
||||
-Dtracer_hooks=false \
|
||||
-Doption-parsing=true \
|
||||
-Dpoisoning=false \
|
||||
-Dcheck=disabled \
|
||||
-Dlibunwind=disabled \
|
||||
-Dlibdw=disabled \
|
||||
-Ddbghelp=disabled \
|
||||
-Dbash-completion=disabled \
|
||||
-Dcoretracers=disabled \
|
||||
-Dexamples=disabled \
|
||||
-Dtests=disabled \
|
||||
-Dbenchmarks=disabled \
|
||||
-Dtools=disabled \
|
||||
-Dgtk_doc=disabled \
|
||||
-Dintrospection=disabled \
|
||||
-Dnls=disabled \
|
||||
-Dgobject-cast-checks=disabled \
|
||||
-Dglib-asserts=disabled \
|
||||
-Dglib-checks=disabled \
|
||||
-Dextra-checks=disabled \
|
||||
-Dpackage-name="gstreamer"
|
||||
-Dpackage-origin="LibreELEC.tv"
|
||||
-Ddoc=disabled"
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
# clean up
|
||||
safe_remove ${INSTALL}/usr/share
|
||||
safe_remove ${INSTALL}/usr/lib/{libgstcontroller-1.0*,libgstnet-1.0*}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
From f342855b2b489de4141f7d23cfd66b7f243b74b7 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen <elfarto@elfarto.com>
|
||||
Date: Tue, 23 Nov 2021 09:10:01 +0000
|
||||
Subject: [PATCH] Add nvidia-drm to the drm driver map
|
||||
|
||||
---
|
||||
va/drm/va_drm_utils.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/va/drm/va_drm_utils.c b/va/drm/va_drm_utils.c
|
||||
index 467d9ac9..b3422d19 100644
|
||||
--- a/va/drm/va_drm_utils.c
|
||||
+++ b/va/drm/va_drm_utils.c
|
||||
@@ -45,6 +45,7 @@ static const struct driver_name_map g_driver_name_map[] = {
|
||||
{ "nouveau", 7, "nouveau" }, // Mesa Gallium driver
|
||||
{ "radeon", 6, "r600" }, // Mesa Gallium driver
|
||||
{ "amdgpu", 6, "radeonsi" }, // Mesa Gallium driver
|
||||
+ { "nvidia-drm",10, "nvidia" }, // NVIDIA driver
|
||||
{ NULL, 0, NULL }
|
||||
};
|
||||
|
16
packages/multimedia/nv-codec-headers/package.mk
Normal file
16
packages/multimedia/nv-codec-headers/package.mk
Normal file
@ -0,0 +1,16 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="nv-codec-headers"
|
||||
PKG_VERSION="11.1.5.1"
|
||||
PKG_SHA256="d095fbd56aa93772471a323be0ebe65504a0f43f06c76a30b6d25da77b06ae9c"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/FFmpeg/nv-codec-headers"
|
||||
PKG_URL="https://github.com/FFmpeg/nv-codec-headers/archive/n${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="FFmpeg version of headers required to interface with Nvidias codec APIs."
|
||||
PKG_TOOLCHAIN="make"
|
||||
|
||||
makeinstall_target(){
|
||||
make DESTDIR=${SYSROOT_PREFIX} PREFIX=/usr install
|
||||
}
|
11
packages/multimedia/nvidia-vaapi-driver/package.mk
Normal file
11
packages/multimedia/nvidia-vaapi-driver/package.mk
Normal file
@ -0,0 +1,11 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="nvidia-vaapi-driver"
|
||||
PKG_VERSION="0.0.4"
|
||||
PKG_SHA256="8b99c618f530ea388964cdb3e8454de2d89f4354de8d0a0ea7941e88576d7e2a"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/elFarto/nvidia-vaapi-driver"
|
||||
PKG_URL="https://github.com/elFarto/nvidia-vaapi-driver/archive/v${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain nv-codec-headers gst-plugins-bad"
|
||||
PKG_LONGDESC="A VA-API implemention using NVIDIA's NVDEC"
|
@ -43,4 +43,7 @@ if [ "${MEDIACENTER}" = "kodi" ]; then
|
||||
PKG_DEPENDS_TARGET+=" intel-vaapi-driver media-driver"
|
||||
fi
|
||||
|
||||
if listcontains "${GRAPHIC_DRIVERS}" "nvidia-ng"; then
|
||||
PKG_DEPENDS_TARGET+=" nvidia-vaapi-driver"
|
||||
fi
|
||||
fi
|
||||
|
@ -14,3 +14,13 @@ PKG_LONGDESC="Wayland is intended as a simpler replacement for X, easier to deve
|
||||
if [ -n "${WINDOWMANAGER}" -a "${WINDOWMANAGER}" != "no" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${WINDOWMANAGER}"
|
||||
fi
|
||||
|
||||
# Tools for wlroots based compositors
|
||||
if [ "${WINDOWMANAGER}" = "sway" ]; then
|
||||
PKG_DEPENDS_TARGET+=" wlr-randr"
|
||||
fi
|
||||
|
||||
# NVIDIA drivers for Linux
|
||||
if listcontains "${GRAPHIC_DRIVERS}" "nvidia-ng"; then
|
||||
PKG_DEPENDS_TARGET+=" nvidia"
|
||||
fi
|
||||
|
20
packages/wayland/compositor/sway/config/colorscheme
Normal file
20
packages/wayland/compositor/sway/config/colorscheme
Normal file
@ -0,0 +1,20 @@
|
||||
## Base16 Black Metal (Dark Funeral)
|
||||
# Author: metalelf0 (https://github.com/metalelf0)
|
||||
# Source: base16-sway (https://github.com/rkubosz/base16-sway)
|
||||
|
||||
set $base00 #000000
|
||||
set $base01 #121212
|
||||
set $base02 #222222
|
||||
set $base03 #333333
|
||||
set $base04 #999999
|
||||
set $base05 #c1c1c1
|
||||
set $base06 #999999
|
||||
set $base07 #c1c1c1
|
||||
set $base08 #5f8787
|
||||
set $base09 #aaaaaa
|
||||
set $base0A #5f81a5
|
||||
set $base0B #d0dfee
|
||||
set $base0C #aaaaaa
|
||||
set $base0D #888888
|
||||
set $base0E #999999
|
||||
set $base0F #444444
|
243
packages/wayland/compositor/sway/config/config
Normal file
243
packages/wayland/compositor/sway/config/config
Normal file
@ -0,0 +1,243 @@
|
||||
# Default config for sway
|
||||
#
|
||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
# Load prefered color scheme
|
||||
include colorscheme
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term foot.sh
|
||||
# Your preferred application launcher
|
||||
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||
# on the original workspace that the command was run on.
|
||||
set $highlight $base0A
|
||||
set $prompt $base0B
|
||||
set $menu bemenu-run -p "#" -l 10 --scrollbar autohide -i -w --tf "$prompt" --hf "$highlight" --sf "$highlight" --scf "$highlight" --no-exec | xargs swaymsg exec --
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/sway/)
|
||||
output * bg /usr/share/sway/libreelec-wallpaper-2160.png fill
|
||||
|
||||
# hide_cursor hides the cursor image after the specified timeout (in milliseconds) has elapsed with no activity on that cursor
|
||||
seat * hide_cursor 3000
|
||||
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||
#
|
||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# exec swayidle -w \
|
||||
# timeout 300 'swaylock -f -c 000000' \
|
||||
# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||
# before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||
# dwt enabled
|
||||
# tap enabled
|
||||
# natural_scroll enabled
|
||||
# middle_emulation enabled
|
||||
# }
|
||||
#
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||
# Read `man 5 sway-input` for more information about this section.
|
||||
|
||||
# Set keyboard layout (default US)
|
||||
input * {
|
||||
xkb_layout "us"
|
||||
}
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
# Or use $mod+[up|down|left|right]
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
# Ditto, with arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# You can "split" the current object of your focus with
|
||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||
# respectively.
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# Move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
bindsym $right resize grow width 10px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 10px
|
||||
bindsym Down resize grow height 10px
|
||||
bindsym Up resize shrink height 10px
|
||||
bindsym Right resize grow width 10px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
position top
|
||||
|
||||
# When the status_command prints a new line to stdout, swaybar updates.
|
||||
# The default just shows the current date and time.
|
||||
status_command while date +'%a %e %b %G - %k:%M'; do sleep 1; done
|
||||
|
||||
colors {
|
||||
background $base00
|
||||
separator $base01
|
||||
statusline $base04
|
||||
|
||||
# State Border BG Text
|
||||
focused_workspace $base05 $base0D $base00
|
||||
active_workspace $base05 $base03 $base00
|
||||
inactive_workspace $base03 $base01 $base05
|
||||
urgent_workspace $base08 $base08 $base00
|
||||
binding_mode $base00 $base0A $base00 }
|
||||
}
|
||||
|
||||
# Basic color configuration using the Base16 variables for windows and borders.
|
||||
# Property Name Border BG Text Indicator Child Border
|
||||
client.focused $base05 $base0D $base00 $base0D $base0D
|
||||
client.focused_inactive $base01 $base01 $base05 $base03 $base01
|
||||
client.unfocused $base01 $base00 $base05 $base01 $base01
|
||||
client.urgent $base08 $base08 $base00 $base08 $base08
|
||||
client.placeholder $base00 $base00 $base05 $base00 $base00
|
||||
client.background $base07
|
||||
|
||||
# Load etc config
|
||||
include /etc/sway/config.d/*
|
4
packages/wayland/compositor/sway/config/sway-daemon.conf
Normal file
4
packages/wayland/compositor/sway/config/sway-daemon.conf
Normal file
@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
# Pass config args to Sway e.g. --unsupported-gpu for NVIDIA GPUs
|
||||
SWAY_DAEMON_CONF=""
|
47
packages/wayland/compositor/sway/package.mk
Normal file
47
packages/wayland/compositor/sway/package.mk
Normal file
@ -0,0 +1,47 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="sway"
|
||||
PKG_VERSION="1.7"
|
||||
PKG_SHA256="0c64536fb2883ec518e75cfb119f9300115fb49b084e3fde62b794fe2c6c8d84"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://swaywm.org/"
|
||||
PKG_URL="https://github.com/swaywm/sway/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain wayland wayland-protocols libdrm libxkbcommon libinput cairo pango libjpeg-turbo dbus json-c wlroots gdk-pixbuf swaybg foot bemenu"
|
||||
PKG_LONGDESC="i3-compatible Wayland compositor"
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Ddefault-wallpaper=false \
|
||||
-Dzsh-completions=false \
|
||||
-Dbash-completions=false \
|
||||
-Dfish-completions=false \
|
||||
-Dswaybar=true \
|
||||
-Dswaynag=true \
|
||||
-Dxwayland=disabled \
|
||||
-Dtray=disabled \
|
||||
-Dgdk-pixbuf=enabled \
|
||||
-Dman-pages=disabled \
|
||||
-Dsd-bus-provider=auto"
|
||||
|
||||
pre_configure_target() {
|
||||
# sway does not build without -Wno flags as all warnings being treated as errors
|
||||
export TARGET_CFLAGS=$(echo "${TARGET_CFLAGS} -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-function -Wno-maybe-uninitialized")
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/usr/lib/sway
|
||||
cp ${PKG_DIR}/scripts/sway.sh ${INSTALL}/usr/bin
|
||||
cp ${PKG_DIR}/scripts/sway-config ${INSTALL}/usr/lib/sway
|
||||
|
||||
# install config & wallpaper
|
||||
mkdir -p ${INSTALL}/usr/share/sway
|
||||
cp ${PKG_DIR}/config/* ${INSTALL}/usr/share/sway
|
||||
find_file_path "splash/splash-2160.png" && cp ${FOUND_PATH} ${INSTALL}/usr/share/sway/libreelec-wallpaper-2160.png
|
||||
|
||||
# clean up
|
||||
safe_remove ${INSTALL}/etc
|
||||
safe_remove ${INSTALL}/usr/share/wayland-sessions
|
||||
}
|
||||
|
||||
post_install() {
|
||||
enable_service sway.service
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
--- a/sway/ipc-server.c
|
||||
+++ b/sway/ipc-server.c
|
||||
@@ -140,7 +140,7 @@ struct sockaddr_un *ipc_user_sockaddr(vo
|
||||
dir = "/tmp";
|
||||
}
|
||||
if (path_size <= snprintf(ipc_sockaddr->sun_path, path_size,
|
||||
- "%s/sway-ipc.%u.%i.sock", dir, getuid(), getpid())) {
|
||||
+ "%s/sway-ipc.%u.sock", dir, getuid())) {
|
||||
sway_abort("Socket path won't fit into ipc_sockaddr->sun_path");
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
--- a/sway/main.c
|
||||
+++ b/sway/main.c
|
||||
@@ -152,6 +152,10 @@ static void log_kernel(void) {
|
||||
|
||||
|
||||
static bool drop_permissions(void) {
|
||||
+ if (getuid() == 0 || getgid() == 0) {
|
||||
+ sway_log(SWAY_INFO, "Running sway as root user");
|
||||
+ return true;
|
||||
+ }
|
||||
if (getuid() != geteuid() || getgid() != getegid()) {
|
||||
sway_log(SWAY_ERROR, "!!! DEPRECATION WARNING: "
|
||||
"SUID privilege drop will be removed in a future release, please migrate to seatd-launch");
|
6
packages/wayland/compositor/sway/profile.d/04-sway.conf
Normal file
6
packages/wayland/compositor/sway/profile.d/04-sway.conf
Normal file
@ -0,0 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
export WAYLAND_DISPLAY=wayland-1
|
||||
export XDG_RUNTIME_DIR=/var/run/0-runtime-dir
|
||||
export SWAYSOCK="${XDG_RUNTIME_DIR}/sway-ipc.0.sock"
|
47
packages/wayland/compositor/sway/scripts/sway-config
Executable file
47
packages/wayland/compositor/sway/scripts/sway-config
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
export XDG_RUNTIME_DIR=/var/run/0-runtime-dir
|
||||
export WAYLAND_DISPLAY=wayland-1
|
||||
SWAY_DAEMON_ARGS=""
|
||||
|
||||
SWAY_RUNTIME_DIR=/var/run/sway
|
||||
SWAY_CONFIG_BASEDIR=/storage/.config/sway
|
||||
SWAY_CONFIG_SHAREDIR=/usr/share/sway
|
||||
|
||||
SWAY_CONFIG_COLOR=${SWAY_CONFIG_BASEDIR}/colorscheme
|
||||
SWAY_CONFIG_COLOR_DEFAULT=${SWAY_CONFIG_SHAREDIR}/colorscheme
|
||||
SWAY_CONFIG_DAEMON=${SWAY_CONFIG_BASEDIR}/sway-daemon.conf
|
||||
SWAY_CONFIG_DAEMON_DEFAULT=${SWAY_CONFIG_SHAREDIR}/sway-daemon.conf
|
||||
SWAY_CONFIG_USER=${SWAY_CONFIG_BASEDIR}/config
|
||||
SWAY_CONFIG_USER_DEFAULT=${SWAY_CONFIG_SHAREDIR}/config
|
||||
SWAY_CONFIG_RUN=${SWAY_RUNTIME_DIR}/sway-daemon.conf
|
||||
|
||||
if [ ! -d "$XDG_RUNTIME_DIR" ]; then
|
||||
mkdir "$XDG_RUNTIME_DIR"
|
||||
chmod 0700 "$XDG_RUNTIME_DIR"
|
||||
fi
|
||||
|
||||
if [ ! -d "$SWAY_RUNTIME_DIR" ]; then
|
||||
mkdir "$SWAY_RUNTIME_DIR"
|
||||
fi
|
||||
|
||||
if [ ! -f ${SWAY_CONFIG_USER} ]; then
|
||||
mkdir -p ${SWAY_CONFIG_BASEDIR}
|
||||
cp ${SWAY_CONFIG_USER_DEFAULT} ${SWAY_CONFIG_BASEDIR}
|
||||
fi
|
||||
|
||||
if [ ! -f ${SWAY_CONFIG_COLOR} ]; then
|
||||
cp ${SWAY_CONFIG_COLOR_DEFAULT} ${SWAY_CONFIG_BASEDIR}
|
||||
fi
|
||||
|
||||
if [ ! -f ${SWAY_CONFIG_DAEMON} ]; then
|
||||
cp ${SWAY_CONFIG_DAEMON_DEFAULT} ${SWAY_CONFIG_BASEDIR}
|
||||
fi
|
||||
|
||||
if [ -f ${SWAY_CONFIG_DAEMON} ] ; then
|
||||
SWAY_DAEMON_CONF=$(cat ${SWAY_CONFIG_DAEMON} | grep -E '^SWAY_DAEMON_CONF=' | cut -d "\"" -f2)
|
||||
fi
|
||||
|
||||
echo SWAY_DAEMON_ARGS=\"${SWAY_DAEMON_CONF} ${SWAY_DAEMON_ARGS}\" > ${SWAY_CONFIG_RUN}
|
14
packages/wayland/compositor/sway/scripts/sway.sh
Executable file
14
packages/wayland/compositor/sway/scripts/sway.sh
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
. /run/sway/sway-daemon.conf
|
||||
SWAY_LOG_FILE=/var/log/sway.log
|
||||
|
||||
if [ ! -z "$(lsmod | grep 'nvidia')" ]; then
|
||||
export WLR_NO_HARDWARE_CURSORS=1
|
||||
SWAY_GPU_ARGS="--unsupported-gpu"
|
||||
fi
|
||||
|
||||
logger -t Sway "### Starting Sway with -V ${SWAY_GPU_ARGS} ${SWAY_DAEMON_ARGS}"
|
||||
/usr/bin/sway -V ${SWAY_GPU_ARGS} ${SWAY_DAEMON_ARGS} > ${SWAY_LOG_FILE} 2>&1
|
20
packages/wayland/compositor/sway/system.d/sway.service
Normal file
20
packages/wayland/compositor/sway/system.d/sway.service
Normal file
@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
Description=Sway Wayland Compositor
|
||||
Before=graphical.target kodi.service
|
||||
After=multi-user.target
|
||||
ConditionKernelCommandLine=!installer
|
||||
|
||||
[Service]
|
||||
Environment=HOME=/storage
|
||||
Environment=XDG_RUNTIME_DIR=/var/run/0-runtime-dir
|
||||
EnvironmentFile=/usr/share/sway/sway-daemon.conf
|
||||
EnvironmentFile=-/run/sway/sway-daemon.conf
|
||||
WorkingDirectory=/storage
|
||||
ExecStartPre=-/usr/lib/sway/sway-config
|
||||
ExecStart=/usr/bin/sway.sh
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
Alias=display-manager.service
|
||||
WantedBy=graphical.target
|
17
packages/wayland/lib/fcft/package.mk
Normal file
17
packages/wayland/lib/fcft/package.mk
Normal file
@ -0,0 +1,17 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="fcft"
|
||||
PKG_VERSION="2.5.1"
|
||||
PKG_SHA256="1b9e9346c884f16bce9548806ea89c5e34ccc98ce27ec6ecff1f5011235de112"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://codeberg.org/dnkl/fcft"
|
||||
PKG_URL="https://codeberg.org/dnkl/fcft/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain pixman fontconfig freetype tllist"
|
||||
PKG_LONGDESC="A simple library for font loading and glyph rasterization using FontConfig, FreeType and pixman."
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Ddocs=disabled \
|
||||
-Dgrapheme-shaping=disabled \
|
||||
-Drun-shaping=disabled \
|
||||
-Dtest-text-shaping=false \
|
||||
-Dexamples=false"
|
27
packages/wayland/lib/seatd/package.mk
Normal file
27
packages/wayland/lib/seatd/package.mk
Normal file
@ -0,0 +1,27 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="seatd"
|
||||
PKG_VERSION="0.6.3"
|
||||
PKG_SHA256="5226850c163b485aebe71da0d3f4941761637e146a5c9393cb40c52617ad84a8"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://git.sr.ht/~kennylevinsen/seatd"
|
||||
PKG_URL="https://git.sr.ht/~kennylevinsen/seatd/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain systemd"
|
||||
PKG_LONGDESC="A minimal seat management daemon, and a universal seat management library."
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Dlibseat-logind=systemd \
|
||||
-Dlibseat-seatd=enabled \
|
||||
-Dlibseat-builtin=disabled \
|
||||
-Dserver=enabled \
|
||||
-Dexamples=disabled \
|
||||
-Dman-pages=disabled"
|
||||
|
||||
pre_configure_target() {
|
||||
# seatd does not build without -Wno flags as all warnings being treated as errors
|
||||
export TARGET_CFLAGS=$(echo "${TARGET_CFLAGS} -Wno-unused-parameter")
|
||||
}
|
||||
|
||||
post_install() {
|
||||
enable_service seatd.service
|
||||
}
|
14
packages/wayland/lib/seatd/system.d/seatd.service
Normal file
14
packages/wayland/lib/seatd/system.d/seatd.service
Normal file
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Seat Management Daemon
|
||||
Before=graphical.target sway.service
|
||||
After=multi-user.target
|
||||
ConditionKernelCommandLine=!installer
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/seatd -u root -s /var/run/seatd.sock
|
||||
Restart=always
|
||||
RestartSec=1
|
||||
|
||||
[Install]
|
||||
Alias=seat-management-daemon.service
|
||||
WantedBy=graphical.target
|
11
packages/wayland/lib/tllist/package.mk
Normal file
11
packages/wayland/lib/tllist/package.mk
Normal file
@ -0,0 +1,11 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="tllist"
|
||||
PKG_VERSION="1.0.5"
|
||||
PKG_SHA256="b0f32c9b2c2015c8d8dd068fd4e8b586aa91ca1670badc274ec962559ee0aadd"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://codeberg.org/dnkl/tllist"
|
||||
PKG_URL="https://codeberg.org/dnkl/tllist/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="A C header file only implementation of a typed linked list."
|
28
packages/wayland/lib/wlroots/package.mk
Normal file
28
packages/wayland/lib/wlroots/package.mk
Normal file
@ -0,0 +1,28 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="wlroots"
|
||||
PKG_VERSION="0.15.0"
|
||||
PKG_SHA256="fcb9e9dbbb112f5c527c1c4155994fd97b6b1eb3950316e186e3c293e7a07fc4"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://gitlab.freedesktop.org/wlroots/wlroots/"
|
||||
PKG_URL="https://gitlab.freedesktop.org/wlroots/wlroots/-/archive/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain libinput libxkbcommon pixman libdrm wayland wayland-protocols seatd"
|
||||
PKG_LONGDESC="A modular Wayland compositor library"
|
||||
|
||||
configure_package() {
|
||||
# OpenGLES Support
|
||||
if [ "${OPENGLES_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
|
||||
fi
|
||||
}
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Dxcb-errors=disabled \
|
||||
-Dxwayland=disabled \
|
||||
-Dexamples=false \
|
||||
-Drenderers=gles2"
|
||||
|
||||
pre_configure_target() {
|
||||
# wlroots does not build without -Wno flags as all warnings being treated as errors
|
||||
export TARGET_CFLAGS=$(echo "${TARGET_CFLAGS} -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-function")
|
||||
}
|
22
packages/wayland/util/bemenu/package.mk
Normal file
22
packages/wayland/util/bemenu/package.mk
Normal file
@ -0,0 +1,22 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bemenu"
|
||||
PKG_VERSION="0.6.4"
|
||||
PKG_SHA256="9b1ad6768a37e3b526ac31e05903b4fc8d95d28870c8fecbe803ccfc8eae1bbe"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/Cloudef/bemenu"
|
||||
PKG_URL="https://github.com/Cloudef/bemenu/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain glib wayland wayland-protocols cairo pango libxkbcommon"
|
||||
PKG_LONGDESC="Dynamic menu library and client program inspired by dmenu"
|
||||
PKG_TOOLCHAIN="make"
|
||||
|
||||
PKG_MAKE_OPTS_TARGET="PREFIX=/usr clients wayland"
|
||||
|
||||
makeinstall_target(){
|
||||
make DESTDIR=${INSTALL} PREFIX=/usr install-libs install-bins install-wayland install-pkgconfig
|
||||
}
|
||||
|
||||
post_makeinstall_target(){
|
||||
ln -sf libbemenu.so.${PKG_VERSION} ${INSTALL}/usr/lib/libbemenu.so.0
|
||||
}
|
197
packages/wayland/util/foot/config/foot.ini
Normal file
197
packages/wayland/util/foot/config/foot.ini
Normal file
@ -0,0 +1,197 @@
|
||||
# -*- conf -*-
|
||||
|
||||
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
||||
term=xterm
|
||||
# login-shell=no
|
||||
|
||||
# app-id=foot
|
||||
title=foo terminal
|
||||
# locked-title=no
|
||||
|
||||
font=monospace:size=12
|
||||
# font-bold=<bold variant of regular font>
|
||||
# font-italic=<italic variant of regular font>
|
||||
# font-bold-italic=<bold+italic variant of regular font>
|
||||
# line-height=<font metrics>
|
||||
# letter-spacing=0
|
||||
# horizontal-letter-offset=0
|
||||
# vertical-letter-offset=0
|
||||
# underline-offset=<font metrics>
|
||||
# box-drawings-uses-font-glyphs=no
|
||||
dpi-aware=auto
|
||||
|
||||
# initial-window-size-pixels=700x500 # Or,
|
||||
# initial-window-size-chars=<COLSxROWS>
|
||||
# initial-window-mode=windowed
|
||||
# pad=2x2 # optionally append 'center'
|
||||
# resize-delay-ms=100
|
||||
|
||||
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
|
||||
|
||||
# bold-text-in-bright=no
|
||||
# bell=none
|
||||
# word-delimiters=,│`|:"'()[]{}<>
|
||||
# selection-target=primary
|
||||
# workers=<number of logical CPUs>
|
||||
|
||||
[bell]
|
||||
# urgent=no
|
||||
# notify=no
|
||||
# command=
|
||||
# command-focused=no
|
||||
|
||||
[scrollback]
|
||||
# lines=1000
|
||||
# multiplier=3.0
|
||||
# indicator-position=relative
|
||||
# indicator-format=
|
||||
|
||||
[url]
|
||||
# launch=xdg-open ${url}
|
||||
# label-letters=sadfjklewcmpgh
|
||||
# osc8-underline=url-mode
|
||||
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
||||
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'
|
||||
|
||||
[cursor]
|
||||
style=beam
|
||||
color=000000 eeeeee
|
||||
blink=yes
|
||||
# beam-thickness=1.5
|
||||
# underline-thickness=<font underline thickness>
|
||||
|
||||
[mouse]
|
||||
# hide-when-typing=no
|
||||
# alternate-scroll-mode=yes
|
||||
|
||||
[colors]
|
||||
alpha=0.95
|
||||
background=000000
|
||||
foreground=eeeeee
|
||||
regular0=1c1c1c # black
|
||||
regular1=af005f # red
|
||||
regular2=5faf00 # green
|
||||
regular3=d7af5f # yellow
|
||||
regular4=5fafd7 # blue
|
||||
regular5=808080 # magenta
|
||||
regular6=d7875f # cyan
|
||||
regular7=d0d0d0 # white
|
||||
bright0=bcbcbc # bright black
|
||||
bright1=5faf5f # bright red
|
||||
bright2=afd700 # bright green
|
||||
bright3=af87d7 # bright yellow
|
||||
bright4=ffaf00 # bright blue
|
||||
bright5=ff5faf # bright magenta
|
||||
bright6=00afaf # bright cyan
|
||||
bright7=5f8787 # bright white
|
||||
#selection-foreground=1c1c1c
|
||||
#selection-background=af87d7
|
||||
|
||||
## Normal/regular colors (color palette 0-7)
|
||||
# regular0=222222 # black
|
||||
# regular1=cc9393 # red
|
||||
# regular2=7f9f7f # green
|
||||
# regular3=d0bf8f # yellow
|
||||
# regular4=6ca0a3 # blue
|
||||
# regular5=dc8cc3 # magenta
|
||||
# regular6=93e0e3 # cyan
|
||||
# regular7=dcdccc # white
|
||||
|
||||
## Bright colors (color palette 8-15)
|
||||
# bright0=666666 # bright black
|
||||
# bright1=dca3a3 # bright red
|
||||
# bright2=bfebbf # bright green
|
||||
# bright3=f0dfaf # bright yellow
|
||||
# bright4=8cd0d3 # bright blue
|
||||
# bright5=fcace3 # bright magenta
|
||||
# bright6=b3ffff # bright cyan
|
||||
# bright7=ffffff # bright white
|
||||
|
||||
## dimmed colors (see foot.ini(5) man page)
|
||||
# dim0=<not set>
|
||||
# ...
|
||||
# dim7=<not-set>
|
||||
|
||||
## The remaining 256-color palette
|
||||
# 16 = <256-color palette #16>
|
||||
# ...
|
||||
# 255 = <256-color palette #255>
|
||||
|
||||
## Misc colors
|
||||
# selection-foreground=<inverse foreground/background>
|
||||
# selection-background=<inverse foreground/background>
|
||||
# jump-labels=<regular0> <regular3>
|
||||
# urls=<regular3>
|
||||
# scrollback-indicator=<regular0> <bright4>
|
||||
|
||||
[csd]
|
||||
# preferred=server
|
||||
# size=26
|
||||
# font=<primary font>
|
||||
# color=<foreground color>
|
||||
# border-width=0
|
||||
# border-color=<csd.color>
|
||||
# button-width=26
|
||||
# button-color=<background color>
|
||||
# button-minimize-color=<regular4>
|
||||
# button-maximize-color=<regular2>
|
||||
# button-close-color=<regular1>
|
||||
|
||||
[key-bindings]
|
||||
# scrollback-up-page=Shift+Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# clipboard-copy=Control+Shift+c
|
||||
# clipboard-paste=Control+Shift+v
|
||||
# primary-paste=Shift+Insert
|
||||
# search-start=Control+Shift+r
|
||||
# font-increase=Control+plus Control+equal Control+KP_Add
|
||||
# font-decrease=Control+minus Control+KP_Subtract
|
||||
# font-reset=Control+0 Control+KP_0
|
||||
# spawn-terminal=Control+Shift+n
|
||||
# minimize=none
|
||||
# maximize=none
|
||||
# fullscreen=none
|
||||
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-selected=[xargs -r firefox] none
|
||||
# show-urls-launch=Control+Shift+u
|
||||
# show-urls-copy=none
|
||||
# noop=none
|
||||
|
||||
[search-bindings]
|
||||
# cancel=Control+g Control+c Escape
|
||||
# commit=Return
|
||||
# find-prev=Control+r
|
||||
# find-next=Control+s
|
||||
# cursor-left=Left Control+b
|
||||
# cursor-left-word=Control+Left Mod1+b
|
||||
# cursor-right=Right Control+f
|
||||
# cursor-right-word=Control+Right Mod1+f
|
||||
# cursor-home=Home Control+a
|
||||
# cursor-end=End Control+e
|
||||
# delete-prev=BackSpace
|
||||
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||
# delete-next=Delete
|
||||
# delete-next-word=Mod1+d Control+Delete
|
||||
# extend-to-word-boundary=Control+w
|
||||
# extend-to-next-whitespace=Control+Shift+w
|
||||
# clipboard-paste=Control+v Control+y
|
||||
# primary-paste=Shift+Insert
|
||||
|
||||
[url-bindings]
|
||||
# cancel=Control+g Control+c Control+d Escape
|
||||
# toggle-url-visible=t
|
||||
|
||||
[mouse-bindings]
|
||||
# primary-paste=BTN_MIDDLE
|
||||
# select-begin=BTN_LEFT
|
||||
# select-begin-block=Control+BTN_LEFT
|
||||
# select-extend=BTN_RIGHT
|
||||
# select-extend-character-wise=Control+BTN_RIGHT
|
||||
# select-word=BTN_LEFT-2
|
||||
# select-word-whitespace=Control+BTN_LEFT-2
|
||||
# select-row=BTN_LEFT-3
|
31
packages/wayland/util/foot/package.mk
Normal file
31
packages/wayland/util/foot/package.mk
Normal file
@ -0,0 +1,31 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="foot"
|
||||
PKG_VERSION="1.10.3"
|
||||
PKG_SHA256="24f57d9926ead7bea491f1bdd97eaceae5fdc10c1cb3435ee588a8f9c9af805a"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://codeberg.org/dnkl/foot/"
|
||||
PKG_URL="https://codeberg.org/dnkl/foot/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain ncurses wayland wayland-protocols pixman fontconfig libxkbcommon fcft"
|
||||
PKG_LONGDESC="A fast, lightweight and minimalistic Wayland terminal emulator"
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Ddocs=disabled \
|
||||
-Dthemes=false \
|
||||
-Dime=false \
|
||||
-Dgrapheme-clustering=auto \
|
||||
-Dterminfo=disabled \
|
||||
-Ddefault-terminfo=xterm"
|
||||
|
||||
post_makeinstall_target(){
|
||||
# clean up
|
||||
safe_remove ${INSTALL}/usr/share/*
|
||||
|
||||
# install scripts
|
||||
mkdir -p ${INSTALL}/usr/bin
|
||||
cp ${PKG_DIR}/scripts/foot.sh ${INSTALL}/usr/bin
|
||||
|
||||
# install config
|
||||
mkdir -p ${INSTALL}/usr/share/foot
|
||||
cp ${PKG_DIR}/config/foot.ini ${INSTALL}/usr/share/foot
|
||||
}
|
18
packages/wayland/util/foot/scripts/foot.sh
Executable file
18
packages/wayland/util/foot/scripts/foot.sh
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
FOOT_CONFIG_DIR=/storage/.config/foot
|
||||
FOOT_CONFIG_DEFAULT=/usr/share/foot/foot.ini
|
||||
FOOT_LOG_FILE=/var/log/foot.log
|
||||
|
||||
if [ ! -f ${FOOT_CONFIG_DIR}/foot.ini ]; then
|
||||
mkdir -p ${FOOT_CONFIG_DIR}
|
||||
cp ${FOOT_CONFIG_DEFAULT} ${FOOT_CONFIG_DIR}
|
||||
fi
|
||||
|
||||
if [ -z "${LOCPATH}" ]; then
|
||||
export LOCPATH="/storage/.cache/locpath"
|
||||
fi
|
||||
|
||||
/usr/bin/foot > ${FOOT_LOG_FILE} 2>&1
|
19
packages/wayland/util/swaybg/package.mk
Normal file
19
packages/wayland/util/swaybg/package.mk
Normal file
@ -0,0 +1,19 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="swaybg"
|
||||
PKG_VERSION="1.1"
|
||||
PKG_SHA256="958f425310514ae2aae064595c3e7efba2187b0d2947136c49188558fdb367b1"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://swaywm.org/"
|
||||
PKG_URL="https://github.com/swaywm/swaybg/archive/v${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain wayland wayland-protocols cairo pango gdk-pixbuf"
|
||||
PKG_LONGDESC="Wallpaper tool for Wayland compositors"
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Dgdk-pixbuf=enabled \
|
||||
-Dman-pages=disabled"
|
||||
|
||||
pre_configure_target() {
|
||||
# swaybg does not build without -Wno flags as all warnings being treated as errors
|
||||
export TARGET_CFLAGS=$(echo "${TARGET_CFLAGS} -Wno-maybe-uninitialized")
|
||||
}
|
11
packages/wayland/util/wlr-randr/package.mk
Normal file
11
packages/wayland/util/wlr-randr/package.mk
Normal file
@ -0,0 +1,11 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="wlr-randr"
|
||||
PKG_VERSION="0.2.0"
|
||||
PKG_SHA256="12745bc8050a56603bf9bdee70c798b5d6502cf00a795c59fd03e1d786c17ce3"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://git.sr.ht/~emersion/wlr-randr"
|
||||
PKG_URL="https://git.sr.ht/~emersion/wlr-randr/archive/v${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain wayland"
|
||||
PKG_LONGDESC="Utility to manage outputs of a Wayland compositor."
|
@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="wayland-protocols"
|
||||
PKG_VERSION="1.24"
|
||||
PKG_SHA256="bff0d8cffeeceb35159d6f4aa6bab18c807b80642c9d50f66cba52ecf7338bc2"
|
||||
PKG_VERSION="1.25"
|
||||
PKG_SHA256="f1ff0f7199d0a0da337217dd8c99979967808dc37731a1e759e822b75b571460"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="https://wayland.freedesktop.org/"
|
||||
PKG_URL="https://wayland.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
|
@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="waylandpp"
|
||||
PKG_VERSION="0.2.8"
|
||||
PKG_SHA256="e7f486165d3568c3558b5c7099133aea4a285b82820eeafad329fc10271c654d"
|
||||
PKG_VERSION="0.2.9"
|
||||
PKG_SHA256="9d34acd88149897d587b979fc454fd8e5be8021ba3d09ad24c77a4b7acff2ebd"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/NilsBrause/waylandpp"
|
||||
PKG_URL="https://github.com/NilsBrause/waylandpp/archive/${PKG_VERSION}.tar.gz"
|
||||
|
@ -2,10 +2,12 @@
|
||||
idle-time=0
|
||||
|
||||
[shell]
|
||||
locking=false
|
||||
background-color=0x00000000
|
||||
background-image=/usr/share/weston/splash-2160.png
|
||||
|
||||
background-image=/usr/share/weston/libreelec-wallpaper-2160.png
|
||||
background-type=scale-crop
|
||||
background-color=0x00000000
|
||||
clock-format=minutes-24h
|
||||
locking=false
|
||||
|
||||
[launcher]
|
||||
path=/usr/lib/kodi/kodi.bin
|
||||
|
@ -2,34 +2,50 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="weston"
|
||||
PKG_VERSION="9.0.0"
|
||||
PKG_SHA256="5cf5d6ce192e0eb15c1fc861a436bf21b5bb3b91dbdabbdebe83e1f83aa098fe"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_VERSION="10.0.0"
|
||||
PKG_SHA256="5c23964112b90238bed39e5dd1e41cd71a79398813cdc3bbb15a9fdc94e547ae"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://wayland.freedesktop.org/"
|
||||
PKG_URL="https://wayland.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain wayland wayland-protocols libdrm libxkbcommon libinput cairo libjpeg-turbo dbus"
|
||||
PKG_DEPENDS_TARGET="toolchain wayland wayland-protocols libdrm libxkbcommon libinput cairo pango libjpeg-turbo dbus seatd"
|
||||
PKG_LONGDESC="Reference implementation of a Wayland compositor"
|
||||
|
||||
PKG_MESON_OPTS_TARGET="-Dbackend-drm-screencast-vaapi=false \
|
||||
PKG_MESON_OPTS_TARGET="-Dbackend-drm=true \
|
||||
-Dbackend-drm-screencast-vaapi=false \
|
||||
-Dbackend-headless=false \
|
||||
-Dbackend-rdp=false \
|
||||
-Dscreenshare=false \
|
||||
-Dbackend-wayland=false \
|
||||
-Dbackend-x11=false \
|
||||
-Dbackend-fbdev=false \
|
||||
-Ddeprecated-backend-fbdev=false \
|
||||
-Dbackend-default=drm \
|
||||
-Drenderer-gl=true \
|
||||
-Dweston-launch=false \
|
||||
-Dxwayland=false \
|
||||
-Dsystemd=true \
|
||||
-Dremoting=false \
|
||||
-Dpipewire=false \
|
||||
-Dshell-desktop=true \
|
||||
-Dshell-fullscreen=false \
|
||||
-Dshell-ivi=false \
|
||||
-Dshell-kiosk=false \
|
||||
-Ddesktop-shell-client-default="weston-desktop-shell" \
|
||||
-Ddeprecated-wl-shell=false \
|
||||
-Dcolor-management-lcms=false \
|
||||
-Dcolor-management-colord=false \
|
||||
-Dlauncher-logind=false \
|
||||
-Dlauncher-libseat=true \
|
||||
-Dimage-jpeg=true \
|
||||
-Dimage-webp=false \
|
||||
-Dtools=['terminal']
|
||||
-Ddemo-clients=false \
|
||||
-Dsimple-clients=egl \
|
||||
-Dsimple-clients=[] \
|
||||
-Dresize-pool=false \
|
||||
-Dwcap-decode=false \
|
||||
-Dtest-junit-xml=false"
|
||||
-Dtest-junit-xml=false \
|
||||
-Dtest-skip-is-failure=false \
|
||||
-Dtest-gl-renderer=false \
|
||||
-Ddoc=false"
|
||||
|
||||
pre_configure_target() {
|
||||
# weston does not build with NDEBUG (requires assert for tests)
|
||||
@ -42,12 +58,9 @@ post_makeinstall_target() {
|
||||
|
||||
mkdir -p ${INSTALL}/usr/share/weston
|
||||
cp ${PKG_DIR}/config/weston.ini ${INSTALL}/usr/share/weston
|
||||
find_file_path "splash/splash-2160.png" && cp ${FOUND_PATH} ${INSTALL}/usr/share/weston
|
||||
find_file_path "splash/splash-2160.png" && cp ${FOUND_PATH} ${INSTALL}/usr/share/weston/libreelec-wallpaper-2160.png
|
||||
|
||||
safe_remove ${INSTALL}/usr/share/wayland-sessions
|
||||
safe_remove ${INSTALL}/usr/bin/weston-calibrator
|
||||
safe_remove ${INSTALL}/usr/bin/weston-simple-*
|
||||
safe_remove ${INSTALL}/usr/bin/weston-touch-calibrator
|
||||
}
|
||||
|
||||
post_install() {
|
||||
|
@ -1,73 +0,0 @@
|
||||
From ae69381b6eb43ab63992906d1bf29ffd2b4df10d Mon Sep 17 00:00:00 2001
|
||||
From: Manuel Stoeckl <code@mstoeckl.com>
|
||||
Date: Sun, 30 Aug 2020 18:49:18 -0400
|
||||
Subject: [PATCH] compositor: avoid setting WAYLAND_DISPLAY=wayland-0
|
||||
|
||||
This commit alters the way that Weston picks a Wayland display socket
|
||||
name. Instead of using wl_display_add_socket_auto to look for the first
|
||||
available name in wayland-0, wayland-1, .... to wayland-32, the code now
|
||||
checks names wayland-1, wayland-2, .... up to wayland-32.
|
||||
|
||||
This change is a workaround for a suboptimal behavior of
|
||||
libwayland-client. If a client program calls wl_display_connect(NULL) and
|
||||
the WAYLAND_DISPLAY environment variable is not set, then the program will
|
||||
by default try to connect to 'wayland-0'. This is a problem when a
|
||||
computer has a running Wayland compositor but is being accessed in some
|
||||
other fashion, such as through an X session on a different virtual
|
||||
terminal, over ssh, etc. Client programs launched through those means may
|
||||
attempt to connect to an unrelated compositor. Changing libwayland
|
||||
behavior to remove the default would also work, but a) libraries have
|
||||
stronger backward compatibility expectations b) that would likely break
|
||||
more people's setups than just changing Weston would.
|
||||
|
||||
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
|
||||
---
|
||||
compositor/main.c | 23 ++++++++++++++---------
|
||||
1 file changed, 14 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/compositor/main.c b/compositor/main.c
|
||||
index 2554b7627..0c8c8e027 100644
|
||||
--- a/compositor/main.c
|
||||
+++ b/compositor/main.c
|
||||
@@ -825,24 +825,29 @@ handle_primary_client_destroyed(struct wl_listener *listener, void *data)
|
||||
static int
|
||||
weston_create_listening_socket(struct wl_display *display, const char *socket_name)
|
||||
{
|
||||
+ char name_candidate[16];
|
||||
+
|
||||
if (socket_name) {
|
||||
if (wl_display_add_socket(display, socket_name)) {
|
||||
weston_log("fatal: failed to add socket: %s\n",
|
||||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
+
|
||||
+ setenv("WAYLAND_DISPLAY", socket_name, 1);
|
||||
+ return 0;
|
||||
} else {
|
||||
- socket_name = wl_display_add_socket_auto(display);
|
||||
- if (!socket_name) {
|
||||
- weston_log("fatal: failed to add socket: %s\n",
|
||||
- strerror(errno));
|
||||
- return -1;
|
||||
+ for (int i = 1; i <= 32; i++) {
|
||||
+ sprintf(name_candidate, "wayland-%d", i);
|
||||
+ if (wl_display_add_socket(display, name_candidate) >= 0) {
|
||||
+ setenv("WAYLAND_DISPLAY", name_candidate, 1);
|
||||
+ return 0;
|
||||
+ }
|
||||
}
|
||||
+ weston_log("fatal: failed to add socket: %s\n",
|
||||
+ strerror(errno));
|
||||
+ return -1;
|
||||
}
|
||||
-
|
||||
- setenv("WAYLAND_DISPLAY", socket_name, 1);
|
||||
-
|
||||
- return 0;
|
||||
}
|
||||
|
||||
WL_EXPORT void *
|
||||
--
|
||||
GitLab
|
||||
|
@ -1,4 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
export WAYLAND_DISPLAY=wayland-1
|
||||
export XDG_RUNTIME_DIR=/var/run/0-runtime-dir
|
||||
|
@ -10,8 +10,8 @@
|
||||
# Displayserver to use (wl / x11 / no)
|
||||
DISPLAYSERVER="wl"
|
||||
|
||||
# Windowmanager to use (fluxbox / weston / no)
|
||||
WINDOWMANAGER="weston"
|
||||
# Windowmanager to use (fluxbox / sway / weston / no)
|
||||
WINDOWMANAGER="sway"
|
||||
|
||||
# KODI Player implementation to use (mesa / default)
|
||||
KODIPLAYER_DRIVER="mesa"
|
||||
@ -19,7 +19,7 @@
|
||||
# set the addon project
|
||||
ADDON_PROJECT="Generic"
|
||||
|
||||
# Mesa 3D Graphic drivers to use (all / crocus,i915,iris,r300,r600,radeonsi,vmware,virtio)
|
||||
# Mesa 3D Graphic / NVIDIA drivers to use (all / crocus,i915,iris,nvidia-ng,r300,r600,radeonsi,vmware,virtio)
|
||||
# Space separated list is supported,
|
||||
# e.g. GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio"
|
||||
GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio"
|
||||
GRAPHIC_DRIVERS="crocus i915 iris nvidia-ng r300 r600 radeonsi vmware virtio"
|
||||
|
Loading…
x
Reference in New Issue
Block a user