diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix index 688906e684d9..f08832b02ac8 100644 --- a/pkgs/tools/audio/yabridge/default.nix +++ b/pkgs/tools/audio/yabridge/default.nix @@ -34,28 +34,28 @@ let tomlplusplus = fetchFromGitHub { owner = "marzer"; repo = "tomlplusplus"; - rev = "47216c8a73d77e7431ec536fb3e251aed06cc420"; - sha256 = "sha256-cwAzWu5j3ch/56a6JmEoKCsxVNTk6tiZswNdNT6qzX0="; + rev = "8e669aa6990e0ed219c169d491472d749f54c393"; + sha256 = "sha256-l8ckbCqjz3GUfwStcl3H2C+un5dZfT2uLtayvdu93D4="; }; # Derived from vst3.wrap vst3 = fetchFromGitHub { owner = "robbert-vdh"; repo = "vst3sdk"; - rev = "v3.7.3_build_20-patched"; + rev = "v3.7.4_build_25-patched"; fetchSubmodules = true; - sha256 = "sha256-m2y7No7BNbIjLNgdAqIAEr6UuAZZ/wwM2+iPWKK17gQ="; + sha256 = "sha256-oHRJZItw+he5M+beVZkUrhJir6rgFZ80ORzA73mJT2A="; }; in multiStdenv.mkDerivation rec { pname = "yabridge"; - version = "3.7.0"; + version = "3.8.0"; # NOTE: Also update yabridgectl's cargoHash when this is updated src = fetchFromGitHub { owner = "robbert-vdh"; repo = pname; rev = version; - sha256 = "sha256-dz7kScNrVUsjokJntzUCJzDIboqi3vQI+RpXl0UFmUQ="; + sha256 = "sha256-XacJjHxsp60/l36pFPGonUyOsyFF2lmqplAaisHXZDY="; }; # Unpack subproject sources diff --git a/pkgs/tools/audio/yabridge/hardcode-dependencies.patch b/pkgs/tools/audio/yabridge/hardcode-dependencies.patch index 255b0eb88cb1..9f6bc0c9a9d5 100644 --- a/pkgs/tools/audio/yabridge/hardcode-dependencies.patch +++ b/pkgs/tools/audio/yabridge/hardcode-dependencies.patch @@ -1,8 +1,8 @@ diff --git a/meson.build b/meson.build -index 8eae0442..ec0649da 100644 +index 95ecb728..cb30f3af 100644 --- a/meson.build +++ b/meson.build -@@ -196,6 +196,7 @@ if with_32bit_libraries or with_bitbridge +@@ -201,6 +201,7 @@ if with_32bit_libraries or with_bitbridge 'boost_filesystem', static : with_static_boost, dirs : [ @@ -10,7 +10,7 @@ index 8eae0442..ec0649da 100644 # Used by Arch based distros '/usr/local/lib32', '/usr/lib32', -@@ -219,7 +220,7 @@ if is_64bit_system +@@ -224,7 +225,7 @@ if is_64bit_system xcb_64bit_dep = dependency('xcb') endif if with_32bit_libraries or with_bitbridge @@ -20,7 +20,7 @@ index 8eae0442..ec0649da 100644 # These are all headers-only libraries, and thus won't require separate 32-bit diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp -index 6e32b4c9..f6eb09eb 100644 +index 1a457f03..20ca1e63 100644 --- a/src/plugin/utils.cpp +++ b/src/plugin/utils.cpp @@ -107,7 +107,7 @@ std::string PluginInfo::wine_version() const { diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix index 902734de0bd0..d2e8438e0c9e 100644 --- a/pkgs/tools/audio/yabridgectl/default.nix +++ b/pkgs/tools/audio/yabridgectl/default.nix @@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec { src = yabridge.src; sourceRoot = "source/tools/yabridgectl"; - cargoSha256 = "sha256-/VREh/f4bAt2DXCqK0noEjn+4hcK5VZUn+gdbYbeAmk="; + cargoSha256 = "sha256-pwy2Q2HUCihr7W81hGvDm9EiZHk9G8knSy0yxPy6hl8="; patches = [ # By default, yabridgectl locates libyabridge.so by using diff --git a/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch b/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch index 7b8e10b2ba81..905068f75f8c 100644 --- a/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch +++ b/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch @@ -1,5 +1,5 @@ diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs -index bc5ccfc4..c6d119bc 100644 +index bc5f6a81..0fcd38d3 100644 --- a/tools/yabridgectl/src/config.rs +++ b/tools/yabridgectl/src/config.rs @@ -23,6 +23,7 @@ use std::collections::{BTreeMap, BTreeSet, HashSet}; @@ -10,7 +10,7 @@ index bc5ccfc4..c6d119bc 100644 use std::path::{Path, PathBuf}; use which::which; use xdg::BaseDirectories; -@@ -233,34 +234,24 @@ impl Config { +@@ -235,34 +236,27 @@ impl Config { } } None => { @@ -20,6 +20,8 @@ index bc5ccfc4..c6d119bc 100644 - // in the error message when `libyabridge-vst2.so` can't be found. - let system_path = Path::new("/usr/lib"); + // Search through NIX_PROFILES & data home directory if no path was set explicitly. ++ // NIX_PROFILES is iterated in reverse from the most specific (the user profile) to ++ // the least specific (the system profile). + let nix_profiles = env::var("NIX_PROFILES"); let user_path = xdg_dirs.get_data_home(); - let lib_directories = [ @@ -35,6 +37,7 @@ index bc5ccfc4..c6d119bc 100644 - ]; + let lib_directories = nix_profiles.iter() + .flat_map(|profiles| profiles.split(' ') ++ .rev() + .map(|profile| Path::new(profile).join("lib"))) + .chain(iter::once(user_path.clone())); + @@ -56,12 +59,12 @@ index bc5ccfc4..c6d119bc 100644 )); } diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs -index 8c273f92..432619ec 100644 +index 48cce4fa..209e40e4 100644 --- a/tools/yabridgectl/src/main.rs +++ b/tools/yabridgectl/src/main.rs -@@ -148,7 +148,7 @@ fn main() -> Result<()> { - .about("Path to the directory containing 'libyabridge-{vst2,vst3}.so'") - .long_about( +@@ -151,7 +151,7 @@ fn main() -> Result<()> { + .help("Path to the directory containing 'libyabridge-{vst2,vst3}.so'") + .long_help( "Path to the directory containing 'libyabridge-{vst2,vst3}.so'. If this \ - is not set, then yabridgectl will look in both '/usr/lib' and \ + is not set, then yabridgectl will look through 'NIX_PROFILES' and \