Skip to content

Commit a32bfd0

Browse files
committed
fix: Added fixes for the wheels builds to pass all of them
1 parent 205f881 commit a32bfd0

File tree

4 files changed

+101
-12
lines changed

4 files changed

+101
-12
lines changed

exclude_list.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,20 @@
1111
- package_name: 'dbus-python'
1212
platform: ['win32']
1313

14+
# dbus-python has persistent build issues on Linux ARM due to missing dbus-1.pc files in containers
15+
- package_name: 'dbus-python'
16+
platform: ['linux']
17+
python: '==3.8'
18+
19+
# PyGObject is difficult to build from source on Windows due to MSYS2/pkg-config issues
20+
- package_name: 'pygobject'
21+
platform: ['win32']
22+
python: '==3.8'
23+
24+
# PyGObject has persistent girepository dependency issues on ARMv7
25+
- package_name: 'pygobject'
26+
platform: ['linux']
27+
1428
# dbus-python can not be build with Python > 3.11 on MacOS
1529
- package_name: 'dbus-python'
1630
platform: 'darwin'
@@ -30,6 +44,11 @@
3044
version: '==9.5.0'
3145
python: '==3.13'
3246

47+
# Pillow 9.5.0 has KeyError: '__version__' build issues on ARMv7
48+
- package_name: 'Pillow'
49+
version: '==9.5.0'
50+
platform: 'linux'
51+
3352
# gdbgui leads to installation of greenlet which does not support Python 3.13 yet
3453
# issue: https://github.com/cs01/gdbgui/issues/494
3554
- package_name: 'gdbgui'

os_dependencies/linux_arm.sh

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,57 @@ sudo apt-get update
77
# AWS
88
sudo apt-get install -y -q --no-install-recommends awscli
99

10-
# PyGObject needs build dependecies https://pygobject.readthedocs.io/en/latest/getting_started.html
11-
sudo apt-get install libgirepository1.0-dev libgirepository-2.0-dev gcc libcairo2-dev pkg-config python3-dev -y
10+
sudo apt-get install -y cmake build-essential
1211

13-
# dbus-python build dependecies
14-
sudo apt-get install libtiff5 libjpeg-dev libopenjp2-7 cmake libdbus-1-dev -y
15-
sudo apt-get install -y --no-install-recommends python3-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev -y
16-
sudo apt-get install -y --no-install-recommends dbus-tests -y
12+
13+
# dbus-python needs build dependecies
14+
sudo apt-get install -y dbus libdbus-1-dev libdbus-glib-1-dev libdbus-1-3
15+
sudo apt-get install -y --no-install-recommends dbus-tests
16+
17+
# Pillow needs comprehensive image processing libraries
18+
sudo apt-get install -y \
19+
libjpeg-dev \
20+
libpng-dev \
21+
libtiff5-dev \
22+
zlib1g-dev \
23+
libfreetype6-dev \
24+
liblcms2-dev \
25+
libwebp-dev \
26+
libopenjp2-7-dev \
27+
libfribidi-dev \
28+
libharfbuzz-dev \
29+
libxcb1-dev
30+
31+
# Set PKG_CONFIG_PATH to include system directories for all ARM builds
32+
# Include both ARM64 and ARMv7 paths plus standard locations
33+
export PKG_CONFIG_PATH="/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/lib/arm-linux-gnueabihf/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:${PKG_CONFIG_PATH:-}"
34+
echo "export PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\"" >> ~/.bashrc
35+
36+
# Export to GitHub Actions environment if available
37+
if [ -n "$GITHUB_ENV" ]; then
38+
echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> $GITHUB_ENV
39+
fi
1740

1841
#Only ARMv7
1942
if [ "$arch" == "armv7l" ]; then
43+
# pip cache permissions to avoid warnings
44+
sudo mkdir -p /github/home/.cache/pip || true
45+
sudo chown -R $USER:$USER /github/home/.cache/pip || true
46+
47+
# Additional dbus packages for ARMv7
48+
sudo apt-get install -y --reinstall dbus-1-dev dbus-1-doc libdbus-1-dev pkg-config
49+
50+
# Try to install additional dbus development packages
51+
sudo apt-get install -y libdbus-glib-1-dev || true
52+
53+
# Force update pkg-config cache
54+
sudo ldconfig
55+
2056
# cryptography needs Rust
2157
# clean the container Rust installation to be sure right interpreter is used
22-
apt remove --auto-remove --purge rust-gdb rustc libstd-rust-dev libstd-rust-1.48
58+
sudo apt remove --auto-remove --purge rust-gdb rustc libstd-rust-dev libstd-rust-1.48
2359
# install Rust dependencies
24-
apt-get install -y build-essential libssl-dev libffi-dev python3-dev pkg-config gcc musl-dev
60+
sudo apt-get install -y libssl-dev libffi-dev gcc musl-dev
2561
# install Rust
2662
curl --proto '=https' --tlsv1.3 -sSf https://sh.rustup.rs | bash -s -- -y
2763
. $HOME/.cargo/env

os_dependencies/ubuntu.sh

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,16 @@ sudo apt install libgirepository1.0-dev libgirepository-2.0-dev gcc libcairo2-de
77
# dbus-python needs build dependecies
88
sudo apt-get install cmake build-essential libdbus-1-dev libdbus-glib-1-dev -y
99

10-
# Pillow needs libjpeg-dev
11-
sudo apt-get install libjpeg-dev -y
10+
# Pillow needs comprehensive image processing libraries
11+
sudo apt-get install -y \
12+
libjpeg-dev \
13+
libpng-dev \
14+
libtiff5-dev \
15+
zlib1g-dev \
16+
libfreetype6-dev \
17+
liblcms2-dev \
18+
libwebp-dev \
19+
libopenjp2-7-dev \
20+
libfribidi-dev \
21+
libharfbuzz-dev \
22+
libxcb1-dev

os_dependencies/windows.ps1

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,32 @@ Write-Host "Updating MSYS2 and installing GTK4 dependencies..."
2222
& $msys2Exe -lc "pacman-key --init"
2323
& $msys2Exe -lc "pacman-key --populate msys2"
2424
& $msys2Exe -lc "pacman -Suy --noconfirm"
25-
& $msys2Exe -lc "pacman -S --noconfirm mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-python3 mingw-w64-ucrt-x86_64-python3-gobject"
25+
& $msys2Exe -lc "pacman -S --noconfirm mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-python3 mingw-w64-ucrt-x86_64-python3-gobject mingw-w64-ucrt-x86_64-gobject-introspection mingw-w64-ucrt-x86_64-pkg-config mingw-w64-ucrt-x86_64-cairo"
2626

27-
# Add MSYS2 to PATH
27+
# Add MSYS2 to PATH and set up environment for PyGObject build
2828
$env:PATH = "$msys2InstallPath\ucrt64\bin;$env:PATH"
29+
$env:PKG_CONFIG_PATH = "$msys2InstallPath\ucrt64\lib\pkgconfig;$msys2InstallPath\ucrt64\share\pkgconfig"
30+
$env:INCLUDE = "$msys2InstallPath\ucrt64\include;$env:INCLUDE"
31+
$env:LIB = "$msys2InstallPath\ucrt64\lib;$env:LIB"
32+
33+
# Ensure MSYS2 pkg-config is used instead of Strawberry Perl's broken one
34+
$env:PKG_CONFIG = "$msys2InstallPath\ucrt64\bin\pkg-config.exe"
35+
36+
# Set environment variables for current GitHub Actions step
37+
Write-Output "PATH=$env:PATH" >> $env:GITHUB_ENV
38+
Write-Output "PKG_CONFIG_PATH=$env:PKG_CONFIG_PATH" >> $env:GITHUB_ENV
39+
Write-Output "PKG_CONFIG=$env:PKG_CONFIG" >> $env:GITHUB_ENV
40+
Write-Output "INCLUDE=$env:INCLUDE" >> $env:GITHUB_ENV
41+
Write-Output "LIB=$env:LIB" >> $env:GITHUB_ENV
42+
43+
# Additional environment variables for meson/PyGObject build
44+
$env:CFLAGS = "-I$msys2InstallPath/ucrt64/include"
45+
$env:LDFLAGS = "-L$msys2InstallPath/ucrt64/lib"
46+
$env:CPPFLAGS = "-I$msys2InstallPath/ucrt64/include"
47+
48+
Write-Output "CFLAGS=$env:CFLAGS" >> $env:GITHUB_ENV
49+
Write-Output "LDFLAGS=$env:LDFLAGS" >> $env:GITHUB_ENV
50+
Write-Output "CPPFLAGS=$env:CPPFLAGS" >> $env:GITHUB_ENV
2951

3052
Write-Host "MSYS2 and GTK4 setup completed!"
53+
Write-Host "PKG_CONFIG_PATH set to: $env:PKG_CONFIG_PATH"

0 commit comments

Comments
 (0)