mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-17 09:34:36 +00:00
yabridge, yabridgectl: 3.6.0 → 3.7.0
This commit is contained in:
parent
47b35f569e
commit
6a24520028
@ -1,96 +1,81 @@
|
||||
{ lib
|
||||
, multiStdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, substituteAll
|
||||
, pkgsi686Linux
|
||||
, libnotify
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, wine
|
||||
, boost
|
||||
, libxcb
|
||||
, pkgsi686Linux
|
||||
, nix-update-script
|
||||
}:
|
||||
|
||||
let
|
||||
# Derived from subprojects/bitsery.wrap
|
||||
bitsery = rec {
|
||||
version = "5.2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "fraillt";
|
||||
repo = "bitsery";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Bxdtjn2v2lP2lCnvjzmct6QHT7FpwmXoSZtd2oEFS4w=";
|
||||
};
|
||||
bitsery = fetchFromGitHub {
|
||||
owner = "fraillt";
|
||||
repo = "bitsery";
|
||||
rev = "c0fc083c9de805e5825d7553507569febf6a6f93";
|
||||
sha256 = "sha256-VwzVtxt+E/SVcxqIJw8BKPO2q7bu/hkhY+nB7FHrZpY=";
|
||||
};
|
||||
|
||||
# Derived from subprojects/function2.wrap
|
||||
function2 = rec {
|
||||
version = "4.1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Naios";
|
||||
repo = "function2";
|
||||
rev = version;
|
||||
hash = "sha256-JceZU8ZvtYhFheh8BjMvjjZty4hcYxHEK+IIo5X4eSk=";
|
||||
};
|
||||
function2 = fetchFromGitHub {
|
||||
owner = "Naios";
|
||||
repo = "function2";
|
||||
rev = "02ca99831de59c7c3a4b834789260253cace0ced";
|
||||
sha256 = "sha256-wrt+fCcM6YD4ZRZYvqqB+fNakCNmltdPZKlNkPLtgMs=";
|
||||
};
|
||||
|
||||
# Derived from subprojects/tomlplusplus.wrap
|
||||
tomlplusplus = rec {
|
||||
version = "2.1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "marzer";
|
||||
repo = "tomlplusplus";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-i6yAEqwkinkPEzzb6ynXytS1SEOUDwi8SixMf62NVzs=";
|
||||
};
|
||||
tomlplusplus = fetchFromGitHub {
|
||||
owner = "marzer";
|
||||
repo = "tomlplusplus";
|
||||
rev = "47216c8a73d77e7431ec536fb3e251aed06cc420";
|
||||
sha256 = "sha256-cwAzWu5j3ch/56a6JmEoKCsxVNTk6tiZswNdNT6qzX0=";
|
||||
};
|
||||
|
||||
# Derived from vst3.wrap
|
||||
vst3 = rec {
|
||||
version = "3.7.3_build_20-patched";
|
||||
src = fetchFromGitHub {
|
||||
owner = "robbert-vdh";
|
||||
repo = "vst3sdk";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-m2y7No7BNbIjLNgdAqIAEr6UuAZZ/wwM2+iPWKK17gQ=";
|
||||
};
|
||||
vst3 = fetchFromGitHub {
|
||||
owner = "robbert-vdh";
|
||||
repo = "vst3sdk";
|
||||
rev = "v3.7.3_build_20-patched";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-m2y7No7BNbIjLNgdAqIAEr6UuAZZ/wwM2+iPWKK17gQ=";
|
||||
};
|
||||
in multiStdenv.mkDerivation rec {
|
||||
pname = "yabridge";
|
||||
version = "3.6.0";
|
||||
version = "3.7.0";
|
||||
|
||||
# NOTE: Also update yabridgectl's cargoHash when this is updated
|
||||
src = fetchFromGitHub {
|
||||
owner = "robbert-vdh";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-lgSkZ0i2DojP6HXJP3cC5FUtfv7R/nsSiHT60bPSyLc=";
|
||||
sha256 = "sha256-dz7kScNrVUsjokJntzUCJzDIboqi3vQI+RpXl0UFmUQ=";
|
||||
};
|
||||
|
||||
# Unpack subproject sources
|
||||
postUnpack = ''(
|
||||
cd "$sourceRoot/subprojects"
|
||||
cp -R --no-preserve=mode,ownership ${bitsery.src} bitsery-${bitsery.version}
|
||||
tar -xf bitsery-patch-${bitsery.version}.tar.xz
|
||||
cp -R --no-preserve=mode,ownership ${function2.src} function2-${function2.version}
|
||||
tar -xf function2-patch-${function2.version}.tar.xz
|
||||
cp -R --no-preserve=mode,ownership ${tomlplusplus.src} tomlplusplus
|
||||
cp -R --no-preserve=mode,ownership ${vst3.src} vst3
|
||||
cp -R --no-preserve=mode,ownership ${bitsery} bitsery
|
||||
cp packagefiles/bitsery/* bitsery
|
||||
cp -R --no-preserve=mode,ownership ${function2} function2
|
||||
cp packagefiles/function2/* function2
|
||||
cp -R --no-preserve=mode,ownership ${tomlplusplus} tomlplusplus
|
||||
cp -R --no-preserve=mode,ownership ${vst3} vst3
|
||||
)'';
|
||||
|
||||
patches = [
|
||||
# Hard code wine path so wine version is correct in logs
|
||||
# Hard code bitbridge & runtime dependencies
|
||||
(substituteAll {
|
||||
src = ./hardcode-wine.patch;
|
||||
inherit wine;
|
||||
})
|
||||
# Remove with next yabridge update
|
||||
(fetchpatch {
|
||||
name = "fix-for-wine-6.20.patch";
|
||||
url = "https://github.com/robbert-vdh/yabridge/commit/5be149cb525a638f7fc3adf84918c8239ee50ecf.patch";
|
||||
sha256 = "sha256-x/gfn4mKZIGQ4M0o/0LlZF8i8wZDx/bkwf8wp0BGDBo=";
|
||||
src = ./hardcode-dependencies.patch;
|
||||
boost32 = pkgsi686Linux.boost;
|
||||
libxcb32 = pkgsi686Linux.xorg.libxcb;
|
||||
inherit libnotify wine;
|
||||
})
|
||||
];
|
||||
|
||||
@ -127,11 +112,6 @@ in multiStdenv.mkDerivation rec {
|
||||
"-Dtomlplusplus:BUILD_TESTS=disabled"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
sed -i "221s|xcb.*|xcb_32bit_dep = winegcc.find_library('xcb', dirs: [ '${lib.getLib pkgsi686Linux.xorg.libxcb}/lib', ])|" meson.build
|
||||
sed -i "199 i '${lib.getLib pkgsi686Linux.boost}/lib'," meson.build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p "$out/bin" "$out/lib"
|
||||
@ -150,6 +130,10 @@ in multiStdenv.mkDerivation rec {
|
||||
done
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
attrPath = pname;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Yet Another VST bridge, run Windows VST2 plugins under Linux";
|
||||
homepage = "https://github.com/robbert-vdh/yabridge";
|
||||
|
43
pkgs/tools/audio/yabridge/hardcode-dependencies.patch
Normal file
43
pkgs/tools/audio/yabridge/hardcode-dependencies.patch
Normal file
@ -0,0 +1,43 @@
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 8eae0442..ec0649da 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -196,6 +196,7 @@ if with_32bit_libraries or with_bitbridge
|
||||
'boost_filesystem',
|
||||
static : with_static_boost,
|
||||
dirs : [
|
||||
+ '@boost32@/lib',
|
||||
# Used by Arch based distros
|
||||
'/usr/local/lib32',
|
||||
'/usr/lib32',
|
||||
@@ -219,7 +220,7 @@ if is_64bit_system
|
||||
xcb_64bit_dep = dependency('xcb')
|
||||
endif
|
||||
if with_32bit_libraries or with_bitbridge
|
||||
- xcb_32bit_dep = winegcc.find_library('xcb')
|
||||
+ xcb_32bit_dep = winegcc.find_library('xcb', dirs: ['@libxcb32@/lib'])
|
||||
endif
|
||||
|
||||
# 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
|
||||
--- a/src/plugin/utils.cpp
|
||||
+++ b/src/plugin/utils.cpp
|
||||
@@ -107,7 +107,7 @@ std::string PluginInfo::wine_version() const {
|
||||
access(wineloader_path.c_str(), X_OK) == 0) {
|
||||
wine_path = wineloader_path;
|
||||
} else {
|
||||
- wine_path = bp::search_path("wine").string();
|
||||
+ wine_path = "@wine@/bin/wine";
|
||||
}
|
||||
|
||||
bp::ipstream output;
|
||||
@@ -436,7 +436,7 @@ Configuration load_config_for(const fs::path& yabridge_path) {
|
||||
bool send_notification(const std::string& title,
|
||||
const std::string body,
|
||||
bool append_origin) {
|
||||
- const fs::path notify_send_path = bp::search_path("notify-send");
|
||||
+ const fs::path notify_send_path = "@libnotify@/bin/notify-send";
|
||||
if (notify_send_path.empty()) {
|
||||
return false;
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp
|
||||
index 7fb7d1b3..eb227101 100644
|
||||
--- a/src/plugin/utils.cpp
|
||||
+++ b/src/plugin/utils.cpp
|
||||
@@ -105,5 +105,5 @@ std::string PluginInfo::wine_version() const {
|
||||
access(wineloader_path.c_str(), X_OK) == 0) {
|
||||
wine_path = wineloader_path;
|
||||
} else {
|
||||
- wine_path = bp::search_path("wine").string();
|
||||
+ wine_path = "@wine@/bin/wine";
|
||||
}
|
||||
|
||||
bp::ipstream output;
|
@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
src = yabridge.src;
|
||||
sourceRoot = "source/tools/yabridgectl";
|
||||
cargoHash = "sha256-20sh9yovZHqoUk+3aVs/D8SWY29FdPjX+NeJt35KfWM=";
|
||||
cargoSha256 = "sha256-/VREh/f4bAt2DXCqK0noEjn+4hcK5VZUn+gdbYbeAmk=";
|
||||
|
||||
patches = [
|
||||
# By default, yabridgectl locates libyabridge.so by using
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs
|
||||
index 6e05e34..656eef3 100644
|
||||
index bc5ccfc4..c6d119bc 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 6e05e34..656eef3 100644
|
||||
use std::path::{Path, PathBuf};
|
||||
use which::which;
|
||||
use xdg::BaseDirectories;
|
||||
@@ -222,34 +223,24 @@ impl Config {
|
||||
@@ -233,34 +234,24 @@ impl Config {
|
||||
}
|
||||
}
|
||||
None => {
|
||||
@ -56,10 +56,10 @@ index 6e05e34..656eef3 100644
|
||||
));
|
||||
}
|
||||
diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs
|
||||
index ce701b8..b6b9633 100644
|
||||
index 8c273f92..432619ec 100644
|
||||
--- a/tools/yabridgectl/src/main.rs
|
||||
+++ b/tools/yabridgectl/src/main.rs
|
||||
@@ -150,7 +150,7 @@ fn main() -> Result<()> {
|
||||
@@ -148,7 +148,7 @@ fn main() -> Result<()> {
|
||||
.about("Path to the directory containing 'libyabridge-{vst2,vst3}.so'")
|
||||
.long_about(
|
||||
"Path to the directory containing 'libyabridge-{vst2,vst3}.so'. If this \
|
||||
|
Loading…
Reference in New Issue
Block a user