Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wasi-libc for openSUSE:Factory checked in at 2026-04-18 21:31:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wasi-libc (Old) and /work/SRC/openSUSE:Factory/.wasi-libc.new.11940 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wasi-libc" Sat Apr 18 21:31:24 2026 rev:10 rq:1338970 version:31 Changes: -------- --- /work/SRC/openSUSE:Factory/wasi-libc/wasi-libc.changes 2025-09-14 18:50:33.047040181 +0200 +++ /work/SRC/openSUSE:Factory/.wasi-libc.new.11940/wasi-libc.changes 2026-04-18 21:31:57.150766654 +0200 @@ -1,0 +2,14 @@ +Fri Mar 13 17:02:21 UTC 2026 - Aaron Puchert <[email protected]> + +- Update to version (wasi-sdk-)31. + * Support for wasip2 and wasip3. + * Compatibility with LLVM 22. + * Switch build system to CMake. + * Add shared libraries. +- For now, we build the default target wasm32-wasip1. +- Use binary version of builtins library until we can build it + ourselves (using the URL from cmake/builtins.cmake). +- Drop obsolete workaround-broken-makefile.patch. +- Clean up rpmlintrc. + +------------------------------------------------------------------- Old: ---- wasi-libc-27.tar.gz workaround-broken-makefile.patch New: ---- libclang_rt.builtins-wasm32-wasi-25.0.tar.gz wasi-libc-31.tar.gz ----------(Old B)---------- Old: ourselves (using the URL from cmake/builtins.cmake). - Drop obsolete workaround-broken-makefile.patch. - Clean up rpmlintrc. ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wasi-libc.spec ++++++ --- /var/tmp/diff_new_pack.3ThjXy/_old 2026-04-18 21:31:57.758791386 +0200 +++ /var/tmp/diff_new_pack.3ThjXy/_new 2026-04-18 21:31:57.762791548 +0200 @@ -1,7 +1,7 @@ # # spec file for package wasi-libc # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,40 +17,51 @@ Name: wasi-libc -Version: 27 +Version: 31 Release: 0 Summary: WASI libc implementation for WebAssembly # FIXME: Select a correct license from https://github.com/openSUSE/spec-cleaner#spdx-licenses License: MIT URL: https://github.com/WebAssembly/wasi-libc Source: https://github.com/WebAssembly/wasi-libc/archive/refs/tags/wasi-sdk-%{version}.tar.gz#/%{name}-%{version}.tar.gz -Source1: wasi-libc-rpmlintrc -Patch1: workaround-broken-makefile.patch +# FIXME: This should come from LLVM. +Source1: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/libclang_rt.builtins-wasm32-wasi-25.0.tar.gz +Source100: wasi-libc-rpmlintrc # Build uses LLVM option -wasm-enable-sjlj, which was introduced in LLVM 14. # (https://github.com/llvm/llvm-project/commit/77b921b870aacfd531ff449166937e0de6a377bc) -BuildRequires: clang > 14 -BuildRequires: llvm > 14 +BuildRequires: clang >= 14 +BuildRequires: cmake >= 3.26 +BuildRequires: lld +BuildRequires: llvm >= 14 BuildArch: noarch %description WASI libc allows cross platform binaries to be created and executed on a variety of platforms %prep -%autosetup -p1 -n wasi-libc-wasi-sdk-%{version} +%autosetup -p1 -n wasi-libc-wasi-sdk-%{version} -a1 %build -export CC=clang -export AR=llvm-ar -export NM=llvm-nm -%make_build +# Building libsetjmp.so fails with LTO: +# wasm-ld: error: symbol type mismatch: __c_longjmp +# >>> defined as WASM_SYMBOL_TYPE_FUNCTION in CMakeFiles/setjmp.dir/musl/src/setjmp/wasm32/rt.c.obj +# >>> defined as WASM_SYMBOL_TYPE_TAG in CMakeFiles/setjmp.dir/musl/src/setjmp/wasm32/libsetjmp.so.lto.rt.c.o +%global _lto_cflags %{nil} + +# Removing all default compiler and linker flags and turning off linker dependency +# generation is necessary because they don't generally make sense for WebAssembly. +# Most of them don't work or are ignored, the remainder is added by CMake (-O2 -g). +%cmake \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_C_FLAGS="" \ + -DCMAKE_SHARED_LINKER_FLAGS="" \ + -DCMAKE_LINK_DEPENDS_USE_LINKER:BOOL=OFF \ + -DCMAKE_INSTALL_PREFIX:PATH=%{_datadir}/wasi-sysroot \ + -DBUILTINS_LIB=%{_builddir}/%{buildsubdir}/libclang_rt.builtins-wasm32-wasi-25.0/libclang_rt.builtins-wasm32.a +%cmake_build %install -export CC=clang -export AR=llvm-ar -export NM=llvm-nm -# The makefile is stupid and compiles everything again if we do `make install`, so we -# do it only once -%make_install INSTALL_DIR="%{buildroot}/%{_datadir}/wasi-sysroot" +%cmake_install # brp-15-strip-debug and -ar call system-strip and ar, which are not wasm-aware, so they will break wasm-files export NO_BRP_AR=true export NO_BRP_STRIP_DEBUG=true ++++++ wasi-libc-27.tar.gz -> wasi-libc-31.tar.gz ++++++ ++++ 74812 lines of diff (skipped) ++++++ wasi-libc-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.3ThjXy/_old 2026-04-18 21:31:59.506862487 +0200 +++ /var/tmp/diff_new_pack.3ThjXy/_new 2026-04-18 21:31:59.518862975 +0200 @@ -1,13 +1,7 @@ # Those files ARE arch-independent, but named like they are not (*.a, etc.) so the script is wrong here addFilter("files-duplicate .*") -addFilter("static-library-without-symtab .*") -addFilter("static-library-without-debuginfo .*") -addFilter("readelf-failed .*") addFilter("zero-length .*") -addFilter("arch-dependent-file-in-usr-share .*") addFilter("arch-independent-package-contains-binary-or-object .*") -# There are empty dummy-files in the sysroot -addFilter('lto-no-text-in-archive .*') addFilter('devel-file-in-non-devel-package .*')
