@@ -9,10 +9,32 @@ set -eoux pipefail
9
9
export WHEEL_DIR=${WHEEL_DIR:- " /wheelsdir" }
10
10
mkdir -p ${WHEEL_DIR}
11
11
12
+ build_pillow () {
13
+ CURDIR=$( pwd)
14
+
15
+ export PILLOW_VERSION=$1
16
+
17
+ TEMP_BUILD_DIR=$( mktemp -d)
18
+ cd ${TEMP_BUILD_DIR}
19
+
20
+ : ================== Installing Pillow ==================
21
+ git clone --recursive https://github.com/python-pillow/Pillow.git -b ${PILLOW_VERSION}
22
+ cd Pillow
23
+ uv build --wheel --out-dir /pillowwheel
24
+
25
+ : ================= Fix Pillow Wheel ====================
26
+ cd /pillowwheel
27
+ uv pip install auditwheel
28
+ auditwheel repair pillow* .whl
29
+ mv wheelhouse/pillow* .whl ${WHEEL_DIR}
30
+
31
+ cd ${CURDIR}
32
+ rm -rf ${TEMP_BUILD_DIR}
33
+ }
12
34
build_pyarrow () {
13
35
CURDIR=$( pwd)
14
36
15
- export PYARROW_VERSION=${1 :- $(curl -s https :// api.github.com / repos / apache / arrow / releases / latest | jq -r ' .tag_name ' | grep -Eo " [0-9\.]+ " )}
37
+ export PYARROW_VERSION=$1
16
38
17
39
TEMP_BUILD_DIR=$( mktemp -d)
18
40
cd ${TEMP_BUILD_DIR}
@@ -44,7 +66,8 @@ build_pyarrow() {
44
66
if [[ $( uname -m) == " ppc64le" ]]; then
45
67
# install development packages
46
68
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
47
- dnf install -y cmake gcc-toolset-13 fribidi-devel lcms2-devel \
69
+ # patchelf: needed by `auditwheel repair`
70
+ dnf install -y cmake gcc-toolset-13 fribidi-devel lcms2-devel patchelf \
48
71
libimagequant-devel libraqm-devel openjpeg2-devel tcl-devel tk-devel
49
72
50
73
# install rust
@@ -73,6 +96,10 @@ if [[ $(uname -m) == "ppc64le" ]]; then
73
96
74
97
PYARROW_VERSION=$( grep -A1 ' "pyarrow"' pylock.toml | grep -Eo ' \b[0-9\.]+\b' )
75
98
build_pyarrow ${PYARROW_VERSION}
99
+
100
+ PILLOW_VERSION=$( grep -A1 ' "pillow"' pylock.toml | grep -Eo ' \b[0-9\.]+\b' )
101
+ build_pillow ${PILLOW_VERSION}
102
+
76
103
uv pip install ${WHEEL_DIR} /* .whl
77
104
else
78
105
# only for mounting on non-ppc64le
0 commit comments