Code Monkey home page Code Monkey logo

build-win32's Introduction

VIPS WIN32

This package makes a 32-bit Windows binary of libvips and nip2. If you want a 64-bit Windows binary, see build-win64. The 64-bit version is also much simpler to use.

We use jhbuilder to git, mingw to compile, and good old zip to package the vips source code for WIN32.

JHBuild is a tool designed to ease building collections of source packages, called “modules”. JHBuild uses “module set” files to describe the modules available to build. The “module set” files include dependency information that allows JHBuild to discover what modules need to be built and in what order.

MinGW, a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Microsoft Windows applications.

MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. (It does depend on a number of DLLs provided by Microsoft themselves, as components of the operating system; most notable among these is MSVCRT.DLL, the Microsoft C runtime library. Additionally, threaded applications must ship with a freely distributable thread support DLL, provided as part of MinGW itself).

PREREQUISITES

[Ubuntu Desktop] (http://www.ubuntu.com/download/desktop)

  • This doesn't mean you can't get the process to work on anything else. This is simply what we are using and know to work. Tested on 10.10 and 11.04, 32- and 64-bit. Though you can only make a 32-bit Windows binary for now.

OPTIONAL

[VMware Player] (http://www.vmware.com/products/player/) - Bubba runs his Ubuntu Desktop in a VMWare Player on a Windows 7 Ultimate x64 Desktop host.

[DEPENDENCIES] (http://xkcd.com/754/)

It is possible that you already have some of these installed on your Ubuntu Desktop; however, it is not likely that you have all of them. Better safe than sorry, install them all. You might even want to update the whole kit, just for the heck of it.

Build/Tool Related Dependencies

sudo apt-get install build-essential \
wine \
mingw-w64 mingw-w64-tools \
cmake \
jhbuild \
autoconf \
automake1.4 \
automake1.7 \
automake1.9 \
autotools-dev \
docbook-utils \
docbook2x \
gtk-doc-tools \
nasm \
bison \
flex

Library Dependencies

sudo apt-get install libatk1.0-0 \
libatk1.0-dev \
libglib2.0-0 \
libglib2.0-dev \
libgtk2.0-0 \
libgtk2.0-dev \
libglade2-0 \
libglade2-dev \
libgsf-1-114 \
libgsf-gnome-1-dev \
libpango1.0-0 \
libpango1.0-dev \
libcairo2 \
libcairo2-dev \
libexpat1 \
libexpat1-dev \
libfontconfig1 \
libfontconfig1-dev \
libfreetype6 \
libfreetype6-dev \
gettext \
libpng12-0 \
libpng12-dev \
libxml2 \
libxml2-dev \
tango-icon-theme \
libcxxtools6 \
libcxxtools-dev \
zlib1g \
zlib1g-dev \
zlibc 

These are Ubuntu binaries and of course we will be building a Windows binary. However, some of the packages we build are not very good at cross-compiling and builds can fail unless they can find a native library as well.

SUMMARY

Check specific build folders for further instructions.

build-win32's People

Contributors

bubba-h57 avatar digital-flowers avatar jcupitt avatar lightbinder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

build-win32's Issues

Stop patching out fseeko/ftello in cfitsio

cfitsio >= 3.34 no longer tries to use fseeko/ftello on mingw.

(Which is unfortunate, because the mingw-w64 runtime supports _FILE_OFFSET_BITS=64. It implements fseeko and ftello using fgetpos/fsetpos/_filelengthi64, all of which exist in vanilla msvcrt, so no special link manifest is needed to use them. I'll report this to the cfitsio maintainer, so hopefully we can get support for 64-bit offsets in Windows.)

Possibly omit TurboJPEG

You probably aren't using the TurboJPEG API, so building libjpeg-turbo --without-turbojpeg would mean one fewer DLL to ship.

No corresponding sources for third-party binaries

Hi John,

The VIPS download site doesn't seem to distribute the complete corresponding source code for third-party libraries in the vips-dev ZIP and the nip2 installer. For vips-dev this is technically only required for the LGPL libraries (LGPLv2.1 section 4). nip2 is GPL and has GPL dependencies, so under the FSF's interpretation of the GPL, source is required even for the permissively-licensed libraries.

I'm not claiming that the missing source is currently harming anybody, and fixing it is sort of painful. (For OpenSlide on Windows, each binary build has to ship alongside a 60 MB source ZIP that no one actually wants, and you have many more dependencies than we do.) But it is a license violation nonetheless.

Patchfile, presumably for replacing perl position, missing

Hi,

Upon building the 8.0 tree the jhbuild halts on a missing file @/home/jcupitt/[...]/transform.patch. Consecutively, the build fails due to an unlocated perl shebang. I'm guessing the two are related, as ignoring the first + patching the second manually fixes the errs.

Possible problems with pre-built v8.1.0 binaries

Hi John, I'm still investigating this one, but here's an advanced warning that the Windows-based CI environment for sharp seems to be having a minor meltdown with the pre-built v8.1.0 from http://www.vips.ecs.soton.ac.uk/supported/8.1/win32/

v8.1.0 - fails - https://ci.appveyor.com/project/lovell/sharp/build/183/job/26eemal068fwc9ar
v8.0.2 - passes - https://ci.appveyor.com/project/lovell/sharp/build/184/job/chya6eyurgxhd0pq

sharp's GYP binding file lists the library files expected in the lib directory of the .zip file. A quick check suggests everything is there with the correct filenames.

Has anything changed in the win32 packaging between 8.0.x and 8.1.x?

Missing transform.patch

The build process applies a transform.patch which is apparently stored under /home/john and not included in the repository. vips.modules says:

the transform patch is some non-LGPL code we paste into binaries

What is this patch? If the official binaries include it, they could be violating the LGPL on any code in VIPS for which you are not the copyright holder.

Provide Compiled Binaries

Hey there.

I am working on a 32 bit windows app that I want to make use of libvips for, so I started my day searching for a compiled 32 bit libvips.dll. The 64 bit ones are readily available, but I never found the 32 bit ones. So I spent the rest of my day struggling to compile one myself.

I couldn't get 8.7 to compile, because it has references to 64-bit only things I think... I have 8.6 compiling now and it is getting further than 8.7 did, so maybe it will succeed. But it would have been a much better day if the 32 bit dll's were just downloadable like the 64 bit ones.

Do you happen to have the 32 bit binaries laying around somewhere? If so, I would really appreciate it if you would post them for download somewhere.

Thank you for your time,
Chris

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.