Code Monkey home page Code Monkey logo

build-win64-mxe's Introduction

libvips: an image processing library

CI Fuzzing Status Coverity Status Gitter

Introduction

libvips is a demand-driven, horizontally threaded image processing library. Compared to similar libraries, libvips runs quickly and uses little memory. libvips is licensed under the LGPL 2.1+.

It has around 300 operations covering arithmetic, histograms, convolution, morphological operations, frequency filtering, colour, resampling, statistics and others. It supports a large range of numeric types, from 8-bit int to 128-bit complex. Images can have any number of bands. It supports a good range of image formats, including JPEG, JPEG2000, JPEG-XL, TIFF, PNG, WebP, HEIC, AVIF, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF, Analyze, NIfTI, DeepZoom, and OpenSlide. It can also load images via ImageMagick or GraphicsMagick, letting it work with formats like DICOM.

It comes with bindings for C, C++, and the command-line. Full bindings are available for :

Language Binding
Ruby ruby-vips
Python pyvips
PHP php-vips
C# / .NET NetVips
Go govips
Lua lua-vips
Crystal crystal-vips
Elixir vix

libvips is used as an image processing engine by:

sharp (on node.js)
imgproxy
bimg
sharp for Go
Ruby on Rails
carrierwave-vips
mediawiki
PhotoFlow

and others. The official libvips GUI is nip2, a strange combination of a spreadsheet and a photo editor.

Install

There are packages for most Unix-like operating systems, including macOS. Check your package manager.

There are binaries for Windows in releases.

The libvips website has detailed install notes.

Building from source

libvips uses the Meson build system, version 0.56 or later. Meson can use ninja, Visual Studio or XCode as a backend, so you'll also need one of them.

libvips must have build-essential, pkg-config, libglib2.0-dev, libexpat1-dev. See the Dependencies section below for a full list of the libvips optional dependencies.

There are basic bash completions in completions/, see the README in there.

Cheatsheet

cd libvips-x.y.x
meson setup build --prefix /my/install/prefix
cd build
meson compile
meson test
meson install

Check the output of meson setup carefully and make sure it found everything you wanted it to find. Add arguments to meson setup to change the build configuration.

  • Add flags like -Dnsgif=false to turn libvips options on and off, see meson_options.txt for a list of all the build options libvips supports.

  • Add flags like -Dmagick=disabled to turn libvips dependencies on and off, see meson_options.txt and the list below for a summary of all the libvips dependencies.

  • You might need to add --libdir lib on Debian if you don't want the arch name in the library path.

  • Add --default-library static for a static build.

  • Use eg. CC=clang CXX=clang++ meson setup ... to change compiler.

  • You can have many build-dir, pick whatever names you like, for example one for release and one for debug.

There's a more comprehensive test suite you can run once libvips has been installed. Use pytest in the libvips base directory.

Optional dependencies

If suitable versions are found, libvips will add support for the following libraries automatically. Packages are generally found with pkg-config, so make sure that is working.

libjpeg

Anything that is compatible with the IJG JPEG library. Use mozjpeg if you can. Another option is libjpeg-turbo.

libexif

If available, libvips adds support for EXIF metadata in JPEG files.

librsvg

The usual SVG loader. If this is not present, vips will try to load SVGs via imagemagick instead.

PDFium

If present, libvips will attempt to load PDFs with PDFium. Download the prebuilt pdfium binary from:

https://github.com/bblanchon/pdfium-binaries

Untar to the libvips install prefix, for example:

cd ~/vips
tar xf ~/pdfium-linux.tgz

Create a pdfium.pc like this (update the version number):

VIPSHOME=/home/john/vips
cat > $VIPSHOME/lib/pkgconfig/pdfium.pc << EOF
     prefix=$VIPSHOME
     exec_prefix=\${prefix}
     libdir=\${exec_prefix}/lib
     includedir=\${prefix}/include
     Name: pdfium
     Description: pdfium
     Version: 4290
     Requires:
     Libs: -L\${libdir} -lpdfium
     Cflags: -I\${includedir}
EOF

If PDFium is not detected, libvips will look for poppler-glib instead.

poppler-glib

The Poppler PDF renderer, with a glib API. If this is not present, vips will try to load PDFs via imagemagick.

cgif

If available, libvips will save GIFs with cgif. If this is not present, vips will try to save gifs via imagemagick instead.

libarchive

If available, libvips adds support for creating image pyramids with dzsave.

libtiff

The TIFF library. It needs to be built with support for JPEG and ZIP compression. 3.4b037 and later are known to be OK.

fftw3

If libvips finds this library, it uses it for fourier transforms.

lcms2

If present, vips_icc_import(), vips_icc_export() and vips_icc_transform() can be used to manipulate images with ICC profiles.

libspng

If present, libvips will load and save PNG files using libspng. If not, it will look for the standard libpng package.

libimagequant, quantizr

If one of these quantisation packages is present, libvips can write 8-bit palette-ised PNGs and GIFs.

ImageMagick, or optionally GraphicsMagick

If available, libvips adds support for loading and saving all libMagick-supported image file types. You can enable and disable load and save separately.

Imagemagick 6.9+ needs to have been built with --with-modules. Most packaged IMs are, I think.

If you are going to be using libvips with untrusted images, perhaps in a web server, for example, you should consider the security implications of enabling a package with such a large attack surface.

pangocairo

If available, libvips adds support for text rendering. You need the package pangocairo in pkg-config --list-all.

highway

If present, libvips will accelerate some operations with SIMD. If not, it will look for the orc-0.4 package.

matio

If available, vips can load images from Matlab save files.

cfitsio

If available, vips can load FITS images.

libwebp

If available, vips can load and save WebP images.

libniftiio

If available, vips can load and save NIfTI images.

OpenEXR

If available, libvips will directly read (but not write, sadly) OpenEXR images.

OpenJPEG

If available, libvips will read and write JPEG2000 images.

libjxl

If available, libvips will read and write JPEG-XL images.

OpenSlide

If available, libvips can load OpenSlide-supported virtual slide files: Aperio, Hamamatsu, Leica, MIRAX, Sakura, Trestle, and Ventana.

libheif

If available, libvips can load and save HEIC and AVIF images. Your libheif (in turn) needs to be built with the correct decoders and encoders. You can check with eg.:

$ heif-convert --list-decoders
HEIC decoders:
- libde265 = libde265 HEVC decoder, version 1.0.9
AVIF decoders:
- dav1d = dav1d v6.6.0
- aom = AOMedia Project AV1 Decoder v3.5.0
$ heif-enc --list-encoders
HEIC encoders:
- x265 = x265 HEVC encoder (3.5+1-f0c1022b6) [default]
AVIF encoders:
- aom = AOMedia Project AV1 Encoder v3.5.0 [default]
- svt = SVT-AV1 encoder v1.1.0
- rav1e = Rav1e encoder

Contributors

Code Contributors

This project exists thanks to all the people who contribute.

Organizations

We've had generous financial support from our sponsors. Thank you very much!

build-win64-mxe's People

Contributors

jcupitt avatar kleisauke avatar lovell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

build-win64-mxe's Issues

just question on "how to build"?

I tried docker on Windows with WSL ubuntu, but failed.
Docker image seems build successful. But run it will meet this error:

ERROR: OCI-compliant container runtime not found. Please install Podman or Docker.

Anyone know something?

linking to vips failed on Windows with msys64

failed with vips version: 8.14.

I used govips like:
// #cgo pkg-config: vips

There is no this issue on 8.10.

C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgio-2.0: No such file or directory
C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lintl: No such file or directory
C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgmodule-2.0: No such file or directory
C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lintl: No such file or directory
C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lintl: No such file or directory

vips.pc.

prefix=/data/mxe/usr/x86_64-w64-mingw32.static.posix.web
includedir=${prefix}/include
libdir=${prefix}/lib

Name: vips
Description: Image processing library
Version: 8.14.5
Requires: glib-2.0 >= 2.40, gio-2.0, gobject-2.0
Requires.private: expat, zlib >= 0.4, libarchive >= 3.0.0, imagequant, cgif >= 0.2.0, libexif >= 0.6, libjpeg, spng >= 0.7, libwebp >= 0.6, libwebpmux >= 0.6, libwebpdemux >= 0.6, pangocairo >= 1.32.6, pangoft2 >= 1.32.6, fontconfig, libtiff-4, librsvg-2.0 >= 2.40.3, cairo >= 1.2, lcms2, orc-0.4 >= 0.4.11, libheif >= 1.4.0
Libs: -L${libdir} -lvips
Libs.private: -lm -lintl
Cflags: -I${includedir}

question: Failed to build package vips-all for target x86_64-w64-mingw32.shared.posix.all!

This is my script:

> ./build.sh all --with-hevc -r 8.13

Failed to build package vips-all for target x86_64-w64-mingw32.shared.posix.all!
------------------------------------------------------------
Hunk #2 FAILED at 1189.
2 out of 2 hunks FAILED -- saving rejects to file libvips/iofuncs/init.c.rej
patching file libvips/iofuncs/util.c
Hunk #1 succeeded at 1993 with fuzz 1 (offset -6 lines).
make[1]: *** [Makefile:913: build-only-vips-all_x86_64-w64-mingw32.shared.posix.all] Error 1
make[1]: Leaving directory '/data/mxe'
real    0m3.547s
user    0m3.497s
sys     0m0.112s
------------------------------------------------------------
[log]      /data/mxe/log/vips-all_x86_64-w64-mingw32.shared.posix.all

make: *** [Makefile:902: /data/mxe/usr/x86_64-w64-mingw32.shared.posix.all/installed/vips-all] Error 1

Move JXL from ALL to WEB group

Hello,

JXL integrated in libvips has been working well for month now.

Would it be possible to add jxl to the web build instead of the all build?

I would make life much easier for integrators that uses libvips.net for example

Thank you

Test failure with vips_scale on Windows x86

It looks like the compiler flags -ffast-math -ftree-vectorize (added since 8.7.0) causes issues on Windows 32-bit (x86) on the TestConversion.test_scaleimage testcase.

================================== FAILURES ===================================
_______________________ TestConversion.test_scaleimage ________________________

self = <test_conversion.TestConversion object at 0x04FBA2B0>

    def test_scaleimage(self):
        for fmt in noncomplex_formats:
            test = self.colour.cast(fmt)

            im = test.scaleimage()
            assert im.max() == 255
            assert im.min() == 0

            im = test.scaleimage(log=True)
>           assert im.max() == 255
E           assert 254.0 == 255
E            +  where 254.0 = <function Image.__getattr__.<locals>.call_function at 0x04B6B1E0>()
E            +    where <function Image.__getattr__.<locals>.call_function at 0x04B6B1E0> = <pyvips.Image 100x100 uchar, 3 bands, srgb>.max

test\test-suite\test_conversion.py:723: AssertionError
==================== 1 failed, 92 passed in 28.28 seconds =====================

All noncomplex_formats fails except BandFormat.DOUBLE. This will work fine, for example:

    def test_scaleimage(self):
        test = self.colour.cast(pyvips.BandFormat.DOUBLE)

        im = test.scaleimage()
        assert im.max() == 255
        assert im.min() == 0

        im = test.scaleimage(log=True)
        assert im.max() == 255

These vips-dev-w32-* binaries will currently fail on the TestConversion.test_scaleimage testcase:
https://github.com/libvips/build-win64-mxe/releases/tag/v8.7.0
https://github.com/libvips/build-win64-mxe/releases/tag/v8.7.1
https://github.com/libvips/build-win64-mxe/releases/tag/v8.7.2

Note that the 64-bit, v8.7.0-rc3 release and all vips-dev-w32-* binaries from here will work as expected.

/cc @jcupitt

Can't download ImageMagick

[download]    ImageMagick-6.9.10-35.tar.xz
MXE Warning! Downloading imagemagick from second URL.
MXE Warning! Downloading imagemagick from backup.

Download failed or wrong checksum of package imagemagick!
------------------------------------------------------------
2019-04-05 03:41:21 ERROR 404: Not Found.
--2019-04-05 03:41:21--  http://d1yihgixbnrglp.cloudfront.net/ImageMagick%2D6%2E9%2E10%2D35%2Etar%2Exz_0fbde13bac477fa9f87b5f65a03d99d184167dc7b43ec434b647f024627087d5
Reusing existing connection to d1yihgixbnrglp.cloudfront.net:80.
HTTP request sent, awaiting response... 404 Not Found
2019-04-05 03:41:21 ERROR 404: Not Found.
Download failed!

Failed to build package librsvg for target x86_64-w64-mingw32.shared.win32.all!

Hi,

I am trying to build libvips for windows --without-llvm and as soon as I reach librsvg it failed. Any idea why?


Failed to build package librsvg for target x86_64-w64-mingw32.shared.win32.all!
------------------------------------------------------------
checking for dlopen in -ldl... no
checking for x86_64-w64-mingw32.shared.win32.all-cargo... x86_64-w64-mingw32.shared.win32.all-cargo
checking for x86_64-w64-mingw32.shared.win32.all-rustc... x86_64-w64-mingw32.shared.win32.all-rustc
configure: error: librsvg needs at least rustc version 1.70.0
make[1]: *** [Makefile:914: build-only-librsvg_x86_64-w64-mingw32.shared.win32.all] Error 1
make[1]: Leaving directory '/data/mxe'
real    0m2.718s
user    0m2.615s
sys     0m0.186s
------------------------------------------------------------
[log]      /data/mxe/log/librsvg_x86_64-w64-mingw32.shared.win32.all

make: *** [Makefile:902: /data/mxe/usr/x86_64-w64-mingw32.shared.win32.all/installed/librsvg] Error 1`

Error libvips-cpp-42.dll doesn't exist when build for windows

I've successfully building libvips for windows several times. Then one day this error shows up and I can't build anything anymore. I've tried everything.

[build]       vips-web                  i686-w64-mingw32.static.posix.web
[done]        vips-web                  i686-w64-mingw32.static.posix.web          49392 KiB      0m43.684s
Copying libvips and dependencies
Error: File doesn't exist: /data/mxe/usr/i686-w64-mingw32.static.posix.web/bin/libvips-cpp-42.dll

Proposal: Release the Windows builds in another repo

Because we might be able to deliver a lot of extra files (see #4) it might be useful to release them in a separate repo. We could rename this repository to windows-builds (this repo is no longer dedicated to 64-bit, it also supports 32-bit Windows) and release the files here.

A build chooser can also be very handy, see for example the Windows build chooser of FFmpeg:
https://ffmpeg.zeranoe.com/builds/

We can do something similar for this repo and host it on GitHub Pages.

pdfium question

Description

Hello there and thanks for the hard work

I'm wondering why even in all, it's build with --without-pdfium argument.
The install seem well documented, so is there a problem with pdfium ?

Just trying to see if it could be possible to replace poppler (GPL) by pdfium (apache 2.0)

Proposal: Split up distribution and provide static executables

So far we have released these Windows binaries with libvips:

vips-dev-w64-web-x.y.z.zip
vips-dev-w64-all-x.y.z.zip

These ZIP files includes the pre-compiled binaries for Windows 64-bit. It also includes the necessary headers and def files.

Since most Windows users only use the executable / DLL files, I think it would be a good idea to split this distribution to:

vips-shared-w64-web-x.y.z.zip
vips-shared-w64-all-x.y.z.zip
vips-dev-w64-web-x.y.z.zip
vips-dev-w64-all-x.y.z.zip

The -shared variant will only include the executables (vips.exe, vipsedit.exe, vipsheader.exe and vipsthumbnail.exe) with the dependent DLL files and a copy of the GTK-Doc files. The -dev variant will only include the necessary headers and all .lib, .def, .a files for the -shared variant. Perhaps we could also include some C / C++ code examples in this build:
https://libvips.github.io/libvips/API/current/using-from-c.html#id-1.2.4.10.3
https://libvips.github.io/libvips/API/current/using-from-cpp.html#using-cpp

We could also add a third variant containing the statically linked executable files without relying on external DLL files:

vips-static-w64-web-x.y.z.zip

Note that this is only possible for -web distribution of libvips. Because distributing statically linked binaries against GPL libraries, violates the GPL license.

Finally, I think it would be useful to release the 32-bit version as well. This will then be the entire list of Windows builds:

vips-static-w64-web-x.y.z.zip
vips-shared-w64-web-x.y.z.zip
vips-shared-w64-all-x.y.z.zip
vips-dev-w64-web-x.y.z.zip
vips-dev-w64-all-x.y.z.zip
vips-static-w32-web-x.y.z.zip
vips-shared-w32-web-x.y.z.zip
vips-shared-w32-all-x.y.z.zip
vips-dev-w32-web-x.y.z.zip
vips-dev-w32-all-x.y.z.zip

Pheww.. that's a lot of files! This brings us to the next proposal: #5

Failed to patch meson

I tried d94ece9 but I got the following error:

$ ./build.sh 8.7
stretch: Pulling from library/rust

-- snip --

Successfully tagged libvips-build-win-mxe:latest
Patching meson
touch: cannot touch '/usr/local/etc/is-meson-patched': Permission denied
testing build ... wine: cannot find '8.7/vips-dev-8.7/bin/vips.exe'
WARNING: vips.exe failed to run

I succeed to do it when I run it with root user.

diff --git a/build.sh b/build.sh
index 14056e3..177a227 100755
--- a/build.sh
+++ b/build.sh
@@ -44,7 +44,7 @@ docker pull rust:stretch
 docker build --build-arg ARCH=$arch -t libvips-build-win-mxe container
 
 # Run build scripts inside container
-docker run --rm -t -u $(id -u):$(id -g) -v $PWD/$version:/data \
+docker run --rm -t -u root -v $PWD/$version:/data \
   libvips-build-win-mxe $deps $target
 
 # test outside the container ... saves us having to install wine inside docker

Possible improvement: use default optimisation level of -Os, selectively compile at -O3

At the moment we optimise C/C++ dependencies for performance via -O3:

export CFLAGS := -O3 -g -gcodeview -fdata-sections -ffunction-sections
export CXXFLAGS := -O3 -g -gcodeview -fdata-sections -ffunction-sections

...and Rust dependencies (librsvg for now, others will surely follow) for size via z:

export CARGO_PROFILE_RELEASE_OPT_LEVEL := z

As the worst case example, aom is particularly huge and doesn't really benefit from -O3 as an increasing number of its hot functions/loops are written in assembler.

Should we switch to optimise C/C++ at -Os by default then selectively opt-in certain dependencies to -O3 where we know that is the better option, similar to the approach taken by the sharp-libvips scripts?

heifsave: Unsupported compression (hevc)

vips-8.10.2-Mon Oct 12 16:43:59 UTC 2020

Unsupported compression when using hevc

PS D:\DESKTOP\vips-dev-8.10\bin> ./vips.exe heifsave 2.jpg 2.heif --compression hevc
heifsave: Unsupported compression

In the 8.10.2 build, hevc compression is not usable, while in 8.10.1 it dose.

No branch to cross-compile latest libvips master with meson build system?

I was wondering if there is any branch that does not expect to find a configure file in the main folder of libvips and instead a meson.build file.

Or it has not been yet released?

If I try latest commit in master in libvips, I get the following error:
bash: line 1: /data/mxe/tmp-vips-web-x86_64-w64-mingw32.shared.posix.web/vips-8.13.0-9cbc36/configure: No such file or directory

Commit of libvips 9cbc36

Thanks ;-)

Invalid target specified: "--with-hevc-w64-mingw32.shared.win32.all"

------------------------------------------------------------
 Invalid target specified: "--with-hevc-w64-mingw32.shared.win32.all"

 Please use:
 i686-w64-mingw32.static
 i686-w64-mingw32.shared
 x86_64-w64-mingw32.static
 x86_64-w64-mingw32.shared
 armv7-w64-mingw32.static
 armv7-w64-mingw32.shared
 aarch64-w64-mingw32.static
 aarch64-w64-mingw32.shared
------------------------------------------------------------
.  Stop.

I was building it with ./build.sh all --with-hevc and i got above output.
Full output is very clean, but i will attach it anyway.
log.txt

issues with Zlib while building libvips

Hi @kleisauke and @jcupitt,

I configured docker, wsl2 (Ubuntu) correctly, but when I tried to build libvips, I got an error regarding zlib library (Download failed).

here is a copy of the error about zlib, as you see below. I checked zlib release, and the newer version is 1.3, as you can see here : zlib. Will you please help me solve the download issues?:

  View a summary of image vulnerabilities and recommendations → docker scout quickview
Skip cloning, MXE already exists at /data/mxe
[ignore settings.mk]
[download]    zlib-1.2.13.tar.xz
MXE Warning! Downloading zlib from second URL.
MXE Warning! Downloading zlib from backup.

Download failed or wrong checksum of package zlib!
------------------------------------------------------------
2023-09-15 12:51:53 ERROR 404: Not Found.
--2023-09-15 12:51:53--  http://d1yihgixbnrglp.cloudfront.net/zlib%2D1%2E2%2E13%2Etar%2Exz_d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98
Reusing existing connection to d1yihgixbnrglp.cloudfront.net:80.
HTTP request sent, awaiting response... 404 Not Found
2023-09-15 12:51:53 ERROR 404: Not Found.
Download failed!
------------------------------------------------------------
[log]      /data/mxe/log/zlib-download

make: *** [Makefile:741: download-only-zlib-1.2.13.tar.xz] Error 1

Can't install rust without being root

First, I just really want to thank you for this project. It really makes my life so much easier.

I am building web, static, and x86_64 on Ubuntu for Windows (wsl2).
If I change the top level build.sh so that I am root in the docker instance, "-u $(id -u):$(id -g) " changed to "-u 0", then I can build the entire project without issue.
If I leave it, then I get a failure in the build/install of rust_x86_64-pc-linux-gnu.
This happens on every version of build-win64-mxe including V8.12.1.

rust_x86_64-pc-linux-gnu log file:

make[1]: Entering directory '/data/mxe'
== General overrides: /data/overrides.mk
[plugin] /data/plugins/mozjpeg/
[plugin] /data/plugins/zlib-ng/
[plugin] /data/plugins/llvm-mingw/
[plugin] /data/plugins/proxy-libintl/
uname -a
Linux 20822bf1c700 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 GNU/Linux
git log --pretty=tformat:"%H - %s [%ar] [%d]" -1
02852a7b690aa411ce2a2089deea25a7292a33d6 - update curl [2 weeks ago] [ (HEAD -> master)]
lsb_release -a 2>/dev/null || sw_vers 2>/dev/null || true
autoconf --version 2>/dev/null | head -1
autoconf (GNU Autoconf) 2.69
automake --version 2>/dev/null | head -1
automake (GNU automake) 1.16.1
gcc --version
gcc (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

g++ --version
g++ (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

python --version
Python 2.7.16
perl --version 2>&1 | head -3

This is perl 5, version 28, subversion 1 (v5.28.1) built for x86_64-linux-gnu-thread-multi
(with 65 registered patches, see perl -V for more detail)
rm -rf '/data/mxe/tmp-rust-x86_64-pc-linux-gnu'
mkdir -p '/data/mxe/tmp-rust-x86_64-pc-linux-gnu'
mkdir -p '/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src'
mkdir -p '/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_'
# disable wine with readonly directory
# see mxe/mxe#841
mkdir -p '/data/mxe/tmp-rust-x86_64-pc-linux-gnu/readonly'
chmod 0555 '/data/mxe/tmp-rust-x86_64-pc-linux-gnu/readonly'
cd '/data/mxe/tmp-rust-x86_64-pc-linux-gnu' && tar xzf '/data/mxe/pkg/rustc-nightly-src.tar.gz'
cd '/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src'
(cd '/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src' && patch -p1 -u) < /data/plugins/llvm-mingw/patches/rust-1-fixes.patch
patching file compiler/rustc_target/src/spec/aarch64_pc_windows_gnu.rs
patching file compiler/rustc_target/src/spec/mod.rs
patching file compiler/rustc_target/src/spec/thumbv7a_pc_windows_gnu.rs
patching file compiler/rustc_target/src/spec/windows_gnu_base.rs
patching file compiler/rustc_target/src/spec/windows_gnu_base.rs
patching file src/bootstrap/dist.rs
patching file vendor/compiler_builtins/build.rs
patching file vendor/compiler_builtins/src/arm.rs
patching file library/panic_unwind/src/gcc.rs
patching file library/unwind/src/libunwind.rs
# x86_64-pc-linux-gnu -> x86_64-unknown-linux-gnu
# Disable LTO, panic strategy and optimization settings while
# we bootstrap Rust
# Unexport target specific compiler / linker flags
cd '/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_' && /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/configure --prefix='/data/mxe/usr/x86_64-pc-linux-gnu' --release-channel=nightly --enable-extended --tools=cargo,src --disable-docs --disable-codegen-tests --python='/usr/bin/python' --llvm-root='/data/mxe/usr/x86_64-pc-linux-gnu' --set target.x86_64-unknown-linux-gnu.cc='/data/mxe/usr/x86_64-pc-linux-gnu/bin/clang' --set target.x86_64-unknown-linux-gnu.cxx='/data/mxe/usr/x86_64-pc-linux-gnu/bin/clang++' --set target.x86_64-unknown-linux-gnu.linker='/data/mxe/usr/x86_64-pc-linux-gnu/bin/clang' --set target.x86_64-unknown-linux-gnu.ar='/data/mxe/usr/x86_64-pc-linux-gnu/bin/llvm-ar' --set target.x86_64-unknown-linux-gnu.ranlib='/data/mxe/usr/x86_64-pc-linux-gnu/bin/llvm-ranlib'
configure: processing command line
configure:
configure: install.prefix := /data/mxe/usr/x86_64-pc-linux-gnu
configure: rust.channel := nightly
configure: build.extended := True
configure: build.tools := ['cargo', 'src']
configure: build.docs := False
configure: rust.codegen-tests := False
configure: build.python := /usr/bin/python
configure: target.x86_64-unknown-linux-gnu.llvm-config := /data/mxe/usr/x86_64-pc ...
configure: target.x86_64-unknown-linux-gnu.cc := /data/mxe/usr/x86_64-pc-linux-gn ...
configure: target.x86_64-unknown-linux-gnu.cxx := /data/mxe/usr/x86_64-pc-linux-g ...
configure: target.x86_64-unknown-linux-gnu.linker := /data/mxe/usr/x86_64-pc-linu ...
configure: target.x86_64-unknown-linux-gnu.ar := /data/mxe/usr/x86_64-pc-linux-gn ...
configure: target.x86_64-unknown-linux-gnu.ranlib := /data/mxe/usr/x86_64-pc-linu ...
configure: build.configure-args := ['--prefix=/data/mxe/usr/x86_64-pc-linux-gnu', ...
configure:
configure: writing config.toml in current directory
configure:
configure: run python /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/x.py --help
configure:
# Enable networking while we build Rust from source. Assumes
# that the Rust build is reproducible.
# Build Rust
cd '/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_' && /usr/bin/python /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/x.py build -j '6' -v
rustup not detected: [Errno 2] No such file or directory: 'rustc': 'rustc'
falling back to auto-detect
downloading https://static.rust-lang.org/dist/2021-10-22/rust-std-beta-x86_64-unknown-linux-gnu.tar.xz
running: curl -# -y 30 -Y 10 --connect-timeout 30 --retry 3 -Sf -o /tmp/tmppgwgz63w https://static.rust-lang.org/dist/2021-10-22/rust-std-beta-x86_64-unknown-linux-gnu.tar.xz
##O=- # #

### 1.9%
############### 7.7%
########################### 13.7%
####################################### 19.8%
#################################################### 26.2%
################################################################ 32.5%
############################################################################# 38.6%
######################################################################################### 45.0%
###################################################################################################### 51.4%
################################################################################################################### 57.6%
################################################################################################################################ 64.1%
############################################################################################################################################ 70.5%
########################################################################################################################################################## 77.2%
######################################################################################################################################################################### 85.0%
########################################################################################################################################################################################## 93.0%
######################################################################################################################################################################################################## 100.0%
verifying /tmp/tmppgwgz63w
moving /tmp/tmppgwgz63w to /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/cache/2021-10-22/rust-std-beta-x86_64-unknown-linux-gnu.tar.xz
extracting /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/cache/2021-10-22/rust-std-beta-x86_64-unknown-linux-gnu.tar.xz
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-beta_rt.asan.a
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-beta_rt.lsan.a
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-beta_rt.msan.a
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-beta_rt.tsan.a
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-b92887cb5c3a6560.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-82d7e1aea79178a0.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-10649d22c3dd6711.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-7a5a8397b4091d82.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-8113a8dddc641303.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-48eb7baa80925983.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libprofiler_builtins-b4ded4ffdc1a3034.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-8cfe50d4bd4d4645.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-24814b3706f62e96.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-88c4d85fe493b0a6.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-c8bc39dac3997df6.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-7644b5a5bed1a877.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-37758a72615c6b77.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-39ff8e5704da2fd7.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-53ce4f77bc440228.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-8b06cab7314e09a8.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-3724b6bc011014fa.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-4e43df503c40a34b.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-4dbed51e1ce1454b.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-64139d71c3bbeeeb.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-f69b58e7ca42553e.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-6c2c561a8181be5e.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-53dff7998de87b8e.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-b0191dd58367adae.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-4d997b51b1a49b1f.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-e3710285bec6b63f.rlib
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/manifest.in
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-c8bc39dac3997df6.so
extracting rust-std-beta-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-4d997b51b1a49b1f.so
downloading https://static.rust-lang.org/dist/2021-10-22/rustc-beta-x86_64-unknown-linux-gnu.tar.xz
running: curl -# -y 30 -Y 10 --connect-timeout 30 --retry 3 -Sf -o /tmp/tmpu2icavx7 https://static.rust-lang.org/dist/2021-10-22/rustc-beta-x86_64-unknown-linux-gnu.tar.xz

0.0%
# 0.8%
####### 3.6%
############## 7.1%
##################### 10.5%
########################### 14.0%
################################## 17.4%
########################################## 21.0%
################################################ 24.3%
####################################################### 27.8%
############################################################## 31.4%
##################################################################### 34.8%
############################################################################ 38.1%
################################################################################### 41.7%
###################################################################################### 43.3%
############################################################################################# 46.8%
#################################################################################################### 50.3%
########################################################################################################### 53.8%
################################################################################################################## 57.1%
######################################################################################################################## 60.3%
############################################################################################################################## 63.4%
##################################################################################################################################### 66.7%
########################################################################################################################################### 69.7%
################################################################################################################################################## 73.0%
######################################################################################################################################################### 76.5%
################################################################################################################################################################ 80.2%
####################################################################################################################################################################### 83.7%
############################################################################################################################################################################## 87.1%
#################################################################################################################################################################################### 90.2%
########################################################################################################################################################################################### 93.6%
################################################################################################################################################################################################# 96.9%
######################################################################################################################################################################################################## 100.0%
verifying /tmp/tmpu2icavx7
moving /tmp/tmpu2icavx7 to /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/cache/2021-10-22/rustc-beta-x86_64-unknown-linux-gnu.tar.xz
extracting /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/cache/2021-10-22/rustc-beta-x86_64-unknown-linux-gnu.tar.xz
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/doc
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/doc/rust
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/man
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/man/man1
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/bin
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/bin
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/man/man1/rustdoc.1
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/man/man1/rustc.1
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/ld64
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/doc/rust/LICENSE-APACHE
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/doc/rust/COPYRIGHT
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/doc/rust/LICENSE-MIT
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/bin/rust-gdb
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/bin/rust-lldb
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/bin/rustdoc
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/bin/rustc
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/ld
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/bin/rust-lld
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/share/doc/rust/README.md
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/bin/rust-gdbgui
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/manifest.in
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/libstd-c8bc39dac3997df6.so
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/libLLVM-13-rust-1.57.0-beta.so
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/librustc_driver-24f36aeef90a945b.so
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/libtest-4d997b51b1a49b1f.so
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/bin/rust-llvm-dwp
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/lldb_commands
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/gdb_lookup.py
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/lldb_lookup.py
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/rust_types.py
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/gdb_providers.py
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/lldb_providers.py
extracting rustc-beta-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
downloading https://static.rust-lang.org/dist/2021-10-22/cargo-beta-x86_64-unknown-linux-gnu.tar.xz
running: curl -# -y 30 -Y 10 --connect-timeout 30 --retry 3 -Sf -o /tmp/tmpvwxffcnn https://static.rust-lang.org/dist/2021-10-22/cargo-beta-x86_64-unknown-linux-gnu.tar.xz

#### 2.0%
################################ 16.1%
########################################################################## 37.1%
################################################################################################################################ 64.1%
############################################################################################################################################################################# 86.8%
######################################################################################################################################################################################################## 100.0%
verifying /tmp/tmpvwxffcnn
moving /tmp/tmpvwxffcnn to /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/cache/2021-10-22/cargo-beta-x86_64-unknown-linux-gnu.tar.xz
extracting /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/cache/2021-10-22/cargo-beta-x86_64-unknown-linux-gnu.tar.xz
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/libexec
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/etc
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/etc/bash_completion.d
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/doc
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/doc/cargo
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/zsh
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/zsh/site-functions
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/bin
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-metadata.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-doc.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-rustdoc.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-rustc.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-pkgid.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-build.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-tree.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-package.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-generate-lockfile.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-update.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-bench.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-search.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-fetch.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-publish.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-check.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-yank.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-install.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-uninstall.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-clean.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-login.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-version.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-run.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-help.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-owner.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-vendor.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-locate-project.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-verify-project.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-init.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-test.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-new.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/man/man1/cargo-fix.1
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/doc/cargo/LICENSE-APACHE
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/doc/cargo/LICENSE-MIT
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/doc/cargo/LICENSE-THIRD-PARTY
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/doc/cargo/README.md
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/libexec/cargo-credential-1password
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/manifest.in
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/etc/bash_completion.d/cargo
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/bin/cargo
extracting cargo-beta-x86_64-unknown-linux-gnu/cargo/share/zsh/site-functions/_cargo
downloading https://static.rust-lang.org/dist/2021-10-23/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz
running: curl -# -y 30 -Y 10 --connect-timeout 30 --retry 3 -Sf -o /tmp/tmp7wx6nyma https://static.rust-lang.org/dist/2021-10-23/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz

## 1.5%
################################### 17.8%
######################################################################################################### 52.8%
################################################################################################################################################################################### 89.6%
######################################################################################################################################################################################################## 100.0%
verifying /tmp/tmp7wx6nyma
moving /tmp/tmp7wx6nyma to /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/cache/2021-10-23/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz
extracting /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/cache/2021-10-23/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/share
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/share/doc
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/share/doc/rustfmt
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/bin
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/share/doc/rustfmt/LICENSE-APACHE
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/share/doc/rustfmt/LICENSE-MIT
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/share/doc/rustfmt/README.md
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/manifest.in
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/bin/cargo-fmt
extracting rustfmt-nightly-x86_64-unknown-linux-gnu/rustfmt-preview/bin/rustfmt
running: /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/src/bootstrap/Cargo.toml --verbose
error: failed to get cc as a dependency of package bootstrap v0.0.0 (/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/src/bootstrap)

Caused by:
failed to create directory /.cargo/registry/index/github.com-1ecc6299db9ec823

Caused by:
Permission denied (os error 13)
Traceback (most recent call last):
File "/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/x.py", line 27, in
bootstrap.main()
File "/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/src/bootstrap/bootstrap.py", line 1260, in main
bootstrap(help_triggered)
File "/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/src/bootstrap/bootstrap.py", line 1231, in bootstrap
build.build_bootstrap()
File "/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/src/bootstrap/bootstrap.py", line 989, in build_bootstrap
run(args, env=env, verbose=self.verbose)
File "/data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/src/bootstrap/bootstrap.py", line 144, in run
raise RuntimeError(err)
RuntimeError: failed to run: /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src.build_/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /data/mxe/tmp-rust-x86_64-pc-linux-gnu/rustc-nightly-src/src/bootstrap/Cargo.toml --verbose
make[1]: *** [Makefile:878: build-only-rust_x86_64-pc-linux-gnu] Error 1
make[1]: Leaving directory '/data/mxe'

real 0m38.401s
user 0m23.623s
sys 0m16.338s

Run failed on 8.14.4

image

I attempted to use go-vips on Windows 11, and it worked flawlessly with version 8.13.3_web_static. However, I encountered a crash when using version 8.14.4_web_static. I noticed that the lib dir differ significantly between the two versions, with v8.14.4 seemingly missing several essential libraries.

-dev packages should include headers?

The -dev zip that this repo makes only includes the DLLs and EXEs. Many developers will want the headers, the link libraries and the def files too.

Perhaps there should be a switch to generate either a stripped-back binary, or a zip with all the developer files? I could cook up a PR if that would be useful.

Proposal: move aom and libheif to "web" dependencies

I'm (slowly) setting up the infrastructure to ensure the aom+libheif+libvips combo is safe (fuzz, leak and regression tested) for binary distribution and therefore allow the prebuilt binaries provided by sharp to read and write AVIF files. See lovell/sharp#2289 for more context.

Can anyone think of a reason not to move these?

can't build libjxl.dll and dependencies (no such file after running build.sh)

I've tried to build v8.14 (https://github.com/libvips/build-win64-mxe/blob/simd-highway/build/vips-all.mk -> vips-dev-w64-all-8.14.0-simd-highway.zip) and v8.13 with default settings (all; not web) and never be able to get libjxl.dll (like it contains here https://github.com/libvips/build-win64-mxe/releases/download/v8.13.0/vips-dev-w64-all-8.13.0.zip and jpeg-xl is not working for me when I'm building it by myself) after vips (all) building.

$(PKG)_DEPS := cc meson-wrapper libwebp librsvg glib pango libgsf
libjpeg-turbo tiff lcms libexif libheif libpng
libspng libimagequant highway imagemagick matio openexr
cfitsio nifticlib poppler fftw openslide libjxl cgif
........
$(MXE_MESON_WRAPPER)
-Ddeprecated=false
-Dintrospection=false
-Dmodules=enabled
-Dheif-module=$(if $(IS_HEVC),enabled,disabled)
-Djpeg-xl=enabled
$(if $(findstring graphicsmagick,$($(PKG)_DEPS)), -Dmagick-package=GraphicsMagick)
-Dpdfium=disabled
-Dquantizr=disabled
-Dc_args='$(CFLAGS) -DVIPS_DLLDIR_AS_LIBDIR' \

P.S. Also 53 Mb libaom.dll is too much for me in v8.14. Is there is a way to make it 6 Mb size like it was in v8.13 or at least build vips without it?

Failed to use build script

[download] llvm-project-12.0.1.src.tar.xz
MXE Warning! Downloading llvm from second URL.
MXE Warning! Downloading llvm from backup.

Download failed or wrong checksum of package llvm!

2021-07-29 08:41:43 ERROR 404: Not Found.
--2021-07-29 08:41:43-- http://d1yihgixbnrglp.cloudfront.net/llvm%2Dproject%2D12%2E0%2E1%2Esrc%2Etar%2Exz_129cb25cd13677aad951ce5c2deb0fe4afc1e9d98950f53b51bdcfb5a73afa0e
Reusing existing connection to d1yihgixbnrglp.cloudfront.net:80.
HTTP request sent, awaiting response... 404 Not Found
2021-07-29 08:41:44 ERROR 404: Not Found.
Download failed!

[log] /data/mxe/log/llvm-download

Add `--with-jpegli`

libjxl 0.10.1 includes a new library, jpegli, which is compatible with the standard libjpeg ABI. It uses the libjxl compression machinery to make JPEG files roughly as small as mozjpeg, but at lower CPU cost.

We could have a --with-jpegli option which used that instead of mozjpeg for builds which also included libjxl.

See libvips/libvips#3872

error: chmod on /data/mxe/.git/config.lock failed: Operation not permitted

Source code version: 8.10.5 - build2 (the one come with release)
Host: Ubuntu 20 WSL2
The complete output is as follow:

buster: Pulling from library/buildpack-deps
Digest: sha256:782de14b2481856bb30181ef6c1987ddc550579fcf0dae94403c66791095b455
Status: Image is up to date for buildpack-deps:buster
docker.io/library/buildpack-deps:buster
[+] Building 0.1s (9/9) FINISHED
 => [internal] load build definition from Dockerfile                                                                                          0.0s
 => => transferring dockerfile: 32B                                                                                                           0.0s
 => [internal] load .dockerignore                                                                                                             0.0s
 => => transferring context: 2B                                                                                                               0.0s
 => [internal] load metadata for docker.io/library/buildpack-deps:buster                                                                      0.0s
 => [1/5] FROM docker.io/library/buildpack-deps:buster                                                                                        0.0s
 => CACHED [2/5] RUN apt-get update   && apt-get install -y     autopoint bison flex gettext gperf intltool     libtool-bin libxml-parser-pe  0.0s
 => CACHED [3/5] RUN cd $(dirname `python3 -c "import mesonbuild as _; print(_.__path__[0])"`)   && curl -L https://gist.github.com/kleisauk  0.0s
 => CACHED [4/5] RUN curl -L https://github.com/libav/gas-preprocessor/raw/master/gas-preprocessor.pl -o /usr/bin/gas-preprocessor.pl   && c  0.0s
 => CACHED [5/5] WORKDIR /data                                                                                                                0.0s
 => exporting to image                                                                                                                        0.0s
 => => exporting layers                                                                                                                       0.0s
 => => writing image sha256:dc48ae5e1afa1b74504013c256d31629dcf06dc055696cf9b07332ad8c5911a6                                                  0.0s
 => => naming to docker.io/library/libvips-build-win-mxe                                                                                      0.0s
Cloning into 'mxe'...
error: chmod on /data/mxe/.git/config.lock failed: Operation not permitted
fatal: could not set 'core.filemode' to 'false'
fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

It appears to be a docker related problem, i tried switching to a powershell window with admin priviledge, but it is no avail.
Any ideas?
I would try to build this later on an Arch and see what will happen.

the LLVM-MinGW plugin can't find any of the executables to run

To start off, I'm really sorry if this is a huge dummie question, I'm newer to Linux trying to build for ARM. No matter what I do, I can't get MXE to find the armv7 execs for llvm-mingw.

I've tried applying patches, putting the execs in different folders within /mxe/usr/, renaming them without the arch+w64-mingw32, building llvm-mingw myself, setting the path to MXE, but nothing seems to work. It always thinks its missing and it fails to build anything when it gets to checking for windres. I know windres is fine though, because I went into the bin folder of llvm-mingw and ran it to check, it was there. Nothing was missing.

Any help is gladly appreciated, and thanks for taking time to read this.

Unable to locate program input point inflatevalidate in DLL.

Hi,
I am trying to test the 32-bit binary of libvips, But when I run a simple test program, I encounter a problem as shown in the figure:
error
The code I tested is as follows:

#include <stdio.h>
#include <vips/vips.h>
#include <Windows.h> 

int main(void)
{
    char* filePath = "D:\\test\\30203b.tif";
    VipsImage* image;

    if (VIPS_INIT(filePath))
        vips_error_exit(NULL);

    if (!(image = vips_image_new_from_file(filePath, NULL)))
        vips_error_exit(NULL);
    g_object_unref(image);
    getchar();
    return(0);
}

Is this a known issue? Am I doing something wrong?
Best regards!

Possible approaches for handling libgsf, an LGPL-2.1-only dependency

As outlined at libvips/libvips#3354 we'll need to do something about the libgsf dependency as packaged by this repo and its build scripts.

libgsf is LGPL-2.1-only and therefore incompatible with the licences used by ImageMagick, libheif and freetype.

Possible approaches (there will be others) from least to most complex:

  1. Remove libgsf entirely (assume libzip or similar will be future dependendy)
  2. Make libgsf an optional "plugin" behind a new --gsf flag (but knowing this can make incompatible binaries)
  3. Introduce a --gpl2-only flag that removes all incompatible dependencies to allow libgsf (rapidly heading towards a hand-rolled dependency management tool)

Thoughts/alternatives welcome. I'm favouring either 1 for ease/speed or 3 for correctness.

How to selectively build libvips for windows?

Hi! I'm trying to integrate libvips inside a project that already has lots of the dependencies that libvips also has.
Moreover, I'm only interested in integrating the pdf import feature.

On linux I can easily build libvips in this way:

PKG_CONFIG_PATH=$(pwd)/lib/pkgconfig/ meson setup build-dir --prefix=/tmp/vips \
    -Dcfitsio=disabled \
    -Dcgif=disabled \
    -Dexif=disabled \
    -Dfftw=disabled \
    -Dfontconfig=disabled \
    -Dgsf=disabled \
    -Dheif=disabled \
    -Dheif-module=disabled \
    -Dimagequant=disabled \
    -Djpeg=disabled \
    -Djpeg-xl=disabled \
    -Djpeg-xl-module=disabled \
    -Dlcms=disabled \
    -Dmagick=disabled \
    -Dmagick-module=disabled \
    -Dmatio=disabled \
    -Dnifti=disabled \
    -Dopenexr=disabled \
    -Dopenjpeg=disabled \
    -Dopenslide=disabled \
    -Dopenslide-module=disabled \
    -Dorc=disabled \
    -Dpangocairo=disabled \
    -Dpdfium=disabled \
    -Dpng=disabled \
    -Dquantizr=disabled \
    -Drsvg=disabled \
    -Dspng=disabled \
    -Dtiff=disabled \
    -Dwebp=disabled \
    -Dzlib=disabled \
    -Dpoppler-module=disabled \
    -Dpoppler=disabled \
    -Dpdfium=enabled \
    --buildtype=release

and having a very minimal libvips instance with pdfium support.

For windows, I'd like to do the same but I'm completely lost in this build system.
I've seen that pdfium is not an option (in fact in the build you provide there's no pdfium), but poppler is a valid alternative.

So here's the question: do you have some hint on how to proceed to build a very minimal version of libvips with only the poppler suppìort - on windows?

Conversion to GIF does not work

Sources: vips.exe, in.png

$ ver & vips --version
Microsoft Windows [Version 6.1.7601]    
vips-8.11.0-Wed Jun  9 18:20:35 UTC 2021

$ vips --vips-progress copy in.png out.tif
vips.exe temp-2: 162 x 192 pixels, 2 threads, 162 x 1 tiles, 128 lines in buffer 
vips.exe temp-2: done in 0,0366s                                                 

$ vips copy in.png out.gif
VipsForeignSave: "out.gif" is not a known file format

Use specific branch of openslide

I am needing to use a pull request branch of openslide to build with vips because it fixes issues with the BIF ventana image format. I can't figure out a way to change the openslide that is used in the openslide.mk file. Is it possible to use a specific branch of openslide, or is that a limitation to the build tool?

v8.11.2: possible lcms2 problems with 32-bit static build

I'm seeing failures using the v8.11.2 binaries with sharp on 32-bit Windows for all tests relating to colour profiles:

icc_transform: unable to load or find any compatible input profile

https://ci.appveyor.com/project/lovell/sharp/builds/39989275/job/ynmhkpqnmfx4nv7g

64-bit Windows works as-expected:

https://github.com/lovell/sharp/runs/3066815431?check_suite_focus=true

I'm still investigating this, but opening an early issue here in case anyone else is experiencing similar problems.

Could the vips-dev-w32-web-8.11.2-static.zip binaries have missed or skipped the lcms dependency, perhaps as a result of the thread-safety patches?

https://github.com/libvips/build-win64-mxe/releases/tag/v8.11.2

Regression has happened to x86 version of VIPS binaries after 8.7.4

It seems something has happened with x86 binaries when version was raised from 8.7.4 to 8.8.0

VIPS that is bundled in all vips-dev-w32-all-8.8.X.zip packages can not initialize at all, and hangs forever on call:

return Vips.Init("NetVips") == 0;

with high CPU utilization. Looks like it is stuck in infinite cycle.
Tested and it appears on both Windows 10(64) and Windows 7(64).

Version vips-dev-w32-all-8.7.4.zip works fine.
Version vips-dev-w64-all-8.8.3.zip works fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.