92 lines
1.8 KiB
Nix
92 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
fetchFromGitHub,
|
|
glib,
|
|
gst_all_1,
|
|
iproute2,
|
|
libtool,
|
|
makeBinaryWrapper,
|
|
meson,
|
|
miraclecast,
|
|
ninja,
|
|
pkg-config,
|
|
readline,
|
|
stdenv,
|
|
systemdLibs,
|
|
testers,
|
|
udev,
|
|
wpa_supplicant,
|
|
relyUdev ? true,
|
|
}:
|
|
|
|
let
|
|
gstreamerPluginPaths = lib.concatMapStrings (pth: pth + "/lib/gstreamer-1.0:") [
|
|
(lib.getLib gst_all_1.gstreamer)
|
|
gst_all_1.gst-libav
|
|
gst_all_1.gst-plugins-bad
|
|
gst_all_1.gst-plugins-base
|
|
gst_all_1.gst-plugins-good
|
|
];
|
|
in
|
|
stdenv.mkDerivation {
|
|
pname = "miraclecast";
|
|
version = "1.0-unstable-2024-07-13";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "albfan";
|
|
repo = "miraclecast";
|
|
rev = "937747fd4de64a33bccf5adb73924c435ceb821b";
|
|
hash = "sha256-y37+AOz8xYjtDk9ITxMB7UeWeMpDH+b6HQBczv+x5zo=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
makeBinaryWrapper
|
|
meson
|
|
ninja
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
glib
|
|
gst_all_1.gstreamer
|
|
iproute2
|
|
libtool
|
|
readline
|
|
systemdLibs
|
|
udev
|
|
wpa_supplicant
|
|
];
|
|
|
|
mesonFlags =
|
|
[
|
|
"-Dbuild-tests=true"
|
|
"-Dip-binary=${iproute2}/bin/ip"
|
|
]
|
|
++ lib.optionals relyUdev [
|
|
"-Drely-udev=true"
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace res/miracle-gst \
|
|
--replace-fail "/usr/bin/gst-launch-1.0" "${gst_all_1.gstreamer}/bin/gst-launch-1.0"
|
|
'';
|
|
|
|
postInstall = ''
|
|
wrapProgram $out/bin/miracle-gst --set GST_PLUGIN_SYSTEM_PATH_1_0 ${gstreamerPluginPaths}
|
|
'';
|
|
|
|
passthru.tests.version = testers.testVersion {
|
|
package = miraclecast;
|
|
command = "miracled --version";
|
|
version = "Miraclecast 1";
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "Connect external monitors to your system via Wifi-Display specification also known as Miracast";
|
|
homepage = "https://github.com/albfan/miraclecast";
|
|
license = licenses.lgpl21Plus;
|
|
maintainers = [ maintainers.wizardlink ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|