From 07fa8c112727de9684f3e9ef147e7773cfb70bf5 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Mon, 15 Dec 2025 13:25:37 +0100 Subject: [PATCH 1/9] enable RISC-V 64-bit port --- wasmedge.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wasmedge.spec b/wasmedge.spec index d566576..4385c9a 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -23,7 +23,7 @@ Requires: lld18 Requires: llvm18 Requires: spdlog # Currently wasmedge could only be built on specific arches -ExclusiveArch: x86_64 aarch64 +ExclusiveArch: x86_64 aarch64 riscv64 Provides: %{reponame} = %{version}-%{release} Provides: bundled(blake3) = 1.2.0 Provides: bundled(wasi-cpp-header) = 0.0.1 From 77dbafb03f89f1bd098a4823b34d93fdc46aa00b Mon Sep 17 00:00:00 2001 From: dm4 Date: Fri, 2 Jan 2026 07:48:31 +0000 Subject: [PATCH 2/9] Remove the unused patch file Signed-off-by: dm4 --- ...-deprecated-warning-in-ciso646-heade.patch | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch diff --git a/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch b/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch deleted file mode 100644 index 14802d3..0000000 --- a/0001-LLVM-Ignore-c-17-deprecated-warning-in-ciso646-heade.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 05c0693bb02e83f342af08ed27747be3bc761668 Mon Sep 17 00:00:00 2001 -From: Shen-Ta Hsieh -Date: Tue, 21 Jan 2025 13:19:23 +0800 -Subject: [PATCH] [LLVM] Ignore c++17 deprecated warning in header - -Signed-off-by: Shen-Ta Hsieh ---- - lib/llvm/llvm.h | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/lib/llvm/llvm.h b/lib/llvm/llvm.h -index b5e19745..9b08d97b 100644 ---- a/lib/llvm/llvm.h -+++ b/lib/llvm/llvm.h -@@ -2,6 +2,13 @@ - // SPDX-FileCopyrightText: 2019-2024 Second State INC - #pragma once - -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wcpp" -+#include -+#pragma GCC diagnostic pop -+#endif -+ - #include "common/errcode.h" - #include "common/span.h" - #include --- -2.34.1 - From 03061a817a0ac3ff9ac1e64ae3e9a5a51fa8e641 Mon Sep 17 00:00:00 2001 From: dm4 Date: Fri, 2 Jan 2026 07:50:30 +0000 Subject: [PATCH 3/9] Backport fix for CVE-2025-22921 Signed-off-by: dm4 --- ...ne-the-overflow-detection-when-wrapp.patch | 52 +++++++++++++++++++ wasmedge.spec | 4 +- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch diff --git a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch new file mode 100644 index 0000000..c332c3e --- /dev/null +++ b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch @@ -0,0 +1,52 @@ +From 37cc9fa19bd23edbbdaa9252059b17f191fa4d17 Mon Sep 17 00:00:00 2001 +From: YiYing He +Date: Wed, 17 Dec 2025 20:27:38 +0800 +Subject: [PATCH] fix(runtime): refine the overflow detection when wrapping + memory instance + +Signed-off-by: YiYing He +--- + include/runtime/instance/memory.h | 24 +++++++++++++++++++----- + 1 file changed, 19 insertions(+), 5 deletions(-) + +diff --git a/include/runtime/instance/memory.h b/include/runtime/instance/memory.h +index ce511a7b..9d849598 100644 +--- a/include/runtime/instance/memory.h ++++ b/include/runtime/instance/memory.h +@@ -241,14 +241,28 @@ public: + return reinterpret_cast(&DataPtr[Offset]); + } + +- /// Get array of object at specific offset of memory. ++ /// Get array of object with count at specific offset of memory. + template +- Span getSpan(uint32_t Offset, uint32_t Size) const noexcept { +- uint32_t ByteSize = static_cast(sizeof(T) * Size); +- if (unlikely(!checkAccessBound(Offset, ByteSize))) { ++ Span getSpan(uint32_t Offset, uint32_t Count) const noexcept { ++ uint32_t Size; ++#if defined(_MSC_VER) && !defined(__clang__) // MSVC ++ // Should extend for memory64 proposal. ++ uint64_t Num = ++ static_cast(sizeof(T)) * static_cast(Count); ++ if ((Num >> 32) != 0) { ++ return Span(); ++ } ++ Size = static_cast(Num); ++#else ++ if (unlikely(__builtin_mul_overflow(static_cast(sizeof(T)), Count, ++ &Size))) { ++ return Span(); ++ } ++#endif ++ if (unlikely(!checkAccessBound(Offset, Size))) { + return Span(); + } +- return Span(reinterpret_cast(&DataPtr[Offset]), Size); ++ return Span(reinterpret_cast(&DataPtr[Offset]), Count); + } + + /// Get array of object at specific offset of memory. +-- +2.43.0 + diff --git a/wasmedge.spec b/wasmedge.spec index 4385c9a..7521160 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -12,6 +12,8 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz +# Patch from https://github.com/WasmEdge/WasmEdge/commit/37cc9fa19bd23edbbdaa9252059b17f191fa4d17 +Patch0: 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -55,7 +57,7 @@ Provides: %{reponame}-devel = %{version}-%{release} This package contains necessary header files for %{reponame} development. %prep -%autosetup -n %{name} +%autosetup -n %{name} -p1 [ -f VERSION ] || echo -n %{version} > VERSION %build From 77d3cb82a2156debec78d325788281d785b52a41 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 20:07:26 +0000 Subject: [PATCH 4/9] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 2deb44698f7b7a165a2e4fefadcb3a351f8921b9 Mon Sep 17 00:00:00 2001 From: hydai Date: Thu, 29 Jan 2026 10:57:10 +0000 Subject: [PATCH 5/9] Release 0.16.1 Signed-off-by: hydai --- .gitignore | 1 + ...ng-to-use-pointer-instead-of-wrapper.patch | 131 ++++++++++++++++++ ...ne-the-overflow-detection-when-wrapp.patch | 52 ------- sources | 1 + wasmedge.spec | 19 ++- 5 files changed, 149 insertions(+), 55 deletions(-) create mode 100644 0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch delete mode 100644 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch diff --git a/.gitignore b/.gitignore index 2010a24..f7f5b05 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /WasmEdge-0.14.0-src.tar.gz /WasmEdge-0.14.1-src.tar.gz /WasmEdge-0.15.0-src.tar.gz +/WasmEdge-0.16.1-src.tar.gz diff --git a/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch b/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch new file mode 100644 index 0000000..bc373d6 --- /dev/null +++ b/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch @@ -0,0 +1,131 @@ +From 3b9c754fbe96289452ef76951e783e5a7d7eacc7 Mon Sep 17 00:00:00 2001 +From: "Wang-Yang, Li" <7088579+LFsWang@users.noreply.github.com> +Date: Tue, 13 Jan 2026 01:24:29 +0800 +Subject: [PATCH] fix: refactor Poller context handling to use pointer instead + of wrapper (#4509) + +fix: refactor Poller context handling to use direct reference instead of wrapper + +Signed-off-by: LFsWang +--- + include/host/wasi/environ.h | 2 +- + include/host/wasi/inode.h | 2 +- + lib/host/wasi/inode-linux.cpp | 12 ++++++------ + lib/host/wasi/inode-macos.cpp | 2 +- + lib/host/wasi/inode-win.cpp | 2 +- + 5 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/include/host/wasi/environ.h b/include/host/wasi/environ.h +index 83783a2b..2e2f3b97 100644 +--- a/include/host/wasi/environ.h ++++ b/include/host/wasi/environ.h +@@ -1284,7 +1284,7 @@ public: + void close(std::shared_ptr Node) noexcept { VPoller::close(Node); } + + private: +- Environ &env() noexcept { return static_cast(Ctx.get()); } ++ Environ &env() noexcept { return static_cast(*Ctx); } + }; + + inline WasiExpect +diff --git a/include/host/wasi/inode.h b/include/host/wasi/inode.h +index 758cdb03..15bad334 100644 +--- a/include/host/wasi/inode.h ++++ b/include/host/wasi/inode.h +@@ -911,7 +911,7 @@ public: + bool ok() noexcept; + + protected: +- std::reference_wrapper Ctx; ++ PollerContext *Ctx; + + private: + Span<__wasi_event_t> WasiEvents; +diff --git a/lib/host/wasi/inode-linux.cpp b/lib/host/wasi/inode-linux.cpp +index 01c0e290..e6875a19 100644 +--- a/lib/host/wasi/inode-linux.cpp ++++ b/lib/host/wasi/inode-linux.cpp +@@ -1592,7 +1592,7 @@ Poller::Poller(PollerContext &C) noexcept + ::epoll_create(32) + #endif + ), +- Ctx(C) { ++ Ctx(&C) { + #if !__GLIBC_PREREQ(2, 9) + if (auto Res = ::fcntl(Fd, F_SETFD, FD_CLOEXEC); unlikely(Res != 0)) { + FdHolder::reset(); +@@ -1623,7 +1623,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, + Event.userdata = UserData; + Event.type = __WASI_EVENTTYPE_CLOCK; + +- if (auto Res = Ctx.get().acquireTimer(Clock); unlikely(!Res)) { ++ if (auto Res = Ctx->acquireTimer(Clock); unlikely(!Res)) { + Event.Valid = true; + Event.error = Res.error(); + return; +@@ -1633,7 +1633,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, + + auto &Timer = Timers.back(); + if (auto Res = Timer.setTime(Timeout, Precision, Flags); unlikely(!Res)) { +- Ctx.get().releaseTimer(std::move(Timer)); ++ Ctx->releaseTimer(std::move(Timer)); + Timers.pop_back(); + Event.Valid = true; + Event.error = Res.error(); +@@ -1657,7 +1657,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, + if (auto Res = ::epoll_ctl(Fd, EPOLL_CTL_ADD, Timer.Fd, &EPollEvent); + unlikely(Res < 0)) { + FdDatas.erase(Iter); +- Ctx.get().releaseTimer(std::move(Timer)); ++ Ctx->releaseTimer(std::move(Timer)); + Timers.pop_back(); + Event.Valid = true; + Event.error = fromErrNo(errno); +@@ -1666,7 +1666,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, + + return; + } catch (std::bad_alloc &) { +- Ctx.get().releaseTimer(std::move(Timer)); ++ Ctx->releaseTimer(std::move(Timer)); + Timers.pop_back(); + Event.Valid = true; + Event.error = __WASI_ERRNO_NOMEM; +@@ -1895,7 +1895,7 @@ void Poller::wait() noexcept { + // `this` as the dummy parameter. + ::epoll_ctl(Fd, EPOLL_CTL_DEL, Timer.Fd, + reinterpret_cast(this)); +- Ctx.get().releaseTimer(std::move(Timer)); ++ Ctx->releaseTimer(std::move(Timer)); + } + + std::swap(FdDatas, OldFdDatas); +diff --git a/lib/host/wasi/inode-macos.cpp b/lib/host/wasi/inode-macos.cpp +index a622f71a..bb9e57ff 100644 +--- a/lib/host/wasi/inode-macos.cpp ++++ b/lib/host/wasi/inode-macos.cpp +@@ -1392,7 +1392,7 @@ WasiExpect INode::updateStat() const noexcept { + return {}; + } + +-Poller::Poller(PollerContext &C) noexcept : FdHolder(::kqueue()), Ctx(C) {} ++Poller::Poller(PollerContext &C) noexcept : FdHolder(::kqueue()), Ctx(&C) {} + + WasiExpect Poller::prepare(Span<__wasi_event_t> E) noexcept { + WasiEvents = E; +diff --git a/lib/host/wasi/inode-win.cpp b/lib/host/wasi/inode-win.cpp +index f2b2a33a..b9f2cf27 100644 +--- a/lib/host/wasi/inode-win.cpp ++++ b/lib/host/wasi/inode-win.cpp +@@ -2179,7 +2179,7 @@ WasiExpect<__wasi_filesize_t> INode::filesize() const noexcept { + + bool INode::canBrowse() const noexcept { return SavedVFSFlags & VFS::Read; } + +-Poller::Poller(PollerContext &C) noexcept : Ctx(C) {} ++Poller::Poller(PollerContext &C) noexcept : Ctx(&C) {} + + WasiExpect Poller::prepare(Span<__wasi_event_t> E) noexcept { + WasiEvents = E; +-- +2.52.0 + + diff --git a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch b/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch deleted file mode 100644 index c332c3e..0000000 --- a/0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 37cc9fa19bd23edbbdaa9252059b17f191fa4d17 Mon Sep 17 00:00:00 2001 -From: YiYing He -Date: Wed, 17 Dec 2025 20:27:38 +0800 -Subject: [PATCH] fix(runtime): refine the overflow detection when wrapping - memory instance - -Signed-off-by: YiYing He ---- - include/runtime/instance/memory.h | 24 +++++++++++++++++++----- - 1 file changed, 19 insertions(+), 5 deletions(-) - -diff --git a/include/runtime/instance/memory.h b/include/runtime/instance/memory.h -index ce511a7b..9d849598 100644 ---- a/include/runtime/instance/memory.h -+++ b/include/runtime/instance/memory.h -@@ -241,14 +241,28 @@ public: - return reinterpret_cast(&DataPtr[Offset]); - } - -- /// Get array of object at specific offset of memory. -+ /// Get array of object with count at specific offset of memory. - template -- Span getSpan(uint32_t Offset, uint32_t Size) const noexcept { -- uint32_t ByteSize = static_cast(sizeof(T) * Size); -- if (unlikely(!checkAccessBound(Offset, ByteSize))) { -+ Span getSpan(uint32_t Offset, uint32_t Count) const noexcept { -+ uint32_t Size; -+#if defined(_MSC_VER) && !defined(__clang__) // MSVC -+ // Should extend for memory64 proposal. -+ uint64_t Num = -+ static_cast(sizeof(T)) * static_cast(Count); -+ if ((Num >> 32) != 0) { -+ return Span(); -+ } -+ Size = static_cast(Num); -+#else -+ if (unlikely(__builtin_mul_overflow(static_cast(sizeof(T)), Count, -+ &Size))) { -+ return Span(); -+ } -+#endif -+ if (unlikely(!checkAccessBound(Offset, Size))) { - return Span(); - } -- return Span(reinterpret_cast(&DataPtr[Offset]), Size); -+ return Span(reinterpret_cast(&DataPtr[Offset]), Count); - } - - /// Get array of object at specific offset of memory. --- -2.43.0 - diff --git a/sources b/sources index 87a5719..4c29ce3 100644 --- a/sources +++ b/sources @@ -12,3 +12,4 @@ SHA512 (WasmEdge-0.13.5-src.tar.gz) = 9d3ece45897d2c9bb3848662fc4ab36c2e0f178450 SHA512 (WasmEdge-0.14.0-src.tar.gz) = fa9ab14f1c477e1909efe88d760a2ab9212687328a885054f0830284bc71d559ab5263eefbbc564d88280b3907d5e3145ffeff87830eb13ad1f3fc4a599e4340 SHA512 (WasmEdge-0.14.1-src.tar.gz) = cf708ad789c8d7cb8b5885d6b13dbb010fa433e93971fedb0c05dd2794ad69d79b08535c854ea8744243ff65c61f0de1b6e3fe2a981b69fc92701b4675cc80d4 SHA512 (WasmEdge-0.15.0-src.tar.gz) = 3a41f362852dd04dc441ebe10fac266703bb146100cceec64df3fce76f57960ac7dacfc9c1243f4177899a5c4d50166158908b0ec4e88e3f226cad2fd350e6cd +SHA512 (WasmEdge-0.16.1-src.tar.gz) = b09c8d83e3627085382109ea073ecc099b57e109b419171a29ab780ee36b371de9bd1864d478c15324f29baabd0c19dda8a32a37f46a738f39e47ef6d51a0770 diff --git a/wasmedge.spec b/wasmedge.spec index 7521160..9a61293 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,4 +1,4 @@ -%global version 0.15.0 +%global version 0.16.1 %global reponame WasmEdge %global capi_soname 0 %global capi_version 0.1.0 @@ -12,8 +12,8 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz -# Patch from https://github.com/WasmEdge/WasmEdge/commit/37cc9fa19bd23edbbdaa9252059b17f191fa4d17 -Patch0: 0001-fix-runtime-refine-the-overflow-detection-when-wrapp.patch +# Patch from https://github.com/WasmEdge/WasmEdge/commit/3b9c754fbe96289452ef76951e783e5a7d7eacc7 +Patch0: 0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git @@ -104,6 +104,19 @@ cd .. %{_includedir}/%{name}/int128.h %{_includedir}/%{name}/version.h %{_includedir}/%{name}/wasmedge.h +%{_includedir}/%{name}/wasmedge_ast.h +%{_includedir}/%{name}/wasmedge_basic.h +%{_includedir}/%{name}/wasmedge_compiler.h +%{_includedir}/%{name}/wasmedge_configure.h +%{_includedir}/%{name}/wasmedge_context.h +%{_includedir}/%{name}/wasmedge_deprecated.h +%{_includedir}/%{name}/wasmedge_execution.h +%{_includedir}/%{name}/wasmedge_experimental.h +%{_includedir}/%{name}/wasmedge_instance.h +%{_includedir}/%{name}/wasmedge_plugin.h +%{_includedir}/%{name}/wasmedge_tools.h +%{_includedir}/%{name}/wasmedge_value.h +%{_includedir}/%{name}/wasmedge_vm.h %{_libdir}/lib%{name}.so %changelog From cf2bc7a4928a4765d46ccc850845941430af919d Mon Sep 17 00:00:00 2001 From: hydai Date: Tue, 2 Jun 2026 03:35:51 +0000 Subject: [PATCH 6/9] Release 0.17.0 - Bump C API library version (capi_version) to 0.1.1 - Drop Patch0: Poller context refactor merged upstream in 0.17.0 (WasmEdge/WasmEdge#4509) Signed-off-by: hydai --- .gitignore | 1 + ...ng-to-use-pointer-instead-of-wrapper.patch | 131 ------------------ sources | 1 + wasmedge.spec | 6 +- 4 files changed, 4 insertions(+), 135 deletions(-) delete mode 100644 0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch diff --git a/.gitignore b/.gitignore index f7f5b05..00106bd 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /WasmEdge-0.14.1-src.tar.gz /WasmEdge-0.15.0-src.tar.gz /WasmEdge-0.16.1-src.tar.gz +/WasmEdge-0.17.0-src.tar.gz diff --git a/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch b/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch deleted file mode 100644 index bc373d6..0000000 --- a/0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 3b9c754fbe96289452ef76951e783e5a7d7eacc7 Mon Sep 17 00:00:00 2001 -From: "Wang-Yang, Li" <7088579+LFsWang@users.noreply.github.com> -Date: Tue, 13 Jan 2026 01:24:29 +0800 -Subject: [PATCH] fix: refactor Poller context handling to use pointer instead - of wrapper (#4509) - -fix: refactor Poller context handling to use direct reference instead of wrapper - -Signed-off-by: LFsWang ---- - include/host/wasi/environ.h | 2 +- - include/host/wasi/inode.h | 2 +- - lib/host/wasi/inode-linux.cpp | 12 ++++++------ - lib/host/wasi/inode-macos.cpp | 2 +- - lib/host/wasi/inode-win.cpp | 2 +- - 5 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/include/host/wasi/environ.h b/include/host/wasi/environ.h -index 83783a2b..2e2f3b97 100644 ---- a/include/host/wasi/environ.h -+++ b/include/host/wasi/environ.h -@@ -1284,7 +1284,7 @@ public: - void close(std::shared_ptr Node) noexcept { VPoller::close(Node); } - - private: -- Environ &env() noexcept { return static_cast(Ctx.get()); } -+ Environ &env() noexcept { return static_cast(*Ctx); } - }; - - inline WasiExpect -diff --git a/include/host/wasi/inode.h b/include/host/wasi/inode.h -index 758cdb03..15bad334 100644 ---- a/include/host/wasi/inode.h -+++ b/include/host/wasi/inode.h -@@ -911,7 +911,7 @@ public: - bool ok() noexcept; - - protected: -- std::reference_wrapper Ctx; -+ PollerContext *Ctx; - - private: - Span<__wasi_event_t> WasiEvents; -diff --git a/lib/host/wasi/inode-linux.cpp b/lib/host/wasi/inode-linux.cpp -index 01c0e290..e6875a19 100644 ---- a/lib/host/wasi/inode-linux.cpp -+++ b/lib/host/wasi/inode-linux.cpp -@@ -1592,7 +1592,7 @@ Poller::Poller(PollerContext &C) noexcept - ::epoll_create(32) - #endif - ), -- Ctx(C) { -+ Ctx(&C) { - #if !__GLIBC_PREREQ(2, 9) - if (auto Res = ::fcntl(Fd, F_SETFD, FD_CLOEXEC); unlikely(Res != 0)) { - FdHolder::reset(); -@@ -1623,7 +1623,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, - Event.userdata = UserData; - Event.type = __WASI_EVENTTYPE_CLOCK; - -- if (auto Res = Ctx.get().acquireTimer(Clock); unlikely(!Res)) { -+ if (auto Res = Ctx->acquireTimer(Clock); unlikely(!Res)) { - Event.Valid = true; - Event.error = Res.error(); - return; -@@ -1633,7 +1633,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, - - auto &Timer = Timers.back(); - if (auto Res = Timer.setTime(Timeout, Precision, Flags); unlikely(!Res)) { -- Ctx.get().releaseTimer(std::move(Timer)); -+ Ctx->releaseTimer(std::move(Timer)); - Timers.pop_back(); - Event.Valid = true; - Event.error = Res.error(); -@@ -1657,7 +1657,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, - if (auto Res = ::epoll_ctl(Fd, EPOLL_CTL_ADD, Timer.Fd, &EPollEvent); - unlikely(Res < 0)) { - FdDatas.erase(Iter); -- Ctx.get().releaseTimer(std::move(Timer)); -+ Ctx->releaseTimer(std::move(Timer)); - Timers.pop_back(); - Event.Valid = true; - Event.error = fromErrNo(errno); -@@ -1666,7 +1666,7 @@ void Poller::clock(__wasi_clockid_t Clock, __wasi_timestamp_t Timeout, - - return; - } catch (std::bad_alloc &) { -- Ctx.get().releaseTimer(std::move(Timer)); -+ Ctx->releaseTimer(std::move(Timer)); - Timers.pop_back(); - Event.Valid = true; - Event.error = __WASI_ERRNO_NOMEM; -@@ -1895,7 +1895,7 @@ void Poller::wait() noexcept { - // `this` as the dummy parameter. - ::epoll_ctl(Fd, EPOLL_CTL_DEL, Timer.Fd, - reinterpret_cast(this)); -- Ctx.get().releaseTimer(std::move(Timer)); -+ Ctx->releaseTimer(std::move(Timer)); - } - - std::swap(FdDatas, OldFdDatas); -diff --git a/lib/host/wasi/inode-macos.cpp b/lib/host/wasi/inode-macos.cpp -index a622f71a..bb9e57ff 100644 ---- a/lib/host/wasi/inode-macos.cpp -+++ b/lib/host/wasi/inode-macos.cpp -@@ -1392,7 +1392,7 @@ WasiExpect INode::updateStat() const noexcept { - return {}; - } - --Poller::Poller(PollerContext &C) noexcept : FdHolder(::kqueue()), Ctx(C) {} -+Poller::Poller(PollerContext &C) noexcept : FdHolder(::kqueue()), Ctx(&C) {} - - WasiExpect Poller::prepare(Span<__wasi_event_t> E) noexcept { - WasiEvents = E; -diff --git a/lib/host/wasi/inode-win.cpp b/lib/host/wasi/inode-win.cpp -index f2b2a33a..b9f2cf27 100644 ---- a/lib/host/wasi/inode-win.cpp -+++ b/lib/host/wasi/inode-win.cpp -@@ -2179,7 +2179,7 @@ WasiExpect<__wasi_filesize_t> INode::filesize() const noexcept { - - bool INode::canBrowse() const noexcept { return SavedVFSFlags & VFS::Read; } - --Poller::Poller(PollerContext &C) noexcept : Ctx(C) {} -+Poller::Poller(PollerContext &C) noexcept : Ctx(&C) {} - - WasiExpect Poller::prepare(Span<__wasi_event_t> E) noexcept { - WasiEvents = E; --- -2.52.0 - - diff --git a/sources b/sources index 4c29ce3..d2f6a58 100644 --- a/sources +++ b/sources @@ -13,3 +13,4 @@ SHA512 (WasmEdge-0.14.0-src.tar.gz) = fa9ab14f1c477e1909efe88d760a2ab9212687328a SHA512 (WasmEdge-0.14.1-src.tar.gz) = cf708ad789c8d7cb8b5885d6b13dbb010fa433e93971fedb0c05dd2794ad69d79b08535c854ea8744243ff65c61f0de1b6e3fe2a981b69fc92701b4675cc80d4 SHA512 (WasmEdge-0.15.0-src.tar.gz) = 3a41f362852dd04dc441ebe10fac266703bb146100cceec64df3fce76f57960ac7dacfc9c1243f4177899a5c4d50166158908b0ec4e88e3f226cad2fd350e6cd SHA512 (WasmEdge-0.16.1-src.tar.gz) = b09c8d83e3627085382109ea073ecc099b57e109b419171a29ab780ee36b371de9bd1864d478c15324f29baabd0c19dda8a32a37f46a738f39e47ef6d51a0770 +SHA512 (WasmEdge-0.17.0-src.tar.gz) = 3e0f9739c7cd5af4ad1e54ed009719c8e4d3d4bfc821103bd954f5bc662381278f97078b4d177f4fae599b3a199b55b6e1fd81ce75ab7711921779db2e89d567 diff --git a/wasmedge.spec b/wasmedge.spec index 9a61293..f5872c2 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,7 +1,7 @@ -%global version 0.16.1 +%global version 0.17.0 %global reponame WasmEdge %global capi_soname 0 -%global capi_version 0.1.0 +%global capi_version 0.1.1 Name: wasmedge Version: %{version} @@ -12,8 +12,6 @@ Summary: High performance WebAssembly Virtual Machine License: Apache-2.0 AND CC0-1.0 URL: https://github.com/%{reponame}/%{reponame} Source0: %{url}/releases/download/%{version}/%{reponame}-%{version}-src.tar.gz -# Patch from https://github.com/WasmEdge/WasmEdge/commit/3b9c754fbe96289452ef76951e783e5a7d7eacc7 -Patch0: 0001-fix-refactor-Poller-context-handling-to-use-pointer-instead-of-wrapper.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git From bc89d47d1c0d1db901de1332f9e4566b0350d443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Thu, 25 Jun 2026 12:41:53 +0200 Subject: [PATCH 7/9] Rebuilt for fmt/spdlog From 413625c1895968401528049c162ae5c39e5d4d2c Mon Sep 17 00:00:00 2001 From: hydai Date: Mon, 6 Jul 2026 13:04:14 +0000 Subject: [PATCH 8/9] Release 0.17.1 Signed-off-by: hydai --- .gitignore | 1 + sources | 1 + wasmedge.spec | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 00106bd..5430012 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /WasmEdge-0.15.0-src.tar.gz /WasmEdge-0.16.1-src.tar.gz /WasmEdge-0.17.0-src.tar.gz +/WasmEdge-0.17.1-src.tar.gz diff --git a/sources b/sources index d2f6a58..761ab14 100644 --- a/sources +++ b/sources @@ -14,3 +14,4 @@ SHA512 (WasmEdge-0.14.1-src.tar.gz) = cf708ad789c8d7cb8b5885d6b13dbb010fa433e939 SHA512 (WasmEdge-0.15.0-src.tar.gz) = 3a41f362852dd04dc441ebe10fac266703bb146100cceec64df3fce76f57960ac7dacfc9c1243f4177899a5c4d50166158908b0ec4e88e3f226cad2fd350e6cd SHA512 (WasmEdge-0.16.1-src.tar.gz) = b09c8d83e3627085382109ea073ecc099b57e109b419171a29ab780ee36b371de9bd1864d478c15324f29baabd0c19dda8a32a37f46a738f39e47ef6d51a0770 SHA512 (WasmEdge-0.17.0-src.tar.gz) = 3e0f9739c7cd5af4ad1e54ed009719c8e4d3d4bfc821103bd954f5bc662381278f97078b4d177f4fae599b3a199b55b6e1fd81ce75ab7711921779db2e89d567 +SHA512 (WasmEdge-0.17.1-src.tar.gz) = b5f1d7cde7fee8f43dff972135fb49489c0e752cd364aa13ecb15b7ccd0d81579ac2552d3e3a8f6f5a870313eda640010f833869a0089677a3c8d76476e0fbed diff --git a/wasmedge.spec b/wasmedge.spec index f5872c2..e6fb415 100644 --- a/wasmedge.spec +++ b/wasmedge.spec @@ -1,4 +1,4 @@ -%global version 0.17.0 +%global version 0.17.1 %global reponame WasmEdge %global capi_soname 0 %global capi_version 0.1.1 From bf32f63a71f1403a660f25ed3c3b41d045000429 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:41:38 +0000 Subject: [PATCH 9/9] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild