clapper: rewrite as a wrapper

This commit is contained in:
aleksana 2025-04-17 11:56:57 +08:00
parent 6767c5a8af
commit 7ebb53f8c3

View file

@ -1,88 +1,41 @@
{
lib,
stdenv,
fetchFromGitHub,
gobject-introspection,
pkg-config,
ninja,
desktop-file-utils,
makeWrapper,
shared-mime-info,
stdenvNoCC,
clapper-unwrapped,
wrapGAppsHook4,
meson,
gtk4,
gst_all_1,
libGL,
libadwaita,
libsoup_3,
vala,
cmake,
libmicrodns,
gtuber,
glib-networking,
libpeas2,
gobject-introspection,
xorg,
clapper-enhancers,
}:
stdenv.mkDerivation (finalAttrs: {
stdenvNoCC.mkDerivation {
pname = "clapper";
version = "0.8.0";
inherit (clapper-unwrapped) version meta;
src = fetchFromGitHub {
owner = "Rafostar";
repo = "clapper";
tag = finalAttrs.version;
hash = "sha256-Yb2fWsdd8jhxkGWKanLn7CAuF4MjyQ27XTrO8ja3hfs=";
};
src = clapper-unwrapped;
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [
wrapGAppsHook4
gobject-introspection
meson
cmake
ninja
makeWrapper
pkg-config
wrapGAppsHook4 # for gsettings
desktop-file-utils # for update-desktop-database
shared-mime-info # for update-mime-database
vala
xorg.lndir
];
buildInputs = [
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
gtuber
glib-networking # for TLS support
gtk4
libGL
libadwaita
libsoup_3
libmicrodns
libpeas2
];
buildInputs = [ clapper-unwrapped ] ++ clapper-unwrapped.buildInputs;
postPatch = ''
patchShebangs --build build-aux/meson/postinstall.py
installPhase = ''
runHook preInstall
mkdir -p $out
lndir $src $out
runHook postInstall
'';
# The package uses "clappersink" provided by itself
preFixup = ''
gappsWrapperArgs+=(
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : $out/lib/gstreamer-1.0
--set-default CLAPPER_ENHANCERS_PATH "${clapper-enhancers}/${clapper-enhancers.passthru.pluginPath}"
)
'';
meta = {
description = "GNOME media player built using GTK4 toolkit and powered by GStreamer with OpenGL rendering";
longDescription = ''
Clapper is a GNOME media player built using the GTK4 toolkit.
The media player is using GStreamer as a media backend.
'';
homepage = "https://github.com/Rafostar/clapper";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ aleksana ];
platforms = lib.platforms.linux;
};
})
}