diff --git a/contrib/build-linux/appimage/Dockerfile b/contrib/build-linux/appimage/Dockerfile index 54f5c1d78..f106896e5 100644 --- a/contrib/build-linux/appimage/Dockerfile +++ b/contrib/build-linux/appimage/Dockerfile @@ -17,6 +17,7 @@ COPY apt.preferences /etc/apt/preferences.d/snapshot RUN apt-get update -q && \ apt-get install -qy --allow-downgrades \ + sudo \ git \ wget \ make \ @@ -24,6 +25,7 @@ RUN apt-get update -q && \ autoconf \ libtool \ autopoint \ + pkg-config \ xz-utils \ libssl-dev \ libssl1.1 \ @@ -41,9 +43,10 @@ RUN apt-get update -q && \ gettext \ libzbar0 \ libdbus-1-3 \ + xutils-dev \ libxkbcommon0 \ libxkbcommon-x11-0 \ - libxcb1 \ + libxcb1-dev \ libxcb-xinerama0 \ libxcb-randr0 \ libxcb-render0 \ @@ -56,6 +59,7 @@ RUN apt-get update -q && \ libxcb-image0 \ libxcb-keysyms1 \ libxcb-util0 \ + #libxcb-util1 \ libxcb-render-util0 \ libx11-xcb1 \ libc6-dev \ diff --git a/contrib/build-linux/appimage/make_appimage.sh b/contrib/build-linux/appimage/make_appimage.sh index e5fd22d5b..bf62279e3 100755 --- a/contrib/build-linux/appimage/make_appimage.sh +++ b/contrib/build-linux/appimage/make_appimage.sh @@ -71,6 +71,34 @@ tar xf "$CACHEDIR/Python-$PYTHON_VERSION.tar.xz" -C "$BUILDDIR" cp -f "$PROJECT_ROOT/electrum/libsecp256k1.so.0" "$APPDIR/usr/lib/libsecp256k1.so.0" || fail "Could not copy libsecp to its destination" +# note: libxcb-util1 is not available in debian 10 (buster), only libxcb-util0. So we build it ourselves. +# This pkg is needed on some distros for Qt to launch. (see #8011) +info "building libxcb-util1." +XCB_UTIL_VERSION="acf790d7752f36e450d476ad79807d4012ec863b" +# ^ git tag 0.4.0 +( + cd "$CACHEDIR" + mkdir "libxcb-util1" + cd "libxcb-util1" + if [ ! -d util ]; then + git clone --recursive "https://anongit.freedesktop.org/git/xcb/util" + fi + cd util + if ! $(git cat-file -e ${XCB_UTIL_VERSION}) ; then + info "Could not find requested version $XCB_UTIL_VERSION in local clone; fetching..." + git fetch --all + git submodule update + fi + git reset --hard + git clean -dfxq + git checkout "${XCB_UTIL_VERSION}^{commit}" + ./autogen.sh + ./configure --enable-shared + make -j4 -s || fail "Could not build libxcb-util1" + cp "$CACHEDIR/libxcb-util1/util/src/.libs/libxcb-util.so.1" "$APPDIR/usr/lib/libxcb-util.so.1" +) || fail "Could build libxcb-util1" + + appdir_python() { env \ PYTHONNOUSERSITE=1 \