9bb3fccb5b
continuation of #109595 pkgconfig was aliased in 2018, however, it remained in all-packages.nix due to its wide usage. This cleans up the remaining references to pkgs.pkgsconfig and moves the entry to aliases.nix. python3Packages.pkgconfig remained unchanged because it's the canonical name of the upstream package on pypi.
107 lines
3.4 KiB
Nix
107 lines
3.4 KiB
Nix
{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
|
|
, qtbase, qtsvg, qttools, perl
|
|
|
|
# Cantata doesn't build with cdparanoia enabled so we disable that
|
|
# default for now until I (or someone else) figure it out.
|
|
, withCdda ? false, cdparanoia
|
|
, withCddb ? false, libcddb
|
|
, withLame ? false, lame
|
|
, withMusicbrainz ? false, libmusicbrainz5
|
|
|
|
, withTaglib ? true, taglib, taglib_extras
|
|
, withHttpStream ? true, qtmultimedia
|
|
, withReplaygain ? true, ffmpeg_3, speex, mpg123
|
|
, withMtp ? true, libmtp
|
|
, withOnlineServices ? true
|
|
, withDevices ? true, udisks2
|
|
, withDynamic ? true
|
|
, withHttpServer ? true
|
|
, withLibVlc ? false, libvlc
|
|
, withStreams ? true
|
|
}:
|
|
|
|
# Inter-dependencies.
|
|
assert withCddb -> withCdda && withTaglib;
|
|
assert withCdda -> withCddb && withMusicbrainz;
|
|
assert withLame -> withCdda && withTaglib;
|
|
assert withMtp -> withTaglib;
|
|
assert withMusicbrainz -> withCdda && withTaglib;
|
|
assert withOnlineServices -> withTaglib;
|
|
assert withReplaygain -> withTaglib;
|
|
assert withLibVlc -> withHttpStream;
|
|
|
|
let
|
|
version = "2.4.2";
|
|
pname = "cantata";
|
|
fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
|
|
fstats = x: map (fstat x);
|
|
|
|
withUdisks = (withTaglib && withDevices);
|
|
|
|
perl' = perl.withPackages (ppkgs: [ ppkgs.URI ]);
|
|
|
|
in mkDerivation {
|
|
name = "${pname}-${version}";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "CDrummond";
|
|
repo = "cantata";
|
|
rev = "v${version}";
|
|
sha256 = "15qfx9bpfdplxxs08inwf2j8kvf7g5cln5sv1wj1l2l41vbf1mjr";
|
|
};
|
|
|
|
patches = [
|
|
# Cantata wants to check if perl is in the PATH at runtime, but we
|
|
# patchShebangs the playlists scripts, making that unnecessary (perl will
|
|
# always be available because it's a dependency)
|
|
./dont-check-for-perl-in-PATH.diff
|
|
];
|
|
|
|
postPatch = ''
|
|
patchShebangs playlists
|
|
'';
|
|
|
|
buildInputs = [ qtbase qtsvg perl' ]
|
|
++ lib.optionals withTaglib [ taglib taglib_extras ]
|
|
++ lib.optionals withReplaygain [ ffmpeg_3 speex mpg123 ]
|
|
++ lib.optional withHttpStream qtmultimedia
|
|
++ lib.optional withCdda cdparanoia
|
|
++ lib.optional withCddb libcddb
|
|
++ lib.optional withLame lame
|
|
++ lib.optional withMtp libmtp
|
|
++ lib.optional withMusicbrainz libmusicbrainz5
|
|
++ lib.optional withUdisks udisks2
|
|
++ lib.optional withLibVlc libvlc;
|
|
|
|
nativeBuildInputs = [ cmake pkg-config qttools ];
|
|
|
|
cmakeFlags = lib.flatten [
|
|
(fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ])
|
|
(fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ])
|
|
(fstat withHttpStream "HTTP_STREAM_PLAYBACK")
|
|
(fstat withCdda "CDPARANOIA")
|
|
(fstat withCddb "CDDB")
|
|
(fstat withLame "LAME")
|
|
(fstat withMtp "MTP")
|
|
(fstat withMusicbrainz "MUSICBRAINZ")
|
|
(fstat withOnlineServices "ONLINE_SERVICES")
|
|
(fstat withDynamic "DYNAMIC")
|
|
(fstat withDevices "DEVICES_SUPPORT")
|
|
(fstat withHttpServer "HTTP_SERVER")
|
|
(fstat withLibVlc "LIBVLC")
|
|
(fstat withStreams "STREAMS")
|
|
(fstat withUdisks "UDISKS2")
|
|
"-DENABLE_HTTPS_SUPPORT=ON"
|
|
];
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/cdrummond/cantata";
|
|
description = "A graphical client for MPD";
|
|
license = licenses.gpl3;
|
|
maintainers = with maintainers; [ peterhoeg ];
|
|
# Technically Cantata can run on Windows so if someone wants to
|
|
# bother figuring that one out, be my guest.
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|