Open mscheltienne opened 2 months ago
Is there a reason there are different .deb
files for different versions of Linux? In theory I think you could use something like cibuildwheel
to compile against sufficiently old dependencies that you end up compatible with all non-EOL Linux distributions. This approach is being used in https://github.com/mne-tools/mne-lsl/pull/351 to bundle liblsl
with MNE-LSL and could probably be adapted here without too much work. (I've previously repurposed cibuildwheel
to make application binaries for openmeeg
and it wasn't too bad!)
I think this approach would work for all the variants you currently release for, plus other stuff like ppc64le and macOS arm64 without much work hopefully.
Some older ubuntu versions didn't have a recent pugixml version, so these were built against a vendored pugixml. Some newer compiler versions have a mature C++ stdlib so we don't have to fall back to Boost.
Comparing the build on the manylinux
image and the version on the release page:
Release page
mscheltienne@D-1027100163:~/git/mscheltienne/mne-lsl/src/mne_lsl/lsl/lib$ ldd /lib/liblsl.so
linux-vdso.so.1 (0x00007ffd7c372000)
libpugixml.so.1 => /lib/x86_64-linux-gnu/libpugixml.so.1 (0x00007f9da756d000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9da7200000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9da7484000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9da71d2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9da6e00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9da76a8000)
Build on manylinux
mscheltienne@D-1027100163:~/git/mscheltienne/mne-lsl/src/mne_lsl/lsl/lib$ ldd liblsl.so.1.16.2
linux-vdso.so.1 (0x00007fff14fa9000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x0000784f06e00000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x0000784f07088000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x0000784f06dd2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x0000784f06a00000)
/lib64/ld-linux-x86-64.so.2 (0x0000784f07290000)
libpugixml.so.1 => /lib/x86_64-linux-gnu/libpugixml.so.1 (0x00007f9da756d000)
is entirely missing; and it works without binutils libpugixml-dev
which seems to differ from:
mscheltienne@D-1027100163:~/Downloads$ dpkg --info liblsl-1.16.2-jammy_amd64.deb | grep Depends
Depends: libc6 (>= 2.34), libgcc-s1 (>= 3.0), libpugixml1v5 (>= 1.6), libstdc++6 (>= 12)
It would be nice to also get 24.04 LTS build :) The runner
ubuntu-24.04
is in beta.