depot/third_party/nixpkgs/pkgs/applications/audio/redux/default.nix
Default email 159e378cbb Project import generated by Copybara.
GitOrigin-RevId: c04d5652cfa9742b1d519688f65d1bbccea9eb7e
2024-09-19 17:19:46 +03:00

77 lines
2.2 KiB
Nix

{ lib
, stdenv
, fetchurl
, writeScript
, libX11
, libXext
, alsa-lib
, autoPatchelfHook
, releasePath ? null
}:
# To use the full release version (same as renoise):
# 1) Sign into https://backstage.renoise.com and download the release version to some stable location.
# 2) Override the releasePath attribute to point to the location of the newly downloaded bundle.
# Note: Renoise creates an individual build for each license which screws somewhat with the
# use of functions like requireFile as the hash will be different for every user.
stdenv.mkDerivation rec {
pname = "redux";
version = "1.3.5";
src = if releasePath != null then releasePath
else fetchurl {
urls = [
"https://files.renoise.com/demo/Renoise_Redux_${lib.replaceStrings ["."] ["_"] version}_Demo_Linux_x86_64.tar.gz"
"https://files.renoise.com/demo/archive/Renoise_Redux_${lib.replaceStrings ["."] ["_"] version}_Demo_Linux_x86_64.tar.gz"
];
sha256 = "sha256-eznsdLzgdJ7MyWe5WAEg1MHId5VlfyanoZ6+I9nI/0I=";
};
nativeBuildInputs = [
autoPatchelfHook
];
buildInputs = [
libX11
libXext
alsa-lib
stdenv.cc.cc.lib
];
installPhase = ''
runHook preInstall
OUTDIR=$out/lib/vst2/RenoiseRedux.vst2
mkdir -p $OUTDIR
cp -r ./renoise_redux_x86_64/* $OUTDIR
runHook postInstall
'';
passthru.updateScript = writeScript "update-redux" ''
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p curl htmlq common-updater-scripts
set -euo pipefail
new_version="$(
curl 'https://files.renoise.com/demo/' \
| htmlq a --text \
| grep -E '^Renoise_Redux_([0-9]+_?)+_Demo_Linux_x86_64\.tar\.gz$' \
| grep -Eo '[0-9]+(_[0-9]+)*' \
| head -n1 \
| tr _ .
)"
update-source-version redux "$new_version" --system="x86_64-linux"
'';
meta = with lib; {
description = "Sample-based instrument, with a powerful phrase sequencer";
homepage = "https://www.renoise.com/products/redux";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [ mihnea-s ];
platforms = [ "x86_64-linux" ];
};
}