diff --git a/README.md b/README.md index df362dfe..440de8f1 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,12 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help. | [libheif] | 1.17.5 | LGPLv3 | | [libimagequant] | 2.4.1ยน | BSD 2-Clause | | [libpng] | 1.6.40 | [libpng License version 2] | -| [librsvg] | 2.57.0 | LGPLv3 | +| [librsvg] | 2.57.1 | LGPLv3 | | [libspng] | 0.7.4 | BSD 2-Clause | | [libtiff] | 4.6.0 | [libtiff License] (BSD-like) | | [libvips] | 8.15.0 | LGPLv3 | | [libwebp] | 1.3.2 | New BSD License | -| [libxml2] | 2.12.2 | MIT Licence | +| [libxml2] | 2.12.3 | MIT Licence | | [mozjpeg] | 4.1.5 | [zlib License, IJG License, BSD-3-Clause] | | [pango] | 1.51.0 | LGPLv3 | | [pixman] | 0.42.2 | MIT Licence | @@ -95,7 +95,7 @@ Same as libvips-web + these extra dependencies: | [brotli] | 1.1.0 | MIT Licence | | [cfitsio] | 4.3.1 | BSD-like | | [fftw] | 3.3.10 | GPLv2 | -| [imagemagick] | 6.9.13-0 | [ImageMagick License] (Apache-2.0-like) | +| [imagemagick] | 6.9.13-1 | [ImageMagick License] (Apache-2.0-like) | | [imath] | 3.1.9 | BSD 3-Clause | | [libdicom] | 1.0.5 | MIT Licence | | [libjxl] | 0.8.2 | BSD 3-Clause | diff --git a/build/overrides.mk b/build/overrides.mk index d61ba86c..ce18c44e 100644 --- a/build/overrides.mk +++ b/build/overrides.mk @@ -21,8 +21,8 @@ gdk-pixbuf_URL := https://download.gnome.org/sources/gdk-pixbuf/$(call SHOR # no longer needed by libvips, but some of the deps need it # upstream version is 2.11.1 -libxml2_VERSION := 2.12.2 -libxml2_CHECKSUM := 3f2e6464fa15073eb8f3d18602d54fafc489b7715171064615a40490c6be9f4f +libxml2_VERSION := 2.12.3 +libxml2_CHECKSUM := 8c8f1092340a89ff32bc44ad5c9693aff9bc8a7a3e161bb239666e5d15ac9aaa libxml2_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/libxml2-[0-9]*.patch))) libxml2_SUBDIR := libxml2-$(libxml2_VERSION) libxml2_FILE := libxml2-$(libxml2_VERSION).tar.xz @@ -46,8 +46,8 @@ libarchive_FILE := libarchive-$(libarchive_VERSION).tar.xz 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.13-0 -imagemagick_CHECKSUM := 2885de49e8464812add81989bd400231daf66825f70da6b617cea554b83b595d +imagemagick_VERSION := 6.9.13-1 +imagemagick_CHECKSUM := f2ecb7e352c6acbecb44366e415701766d54d51499160773742bf163788a31b2 imagemagick_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/imagemagick-[0-9]*.patch))) imagemagick_GH_CONF := ImageMagick/ImageMagick6/tags @@ -60,8 +60,8 @@ graphicsmagick_FILE := GraphicsMagick-$(graphicsmagick_VERSION).tar.lz graphicsmagick_URL := https://$(SOURCEFORGE_MIRROR)/project/graphicsmagick/graphicsmagick/$(graphicsmagick_VERSION)/$(graphicsmagick_FILE) # upstream version is 2.40.21 -librsvg_VERSION := 2.57.0 -librsvg_CHECKSUM := 335fe2e0c2cbf1b7bf0668651224a23e135451f0b1793cd813649be2bffa74e8 +librsvg_VERSION := 2.57.1 +librsvg_CHECKSUM := 074671a3ed6fbcd67cae2a40e539107f4f097ca8a4ab1a894c05e2524ff340ef librsvg_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/librsvg-[0-9]*.patch))) librsvg_SUBDIR := librsvg-$(librsvg_VERSION) librsvg_FILE := librsvg-$(librsvg_VERSION).tar.xz @@ -581,9 +581,6 @@ define librsvg_BUILD # Update expected Cargo SHA256 hashes for the vendored files we have patched $(SED) -i 's/1cb3a78f27813219776604dc99a86b95c3c4649c34a06f840440433ffb178c1d/930123760293dc184dbabc209c73cbfc079af5ca3eaabd76a06316bafbd399a3/' '$(SOURCE_DIR)/vendor/cfg-expr/.cargo-checksum.json'; \ $(SED) -i 's/c3d31731175775918d2e7b3e4c19457085be966b85992e33e75435bda32acd9f/0ffa5a52d0b1c19b327ead7d1d39c9582c950a4d0770bf8c0ec2ec462ff710c7/' '$(SOURCE_DIR)/vendor/compiler_builtins/.cargo-checksum.json'; \ - $(SED) -i 's/8bf710288f88cfbf67e510f68abbb5a4f7173d2ea9ef32f98d594935fc051641/891c080ebd853786846af1987ca5bdb92485a792d3ec7281cf20ddaef94c9b21/' '$(SOURCE_DIR)/vendor/compiler_builtins/.cargo-checksum.json'; \ - $(SED) -i 's/01bdacaccadd2b9b69183f9b5a28d010d3454d886841432f51aa79cb274c24ec/014ceac5eddbc6492e09f1a1f1bbc6dc65bb061450df613f1b3e32c00387e1df/' '$(SOURCE_DIR)/vendor/windows-sys/.cargo-checksum.json'; \ - $(SED) -i 's/e990dd3ef1561f99521c4129a261a38130c823addf52f46b341fe99960d4cb74/b819750a2bb403807ebabb845b88707e81359b1c01782424dcb07f44acd001de/' '$(SOURCE_DIR)/vendor/windows-sys/.cargo-checksum.json'; \ # Install Cargo config $(INSTALL) -d '$(SOURCE_DIR)/.cargo' (echo '[source.crates-io]'; \ diff --git a/build/patches/librsvg-2-fixes.patch b/build/patches/librsvg-2-fixes.patch index 58f197d8..04601bf9 100644 --- a/build/patches/librsvg-2-fixes.patch +++ b/build/patches/librsvg-2-fixes.patch @@ -70,8 +70,8 @@ index 1111111..2222222 100644 [dependencies] # Keep these in sync with respect to the cairo-rs version: # src/lib.rs - toplevel example in the docs --cairo-rs = { version = "0.18", features=["v1_16", "png", "pdf", "ps", "svg"] } -+cairo-rs = { version = "0.18", features=["v1_16", "png", "svg"] } +-cairo-rs = { version = "0.18.2", features=["v1_16", "png", "pdf", "ps", "svg"] } ++cairo-rs = { version = "0.18.2", features=["v1_16", "png", "svg"] } cast = "0.3.0" cssparser = "~0.31" data-url = "0.3.0" diff --git a/build/patches/librsvg-llvm-mingw.patch b/build/patches/librsvg-llvm-mingw.patch index abac486b..f648245a 100644 --- a/build/patches/librsvg-llvm-mingw.patch +++ b/build/patches/librsvg-llvm-mingw.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Wed, 5 May 2021 21:00:00 +0200 -Subject: [PATCH 1/4] Add llvm-mingw i686/ARMv7 targets +Subject: [PATCH 1/2] Add llvm-mingw i686/ARMv7 targets Upstream-Status: Inappropriate [enable feature] Upstream only accepts Rust targets that are available in stable releases. @@ -54,7 +54,7 @@ index 1111111..2222222 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Mon, 21 Sep 2020 11:00:00 +0200 -Subject: [PATCH 2/4] Fix linker error on `armv7-pc-windows-gnullvm` +Subject: [PATCH 2/2] Fix linker error on `armv7-pc-windows-gnullvm` Details: lld-link: error: undefined symbol: __aeabi_idiv @@ -75,225 +75,3 @@ index 1111111..2222222 100644 { sources.extend(&[ ("__aeabi_div0", "arm/aeabi_div0.c"), - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Kleis Auke Wolthuizen -Date: Tue, 15 Feb 2022 11:38:18 +0100 -Subject: [PATCH 3/4] Use appropriate fix/float aliases on llvm-mingw - -See: https://github.com/llvm/llvm-project/commit/e6407356ba008e474322d52b7d031f65fa4913fc - -Details: -ld.lld: error: duplicate symbol: __floatdisf ->>> defined at libclang_rt.builtins-arm.a(floatdisf.c.obj) ->>> defined at libcompiler_builtins-.rlib() - -ld.lld: error: duplicate symbol: __floatdidf ->>> defined at libclang_rt.builtins-arm.a(floatdidf.c.obj) ->>> defined at libcompiler_builtins-.rlib() - -ld.lld: error: duplicate symbol: __floatundisf ->>> defined at libclang_rt.builtins-arm.a(floatundisf.c.obj) ->>> defined at libcompiler_builtins-.rlib() - -ld.lld: error: duplicate symbol: __floatundidf ->>> defined at libclang_rt.builtins-arm.a(floatundidf.c.obj) ->>> defined at libcompiler_builtins-.rlib() - -ld.lld: error: duplicate symbol: __fixsfdi ->>> defined at libclang_rt.builtins-arm.a(fixsfdi.c.obj) ->>> defined at libcompiler_builtins-.rlib() - -ld.lld: error: duplicate symbol: __fixdfdi ->>> defined at libclang_rt.builtins-arm.a(fixdfdi.c.obj) ->>> defined at libcompiler_builtins-.rlib() - -ld.lld: error: duplicate symbol: __fixunssfdi ->>> defined at libclang_rt.builtins-arm.a(fixunssfdi.c.obj) ->>> defined at libcompiler_builtins-.rlib() - -ld.lld: error: duplicate symbol: __fixunsdfdi ->>> defined at libclang_rt.builtins-arm.a(fixunsdfdi.c.obj) ->>> defined at libcompiler_builtins-.rlib() - -Upstream-Status: Inappropriate [Windows specific] -This is Windows specific and would break compatibility with other Rust ARMv7 targets. - -diff --git a/vendor/compiler_builtins/src/float/conv.rs b/vendor/compiler_builtins/src/float/conv.rs -index 1111111..2222222 100644 ---- a/vendor/compiler_builtins/src/float/conv.rs -+++ b/vendor/compiler_builtins/src/float/conv.rs -@@ -82,12 +82,12 @@ intrinsics! { - f64::from_bits(int_to_float::u32_to_f64_bits(i)) - } - -- #[arm_aeabi_alias = __aeabi_ul2f] -+ #[arm_aeabi_alias = __u64tos] - pub extern "C" fn __floatundisf(i: u64) -> f32 { - f32::from_bits(int_to_float::u64_to_f32_bits(i)) - } - -- #[arm_aeabi_alias = __aeabi_ul2d] -+ #[arm_aeabi_alias = __u64tod] - pub extern "C" fn __floatundidf(i: u64) -> f64 { - f64::from_bits(int_to_float::u64_to_f64_bits(i)) - } -@@ -117,13 +117,13 @@ intrinsics! { - f64::from_bits(int_to_float::u32_to_f64_bits(i.unsigned_abs()) | sign_bit) - } - -- #[arm_aeabi_alias = __aeabi_l2f] -+ #[arm_aeabi_alias = __i64tos] - pub extern "C" fn __floatdisf(i: i64) -> f32 { - let sign_bit = ((i >> 63) as u32) << 31; - f32::from_bits(int_to_float::u64_to_f32_bits(i.unsigned_abs()) | sign_bit) - } - -- #[arm_aeabi_alias = __aeabi_l2d] -+ #[arm_aeabi_alias = __i64tod] - pub extern "C" fn __floatdidf(i: i64) -> f64 { - let sign_bit = ((i >> 63) as u64) << 63; - f64::from_bits(int_to_float::u64_to_f64_bits(i.unsigned_abs()) | sign_bit) -@@ -160,7 +160,7 @@ intrinsics! { - } - } - -- #[arm_aeabi_alias = __aeabi_f2ulz] -+ #[arm_aeabi_alias = __stou64] - pub extern "C" fn __fixunssfdi(f: f32) -> u64 { - let fbits = f.to_bits(); - if fbits < 127 << 23 { // >= 0, < 1 -@@ -208,7 +208,7 @@ intrinsics! { - } - } - -- #[arm_aeabi_alias = __aeabi_d2ulz] -+ #[arm_aeabi_alias = __dtou64] - pub extern "C" fn __fixunsdfdi(f: f64) -> u64 { - let fbits = f.to_bits(); - if fbits < 1023 << 52 { // >= 0, < 1 -@@ -260,7 +260,7 @@ intrinsics! { - } - } - -- #[arm_aeabi_alias = __aeabi_f2lz] -+ #[arm_aeabi_alias = __stoi64] - pub extern "C" fn __fixsfdi(f: f32) -> i64 { - let fbits = f.to_bits() & !0 >> 1; // Remove sign bit. - if fbits < 127 << 23 { // >= 0, < 1 -@@ -311,7 +311,7 @@ intrinsics! { - } - } - -- #[arm_aeabi_alias = __aeabi_d2lz] -+ #[arm_aeabi_alias = __dtoi64] - pub extern "C" fn __fixdfdi(f: f64) -> i64 { - let fbits = f.to_bits() & !0 >> 1; // Remove sign bit. - if fbits < 1023 << 52 { // >= 0, < 1 - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Kleis Auke Wolthuizen -Date: Sat, 30 Apr 2022 16:05:00 +0200 -Subject: [PATCH 4/4] Fix build errors on `armv7-pc-windows-gnullvm` - -Details: -error[E0412]: cannot find type `WSADATA` in this scope - --> vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs:347:63 - | -347 | pub fn WSAStartup(wversionrequested: u16, lpwsadata: *mut WSADATA) -> i32; - | ^^^^^^^ help: a struct with a similar name exists: `WSPDATA` -... -8679 | pub struct WSPDATA { - | ------------------ similarly named struct `WSPDATA` defined here - -error[E0412]: cannot find type `SERVENT` in this scope - --> vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs:481:103 - | -481 | pub fn getservbyname(name: ::windows_sys::core::PCSTR, proto: ::windows_sys::core::PCSTR) -> *mut SERVENT; - | ^^^^^^^ not found in this scope - -error[E0412]: cannot find type `SERVENT` in this scope - --> vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs:483:80 - | -483 | pub fn getservbyport(port: i32, proto: ::windows_sys::core::PCSTR) -> *mut SERVENT; - | ^^^^^^^ not found in this scope - -error[E0412]: cannot find type `DELAYLOAD_INFO` in this scope - --> vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs:3241:140 - | -3241 | ..._CALLBACK = ::core::option::Option *mut ::... - | - help: you might be missing a type parameter: `` ^^^^^^^^^^^^^^ not found in this scope - -Upstream-Status: Pending - -diff --git a/vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs b/vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs -index 1111111..2222222 100644 ---- a/vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs -+++ b/vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs -@@ -6619,16 +6619,16 @@ impl ::core::clone::Clone for SERVENT { - } - #[repr(C)] - #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - pub struct SERVENT { - pub s_name: ::windows_sys::core::PSTR, - pub s_aliases: *mut *mut i8, - pub s_port: i16, - pub s_proto: ::windows_sys::core::PSTR, - } --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - impl ::core::marker::Copy for SERVENT {} --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - impl ::core::clone::Clone for SERVENT { - fn clone(&self) -> Self { - *self -@@ -7860,7 +7860,7 @@ impl ::core::clone::Clone for WSADATA { - } - #[repr(C)] - #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - pub struct WSADATA { - pub wVersion: u16, - pub wHighVersion: u16, -@@ -7870,9 +7870,9 @@ pub struct WSADATA { - pub iMaxUdpDg: u16, - pub lpVendorInfo: ::windows_sys::core::PSTR, - } --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - impl ::core::marker::Copy for WSADATA {} --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - impl ::core::clone::Clone for WSADATA { - fn clone(&self) -> Self { - *self - -diff --git a/vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs b/vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs -index 1111111..2222222 100644 ---- a/vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs -+++ b/vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs -@@ -2241,7 +2241,7 @@ impl ::core::clone::Clone for DELAYLOAD_INFO { - } - #[repr(C)] - #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - pub struct DELAYLOAD_INFO { - pub Size: u32, - pub DelayloadDescriptor: *mut IMAGE_DELAYLOAD_DESCRIPTOR, -@@ -2252,9 +2252,9 @@ pub struct DELAYLOAD_INFO { - pub Unused: *mut ::core::ffi::c_void, - pub LastError: u32, - } --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - impl ::core::marker::Copy for DELAYLOAD_INFO {} --#[cfg(target_arch = "x86")] -+#[cfg(any(target_arch = "arm", target_arch = "x86"))] - impl ::core::clone::Clone for DELAYLOAD_INFO { - fn clone(&self) -> Self { - *self diff --git a/build/plugins/llvm-mingw/patches/rust-1-fixes.patch b/build/plugins/llvm-mingw/patches/rust-1-fixes.patch index b6500481..a8a474d5 100644 --- a/build/plugins/llvm-mingw/patches/rust-1-fixes.patch +++ b/build/plugins/llvm-mingw/patches/rust-1-fixes.patch @@ -5,7 +5,7 @@ Contains ad hoc patches for cross building. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Tue, 15 Sep 2020 11:50:00 +0200 -Subject: [PATCH 1/4] Add `armv7-pc-windows-gnullvm` triple +Subject: [PATCH 1/5] Add `armv7-pc-windows-gnullvm` triple Upstream-Status: Pending @@ -36,7 +36,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 -@@ -1592,6 +1592,7 @@ supported_targets! { +@@ -1595,6 +1595,7 @@ supported_targets! { ("i686-uwp-windows-gnu", i686_uwp_windows_gnu), ("x86_64-uwp-windows-gnu", x86_64_uwp_windows_gnu), @@ -48,7 +48,7 @@ index 1111111..2222222 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Tue, 22 Sep 2020 10:00:00 +0200 -Subject: [PATCH 2/4] std/unwind: Fix linker errors on `armv7-pc-windows-gnullvm` +Subject: [PATCH 2/5] std/unwind: Fix linker errors on `armv7-pc-windows-gnullvm` Details: ld.lld: error: undefined symbol: __gnu_unwind_frame @@ -101,7 +101,7 @@ index 1111111..2222222 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Tue, 30 Aug 2022 23:20:27 +0200 -Subject: [PATCH 3/4] windows-gnullvm: Avoid linking to libunwind statically +Subject: [PATCH 3/5] windows-gnullvm: Avoid linking to libunwind statically Avoid linking against the static variant of libunwind, which is not always available. Instead, prefer to use the unwind library from the @@ -160,7 +160,7 @@ index 1111111..2222222 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Mon, 17 Oct 2022 11:50:00 +0200 -Subject: [PATCH 4/4] Use GCC-style unwinding on MinGW targets other than i686 +Subject: [PATCH 4/5] Use GCC-style unwinding on MinGW targets other than i686 See: https://github.com/msys2/MINGW-packages/pull/13278 @@ -205,3 +205,27 @@ index 1111111..2222222 100644 // We declare these as opaque types. This is fine since you just need to // pass them to _GCC_specific_handler and forget about them. pub enum EXCEPTION_RECORD {} + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Kleis Auke Wolthuizen +Date: Sun, 17 Dec 2023 11:52:24 +0100 +Subject: [PATCH 5/5] Don't consider weak symbols as built-in functions + +See: https://github.com/rust-lang/rust/issues/118609 + +Upstream-Status: Pending + +diff --git a/compiler/rustc_codegen_ssa/src/back/symbol_export.rs b/compiler/rustc_codegen_ssa/src/back/symbol_export.rs +index 1111111..2222222 100644 +--- a/compiler/rustc_codegen_ssa/src/back/symbol_export.rs ++++ b/compiler/rustc_codegen_ssa/src/back/symbol_export.rs +@@ -112,7 +112,8 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, _: LocalCrate) -> DefIdMap