{
  lib,
  stdenv,
  cmake,
  pkg-config,
  qt6,
  openssl,
  python3,
  libpulseaudio,
  fetchFromGitHub,
}:
let
  inherit (lib.trivial) importJSON;
  versions = importJSON ./versions.json;
in
stdenv.mkDerivation {
  pname = "librepods";
  version = "unstable";

  src = fetchFromGitHub {
    owner = "kavishdevar";
    repo = "librepods";
    rev = versions.rev;
    hash = versions.hash;
  };

  sourceRoot = "source/linux";

  nativeBuildInputs = [
    cmake
    pkg-config
    qt6.wrapQtAppsHook
  ];

  buildInputs = [
    qt6.qtbase
    qt6.qtdeclarative
    qt6.qtconnectivity
    qt6.qtmultimedia
    openssl
    libpulseaudio
    python3
  ];

  qtWrapperArgs = [
    "--prefix QML2_IMPORT_PATH : ${qt6.qtdeclarative}/lib/qt6/qml"
    "--prefix QT_PLUGIN_PATH : ${qt6.qtbase}/lib/qt6/plugins"
  ];

  installPhase = ''
    mkdir -p $out/bin
    cp librepods $out/bin/
  '';

  meta = with lib; {
    description = "Native Linux application for controlling Apple AirPods";
    platforms = platforms.linux;
  };
}
