liblsl icon indicating copy to clipboard operation
liblsl copied to clipboard

Ubuntu 24.04 LTS noble build

Open mscheltienne opened this issue 1 year ago • 5 comments

It would be nice to also get 24.04 LTS build :) The runner ubuntu-24.04 is in beta.

mscheltienne avatar Aug 27 '24 14:08 mscheltienne

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.

larsoner avatar Nov 01 '24 17:11 larsoner

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.

tstenner avatar Nov 04 '24 20:11 tstenner

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)

mscheltienne avatar Nov 13 '24 10:11 mscheltienne

@cboulay @tstenner irrespective of the discussion above, is there a timeline of releasing liblsl ubuntu 24.04 builds?

sappelhoff avatar Apr 16 '25 13:04 sappelhoff

I have added a target for Ubuntu 24.04 and removed the retired 20.04 runner. The new binaries will be released with the next rekease.

The current master has a new legacy serialization implementation (with unit tests checking that it's producing and parsing the exact byte sequences as before), but that would be strictly a new minor release, not just a patch release.

tstenner avatar Apr 18 '25 15:04 tstenner