From 4fb5221d397a9e03f4bff90ec6ec22d125d119b3 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Thu, 20 Jul 2023 17:00:50 +0200 Subject: [PATCH] Update for 8.14.3 - Update HarfBuzz to 8.0.1. - Update libarchive to 3.7.0. - Update highway to 1.0.5. - Update ImageMagick to 6.9.12-91. --- README.md | 10 +- build.sh | 8 +- build/highway.mk | 9 +- build/overrides.mk | 22 +- build/patches/librsvg-2-issue-996.patch | 268 ++++++++++++++++++ .../llvm-mingw/patches/rust-1-fixes.patch | 20 +- build/plugins/llvm-mingw/rust.mk | 6 +- build/variables.sh | 2 +- build/vips-all.mk | 4 +- build/vips-web.mk | 4 +- 10 files changed, 316 insertions(+), 37 deletions(-) create mode 100644 build/patches/librsvg-2-issue-996.patch diff --git a/README.md b/README.md index 59cb2068..6d1cafd3 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,9 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help. | [fribidi] | 1.0.13 | LGPLv3 | | [gdk-pixbuf] | 2.42.10 | LGPLv3 | | [glib] | 2.77.0 | LGPLv3 | -| [harfbuzz] | 7.3.0 | MIT Licence | +| [harfbuzz] | 8.0.1 | MIT Licence | | [lcms] | 2.15 | MIT Licence | -| [libarchive] | 3.6.2 | BSD 2-Clause | +| [libarchive] | 3.7.0 | BSD 2-Clause | | [libexif] | 0.6.24 | LGPLv3 | | [libffi] | 3.4.4 | MIT Licence | | [libheif] | 1.16.2 | LGPLv3 | @@ -37,7 +37,7 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help. | [librsvg] | 2.56.90 | LGPLv3 | | [libspng] | 0.7.4 | BSD 2-Clause | | [libtiff] | 4.5.1 | [libtiff License] (BSD-like) | -| [libvips] | 8.14.2 | LGPLv3 | +| [libvips] | 8.14.3 | LGPLv3 | | [libwebp] | 1.3.1 | New BSD License | | [libxml2] | 2.11.4 | MIT Licence | | [mozjpeg] | 4.1.3 | [zlib License, IJG License, BSD-3-Clause] | @@ -96,8 +96,8 @@ Same as libvips-web + these extra dependencies: | [brotli] | 1.0.9 | MIT Licence | | [cfitsio] | 4.2.0 | BSD-like | | [fftw] | 3.3.10 | GPLv2 | -| [highway] | 1.0.4 | Apache-2.0 License | -| [imagemagick] | 6.9.12-90 | [ImageMagick License] (Apache-2.0-like) | +| [highway] | 1.0.5 | Apache-2.0 License | +| [imagemagick] | 6.9.12-91 | [ImageMagick License] (Apache-2.0-like) | | [imath] | 3.1.9 | BSD 3-Clause | | [libjxl] | 0.8.2 | BSD 3-Clause | | [matio] | 1.5.23 | BSD 2-Clause | diff --git a/build.sh b/build.sh index b8db1c3c..efa2bbf6 100755 --- a/build.sh +++ b/build.sh @@ -13,10 +13,10 @@ OPTIONS: --tmpdir Where intermediate files should be stored (default in /var/tmp/mxe) --nightly Build libvips from tip-of-tree (alias of -r master) --with-hevc Build libheif with the HEVC-related dependencies - --with-debug Build binaires without optimizations to improve debuggability - --without-llvm Build binaires with GCC - --without-mozjpeg Build binaires with libjpeg-turbo - --without-zlib-ng Build binaires with vanilla zlib + --with-debug Build binaries without optimizations to improve debuggability + --without-llvm Build binaries with GCC + --without-mozjpeg Build binaries with libjpeg-turbo + --without-zlib-ng Build binaries with vanilla zlib DEPS: The group of dependencies to build libvips with, diff --git a/build/highway.mk b/build/highway.mk index 56911d97..b9ce7e3b 100644 --- a/build/highway.mk +++ b/build/highway.mk @@ -2,17 +2,22 @@ PKG := highway $(PKG)_WEBSITE := https://github.com/google/highway $(PKG)_DESCR := Performance-portable, length-agnostic SIMD with runtime dispatch $(PKG)_IGNORE := -$(PKG)_VERSION := 1.0.4 -$(PKG)_CHECKSUM := faccd343935c9e98afd1016e9d20e0b8b89d908508d1af958496f8c2d3004ac2 +$(PKG)_VERSION := 1.0.5 +$(PKG)_CHECKSUM := 99b7dad98b8fa088673b720151458fae698ae5df9154016e39de4afdc23bb927 $(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch))) $(PKG)_GH_CONF := google/highway/tags $(PKG)_DEPS := cc +# Highway requires VFPv4 floating-point instructions when targeting Armv7. +# See: https://github.com/google/highway/pull/1143 +# Dynamic dispatch requires Linux to detect CPU capabilities on both Armv7 +# and AArch64. define $(PKG)_BUILD cd '$(BUILD_DIR)' && $(TARGET)-cmake \ -DBUILD_TESTING=OFF \ -DHWY_ENABLE_CONTRIB=OFF \ -DHWY_ENABLE_EXAMPLES=OFF \ + $(if $(call seq,armv7,$(PROCESSOR)), -DCMAKE_CXX_FLAGS='$(CXXFLAGS) -mfpu=neon-vfpv4') \ '$(SOURCE_DIR)' $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MAKE) -C '$(BUILD_DIR)' -j 1 $(subst -,/,$(INSTALL_STRIP_LIB)) diff --git a/build/overrides.mk b/build/overrides.mk index 4cbdf575..b1e2bf0c 100644 --- a/build/overrides.mk +++ b/build/overrides.mk @@ -29,16 +29,16 @@ libxml2_FILE := libxml2-$(libxml2_VERSION).tar.xz libxml2_URL := https://download.gnome.org/sources/libxml2/$(call SHORT_PKG_VERSION,libxml2)/$(libxml2_FILE) # upstream version is 3.4.0 -libarchive_VERSION := 3.6.2 -libarchive_CHECKSUM := 9e2c1b80d5fbe59b61308fdfab6c79b5021d7ff4ff2489fb12daf0a96a83551d +libarchive_VERSION := 3.7.0 +libarchive_CHECKSUM := 44729a0cc3b0b0be6742a9873d25e85e240c9318f5f5ebf2cca6bc84d7b91b07 libarchive_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libarchive-[0-9]*.patch))) libarchive_SUBDIR := libarchive-$(libarchive_VERSION) libarchive_FILE := libarchive-$(libarchive_VERSION).tar.xz -libarchive_URL := https://www.libarchive.org/downloads/$(libarchive_FILE) +libarchive_URL := https://github.com/libarchive/libarchive/releases/download/v$(libarchive_VERSION)/$(libarchive_FILE) # upstream version is 7, we want ImageMagick 6 -imagemagick_VERSION := 6.9.12-90 -imagemagick_CHECKSUM := d17bdab4ba3dbe735026cbbe82046a28e8ad36ff8bf090be37bd34f4aedc8d78 +imagemagick_VERSION := 6.9.12-91 +imagemagick_CHECKSUM := d55f906897ee806e8fc3ba4a20afe2290603435db3f775522035c501358f5b32 imagemagick_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/imagemagick-[0-9]*.patch))) imagemagick_GH_CONF := ImageMagick/ImageMagick6/tags @@ -125,6 +125,12 @@ pixman_SUBDIR := pixman-$(pixman_VERSION) pixman_FILE := pixman-$(pixman_VERSION).tar.gz pixman_URL := https://cairographics.org/releases/$(pixman_FILE) +# upstream version is 7.3.0 +harfbuzz_VERSION := 8.0.1 +harfbuzz_CHECKSUM := c1ce780acd385569f25b9a29603d1d5bc71e6940e55bfdd4f7266fad50e42620 +harfbuzz_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/harfbuzz-[0-9]*.patch))) +harfbuzz_GH_CONF := harfbuzz/harfbuzz/releases,,,,,.tar.xz + # upstream version is 3.3.8 fftw_VERSION := 3.3.10 fftw_CHECKSUM := 56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467 @@ -577,8 +583,6 @@ define librsvg_BUILD # Allow libtool to statically link against libintl # by specifying lt_cv_deplibs_check_method="pass_all" - # Need to explicitly link against ntdll after PR: - # https://github.com/rust-lang/rust/pull/108262 cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \ $(MXE_CONFIGURE_OPTS) \ --disable-pixbuf-loader \ @@ -767,7 +771,8 @@ define libarchive_BUILD --disable-bsdtar \ --disable-bsdcat \ --disable-bsdcpio \ - --disable-posix-regex-lib + --disable-posix-regex-lib \ + $(if $(BUILD_STATIC), CFLAGS='-DLIBARCHIVE_STATIC') $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MXE_DISABLE_CRUFT) $(MAKE) -C '$(BUILD_DIR)' -j 1 $(INSTALL_STRIP_LIB) $(MXE_DISABLE_CRUFT) endef @@ -791,6 +796,7 @@ define glib_BUILD --default-library=shared \ --force-fallback-for=gvdb \ -Dnls=disabled \ + -Dtests=false \ -Dglib_assert=false \ -Dglib_checks=false \ '$(SOURCE_DIR)' \ diff --git a/build/patches/librsvg-2-issue-996.patch b/build/patches/librsvg-2-issue-996.patch new file mode 100644 index 00000000..de34ec78 --- /dev/null +++ b/build/patches/librsvg-2-issue-996.patch @@ -0,0 +1,268 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Federico Mena Quintero +Date: Wed, 19 Jul 2023 16:59:11 -0600 +Subject: [PATCH 1/1] (#996): Fix arbitrary file read when href has special + characters + +In UrlResolver::resolve_href() we now explicitly disallow URLs that +have a query string ("?") or a fragment identifier ("#"). + +We also explicitly check for a base URL and not resolving to a path, +for example, "file:///base/foo.svg" + "." would resolve to +"file:///base/" - this is technically correct, but we don't want to +resolve to directories. + +Also, we pass a canonicalized path name as a URL upstream, so that +g_file_new_from_url() will consume it later, instead of passing the +original and potentially malicious URL. + +Fixes https://gitlab.gnome.org/GNOME/librsvg/-/issues/996 + +Upstream-Status: Accepted [https://gitlab.gnome.org/GNOME/librsvg/-/commit/5032540e177097137b1c26c1c528bfa929c5e1f8] + +diff --git a/include/librsvg/rsvg.h b/include/librsvg/rsvg.h +index 1111111..2222222 100644 +--- a/include/librsvg/rsvg.h ++++ b/include/librsvg/rsvg.h +@@ -132,28 +132,30 @@ GType rsvg_error_get_type (void); + * 1. All `data:` URLs may be loaded. These are sometimes used + * to include raster image data, encoded as base-64, directly in an SVG file. + * +- * 2. All other URL schemes in references require a base URL. For ++ * 2. URLs with queries ("?") or fragment identifiers ("#") are not allowed. ++ * ++ * 3. All URL schemes other than data: in references require a base URL. For + * example, this means that if you load an SVG with + * [ctor@Rsvg.Handle.new_from_data] without calling [method@Rsvg.Handle.set_base_uri], + * then any referenced files will not be allowed (e.g. raster images to be + * loaded from other files will not work). + * +- * 3. If referenced URLs are absolute, rather than relative, then they must ++ * 4. If referenced URLs are absolute, rather than relative, then they must + * have the same scheme as the base URL. For example, if the base URL has a + * `file` scheme, then all URL references inside the SVG must + * also have the `file` scheme, or be relative references which + * will be resolved against the base URL. + * +- * 4. If referenced URLs have a `resource` scheme, that is, ++ * 5. If referenced URLs have a `resource` scheme, that is, + * if they are included into your binary program with GLib's resource + * mechanism, they are allowed to be loaded (provided that the base URL is + * also a `resource`, per the previous rule). + * +- * 5. Otherwise, non-`file` schemes are not allowed. For ++ * 6. Otherwise, non-`file` schemes are not allowed. For + * example, librsvg will not load `http` resources, to keep + * malicious SVG data from "phoning home". + * +- * 6. A relative URL must resolve to the same directory as the base URL, or to ++ * 7. A relative URL must resolve to the same directory as the base URL, or to + * one of its subdirectories. Librsvg will canonicalize filenames, by + * removing ".." path components and resolving symbolic links, to decide whether + * files meet these conditions. +diff --git a/rsvg/src/error.rs b/rsvg/src/error.rs +index 1111111..2222222 100644 +--- a/rsvg/src/error.rs ++++ b/rsvg/src/error.rs +@@ -333,6 +333,12 @@ pub enum AllowedUrlError { + /// or in one directory below the base file. + NotSiblingOrChildOfBaseFile, + ++ /// Loaded file:// URLs cannot have a query part, e.g. `file:///foo?blah` ++ NoQueriesAllowed, ++ ++ /// URLs may not have fragment identifiers at this stage ++ NoFragmentIdentifierAllowed, ++ + /// Error when obtaining the file path or the base file path + InvalidPath, + +@@ -345,17 +351,18 @@ pub enum AllowedUrlError { + + impl fmt::Display for AllowedUrlError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { ++ use AllowedUrlError::*; + match *self { +- AllowedUrlError::UrlParseError(e) => write!(f, "URL parse error: {e}"), +- AllowedUrlError::BaseRequired => write!(f, "base required"), +- AllowedUrlError::DifferentUriSchemes => write!(f, "different URI schemes"), +- AllowedUrlError::DisallowedScheme => write!(f, "disallowed scheme"), +- AllowedUrlError::NotSiblingOrChildOfBaseFile => { +- write!(f, "not sibling or child of base file") +- } +- AllowedUrlError::InvalidPath => write!(f, "invalid path"), +- AllowedUrlError::BaseIsRoot => write!(f, "base is root"), +- AllowedUrlError::CanonicalizationError => write!(f, "canonicalization error"), ++ UrlParseError(e) => write!(f, "URL parse error: {e}"), ++ BaseRequired => write!(f, "base required"), ++ DifferentUriSchemes => write!(f, "different URI schemes"), ++ DisallowedScheme => write!(f, "disallowed scheme"), ++ NotSiblingOrChildOfBaseFile => write!(f, "not sibling or child of base file"), ++ NoQueriesAllowed => write!(f, "no queries allowed"), ++ NoFragmentIdentifierAllowed => write!(f, "no fragment identifier allowed"), ++ InvalidPath => write!(f, "invalid path"), ++ BaseIsRoot => write!(f, "base is root"), ++ CanonicalizationError => write!(f, "canonicalization error"), + } + } + } +diff --git a/rsvg/src/lib.rs b/rsvg/src/lib.rs +index 1111111..2222222 100644 +--- a/rsvg/src/lib.rs ++++ b/rsvg/src/lib.rs +@@ -100,28 +100,30 @@ + //! include raster image data, encoded as base-64, directly in an SVG + //! file. + //! +-//! 2. All other URL schemes in references require a base URL. For ++//! 2. URLs with queries ("?") or fragment identifiers ("#") are not allowed. ++//! ++//! 3. All URL schemes other than data: in references require a base URL. For + //! example, this means that if you load an SVG with [`Loader::read_stream`] + //! without providing a `base_file`, then any referenced files will not + //! be allowed (e.g. raster images to be loaded from other files will + //! not work). + //! +-//! 3. If referenced URLs are absolute, rather than relative, then ++//! 4. If referenced URLs are absolute, rather than relative, then + //! they must have the same scheme as the base URL. For example, if + //! the base URL has a "`file`" scheme, then all URL references inside + //! the SVG must also have the "`file`" scheme, or be relative + //! references which will be resolved against the base URL. + //! +-//! 4. If referenced URLs have a "`resource`" scheme, that is, if they ++//! 5. If referenced URLs have a "`resource`" scheme, that is, if they + //! are included into your binary program with GLib's resource + //! mechanism, they are allowed to be loaded (provided that the base + //! URL is also a "`resource`", per the previous rule). + //! +-//! 5. Otherwise, non-`file` schemes are not allowed. For example, ++//! 6. Otherwise, non-`file` schemes are not allowed. For example, + //! librsvg will not load `http` resources, to keep malicious SVG data + //! from "phoning home". + //! +-//! 6. A relative URL must resolve to the same directory as the base ++//! 7. A relative URL must resolve to the same directory as the base + //! URL, or to one of its subdirectories. Librsvg will canonicalize + //! filenames, by removing "`..`" path components and resolving symbolic + //! links, to decide whether files meet these conditions. +diff --git a/rsvg/src/url_resolver.rs b/rsvg/src/url_resolver.rs +index 1111111..2222222 100644 +--- a/rsvg/src/url_resolver.rs ++++ b/rsvg/src/url_resolver.rs +@@ -1,13 +1,13 @@ + //! Determine which URLs are allowed for loading. + + use std::fmt; +-use std::io; + use std::ops::Deref; +-use std::path::{Path, PathBuf}; + use url::Url; + + use crate::error::AllowedUrlError; + ++/// Decides which URLs are allowed to be loaded. ++/// + /// Currently only contains the base URL. + /// + /// The plan is to add: +@@ -29,6 +29,11 @@ impl UrlResolver { + UrlResolver { base_url } + } + ++ /// Decides which URLs are allowed to be loaded based on the presence of a base URL. ++ /// ++ /// This function implements the policy described in "Security and locations of ++ /// referenced files" in the [crate ++ /// documentation](index.html#security-and-locations-of-referenced-files). + pub fn resolve_href(&self, href: &str) -> Result { + let url = Url::options() + .base_url(self.base_url.as_ref()) +@@ -40,6 +45,17 @@ impl UrlResolver { + return Ok(AllowedUrl(url)); + } + ++ // Queries are not allowed. ++ if url.query().is_some() { ++ return Err(AllowedUrlError::NoQueriesAllowed); ++ } ++ ++ // Fragment identifiers are not allowed. They should have been stripped ++ // upstream, by NodeId. ++ if url.fragment().is_some() { ++ return Err(AllowedUrlError::NoFragmentIdentifierAllowed); ++ } ++ + // All other sources require a base url + if self.base_url.is_none() { + return Err(AllowedUrlError::BaseRequired); +@@ -62,6 +78,26 @@ impl UrlResolver { + return Err(AllowedUrlError::DisallowedScheme); + } + ++ // The rest of this function assumes file: URLs; guard against ++ // incorrect refactoring. ++ assert!(url.scheme() == "file"); ++ ++ // If we have a base_uri of "file:///foo/bar.svg", and resolve an href of ".", ++ // Url.parse() will give us "file:///foo/". We don't want that, so check ++ // if the last path segment is empty - it will not be empty for a normal file. ++ ++ if let Some(segments) = url.path_segments() { ++ if segments ++ .last() ++ .expect("URL path segments always contain at last 1 element") ++ .is_empty() ++ { ++ return Err(AllowedUrlError::NotSiblingOrChildOfBaseFile); ++ } ++ } else { ++ unreachable!("the file: URL cannot have an empty path"); ++ } ++ + // We have two file: URIs. Now canonicalize them (remove .. and symlinks, etc.) + // and see if the directories match + +@@ -79,13 +115,17 @@ impl UrlResolver { + + let base_parent = base_parent.unwrap(); + +- let url_canon = +- canonicalize(url_path).map_err(|_| AllowedUrlError::CanonicalizationError)?; +- let parent_canon = +- canonicalize(base_parent).map_err(|_| AllowedUrlError::CanonicalizationError)?; +- +- if url_canon.starts_with(parent_canon) { +- Ok(AllowedUrl(url)) ++ let path_canon = url_path ++ .canonicalize() ++ .map_err(|_| AllowedUrlError::CanonicalizationError)?; ++ let parent_canon = base_parent ++ .canonicalize() ++ .map_err(|_| AllowedUrlError::CanonicalizationError)?; ++ ++ if path_canon.starts_with(parent_canon) { ++ // Finally, convert the canonicalized path back to a URL. ++ let path_to_url = Url::from_file_path(path_canon).unwrap(); ++ Ok(AllowedUrl(path_to_url)) + } else { + Err(AllowedUrlError::NotSiblingOrChildOfBaseFile) + } +@@ -156,17 +156,6 @@ impl fmt::Display for AllowedUrl { + } + } + +-// For tests, we don't want to touch the filesystem. In that case, +-// assume that we are being passed canonical file names. +-#[cfg(not(test))] +-fn canonicalize>(path: P) -> Result { +- path.as_ref().canonicalize() +-} +-#[cfg(test)] +-fn canonicalize>(path: P) -> Result { +- Ok(path.as_ref().to_path_buf()) +-} +- + #[cfg(test)] + mod tests { + use super::*; diff --git a/build/plugins/llvm-mingw/patches/rust-1-fixes.patch b/build/plugins/llvm-mingw/patches/rust-1-fixes.patch index 43803137..c2e831ea 100644 --- a/build/plugins/llvm-mingw/patches/rust-1-fixes.patch +++ b/build/plugins/llvm-mingw/patches/rust-1-fixes.patch @@ -61,7 +61,7 @@ diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/s index 1111111..2222222 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs -@@ -1385,7 +1385,9 @@ supported_targets! { +@@ -1386,7 +1386,9 @@ supported_targets! { ("x86_64-uwp-windows-gnu", x86_64_uwp_windows_gnu), ("aarch64-pc-windows-gnullvm", aarch64_pc_windows_gnullvm), @@ -93,11 +93,11 @@ ld.lld: error: undefined symbol: _Unwind_VRS_Set Upstream-Status: Pending -diff --git a/library/std/src/personality/gcc.rs b/library/std/src/personality/gcc.rs +diff --git a/library/std/src/sys/personality/gcc.rs b/library/std/src/sys/personality/gcc.rs index 1111111..2222222 100644 ---- a/library/std/src/personality/gcc.rs -+++ b/library/std/src/personality/gcc.rs -@@ -85,7 +85,7 @@ const UNWIND_DATA_REG: (i32, i32) = (10, 11); // x10, x11 +--- a/library/std/src/sys/personality/gcc.rs ++++ b/library/std/src/sys/personality/gcc.rs +@@ -90,7 +90,7 @@ const UNWIND_DATA_REG: (i32, i32) = (10, 11); // x10, x11 // https://github.com/gcc-mirror/gcc/blob/trunk/libgcc/unwind-c.c cfg_if::cfg_if! { @@ -194,11 +194,11 @@ See: https://github.com/msys2/MINGW-packages/pull/13278 Upstream-Status: Pending -diff --git a/library/std/src/personality/gcc.rs b/library/std/src/personality/gcc.rs +diff --git a/library/std/src/sys/personality/gcc.rs b/library/std/src/sys/personality/gcc.rs index 1111111..2222222 100644 ---- a/library/std/src/personality/gcc.rs -+++ b/library/std/src/personality/gcc.rs -@@ -184,7 +184,7 @@ cfg_if::cfg_if! { +--- a/library/std/src/sys/personality/gcc.rs ++++ b/library/std/src/sys/personality/gcc.rs +@@ -189,7 +189,7 @@ cfg_if::cfg_if! { } } else { // Default personality routine, which is used directly on most targets @@ -207,7 +207,7 @@ index 1111111..2222222 100644 unsafe extern "C" fn rust_eh_personality_impl( version: c_int, actions: uw::_Unwind_Action, -@@ -226,9 +226,9 @@ cfg_if::cfg_if! { +@@ -231,9 +231,9 @@ cfg_if::cfg_if! { } cfg_if::cfg_if! { diff --git a/build/plugins/llvm-mingw/rust.mk b/build/plugins/llvm-mingw/rust.mk index aa1c03d6..98496d22 100644 --- a/build/plugins/llvm-mingw/rust.mk +++ b/build/plugins/llvm-mingw/rust.mk @@ -2,13 +2,13 @@ PKG := rust $(PKG)_WEBSITE := https://www.rust-lang.org/ $(PKG)_DESCR := A systems programming language focused on safety, speed and concurrency. $(PKG)_IGNORE := -# https://static.rust-lang.org/dist/2023-07-07/rustc-nightly-src.tar.xz.sha256 +# https://static.rust-lang.org/dist/2023-07-20/rustc-nightly-src.tar.xz.sha256 $(PKG)_VERSION := nightly -$(PKG)_CHECKSUM := 7efe11263179d46fff000b1e398e603c2ed92c6c2890b9ee70357fb2899e11ec +$(PKG)_CHECKSUM := 70db253cf921333787f5fca18c6926755397449a63c83390fc8f042416e44a0e $(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch))) $(PKG)_SUBDIR := $(PKG)c-$($(PKG)_VERSION)-src $(PKG)_FILE := $(PKG)c-$($(PKG)_VERSION)-src.tar.xz -$(PKG)_URL := https://static.rust-lang.org/dist/2023-07-07/$($(PKG)_FILE) +$(PKG)_URL := https://static.rust-lang.org/dist/2023-07-20/$($(PKG)_FILE) $(PKG)_DEPS := $(BUILD)~$(PKG) $(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS) diff --git a/build/variables.sh b/build/variables.sh index 4cbff8c0..cd7d0c40 100755 --- a/build/variables.sh +++ b/build/variables.sh @@ -2,7 +2,7 @@ vips_package=vips vips_version=8.14 -vips_patch_version=2 +vips_patch_version=3 #vips_pre_version=rc1 if [ -n "$GIT_COMMIT" ]; then diff --git a/build/vips-all.mk b/build/vips-all.mk index 6142c260..a16aebef 100644 --- a/build/vips-all.mk +++ b/build/vips-all.mk @@ -2,8 +2,8 @@ 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.14.2 -$(PKG)_CHECKSUM := 27dad021f0835a5ab14e541d02abd41e4c3bd012d2196438df5a9e754984f7ce +$(PKG)_VERSION := 8.14.3 +$(PKG)_CHECKSUM := f884d61a6b54c99cdae855001c8b9523e13b4982be7e76cac03faccb91be105c $(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) diff --git a/build/vips-web.mk b/build/vips-web.mk index d765810f..e0d92c40 100644 --- a/build/vips-web.mk +++ b/build/vips-web.mk @@ -2,8 +2,8 @@ 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.14.2 -$(PKG)_CHECKSUM := 27dad021f0835a5ab14e541d02abd41e4c3bd012d2196438df5a9e754984f7ce +$(PKG)_VERSION := 8.14.3 +$(PKG)_CHECKSUM := f884d61a6b54c99cdae855001c8b9523e13b4982be7e76cac03faccb91be105c $(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)