Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bespokesynth: Modernise, 1.2.1 -> 1.3.0 #367767

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

OPNA2608
Copy link
Contributor

Closes #367731

https://github.com/BespokeSynth/BespokeSynth/releases/tag/v1.3.0

  • Modernise the derivation abit
  • Add a passthru.updateScript for automatic / easier updates
  • 1.2.1 -> 1.3.0
  • Set flags to use less vendored dependencies
  • Remove some build-time system inspection
  • Migrate to by-name

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

- rec -> finalAttrs
- lib.cmakeFeature instead of manual CMake flag writing
- meta-wide "with lib" begone

Evals to the same output.
- Enable strictDeps, adjust for resulting changes
So updates can be sent automatically by r-ryantm, assuming that no other adjustments are needed to build it.
Noticed while testing on Darwin, didn't expect to see my machine's hostname in the logs.
@PowerUser64
Copy link
Contributor

One thing I'd like to do in this update is incorporate the patch to JUCE suggested in this comment: BespokeSynth/BespokeSynth#1405 (comment).

This patch makes it so bespoke behaves nicely with the modern PipeWire linux audio backend while using the JACK audio backend in bespoke. Without it, bespoke crashes with the JACK backend, and the alternative is to use the ALSA backend that only shows 2 inputs ports and 2 output ports in PipeWire.

I've been using this patch for the last few months and it has worked well. Although, I've had to modify it slightly since bespoke's project structure has changed since the patch's original author created it. Here's my copy of the patch:

diff --git a/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp b/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
index 4cce7016f..25554a7cd 100644
--- a/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
+++ b/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
@@ -291,7 +291,6 @@ public:
         juce::jack_on_info_shutdown (client, infoShutdownCallback, this);
         juce::jack_set_xrun_callback (client, xrunCallback, this);
         juce::jack_activate (client);
-        deviceIsOpen = true;
 
         if (! inputChannels.isZero())
         {
@@ -336,6 +335,7 @@ public:
         }
 
         updateActivePorts();
+        deviceIsOpen = true;
 
         return lastError;
     }
@@ -525,7 +525,8 @@ private:
     static void portConnectCallback (jack_port_id_t, jack_port_id_t, int, void* arg)
     {
         if (JackAudioIODevice* device = static_cast<JackAudioIODevice*> (arg))
-            device->mainThreadDispatcher.updateActivePorts();
+            if (device->isOpen())
+                device->mainThreadDispatcher.updateActivePorts();
     }
 
     static void threadInitCallback (void* /* callbackArgument */)

juce-patch.zip
(You may need to download and extract the zip instead of copy/pasting the patch, since the line endings are a bit wonky.)

I wish we didn't have to use a patch to do this, but the JUCE team doesn't accept pull requests, so we can't fix it upstream.

@ofborg ofborg bot requested review from tobiasBora, astro and PowerUser64 December 24, 2024 12:52
@ofborg ofborg bot added the 11.by: package-maintainer This PR was created by the maintainer of the package it changes label Dec 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10.rebuild-darwin: 1-10 10.rebuild-linux: 1-10 11.by: package-maintainer This PR was created by the maintainer of the package it changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update request: bespokesynth 1.2.1 → 1.3.0
2 participants