Audio plugin authenticating crashes the DAW

Hi, long time lurker here, finally posting. Been using NixOS for two years and getting slowly used to it.
I use my laptop mainly for audio production. Moved to NixOS because of how easy was to change system configurations according to what I needed to test.
I use mainly Bitwig, but also have Reaper installed to check stuff, like this plugin I’m using, called Neurontape 1972: This is neurontape 1972 - audiosingularity

I use to be able to make it work with yabridge/wine, but now I can’t get a GUI. I should have left my wine profile alone, but for some reason I decided to reinstall the whole profile (bad idea…). Now, I can’t authenticate the plugin on Windows/WINE.
So, I decided to go for the native Linux/NixOS route that I didn’t try a few years ago because it seemde to difficult.
I was able to patch the binary and include it on my home-manager config (module pasted below), now the plugin works and the GUI as well. But, when trying to authenticate, my DAW crashes.
I talked with the plugin developer, who was very open and willing to help. He told me that I should use reaper as test ground. I even installed a debian VM (the provided file from audiosingularity was a .deb package) to try it, to the exact same problem: when authenticating, plugin crashed the whole DAW. Tried this in Reaper, Carla and Bitwig (didn’t crash bitwig because it uses sandboxing, but it crashed the plugin sandbox).

Then, I tried in bare metal on an old POP OS install I had in a secondary drive on my laptop (it used to be my main system before moving to NixOS). Plugin works and authenticate well. Although using too much the GUI crashes the plugin as well. I don’t need the GUI at all on my everyday job, as Bitwig (which is my main DAW) provides control for each parameter, but I do need it to authenticate. Developer says the only way to authenticate is online. I tried to transfer the token generated in POP OS! to my ~/.config directory, but it doesn’t work.

I also tried disabling the firewall on the configuration.nix ( networking.firewall.enable = false; ). Still same problem. But, given that even a VM on NixOS presents the same probelm, I’m very inclined to think that either my config or some default config of NixOS (I don’t have even one line about networking on my config, no firewall rules, nothing) is creating the problem.

Any ideas?

I’m using Nixos 25.11 with the 6.18.13 zen kernel. No sure which relevant parts of my config or my hardware I could include for this…

Here’s neurontape’s module:

{ pkgs ? import  {} }:
  
  pkgs.stdenv.mkDerivation rec {pname = “neurontape-vst3”;version = “1.3”;
  
  src = ./Neurontape.so;
  
  nativeBuildInputs = [ pkgs.patchelf ];buildInputs = with pkgs; [libglvndfreetypelibxftcurlstdenv.cc.cc.lib];
  dontUnpack = true;dontBuild = true;

  installPhase = ‘’mkdir -p “$out/lib/vst3/NeuronTape.vst3/Contents/x86_64-linux”

  so="$out/lib/vst3/NeuronTape.vst3/Contents/x86_64-linux/NeuronTape.so"
  cp "$src" "$so"

  chmod u+w "$so"

  patchelf --set-rpath "${pkgs.lib.makeLibraryPath buildInputs }" "$so"
‘’;} 

This sounds like the problem might not be related to NixOS given that the same issue happens with an alternative OS using a packaged plugin.

Do you have any error logs?

1 Like

Yeah, to be clear, that the VM runs on NixOS has no impact on the VM. NixOS isn’t the (only) issue.

More likely the plugin is incompatible with modern libraries or something, given you tested it on what is presumably an ancient pop os, but we won’t get anywhere just guessing.

Sorry, it seems I wasn’t very clear on it. I did run it on bare metal afterwards, on an old installation of POP OS! 22.04 that I have on a secondary drive (it used to be my main OS before I switched to NixOS) and the plugin could very well atuthenticate. It did crash afterwards when using the GUI (which I don’t need to use for other purpose but for authenticating).

The fact that outside NixOS worked OK, but not “inside” a VM got me thinking. But It could be related with old libraries, that’s true. I should try in a VM running POP OS 22.04. I’ll do So.

But when running it on bare metal, it authenticates well.Unfortunately, there’s no logs of the host or the plugin, but I did an strace on Carla while running the plugin. This is a lot of log, and can’t paste all of it, neither here or in pastebin.
Some excerpts I find interesting:

access("/home/alejo/.nix-profile/lib/vst3/NeuronTape.vst3", F_OK) = 0 uname({sysname="Linux", nodename="nixos-aero", ...}) = 0 openat(AT_FDCWD, "/home/alejo/.nix-profile/lib/vst3/NeuronTape.vst3/Contents/x86_64-linux/NeuronTape.so", O_RDONLY|O_CLOEXEC) = 59 read(59, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 fstat(59, {st_mode=S_IFREG|0555, st_size=71785600, ...}) = 0 mmap(NULL, 71820252, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 59, 0) = 0x7f7d13a00000 mprotect(0x7f7d13ad8000, 70787072, PROT_NONE) = 0 mmap(0x7f7d13ad8000, 4456448, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 59, 0xd8000) = 0x7f7d13ad8000 mmap(0x7f7d13f18000, 65900544, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 59, 0x518000) = 0x7f7d13f18000 mmap(0x7f7d17df1000, 397312, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 59, 0x43f0000) = 0x7f7d17df1000 mmap(0x7f7d17e52000, 30648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f7d17e52000 mmap(0x7f7d17e5a000, 151552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 59, 0x4451000) = 0x7f7d17e5a000 close(59) = 0 openat(AT_FDCWD, "/nix/store/fxif0qmwsvmbhlpdyyf27z7b2n3scd86-pipewire-1.4.9-jack/lib/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/wwckb31fcbwj479g7qwcb3b7cv6416pf-libglvnd-1.7.0/lib/glibc-hwcaps/x86-64-v4/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/wwckb31fcbwj479g7qwcb3b7cv6416pf-libglvnd-1.7.0/lib/glibc-hwcaps/x86-64-v4/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/wwckb31fcbwj479g7qwcb3b7cv6416pf-libglvnd-1.7.0/lib/glibc-hwcaps/x86-64-v3/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/wwckb31fcbwj479g7qwcb3b7cv6416pf-libglvnd-1.7.0/lib/glibc-hwcaps/x86-64-v3/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/wwckb31fcbwj479g7qwcb3b7cv6416pf-libglvnd-1.7.0/lib/glibc-hwcaps/x86-64-v2/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/wwckb31fcbwj479g7qwcb3b7cv6416pf-libglvnd-1.7.0/lib/glibc-hwcaps/x86-64-v2/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/wwckb31fcbwj479g7qwcb3b7cv6416pf-libglvnd-1.7.0/lib/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/wwckb31fcbwj479g7qwcb3b7cv6416pf-libglvnd-1.7.0/lib/", {st_mode=S_IFDIR|0555, st_size=4096, ...}, 0) = 0 openat(AT_FDCWD, "/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3/lib/glibc-hwcaps/x86-64-v4/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3/lib/glibc-hwcaps/x86-64-v4/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3/lib/glibc-hwcaps/x86-64-v3/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3/lib/glibc-hwcaps/x86-64-v3/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3/lib/glibc-hwcaps/x86-64-v2/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3/lib/glibc-hwcaps/x86-64-v2/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3/lib/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3/lib/", {st_mode=S_IFDIR|0555, st_size=4096, ...}, 0) = 0 openat(AT_FDCWD, "/nix/store/i59cbsr9zwy57hp41pa3wg1cbzm0yjpr-curl-8.18.0/lib/glibc-hwcaps/x86-64-v4/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/i59cbsr9zwy57hp41pa3wg1cbzm0yjpr-curl-8.18.0/lib/glibc-hwcaps/x86-64-v4/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/i59cbsr9zwy57hp41pa3wg1cbzm0yjpr-curl-8.18.0/lib/glibc-hwcaps/x86-64-v3/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/i59cbsr9zwy57hp41pa3wg1cbzm0yjpr-curl-8.18.0/lib/glibc-hwcaps/x86-64-v3/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/i59cbsr9zwy57hp41pa3wg1cbzm0yjpr-curl-8.18.0/lib/glibc-hwcaps/x86-64-v2/libcurl.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/nix/store/i59cbsr9zwy57hp41pa3wg1cbzm0yjpr-curl-8.18.0/lib/glibc-hwcaps/x86-64-v2/", 0x7ffe381dd280, 0) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/nix/store/i59cbsr9zwy57hp41pa3wg1cbzm0yjpr-curl-8.18.0/lib/libcurl.so.4", O_RDONLY|O_CLOEXEC) = 59

Did I fail in injecting curl on the rpath?Then there’s a lot of reference to fonts and cursors.Later, a lot of iterances of something like this:

writev(71, [{iov_base="l\0\v\0\0\0\22\0\20\0\0\0", iov_len=12}, {iov_base="", iov_len=0}, {iov_base="MIT-MAGIC-COOKIE-1", iov_len=18}, {iov_base="\0\0", iov_len=2}, {iov_base="!4\341;y\16\2\221\201\331\335J\247\v\316\4", iov_len=16}, {iov_base="", iov_len=0}], 6) = 48 recvfrom(71, 0x563c09ec58b0, 8, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=71, events=POLLIN}], 1, -1)   = 1 ([{fd=71, revents=POLLIN}]) recvfrom(71, "\1\0\v\0\0\0\23\10", 8, 0, NULL, NULL) = 8 recvfrom(71, "q9\275\0\0\0\340\0\377\377\37\0\0\1\0\0\24\0\377\377\1\7\0\0  \10\377\0\0\0\0"..., 8268, 0, NULL, NULL) = 8268 poll([{fd=71, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=71, revents=POLLOUT}]) writev(71, [{iov_base="b\0\5\0\f\0\0\0BIG-REQUESTS", iov_len=20}], 1) = 20 poll([{fd=71, events=POLLIN}], 1, -1)   = 1 ([{fd=71, revents=POLLIN}]) recvmsg(71, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\1\0\0\0\0\0\1\205\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 poll([{fd=71, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=71, revents=POLLOUT}]) writev(71, [{iov_base="\205\0\1\0", iov_len=4}], 1) = 4 poll([{fd=71, events=POLLIN}], 1, -1)   = 1 ([{fd=71, revents=POLLIN}]) recvmsg(71, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\2\0\0\0\0\0\377\377?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(71, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=71, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=71, revents=POLLOUT}]) writev(71, [{iov_base="7\0\5\0\0\0\340\0\f\4\0\0\10\0\0\0\377\377\377\0\24\0\6\0\f\4\0\0\27\0\0\0"..., iov_len=44}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 44 poll([{fd=71, events=POLLIN}], 1, -1)   = 1 ([{fd=71, revents=POLLIN}]) recvmsg(71, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\10\4\0 \0\0\0\37\0\0\0\0\0\0\0}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 160 recvmsg(71, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=71, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=71, revents=POLLOUT}]) writev(71, [{iov_base="b\0\5\0\t\0\340\0", iov_len=8}, {iov_base="XKEYBOARD", iov_len=9}, {iov_base="\0\0\0", iov_len=3}], 3) = 20 poll([{fd=71, events=POLLIN}], 1, -1)   = 1 ([{fd=71, revents=POLLIN}]) recvmsg(71, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\5\0\0\0\0\0\1\207U\211\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(71, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable) recvmsg(71, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=71, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=71, revents=POLLOUT}]) writev(71, [{iov_base="\207\0\2\0\1\0\0\0", iov_len=8}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 8 poll([{fd=71, events=POLLIN}], 1, -1)   = 1 ([{fd=71, revents=POLLIN}]) recvmsg(71, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\1\6\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(71, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable) recvmsg(71, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=71, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=71, revents=POLLOUT}]) writev(71, [{iov_base="\2\0\4\0\f\4\0\0\0\10\0\0\0\0\10\0\1\0\t\0\1\0\340\0\f\4\0\0\0\0\0\0"..., iov_len=56}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 56 poll([{fd=71, events=POLLIN}], 1, -1)   = 1 ([{fd=71, revents=POLLIN}]) recvmsg(71, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\20\0\10\0\f\4\0\0\1\0\340\0\0\0\0\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 64 recvmsg(71, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=71, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=71, revents=POLLOUT}]) writev(71, [{iov_base="\20\1\5\0\f\0\0\0WM_PROTOCOLS", iov_len=20}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 20 poll([{fd=71, events=POLLIN}], 1, -1)   = 1 ([{fd=71, revents=POLLIN}]) recvmsg(71, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\n\0\0\0\0\0\375\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32  




recvmsg(61, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(61, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
futex(0x563c0960a0cc, FUTEX_WAKE_PRIVATE, 2147483647) = 1
ppoll([{fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=16, events=POLLIN}, {fd=30, events=POLLIN}], 4, {tv_sec=0, tv_nsec=10000000}, NULL, 8) = 0 (Timeout)
ppoll([{fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=16, events=POLLIN}, {fd=30, events=POLLIN}], 4, {tv_sec=0, tv_nsec=9000000}, NULL, 8) = 0 (Timeout)
poll([{fd=52, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
poll([{fd=53, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
poll([{fd=37, events=POLLIN}, {fd=60, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}], 4, 0) = 3 ([{fd=37, revents=POLLIN}, {fd=60, revents=POLLIN}, {fd=61, revents=POLLIN}])
read(37, "\377", 1)                     = 1
futex(0x563c09674e9c, FUTEX_WAKE_PRIVATE, 2147483647) = 1
read(60, "\377", 1)                     = 1
recvmsg(61, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="A\0A\2\24\0\240\0\3\0\202\0\25\0\240\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(61, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(61, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(61, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
futex(0x563c0960a0c8, FUTEX_WAKE_PRIVATE, 2147483647) = 1
recvmsg(61, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
ppoll([{fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=16, events=POLLIN}, {fd=30, events=POLLIN}], 4, {tv_sec=0, tv_nsec=20000000}, NULL, 8) = 0 (Timeout)
poll([{fd=52, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)

This is the end of the log:

pselect6(75, [], [74], [], {tv_sec=9, tv_nsec=997000000}, NULL) = 1 (out [74], left {tv_sec=9, tv_nsec=969524889})
rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f7da9c419c0}, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f7da9c419c0}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f7da9c419c0}, NULL, 8) = 0
poll([{fd=74, events=POLLPRI|POLLOUT|POLLWRNORM}], 1, 0) = 1 ([{fd=74, revents=POLLOUT|POLLWRNORM}])
getsockopt(74, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
getsockname(74, {sa_family=AF_INET, sin_port=htons(52376), sin_addr=inet_addr("192.168.1.176")}, [128 => 16]) = 0
futex(0x7f7d17e58048, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d17e57f6c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d17e57f60, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d17e57f58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getpid()                                = 16546
getrandom("\xf4\x7d\x43\xef\x99\x92\x5e\xbb\x4a\x5f\x83\xfb\xd6\x8e\xf2\xbc\x46\xe5\x25\xae\x2c\x90\xec\x8e\xd0\x5e\xcc\x68\x85\x11\x41\x63", 32, 0) = 32
getpid()                                = 16546
futex(0x7f7d17e58018, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d9787acd8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d981ff7d8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d9787ae44, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d9787ae5c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d9787ae80, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getpid()                                = 16546
getrandom("\x59\x3c\xd3\xeb\x8e\x13\xdc\x3a\xd8\x8a\x3d\x98\x05\xbc\xa4\xd7\x68\x08\x6e\x8d\xb9\xac\x60\x61\x89\x0f\x83\xe6\x50\xe9\x5d\x1e"..., 48, 0) = 48
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
futex(0x7f7d17e57e84, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d17e57e7c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d17e57e70, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7d17e57f50, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
getpid()                                = 16546
openat(AT_FDCWD, "/etc/ssl/certs/ca-certificates.crt", O_RDONLY) = 75
fstat(75, {st_mode=S_IFREG|0555, st_size=530886, ...}) = 0
read(75, "ACCVRAIZ1\n-----BEGIN CERTIFICATE"..., 4096) = 4096
read(75, "A1UdDgQWBBTSh7Tj3zcnk1X2\nVuqB5Tb"..., 4096) = 4096
read(75, "I1NOHZnjrDIbzAz\nWHFctPVrbtQBULgT"..., 4096) = 4096
read(75, "NgxwruJ4dfkUyYA8H6XdYfp9q\nyGFOti"..., 4096) = 4096
read(75, "FuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC"..., 4096) = 4096
read(75, "VBAoMC0FmZmlybVRydXN0MR8wHQYDVQQ"..., 4096) = 4096
read(75, "LVWREZY9nZOIG41w3SfYvm4SEHi3y\nYJ"..., 4096) = 4096
read(75, "t58D2kTiKV1NpgIpsbfrM7jWNa3Pt668"..., 4096) = 4096
read(75, "cmzU5L/qw\nIFAGbHrQgLKm+a/sRxmPUD"..., 4096) = 4096
read(75, "8mmpJ5581LxedhpxfL86kS\nk5Nrp+gvU"..., 4096) = 4096
read(75, "BhMC\nREUwggEiMA0GCSqGSIb3DQEBAQU"..., 4096) = 4096
read(75, "8EBAMCAYYwCgYIKoZIzj0EAwMD\naAAwZ"..., 4096) = 4096
read(75, "Xz4U2OLJxpAmMkokIiEjxQGMYsluMWuP"..., 4096) = 4096
read(75, "q06mIqqdXuYnin1oKaPnirja\nEbsXLZm"..., 4096) = 4096
read(75, "pDyRhySsTphzvq3Rp4Dhtczbu33RYx2N"..., 4096) = 4096
read(75, "F/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEw"..., 4096) = 4096
read(75, "o3YBkBjqhHk/sM3nhRS\nP/TizPJhk9H9"..., 4096) = 4096
read(75, "MLrwjEsCsLa3\nAgMBAAGjQjBAMA8GA1U"..., 4096) = 4096
read(75, "AQH/MA4GA1Ud\nDwEB/wQEAwIBBjAdBgN"..., 4096) = 4096
read(75, "TADAQH/MA4GA1UdDwEB/wQEAwIBBjAd\n"..., 4096) = 4096
read(75, "IICiTCCAg+gAwIBAgIQH0evqmIAcFBUT"..., 4096) = 4096
read(75, "ILaZRfyHB\nNVOFBkpdn627G190\n-----"..., 4096) = 4096
read(75, "dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAx"..., 4096) = 4096
read(75, "J5ayGPhxLGWkv8YbWkj4Sti993iNi+RB"..., 4096) = 4096
read(75, "/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQ"..., 4096) = 4096
read(75, ".7.3.4 (RFC5280: emailProtection"..., 4096) = 4096
read(75, "3WhcNMjkxMjMxMTIwNzM3\nWjB+MQswCQ"..., 4096) = 4096
read(75, "HMNUuctHFY9rnY3lE\nfktjJImGLjQ/KU"..., 4096) = 4096
read(75, "AQUAA4ICDwAwggIKAoICAQDRLY67tzbq"..., 4096) = 4096
read(75, "MMH9ZzkXpc2AV\nmkzw5l4lIhVtwodZ0L"..., 4096) = 4096
read(75, "hTnCwuwwIDAQABo0IwQDAPBgNVHRMBAf"..., 4096) = 4096
read(75, "QUR9DnsSL/nSz12Vdgs7GxcJXvYXowDQ"..., 4096) = 4096
read(75, "ZO0Flax7mNCq7dPYS\nzuht56vkPE4/RA"..., 4096) = 4096
read(75, "BDQUAA4ICAQA097N3U9swFrktpSHxQCF"..., 4096) = 4096
read(75, "jgY4wgYswDwYDVR0TAQH/BAUwAwEB/zA"..., 4096) = 4096
read(75, "CGbmxkYXA6Ly9kaXJlY3RvcnkuZC10cn"..., 4096) = 4096
read(75, "AxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDA"..., 4096) = 4096
read(75, "PEM block omitted: this certific"..., 4096) = 4096
read(75, "qMgsEdP9oCl+zt6U9oLgWLRORSXxIvI9"..., 4096) = 4096
read(75, "wk8lOa4JiwgvT2zKIn3X/8i4peEH+ll7"..., 4096) = 4096
read(75, "1.5.5.7.3.4 (RFC5280: emailProte"..., 4096) = 4096
read(75, "aFw0zODAxMTUxMjAwMDBaMGExCzAJBgN"..., 4096) = 4096
read(75, "BTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd"..., 4096) = 4096
read(75, "MkZrDbnHY0iNdkk2CQm1cYZX2kfWn\nCP"..., 4096) = 4096
read(75, "CATE-----\nMIIFZjCCA06gAwIBAgIQCP"..., 4096) = 4096
read(75, "ChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL"..., 4096) = 4096
read(75, "omitted: this certificate is not"..., 4096) = 4096
read(75, "Km9I35RMOVcF7sN5EUFo\nNu3s/poBj6E"..., 4096) = 4096
read(75, "IwggEiMA0GCSqGSIb3DQEBAQUAA4IBDw"..., 4096) = 4096
read(75, "LzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0"..., 4096) = 4096
read(75, "x9hoh49pwBiFYFIeFd3mqgnkC\nAwEAAa"..., 4096) = 4096
read(75, "f8EBAMC\nAQYwHQYDVR0OBBYEFNwuH9Fh"..., 4096) = 4096
read(75, "f8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/"..., 4096) = 4096
read(75, "vcNAQEMBQADggIBAB/Kzt3H\nvqGf2SdM"..., 4096) = 4096
read(75, "OHMymKoYTey8chWEGJ6ladK0uFxh1MJ7"..., 4096) = 4096
read(75, "QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxT"..., 4096) = 4096
read(75, "9zJrlAGomecs\nMx86OyXShkDOOyyGeMl"..., 4096) = 4096
read(75, "cay/xTOURQh7ErdG1rG1ofuTToVBu1k\n"..., 4096) = 4096
read(75, "sHTUB+JMWKmIJ5jqSngiCN\nI/onccnfx"..., 4096) = 4096
read(75, " CERTIFICATE-----\n\nGlobalSign Se"..., 4096) = 4096
read(75, "TIzMTIz\nNTk1OVowgYMxCzAJBgNVBAYT"..., 4096) = 4096
read(75, "9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNT"..., 4096) = 4096
read(75, "gQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFM"..., 4096) = 4096
read(75, "lvbnMgRUNDIFJv\nb3RDQSAyMDE1MB4XD"..., 4096) = 4096
read(75, "XZWK0\nvm9qp/UsQu0yrbYhnr68\n-----"..., 4096) = 4096
read(75, "anRbEEV16rCf0OY1/k6fi8wr\nkkVbbiV"..., 4096) = 4096
read(75, "mc1X5VTMbeRRAc6uk7nwNT7u56AQIWeN"..., 4096) = 4096
read(75, "HpFKVK7q4+63SM1N95R1NbdWhscdCb+Z"..., 4096) = 4096
read(75, "1\n-----BEGIN CERTIFICATE-----\nMI"..., 4096) = 4096
read(75, "06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAA"..., 4096) = 4096
read(75, "BAQsFADA4\nMQswCQYDVQQGEwJFUzEUMB"..., 4096) = 4096
read(75, "8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDa"..., 4096) = 4096
read(75, "wUAMIGCMQswCQYD\nVQQGEwJIVTERMA8G"..., 4096) = 4096
read(75, "C0zVJhUXAoP8XFWvLJ\njEm7FFtNyP9nT"..., 4096) = 4096
read(75, "ViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+"..., 4096) = 4096
read(75, "vbGQpIEbFkXRhbsO6c8OtdHbDoW55MII"..., 4096) = 4096
read(75, "JU1RFIEZvdW5k\nYXRpb24xITAfBgNVBA"..., 4096) = 4096
read(75, "MSQ29weXJpZ2h0IChjKSAyMDA1MSIwIA"..., 4096) = 4096
read(75, "Qsw\nCQYDVQQGEwJDSDEQMA4GA1UEChMH"..., 4096) = 4096
read(75, "xNzI3NDRaFw00\nMjAxMTIxNzI3NDRaME"..., 4096) = 4096
read(75, "b1ZhZGlzIFJv\nb3QgQ0EgMjAeFw0wNjE"..., 4096) = 4096
read(75, "ZGlzIExpbWl0ZWQxHjAc\nBgNVBAMTFVF"..., 4096) = 4096
read(75, "7aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q"..., 4096) = 4096
read(75, "dxGYFg\nu/BYpbWcC/ePIlUnwEsBbTuZD"..., 4096) = 4096
read(75, "LMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1N"..., 4096) = 4096
read(75, "dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNB"..., 4096) = 4096
read(75, "ATE-----\n\nSSL.com Root Certifica"..., 4096) = 4096
read(75, "cmj87w7G6KVwuA406ywKBjYZC6VWg3dG"..., 4096) = 4096
read(75, "JF4AIxAMeN\nb0Igj762TVntd00pxCAgR"..., 4096) = 4096
read(75, "bu7nzifmPQdjH5FCQNYA+HLhNkNPU\n98"..., 4096) = 4096
read(75, "-----BEGIN TRUSTED CERTIFICATE--"..., 4096) = 4096
read(75, "EwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OT"..., 4096) = 4096
read(75, "MDgwNTM2NDZaMFExCzAJBgNVBAYTAkpQ"..., 4096) = 4096
read(75, "iWA3rF7iDeM9ovnhp6\ndB7h7sxaOgTds"..., 4096) = 4096
read(75, "PCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9"..., 4096) = 4096
read(75, "RW8cW\n-----END CERTIFICATE-----\n"..., 4096) = 4096
read(75, "qGplrz95Zajv8bxbXH/1KEOtOghY6rCc"..., 4096) = 4096
read(75, "HWrdOWnk4Xl4vs4Fv6EM\n94B7IWcnMFk"..., 4096) = 4096
read(75, "5t78w+wfkPECAwEAAaNCMEAwDwYDVR0T"..., 4096) = 4096
read(75, "3Wipy+dpikJKVyh+c\n6bM8K8vzARO/Ws"..., 4096) = 4096
read(75, "sGA1UE\nAxMkU3dpc3NTaWduIFJTQSBTT"..., 4096) = 4096
read(75, "TATBgNVBAoTDFN3aXNzU2lnbiBBRzErM"..., 4096) = 4096
read(75, "UKrERLMjfTlH6VJi\n1hKTXrcxlkIF+3a"..., 4096) = 4096
read(75, "2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKE"..., 4096) = 4096
read(75, "vcNAQEMBQADggIB\nAGSPesRiDrWIzLjH"..., 4096) = 4096
read(75, "pWkEmQqSpqsn\nLhpNgb+E1HAerUf+/Uq"..., 4096) = 4096
read(75, "A1UdDgQWBBSSjNQ20VtHU8RxDYTdZCr1"..., 4096) = 4096
read(75, "vbSBTZWN1cml0eSBHbWJIMS0wKwYD\nVQ"..., 4096) = 4096
read(75, "zY2hlIFRlbGVrb20gU2VjdXJpdHkgR21"..., 4096) = 4096
read(75, "w1GLLXrtm\n9S3ul0A8Yute1hTWjOKWi0"..., 4096) = 4096
read(75, "xdwNBed\nY2gea+zDTYa4EzAvXUYNR0PV"..., 4096) = 4096
read(75, "SwxN8PzuKlts8oB4KtItUsiRnDe+Cy74"..., 4096) = 4096
read(75, "yFq2\nXFNFV1pF1AWZLy4jVe5jaN/TG3i"..., 4096) = 4096
read(75, "0yNDA1MTUwNTQyMDFaFw00NDA1MTUwNT"..., 4096) = 4096
read(75, "srp10Zy9U+5RjmOMmSoPGlbYJ\nQ1DNDX"..., 4096) = 4096
read(75, "DCCAgoCggIB\nALldUShLPDeS0YLOvR29"..., 4096) = 4096
read(75, "lIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZ"..., 4096) = 4096
read(75, "BgNVBAMMEFR1blRydXN0IFJv\nb3QgQ0E"..., 4096) = 4096
read(75, "sFADBH\nMQswCQYDVQQGEwJDTjERMA8GA"..., 4096) = 4096
read(75, "gNVBAYTAkNOMREwDwYDVQQKDAhVbmlUc"..., 4096) = 4096
read(75, "A1UEBhMCVVMxEzARBgNVBAgT\nCk5ldyB"..., 4096) = 4096
read(75, "AQwFADCB\niDELMAkGA1UEBhMCVVMxEzA"..., 4096) = 4096
read(75, "5k\nYXRpb24xITAfBgNVBAMMGE9JU1RFI"..., 4096) = 4096
read(75, "PADCCAQoCggEBALczuX7IJUqOtdu0KBu"..., 4096) = 4096
read(75, "0: serverAuth key usage)\n-----BE"..., 4096) = 4096
read(75, "0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMj"..., 4096) = 4096
read(75, "4EnycqDAKBggqhkjOPQQDAzBaMQswCQY"..., 4096) = 4096
read(75, "Az+upufGZ\nBczYKCFK83M0UYRWEPWgTy"..., 4096) = 4096
read(75, "cyBMaW1pdGVkMRwwGgYDVQQDExNlbVNp"..., 4096) = 4096
read(75, "qWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv"..., 4096) = 2502
read(75, "", 4096)                      = 0
close(75)                               = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x89} ---
+++ killed by SIGSEGV (core dumped) +++

No. It is picked up here:

It is failing for another reason.

The theory saying it works on Pop OS because it had old libraries is interesting. Maybe you can try consuming a legacy channel as nixpkgs in the config and seeing if it magically works. It could still be that not enough stuff is emulating an older os, but it is a cheap experiment to perform, just changing the nixpgs import.

That’s both not quite that easy (since everything will be downgraded that’s sure to cause you issues with state) and overkill; You can just change the nixpkgs version of the closure you’re using to run this plugin.

I also think it’s pointless now we have logs that show the libraries are being picked up correctly - which also incidentally all but confirms the issue is not NixOS, the only practical difference is file paths.

We’d need to figure out why it’s segfaulting after reading SSL certs, which is really difficult without source code.

2 Likes

I just tried in some more quickemu vms. Pop OS! 22.04 was the last one and it crashed as well. Maybe this plugins doesn’t get along very well with VMs… But I can confirm it didn’t work on the very same system it worked on bare metal. I’ll keep trying installing on some USB and booting from there to see if it works with Pop OS 22.04.

As you say, it’ll be quite difficult to debug this on my own. I’ll keep trying with some other system but I think unless the plugin developer helps me, I’m cooked. Thanks a lot to everybody for helping.

The developer told me the plugin is compiled on Mint 21. Which is based on the same Ubuntu 22.04 as Pop OS 22.04. In both of them (running in bare metal on a ventoy USB) I could make the plugin solidly authenticate and work OK.
Meaning, it’s probably a problem with the libraries.

I queried the required libraries on mint:
libglvnd: 1.4.0-1
libfreetype6: 2.11.1
libxft2: 2.3.4-1
curl: 7.81.0

I think I could try to patch the rpath with this exact dependencies. Is that reasonable? Even so, it would be a little out of my scope to create a module like that…