Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fedistar can't be opened on Linux Mint Debian Edition 6 (LMDE 6) #1717

Open
SpeeQz1 opened this issue Jan 7, 2025 · 8 comments
Open

Fedistar can't be opened on Linux Mint Debian Edition 6 (LMDE 6) #1717

SpeeQz1 opened this issue Jan 7, 2025 · 8 comments

Comments

@SpeeQz1
Copy link

SpeeQz1 commented Jan 7, 2025

When trying to open the app on LMDE 6 it won't launch and opening it through terminal reveals that there is a problem where it keeps asking for a specific GLIBC version and the app won't open.

I have been trying to make a Dockerfile which can build Tauri apps for most distros Fedora/Arch/Ubuntu/Debian but I have managed to only make one individually either for Fedora/Arch/Ubuntu or Ubuntu/Debian but not all (#1690).

fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by fedistar)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by fedistar)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libwebkit2gtk-4.1.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libwebkit2gtk-4.1.so.0)
fedistar: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.31' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libwebkit2gtk-4.1.so.0)
fedistar: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libwebkit2gtk-4.1.so.0)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libgtk-3.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libgtk-3.so.0)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libgdk-3.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libgdk-3.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libpango-1.0.so.0)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libcairo.so.2)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libcairo.so.2)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libsoup-3.0.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libgio-2.0.so.0)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libjavascriptcoregtk-4.1.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libjavascriptcoregtk-4.1.so.0)
fedistar: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.31' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libjavascriptcoregtk-4.1.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libglib-2.0.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libcrypto.so.3)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libicui18n.so.74)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libicui18n.so.74)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libsystemd.so.0)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libicuuc.so.74)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libicuuc.so.74)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libxml2.so.2)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libsqlite3.so.0)
fedistar: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libxslt.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libxslt.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libgcrypt.so.20)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libgstreamer-1.0.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libtasn1.so.6)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libwayland-server.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libwayland-client.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libatk-bridge-2.0.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libxkbcommon.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libXcursor.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libgssapi_krb5.so.2)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libmount.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libselinux.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libcap.so.2)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libdw.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/liborc-0.4.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libdbus-1.so.3)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libkrb5.so.3)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libk5crypto.so.3)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libkrb5support.so.0)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libblkid.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libelf.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libudev.so.1)
fedistar: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_fedistruVxBC/usr/lib/libbsd.so.0)
@h3poteto
Copy link
Owner

h3poteto commented Jan 8, 2025

Can you launch 1.10.0?

@SpeeQz1
Copy link
Author

SpeeQz1 commented Jan 8, 2025

Can you launch 1.10.0?

Actually yes, what is the difference between the 1.10.0 and 1.10.1 version?

@h3poteto
Copy link
Owner

h3poteto commented Jan 8, 2025

Ah, I got it.
To address this(#1690), I changed OS version in CI: #1713
That's the reason why glibc error happens.

Hmm, so we can't solve both at the same time.

@SpeeQz1
Copy link
Author

SpeeQz1 commented Jan 8, 2025

Well for me to support Debian I have to use a Debian Docker image but then I can't use the specific versions of libwebkit which is needed for Fedora/Arch support.

@h3poteto
Copy link
Owner

h3poteto commented Jan 8, 2025

A little bit complex. In #1690, they need the old libwebkit2gtk. In my fix #1713 , I used 2.44.0-2.

In ubuntu 24.04

root@62f1f90710cf:/# apt-cache madison libwebkit2gtk-4.1-0
libwebkit2gtk-4.1-0 | 2.46.4-0ubuntu0.24.04.1 | http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
libwebkit2gtk-4.1-0 | 2.46.4-0ubuntu0.24.04.1 | http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages
libwebkit2gtk-4.1-0 |   2.44.0-2 | http://archive.ubuntu.com/ubuntu noble/main amd64 Packages

In ubuntu 22.04

root@f66910cd572b:/# apt-cache madison libwebkit2gtk-4.1-0
libwebkit2gtk-4.1-0 | 2.46.4-0ubuntu0.22.04.1 | http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
libwebkit2gtk-4.1-0 | 2.46.4-0ubuntu0.22.04.1 | http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages
libwebkit2gtk-4.1-0 | 2.36.0-2ubuntu1 | http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

I tried with 2.36, but it was too old.

However, glibc version is different.

In ubuntu 24.04

root@62f1f90710cf:/# ldd --version
ldd (Ubuntu GLIBC 2.39-0ubuntu8.3) 2.39
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

In ubuntu 22.04

root@f66910cd572b:/# ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.8) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

@SpeeQz1
Copy link
Author

SpeeQz1 commented Jan 8, 2025

@h3poteto another thing to note which I was told is that Tauri v2 can't use a version older than webkit 4.1 so we can't use 4.0 to try and fix the issue as that is only for v1 and not available for v2.

@h3poteto
Copy link
Owner

h3poteto commented Jan 9, 2025

Anyway, please use snap package.

@SpeeQz1
Copy link
Author

SpeeQz1 commented Jan 9, 2025

@h3poteto I fixed it.

It's a bit of a frankenstein solution but it works. I basically downloaded the 2.44.0 packages from launchpad using wget (and any other depending packages missing from Debian Bookworm), and installed them instead of using the ones Debian provides.

FROM debian:bookworm

# Prevent interactive prompts during package installation
ENV DEBIAN_FRONTEND=noninteractive

# Update system and install sudo
RUN apt update

RUN apt install -y \
    sudo

# Create debian user and add to sudo group
RUN useradd -m debian && \
    usermod -aG sudo debian && \
    echo "debian ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

# Install Node and npm
RUN apt-get update && apt-get install -y \
  ca-certificates \
  curl

ARG NODE_VERSION=22.12.0
ARG NODE_PACKAGE=node-v$NODE_VERSION-linux-x64
ARG NODE_HOME=/opt/$NODE_PACKAGE

ENV NODE_PATH=$NODE_HOME/lib/node_modules
ENV PATH=$NODE_HOME/bin:$PATH

RUN curl https://nodejs.org/dist/v$NODE_VERSION/$NODE_PACKAGE.tar.gz | tar -xzC /opt/

RUN sudo apt install -y \
    npm

# Install tauri dependencies
RUN sudo apt install -y \
    build-essential \
    curl \
    wget \
    file \
    libssl-dev \
    libgtk-3-dev \
    libappindicator3-dev \
    librsvg2-dev

# Create temporary directory for package downloads
RUN mkdir -p /tmp/ubuntu-packages

# Set working directory for package downloads
WORKDIR /tmp/ubuntu-packages

# Download Ubuntu packages for Tauri
RUN wget http://launchpadlibrarian.net/723972773/libwebkit2gtk-4.1-0_2.44.0-0ubuntu0.22.04.1_amd64.deb && \
    wget http://launchpadlibrarian.net/723972761/libwebkit2gtk-4.1-dev_2.44.0-0ubuntu0.22.04.1_amd64.deb && \
    wget http://launchpadlibrarian.net/723972770/libjavascriptcoregtk-4.1-0_2.44.0-0ubuntu0.22.04.1_amd64.deb && \
    wget http://launchpadlibrarian.net/723972746/libjavascriptcoregtk-4.1-dev_2.44.0-0ubuntu0.22.04.1_amd64.deb && \
    wget http://launchpadlibrarian.net/723972735/gir1.2-javascriptcoregtk-4.1_2.44.0-0ubuntu0.22.04.1_amd64.deb && \
    wget http://launchpadlibrarian.net/723972739/gir1.2-webkit2-4.1_2.44.0-0ubuntu0.22.04.1_amd64.deb

RUN wget http://launchpadlibrarian.net/606433947/libicu70_70.1-2ubuntu1_amd64.deb && \
    wget http://launchpadlibrarian.net/595623693/libjpeg8_8c-2ubuntu10_amd64.deb && \
    wget http://launchpadlibrarian.net/587202140/libjpeg-turbo8_2.1.2-0ubuntu1_amd64.deb && \
    wget http://launchpadlibrarian.net/592959859/xdg-desktop-portal-gtk_1.14.0-1build1_amd64.deb

# Install dependencies for the downloaded packages
RUN sudo apt install -y \
    build-essential \
    curl \
    wget \
    file \
    libssl-dev \
    libgtk-3-dev \
    libappindicator3-dev \
    librsvg2-dev

# Install downloaded packages
RUN apt-get install -y ./*.deb

# Reset working directory
WORKDIR /

# Clean up downloaded packages
RUN rm -rf /tmp/ubuntu-packages

# Install additional gstreamer dependencies for audio and video playback
RUN sudo apt install -y \
    patchelf

RUN sudo apt install -y \
    libgstreamer1.0-dev \
    libgstreamer-plugins-base1.0-dev \
    libgstreamer-plugins-bad1.0-dev \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-bad \
    gstreamer1.0-plugins-ugly \
    gstreamer1.0-libav \
    gstreamer1.0-tools \
    gstreamer1.0-x \
    gstreamer1.0-alsa \
    gstreamer1.0-gl \
    gstreamer1.0-gtk3 \
    gstreamer1.0-qt5 \
    gstreamer1.0-pulseaudio

# Set up cargo home
ENV CARGO_HOME=/opt/cargo
ENV RUSTUP_HOME=/opt/rustup
ENV PATH="${CARGO_HOME}/bin:${PATH}"

# Install Rust for all users
RUN mkdir -p ${CARGO_HOME} ${RUSTUP_HOME} && \
    chmod 777 ${CARGO_HOME} ${RUSTUP_HOME} && \
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \
    chmod -R 777 ${CARGO_HOME} ${RUSTUP_HOME}

# Create app directory with wide permissions
RUN mkdir -p /app && \
    chmod 777 /app

WORKDIR /app

# Default command to start an interactive shell
CMD ["/bin/bash"]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants