Files
nixpkgs/pkgs/by-name/hq/hqplayerd/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

122 lines
2.4 KiB
Nix

{
stdenv,
lib,
addDriverRunpath,
alsa-lib,
autoPatchelfHook,
cairo,
fetchurl,
flac,
gcc14,
gssdp,
gupnp,
gupnp-av,
lame,
libgmpris,
libusb-compat-0_1,
llvmPackages_19,
mpg123,
rpmextract,
wavpack,
callPackage,
}:
let
rygel-hqplayerd = callPackage ./rygel.nix { };
in
stdenv.mkDerivation rec {
pname = "hqplayerd";
version = "5.13.2-39";
src = fetchurl {
url = "https://www.signalyst.eu/bins/hqplayerd/fc37/hqplayerd-${version}.fc37.x86_64.rpm";
hash = "sha256-4wB32xFYpGcBdLqSZFkNXoS7IerPS8f6KIpn13ulqUY=";
};
unpackPhase = ''
rpmextract $src
'';
nativeBuildInputs = [
addDriverRunpath
autoPatchelfHook
rpmextract
];
buildInputs = [
alsa-lib
cairo
flac
gcc14.cc.lib
rygel-hqplayerd
gssdp
gupnp
gupnp-av
lame
libgmpris
libusb-compat-0_1
llvmPackages_19.openmp
mpg123
wavpack
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
# executables
mkdir -p $out
cp -rv ./usr/bin $out/bin
# libs
mkdir -p $out
cp -rv ./opt/hqplayerd/lib $out
# configuration
mkdir -p $out/etc
cp -rv ./etc/hqplayer $out/etc/
# systemd service file
mkdir -p $out/lib/systemd
cp -rv ./usr/lib/systemd/system $out/lib/systemd/
# documentation
mkdir -p $out/share/doc
cp -rv ./usr/share/doc/hqplayerd $out/share/doc/
# misc service support files
mkdir -p $out/var/lib
cp -rv ./var/lib/hqplayer $out/var/lib/
runHook postInstall
'';
postInstall = ''
substituteInPlace $out/lib/systemd/system/hqplayerd.service \
--replace /usr/bin/hqplayerd $out/bin/hqplayerd \
--replace "NetworkManager-wait-online.service" ""
'';
# NB: addDriverRunpath needs to run _after_ autoPatchelfHook, which runs in
# postFixup, so we tack it on here.
doInstallCheck = true;
installCheckPhase = ''
addDriverRunpath $out/bin/hqplayerd
$out/bin/hqplayerd --version
'';
passthru = {
rygel = rygel-hqplayerd;
};
meta = with lib; {
homepage = "https://www.signalyst.com/custom.html";
description = "High-end upsampling multichannel software embedded HD-audio player";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ lovesegfault ];
};
}