Experiment with building a libvips binary for 64-bit Windows with MXE.
Name | MXE version | build-win64 version | New version | 🔺/🔷/🔻 | Notes |
---|---|---|---|---|---|
expat | 2.2.5 | 2.2.5 | 2.2.5 | 🔷 | - |
fftw | 3.3.6-pl1 | 3.3.7 | 3.3.8 | 🔺 | - |
giflib | 5.1.4 | 5.1.4 | 5.1.4 | 🔷 | - |
glib | 2.50.2 | 2.54.2 | 2.54.2 | 🔷 | - |
imagemagick | 6.9.0-0 | 6.8.9 | 6.9.10-4 | 🔺 | - |
lcms | 2.9 | 2.9 | 2.9 | 🔷 | - |
libexif | - | 0.6.21 | 0.6.21 | 🔷 | + shutter speed math exception patch. |
libgsf | 1.14.30 | 1.14.42 | 1.14.42 | 🔷 | - |
libjpeg-turbo | 1.5.3 | 1.5.3 | 1.5.3 | 🔷 | Replaced this patch with this one. |
libpng | 1.6.34 | 1.6.30 | 1.6.34 | 🔺 | - |
librsvg | 2.40.5 | 2.40.19 | 2.43.1 | 🔺 | Requires the Rust toolchain + added patch for 'librsvg_internals' linking. |
libwebp | 0.4.4 | 0.6.1 | 1.0.0 | 🔺 | - |
matio | 1.5.2 | 1.5.6 | 1.5.12 | 🔺 | - |
openslide | - | 3.4.1 | 3.4.1 | 🔷 | Added some MXE specific patches. |
pango | 1.37.4 | 1.40.14 | 1.42.1 | 🔺 | - |
poppler | 0.51.0 | 0.46.0 | 0.66.0 | 🔺 | Switched to CMake. |
tiff | 4.0.9 | 4.0.9 | 4.0.9 | 🔷 | - |
Name | MXE version | build-win64 version | New version | 🔺/🔷/🔻 | Notes |
---|---|---|---|---|---|
cairo | 1.15.4 | 1.14.12 | 1.15.12 | 🔺 | - |
fontconfig | 2.12.6 | 2.12.6 | 2.12.6 | 🔷 | - |
freetype | 2.9.1 | 2.9 | 2.9.1 | 🔺 | - |
fribidi | 0.19.6 | - | 0.19.7 | 🔺 (new) | - |
gdk-pixbuf | 2.32.3 | 2.36.0 | 2.36.12 | 🔺 | Thumbnailer cross-compile failure patch added. |
gettext | 0.19.8.1 | 0.19.8 | 0.19.8.1 | 🔺 | - |
harfbuzz | 1.7.6 | 1.7.6 | 1.7.6 | 🔷 | - |
hdf5 | 1.8.12 | - | 1.8.12 | 🔺 (new) | - |
libcroco | 0.6.2 | 0.6.12 | 0.6.12 | 🔷 | - |
libffi | 3.2.1 | 3.2.1 | 3.2.1 | 🔷 | - |
libiconv | 1.15 | 1.15 | 1.15 | 🔷 | - |
libxml2 | 2.9.4 | 2.9.8 | 2.9.8 | 🔷 | - |
openjpeg | 2.3.0 | 2.1 | 2.3.0 | 🔺 | - |
pixman | 0.33.6 | 0.34.0 | 0.33.6 | 🔻 | Couldn't find a tarball for version 0.34.0 here. |
sqlite | 3.24.0 | 3.22.0 | 3.24.0 | 🔺 | - |
zlib | 1.2.11 | 1.2.11 | 1.2.11 | 🔷 | + libz.dll naming patch & switched to CMake. |
libvips-web
libvips-42.dll
└───libcairo-2.dll
│ └───libgcc_s_seh-1.dll
│ └───libfontconfig-1.dll
│ │ └───libgcc_s_seh-1.dll
│ │ └───libexpat-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libfreetype-6.dll
│ │ └───libharfbuzz-0.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libpixman-1-0.dll
│ │ └───libgcc_s_seh-1.dll
│ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libz1.dll
└───libexif-12.dll
│ └───libintl-8.dll
│ └───libiconv-2.dll
└───libexpat-1.dll
└───libfftw3-3.dll
└───libgif-7.dll
└───libglib-2.0-0.dll
│ └───libintl-8.dll
│ └───libiconv-2.dll
└───libgmodule-2.0-0.dll
│ └───libglib-2.0-0.dll
│ └───libintl-8.dll
└───libgobject-2.0-0.dll
│ └───libglib-2.0-0.dll
│ │ └───libintl-8.dll
│ └───libffi-6.dll
└───libgsf-1-114.dll
│ └───libgio-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgmodule-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ │ └───libz1.dll
│ └───libglib-2.0-0.dll
│ │ └───libintl-8.dll
│ └───libgobject-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libffi-6.dll
│ └───libintl-8.dll
│ │ └───libiconv-2.dll
│ └───libxml2-2.dll
│ │ └───libz1.dll
│ │ └───libiconv-2.dll
│ └───libz1.dll
└───libintl-8.dll
│ └───libiconv-2.dll
└───libjpeg-62.dll
└───liblcms2-2.dll
└───libpango-1.0-0.dll
│ └───libfribidi-0.dll
│ │ └───libglib-2.0-0.dll
│ └───libglib-2.0-0.dll
│ │ └───libintl-8.dll
│ └───libgobject-2.0-0.dll
│ └───libglib-2.0-0.dll
│ └───libffi-6.dll
└───libpangoft2-1.0-0.dll
│ └───libpango-1.0-0.dll
│ │ └───libfribidi-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ └───libfontconfig-1.dll
│ │ └───libgcc_s_seh-1.dll
│ │ └───libexpat-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libfreetype-6.dll
│ │ └───libharfbuzz-0.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libglib-2.0-0.dll
│ │ └───libintl-8.dll
│ └───libgobject-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libffi-6.dll
│ └───libharfbuzz-0.dll
│ └───libgcc_s_seh-1.dll
│ └───libfreetype-6.dll
│ └───libglib-2.0-0.dll
└───libpng16-16.dll
│ └───libz1.dll
└───librsvg-2-2.dll
│ └───libcairo-2.dll
│ │ └───libgcc_s_seh-1.dll
│ │ └───libfontconfig-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libpixman-1-0.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libcroco-0.6-3.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libxml2-2.dll
│ └───libfontconfig-1.dll
│ │ └───libgcc_s_seh-1.dll
│ │ └───libexpat-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libgdk_pixbuf-2.0-0.dll
│ │ └───libgio-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ │ └───libintl-8.dll
│ │ └───libjpeg-62.dll
│ │ └───libpng16-16.dll
│ │ └───libtiff-5.dll
│ └───libgio-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgmodule-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ │ └───libz1.dll
│ └───libglib-2.0-0.dll
│ │ └───libintl-8.dll
│ └───libgobject-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libffi-6.dll
│ └───libpango-1.0-0.dll
│ │ └───libfribidi-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ └───libpangocairo-1.0-0.dll
│ │ └───libpango-1.0-0.dll
│ │ └───libpangoft2-1.0-0.dll
│ │ └───libpangowin32-1.0-0.dll
│ │ └───libcairo-2.dll
│ │ └───libfontconfig-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ └───libpangoft2-1.0-0.dll
│ │ └───libpango-1.0-0.dll
│ │ └───libfontconfig-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ │ └───libharfbuzz-0.dll
│ └───libxml2-2.dll
│ └───libz1.dll
│ └───libiconv-2.dll
└───libtiff-5.dll
│ └───libz1.dll
│ └───libjpeg-62.dll
└───libwebp-7.dll
└───libwebpmux-3.dll
│ └───libwebp-7.dll
└───libz1.dll
libvips-all
Same as libvips-web + these extra dependencies:libvips-42.dll
└───libMagickCore-6.Q16-6.dll
│ └───libcairo-2.dll
│ │ └───libgcc_s_seh-1.dll
│ │ └───libfontconfig-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libpixman-1-0.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libfftw3-3.dll
│ └───libfontconfig-1.dll
│ │ └───libgcc_s_seh-1.dll
│ │ └───libexpat-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libgobject-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libffi-6.dll
│ └───libjpeg-62.dll
│ └───liblcms2-2.dll
│ └───libopenjp2.dll
│ └───libpango-1.0-0.dll
│ │ └───libfribidi-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ └───libpangocairo-1.0-0.dll
│ │ └───libpango-1.0-0.dll
│ │ └───libpangoft2-1.0-0.dll
│ │ └───libpangowin32-1.0-0.dll
│ │ └───libcairo-2.dll
│ │ └───libfontconfig-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ └───libpng16-16.dll
│ └───libtiff-5.dll
│ │ └───libz1.dll
│ │ └───libjpeg-62.dll
│ └───libwebp-7.dll
│ └───libwebpmux-3.dll
│ │ └───libwebp-7.dll
│ └───libxml2-2.dll
│ │ └───libz1.dll
│ │ └───libiconv-2.dll
│ └───libz1.dll
└───libmatio-4.dll
│ └───libz1.dll
│ └───libhdf5-8.dll
│ └───libz1.dll
└───libopenslide-0.dll
│ └───libcairo-2.dll
│ │ └───libgcc_s_seh-1.dll
│ │ └───libfontconfig-1.dll
│ │ └───libfreetype-6.dll
│ │ └───libpixman-1-0.dll
│ │ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libgdk_pixbuf-2.0-0.dll
│ │ └───libgio-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ │ └───libintl-8.dll
│ │ └───libjpeg-62.dll
│ │ └───libpng16-16.dll
│ │ └───libtiff-5.dll
│ └───libgio-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libgmodule-2.0-0.dll
│ │ └───libgobject-2.0-0.dll
│ │ └───libz1.dll
│ └───libglib-2.0-0.dll
│ │ └───libintl-8.dll
│ └───libgobject-2.0-0.dll
│ │ └───libglib-2.0-0.dll
│ │ └───libffi-6.dll
│ └───libjpeg-62.dll
│ └───libopenjp2.dll
│ └───libpng16-16.dll
│ │ └───libz1.dll
│ └───libsqlite3-0.dll
│ └───libtiff-5.dll
│ │ └───libz1.dll
│ │ └───libjpeg-62.dll
│ └───libxml2-2.dll
│ │ └───libz1.dll
│ │ └───libiconv-2.dll
│ └───libz1.dll
└───libpoppler-glib-8.dll
└───libpoppler-77.dll
│ └───libstdc++-6.dll
│ └───liblcms2-2.dll
│ └───libopenjp2.dll
│ └───libjpeg-62.dll
│ └───libpng16-16.dll
│ └───libtiff-5.dll
│ └───libz1.dll
└───libstdc++-6.dll
└───libcairo-2.dll
│ └───libgcc_s_seh-1.dll
│ └───libfontconfig-1.dll
│ └───libfreetype-6.dll
│ └───libpixman-1-0.dll
│ └───libpng16-16.dll
│ └───libz1.dll
└───libfreetype-6.dll
│ └───libharfbuzz-0.dll
│ └───libpng16-16.dll
│ └───libz1.dll
└───libgio-2.0-0.dll
│ └───libglib-2.0-0.dll
│ └───libgmodule-2.0-0.dll
│ └───libgobject-2.0-0.dll
│ └───libz1.dll
└───libglib-2.0-0.dll
│ └───libintl-8.dll
└───libgobject-2.0-0.dll
└───libglib-2.0-0.dll
└───libffi-6.dll
- Try to build with orc.
- Add cfitsio to the 'all target'. MXE already has this dependency.
- Add OpenEXR to the 'all target'. MXE already has this dependency.
- Try to update ImageMagick6 to the latest version (latest versions of ImageMagick are continuous fuzzed by OSS-Fuzz, so it'll reduce the attack surface).
- Try to build libvips as static library.
- Does it violate the LGPL license? libvips has a lot of LGPL dependencies.
- librsvg can't be build statically (it's broken on 2.42, stick with 2.40.20 if we need to build statically).
- GObject (libgobject-2.0-0.dll) and GLib (libglib-2.0-0.dll) needs to be build shared (for the libvips bindings).
- Let Travis build libvips with pre-compiled dependencies.
- Wait for: mxe/mxe#2021.
- Do we need to add
libvipsCC-42.dll
andlibvips-cpp-42.dll
? For NetVips this isn't necessary. - Should we include the
etc
,include
,lib
andshare
folders? Also this isn't necessary for NetVips. -
AUTHORS
,ChangeLog
,COPYING
andREADME.md
needs to be added. - Incorporate all new dependencies and patches into MXE.
- Should we also add libvips-web?
- Not sure about
librsvg
, because v2.42.0+ requires the Rust toolchain.
- Do we need to add
expat
,zlib
,gettext
tovips-all_DEPS
andvips-web_DEPS
? - Try to update Pixman to 0.34.0.