GithubHelp home page GithubHelp logo

build-win64'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's People

Contributors

digital-flowers avatar 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

build-win64's Issues

freetype-2.10.1.tar.gz failed to unpack

Main

I run proxychains ./build.sh 8.9 all on my Manjaro 20.0.1 Lysia with docker Server Version: 19.03.12-ce installed.
I modified the build.sh adding --net=host option to the docker so that i can use proxy.

in*** Checking out freetype *** [17/37] section i saw the following error output.

curl --continue-at - -L http://download.savannah.nongnu.org/releases/freetype/freetype-2.10.1.tar.gz -o /data/.cache/jhbuild/downloads/freetype-2.10.1.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100  1630    0  1630    0     0    379      0 --:--:--  0:00:04 --:--:--   598
gzip -dc "/data/.cache/jhbuild/downloads/freetype-2.10.1.tar.gz" | tar xf -

gzip: /data/.cache/jhbuild/downloads/freetype-2.10.1.tar.gz: not in gzip format
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
jhbuild build: failed to unpack /data/.cache/jhbuild/downloads/freetype-2.10.1.tar.gz

This problem occured twice on my local machine and once on my remote server running Ubuntu 18 LTS.

Anything i should do to address that or provide more information?

Dockerinfo:

Client:
 Debug Mode: false

Server:
 Containers: 2
  Running: 1
  Paused: 0
  Stopped: 1
 Images: 13
 Server Version: 19.03.12-ce
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d76c121f76a5fc8a462dc64594aea72fe18e1178.m
 runc version: 24a3cf88a7ae5f4995f6750654c0e2ca61ef4bb2
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.6.11-1-MANJARO
 Operating System: Manjaro Linux
 OSType: linux
 Architecture: x86_64
 CPUs: 12
 Total Memory: 15.56GiB
 Name: risi-i3
 ID: Q4AR:7GAI:GVHK:4DSO:HSJ5:7TOI:OIEY:J435:LIIC:PI3S:WVGL:VACI
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Other Worrisome Outputs:

libtool:   error: Could not determine the host path corresponding to
libtool:   error:   '/data/build/expat-2.2.9/lib/.libs'
libtool:   error: Continuing, but uninstalled executables may not work.
libtool:   error: Could not determine the host path corresponding to
libtool:   error:   '/data/inst/lib:/data/inst/bin:/usr/local/lib:/usr/local/bin:/data/build/expat-2.2.9/lib/.libs'
libtool:   error: Continuing, but uninstalled executables may not work.

Above output occurred frequently, is it something i should be worried about?

I run sudo ./build.sh 8.3 but many permission denied

root@ubuntu:~/build-win64# sudo ./build.sh 8.3
xenial: Pulling from library/ubuntu
Digest: sha256:9ee3b83bcaa383e5e3b657f042f4034c92cdd50c03f73166c145c9ceaea9ba7c
Status: Image is up to date for ubuntu:xenial
Sending build context to Docker daemon  2.56 kB
Step 1/7 : FROM ubuntu:xenial
 ---> c9d990395902
Step 2/7 : MAINTAINER Lovell Fuller <[email protected]>
 ---> Using cache
 ---> e391454e315b
Step 3/7 : RUN echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections &&   dpkg --add-architecture i386 &&   apt-get update &&   apt-get install -y     build-essential     jhbuild     libtool     intltool     mingw-w64     mingw-w64-tools     nasm     cmake
 ---> Using cache
 ---> 585b82f82977
Step 4/7 : RUN apt-get install -y     gtk-doc-tools     xmlto     wget     yelp-tools     gperf     wine     wine1.6-amd64
 ---> Using cache
 ---> b24aa292c798
Step 5/7 : RUN groupadd -r build && useradd -m -g build build
 ---> Using cache
 ---> 80ac64fda78e
Step 6/7 : WORKDIR /data
 ---> Using cache
 ---> 6221f5fb9ea0
Step 7/7 : USER build
 ---> Using cache
 ---> 52d78d6589a8
Successfully built 52d78d6589a8
mkdir: cannot create directory 'inst': Permission denied
mkdir: cannot create directory 'packages': Permission denied
mkdir: cannot create directory 'checkout': Permission denied
fetching expat_2.0.1-3_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:41:58--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/expat_2.0.1-3_win64.zip
           => 'expat_2.0.1-3_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::173, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE expat_2.0.1-3_win64.zip ... 93307
==> PASV ... done.    ==> RETR expat_2.0.1-3_win64.zip ... done.
expat_2.0.1-3_win64.zip: Permission denied
fetching expat-dev_2.0.1-3_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:03--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/expat-dev_2.0.1-3_win64.zip
           => 'expat-dev_2.0.1-3_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.173, 194.71.11.165, 2001:6b0:19::173, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.173|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE expat-dev_2.0.1-3_win64.zip ... 75635
==> PASV ... done.    ==> RETR expat-dev_2.0.1-3_win64.zip ... done.
expat-dev_2.0.1-3_win64.zip: Permission denied
fetching fontconfig_2.8.0-2_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:09--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/fontconfig_2.8.0-2_win64.zip
           => 'fontconfig_2.8.0-2_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::173, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE fontconfig_2.8.0-2_win64.zip ... 140886
==> PASV ... done.    ==> RETR fontconfig_2.8.0-2_win64.zip ... done.
fontconfig_2.8.0-2_win64.zip: Permission denied
fetching fontconfig-dev_2.8.0-2_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:13--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/fontconfig-dev_2.8.0-2_win64.zip
           => 'fontconfig-dev_2.8.0-2_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::165, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE fontconfig-dev_2.8.0-2_win64.zip ... 1056288
==> PASV ... done.    ==> RETR fontconfig-dev_2.8.0-2_win64.zip ... done.
fontconfig-dev_2.8.0-2_win64.zip: Permission denied
fetching freetype_2.4.4-1_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:18--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/freetype_2.4.4-1_win64.zip
           => 'freetype_2.4.4-1_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::173, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE freetype_2.4.4-1_win64.zip ... 302060
==> PASV ... done.    ==> RETR freetype_2.4.4-1_win64.zip ... done.
freetype_2.4.4-1_win64.zip: Permission denied
fetching freetype-dev_2.4.4-1_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:22--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/freetype-dev_2.4.4-1_win64.zip
           => 'freetype-dev_2.4.4-1_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::173, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE freetype-dev_2.4.4-1_win64.zip ... 213811
==> PASV ... done.    ==> RETR freetype-dev_2.4.4-1_win64.zip ... done.
freetype-dev_2.4.4-1_win64.zip: Permission denied
fetching gettext-runtime-dev_0.18.1.1-2_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:26--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/gettext-runtime-dev_0.18.1.1-2_win64.zip
           => 'gettext-runtime-dev_0.18.1.1-2_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::173, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE gettext-runtime-dev_0.18.1.1-2_win64.zip ... 519522
==> PASV ... done.    ==> RETR gettext-runtime-dev_0.18.1.1-2_win64.zip ... done.
gettext-runtime-dev_0.18.1.1-2_win64.zip: Permission denied
fetching gettext-runtime_0.18.1.1-2_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:41--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/gettext-runtime_0.18.1.1-2_win64.zip
           => 'gettext-runtime_0.18.1.1-2_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::173, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE gettext-runtime_0.18.1.1-2_win64.zip ... 92455
==> PASV ... done.    ==> RETR gettext-runtime_0.18.1.1-2_win64.zip ... done.
gettext-runtime_0.18.1.1-2_win64.zip: Permission denied
fetching win-iconv-dev_tml-20100912_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:45--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/win-iconv-dev_tml-20100912_win64.zip
           => 'win-iconv-dev_tml-20100912_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::165, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE win-iconv-dev_tml-20100912_win64.zip ... 28980
==> PASV ... done.    ==> RETR win-iconv-dev_tml-20100912_win64.zip ... done.
win-iconv-dev_tml-20100912_win64.zip: Permission denied
fetching zlib_1.2.5-1_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:50--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/zlib_1.2.5-1_win64.zip
           => 'zlib_1.2.5-1_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.165, 194.71.11.173, 2001:6b0:19::173, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.165|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE zlib_1.2.5-1_win64.zip ... 78243
==> PASV ... done.    ==> RETR zlib_1.2.5-1_win64.zip ... done.
zlib_1.2.5-1_win64.zip: Permission denied
fetching zlib-dev_1.2.5-1_win64.zip ...
./get-win64-packages.sh: line 16: cd: packages: No such file or directory
--2018-04-24 06:42:55--  ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/zlib-dev_1.2.5-1_win64.zip
           => 'zlib-dev_1.2.5-1_win64.zip'
Resolving ftp.gnome.org (ftp.gnome.org)... 194.71.11.173, 194.71.11.165, 2001:6b0:19::165, ...
Connecting to ftp.gnome.org (ftp.gnome.org)|194.71.11.173|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/GNOME/binaries/win64/dependencies ... done.
==> SIZE zlib-dev_1.2.5-1_win64.zip ... 38681
==> PASV ... done.    ==> RETR zlib-dev_1.2.5-1_win64.zip ... done.
zlib-dev_1.2.5-1_win64.zip: Permission denied
ls: cannot access '/root/build-win64/8.3/*.zip': No such file or directory

Is it OK?

Build error for 8.11 - missing glib-2.0

I am getting this error while running ./build.sh 8.11 on Ubuntu 20.04

checking for glib-2.0 >= 2.40 gmodule-no-export-2.0 gobject-2.0 gio-2.0... no
configure: error: Package requirements (glib-2.0 >= 2.40 gmodule-no-export-2.0 gobject-2.0 gio-2.0) were not met:

No package 'glib-2.0' found
No package 'gmodule-no-export-2.0' found
No package 'gobject-2.0' found
No package 'gio-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables REQUIRED_CFLAGS
and REQUIRED_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Building 8.10 doesn't show this problem (however there are other compilation errors). I tried modifying the dockerfile to install also libglib2.0-dev but this didn't help.

update needed for Docker instructions

I finally figured out that the Docker issues I was having all boiled down to running as the root user (not via sudo) on my test machine.

I don't know if it is just some Docker settings that cause the problems as I don't have a whole lot of experience with the platform, but if logged in as the actual root user the build process fails once it starts processing the get-win64-packages.sh script with permission denied errors upon attempting to create folders.

When running as a non-root user and executing via sudo everything works (assuming the build-win64 repo was also cloned under that non-root user account). The docs do show a sudo command, but don't explicitly say that running as the root user directly will fail, so this should probably be mentioned in the README.

Receiving linux build outputs when running build.sh

Hi,
I tried to build the 8.10 version by running "./build.sh 8.10", hoping to receive windows x64 binaries.
However the output seems more like linux formatting:
image

I'm hoping I have just missed a command argument, but I can't find anything in the readme.

Thanks

Switch to MXE (M cross environment)

Hi John,

I've done some experiments with building a libvips binary for 64-bit Windows with MXE. See here: https://github.com/kleisauke/build-win64-mxe.

In that repository, I did these things:

  • Tried to update all dependencies to the latest version (where possible).
  • Converted / improved the existing patches.
  • Added some specific patches for dependencies (for e.g. this note has been resolved).
  • Successfully build the newest librsvg with the Rust toolchain.

The binaries can be downloaded here. I think this repository will benefit when switching to MXE (it's easier to use than JHBuild).

Please let me know what you think! I'm intended to pack these libvips binaries in NetVips.

Static linking of non-LGPL dependencies

The libvips web binary (vips-dev-w64-web-8.6.3-1) currently has 48 DLL files. It would be nice if this could be downsized. It will also be easier for me to pack the libvips binaries in a NuGet package if all non-LGPL dependencies are linked statically.

This may also solve the problem with wrong versions of DLL's being included, like this issue what I had a while ago.

glib, libcroco, libexif, libgsf, librsvg, and pango needs to be separated as a shared library because LGPL's basic requirement is to separate the LGPL-licensed library and your own product (I used this overview to check which dependencies are LGPL).

I'm not sure if there are any disadvantages with statically linking dependencies in terms of speed and overall DLL size.

Test suite fails with latest win64 build

The latest (v8.6.3) Windows 64-bit build of libvips fails with the pyvips (and net-vips) foreign test suite. These two tests crashes:

py.test -q -s tests/test_foreign.py::TestForeign::test_dzsave
py.test -q -s tests/test_foreign.py::TestForeign::test_png

The magickload test:

py.test -q -s tests/test_foreign.py::TestForeign::test_magickload

fails with:

E           pyvips.error.Error: unable to call magickload
E             magick2vips: unable to read file "C:\Users\KleisAuke\Documents\GitHub\pyvips\tests\helpers\..\images\vips-profile.svg"
E           libMagick error: UnableToOpenBlob `C:/Users/KLEISA~1/AppData/Local/Temp/magick-972MQqCAreGY2pP': No such file or directory @ error/blob.c/OpenBlob/2709 (null)

I've tried to build it myself (from the master branch of libvips). See the attempt here. Unfortunately, the same problems remain.

Tested with:

Windows 10 Pro version 1709 (OS Build 16299.309)
Python 3.6.4

With libvips version 8.6.2 and 8.7 pre-release these tests run smoothly. I'm going to set-up AppVeyor for net-vips soon to detect these problems at an early stage.

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.