diff --git a/.gitignore b/.gitignore index ed7fbe6..583cdcc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,44 @@ /wabt-testsuite-2a2099d.tar.gz /wabt-1.0.12.tar.gz /wabt-testsuite-a4a48e8.tar.gz +/wabt-1.0.13.tar.gz +/wabt-testsuite-c7225cc.tar.gz +/wabt-wasm-c-api-d9a8009.tar.gz +/wabt-1.0.15.tar.gz +/wabt-testsuite-0e7987e.tar.gz +/wabt-1.0.17.tar.gz +/wabt-testsuite-c17cd7f.tar.gz +/wabt-testsuite-d2163da.tar.gz +/wabt-1.0.19.tar.gz +/wabt-1.0.20.tar.gz +/wabt-testsuite-18f8340.tar.gz +/wabt-09ac53e41d959ce8e14e703e627327971e67f6d3.tar.gz +/wabt-1.0.23.tar.gz +/wabt-testsuite-9994915.tar.gz +/wabt-1.0.24.tar.gz +/wabt-testsuite-01efde8.tar.gz +/wabt-1.0.25.tar.gz +/wabt-testsuite-6241ce9.tar.gz +/wabt-1.0.27.tar.gz +/wabt-1.0.28.tar.gz +/wabt-testsuite-2c235ce.tar.gz +/wabt-1.0.29.tar.gz +/wabt-testsuite-d42da01.tar.gz +/wabt-1.0.30.tar.gz +/wabt-testsuite-4f77306.tar.gz +/wabt-1.0.31.tar.gz +/wabt-testsuite-3a04b2c.tar.gz +/wabt-1.0.32.tar.gz +/wabt-1.0.33.tar.gz +/wabt-testsuite-7ef86dd.tar.gz +/wabt-wasm-c-api-b6dd1fb.tar.gz +/wabt-1.0.35.tar.gz +/wabt-testsuite-0a394e3.tar.gz +/wabt-1.0.36.tar.gz +/wabt-testsuite-f3f0486.tar.gz +/wabt-1.0.37.tar.gz +/wabt-testsuite-cbc54d7.tar.gz +/wabt-1.0.39.tar.gz +/wabt-testsuite-d76759e.tar.gz +/wabt-1.0.40.tar.gz +/wabt-1.0.41.tar.gz diff --git a/sources b/sources index 9f445fc..dab7fb8 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ -SHA512 (wabt-1.0.12.tar.gz) = 48ab1819efbfe0151d9b1a66c2155fd11d6d3841761a949cc26329a1b51ebcc91ba07e9f18c5fd9df8bef28e7b56e1564b82398bdee19dda730019f74d2a8ec0 -SHA512 (wabt-testsuite-a4a48e8.tar.gz) = c30d672121dd82698850f5e971ede3adddf20aee72fb60e2ca73884a1635d3bdb0d78ba340e42409389c48534a88a13af8cefa2e782c91382d114d7cb55d809c +SHA512 (wabt-1.0.41.tar.gz) = afa21608c20e42b009ef4685b04a42bdaf087ffec7e5e6bc2d91a8ffd801cb54f5c67a06ad2ec4398dd190543146c79d41a444b0aa21112685d81fd192d8ffd5 +SHA512 (wabt-testsuite-d76759e.tar.gz) = fa5a6315098d2764e7170feeefaa8161ea5577769b98f4a4301e594e555dccb59395212a33585970509912ae08bb40478119e989894e60e0103acd52378837ea +SHA512 (wabt-wasm-c-api-b6dd1fb.tar.gz) = 5d3eec2184f8b66e2358b85f416afaea172f24155a61c9412a9d9374aa50347cf0ebe940f35727bc8c0ffe287033b967cc97a857feab6aa9e5098458e72b4fd0 diff --git a/wabt-issue1044.patch b/wabt-issue1044.patch deleted file mode 100644 index 108fd74..0000000 --- a/wabt-issue1044.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up wabt-1.0.10/test/interp/unary.txt.issue1044 wabt-1.0.10/test/interp/unary.txt ---- wabt-1.0.10/test/interp/unary.txt.issue1044 2019-03-07 01:41:26.000000000 +0100 -+++ wabt-1.0.10/test/interp/unary.txt 2019-04-15 16:57:16.381632428 +0200 -@@ -127,7 +127,7 @@ f64_neg() => f64:-100.000000 - f64_abs() => f64:100.000000 - f64_sqrt_neg_is_nan() => i32:1 - f64_sqrt_100() => f64:10.000000 --f64_ceil() => f64:-0.000000 -+f64_ceil() => f64:0.000000 - f64_floor() => f64:-1.000000 - f64_trunc() => f64:-0.000000 - f64_nearest_lo() => f64:1.000000 diff --git a/wabt-python.patch b/wabt-python.patch deleted file mode 100644 index 6f8a640..0000000 --- a/wabt-python.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up wabt-1.0.10/CMakeLists.txt.orig wabt-1.0.10/CMakeLists.txt ---- wabt-1.0.10/CMakeLists.txt.orig 2019-03-15 12:53:00.645283108 +0100 -+++ wabt-1.0.10/CMakeLists.txt 2019-03-15 12:55:50.734311159 +0100 -@@ -425,7 +425,7 @@ if (NOT EMSCRIPTEN) - endif () - - # test running -- find_package(PythonInterp 2.7 REQUIRED) -+ find_package(Python COMPONENTS Interpreter REQUIRED) - set(RUN_TESTS_PY ${WABT_SOURCE_DIR}/test/run-tests.py) - add_custom_target(run-tests - COMMAND ${CMAKE_BINARY_DIR}/wabt-unittests -diff -up wabt-1.0.12/test/run-spec-wasm2c.py.orig wabt-1.0.12/test/run-spec-wasm2c.py ---- wabt-1.0.12/test/run-spec-wasm2c.py.orig 2019-09-25 23:04:14.000000000 +0200 -+++ wabt-1.0.12/test/run-spec-wasm2c.py 2019-10-09 10:14:41.905966919 +0200 -@@ -98,6 +98,8 @@ def MangleName(s): - result = 'Z_' - for c in s.encode('utf-8'): - # NOTE(binji): Z is not allowed. -+ if type(c) == int: -+ c=chr(c) - if c in '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY0123456789': - result += c - else: diff --git a/wabt-test-timeout.patch b/wabt-test-timeout.patch new file mode 100644 index 0000000..3777a43 --- /dev/null +++ b/wabt-test-timeout.patch @@ -0,0 +1,12 @@ +diff -up wabt-1.0.36/CMakeLists.txt.orig wabt-1.0.36/CMakeLists.txt +--- wabt-1.0.36/CMakeLists.txt.orig 2024-07-31 19:40:07.000000000 +0200 ++++ wabt-1.0.36/CMakeLists.txt 2025-02-21 09:56:15.768904412 +0100 +@@ -726,7 +726,7 @@ if (BUILD_TESTS) + set(RUN_TESTS_PY ${WABT_SOURCE_DIR}/test/run-tests.py) + + add_custom_target(run-tests +- COMMAND ${CMAKE_COMMAND} -E env WASM2C_CC=${CMAKE_C_COMPILER} WASM2C_CFLAGS=${WASM2C_CFLAGS} ${Python3_EXECUTABLE} ${RUN_TESTS_PY} --bindir $ ++ COMMAND ${CMAKE_COMMAND} -E env WASM2C_CC=${CMAKE_C_COMPILER} WASM2C_CFLAGS=${WASM2C_CFLAGS} ${Python3_EXECUTABLE} ${RUN_TESTS_PY} --bindir $ --timeout=1200 + DEPENDS ${WABT_EXECUTABLES} + WORKING_DIRECTORY ${WABT_SOURCE_DIR} + USES_TERMINAL diff --git a/wabt.spec b/wabt.spec index 88575ea..5c0d5e9 100644 --- a/wabt.spec +++ b/wabt.spec @@ -1,27 +1,33 @@ +%undefine __cmake_in_source_build %bcond_without check -%global ts_commit a4a48e88108d555fed8a0a5e7564814468efe1b7 +%global commit ad75c5edcdff96d73c245b57fbc07607aaca9f95 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global ts_commit d76759e746f3564a03f6106ae19679742f2a1831 %global ts_shortcommit %(c=%{ts_commit}; echo ${c:0:7}) +%global wc_commit b6dd1fb658a282c64b029867845bc50ae59e1497 +%global wc_shortcommit %(c=%{wc_commit}; echo ${c:0:7}) Summary: The WebAssembly Binary Toolkit Name: wabt -Version: 1.0.12 -Release: 1%{?dist} +Version: 1.0.41 +Release: 3%{?dist} URL: https://github.com/WebAssembly/wabt Source0: https://github.com/WebAssembly/wabt/archive/%{version}/%{name}-%{version}.tar.gz Source1: https://github.com/WebAssembly/testsuite/archive/%{ts_commit}/%{name}-testsuite-%{ts_shortcommit}.tar.gz -# Fix python detection and port to python3 -# https://github.com/WebAssembly/wabt/issues/1181 -Patch2: wabt-python.patch -# https://github.com/WebAssembly/wabt/issues/1044 -Patch3: wabt-issue1044.patch -License: ASL 2.0 +Source2: https://github.com/WebAssembly/wasm-c-api/archive/%{wc_commit}/%{name}-wasm-c-api-%{wc_shortcommit}.tar.gz +# increase test timeout to avoid failures +Patch0: %{name}-test-timeout.patch +License: Apache-2.0 BuildRequires: cmake BuildRequires: gcc-c++ +BuildRequires: openssl-devel %if %{with check} BuildRequires: gtest-devel -BuildRequires: python3-ply -BuildRequires: %{_bindir}/pathfix.py +BuildRequires: python%{python3_pkgversion}-ply +BuildRequires: simde-devel >= 0.8.2 %endif +# wasm.h from https://github.com/WebAssembly/wasm-c-api/ is used for build +Provides: bundled(wasm-c-api) = %{wc_commit} %description WABT (we pronounce it "wabbit") is a suite of tools for WebAssembly. These tools @@ -35,67 +41,74 @@ with the spec (e.g. 1:1 round-trips with no changes to instructions). %prep %setup -q -%patch2 -p1 +rmdir third_party/wasm-c-api +tar xzf %{S:2} -C third_party +mv third_party/wasm-c-api{-%{wc_commit},} %if %{with check} -%ifarch i686 -%patch3 -p1 -%endif rmdir third_party/testsuite tar xzf %{S:1} -C third_party mv third_party/testsuite{-%{ts_commit},} -pathfix.py -i "%{__python3} -Es" -p test/*.py +%patch 0 -p1 -b .timeout pushd test # https://github.com/WebAssembly/wabt/issues/1044 -# https://github.com/WebAssembly/wabt/issues/1045 -# https://github.com/WebAssembly/wabt/issues/1063 -pushd wasm2c/spec -%ifarch i686 ppc64 ppc64le -rm conversions.txt -%endif %ifarch i686 -rm \ - float_exprs.txt\ - float_literals.txt\ - float_memory.txt\ - float_misc.txt\ - +rm regress/empty-quoted-module.txt +rm spec/float_exprs.txt +rm spec/float_misc.txt +rm spec/local_tee.txt +rm spec/simd_f32x4_arith.txt +rm spec/simd_f32x4_pmin_pmax.txt +rm spec/simd_f64x2_arith.txt +rm spec/simd_f64x2_pmin_pmax.txt +rm wasm2c/spec/conversions.txt +rm wasm2c/spec/float_memory.txt +rm wasm2c/spec/float_misc.txt +rm wasm2c/spec/float_exprs.txt +rm wasm2c/spec/local_tee.txt +rm wasm2c/spec/memory64/float_memory64.txt +rm wasm2c/spec/multi-memory/float_memory0.txt +rm wasm2c/spec/select.txt +rm wast2json/test-invalid-quoted-modules.txt %endif -popd -%ifarch ppc64 -rm spec/{conversions.txt,nontrapping-float-to-int-conversions/conversions.txt} -rm wasm2c/spec/f{32,64}.txt +# https://github.com/WebAssembly/wabt/issues/1045 +# https://github.com/WebAssembly/wabt/issues/2240 +%ifarch ppc64le +rm spec/conversions.txt +rm spec/simd_conversions.txt +rm wasm2c/spec/memory64/simd_address.txt +rm wasm2c/spec/simd_address.txt +rm wasm2c/spec/simd_f32x4_arith.txt +rm wasm2c/spec/simd_f32x4_pmin_pmax.txt +rm wasm2c/spec/simd_splat.txt %endif -# https://github.com/WebAssembly/wabt/issues/1180 -rm regress/regress-30.txt popd %endif %build -# work around https://github.com/WebAssembly/wabt/issues/988 -mkdir -p build -cd build -%cmake -DUSE_SYSTEM_GTEST=ON .. -%make_build +%cmake -DUSE_SYSTEM_GTEST=ON \ +%ifarch i686 + -DWASM2C_CFLAGS="-msse2 -mfpmath=sse" +%endif +%cmake_build %install -cd build -%make_install +%cmake_install %if %{with check} -# ~250 tests fail on big-endian arches -%ifnarch ppc64 s390x %check -test/run-tests.py -v --timeout=20 %{?_smp_mflags} -%endif +# See https://github.com/WebAssembly/wabt/blob/main/.github/workflows/build.yml#L261 +cmake --build redhat-linux-build --verbose --target run-unittests %{?_smp_mflags} +cmake --build redhat-linux-build --verbose --target run-tests %{?_smp_mflags} %endif %files %license LICENSE %doc README.md %{_bindir}/spectest-interp +%{_bindir}/wasm-decompile %{_bindir}/wasm-interp %{_bindir}/wasm-objdump -%{_bindir}/wasm-opcodecnt +%{_bindir}/wasm-stats %{_bindir}/wasm-strip %{_bindir}/wasm-validate %{_bindir}/wasm2c @@ -103,10 +116,18 @@ test/run-tests.py -v --timeout=20 %{?_smp_mflags} %{_bindir}/wast2json %{_bindir}/wat-desugar %{_bindir}/wat2wasm +%{_datadir}/wabt +%{_includedir}/wabt +%{_includedir}/wasm-rt.h +%{_includedir}/wasm-rt-exceptions.h +%{_libdir}/cmake/wabt +%{_libdir}/libwabt.a +%{_libdir}/libwasm-rt-impl.a %{_mandir}/man1/spectest-interp.1* +%{_mandir}/man1/wasm-decompile.1* %{_mandir}/man1/wasm-interp.1* %{_mandir}/man1/wasm-objdump.1* -%{_mandir}/man1/wasm-opcodecnt.1* +%{_mandir}/man1/wasm-stats.1* %{_mandir}/man1/wasm-strip.1* %{_mandir}/man1/wasm-validate.1* %{_mandir}/man1/wasm2c.1* @@ -116,6 +137,163 @@ test/run-tests.py -v --timeout=20 %{?_smp_mflags} %{_mandir}/man1/wat2wasm.1* %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 1.0.41-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jun 13 2026 Yaakov Selkowitz - 1.0.41-2 +- Rebuilt for openssl 4.0 + +* Thu May 21 2026 Dominik Mierzejewski - 1.0.41-1 +- update to 1.0.41 (resolves rhbz#2467788) + +* Thu Apr 16 2026 Dominik Mierzejewski 1.0.40-1 +- update to 1.0.40 (resolves rhbz#2446432) +- stop using obsolete cmake3 macros + +* Sat Jan 17 2026 Fedora Release Engineering - 1.0.39-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Mon Nov 17 2025 Dominik Mierzejewski 1.0.39-1 +- update to 1.0.39 (resolves rhbz#2401391) + +* Fri Jul 25 2025 Fedora Release Engineering - 1.0.37-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Mar 04 2025 Dominik Mierzejewski 1.0.37-1 +- update to 1.0.37 (resolves rhbz#2349655) +- skip new failing tests on i686 and ppc64le +- re-enable wasm2c/spec/float_exprs.txt test, now that GCC 15 is fixed + +* Fri Feb 21 2025 Dominik Mierzejewski 1.0.36-3 +- use upstream way of running tests +- run unit tests +- re-enable most tests on s390x now that they pass +- skip failing test on ppc64le and s390x with GCC 15 + +* Sun Jan 19 2025 Fedora Release Engineering - 1.0.36-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Sep 09 2024 Dominik Mierzejewski 1.0.36-1 +- update to 1.0.36 (#2246227) +- drop obsolete patches +- fix some tests in i686 +- simde-0.8.2 is now required +- run all tests on aarch64, all issues resolved +- review skipped tests on i686, ppc64le and s390x + +* Wed Jul 24 2024 Miroslav Suchý - 1.0.33-5 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 1.0.33-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 1.0.33-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 1.0.33-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu May 25 2023 Dominik Mierzejewski 1.0.33-1 +- update to 1.0.33 (#2203483) +- drop obsolete patch +- disable failing tests on aarch64 and ppc64le (reported upstream) +- fix running tests on i686 +- disable failing wasm2c tests on s390x (big endian not supported upstream) +- fix deprecated patchN macro usage + +* Sat Jan 21 2023 Fedora Release Engineering - 1.0.32-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 03 2023 Dominik Mierzejewski 1.0.32-1 +- update to 1.0.32 (#2156897) +- skip one new failing test on aarch64, ppc64le and s390x for now + +* Fri Dec 09 2022 Dominik Mierzejewski 1.0.31-1 +- update to 1.0.31 (#2143772) +- fix build on 32-bit +- fix build --without check + +* Sat Oct 15 2022 Dominik Mierzejewski 1.0.30-1 +- update to 1.0.30 (#2132095) +- increase timeout to fix tests on ARM +- skip some new failing tests on i686 and s390x for now + +* Sat Jul 23 2022 Fedora Release Engineering - 1.0.29-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed May 25 2022 Dominik Mierzejewski 1.0.29-1 +- update to 1.0.29 + +* Fri Apr 01 2022 Dominik Mierzejewski 1.0.28-1 +- update to 1.0.28 (#2065997) +- run fixed tests on 32-bit again +- work around test failures due to new gcc-12 warnings + +* Tue Mar 15 2022 Dominik Mierzejewski 1.0.27-1 +- update to 1.0.27 (#2055947) +- drop armv7hl + +* Mon Feb 07 2022 Dominik Mierzejewski 1.0.25-1 +- update to 1.0.25 (#2047107) +- skip some new failing tests on 32-bit +- skip two more failing tests on i686 + +* Sat Jan 22 2022 Fedora Release Engineering - 1.0.24-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Aug 20 2021 Dominik Mierzejewski 1.0.24-1 +- update to 1.0.24 (#1993479) +- enable skipped tests on s390x (fixed upstream) + +* Fri Jul 23 2021 Fedora Release Engineering - 1.0.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri May 14 2021 Dominik Mierzejewski 1.0.23-1 +- update to 1.0.23 (#1934466) +- drop obsolete patch +- skip some failing tests on s390x and ppc64le (reported upstream) + +* Tue Feb 02 2021 Dominik Mierzejewski 1.0.20-3.20210130git09ac53e +- update to 09ac53e git snapshot +- enable building on big-endian (fixed upstream) + +* Wed Jan 27 2021 Fedora Release Engineering - 1.0.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Nov 13 2020 Dominik Mierzejewski 1.0.20-1 +- update to 1.0.20 (#1896654) + +* Mon Aug 17 2020 Dominik Mierzejewski 1.0.19-1 +- update to 1.0.19 (#1838384) +- drop obsolete patches +- adapt to https://www.fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds + +* Wed Jul 29 2020 Fedora Release Engineering - 1.0.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 24 2020 Jeff Law 1.0.17-2 +- Use __cmake_in_source_build + +* Tue Jul 14 2020 Dominik Mierzejewski 1.0.17-1 +- update to 1.0.17 (#1838384) +- backport a fix for 32-bit arches +- stop pretending it works on big-endian +- use names and macros portable across Fedora and EPEL + +* Wed May 06 2020 Dominik Mierzejewski 1.0.15-1 +- update to 1.0.15 (#1832317) +- pathfix.py no longer required, upstream moved to python3-only +- skip new failing tests in i686 and ppc64le (reported upstream) + +* Fri Mar 20 2020 Dominik Mierzejewski 1.0.13-1 +- update to 1.0.13 (#1792557) +- drop obsolete patch and work-arounds +- bundle wasm-c-api (only wasm.h used for build) +- double test timeout again to prevent failures on armv7hl + +* Fri Jan 31 2020 Fedora Release Engineering - 1.0.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Sat Sep 28 2019 Dominik Mierzejewski 1.0.12-1 - update to 1.0.12 (#1755644) - drop obsolete patch @@ -126,6 +304,9 @@ test/run-tests.py -v --timeout=20 %{?_smp_mflags} - update to 1.0.11 - drop obsolete patches +* Sat Jul 27 2019 Fedora Release Engineering - 1.0.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Mon Apr 15 2019 Dominik Mierzejewski 1.0.10-2 - backport some fixes for test failures from upstream git - run tests in parallel and double timeout to prevent failures on armv7hl