cosmic-player: init at unstable-2025-01-14
This commit is contained in:
parent
330346c916
commit
765478f52f
110
pkgs/by-name/co/cosmic-player/package.nix
Normal file
110
pkgs/by-name/co/cosmic-player/package.nix
Normal file
@ -0,0 +1,110 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
alsa-lib,
|
||||
ffmpeg,
|
||||
glib,
|
||||
gst_all_1,
|
||||
just,
|
||||
pkg-config,
|
||||
libxkbcommon,
|
||||
stdenv,
|
||||
cosmic-icons,
|
||||
libglvnd,
|
||||
libgbm,
|
||||
wayland,
|
||||
xorg,
|
||||
vulkan-loader,
|
||||
makeBinaryWrapper,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cosmic-player";
|
||||
version = "1.0.0-alpha.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pop-os";
|
||||
repo = pname;
|
||||
rev = "epoch-${version}";
|
||||
hash = "sha256-IgMFKtuMAfRtbxunwrwRzFi/0PcSMWhx33uJcxiAHhI=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-VSUv4yV54fzWPhxZV/EjBrkx7tTLo6vfSHNiluWnn9A=";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
just
|
||||
pkg-config
|
||||
makeBinaryWrapper
|
||||
];
|
||||
|
||||
# Largely based on lilyinstarlight's work linked below
|
||||
# https://github.com/lilyinstarlight/nixos-cosmic/blob/main/pkgs/cosmic-player/package.nix
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
ffmpeg
|
||||
glib
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gst-plugins-bad
|
||||
libxkbcommon
|
||||
libgbm
|
||||
wayland
|
||||
vulkan-loader
|
||||
xorg.libX11
|
||||
libglvnd
|
||||
];
|
||||
|
||||
dontUseJustBuild = true;
|
||||
|
||||
justFlags = [
|
||||
"--set"
|
||||
"prefix"
|
||||
(placeholder "out")
|
||||
"--set"
|
||||
"bin-src"
|
||||
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-player"
|
||||
];
|
||||
|
||||
# Force linking to libEGL, which is always dlopen()ed, and to
|
||||
# libwayland-client, which is always dlopen()ed except by the
|
||||
# obscure winit backend.
|
||||
RUSTFLAGS = map (a: "-C link-arg=${a}") [
|
||||
"-Wl,--push-state,--no-as-needed"
|
||||
"-lEGL"
|
||||
"-lwayland-client"
|
||||
"-Wl,--pop-state"
|
||||
];
|
||||
|
||||
# LD_LIBRARY_PATH can be removed once tiny-xlib is bumped above 0.2.2
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/cosmic-player" \
|
||||
--suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
|
||||
--prefix LD_LIBRARY_PATH : ${
|
||||
lib.makeLibraryPath [
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libXi
|
||||
vulkan-loader
|
||||
libxkbcommon
|
||||
wayland
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/pop-os/cosmic-player";
|
||||
description = "Media player for the COSMIC Desktop Environment";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ ahoneybun ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "cosmic-player";
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user