Skip to content

Commit

Permalink
Update for 8.11.0-rc1
Browse files Browse the repository at this point in the history
- Update GLib to 2.68.2.
- Update librsvg to 2.51.2.
- Update libxml2 to 2.9.12.
- Update Pango to 1.48.5.
- Update zlib-ng 2.0.3.
- Update ImageMagick to 6.9.12-14.
- Update Poppler to 21.06.1.
- Update Imath to 3.0.4.
- Update OpenEXR to 3.0.4.
- Update Rust to 1.52.1.
- Remove giflib as dependency.
- Add temporary patches for AVIF speed/security.

MXE Updates:
- Update Expat to 2.4.1.
- Update MinGW-w64 to 9.0.0.
  • Loading branch information
kleisauke committed Jun 4, 2021
1 parent d4b1854 commit c91e3b2
Show file tree
Hide file tree
Showing 23 changed files with 263 additions and 215 deletions.
26 changes: 14 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,12 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help.
|-----------------|-----------|--------------------------------------------------------------|
| [aom] | 3.1.0 | BSD 2-Clause + [Alliance for Open Media Patent License 1.0] |
| [cairo] | 1.17.4 | Mozilla Public License 2.0 |
| [expat] | 2.3.0 | MIT Licence |
| [expat] | 2.4.1 | MIT Licence |
| [fontconfig] | 2.13.93 | [fontconfig Licence] (BSD-like) |
| [freetype] | 2.10.4 | [freetype Licence] (BSD-like) |
| [fribidi] | 1.0.10 | LGPLv3 |
| [gdk-pixbuf] | 2.42.6 | LGPLv3 |
| [giflib] | 5.1.4 | MIT Licence |
| [glib] | 2.68.1 | LGPLv3 |
| [glib] | 2.68.2 | LGPLv3 |
| [harfbuzz] | 2.8.1 | MIT Licence |
| [lcms] | 2.12 | MIT Licence |
| [libexif] | 0.6.22 | LGPLv3 |
Expand All @@ -34,19 +33,21 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help.
| [libheif] | 1.12.0 | LGPLv3 |
| [libimagequant] | 2.4.1¹ | BSD 2-Clause |
| [libpng] | 1.6.37 | [libpng License version 2] |
| [librsvg] | 2.51.1 | LGPLv3 |
| [librsvg] | 2.51.2 | LGPLv3 |
| [libspng] | 0.6.3 | BSD 2-Clause |
| [libtiff] | 4.3.0 | [libtiff License] (BSD-like) |
| [libvips] | 8.10.6 | LGPLv3 |
| [libvips] | 8.11.0² | LGPLv3 |
| [libwebp] | 1.2.0 | New BSD License |
| [libxml2] | 2.9.10 | MIT Licence |
| [libxml2] | 2.9.12 | MIT Licence |
| [mozjpeg] | 4.0.3 | [zlib License, IJG License, BSD-3-Clause] |
| [orc] | 0.4.32 | [orc License] (BSD-like) |
| [pango] | 1.48.4 | LGPLv3 |
| [pango] | 1.48.5 | LGPLv3 |
| [pixman] | 0.40.0 | MIT Licence |
| [zlib-ng] | 2.0.2 | [zlib-ng Licence] |
| [zlib-ng] | 2.0.3 | [zlib-ng Licence] |

¹ [A fork](https://github.com/lovell/libimagequant) of the BSD 2-Clause licensed libimagequant v2.4.1 is used.
² libvips is built from the [`v8.11.0-rc1`](https://github.com/libvips/libvips/tree/v8.11.0-rc1) tag, see:
https://github.com/libvips/libvips/releases/tag/v8.11.0-rc1

[aom]: https://aomedia.googlesource.com/aom/
[Alliance for Open Media Patent License 1.0]: https://aomedia.org/license/patent-license/
Expand All @@ -58,7 +59,6 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help.
[freetype Licence]: https://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT
[fribidi]: https://github.com/fribidi/fribidi
[gdk-pixbuf]: https://gitlab.gnome.org/GNOME/gdk-pixbuf
[giflib]: https://sourceforge.net/projects/giflib/
[glib]: https://gitlab.gnome.org/GNOME/glib
[harfbuzz]: https://github.com/harfbuzz/harfbuzz
[lcms]: https://github.com/mm2/Little-CMS
Expand Down Expand Up @@ -93,19 +93,21 @@ Same as libvips-web + these extra dependencies:
|-----------------|-----------|--------------------------------------------------------------|
| [cfitsio] | 3.49 | BSD-like |
| [fftw] | 3.3.9 | GPLv2 |
| [imagemagick] | 6.9.12-10 | [ImageMagick License] (GPL-like) |
| [imagemagick] | 6.9.12-14 | [ImageMagick License] (GPL-like) |
| [imath] | 3.0.4 | BSD 3-Clause |
| [matio] | 1.5.21 | BSD 2-Clause |
| [nifticlib] | 2.0.0 | Public domain |
| [openexr] | 3.0.1 | BSD 3-Clause |
| [openexr] | 3.0.4 | BSD 3-Clause |
| [openjpeg] | 2.4.0 | BSD 2-Clause |
| [openslide] | 3.4.1 | LGPLv3 |
| [poppler] | 21.05.0 | GPLv2 |
| [poppler] | 21.06.1 | GPLv2 |
| [sqlite] | 3.35.5 | Public domain |

[cfitsio]: https://heasarc.gsfc.nasa.gov/fitsio/
[fftw]: https://github.com/FFTW/fftw3
[imagemagick]: https://github.com/ImageMagick/ImageMagick6
[ImageMagick License]: https://imagemagick.org/script/license.php
[imath]: https://github.com/AcademySoftwareFoundation/Imath
[matio]: https://github.com/tbeu/matio
[nifticlib]: https://nifti.nimh.nih.gov/
[openexr]: https://github.com/AcademySoftwareFoundation/openexr
Expand Down
5 changes: 3 additions & 2 deletions build/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ fi
# Always checkout a particular revision which will successfully build.
# This ensures that it will not suddenly break a build.
# Note: Must be regularly updated.
revision="40cdd2a78f4110b857406f353f583384ecf6b6be"
revision="baa4ed6b469c620afa6861c861dd9c9752ca5cca"
initialize=false

if [ -f "$mxe_dir/Makefile" ]; then
Expand Down Expand Up @@ -122,7 +122,8 @@ plugins+=" $work_dir/plugins/proxy-libintl"
# Build pe-util, handy for copying DLL dependencies.
make pe-util \
IGNORE_SETTINGS=yes \
MXE_TARGETS=`$mxe_dir/ext/config.guess`
MXE_TARGETS=`$mxe_dir/ext/config.guess` \
MXE_USE_CCACHE=

# Build MXE's meson-wrapper (needed by pango, GDK-PixBuf, GLib and Orc),
# gendef (a tool for generating def files from DLLs)
Expand Down
4 changes: 2 additions & 2 deletions build/imath.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ PKG := imath
$(PKG)_WEBSITE := https://github.com/AcademySoftwareFoundation/Imath
$(PKG)_DESCR := A C++ and python library of 2D and 3D vector, matrix, and math operations for computer graphics.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.0.1
$(PKG)_CHECKSUM := 9cd984bb6b0a9572dd4a373b1fab60bc4c992a52ec5c68328fe0f48f194ba3c0
$(PKG)_VERSION := 3.0.4
$(PKG)_CHECKSUM := 3b5cef518964755963550b5f4a16e7c0a0872574921b1443f1d47fdb6b8c5afe
$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch)))
$(PKG)_GH_CONF := AcademySoftwareFoundation/Imath/tags,v
$(PKG)_DEPS := cc
Expand Down
77 changes: 23 additions & 54 deletions build/overrides.mk
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ gdk-pixbuf_SUBDIR := gdk-pixbuf-$(gdk-pixbuf_VERSION)
gdk-pixbuf_FILE := gdk-pixbuf-$(gdk-pixbuf_VERSION).tar.xz
gdk-pixbuf_URL := https://download.gnome.org/sources/gdk-pixbuf/$(call SHORT_PKG_VERSION,gdk-pixbuf)/$(gdk-pixbuf_FILE)

# no longer needed by libvips, but some of the deps need it
# upstream version is 2.9.10
libxml2_VERSION := 2.9.12
libxml2_CHECKSUM := c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92
libxml2_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libxml2-[0-9]*.patch)))
libxml2_SUBDIR := libxml2-$(libxml2_VERSION)
libxml2_FILE := libxml2-$(libxml2_VERSION).tar.gz
libxml2_URL := http://xmlsoft.org/sources/$(libxml2_FILE)
libxml2_URL_2 := https://ftp.osuosl.org/pub/blfs/conglomeration/libxml2/$(libxml2_FILE)

# upstream version is 1.5.2
# cannot use GH_CONF:
# matio_GH_CONF := tbeu/matio/releases,v
Expand All @@ -30,22 +40,22 @@ matio_FILE := matio-$(matio_VERSION).tar.gz
matio_URL := https://github.com/tbeu/matio/releases/download/v$(matio_VERSION)/$(matio_FILE)

# upstream version is 7, we want ImageMagick 6
imagemagick_VERSION := 6.9.12-10
imagemagick_CHECKSUM := 04e7050dc3c21a2c7d3189fe3b9c822ccacadc88651f26621200ab81775b2509
imagemagick_VERSION := 6.9.12-14
imagemagick_CHECKSUM := f2831934ebccb444a7ced6dfe2e87fa065ece02a7b28627e3be57428df469c93
imagemagick_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/imagemagick-[0-9]*.patch)))
imagemagick_GH_CONF := ImageMagick/ImageMagick6/tags

# upstream version is 2.40.5
librsvg_VERSION := 2.51.1
librsvg_CHECKSUM := 7d72c0de6cd1a767922328a214e346ce7e12fbfaf0a50de59d0e502532c1c75e
librsvg_VERSION := 2.51.2
librsvg_CHECKSUM := 6b80840ef3e4724624e715398bb4470fa68368943cdbd507e681708bbe32b289
librsvg_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/librsvg-[0-9]*.patch)))
librsvg_SUBDIR := librsvg-$(librsvg_VERSION)
librsvg_FILE := librsvg-$(librsvg_VERSION).tar.xz
librsvg_URL := https://download.gnome.org/sources/librsvg/$(call SHORT_PKG_VERSION,librsvg)/$(librsvg_FILE)

# upstream version is 1.37.4
pango_VERSION := 1.48.4
pango_CHECKSUM := 418913fb062071a075846244989d4a67aa5c80bf0eae8ee4555a092fd566a37a
pango_VERSION := 1.48.5
pango_CHECKSUM := 501e74496173c02dcd024ded7fbb3f09efd37e2a488e248aa40799424dbb3b2a
pango_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/pango-[0-9]*.patch)))
pango_SUBDIR := pango-$(pango_VERSION)
pango_FILE := pango-$(pango_VERSION).tar.xz
Expand All @@ -62,8 +72,8 @@ fribidi_FILE := fribidi-$(fribidi_VERSION).tar.xz
fribidi_URL := https://github.com/fribidi/fribidi/releases/download/v$(fribidi_VERSION)/$(fribidi_FILE)

# upstream version is 2.50.2
glib_VERSION := 2.68.1
glib_CHECKSUM := 241654b96bd36b88aaa12814efc4843b578e55d47440103727959ac346944333
glib_VERSION := 2.68.2
glib_CHECKSUM := ecc7798a9cc034eabdfd7f246e6dd461cdbf1175fcc2e9867cc7da7b7309e0fb
glib_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/glib-[0-9]*.patch)))
glib_SUBDIR := glib-$(glib_VERSION)
glib_FILE := glib-$(glib_VERSION).tar.xz
Expand All @@ -77,23 +87,6 @@ libgsf_SUBDIR := libgsf-$(libgsf_VERSION)
libgsf_FILE := libgsf-$(libgsf_VERSION).tar.xz
libgsf_URL := https://download.gnome.org/sources/libgsf/$(call SHORT_PKG_VERSION,libgsf)/$(libgsf_FILE)

# upstream version is 4.2.0
tiff_VERSION := 4.3.0
tiff_CHECKSUM := 0e46e5acb087ce7d1ac53cf4f56a09b221537fc86dfc5daaad1c2e89e1b37ac8
tiff_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/tiff-[0-9]*.patch)))
tiff_SUBDIR := tiff-$(tiff_VERSION)
tiff_FILE := tiff-$(tiff_VERSION).tar.gz
tiff_URL := https://download.osgeo.org/libtiff/$(tiff_FILE)

# Override libjpeg-turbo patch with our own
# upstream version is 2.0.6
libjpeg-turbo_VERSION := 2.1.0
libjpeg-turbo_CHECKSUM := bef89803e506f27715c5627b1e3219c95b80fc31465d4452de2a909d382e4444
libjpeg-turbo_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libjpeg-turbo-[0-9]*.patch)))
libjpeg-turbo_SUBDIR := libjpeg-turbo-$(libjpeg-turbo_VERSION)
libjpeg-turbo_FILE := libjpeg-turbo-$(libjpeg-turbo_VERSION).tar.gz
libjpeg-turbo_URL := https://$(SOURCEFORGE_MIRROR)/project/libjpeg-turbo/$(libjpeg-turbo_VERSION)/$(libjpeg-turbo_FILE)

# upstream version is 1.16.0
cairo_VERSION := 1.17.4
cairo_CHECKSUM := 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705
Expand All @@ -105,8 +98,8 @@ cairo_URL := http://cairographics.org/snapshots/$(cairo_FILE)
# upstream version is 2.2.0
# cannot use GH_CONF:
# openexr_GH_CONF := AcademySoftwareFoundation/openexr/tags
openexr_VERSION := 3.0.1
openexr_CHECKSUM := 6d14a8df938bbbd55dd6e55b24c527fe9323fe6a45f704e56967dfbf477cecc1
openexr_VERSION := 3.0.4
openexr_CHECKSUM := 64daae95d406fe3f59ee11ad8586d03fe7df2552b9630eac1a4f9152b8015fb9
openexr_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/openexr-[0-9]*.patch)))
openexr_SUBDIR := openexr-$(openexr_VERSION)
openexr_FILE := openexr-$(openexr_VERSION).tar.gz
Expand All @@ -129,12 +122,6 @@ pixman_SUBDIR := pixman-$(pixman_VERSION)
pixman_FILE := pixman-$(pixman_VERSION).tar.gz
pixman_URL := https://cairographics.org/releases/$(pixman_FILE)

# upstream version is 2.8.0
harfbuzz_VERSION := 2.8.1
harfbuzz_CHECKSUM := 4124f663ec4bf4e294d9cf230668370b4249a48ff34deaf0f06e8fc82d891300
harfbuzz_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/harfbuzz-[0-9]*.patch)))
harfbuzz_GH_CONF := harfbuzz/harfbuzz/releases,,,,,.tar.xz

# upstream version is 2.13.1
fontconfig_VERSION := 2.13.93
fontconfig_CHECKSUM := ea968631eadc5739bc7c8856cef5c77da812d1f67b763f5e51b57b8026c1a0a0
Expand All @@ -152,8 +139,8 @@ fftw_FILE := fftw-$(fftw_VERSION).tar.gz
fftw_URL := http://www.fftw.org/$(fftw_FILE)

# upstream version is 21.02.0
poppler_VERSION := 21.05.0
poppler_CHECKSUM := dafd537b680fad1215bc40fc53d1f38e8449d7c185bc60d5a89e1d26c90dbd8c
poppler_VERSION := 21.06.1
poppler_CHECKSUM := 86b09e5a02de40081a3916ef8711c5128eaf4b1fc59d5f87d0ec66f04f595db4
poppler_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/poppler-[0-9]*.patch)))
poppler_SUBDIR := poppler-$(poppler_VERSION)
poppler_FILE := poppler-$(poppler_VERSION).tar.xz
Expand All @@ -168,19 +155,9 @@ nasm_FILE := nasm-$(nasm_VERSION).tar.xz
nasm_URL := https://www.nasm.us/pub/nasm/releasebuilds/$(nasm_VERSION)/$(nasm_FILE)
nasm_URL_2 := https://sources.voidlinux.org/nasm-$(nasm_VERSION)/$(nasm_FILE)

# upstream version is 8.0.0
# Update MinGW-w64 to 6ee9a4d
# https://github.com/mirror/mingw-w64/tarball/6ee9a4d9d911b334af0c39869bcaa770788eeb41
mingw-w64_VERSION := 6ee9a4d
mingw-w64_CHECKSUM := fdccabe1bb13cc507c5dd3855918f953310ebd36afc333aad6fa9dacb9314016
mingw-w64_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/mingw-w64-[0-9]*.patch)))
mingw-w64_SUBDIR := mirror-mingw-w64-$(mingw-w64_VERSION)
mingw-w64_FILE := mirror-mingw-w64-$(mingw-w64_VERSION).tar.gz
mingw-w64_URL := https://github.com/mirror/mingw-w64/tarball/$(mingw-w64_VERSION)/$(mingw-w64_FILE)

## Patches that we override with our own

libxml2_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libxml2-[0-9]*.patch)))
libjpeg-turbo_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libjpeg-turbo-[0-9]*.patch)))

# zlib will make libzlib.dll, but we want libz.dll so we must
# patch CMakeLists.txt
Expand Down Expand Up @@ -670,7 +647,6 @@ define libxml2_BUILD
# need to regenerate the configure script
cd '$(SOURCE_DIR)' && autoreconf -fi

# TODO(kleisauke): remove --with-regexps flag from v2.10.0+
cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \
$(MXE_CONFIGURE_OPTS) \
--with-zlib='$(PREFIX)/$(TARGET)/lib' \
Expand All @@ -680,7 +656,6 @@ define libxml2_BUILD
--with-valid \
--with-http \
--with-tree \
--with-regexps \
$(if $(findstring .all,$(TARGET)), \
--with-xpath \
--with-sax1) \
Expand Down Expand Up @@ -733,12 +708,6 @@ endef

# build with CMake.
define openexr_BUILD
# Built OpenEXR without link-time garbage collection,
# to avoid a crash at runtime.
$(eval export CFLAGS := -O3)
$(eval export CXXFLAGS := -O3)
$(eval export LDFLAGS := -Wl,-s)

cd '$(BUILD_DIR)' && $(TARGET)-cmake \
-DOPENEXR_INSTALL_PKG_CONFIG=ON \
-DOPENEXR_ENABLE_THREADING=$(if $(WIN32_THREADS),OFF,ON) \
Expand Down
41 changes: 30 additions & 11 deletions build/package-vipsdev.sh
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,15 @@ if [ "$ZLIB_NG" = "false" ]; then
zip_suffix+="-zlib-vanilla"
fi

# Utilities
peldd=$mxe_prefix/$build_os/bin/peldd
strip=$mxe_prefix/bin/$target.$deps-strip

# Directories
install_dir=$mxe_prefix/$target.$deps
bin_dir=$install_dir/bin
module_dir=$install_dir/lib/vips-modules-$vips_version

echo "Copying libvips and dependencies"

# Need to whitelist the Universal C Runtime (CRT) DLLs
Expand All @@ -97,17 +106,26 @@ whitelist=(api-ms-win-crt-{conio,convert,environment,filesystem,heap,locale,math
whitelist+=(userenv.dll)

# Copy libvips and dependencies with pe-util
$mxe_prefix/$build_os/bin/peldd \
$mxe_prefix/$target.$deps/bin/$target_dll \
--clear-path \
--path $mxe_prefix/$target.$deps/bin \
${whitelist[@]/#/--wlist } \
-a | xargs cp -t $repackage_dir/bin
binaries=$($peldd $bin_dir/$target_dll --clear-path --path $bin_dir ${whitelist[@]/#/--wlist } --all)
for dll in $binaries; do
cp $dll $repackage_dir/bin
done

# Copy the transitive dependencies of the modules
# which are not yet present in the bin directory.
if [ -d "$module_dir" ]; then
for module in $module_dir/*.dll; do
binaries=$($peldd $module --clear-path --path $bin_dir ${whitelist[@]/#/--wlist } --transitive)
for dll in $binaries; do
cp -n $dll $repackage_dir/bin
done
done
fi

echo "Copying install area $mxe_prefix/$target.$deps/"
echo "Copying install area $install_dir/"

# Follow symlinks when copying /share, /etc, /lib and /include
cp -Lr $mxe_prefix/$target.$deps/{share,etc,lib,include} $repackage_dir
cp -Lr $install_dir/{share,etc,lib,include} $repackage_dir

echo "Generating import files"
./gendeflibs.sh $deps $target
Expand Down Expand Up @@ -136,18 +154,19 @@ rm $repackage_dir/{share,lib,include}/.gitkeep
echo "Copying vips executables"

# We still need to copy the vips executables
cp $mxe_prefix/$target.$deps/bin/{vips,vipsedit,vipsheader,vipsthumbnail}.exe $repackage_dir/bin/
cp $install_dir/bin/{vips,vipsedit,vipsheader,vipsthumbnail}.exe $repackage_dir/bin/

echo "Strip unneeded symbols"

# Remove all symbols that are not needed
if [ "$DEBUG" = "false" ]; then
$mxe_prefix/bin/$target.$deps-strip --strip-unneeded $repackage_dir/bin/*.{exe,dll}
$strip --strip-unneeded $repackage_dir/bin/*.{exe,dll}
[ -d "$module_dir" ] && $strip --strip-unneeded $repackage_dir/lib/vips-modules-$vips_version/*.dll
fi

echo "Copying packaging files"

cp $mxe_prefix/$target.$deps/vips-packaging/{AUTHORS,ChangeLog,COPYING,README.md,versions.json} $repackage_dir
cp $install_dir/vips-packaging/{AUTHORS,ChangeLog,COPYING,README.md,versions.json} $repackage_dir

echo "Creating $zipfile"

Expand Down
Loading

0 comments on commit c91e3b2

Please sign in to comment.