auval command (and related code) not working properly in iTerm >=3.2.8
auval -a
and command-line utilities with code such as components = AVAudioUnitComponentManager.shared().components(matching: componentDescription)
should list 3rd-party Audio Unit plugins in addition to ~50 Apple ones.
This appears to have stopped working in iTerm v3.2.8. I've tested this issue does not happen for Apple Terminal in Yosemite, High Sierra, Mojave, Catalina.
I "git-bisected" and have convinced myself that this issue is due to:
commit 2fc36054 Author: Ra************ Date: Wed Jan 30 04:12:10 2019 -0200
Move iTerm-server daemon to per-user namespace. Issue 4147 (#381)
Commenting out the following line in shell_launcher.c (attached) appears to fix the issue:
MoveOutOfAquaSession();
That line has the this comment:
// Let's move to the 'per-user' namespace! [Must be done here, just before the fork()]
The only real change to shell_launcher.c in this commit is the addition of the definition of that function and the call to it in int iterm2_server(int argc, char *const *argv)
.
- iTerm2 version: 3.2.8 and 3.2.9
- OS version: 10.13, 10.14, and 10.15
- com.googlecode.iterm2.plist
- debuglog.txt
- shell_launcher.c
Detailed steps to reproduce the problem:
- Install a 3rd-party Audio Unit plugin if you don't have any installed, e.g., https://www.tokyodawn.net/tdr-nova/
(free download under GUI photo, use AU alias in Installer dmg) - Skip to step 3 or log out and back in (even a reboot might be necessary to register the plugin).
- Check 3rd-party AU(s) are installed in Apple Terminal with
auval -a | grep -v Apple
- Open iTerm and type
auval -a [ | grep -v Apple ]
What happened: No 3rd-party plugins are listed -- only the Apple ones, about 56 of them.
What should have happened: In my case, an additional ~80 plugins should be listed.