Skip to content

Commit

Permalink
Dependency version bumps
Browse files Browse the repository at this point in the history
- Update GLib to 2.66.0.
- Update librsvg to 2.50.0.
- Update libspng to 0.6.1.
- Update Orc to 0.4.32.
- Update Pango to 1.46.2.
- Update HDF5 to 1.12.0.
- Update ImageMagick to 6.9.11-30.
- Update libde265 to 1.0.7.
- Update libheif to 1.9.1.
- Update matio to 1.5.18.
- Update LLVM toolchain to 11.0.0-rc3.
  • Loading branch information
kleisauke committed Sep 27, 2020
1 parent 3889397 commit 2006d72
Show file tree
Hide file tree
Showing 39 changed files with 292 additions and 600 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*crlf.patch -text
104 changes: 54 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,34 @@
Experiment with building a libvips binary for Windows with [MXE](https://github.com/mxe/mxe).

## libvips-web dependencies
| Dependency | Version | Used under the terms of |
|-----------------|-----------|---------------------------------|
| [cairo] | 1.17.2 | Mozilla Public License 2.0 |
| [expat] | 2.2.9 | MIT Licence |
| [fontconfig] | 2.13.92 | [fontconfig Licence] (BSD-like) |
| [freetype] | 2.10.2 | [freetype Licence] (BSD-like) |
| [fribidi] | 1.0.10 | LGPLv3 |
| [gdk-pixbuf] | 2.40.0 | LGPLv3 |
| [giflib] | 5.1.4 | MIT Licence |
| [glib] | 2.65.3 | LGPLv3 |
| [harfbuzz] | 2.7.2 | MIT Licence |
| [lcms] | 2.11 | MIT Licence |
| [libexif] | 0.6.22 | LGPLv3 |
| [libffi] | 3.3 | MIT Licence |
| [libgsf] | 1.14.47 | LGPLv3 |
| [libjpeg-turbo] | 2.0.5 | [zlib License, IJG License] |
| [libpng] | 1.6.37 | [libpng License version 2] |
| [librsvg] | 2.49.5 | LGPLv3 |
| [libspng] | 0.6.0 | [BSD 2-Clause, libpng License] |
| [libtiff] | 4.1.0 | [libtiff License] (BSD-like) |
| [libvips] | 8.10.1 | LGPLv3 |
| [libwebp] | 1.1.0 | New BSD License |
| [libxml2] | 2.9.10 | MIT Licence |
| [orc] | 0.4.31 | [orc License] (BSD-like) |
| [pango] | 1.46.1 | LGPLv3 |
| [pixman] | 0.40.0 | MIT Licence |
| [zlib] | 1.2.11 | [zlib Licence] |

| Dependency | Version | Used under the terms of |
|-----------------|-----------|--------------------------------------------------------------|
| [cairo] | 1.17.2 | Mozilla Public License 2.0 |
| [expat] | 2.2.9 | MIT Licence |
| [fontconfig] | 2.13.92 | [fontconfig Licence] (BSD-like) |
| [freetype] | 2.10.2 | [freetype Licence] (BSD-like) |
| [fribidi] | 1.0.10 | LGPLv3 |
| [gdk-pixbuf] | 2.40.0 | LGPLv3 |
| [giflib] | 5.1.4 | MIT Licence |
| [glib] | 2.66.0 | LGPLv3 |
| [harfbuzz] | 2.7.2 | MIT Licence |
| [lcms] | 2.11 | MIT Licence |
| [libexif] | 0.6.22 | LGPLv3 |
| [libffi] | 3.3 | MIT Licence |
| [libgsf] | 1.14.47 | LGPLv3 |
| [libjpeg-turbo] | 2.0.5 | [zlib License, IJG License] |
| [libpng] | 1.6.37 | [libpng License version 2] |
| [librsvg] | 2.50.0 | LGPLv3 |
| [libspng] | 0.6.1 | BSD 2-Clause |
| [libtiff] | 4.1.0 | [libtiff License] (BSD-like) |
| [libvips] | 8.10.1 | LGPLv3 |
| [libwebp] | 1.1.0 | New BSD License |
| [libxml2] | 2.9.10 | MIT Licence |
| [orc] | 0.4.32 | [orc License] (BSD-like) |
| [pango] | 1.46.2 | LGPLv3 |
| [pixman] | 0.40.0 | MIT Licence |
| [zlib] | 1.2.11 | [zlib Licence] |

[cairo]: https://gitlab.freedesktop.org/cairo/cairo
[expat]: https://github.com/libexpat/libexpat
Expand All @@ -52,7 +53,6 @@ Experiment with building a libvips binary for Windows with [MXE](https://github.
[libpng License version 2]: https://github.com/glennrp/libpng/blob/master/LICENSE
[librsvg]: https://gitlab.gnome.org/GNOME/librsvg
[libspng]: https://github.com/randy408/libspng
[BSD 2-Clause, libpng License]: https://github.com/randy408/libspng/blob/master/LICENSE
[libtiff]: https://gitlab.com/libtiff/libtiff
[libtiff License]: https://libtiff.gitlab.io/libtiff/misc.html
[libvips]: https://github.com/libvips/libvips
Expand All @@ -66,27 +66,29 @@ Experiment with building a libvips binary for Windows with [MXE](https://github.
[zlib Licence]: https://github.com/madler/zlib/blob/master/zlib.h

## libvips-all dependencies

Same as libvips-web + these extra dependencies:

| Dependency | Version | Used under the terms of |
|-----------------|-----------|----------------------------------|
| [aom] | 2.0.0 | BSD 2-Clause |
| [cfitsio] | 3.49 | BSD-like |
| [fftw] | 3.3.8 | GPLv2 |
| [hdf5] | 1.10.6 | BSD-like |
| [imagemagick] | 6.9.11-29 | [ImageMagick License] (GPL-like) |
| [libde265] | 1.0.6 | LGPLv3 |
| [libheif] | 1.8.0 | LGPLv3 |
| [matio] | 1.5.17 | BSD 2-Clause |
| [nifticlib] | 2.0.0 | Public domain |
| [openexr] | 2.5.3 | BSD 3-Clause |
| [openjpeg] | 2.3.1 | BSD 2-Clause |
| [openslide] | 3.4.1 | LGPLv3 |
| [poppler] | 20.09.0 | GPLv2 |
| [sqlite] | 3.33.0 | Public domain |
| [x265] | 3.4 | GPLv2 |
| Dependency | Version | Used under the terms of |
|-----------------|-----------|--------------------------------------------------------------|
| [aom] | 2.0.0 | BSD 2-Clause + [Alliance for Open Media Patent License 1.0] |
| [cfitsio] | 3.49 | BSD-like |
| [fftw] | 3.3.8 | GPLv2 |
| [hdf5] | 1.12.0 | BSD-like |
| [imagemagick] | 6.9.11-30 | [ImageMagick License] (GPL-like) |
| [libde265] | 1.0.7 | LGPLv3 |
| [libheif] | 1.9.1 | LGPLv3 |
| [matio] | 1.5.18 | BSD 2-Clause |
| [nifticlib] | 2.0.0 | Public domain |
| [openexr] | 2.5.3 | BSD 3-Clause |
| [openjpeg] | 2.3.1 | BSD 2-Clause |
| [openslide] | 3.4.1 | LGPLv3 |
| [poppler] | 20.09.0 | GPLv2 |
| [sqlite] | 3.33.0 | Public domain |
| [x265] | 3.4 | GPLv2 |

[aom]: https://aomedia.googlesource.com/aom/
[Alliance for Open Media Patent License 1.0]: https://aomedia.org/license/patent-license/
[cfitsio]: https://heasarc.gsfc.nasa.gov/fitsio/
[hdf5]: https://www.hdfgroup.org/solutions/hdf5/
[fftw]: https://github.com/FFTW/fftw3
Expand All @@ -101,9 +103,10 @@ Same as libvips-web + these extra dependencies:
[openslide]: https://github.com/openslide/openslide
[poppler]: https://gitlab.freedesktop.org/poppler/poppler
[sqlite]: https://www.sqlite.org/
[x265]: https://bitbucket.org/multicoreware/x265/wiki/Home
[x265]: https://bitbucket.org/multicoreware/x265_git/wiki/Home

## MozJPEG

MozJPEG is a libjpeg-turbo fork that provides increased compression for JPEG images
(at the expense of compression performance). The above variants can optionally be built
with MozJPEG instead of libjpeg-turbo. This can be turned on with the `--with-mozjpeg`
Expand All @@ -113,10 +116,11 @@ argument. For example:
./build.sh --with-mozjpeg
```

| Dependency | Version | Used under the terms of |
|-----------------|-----------|----------------------------------|
| [mozjpeg] | 8fb32c0¹ | [zlib License, IJG License] |
| Dependency | Version | Used under the terms of |
|-----------------|-----------|--------------------------------------------------------------|
| [mozjpeg] | 8fb32c0¹ | [zlib License, IJG License] |

¹ MozJPEG is built from the [`master`](https://github.com/mozilla/mozjpeg/tree/master) branch to maintain binary compatibility with libjpeg-turbo.
¹ MozJPEG is built from the [`master`](https://github.com/mozilla/mozjpeg/tree/master) branch
to maintain binary compatibility with libjpeg-turbo.

[mozjpeg]: https://github.com/mozilla/mozjpeg
6 changes: 3 additions & 3 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
- [x] Not sure about `librsvg`, because v2.42.0+ requires the Rust toolchain.
- [ ] Try to test the binaries with the Python test suite on Wine.
- [ ] Incorporate the llvm-mingw toolchain plugin into MXE (see [mxe/mxe#2330](https://github.com/mxe/mxe/issues/2330)).
- [x] Test the `armv7-w64-mingw32` target on a Raspberry Pi 3 with Windows 10 IoT.
- [ ] Test the `aarch64-w64-mingw32` target. Perhaps we could install Windows 10 ARM64 on a Raspberry Pi 4B?
- [x] Test the `armv7-w64-mingw32` target on a Raspberry Pi 3B with Windows 10 IoT.
- [ ] Test the `aarch64-w64-mingw32` target on a Raspberry Pi 4B with Windows 10 ARM64.
- [ ] The VIPS test suite should be able to run successfully on ARM/ARM64.
- [ ] [`libffi`](build/patches/libffi-3-fixes.patch), [`openslide`](build/patches/openslide-3-fixes.patch) ([mstorsjo/llvm-mingw#67](https://github.com/mstorsjo/llvm-mingw/issues/67)), [`hdf5`](build/patches/hdf5-1-fixes.patch) and [`glib`](build/patches/glib-2-fixes.patch) needs llvm-mingw specific patches. Fix them upstream or within LLVM.
- [ ] Fix the llvm-mingw specific patches upstream or within LLVM.
- [ ] The Rust MinGW-w64 ARM/ARM64 targets are not yet supported, is there an alternative way to build librsvg for these architectures?
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ else
fi

if [ "$type" = "static" ] && [ "$deps" = "all" ]; then
echo "WARNING: Distributing a statically linked library against GPL libraries, without releasing the code as GPL, violates the GPL license."
echo "ERROR: Distributing a statically linked library against GPL libraries, without releasing the code as GPL, violates the GPL license."
exit 1
fi

Expand Down
18 changes: 8 additions & 10 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="8366dfc732abd3762493984ccda67004411a4238"
revision="0f091d76f4c21348dbfe5c952df2d9216d5edc37"
initialize=false

if [ -f "$mxe_dir/Makefile" ]; then
Expand All @@ -75,22 +75,20 @@ if [ "$initialize" = true ]; then
git apply $work_dir/patches/mxe-fixes.patch
fi

# The 'plugins' variable controls which plugins are in use.
if [ "$LLVM" = "true" ]; then
plugins="$work_dir/plugins/llvm-mingw"

# Copy LLVM settings
cp -f $work_dir/settings/llvm.mk $mxe_dir/settings.mk
else
# Build with GCC 10.1
plugins="plugins/gcc10"

# Copy GCC settings
cp -f $work_dir/settings/gcc.mk $mxe_dir/settings.mk
fi

# Use the meson-wrapper and our custom overrides
plugins+=" plugins/meson-wrapper $work_dir"
# The 'plugins' variable controls which plugins are in use
plugins="plugins/gcc10 plugins/meson-wrapper $work_dir"

if [ "$LLVM" = "true" ]; then
plugins+=" $work_dir/plugins/llvm-mingw"
fi

if [ "$MOZJPEG" = "true" ]; then
plugins+=" $work_dir/plugins/mozjpeg"
Expand All @@ -110,7 +108,7 @@ make pe-util \
IGNORE_SETTINGS=yes \
MXE_TARGETS=`$mxe_dir/ext/config.guess`

# Build MXE's meson-wrapper (needed by pango, GDK-PixBuf, GLib and Orc),
# Build MXE's meson-wrapper (needed by pango, GDK-PixBuf, GLib and Orc),
# gendef (a tool for generating def files from DLLs)
# and libvips (+ dependencies).
make meson-wrapper gendef vips-$deps \
Expand Down
4 changes: 2 additions & 2 deletions build/libde265.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ PKG := libde265
$(PKG)_WEBSITE := https://www.libde265.org/
$(PKG)_DESCR := Open h.265 video codec implementation.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.0.6
$(PKG)_CHECKSUM := e2a34ca3934a826d0893e966ee93bc2d207f505253be94ad38fb40ca98cceb5f
$(PKG)_VERSION := 1.0.7
$(PKG)_CHECKSUM := eac6b56fcda95b0fe0123849c96c8759d832ec9baded2c9c0a5b5faeffb59005
$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch)))
$(PKG)_GH_CONF := strukturag/libde265/releases,v
$(PKG)_DEPS := cc mingw-std-threads
Expand Down
21 changes: 17 additions & 4 deletions build/libheif.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,28 @@ PKG := libheif
$(PKG)_WEBSITE := http://www.libheif.org/
$(PKG)_DESCR := libheif is a ISO/IEC 23008-12:2017 HEIF file format decoder and encoder.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.8.0
$(PKG)_CHECKSUM := e43ef91a5ad41de4471a2fd484279d0793b419009a7d102965739da8f7b75d96
$(PKG)_VERSION := 1.9.1
$(PKG)_CHECKSUM := 5f65ca2bd2510eed4e13bdca123131c64067e9dd809213d7aef4dc5e37948bca
$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch)))
$(PKG)_GH_CONF := strukturag/libheif/releases,v
$(PKG)_DEPS := cc aom libde265 x265

define $(PKG)_BUILD
cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)' \
$(if $(IS_LLVM),,-DCMAKE_CXX_FLAGS='-Wno-error=maybe-uninitialized')
# Disable multithreading when building with Win32 threads to
# avoid a dependency on mingw-std-threads (which we only use
# in the "all" variant). Disabling multithreading only affects
# decoding tiled HEIF images, so it should be fine.
cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \
$(MXE_CONFIGURE_OPTS) \
--disable-gdk-pixbuf \
--disable-go \
--disable-examples \
$(if $(WIN32_THREADS), --disable-multithreading)

# remove -nostdlib from linker commandline options
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866
$(if $(IS_LLVM), \
$(SED) -i '/^archive_cmds=/s/\-nostdlib//g' '$(BUILD_DIR)/libtool')

$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
Expand Down
4 changes: 2 additions & 2 deletions build/libspng.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ PKG := libspng
$(PKG)_WEBSITE := https://libspng.org/
$(PKG)_DESCR := Simple, modern libpng alternative.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.6.0
$(PKG)_CHECKSUM := 81fea8d8a2e0c8aa51769605ad0e49a682e88697c6b5b60105f5c3806efaa3a3
$(PKG)_VERSION := 0.6.1
$(PKG)_CHECKSUM := 336856bea0216fe0ddc6cc584be5823cfd3a142e9d90d8e1635d2d2a5241f584
$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch)))
$(PKG)_GH_CONF := randy408/libspng/tags,v
$(PKG)_DEPS := cc zlib
Expand Down
4 changes: 2 additions & 2 deletions build/orc.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ PKG := orc
$(PKG)_WEBSITE := https://gstreamer.freedesktop.org/modules/orc.html
$(PKG)_DESCR := Library and set of tools for compiling and executing SIMD assembly language-like programs that operate on arrays of data.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.4.31
$(PKG)_CHECKSUM := a0ab5f10a6a9ae7c3a6b4218246564c3bf00d657cbdf587e6d34ec3ef0616075
$(PKG)_VERSION := 0.4.32
$(PKG)_CHECKSUM := a66e3d8f2b7e65178d786a01ef61f2a0a0b4d0b8370de7ce134ba73da4af18f0
$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch)))
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
Expand Down
Loading

0 comments on commit 2006d72

Please sign in to comment.