Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help.
| [librsvg] | 2.60.0 | LGPLv3 |
| [libspng] | 0.7.4 | BSD 2-Clause |
| [libtiff] | 4.7.0 | [libtiff License] (BSD-like) |
| [libvips] | 8.17.1 | LGPLv3 |
| [libvips] | 8.18.0² | LGPLv3 |
| [libwebp] | 1.6.0 | New BSD License |
| [libxml2] | 2.14.5 | MIT Licence |
| [mozjpeg] | 4.1.5 | [zlib License, IJG License, BSD-3-Clause] |
Expand All @@ -47,6 +47,8 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help.
| [zlib-ng] | 2.2.4 | [zlib-ng Licence] |

¹ [A fork](https://github.com/lovell/libimagequant) of the BSD 2-Clause licensed libimagequant v2.4.1 is used.
² libvips is built from the [`v8.18.0-test1`](https://github.com/libvips/libvips/tree/v8.18.0-test1) tag, see:
https://github.com/libvips/libvips/releases/tag/v8.18.0-test1

[aom]: https://aomedia.googlesource.com/aom/
[Alliance for Open Media Patent License 1.0]: https://aomedia.org/license/patent-license/
Expand Down Expand Up @@ -98,6 +100,7 @@ Same as libvips-web + these extra dependencies:
| [imath] | 3.1.9 | BSD 3-Clause |
| [libdicom] | 1.2.0 | MIT Licence |
| [libjxl] | 0.11.1 | BSD 3-Clause |
| [libraw] | 0.21.4 | LGPL-2.1-only |
| [matio] | 1.5.28 | BSD 2-Clause |
| [nifticlib] | 3.0.1 | Public domain |
| [openexr] | 3.1.11 | BSD 3-Clause |
Expand All @@ -115,6 +118,7 @@ Same as libvips-web + these extra dependencies:
[imath]: https://github.com/AcademySoftwareFoundation/Imath
[libdicom]: https://github.com/ImagingDataCommons/libdicom
[libjxl]: https://github.com/libjxl/libjxl
[libraw]: https://github.com/LibRaw/LibRaw
[matio]: https://github.com/tbeu/matio
[nifticlib]: https://github.com/NIFTI-Imaging/nifti_clib
[openexr]: https://github.com/AcademySoftwareFoundation/openexr
Expand Down
32 changes: 32 additions & 0 deletions build/overrides.mk
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,14 @@ libjpeg-turbo_SUBDIR := libjpeg-turbo-$(libjpeg-turbo_VERSION)
libjpeg-turbo_FILE := libjpeg-turbo-$(libjpeg-turbo_VERSION).tar.gz
libjpeg-turbo_URL := https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$(libjpeg-turbo_VERSION)/$(libjpeg-turbo_FILE)

# upstream version is 0.21.1
libraw_VERSION := 0.21.4
libraw_CHECKSUM := 6be43f19397e43214ff56aab056bf3ff4925ca14012ce5a1538a172406a09e63
libraw_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libraw-[0-9]*.patch)))
libraw_SUBDIR := LibRaw-$(libraw_VERSION)
libraw_FILE := LibRaw-$(libraw_VERSION).tar.gz
libraw_URL := https://www.libraw.org/data/$(libraw_FILE)

# upstream version is 2.7.1
# needed by nip4
gsl_VERSION := 2.8
Expand All @@ -180,6 +188,7 @@ glib_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))
harfbuzz_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/harfbuzz-[0-9]*.patch)))
lcms_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/lcms-[0-9]*.patch)))
libjpeg-turbo_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libjpeg-turbo-[0-9]*.patch)))
libraw_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libraw-[0-9]*.patch)))
libxml2_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libxml2-[0-9]*.patch)))
meson_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/meson-[0-9]*.patch)))
mingw-w64_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/mingw-w64-[0-9]*.patch)))
Expand Down Expand Up @@ -228,6 +237,10 @@ zlib_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))
# Removed: hdf5
# libjpeg-turbo:
# Replaced: yasm with $(BUILD)~nasm
# libraw:
# Added: zlib
# Replaced: jpeg with libjpeg-turbo
# Removed: jasper
# libxml2:
# Added: meson-wrapper
# Removed: libiconv, xz, zlib
Expand Down Expand Up @@ -258,6 +271,7 @@ librsvg_DEPS := cc meson-wrapper cairo glib pango libxml2 rust $(BUIL
cairo_DEPS := $(filter-out lzo ,$(cairo_DEPS))
matio_DEPS := $(filter-out hdf5 ,$(matio_DEPS))
libjpeg-turbo_DEPS := $(subst yasm,$(BUILD)~nasm,$(libjpeg-turbo_DEPS))
libraw_DEPS := cc libjpeg-turbo lcms zlib
libxml2_DEPS := cc meson-wrapper
fontconfig_DEPS := cc meson-wrapper expat freetype-bootstrap
libexif_DEPS := $(filter-out gettext,$(libexif_DEPS))
Expand Down Expand Up @@ -479,6 +493,24 @@ define libjpeg-turbo_BUILD
$(MAKE) -C '$(BUILD_DIR)' -j 1 $(subst -,/,$(INSTALL_STRIP_LIB))
endef

# build without jasper, openmp and examples
define libraw_BUILD
# autoreconf to get updated libtool files for clang
cd '$(SOURCE_DIR)' && autoreconf -fi

cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \
$(MXE_CONFIGURE_OPTS) \
--disable-examples \
--disable-openmp \
--disable-jasper \
--enable-jpeg \
--enable-zlib \
--enable-lcms

$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 $(INSTALL_STRIP_LIB)
endef

# build with the Meson build system
# build with -Dnls=disabled
define fontconfig_BUILD
Expand Down
34 changes: 34 additions & 0 deletions build/patches/libraw-0.21-fixes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Kleis Auke Wolthuizen <[email protected]>
Date: Sun, 27 Jul 2025 14:00:00 +0200
Subject: [PATCH 1/1] Make libstdc++ a private dependency

Prevent downstream packages that depend on LibRaw from being
required to link explicitly against libstdc++.

diff --git a/libraw.pc.in b/libraw.pc.in
index 1111111..2222222 100644
--- a/libraw.pc.in
+++ b/libraw.pc.in
@@ -7,6 +7,6 @@ Name: libraw
Description: Raw image decoder library (non-thread-safe)
Requires: @PACKAGE_REQUIRES@
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lraw -lstdc++@PC_OPENMP@
-Libs.private: @PACKAGE_LIBS_PRIVATE@
+Libs: -L${libdir} -lraw@PC_OPENMP@
+Libs.private: @PACKAGE_LIBS_PRIVATE@ -lstdc++
Cflags: -I${includedir}/libraw -I${includedir}
diff --git a/libraw_r.pc.in b/libraw_r.pc.in
index 1111111..2222222 100644
--- a/libraw_r.pc.in
+++ b/libraw_r.pc.in
@@ -7,6 +7,6 @@ Name: libraw
Description: Raw image decoder library (thread-safe)
Requires: @PACKAGE_REQUIRES@
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lraw_r -lstdc++@PC_OPENMP@
-Libs.private: @PACKAGE_LIBS_PRIVATE@
+Libs: -L${libdir} -lraw_r@PC_OPENMP@
+Libs.private: @PACKAGE_LIBS_PRIVATE@ -lstdc++
Cflags: -I${includedir}/libraw -I${includedir}
4 changes: 2 additions & 2 deletions build/patches/vips-8-dlldir-as-libdir.patch
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ diff --git a/libvips/include/vips/internal.h b/libvips/include/vips/internal.h
index 1111111..2222222 100644
--- a/libvips/include/vips/internal.h
+++ b/libvips/include/vips/internal.h
@@ -426,6 +426,7 @@ guint32 vips__random(guint32 seed);
@@ -427,6 +427,7 @@ guint32 vips__random(guint32 seed);
guint32 vips__random_add(guint32 seed, int value);

const char *vips__icc_dir(void);
Expand Down Expand Up @@ -46,7 +46,7 @@ diff --git a/libvips/iofuncs/util.c b/libvips/iofuncs/util.c
index 1111111..2222222 100644
--- a/libvips/iofuncs/util.c
+++ b/libvips/iofuncs/util.c
@@ -1986,6 +1986,53 @@ DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
@@ -1992,6 +1992,53 @@ DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
return TRUE;
}
#endif
Expand Down
1 change: 1 addition & 0 deletions build/plugins/jpegli/overrides.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ IS_JPEGLI := $(true)
gdk-pixbuf_DEPS := $(subst libjpeg-turbo,jpegli,$(gdk-pixbuf_DEPS))
imagemagick_DEPS := $(subst libjpeg-turbo,jpegli,$(imagemagick_DEPS))
graphicsmagick_DEPS := $(subst libjpeg-turbo,jpegli,$(graphicsmagick_DEPS))
libraw_DEPS := $(subst libjpeg-turbo,jpegli,$(libraw_DEPS))
openslide_DEPS := $(subst libjpeg-turbo,jpegli,$(openslide_DEPS))
poppler_DEPS := $(subst libjpeg-turbo,jpegli,$(poppler_DEPS))
tiff_DEPS := $(subst libjpeg-turbo,jpegli,$(tiff_DEPS))
Expand Down
1 change: 1 addition & 0 deletions build/plugins/mozjpeg/overrides.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ IS_MOZJPEG := $(true)
gdk-pixbuf_DEPS := $(subst libjpeg-turbo,mozjpeg,$(gdk-pixbuf_DEPS))
imagemagick_DEPS := $(subst libjpeg-turbo,mozjpeg,$(imagemagick_DEPS))
graphicsmagick_DEPS := $(subst libjpeg-turbo,mozjpeg,$(graphicsmagick_DEPS))
libraw_DEPS := $(subst libjpeg-turbo,mozjpeg,$(libraw_DEPS))
openslide_DEPS := $(subst libjpeg-turbo,mozjpeg,$(openslide_DEPS))
poppler_DEPS := $(subst libjpeg-turbo,mozjpeg,$(poppler_DEPS))
tiff_DEPS := $(subst libjpeg-turbo,mozjpeg,$(tiff_DEPS))
Expand Down
1 change: 1 addition & 0 deletions build/plugins/zlib-ng/overrides.mk
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ lcms_DEPS := $(subst zlib,zlib-ng,$(lcms_DEPS))
libarchive_DEPS := $(subst zlib,zlib-ng,$(libarchive_DEPS))
libexif_DEPS := $(subst zlib,zlib-ng,$(libexif_DEPS))
libpng_DEPS := $(subst zlib,zlib-ng,$(libpng_DEPS))
libraw_DEPS := $(subst zlib,zlib-ng,$(libraw_DEPS))
libspng_DEPS := $(subst zlib,zlib-ng,$(libspng_DEPS))
matio_DEPS := $(subst zlib,zlib-ng,$(matio_DEPS))
nifticlib_DEPS := $(subst zlib,zlib-ng,$(nifticlib_DEPS))
Expand Down
12 changes: 7 additions & 5 deletions build/vips-all.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@ PKG := vips-all
$(PKG)_WEBSITE := https://libvips.github.io/libvips/
$(PKG)_DESCR := A fast image processing library with low memory needs.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 8.17.1
$(PKG)_CHECKSUM := 4d8c3325922c5300253d7594507a8f1d3caf8eed70dfb66cc7eb2cbed65bb5ca
$(PKG)_VERSION := 8.18.0-test1
$(PKG)_CHECKSUM := 242eaa2c195fd5a3021e5daaa4448cdbfa5b9702ec4377cbb9b2b18c4f542163
$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/vips-[0-9]*.patch)))
$(PKG)_GH_CONF := libvips/libvips/releases,v,,,,.tar.xz
$(PKG)_SUBDIR := vips-$($(PKG)_VERSION)
$(PKG)_GH_CONF := libvips/libvips/releases,v,,,,-test1.tar.xz
$(PKG)_SUBDIR := vips-$(firstword $(subst -, ,$($(PKG)_VERSION)))
$(PKG)_FILE := vips-$($(PKG)_VERSION).tar.xz
$(PKG)_DEPS := cc meson-wrapper libwebp librsvg glib pango libarchive \
libjpeg-turbo tiff lcms libexif libheif libspng \
libimagequant highway imagemagick matio openexr \
cfitsio nifticlib poppler fftw openslide libjxl cgif
cfitsio nifticlib poppler fftw openslide libjxl cgif \
libraw

define $(PKG)_PRE_CONFIGURE
# Copy some files to the packaging directory
Expand Down Expand Up @@ -60,6 +61,7 @@ define $(PKG)_PRE_CONFIGURE
printf ' "png": "$(libpng_VERSION)",\n'; \
printf ' "poppler": "$(poppler_VERSION)",\n'; \
$(if $(IS_INTL_DUMMY),printf ' "proxy-libintl": "$(proxy-libintl_VERSION)"$(comma)\n';) \
printf ' "raw": "$(libraw_VERSION)",\n'; \
printf ' "rsvg": "$(librsvg_VERSION)",\n'; \
printf ' "spng": "$(libspng_VERSION)",\n'; \
printf ' "sqlite": "$(sqlite_VERSION)",\n'; \
Expand Down
9 changes: 5 additions & 4 deletions build/vips-web.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ PKG := vips-web
$(PKG)_WEBSITE := https://libvips.github.io/libvips/
$(PKG)_DESCR := A fast image processing library with low memory needs.
$(PKG)_IGNORE :=
$(PKG)_VERSION := 8.17.1
$(PKG)_CHECKSUM := 4d8c3325922c5300253d7594507a8f1d3caf8eed70dfb66cc7eb2cbed65bb5ca
$(PKG)_VERSION := 8.18.0-test1
$(PKG)_CHECKSUM := 242eaa2c195fd5a3021e5daaa4448cdbfa5b9702ec4377cbb9b2b18c4f542163
$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/vips-[0-9]*.patch)))
$(PKG)_GH_CONF := libvips/libvips/releases,v,,,,.tar.xz
$(PKG)_SUBDIR := vips-$($(PKG)_VERSION)
$(PKG)_GH_CONF := libvips/libvips/releases,v,,,,-test1.tar.xz
$(PKG)_SUBDIR := vips-$(firstword $(subst -, ,$($(PKG)_VERSION)))
$(PKG)_FILE := vips-$($(PKG)_VERSION).tar.xz
$(PKG)_DEPS := cc meson-wrapper libwebp librsvg glib pango libarchive \
libjpeg-turbo tiff lcms libexif libheif libspng \
Expand Down Expand Up @@ -83,6 +83,7 @@ define $(PKG)_BUILD
-Dpdfium=disabled \
-Dpoppler=disabled \
-Dquantizr=disabled \
-Draw=disabled \
-Dppm=false \
-Danalyze=false \
-Dradiance=false \
Expand Down
4 changes: 2 additions & 2 deletions build/vipsdisp.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ PKG := vipsdisp
$(PKG)_WEBSITE := https://github.com/jcupitt/vipsdisp
$(PKG)_DESCR := Tiny libvips / gtk+4 image viewer
$(PKG)_IGNORE :=
$(PKG)_VERSION := 4.1.0
$(PKG)_CHECKSUM := 51a1105f27e495fdd8e55a8628c4f688f28f900475efc479c9a7202ba59f09c2
$(PKG)_VERSION := 4.1.1
$(PKG)_CHECKSUM := 2a3378ab2f0e427effdcaab5025580e60c2937b04bbecb2a1a9346adc48dbe10
$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch)))
$(PKG)_GH_CONF := jcupitt/vipsdisp/releases,v,,,,.tar.xz
$(PKG)_DEPS := cc meson-wrapper gtk4 vips-all
Expand Down