From 521daf70dd39aeb85f1b7c4f6ed6f97a1cbea054 Mon Sep 17 00:00:00 2001 From: Scott Talbert Date: Mon, 11 Nov 2024 20:41:16 -0500 Subject: [PATCH] Use script for installing Linux depends --- .github/workflows/build-linux-wheels.yml | 19 +----- buildtools/install_depends.sh | 75 ++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 18 deletions(-) create mode 100755 buildtools/install_depends.sh diff --git a/.github/workflows/build-linux-wheels.yml b/.github/workflows/build-linux-wheels.yml index ebac05499..885eb39c4 100644 --- a/.github/workflows/build-linux-wheels.yml +++ b/.github/workflows/build-linux-wheels.yml @@ -104,24 +104,7 @@ jobs: - name: Install Ubuntu dependencies run: | - sudo apt-get update - sudo apt-get install -y \ - freeglut3-dev \ - libcurl4-openssl-dev \ - libexpat1-dev \ - libgl1-mesa-dev \ - libglu1-mesa-dev \ - libgtk-3-dev \ - libjpeg-dev \ - libnotify-dev \ - libsdl2-dev \ - libsm-dev \ - libtiff-dev \ - libwebkit2gtk-4.0-dev \ - libxtst-dev \ - libunwind-dev \ - libgstreamer1.0-dev \ - libgstreamer-plugins-base1.0-dev + ./buildtools/install_depends.sh - name: Build the wxPython wheel env: diff --git a/buildtools/install_depends.sh b/buildtools/install_depends.sh new file mode 100755 index 000000000..05c0eb8fd --- /dev/null +++ b/buildtools/install_depends.sh @@ -0,0 +1,75 @@ +#!/bin/sh +# +# This script is used by CI jobs to install the dependencies +# before building wxWidgets but can also be run by hand if necessary (but +# currently it only works for the OS versions used by the CI builds). +# +# WX_EXTRA_PACKAGES environment variable may be predefined to contain extra +# packages to install (in an OS-specific way) in addition to the required ones. + +set -e + +SUDO=sudo + +case $(uname -s) in + Linux) + # Debian/Ubuntu + if [ -f /etc/apt/sources.list ]; then + run_apt() { + echo "-> Running apt-get $@" + + # Disable some (but not all) output. + $SUDO apt-get -q -o=Dpkg::Use-Pty=0 "$@" + + rc=$? + echo "-> Done with $rc" + + return $rc + } + + codename=$(lsb_release --codename --short) + + run_apt update || echo 'Failed to update packages, but continuing nevertheless.' + + extra_deps="" + case "$codename" in + focal|jammy) + extra_deps="$extra_deps libwebkit2gtk-4.0-dev" + ;; + noble) + extra_deps="$extra_deps libwebkit2gtk-4.1-dev" + ;; + esac + + pkg_install="\ + freeglut3-dev \ + libcurl4-openssl-dev \ + libexpat1-dev \ + libgl1-mesa-dev \ + libglu1-mesa-dev \ + libgtk-3-dev \ + libjpeg-dev \ + libnotify-dev \ + libsdl2-dev \ + libsm-dev \ + libtiff-dev \ + libxtst-dev \ + libunwind-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev" + + pkg_install="$pkg_install ${WX_EXTRA_PACKAGES}" + + for pkg in $extra_deps; do + if $(apt-cache pkgnames | grep -q $pkg) ; then + pkg_install="$pkg_install $pkg" + else + echo "Not installing non-existent package $pkg" + fi + done + + if ! run_apt install -y $pkg_install; then + exit 1 + fi + fi +esac