scopehal-apps icon indicating copy to clipboard operation
scopehal-apps copied to clipboard

Binary v0.1 for Ubuntu 22.04 (Jammy Jellyfish) can not be installed due to libc6 version 2.36-9 dependency.

Open CybEng opened this issue 4 months ago • 10 comments

The binary ngscopeclient-ubuntu-22.04-amd64-v0.1.deb for Ubuntu 22.04 (Jammy Jellyfish) can not be installed as it depends on libc6 version >=2.36-9 however the current official libc6 version for Ubuntu 22.04 is 2.35-0 per https://launchpad.net/ubuntu/jammy/+package/libc6.

CybEng avatar Sep 13 '25 08:09 CybEng

It compiles and runs fine on 22.04 but it looks like we hard coded 2.36-9 in the .deb generator code.

The full dependency list we have now is

set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.36-9), libpng16-16(>= 1.6.39-2), libsigc++-2.0-0v5 (>= 2.12.0-1), libyaml-cpp0.7(>= 0.7.0), libgomp1(>= 12.2.0), libvulkan1(>= 1.3.239), libglfw3(>= 3.3.8), libgtk-3-0(>= 3.24.38), zlib1g(>= 1.2.13), libhidapi-hidraw0(>= 0.13.1), liblxi1(>= 1.18), libtirpc3 (>= 1.3.3)" )

Can you check what the correct versions of all of these for 22.04 is and I'll update? This list was generated on Debian Bookworm and I thought 22.04 was the same or older, but I guess not.. Oops.

We're planning a 0.1.1 maintenance release in the next couple weeks to fix some other small bugs found post release and I'll try to lump this in with it.

azonenberg avatar Sep 13 '25 11:09 azonenberg

There's similar trouble in 24.04 and Debian 13.1. The .deb looks for libyaml-cpp0.7 but 0.8 is the shipping version in both.

Debian:12.12 works great if you want to use Docker:

# Base image
FROM debian:12.12
ENV DEBIAN_FRONTEND=noninteractive 
RUN apt-get update && apt-get install -y \
    git wget curl cmake pkgconf build-essential ninja-build \
    libx11-dev x11-apps libgtk-3-dev libsigc++-2.0-dev \
    libyaml-cpp-dev catch2 libglfw3-dev \
    libhidapi-dev liblxi-dev libtirpc-dev \
    libvulkan-dev glslang-tools spirv-tools

RUN apt-get upgrade -y
ENV PKG=ngscopeclient-debian-12-amd64-v0.1.deb
RUN wget https://github.com/ngscopeclient/scopehal-apps/releases/download/v0.1/${PKG}
RUN dpkg -i ${PKG} || apt-get -f install -y

# Set arguments for user creation (replace defaults with your own if needed)
ARG USERNAME=${USER}
ARG USER_UID=1000
ARG USER_GID=$USER_UID

# Install sudo
RUN apt-get update && apt-get install -y sudo

# Create the user with matching UID/GID and add to sudo
RUN groupadd --gid $USER_GID $USERNAME \
    && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
    && echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$USERNAME \
    && chmod 0440 /etc/sudoers.d/$USERNAME

# Switch to the new user
USER $USERNAME
WORKDIR /home/$USERNAME

Build:

docker build -f Dockerfile  --build-arg USERNAME=$(whoami) -t ngscope .

Running:

docker run -it --rm \
  -e DISPLAY=$DISPLAY   --device /dev/dri --group-add video \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  --name ngscope ngscope sudo ngscopeclient

snhobbs avatar Sep 15 '25 14:09 snhobbs

It compiles and runs fine on 22.04 but it looks like we hard coded 2.36-9 in the .deb generator code.

The full dependency list we have now is

set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.36-9), libpng16-16(>= 1.6.39-2), libsigc++-2.0-0v5 (>= 2.12.0-1), libyaml-cpp0.7(>= 0.7.0), libgomp1(>= 12.2.0), libvulkan1(>= 1.3.239), libglfw3(>= 3.3.8), libgtk-3-0(>= 3.24.38), zlib1g(>= 1.2.13), libhidapi-hidraw0(>= 0.13.1), liblxi1(>= 1.18), libtirpc3 (>= 1.3.3)" )

Can you check what the correct versions of all of these for 22.04 is and I'll update? This list was generated on Debian Bookworm and I thought 22.04 was the same or older, but I guess not.. Oops.

We're planning a 0.1.1 maintenance release in the next couple weeks to fix some other small bugs found post release and I'll try to lump this in with it.

The current library versions for Ubuntu 22.04.5 LTS list is : libc6 = 2.35-0 libpng16-16 = 1.6.37-3 libsigc++-2.0-0v5 = 2.10.4-2 libyaml-cpp0.7 = 0.7.0 libgomp1 = 12.3.0-1 libvulkan1 = 1.3.204.1-2 libglfw3 = 3.3.6-1 libgtk-3-0 = 3.24.33-1 zlib1g = 1:1.2.11 libhidapi-hidraw0 = 0.11.2-1 liblxi1 = 1.16-1 libtirpc3 = 1.3.2-2

CybEng avatar Sep 17 '25 15:09 CybEng

As of a2baae1eca796f8e91c47689c4fb42487291e31d we now have support for distro/version specific CPack dependencies.

So far I've added the list for Debian Bookworm and Trixie but not yet updated for Ubuntu.

I'm on the road for work right now and don't have easy access to a Debian 13 box to test on; @snhobbs can you verify that the Trixie packages generated in CI now install properly?

azonenberg avatar Sep 21 '25 00:09 azonenberg

@CybEng latest CI package as of 7ce3ba3 should install on 22.04. Can somebody look up the 24.04 package versions and comment here? I'll add that then we can close the ticket

azonenberg avatar Sep 21 '25 01:09 azonenberg

@azonenberg The latest Debian Trixie package from Github actions still depends on libyaml-cpp0.7, and doesn't install on my Debian machine:

/tmp/ngscopeclient $ unzip ngscopeclient-debian-stable-trixie-Linux-repo-package.zip 
Archive:  ngscopeclient-debian-stable-trixie-Linux-repo-package.zip
  inflating: ngscopeclient-0.1.0+v0.1-13-gd3d7b2f6-Linux.deb  
/tmp/ngscopeclient $ dpkg -I ngscopeclient-0.1.0+v0.1-13-gd3d7b2f6-Linux.deb 
 new Debian package, version 2.0.
 size 18369702 bytes: control archive=16927 bytes.
     600 bytes,    11 lines      control
   53866 bytes,   582 lines      md5sums
 Architecture: amd64
 Depends: libc6 (>= 2.36-9), libpng16-16(>= 1.6.39-2), libsigc++-2.0-0v5 (>= 2.12.0-1), libyaml-cpp0.7(>= 0.7.0), libgomp1(>= 12.2.0), libvulkan1(>= 1.3.239), libglfw3(>= 3.3.8), libgtk-3-0(>= 3.24.38), zlib1g(>= 1.2.13), libhidapi-hidraw0(>= 0.13.1), liblxi1(>= 1.18), libtirpc3 (>= 1.3.3)
 Description: Cross platform T&M remote control and signal analysis suite
 Homepage: https://www.ngscopeclient.org/
 Maintainer: Andrew Zonenberg <[email protected]>
 Package: ngscopeclient
 Priority: optional
 Section: devel
 Version: 0.1.0+v0.1-13-gd3d7b2f6
 Installed-Size: 43469

From https://github.com/ngscopeclient/scopehal-apps/actions/runs/17934839410 "Add libx11 on linux since it's now required by imgui glfw backend #150".

mastensg avatar Sep 23 '25 10:09 mastensg

The debian-stable action prints empty DISTRO_NAME and DISTRO_VER:

[...]
Using GTK version: 3.24.49
-- Linux distribution target for packaging: name , version 
-- Configuring done (1.3s)
-- Generating done (0.1s)
-- Build files have been written to: /__w/scopehal-apps/scopehal-apps/build

https://github.com/ngscopeclient/scopehal-apps/actions/runs/17934839410/job/50999007940

mastensg avatar Sep 23 '25 11:09 mastensg

I made some changes in my fork, pull request here: https://github.com/ngscopeclient/scopehal-apps/pull/901

My package for Debian Trixie depends on the correct versions: https://github.com/mastensg/scopehal-apps/actions/runs/17945048389

/tmp/ngscopeclient $ dpkg -I ./ngscopeclient-0.1.0+93eb5abc-Linux.deb
 new Debian package, version 2.0.
 size 18369808 bytes: control archive=16948 bytes.
     629 bytes,    11 lines      control
   53866 bytes,   582 lines      md5sums
 Architecture: amd64
 Depends: libc6 (>= 2.41-12), libpng16-16t64(>= 1.6.48), libsigc++-2.0-0v5 (>= 2.12.1), libyaml-cpp0.8(>= 0.8.0), libgomp1(>= 14.2.0-19), libvulkan1(>= 1.4.309.0), libglfw3(>= 3.4-3), libgtk-3-0t64(>= 3.24.49), zlib1g(>= 1:1.3.dfsg+really1.3.1-1), libhidapi-hidraw0(>= 0.14.0-1), liblxi1(>= 1.22-1), libtirpc3t64 (>= 1.3.6+ds-1)
 Description: Cross platform T&M remote control and signal analysis suite
 Homepage: https://www.ngscopeclient.org/
 Maintainer: Andrew Zonenberg <[email protected]>
 Package: ngscopeclient
 Priority: optional
 Section: devel
 Version: 0.1.0+93eb5abc
 Installed-Size: 43469

mastensg avatar Sep 23 '25 12:09 mastensg

Merged. So I think we're still waiting on 24.04 package versions to be integrated and then we can close this.

azonenberg avatar Sep 23 '25 16:09 azonenberg

Thanks!

mastensg avatar Sep 23 '25 16:09 mastensg