Files
nixpkgs/pkgs/by-name/au/audiosource/package.nix
2026-03-18 01:03:28 +01:00

83 lines
1.8 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
makeWrapper,
installShellFiles,
python3,
android-tools,
pulseaudio,
coreutils,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "audiosource";
version = "1.5";
src = fetchFromGitHub {
owner = "gdzx";
repo = "audiosource";
tag = "v${finalAttrs.version}";
hash = "sha256-npN7V1svKaxCfsZBvmfm7T/UJsAQ4hQM3RN+tpK5cms=";
};
patches = [
# Removes build-related logic from the script that is unused in the package
./unused-logic-removal.patch
# Fixes a small bug with adb args on new Android versions
./adb-args-fix.patch
];
postPatch = ''
substituteInPlace audiosource \
--replace-fail "@apkPath@" "$out/share/audiosource/audiosource.apk"
'';
nativeBuildInputs = [
makeWrapper
installShellFiles
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/audiosource
cp ${finalAttrs.passthru.apk} $out/share/audiosource/audiosource.apk
installBin audiosource
runHook postInstall
'';
postFixup = ''
wrapProgram $out/bin/audiosource \
--prefix PATH : ${
lib.makeBinPath [
python3
android-tools
pulseaudio
coreutils
]
}
'';
passthru.apk = fetchurl {
url = "https://github.com/gdzx/audiosource/releases/download/v${finalAttrs.version}/audiosource.apk";
hash = "sha256:cd48532829f41060d3c9909daa5563a669394eb9dd00baf303b6db1b5b2db1fa";
};
meta = {
description = "Use an Android device as a USB microphone";
homepage = "https://github.com/gdzx/audiosource";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ikci ];
mainProgram = "audiosource";
platforms = lib.platforms.linux;
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode
];
};
})