Print a deprecation warning on sync for symlinks

This commit is contained in:
Robbert van der Helm
2022-01-02 20:23:37 +01:00
parent 14870c8dd9
commit f5af027847
4 changed files with 33 additions and 3 deletions
+11
View File
@@ -35,6 +35,17 @@ Versioning](https://semver.org/spec/v2.0.0.html).
the host inserts or removes plug instances while other instances of that
plugin are processing audio.
### yabridgectl
- Deprecated support for the symlink-based installation method in yabridgectl
and removed all remaining mentions of it from the documentation. This feature
has for all intents and purposes already been obselete since yabridge 2.1.0,
but the option was still available. With modern file systems supporting
reflinks, there's zero reason to use this feature anymore, and enabling it can
lead to a number of surprises. Yabridgectl will now print a warning upon
syncing when using the symlink installation method, and the feature will be
removed completely in yabridge 4.0.
### Packaging notes
- We now target VST3 SDK version 3.7.4 with git tag `v3.7.4_build_25-patched`.
+14
View File
@@ -231,6 +231,20 @@ pub fn do_sync(config: &mut Config, options: &SyncOptions) -> Result<()> {
None => None,
};
if config.method == InstallationMethod::Symlink {
eprintln!(
"{}",
utils::wrap(&format!(
"{}: The symlink-based installation method is currently active. This \
will likely result in unexpected behavior, and the feature will be removed \
entirely in a later version of yabridgectl. You can revert back \
to the copy-based installation method by running '{}'.\n",
"WARNING".yellow().bold(),
"yabridgectl set --method=copy".bright_white()
))
);
}
if let Some((libyabridge_vst3_path, _)) = &files.libyabridge_vst3 {
println!("Setting up VST2 and VST3 plugins using:");
println!("- {}", files.libyabridge_vst2.display());
+2
View File
@@ -97,6 +97,8 @@ pub enum InstallationMethod {
/// This will create a symlink to `libyabridge-{vst2,vst3}.so` for every VST2 plugin `.dll` file
/// or VST3 module in the plugin directories. Now that yabridge also searches in
/// `~/.local/share/yabridge` since yabridge 2.1 this option is not really needed anymore.
///
/// TODO: This feature has been deprecated, remove it in yabridge 4.0
Symlink,
}
+6 -3
View File
@@ -119,15 +119,18 @@ fn main() -> Result<()> {
)
.subcommand(
App::new("set")
.about("Change the installation method or yabridge path (advanced)")
.about("Change the yabridge path (advanced)")
.display_order(200)
.setting(AppSettings::ArgRequiredElseHelp)
.arg(
Arg::new("method")
.long("method")
.about("The installation method to use")
.about("The installation method to use (deprecated)")
.long_about(&format!(
"The installation method to use. \
"This feature has been deprecated in yabridgectl 3.7.1 and should \
not be used anymore. \
\n\n\
The installation method to use. \
'{}' works in every situation but it requires you to modify your PATH \
environment variable so yabridge is able to find 'yabridge-host.exe'. \
'yabridgectl sync' whenever you update yabridge. You'll also have to \