mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-07-29 09:29:46 +03:00
Use patched version of zlib-ng to fix install name.
This commit is contained in:
parent
3c2310e090
commit
1a0adc7f3f
9
.github/workflows/wheels-dependencies.sh
vendored
9
.github/workflows/wheels-dependencies.sh
vendored
|
@ -26,6 +26,7 @@ else
|
||||||
MB_ML_VER=${AUDITWHEEL_POLICY:9}
|
MB_ML_VER=${AUDITWHEEL_POLICY:9}
|
||||||
fi
|
fi
|
||||||
PLAT=$CIBW_ARCHS
|
PLAT=$CIBW_ARCHS
|
||||||
|
PATCH_DIR=$(pwd)/patches
|
||||||
|
|
||||||
# Define custom utilities
|
# Define custom utilities
|
||||||
source wheels/multibuild/common_utils.sh
|
source wheels/multibuild/common_utils.sh
|
||||||
|
@ -36,7 +37,9 @@ fi
|
||||||
|
|
||||||
ARCHIVE_SDIR=pillow-depends-main
|
ARCHIVE_SDIR=pillow-depends-main
|
||||||
|
|
||||||
# Package versions for fresh source builds
|
# Package versions for fresh source builds. Version numbers with "Patched"
|
||||||
|
# annotations have a source code patch that is required for some platforms. If
|
||||||
|
# you change those versions, ensure the patch is also updated.
|
||||||
FREETYPE_VERSION=2.13.3
|
FREETYPE_VERSION=2.13.3
|
||||||
HARFBUZZ_VERSION=10.2.0
|
HARFBUZZ_VERSION=10.2.0
|
||||||
LIBPNG_VERSION=1.6.46
|
LIBPNG_VERSION=1.6.46
|
||||||
|
@ -45,7 +48,7 @@ OPENJPEG_VERSION=2.5.3
|
||||||
XZ_VERSION=5.6.4
|
XZ_VERSION=5.6.4
|
||||||
TIFF_VERSION=4.6.0
|
TIFF_VERSION=4.6.0
|
||||||
LCMS2_VERSION=2.16
|
LCMS2_VERSION=2.16
|
||||||
ZLIB_NG_VERSION=2.2.3
|
ZLIB_NG_VERSION=2.2.3 # patched
|
||||||
LIBWEBP_VERSION=1.5.0
|
LIBWEBP_VERSION=1.5.0
|
||||||
BZIP2_VERSION=1.0.8
|
BZIP2_VERSION=1.0.8
|
||||||
LIBXCB_VERSION=1.17.0
|
LIBXCB_VERSION=1.17.0
|
||||||
|
@ -69,7 +72,7 @@ function build_zlib_ng {
|
||||||
if [ -e zlib-stamp ]; then return; fi
|
if [ -e zlib-stamp ]; then return; fi
|
||||||
fetch_unpack https://github.com/zlib-ng/zlib-ng/archive/$ZLIB_NG_VERSION.tar.gz zlib-ng-$ZLIB_NG_VERSION.tar.gz
|
fetch_unpack https://github.com/zlib-ng/zlib-ng/archive/$ZLIB_NG_VERSION.tar.gz zlib-ng-$ZLIB_NG_VERSION.tar.gz
|
||||||
(cd zlib-ng-$ZLIB_NG_VERSION \
|
(cd zlib-ng-$ZLIB_NG_VERSION \
|
||||||
&& ./configure --prefix=$BUILD_PREFIX --zlib-compat \
|
&& ./configure --prefix=$BUILD_PREFIX --installnamedir=$BUILD_PREFIX/lib --zlib-compat \
|
||||||
&& make -j4 \
|
&& make -j4 \
|
||||||
&& make install)
|
&& make install)
|
||||||
touch zlib-stamp
|
touch zlib-stamp
|
||||||
|
|
|
@ -47,7 +47,7 @@ repos:
|
||||||
- id: end-of-file-fixer
|
- id: end-of-file-fixer
|
||||||
exclude: ^Tests/images/
|
exclude: ^Tests/images/
|
||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
exclude: ^.github/.*TEMPLATE|^Tests/(fonts|images)/
|
exclude: ^.github/.*TEMPLATE|^Tests/(fonts|images)/|^patches/*.patch
|
||||||
|
|
||||||
- repo: https://github.com/python-jsonschema/check-jsonschema
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
||||||
rev: 0.31.1
|
rev: 0.31.1
|
||||||
|
|
14
patches/README.md
Normal file
14
patches/README.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Although we try to use official sources for dependencies, sometimes the official
|
||||||
|
sources don't support a platform (especially mobile platforms), or there's a bug
|
||||||
|
fix/feature that is required to support Pillow's usage.
|
||||||
|
|
||||||
|
This folder contains patches that must be applied to official sources, organized
|
||||||
|
by the platforms that need those patches.
|
||||||
|
|
||||||
|
Each patch is against the root of the unpacked official tarball, and is named by
|
||||||
|
appending `.patch` to the end of the tarball that is to be patched. This
|
||||||
|
includes the full version number; so if the version is bumped, the patch will
|
||||||
|
at a minimum require a filename change.
|
||||||
|
|
||||||
|
Wherever possible, these patches should be contributed upstream, in the hope that
|
||||||
|
future Pillow versions won't need to maintain these patches.
|
65
patches/zlib-ng-2.2.3.tar.gz.patch
Normal file
65
patches/zlib-ng-2.2.3.tar.gz.patch
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
# zlib-ng doesn't allow for manual specification of `--installnamedir`.
|
||||||
|
#
|
||||||
|
# Submitted upstream as https://github.com/zlib-ng/zlib-ng/pull/1867
|
||||||
|
diff --git a/configure b/configure
|
||||||
|
index 3487d092..91037f77 100755
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -83,6 +83,7 @@ bindir=${bindir-'${exec_prefix}/bin'}
|
||||||
|
libdir=${libdir-'${exec_prefix}/lib'}
|
||||||
|
sharedlibdir=${sharedlibdir-'${libdir}'}
|
||||||
|
includedir=${includedir-'${prefix}/include'}
|
||||||
|
+installnamedir=${installnamedir-'@rpath'}
|
||||||
|
mandir=${mandir-'${prefix}/share/man'}
|
||||||
|
shared_ext='.so'
|
||||||
|
shared=1
|
||||||
|
@@ -158,7 +159,7 @@ case "$1" in
|
||||||
|
echo 'usage:' | tee -a configure.log
|
||||||
|
echo ' configure [--prefix=PREFIX] [--eprefix=EXPREFIX]' | tee -a configure.log
|
||||||
|
echo ' [--static] [--32] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
|
||||||
|
- echo ' [--includedir=INCLUDEDIR] [--mandir=MANDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
|
||||||
|
+ echo ' [--includedir=INCLUDEDIR] [--installnamedir="@rpath"] [--mandir=MANDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
|
||||||
|
echo ' [--sprefix=SYMBOL_PREFIX] Adds a prefix to all exported symbols' | tee -a configure.log
|
||||||
|
echo ' [--warn] Enables extra compiler warnings' | tee -a configure.log
|
||||||
|
echo ' [--debug] Enables extra debug prints during operation' | tee -a configure.log
|
||||||
|
@@ -183,6 +184,7 @@ case "$1" in
|
||||||
|
-l*=* | --libdir=*) libdir=$(echo $1 | sed 's/.*=//'); shift ;;
|
||||||
|
--sharedlibdir=*) sharedlibdir=$(echo $1 | sed 's/.*=//'); shift ;;
|
||||||
|
-i*=* | --includedir=*) includedir=$(echo $1 | sed 's/.*=//');shift ;;
|
||||||
|
+ --installnamedir=*) installnamedir=$(echo $1 | sed 's/.*=//'); shift ;;
|
||||||
|
--mandir=*) mandir=$(echo $1 | sed 's/.*=//');shift ;;
|
||||||
|
-u*=* | --uname=*) uname=$(echo $1 | sed 's/.*=//');shift ;;
|
||||||
|
-p* | --prefix) prefix="$2"; shift; shift ;;
|
||||||
|
@@ -470,7 +472,7 @@ if test "$gcc" -eq 1 && ($cc $CFLAGS -c $test.c) >> configure.log 2>&1; then
|
||||||
|
SHAREDLIBM=${LIBNAME}.$VER1$shared_ext
|
||||||
|
SHAREDTARGET=$SHAREDLIBV
|
||||||
|
LDSHARED=${LDSHARED-"$cc"}
|
||||||
|
- LDSHAREDFLAGS="-dynamiclib -install_name @rpath/${SHAREDLIBM} -compatibility_version ${VER1} -current_version ${VER3}"
|
||||||
|
+ LDSHAREDFLAGS="-dynamiclib -install_name ${installnamedir}/${SHAREDLIBM} -compatibility_version ${VER1} -current_version ${VER3}"
|
||||||
|
if "${CROSS_PREFIX}libtool" -V 2>&1 | grep Apple > /dev/null; then
|
||||||
|
AR="${CROSS_PREFIX}libtool"
|
||||||
|
elif libtool -V 2>&1 | grep Apple > /dev/null; then
|
||||||
|
@@ -1936,6 +1938,7 @@ echo TEST = $TEST >> configure.log
|
||||||
|
echo VER = $VER >> configure.log
|
||||||
|
echo exec_prefix = $exec_prefix >> configure.log
|
||||||
|
echo includedir = $includedir >> configure.log
|
||||||
|
+echo installnamedir = $installnamedir >> configure.log
|
||||||
|
echo bindir = $bindir >> configure.log
|
||||||
|
echo libdir = $libdir >> configure.log
|
||||||
|
echo mandir = $mandir >> configure.log
|
||||||
|
@@ -2007,6 +2010,7 @@ sed < $SRCDIR/Makefile.in "
|
||||||
|
/^libdir *=/s#=.*#= $libdir#
|
||||||
|
/^sharedlibdir *=/s#=.*#= $sharedlibdir#
|
||||||
|
/^includedir *=/s#=.*#= $includedir#
|
||||||
|
+/^installnamedir *=/s#=.*#= $installnamedir#
|
||||||
|
/^mandir *=/s#=.*#= $mandir#
|
||||||
|
/^SRCDIR *=/s#=.*#=$SRCDIR#
|
||||||
|
/^INCLUDES *=/s#=.*#=$INCLUDES#
|
||||||
|
@@ -2206,6 +2210,7 @@ sed < $SRCDIR/zlib.pc.in "
|
||||||
|
/^libdir *=/s#=.*#=$libdir#
|
||||||
|
/^sharedlibdir *=/s#=.*#=$sharedlibdir#
|
||||||
|
/^includedir *=/s#=.*#=$includedir#
|
||||||
|
+/^installnamedir *=/s#=.*#=$installnamedir#
|
||||||
|
/^mandir *=/s#=.*#=$mandir#
|
||||||
|
/^LDFLAGS *=/s#=.*#=$LDFLAGS#
|
||||||
|
" | sed -e "
|
Loading…
Reference in New Issue
Block a user