From 158211b6a1b78966a8291eaad9c48f6ddec43b68 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Tue, 9 Feb 2021 12:52:09 +0800 Subject: [PATCH] squeezelite: 1.9.6.1196 -> 1.9.9.1401 Regular update as well as adding support for pulseaudio in addition to the regular ALSA backend. --- .../audio/squeezelite/default.nix | 78 ++++++++++++------- pkgs/top-level/all-packages.nix | 4 +- 2 files changed, 51 insertions(+), 31 deletions(-) diff --git a/pkgs/applications/audio/squeezelite/default.nix b/pkgs/applications/audio/squeezelite/default.nix index 31fe69b00de5..5fc0d6f4200f 100644 --- a/pkgs/applications/audio/squeezelite/default.nix +++ b/pkgs/applications/audio/squeezelite/default.nix @@ -1,39 +1,50 @@ -{ lib, stdenv, fetchFromGitHub -, alsa-lib, flac, libmad, libvorbis, mpg123 +{ lib +, stdenv +, fetchFromGitHub +, alsa-lib +, flac +, libmad +, libpulseaudio +, libvorbis +, mpg123 +, audioBackend ? "alsa" , dsdSupport ? true -, faad2Support ? true, faad2 -, ffmpegSupport ? true, ffmpeg -, opusSupport ? true, opusfile -, resampleSupport ? true, soxr -, sslSupport ? true, openssl +, faad2Support ? true +, faad2 +, ffmpegSupport ? true +, ffmpeg +, opusSupport ? true +, opusfile +, resampleSupport ? true +, soxr +, sslSupport ? true +, openssl }: let - concatStringsSep = lib.concatStringsSep; - optional = lib.optional; - opts = [ "-DLINKALL" ] - ++ optional dsdSupport "-DDSD" - ++ optional (!faad2Support) "-DNO_FAAD" - ++ optional ffmpegSupport "-DFFMPEG" - ++ optional opusSupport "-DOPUS" - ++ optional resampleSupport "-DRESAMPLE" - ++ optional sslSupport "-DUSE_SSL"; + inherit (lib) optional optionalString; -in stdenv.mkDerivation { - pname = "squeezelite"; + pulseSupport = audioBackend == "pulse"; + binName = "squeezelite${optionalString pulseSupport "-pulse"}"; + +in +stdenv.mkDerivation { + # the nixos module uses the pname as the binary name + pname = binName; # versions are specified in `squeezelite.h` # see https://github.com/ralph-irving/squeezelite/issues/29 - version = "1.9.6.1196"; + version = "1.9.9.1401"; src = fetchFromGitHub { - owner = "ralph-irving"; - repo = "squeezelite"; - rev = "2b508464dce2cbdb2a3089c58df2a6fbc36328c0"; - sha256 = "024ypr1da2r079k3hgiifzd3d3wcfprhbl5zdm40zm0c7frzmr8i"; + owner = "ralph-irving"; + repo = "squeezelite"; + rev = "894df3ea80f66a27a9ae5fab918acf62a6798b8b"; + hash = "sha256-LIi+9vb0+56AGvVrLx4gQaUkUNjIi6PmqrLViLT1DSU="; }; - buildInputs = [ alsa-lib flac libmad libvorbis mpg123 ] + buildInputs = [ flac libmad libvorbis mpg123 ] + ++ lib.singleton (if pulseSupport then libpulseaudio else alsa-lib) ++ optional faad2Support faad2 ++ optional ffmpegSupport ffmpeg ++ optional opusSupport opusfile @@ -47,15 +58,22 @@ in stdenv.mkDerivation { --replace "" "" ''; - preBuild = '' - export OPTS="${concatStringsSep " " opts}" - ''; + EXECUTABLE = binName; + + OPTS = [ "-DLINKALL" ] + ++ optional dsdSupport "-DDSD" + ++ optional (!faad2Support) "-DNO_FAAD" + ++ optional ffmpegSupport "-DFFMPEG" + ++ optional opusSupport "-DOPUS" + ++ optional pulseSupport "-DPULSEAUDIO" + ++ optional resampleSupport "-DRESAMPLE" + ++ optional sslSupport "-DUSE_SSL"; installPhase = '' runHook preInstall - install -Dm755 -t $out/bin squeezelite - install -Dm644 -t $out/share/doc/squeezelite *.txt *.md + install -Dm555 -t $out/bin ${binName} + install -Dm444 -t $out/share/doc/squeezelite *.txt *.md runHook postInstall ''; @@ -63,7 +81,7 @@ in stdenv.mkDerivation { meta = with lib; { description = "Lightweight headless squeezebox client emulator"; homepage = "https://github.com/ralph-irving/squeezelite"; - license = with licenses; [ gpl3 ] ++ optional dsdSupport bsd2; + license = with licenses; [ gpl3Plus ] ++ optional dsdSupport bsd2; maintainers = with maintainers; [ samdoshi ]; platforms = platforms.linux; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 40f7cc930a43..eda0775dd6f3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -29068,7 +29068,9 @@ with pkgs; psst = callPackage ../applications/audio/psst { }; - squeezelite = callPackage ../applications/audio/squeezelite { }; + squeezelite = callPackage ../applications/audio/squeezelite { audioBackend = "alsa"; }; + + squeezelite-pulse = callPackage ../applications/audio/squeezelite { audioBackend = "pulse"; }; ltunify = callPackage ../tools/misc/ltunify { };