From 82b758a8bee6ff07abf4d5fd18f3b3819e6021eb Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Sun, 22 Dec 2024 01:15:45 +0000 Subject: [PATCH 01/65] Update numpy from 2.2.0 to 2.2.1 --- recipes/recipes_emscripten/numpy/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/numpy/recipe.yaml b/recipes/recipes_emscripten/numpy/recipe.yaml index 7b0bdc1ca..b6d94f0ab 100644 --- a/recipes/recipes_emscripten/numpy/recipe.yaml +++ b/recipes/recipes_emscripten/numpy/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 2.2.0 + version: 2.2.1 cross_target_plattform: emscripten-wasm32 target_plattform: emscripten-wasm32 @@ -9,7 +9,7 @@ package: source: url: https://github.com/numpy/numpy/releases/download/v${{ version }}/numpy-${{ version }}.tar.gz - sha256: 140dd80ff8981a583a60980be1a655068f8adebf7a45a06a6858c873fcdcd4a0 + sha256: 45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918 build: number: 0 From 07e3bf1cdb243a570223f20dfa2086977dd814b6 Mon Sep 17 00:00:00 2001 From: Anutosh Bhat Date: Wed, 25 Dec 2024 23:08:10 +0530 Subject: [PATCH 02/65] Update cppinterop to 1.5.0 (#1482) --- .../recipes_emscripten/cppinterop/build.sh | 2 - .../cppinterop/patches/lld.patch | 324 ------------------ .../recipes_emscripten/cppinterop/recipe.yaml | 8 +- 3 files changed, 3 insertions(+), 331 deletions(-) delete mode 100644 recipes/recipes_emscripten/cppinterop/patches/lld.patch diff --git a/recipes/recipes_emscripten/cppinterop/build.sh b/recipes/recipes_emscripten/cppinterop/build.sh index 86898f543..574b4fb16 100644 --- a/recipes/recipes_emscripten/cppinterop/build.sh +++ b/recipes/recipes_emscripten/cppinterop/build.sh @@ -6,8 +6,6 @@ export CMAKE_SYSTEM_PREFIX_PATH=$PREFIX # Configure step emcmake cmake -DCMAKE_BUILD_TYPE=Release \ - -DUSE_CLING=OFF \ - -DUSE_REPL=ON \ -DCMAKE_PREFIX_PATH=$PREFIX \ -DLLVM_DIR=$PREFIX \ -DLLD_DIR=$PREFIX \ diff --git a/recipes/recipes_emscripten/cppinterop/patches/lld.patch b/recipes/recipes_emscripten/cppinterop/patches/lld.patch deleted file mode 100644 index c50a511d0..000000000 --- a/recipes/recipes_emscripten/cppinterop/patches/lld.patch +++ /dev/null @@ -1,324 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index bcd16a9..1b0a528 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -24,11 +24,28 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) - if (NOT DEFINED Cling_DIR) - set(Cling_DIR ${LLVM_DIR}) - endif() -+ if (NOT DEFINED LLD_DIR) -+ set(LLD_DIR ${LLVM_DIR}) -+ endif() -+ endif() -+ if (DEFINED LLD_DIR) -+ if (NOT DEFINED LLVM_DIR) -+ set(LLVM_DIR ${LLD_DIR}) -+ endif() -+ if (NOT DEFINED Clang_DIR) -+ set(Clang_DIR ${LLD_DIR}) -+ endif() -+ if (NOT DEFINED Cling_DIR) -+ set(Cling_DIR ${LLD_DIR}) -+ endif() - endif() - if (DEFINED Clang_DIR) - if (NOT DEFINED LLVM_DIR) - set(LLVM_DIR ${Clang_DIR}) - endif() -+ if (NOT DEFINED LLD_DIR) -+ set(LLD_DIR ${Clang_DIR}) -+ endif() - if (NOT DEFINED Cling_DIR) - set(Cling_DIR ${Clang_DIR}) - endif() -@@ -61,6 +78,9 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) - set(CLANG_MIN_SUPPORTED 13.0) - set(CLANG_MAX_SUPPORTED "19.1.x") - set(CLANG_VERSION_UPPER_BOUND 20.0.0) -+ set(LLD_MIN_SUPPORTED 13.0) -+ set(LLD_MAX_SUPPORTED "19.1.x") -+ set(LLD_VERSION_UPPER_BOUND 20.0.0) - set(LLVM_MIN_SUPPORTED 13.0) - set(LLVM_MAX_SUPPORTED "19.1.x") - set(LLVM_VERSION_UPPER_BOUND 20.0.0) -@@ -75,6 +95,11 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) - if (DEFINED LLVM_DIR) - set(llvm_search_hints PATHS ${LLVM_DIR} HINTS "${LLVM_DIR}/lib/cmake/llvm" "${LLVM_DIR}/cmake" "${LLVM_CONFIG_EXTRA_PATH_HINTS}") - set(clang_search_hints PATHS ${LLVM_DIR} HINTS "${LLVM_DIR}/lib/cmake/clang" "${LLVM_DIR}/cmake") -+ set(lld_search_hints PATHS ${LLVM_DIR} HINTS "${LLVM_DIR}/lib/cmake/lld" "${LLVM_DIR}/cmake") -+ endif() -+ if (DEFINED LLD_DIR) -+ set(llvm_search_hints PATHS ${LLD_DIR} HINTS "${LLD_DIR}/lib/cmake/llvm" "${LLD_DIR}/cmake") -+ set(lld_search_hints PATHS ${LLD_DIR} HINTS "${lld_search_hints}" "${LLD_DIR}/lib/cmake/lld" "${LLD_DIR}/cmake") - endif() - if (DEFINED Clang_DIR) - set(llvm_search_hints PATHS ${Clang_DIR} HINTS "${Clang_DIR}/lib/cmake/llvm" "${Clang_DIR}/cmake") -@@ -137,6 +162,43 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) - message(STATUS "Found supported version: LLVM ${LLVM_PACKAGE_VERSION}") - message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") - -+## Find supported LLD -+ -+if (DEFINED LLD_VERSION) -+ if (LLD_VERSION VERSION_GREATER_EQUAL LLD_VERSION_UPPER_BOUND) -+ set(LLD_VERSION ${LLD_VERSION_UPPER_BOUND}) -+ endif() -+ if (LLD_VERSION VERSION_LESS LLD_MIN_SUPPORTED) -+ set(LLD_VERSION ${LLD_MIN_SUPPORTED}) -+ endif() -+ -+ find_package(LLD ${LLD_VERSION} REQUIRED CONFIG ${lld_search_hints} NO_DEFAULT_PATH) -+endif() -+ -+if (NOT LLD_FOUND AND DEFINED LLD_DIR) -+ find_package(LLD REQUIRED CONFIG ${lld_search_hints} NO_DEFAULT_PATH) -+endif() -+ -+if (NOT LLD_FOUND) -+ find_package(LLD REQUIRED CONFIG) -+endif() -+ -+if (NOT LLD_FOUND) -+ message(FATAL_ERROR "Please set LLD_DIR pointing to the LLD build or installation folder") -+endif() -+ -+set(LLD_VERSION_MAJOR ${LLVM_VERSION_MAJOR}) -+set(LLD_VERSION_MINOR ${LLVM_VERSION_MINOR}) -+set(LLD_VERSION_PATCH ${LLVM_VERSION_PATCH}) -+set(LLD_PACKAGE_VERSION ${LLVM_PACKAGE_VERSION}) -+ -+if (LLD_PACKAGE_VERSION VERSION_LESS LLD_MIN_SUPPORTED OR LLD_PACKAGE_VERSION VERSION_GREATER_EQUAL LLD_VERSION_UPPER_BOUND) -+ message(FATAL_ERROR "Found unsupported version: LLD ${LLD_PACKAGE_VERSION};\nPlease set LLD_DIR pointing to the LLD version ${LLD_MIN_SUPPORTED} to ${LLD_MAX_SUPPORTED} build or installation folder") -+endif() -+ -+message(STATUS "Found supported version: LLD ${LLD_PACKAGE_VERSION}") -+message(STATUS "Using LLDConfig.cmake in: ${LLD_DIR}") -+ - ## Find supported Clang - - if (DEFINED CLANG_VERSION) -diff --git a/lib/Interpreter/CMakeLists.txt b/lib/Interpreter/CMakeLists.txt -index 7f4ca53..7df92e7 100644 ---- a/lib/Interpreter/CMakeLists.txt -+++ b/lib/Interpreter/CMakeLists.txt -@@ -1,106 +1,126 @@ --set(LLVM_LINK_COMPONENTS -- ${LLVM_TARGETS_TO_BUILD} -- BinaryFormat -- Core -- Object -- OrcJit -- Support --) --# FIXME: Investigate why this needs to be conditionally included. --if ("LLVMFrontendDriver" IN_LIST LLVM_AVAILABLE_LIBS) -- list(APPEND LLVM_LINK_COMPONENTS FrontendDriver) --endif() --if ("LLVMOrcDebugging" IN_LIST LLVM_AVAILABLE_LIBS) -- list(APPEND LLVM_LINK_COMPONENTS OrcDebugging) --endif() -+if(EMSCRIPTEN) -+ set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) -+ set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-s SIDE_MODULE=1") -+ set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-s SIDE_MODULE=1") -+ set(CMAKE_STRIP FALSE) - --set(DLM -- DynamicLibraryManager.cpp -- DynamicLibraryManagerSymbol.cpp -- Paths.cpp --) --if (USE_CLING) -- set(LLVM_OPTIONAL_SOURCES ${LLVM_OPTIONAL_SOURCES} ${DLM}) -- set(DLM) --endif(USE_CLING) --if (USE_REPL) -- #Use DML optional sources --endif(USE_REPL) -+ add_llvm_library(clangCppInterOp -+ SHARED - --if (USE_CLING) -- set(cling_clang_interp clingInterpreter) --endif() --if (USE_REPL) -- set(cling_clang_interp clangInterpreter) --endif() -+ CppInterOp.cpp -+ DynamicLibraryManager.cpp -+ DynamicLibraryManagerSymbol.cpp -+ Paths.cpp - --set(link_libs -- ${cling_clang_interp} -- clangAST -- clangBasic -- clangFrontend -- clangLex -- clangSema -+ # Additional libraries from Clang and LLD -+ LINK_LIBS -+ clangInterpreter -+ ) -+else() -+ set(LLVM_LINK_COMPONENTS -+ ${LLVM_TARGETS_TO_BUILD} -+ BinaryFormat -+ Core -+ Object -+ OrcJit -+ Support - ) -+ # FIXME: Investigate why this needs to be conditionally included. -+ if ("LLVMFrontendDriver" IN_LIST LLVM_AVAILABLE_LIBS) -+ list(APPEND LLVM_LINK_COMPONENTS FrontendDriver) -+ endif() -+ if ("LLVMOrcDebugging" IN_LIST LLVM_AVAILABLE_LIBS) -+ list(APPEND LLVM_LINK_COMPONENTS OrcDebugging) -+ endif() - -- if(NOT WIN32) -- list(APPEND link_libs dl) -- endif() -+ set(DLM -+ DynamicLibraryManager.cpp -+ DynamicLibraryManagerSymbol.cpp -+ Paths.cpp -+ ) -+ if (USE_CLING) -+ set(LLVM_OPTIONAL_SOURCES ${LLVM_OPTIONAL_SOURCES} ${DLM}) -+ set(DLM) -+ endif(USE_CLING) -+ if (USE_REPL) -+ #Use DML optional sources -+ endif(USE_REPL) - --# Get rid of libLLVM-X.so which is appended to the list of static libraries. --if (LLVM_LINK_LLVM_DYLIB) -- set(new_libs ${link_libs}) -- set(libs ${new_libs}) -- while(NOT "${new_libs}" STREQUAL "") -- foreach(lib ${new_libs}) -- if(TARGET ${lib}) -- get_target_property(transitive_libs ${lib} INTERFACE_LINK_LIBRARIES) -- if (NOT transitive_libs) -- continue() -- endif() -- foreach(transitive_lib ${transitive_libs}) -- get_target_property(lib_type ${transitive_lib} TYPE) -- if("${lib_type}" STREQUAL "STATIC_LIBRARY") -- list(APPEND static_transitive_libs ${transitive_lib}) -- else() -- # Filter our libLLVM.so and friends. -+ if (USE_CLING) -+ set(cling_clang_interp clingInterpreter) -+ endif() -+ if (USE_REPL) -+ set(cling_clang_interp clangInterpreter) -+ endif() -+ -+ set(link_libs -+ ${cling_clang_interp} -+ clangAST -+ clangBasic -+ clangFrontend -+ clangLex -+ clangSema -+ ) -+ -+ if(NOT WIN32) -+ list(APPEND link_libs dl) -+ endif() -+ -+ # Get rid of libLLVM-X.so which is appended to the list of static libraries. -+ if (LLVM_LINK_LLVM_DYLIB) -+ set(new_libs ${link_libs}) -+ set(libs ${new_libs}) -+ while(NOT "${new_libs}" STREQUAL "") -+ foreach(lib ${new_libs}) -+ if(TARGET ${lib}) -+ get_target_property(transitive_libs ${lib} INTERFACE_LINK_LIBRARIES) -+ if (NOT transitive_libs) - continue() - endif() -- if(NOT ${transitive_lib} IN_LIST libs) -- list(APPEND newer_libs ${transitive_lib}) -- list(APPEND libs ${transitive_lib}) -- endif() -- endforeach(transitive_lib) -- # Update the target properties with the list of only static libraries. -- set_target_properties(${lib} PROPERTIES INTERFACE_LINK_LIBRARIES "${static_transitive_libs}") -- set(static_transitive_libs "") -- endif() -- endforeach(lib) -- set(new_libs ${newer_libs}) -- set(newer_libs "") -- endwhile() -- # We just got rid of the libLLVM.so and other components shipped as shared -- # libraries, we need to make up for the missing dependency. -- list(APPEND LLVM_LINK_COMPONENTS -- Coverage -- FrontendHLSL -- LTO -- ) -- # We will need to append the missing dependencies to pull in the right -- # LLVM library dependencies. -- list(APPEND link_libs -- clangCodeGen -- clangStaticAnalyzerCore -- ) --endif(LLVM_LINK_LLVM_DYLIB) -+ foreach(transitive_lib ${transitive_libs}) -+ get_target_property(lib_type ${transitive_lib} TYPE) -+ if("${lib_type}" STREQUAL "STATIC_LIBRARY") -+ list(APPEND static_transitive_libs ${transitive_lib}) -+ else() -+ # Filter our libLLVM.so and friends. -+ continue() -+ endif() -+ if(NOT ${transitive_lib} IN_LIST libs) -+ list(APPEND newer_libs ${transitive_lib}) -+ list(APPEND libs ${transitive_lib}) -+ endif() -+ endforeach(transitive_lib) -+ # Update the target properties with the list of only static libraries. -+ set_target_properties(${lib} PROPERTIES INTERFACE_LINK_LIBRARIES "${static_transitive_libs}") -+ set(static_transitive_libs "") -+ endif() -+ endforeach(lib) -+ set(new_libs ${newer_libs}) -+ set(newer_libs "") -+ endwhile() -+ # We just got rid of the libLLVM.so and other components shipped as shared -+ # libraries, we need to make up for the missing dependency. -+ list(APPEND LLVM_LINK_COMPONENTS -+ Coverage -+ FrontendHLSL -+ LTO -+ ) -+ # We will need to append the missing dependencies to pull in the right -+ # LLVM library dependencies. -+ list(APPEND link_libs -+ clangCodeGen -+ clangStaticAnalyzerCore -+ ) -+ endif(LLVM_LINK_LLVM_DYLIB) - --add_llvm_library(clangCppInterOp -- DISABLE_LLVM_LINK_LLVM_DYLIB -- CppInterOp.cpp -- ${DLM} -- LINK_LIBS -- ${link_libs} -- ) -+ add_llvm_library(clangCppInterOp -+ DISABLE_LLVM_LINK_LLVM_DYLIB -+ CppInterOp.cpp -+ ${DLM} -+ LINK_LIBS -+ ${link_libs} -+ ) -+endif() - - string(REPLACE ";" "\;" _VER CPPINTEROP_VERSION) - set_source_files_properties(CppInterOp.cpp PROPERTIES COMPILE_DEFINITIONS diff --git a/recipes/recipes_emscripten/cppinterop/recipe.yaml b/recipes/recipes_emscripten/cppinterop/recipe.yaml index 4ad697e8d..e07ec7c63 100644 --- a/recipes/recipes_emscripten/cppinterop/recipe.yaml +++ b/recipes/recipes_emscripten/cppinterop/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 1.4.0 + version: 1.5.0 package: name: cppinterop @@ -7,12 +7,10 @@ package: source: url: https://github.com/compiler-research/CppInterOp/archive/refs/tags/v${{ version }}.tar.gz - sha256: 566e3818de97656990d302a916a2d6925db33c7765a762f36ba28dead03c34a8 - patches: - - patches/lld.patch + sha256: d29d610adeb23820533a456714c795de4e458153e04a003d26ac8b0326a3469f build: - number: 5 + number: 0 requirements: build: From 9ded03d6861c6a406dd2605b54ca23d2d2f9de81 Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:13:19 +0100 Subject: [PATCH 03/65] Update libiconv from 1.17 to 1.18 (#1468) * Update libiconv from 1.17 to 1.18 * Reset build number * Add package info * Add tests --------- Co-authored-by: emscripten-forge-bot Co-authored-by: Isabel Paredes --- .../recipes_emscripten/libiconv/recipe.yaml | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/recipes/recipes_emscripten/libiconv/recipe.yaml b/recipes/recipes_emscripten/libiconv/recipe.yaml index 112bae5d2..81ec1a6fd 100644 --- a/recipes/recipes_emscripten/libiconv/recipe.yaml +++ b/recipes/recipes_emscripten/libiconv/recipe.yaml @@ -1,17 +1,41 @@ context: - version: '1.17' + name: libiconv + version: '1.18' package: - name: libiconv + name: ${{ name }} version: ${{ version }} source: -- url: https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${{ version }}.tar.gz - sha256: 8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313 + url: https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${{ version }}.tar.gz + sha256: 3b08f5f4f9b4eb82f151a7040bfd6fe6c6fb922efe4b1659c66ea933276965e8 build: - number: 2 + number: 0 requirements: build: - ${{ compiler("c") }} + +tests: +- package_contents: + lib: + - libiconv.a + - libcharset.a + include: + - iconv.h + - libcharset.h + +about: + homepage: https://www.gnu.org/software/libiconv/ + license: GPL-3.0-only AND LGPL-2.1-only + license_file: + - COPYING + - COPYING.LIB + summary: | + Split feedstock providing iconv and libiconv for systems which don't have one + (or that cannot convert from/to Unicode.) + +extra: + recipe-maintainers: + - IsabelParedes \ No newline at end of file From 3834c26b51abe29838ca3f68df2a71045585e415 Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:28:38 +0100 Subject: [PATCH 04/65] Update pybind11 from 2.13.5 to 2.13.6 (#1453) * Update pybind11 from 2.13.5 to 2.13.6 * Add test --------- Co-authored-by: emscripten-forge-bot Co-authored-by: Isabel Paredes --- recipes/recipes_emscripten/pybind11/recipe.yaml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/recipes/recipes_emscripten/pybind11/recipe.yaml b/recipes/recipes_emscripten/pybind11/recipe.yaml index 83bd90b2e..04af69f91 100644 --- a/recipes/recipes_emscripten/pybind11/recipe.yaml +++ b/recipes/recipes_emscripten/pybind11/recipe.yaml @@ -1,15 +1,17 @@ context: - version: 2.13.5 + name: pybind11 + version: 2.13.6 package: - name: pybind11 + name: ${{ name }} version: ${{ version }} source: url: https://github.com/pybind/pybind11/archive/refs/tags/v${{ version }}.tar.gz - sha256: b1e209c42b3a9ed74da3e0b25a4f4cd478d89d5efbb48f04b277df427faf6252 + sha256: e08cb87f4773da97fa7b5f035de8763abc656d87d5773e62f6da0587d1f0ec20 patches: - patches/0001-no-bitsize-check.patch + build: number: 0 @@ -21,6 +23,10 @@ requirements: host: - python +tests: +- package_contents: + include: + - pybind11/pybind11.h about: license: BSD-3-Clause From 11e16ce981941b4f67e6a50b1e511172d64723fe Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:31:44 +0100 Subject: [PATCH 05/65] Update xxhash from 0.8.2 to 0.8.3 (#1484) Co-authored-by: emscripten-forge-bot --- recipes/recipes_emscripten/xxhash/recipe.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/recipes/recipes_emscripten/xxhash/recipe.yaml b/recipes/recipes_emscripten/xxhash/recipe.yaml index 1e25ce4c2..187684866 100644 --- a/recipes/recipes_emscripten/xxhash/recipe.yaml +++ b/recipes/recipes_emscripten/xxhash/recipe.yaml @@ -1,6 +1,6 @@ context: name: xxhash - version: 0.8.2 + version: 0.8.3 package: name: ${{ name|lower }} @@ -8,21 +8,21 @@ package: source: url: https://github.com/Cyan4973/${{ name }}/archive/v${{ version }}.tar.gz - sha256: baee0c6afd4f03165de7a4e67988d16f0f2b257b51d0e3cb91909302a26a79c4 + sha256: aae608dfe8213dfd05d909a57718ef82f30722c392344583d3f39050c7f29a80 build: number: 0 requirements: build: - - ${{ compiler('c') }} - - make - - cmake + - ${{ compiler('c') }} + - make + - cmake tests: - script: - - test -f ${PREFIX}/lib/libxxhash.a - - test -f ${PREFIX}/include/xxhash.h + - test -f ${PREFIX}/lib/libxxhash.a + - test -f ${PREFIX}/include/xxhash.h about: homepage: http://www.xxhash.com/ @@ -39,4 +39,4 @@ about: extra: recipe-maintainers: - - KGB99 + - KGB99 From f5aab0a6c3a9648f6267e69eacbfe5003542b4e5 Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:38:33 +0100 Subject: [PATCH 06/65] Update fmt from 11.0.2 to 11.1.0 (#1483) * Update fmt from 11.0.2 to 11.1.0 * Add tests --------- Co-authored-by: emscripten-forge-bot Co-authored-by: Isabel Paredes --- recipes/recipes_emscripten/fmt/recipe.yaml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/recipes/recipes_emscripten/fmt/recipe.yaml b/recipes/recipes_emscripten/fmt/recipe.yaml index ea5a31a0a..f5472d312 100644 --- a/recipes/recipes_emscripten/fmt/recipe.yaml +++ b/recipes/recipes_emscripten/fmt/recipe.yaml @@ -1,13 +1,14 @@ context: - version: 11.0.2 + name: fmt + version: 11.1.0 package: - name: fmt + name: ${{ name }} version: ${{ version }} source: - url: https://github.com/fmtlib/fmt/archive/${{ version }}.tar.gz - sha256: 6cb1e6d37bdcb756dbbe59be438790db409cdb4868c66e888d5df9f13f7c027f + url: https://github.com/fmtlib/${{ name }}/archive/${{ version }}.tar.gz + sha256: a3267a911d3a30160cbb5a8d65e135f2c8c604737bee13bdf589fbc3e94d58b5 build: number: 0 @@ -18,6 +19,12 @@ requirements: - cmake - ninja +tests: +- package_contents: + lib: + - libfmt.a + include: + - fmt/format.h about: license: MIT @@ -28,7 +35,7 @@ about: {fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams. homepage: https://fmt.dev/latest/ + extra: recipe-maintainers: - DerThorsten - From f82cb9222f99d2db55000e96785370f9ab74c278 Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:59:04 +0100 Subject: [PATCH 07/65] Update wheel from 0.41.2 to 0.41.3 (#962) * Update wheel from 0.41.2 to 0.41.3 * Reset build number * Update build --------- Co-authored-by: emscripten-forge-bot Co-authored-by: Isabel Paredes --- recipes/recipes_emscripten/wheel/recipe.yaml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/recipes/recipes_emscripten/wheel/recipe.yaml b/recipes/recipes_emscripten/wheel/recipe.yaml index 8bbbab8dd..a9151bb8a 100644 --- a/recipes/recipes_emscripten/wheel/recipe.yaml +++ b/recipes/recipes_emscripten/wheel/recipe.yaml @@ -1,19 +1,24 @@ context: - version: 0.41.2 + version: 0.41.3 name: wheel package: - name: ${{name}} + name: ${{ name }} version: ${{ version }} source: - url: https://pypi.io/packages/source/w/${{name}}/${{name}}-${{ version }}.tar.gz - sha256: 0c5ac5ff2afb79ac23ab82bab027a0be7b5dbcf2e54dc50efe4bf507de1f7985 + sha256: 4d4987ce51a49370ea65c0bfd2234e8ce80a12780820d9dc462597a6e60d0841 build: - number: 1 + number: 0 + script: ${{ PYTHON }} -m pip install . --no-deps -vv requirements: + build: + - python + - cross-python_emscripten-wasm32 + - pip host: - python - flit-core @@ -30,6 +35,7 @@ tests: - pytester run: - pytester-run + about: license: MIT license_file: LICENSE.txt From 59c7fb15f2be2fde82d2ef95647e3a9ae6542601 Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Tue, 31 Dec 2024 16:43:48 +0100 Subject: [PATCH 08/65] Add r-data.table (#1485) --- .../r-data.table/recipe.yaml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/recipes_emscripten/r-data.table/recipe.yaml diff --git a/recipes/recipes_emscripten/r-data.table/recipe.yaml b/recipes/recipes_emscripten/r-data.table/recipe.yaml new file mode 100644 index 000000000..ca3a21815 --- /dev/null +++ b/recipes/recipes_emscripten/r-data.table/recipe.yaml @@ -0,0 +1,50 @@ +context: + version: 1.16.4 + name: r-data.table + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: 72764bb3aebc111de60223cfb32b6111a47081e3a1e7f6d20c78eb7f30269cdf + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + host: + - r-base >= ${{ r_base_version }} + - zlib + run: + - r-base >= ${{ r_base_version }} + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] | replace('.', '_') }}.so + +about: + homepage: http://r-datatable.com/ + repository: https://github.com/Rdatatable/data.table + license: MPL-2.0 + license_file: LICENSE + summary: | + data.table provides a high-performance version of base R's data.frame with + syntax and feature enhancements for ease of use, convenience and programming + speed. + +extra: + recipe-maintainers: + - IsabelParedes From 19f4691db0df6f325859a4d016d2832bcd69ed1f Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Tue, 31 Dec 2024 16:54:23 +0100 Subject: [PATCH 09/65] Update markupsafe from 2.1.5 to 3.0.0 (#1368) * Update markupsafe from 2.1.5 to 3.0.0 * Update license file --------- Co-authored-by: emscripten-forge-bot Co-authored-by: Isabel Paredes --- recipes/recipes_emscripten/markupsafe/recipe.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/recipes_emscripten/markupsafe/recipe.yaml b/recipes/recipes_emscripten/markupsafe/recipe.yaml index e320fae40..5ec40a32b 100644 --- a/recipes/recipes_emscripten/markupsafe/recipe.yaml +++ b/recipes/recipes_emscripten/markupsafe/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 2.1.5 + version: 3.0.0 package: name: markupsafe @@ -7,7 +7,7 @@ package: source: url: https://github.com/pallets/markupsafe/archive/refs/tags/${{ version }}.tar.gz - sha256: 307f63295d17f178b7d3af5968fb828e34086d5d66fec505b630a1e5f5b3328b + sha256: c5edf012c5ff27048804a2ce736063e8455a2984d81caa0bce07ed84cbd05562 build: number: 0 @@ -33,10 +33,11 @@ tests: - pytester run: - pytester-run + about: license: BSD-3-Clause license_family: BSD - license_file: LICENSE.rst + license_file: LICENSE.txt summary: Safely add untrusted strings to HTML/XML markup. description: | MarkupSafe implements a text object that escapes characters so it is @@ -45,7 +46,7 @@ about: injection attacks, meaning untrusted user input can safely be displayed on a page. homepage: https://www.palletsprojects.com/p/markupsafe -extra: +extra: recipe-maintainers: - DerThorsten From 7f0c4bf9a9d69b5a4c4520386048e434d451ba54 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Wed, 1 Jan 2025 01:16:06 +0000 Subject: [PATCH 10/65] Update wheel from 0.41.3 to 0.42.0 --- recipes/recipes_emscripten/wheel/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/wheel/recipe.yaml b/recipes/recipes_emscripten/wheel/recipe.yaml index a9151bb8a..56417f10b 100644 --- a/recipes/recipes_emscripten/wheel/recipe.yaml +++ b/recipes/recipes_emscripten/wheel/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.41.3 + version: 0.42.0 name: wheel package: @@ -8,7 +8,7 @@ package: source: - url: https://pypi.io/packages/source/w/${{name}}/${{name}}-${{ version }}.tar.gz - sha256: 4d4987ce51a49370ea65c0bfd2234e8ce80a12780820d9dc462597a6e60d0841 + sha256: c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8 build: number: 0 From cdb82f91d0e84b8fd48f7c69fc21f756295d4cc4 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Wed, 1 Jan 2025 01:16:02 +0000 Subject: [PATCH 11/65] Update markupsafe from 3.0.0 to 3.0.1 --- recipes/recipes_emscripten/markupsafe/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/markupsafe/recipe.yaml b/recipes/recipes_emscripten/markupsafe/recipe.yaml index 5ec40a32b..253cfbad3 100644 --- a/recipes/recipes_emscripten/markupsafe/recipe.yaml +++ b/recipes/recipes_emscripten/markupsafe/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 3.0.0 + version: 3.0.1 package: name: markupsafe @@ -7,7 +7,7 @@ package: source: url: https://github.com/pallets/markupsafe/archive/refs/tags/${{ version }}.tar.gz - sha256: c5edf012c5ff27048804a2ce736063e8455a2984d81caa0bce07ed84cbd05562 + sha256: f92585e7df58201478dd5f9078021cb7da5524feaf68ced7d24622cf00bbf66b build: number: 0 From 6fb7eaa21d023cf60f1620451d6a19204d95892f Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Wed, 1 Jan 2025 01:15:29 +0000 Subject: [PATCH 12/65] Update fmt from 11.1.0 to 11.1.1 --- recipes/recipes_emscripten/fmt/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/fmt/recipe.yaml b/recipes/recipes_emscripten/fmt/recipe.yaml index f5472d312..236fb623c 100644 --- a/recipes/recipes_emscripten/fmt/recipe.yaml +++ b/recipes/recipes_emscripten/fmt/recipe.yaml @@ -1,6 +1,6 @@ context: name: fmt - version: 11.1.0 + version: 11.1.1 package: name: ${{ name }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/fmtlib/${{ name }}/archive/${{ version }}.tar.gz - sha256: a3267a911d3a30160cbb5a8d65e135f2c8c604737bee13bdf589fbc3e94d58b5 + sha256: 482eed9efbc98388dbaee5cb5f368be5eca4893456bb358c18b7ff71f835ae43 build: number: 0 From cdbbc680943bf3512da3702e99c34acb3aa8ba21 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Thu, 2 Jan 2025 11:07:32 +0100 Subject: [PATCH 13/65] fix broken emscripten-abi mutex strong-export generation (#1490) fix broken emscripten-abi mutex strong-export generation --- recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml b/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml index 2c6746e0e..228bd6e14 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml +++ b/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml @@ -3,7 +3,7 @@ context: version: 3.1.45 build: - number: 30 + number: 31 outputs: - package: @@ -28,7 +28,8 @@ outputs: - python - nodejs 16.* run_exports: - - ${{ pin_subpackage('emscripten-abi', lower_bound='x.x.x', upper_bound='x.x.x') }} + strong: + - ${{ pin_subpackage('emscripten-abi', lower_bound='x.x.x', upper_bound='x.x.x') }} - package: name: emscripten-abi From adde08c5157901b7d281ffb100abd222f997661e Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Fri, 3 Jan 2025 13:57:25 +0100 Subject: [PATCH 14/65] debug wheel (#1494) --- recipes/recipes_emscripten/wheel/recipe.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/recipes_emscripten/wheel/recipe.yaml b/recipes/recipes_emscripten/wheel/recipe.yaml index 56417f10b..f0d8a09b1 100644 --- a/recipes/recipes_emscripten/wheel/recipe.yaml +++ b/recipes/recipes_emscripten/wheel/recipe.yaml @@ -11,11 +11,12 @@ source: sha256: c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8 build: - number: 0 + number: 1 script: ${{ PYTHON }} -m pip install . --no-deps -vv requirements: build: + - ${{ compiler("cxx") }} - python - cross-python_emscripten-wasm32 - pip From 690fcae1f8c93299690359e7b2a97f9b3631df37 Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Fri, 3 Jan 2025 14:20:32 +0100 Subject: [PATCH 15/65] Update pandas from 2.2.2 to 2.2.3 (#1329) * Update pandas from 2.2.2 to 2.2.3 * Add compiler Required in order to select the correct emscripten version --------- Co-authored-by: emscripten-forge-bot Co-authored-by: Isabel Paredes --- recipes/recipes_emscripten/pandas/recipe.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/pandas/recipe.yaml b/recipes/recipes_emscripten/pandas/recipe.yaml index bc5bb0891..73ef9d428 100644 --- a/recipes/recipes_emscripten/pandas/recipe.yaml +++ b/recipes/recipes_emscripten/pandas/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 2.2.2 + version: 2.2.3 package: name: pandas @@ -8,7 +8,7 @@ package: source: - url: https://github.com/pandas-dev/pandas/releases/download/v${{ version }}/pandas-${{ version }}.tar.gz - sha256: 9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54 + sha256: 4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667 #patches: # - patches/fix_json_signature.patch @@ -17,6 +17,7 @@ build: requirements: build: + - ${{ compiler("c") }} - cross-python_emscripten-wasm32 - numpy - cython From 6c14edacb4dac807cb10762cbfab7b6d60ced6df Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Fri, 3 Jan 2025 14:28:47 +0100 Subject: [PATCH 16/65] Update wheel from 0.42.0 to 0.43.0 (#1493) * Update wheel from 0.42.0 to 0.43.0 * Reset build number --------- Co-authored-by: emscripten-forge-bot Co-authored-by: Isabel Paredes --- recipes/recipes_emscripten/wheel/recipe.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/recipes_emscripten/wheel/recipe.yaml b/recipes/recipes_emscripten/wheel/recipe.yaml index f0d8a09b1..7ca024fc3 100644 --- a/recipes/recipes_emscripten/wheel/recipe.yaml +++ b/recipes/recipes_emscripten/wheel/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.42.0 + version: 0.43.0 name: wheel package: @@ -8,10 +8,10 @@ package: source: - url: https://pypi.io/packages/source/w/${{name}}/${{name}}-${{ version }}.tar.gz - sha256: c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8 + sha256: 465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85 build: - number: 1 + number: 0 script: ${{ PYTHON }} -m pip install . --no-deps -vv requirements: From 220fdb44f89c6aaff84d9ee66d5d666ffdff4765 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Fri, 3 Jan 2025 01:11:54 +0000 Subject: [PATCH 17/65] Update markupsafe from 3.0.1 to 3.0.2 --- recipes/recipes_emscripten/markupsafe/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/markupsafe/recipe.yaml b/recipes/recipes_emscripten/markupsafe/recipe.yaml index 253cfbad3..660affa75 100644 --- a/recipes/recipes_emscripten/markupsafe/recipe.yaml +++ b/recipes/recipes_emscripten/markupsafe/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 3.0.1 + version: 3.0.2 package: name: markupsafe @@ -7,7 +7,7 @@ package: source: url: https://github.com/pallets/markupsafe/archive/refs/tags/${{ version }}.tar.gz - sha256: f92585e7df58201478dd5f9078021cb7da5524feaf68ced7d24622cf00bbf66b + sha256: cd182103704bfafefce25369fd27f14a5f578f078b7f3ddd1ce2cb940b86403a build: number: 0 From 4464e3034e2ad0cc671ac16198399794bca932c1 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Fri, 3 Jan 2025 01:11:25 +0000 Subject: [PATCH 18/65] Update lfortran from 0.42.0 to 0.43.0 --- recipes/recipes_emscripten/lfortran/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/lfortran/recipe.yaml b/recipes/recipes_emscripten/lfortran/recipe.yaml index ba68a40c3..8301f77c4 100644 --- a/recipes/recipes_emscripten/lfortran/recipe.yaml +++ b/recipes/recipes_emscripten/lfortran/recipe.yaml @@ -1,6 +1,6 @@ context: name: lfortran - version: 0.42.0 + version: 0.43.0 package: name: ${{ name }} @@ -9,7 +9,7 @@ package: source: url: https://github.com/lfortran/lfortran/releases/download/v${{ version }}/${{ name }}-${{ version }}.tar.gz - sha256: 3144abce88da2bcfd39e2c5c655b1bc977c429f3e7dae58afbe45c0237f07298 + sha256: c834622466eee4ffc13731cda89bd4578731625de96f8e1e09531c950e318580 build: number: 0 From 649c4ac355c08c29a9207822e1935637fefd6a03 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Sat, 4 Jan 2025 01:09:05 +0000 Subject: [PATCH 19/65] Update wheel from 0.43.0 to 0.44.0 --- recipes/recipes_emscripten/wheel/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/wheel/recipe.yaml b/recipes/recipes_emscripten/wheel/recipe.yaml index 7ca024fc3..e44320e1a 100644 --- a/recipes/recipes_emscripten/wheel/recipe.yaml +++ b/recipes/recipes_emscripten/wheel/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.43.0 + version: 0.44.0 name: wheel package: @@ -8,7 +8,7 @@ package: source: - url: https://pypi.io/packages/source/w/${{name}}/${{name}}-${{ version }}.tar.gz - sha256: 465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85 + sha256: a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49 build: number: 0 From e2f85aa6c230cb63f489c8710abb4fcd9f78b609 Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Mon, 6 Jan 2025 14:40:29 +0100 Subject: [PATCH 20/65] Add r-dplyr (#1498) --- .../recipes_emscripten/r-dplyr/recipe.yaml | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 recipes/recipes_emscripten/r-dplyr/recipe.yaml diff --git a/recipes/recipes_emscripten/r-dplyr/recipe.yaml b/recipes/recipes_emscripten/r-dplyr/recipe.yaml new file mode 100644 index 000000000..e381bb3a8 --- /dev/null +++ b/recipes/recipes_emscripten/r-dplyr/recipe.yaml @@ -0,0 +1,75 @@ +context: + version: 1.1.4 + name: r-dplyr + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: cf730414d5d4ab387b4e9890a4b1df9d17a3903488e8da8df1cf2e11e44558cb + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + - r-magrittr + - r-rlang + - r-tibble + - r-vctrs + host: + - r-base >= ${{ r_base_version }} + - r-cli + - r-generics + - r-glue + - r-lifecycle + - r-magrittr + - r-pillar + - r-r6 + - r-rlang + - r-tibble + - r-tidyselect + - r-vctrs + run: + - r-base >= ${{ r_base_version }} + - r-cli + - r-generics + - r-glue + - r-lifecycle + - r-magrittr + - r-pillar + - r-r6 + - r-rlang + - r-tibble + - r-tidyselect + - r-vctrs + + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] | replace('.', '_') }}.so + +about: + homepage: https://dplyr.tidyverse.org + repository: https://github.com/tidyverse/dplyr + license: MIT + license_file: LICENSE + summary: | + A fast, consistent tool for working with data frame like objects, both in + memory and out of memory. + +extra: + recipe-maintainers: + - IsabelParedes From 285e6b342e6ea27b23171ec9cd58888fd68b7614 Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Mon, 6 Jan 2025 18:30:06 +0100 Subject: [PATCH 21/65] Add r-stringi (#1499) --- .../recipes_emscripten/r-stringi/recipe.yaml | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/recipes_emscripten/r-stringi/recipe.yaml diff --git a/recipes/recipes_emscripten/r-stringi/recipe.yaml b/recipes/recipes_emscripten/r-stringi/recipe.yaml new file mode 100644 index 000000000..34e85aa7d --- /dev/null +++ b/recipes/recipes_emscripten/r-stringi/recipe.yaml @@ -0,0 +1,56 @@ +context: + version: 1.8.4 + name: r-stringi + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: c219f8f64d1a2bfd4ca9528452d44d30db1899af14f4b9ef248412443bc669f3 + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('cxx') }} + host: + - r-base >= ${{ r_base_version }} + run: + - r-base >= ${{ r_base_version }} + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://tidyr.tidyverse.org + repository: https://github.com/gagolews/stringi + license_family: OTHER # FOSS + license_file: LICENSE + summary: | + Fast and portable character string processing in R (with the Unicode ICU) + description: | + Fast, correct, consistent, portable, as well as convenient character string/ + text processing in every locale and any native encoding. Owing to the use of + the ICU (International Components for Unicode) library, the package provides + R users with platform-independent functions known to Java, Perl, Python, + PHP, and Ruby programmers. Available features include: pattern searching, + random string generation, case mapping, string transliteration, + concatenation, Unicode normalization, date-time formatting and parsing, + and many more. + +extra: + recipe-maintainers: + - IsabelParedes From 58322d80ed7c930ad7a894fed8a59f755e8dd1ca Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Mon, 6 Jan 2025 19:03:06 +0100 Subject: [PATCH 22/65] Add r-tidyr (#1500) --- .../recipes_emscripten/r-tidyr/recipe.yaml | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 recipes/recipes_emscripten/r-tidyr/recipe.yaml diff --git a/recipes/recipes_emscripten/r-tidyr/recipe.yaml b/recipes/recipes_emscripten/r-tidyr/recipe.yaml new file mode 100644 index 000000000..a48bfa3ee --- /dev/null +++ b/recipes/recipes_emscripten/r-tidyr/recipe.yaml @@ -0,0 +1,84 @@ +context: + version: 1.3.1 + name: r-tidyr + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: e820c261cb5543f572f49276a7bdc7302aa4215da4bf850b1b939a315353835d + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + - r-dplyr + - r-magrittr + - r-purrr + - r-rlang + - r-tibble + - r-vctrs + host: + - r-base >= ${{ r_base_version }} + - r-cli + - r-dplyr + - r-glue + - r-lifecycle + - r-magrittr + - r-purrr + - r-rlang + - r-stringr + - r-tibble + - r-tidyselect + - r-vctrs + - r-cpp11 + run: + - r-base >= ${{ r_base_version }} + - r-cli + - r-dplyr + - r-glue + - r-lifecycle + - r-magrittr + - r-purrr + - r-rlang + - r-stringr + - r-tibble + - r-tidyselect + - r-vctrs + - r-cpp11 + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://tidyr.tidyverse.org + repository: https://github.com/tidyverse/tidyr + license: MIT + license_file: LICENSE + summary: Tidy Messy Data + description: | + Tools to help to create tidy data, where each column is a variable, each + row is an observation, and each cell contains a single value. 'tidyr' + contains tools for changing the shape (pivoting) and hierarchy (nesting and + 'unnesting') of a dataset, turning deeply nested lists into rectangular data + frames ('rectangling'), and extracting values out of string columns. It + also includes tools for working with missing values (both implicit and + explicit). + +extra: + recipe-maintainers: + - IsabelParedes From 59ece77cc90f49a1f75422272c2a56cb08bbcd5e Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Mon, 6 Jan 2025 19:26:40 +0100 Subject: [PATCH 23/65] Add r-hexbin (#1501) --- recipes/recipes_emscripten/r-hexbin/GPL-2 | 339 ++++++++++++++++++ recipes/recipes_emscripten/r-hexbin/build.sh | 15 + .../recipes_emscripten/r-hexbin/recipe.yaml | 50 +++ 3 files changed, 404 insertions(+) create mode 100644 recipes/recipes_emscripten/r-hexbin/GPL-2 create mode 100644 recipes/recipes_emscripten/r-hexbin/build.sh create mode 100644 recipes/recipes_emscripten/r-hexbin/recipe.yaml diff --git a/recipes/recipes_emscripten/r-hexbin/GPL-2 b/recipes/recipes_emscripten/r-hexbin/GPL-2 new file mode 100644 index 000000000..d159169d1 --- /dev/null +++ b/recipes/recipes_emscripten/r-hexbin/GPL-2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/recipes/recipes_emscripten/r-hexbin/build.sh b/recipes/recipes_emscripten/r-hexbin/build.sh new file mode 100644 index 000000000..30a661403 --- /dev/null +++ b/recipes/recipes_emscripten/r-hexbin/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Using flang as a WASM cross-compiler +# https://github.com/serge-sans-paille/llvm-project/blob/feature/flang-wasm/README.wasm.md +# https://github.com/conda-forge/flang-feedstock/pull/69 +micromamba install -p $BUILD_PREFIX \ + conda-forge/label/llvm_rc::libllvm19=19.1.0.rc2 \ + conda-forge/label/llvm_dev::flang=19.1.0.rc2 \ + -y --no-channel-priority +rm $BUILD_PREFIX/bin/clang # links to clang19 +ln -s $BUILD_PREFIX/bin/clang-18 $BUILD_PREFIX/bin/clang # links to emsdk clang + +$R CMD INSTALL $R_ARGS --no-byte-compile . diff --git a/recipes/recipes_emscripten/r-hexbin/recipe.yaml b/recipes/recipes_emscripten/r-hexbin/recipe.yaml new file mode 100644 index 000000000..b247de340 --- /dev/null +++ b/recipes/recipes_emscripten/r-hexbin/recipe.yaml @@ -0,0 +1,50 @@ +context: + name: r-hexbin + version: 1.28.5 + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: 2ed087d6399f247d44e555b69d785b48362445c4c8c77330bbd57d282b49d3e6 + +build: + number: 0 + +outputs: +- package: + name: ${{ name }} + version: ${{ version|replace('-', '_') }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - r-lattice + - ${{ compiler('c') }} + host: + - r-base >= ${{ r_base_version }} + - r-lattice + - libflang # for FortranRuntime + run: + - r-base >= ${{ r_base_version }} + - r-lattice + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://svn.r-project.org/R-packages/trunk/nlme + repository: http://github.com/edzer/hexbin + license: GPL-2.0-only + license_family: GPL2 + license_file: GPL-2 + summary: Hexagonal binning routines and plotting methods + +extra: + recipe-maintainers: + - IsabelParedes From 1e26a98aef26c643f24ef93726b67c928d872e16 Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Mon, 6 Jan 2025 20:17:47 +0100 Subject: [PATCH 24/65] Add r-rcpp (#1502) --- recipes/recipes_emscripten/r-rcpp/GPL-2 | 339 ++++++++++++++++++ .../patches/0001-Disable-demangler.patch | 23 ++ recipes/recipes_emscripten/r-rcpp/recipe.yaml | 51 +++ 3 files changed, 413 insertions(+) create mode 100644 recipes/recipes_emscripten/r-rcpp/GPL-2 create mode 100644 recipes/recipes_emscripten/r-rcpp/patches/0001-Disable-demangler.patch create mode 100644 recipes/recipes_emscripten/r-rcpp/recipe.yaml diff --git a/recipes/recipes_emscripten/r-rcpp/GPL-2 b/recipes/recipes_emscripten/r-rcpp/GPL-2 new file mode 100644 index 000000000..d159169d1 --- /dev/null +++ b/recipes/recipes_emscripten/r-rcpp/GPL-2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/recipes/recipes_emscripten/r-rcpp/patches/0001-Disable-demangler.patch b/recipes/recipes_emscripten/r-rcpp/patches/0001-Disable-demangler.patch new file mode 100644 index 000000000..741018952 --- /dev/null +++ b/recipes/recipes_emscripten/r-rcpp/patches/0001-Disable-demangler.patch @@ -0,0 +1,23 @@ +From b0808f37778163d6bdbd97592436a27b3a93a67e Mon Sep 17 00:00:00 2001 +From: Isabel Paredes +Date: Mon, 6 Jan 2025 20:05:25 +0100 +Subject: [PATCH] Disable demangler + +--- + inst/include/Rcpp/exceptions_impl.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/inst/include/Rcpp/exceptions_impl.h b/inst/include/Rcpp/exceptions_impl.h +index 8f45028..abe0001 100644 +--- a/inst/include/Rcpp/exceptions_impl.h ++++ b/inst/include/Rcpp/exceptions_impl.h +@@ -32,7 +32,8 @@ + defined(_AIX) || \ + defined(__MUSL__) || \ + defined(__HAIKU__) || \ +- defined(__ANDROID__) ++ defined(__ANDROID__) || \ ++ defined(__EMSCRIPTEN__) + # define RCPP_DEMANGLER_ENABLED 0 + # elif defined(__GNUC__) || defined(__clang__) + # include diff --git a/recipes/recipes_emscripten/r-rcpp/recipe.yaml b/recipes/recipes_emscripten/r-rcpp/recipe.yaml new file mode 100644 index 000000000..f2da8c1c0 --- /dev/null +++ b/recipes/recipes_emscripten/r-rcpp/recipe.yaml @@ -0,0 +1,51 @@ +context: + version: 1.0.13-1 + name: r-Rcpp + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: 1d1fc623d27082b5749f9584a9204de410134b6412a192157a3e42e2ba43969a + patches: + - patches/0001-Disable-demangler.patch + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name|lower }} + version: ${{ version|replace('-', '_') }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('cxx') }} + host: + - r-base >= ${{ r_base_version }} + run: + - r-base >= ${{ r_base_version }} + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }} + +about: + homepage: https://www.rcpp.org/ + repository: https://github.com/RcppCore/Rcpp + license: GPL-2.0-or-later + license_file: GPL-2 + summary: Seamless R and C++ Integration + description: | + Executes arbitrary R or C functions some time after the current time, after + the R execution stack has emptied. The functions are scheduled in an event loop. + +extra: + recipe-maintainers: + - IsabelParedes From ebcc1104c261bea06469c2be2c3cca1b478c9596 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Mon, 6 Jan 2025 01:14:14 +0000 Subject: [PATCH 25/65] Update wheel from 0.44.0 to 0.45.0 --- recipes/recipes_emscripten/wheel/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/wheel/recipe.yaml b/recipes/recipes_emscripten/wheel/recipe.yaml index e44320e1a..5fa1f170e 100644 --- a/recipes/recipes_emscripten/wheel/recipe.yaml +++ b/recipes/recipes_emscripten/wheel/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.44.0 + version: 0.45.0 name: wheel package: @@ -8,7 +8,7 @@ package: source: - url: https://pypi.io/packages/source/w/${{name}}/${{name}}-${{ version }}.tar.gz - sha256: a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49 + sha256: a57353941a3183b3d5365346b567a260a0602a0f8a635926a7dede41b94c674a build: number: 0 From 0ba4e2e3985c61554d54b0b2171893d08801889f Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Tue, 7 Jan 2025 09:50:59 +0100 Subject: [PATCH 26/65] Add r-later (#1503) --- recipes/recipes_emscripten/r-later/build.sh | 9 ++ .../0001-Do-not-link-with-atomic-lib.patch | 24 ++++ .../r-later/patches/exceptions_impl.h | 110 ++++++++++++++++++ .../recipes_emscripten/r-later/recipe.yaml | 56 +++++++++ 4 files changed, 199 insertions(+) create mode 100644 recipes/recipes_emscripten/r-later/build.sh create mode 100644 recipes/recipes_emscripten/r-later/patches/0001-Do-not-link-with-atomic-lib.patch create mode 100644 recipes/recipes_emscripten/r-later/patches/exceptions_impl.h create mode 100644 recipes/recipes_emscripten/r-later/recipe.yaml diff --git a/recipes/recipes_emscripten/r-later/build.sh b/recipes/recipes_emscripten/r-later/build.sh new file mode 100644 index 000000000..874636e97 --- /dev/null +++ b/recipes/recipes_emscripten/r-later/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -ex + +# FIXME: Rcpp has a patch, but this gets overwritten by the activation script of +# cross-r-base. We need to copy it again here. +cp $RECIPE_DIR/patches/exceptions_impl.h $PREFIX/lib/R/library/Rcpp/include/Rcpp/ + +$R CMD INSTALL $R_ARGS --no-byte-compile . \ No newline at end of file diff --git a/recipes/recipes_emscripten/r-later/patches/0001-Do-not-link-with-atomic-lib.patch b/recipes/recipes_emscripten/r-later/patches/0001-Do-not-link-with-atomic-lib.patch new file mode 100644 index 000000000..2d7d15bda --- /dev/null +++ b/recipes/recipes_emscripten/r-later/patches/0001-Do-not-link-with-atomic-lib.patch @@ -0,0 +1,24 @@ +From 75b156266607e314f9caf4419abb91f349f1cf70 Mon Sep 17 00:00:00 2001 +From: Isabel Paredes +Date: Mon, 6 Jan 2025 20:33:00 +0100 +Subject: [PATCH] Do not link with atomic lib + +--- + configure | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/configure b/configure +index aa9a93f..2d0bd2a 100755 +--- a/configure ++++ b/configure +@@ -21,6 +21,10 @@ else + fi + + case "$CC" in ++ *emcc) ++ echo "Found Emscripten. Will skip tests that raise false positives." ++ unset EXTRA_PKG_LIBS ++ ;; + *undefined*) + echo "Found UBSAN. Will skip tests that raise false positives." + PKG_CPPFLAGS="$PKG_CPPFLAGS -DUSING_UBSAN" diff --git a/recipes/recipes_emscripten/r-later/patches/exceptions_impl.h b/recipes/recipes_emscripten/r-later/patches/exceptions_impl.h new file mode 100644 index 000000000..5b7cc2f37 --- /dev/null +++ b/recipes/recipes_emscripten/r-later/patches/exceptions_impl.h @@ -0,0 +1,110 @@ +// exceptions_impl.h: Rcpp R/C++ interface class library -- exceptions +// +// Copyright (C) 2012 - 2019 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2020 Dirk Eddelbuettel, Romain Francois, and Joshua N. Pritikin +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef Rcpp__exceptions_impl__h +#define Rcpp__exceptions_impl__h + +// disable demangler on platforms where we have no support +#ifndef RCPP_DEMANGLER_ENABLED +# if defined(_WIN32) || \ + defined(__FreeBSD__) || \ + defined(__NetBSD__) || \ + defined(__OpenBSD__) || \ + defined(__CYGWIN__) || \ + defined(__sun) || \ + defined(_AIX) || \ + defined(__MUSL__) || \ + defined(__HAIKU__) || \ + defined(__ANDROID__) || \ + defined(__EMSCRIPTEN__) +# define RCPP_DEMANGLER_ENABLED 0 +# elif defined(__GNUC__) || defined(__clang__) +# define RCPP_DEMANGLER_ENABLED 0 +# else +# define RCPP_DEMANGLER_ENABLED 0 +# endif +#endif + +namespace Rcpp { + + // Extract mangled name e.g. ./test(baz+0x14)[0x400962] +#if RCPP_DEMANGLER_ENABLED + static inline std::string demangler_one(const char* input) { // #nocov start + + static std::string buffer; + + buffer = input; + size_t last_open = buffer.find_last_of('('); + size_t last_close = buffer.find_last_of(')'); + if (last_open == std::string::npos || + last_close == std::string::npos) { + return input; // #nocov + } + std::string function_name = buffer.substr(last_open + 1, last_close - last_open - 1); + // Strip the +0x14 (if it exists, which it does not in earlier versions of gcc) + size_t function_plus = function_name.find_last_of('+'); + if (function_plus != std::string::npos) { + function_name.resize(function_plus); + } + buffer.replace(last_open + 1, function_name.size(), demangle(function_name)); + + return buffer; + + } +#endif + + // thread-safe; invoked prior to throwing the exception + inline void exception::record_stack_trace() + { +#if RCPP_DEMANGLER_ENABLED + /* inspired from http://tombarta.wordpress.com/2008/08/01/c-stack-traces-with-gcc/ */ + const size_t max_depth = 100; + int stack_depth; + void *stack_addrs[max_depth]; + + stack_depth = backtrace(stack_addrs, max_depth); + char **stack_strings = backtrace_symbols(stack_addrs, stack_depth); + + std::transform(stack_strings + 1, stack_strings + stack_depth, + std::back_inserter(stack), demangler_one); + free(stack_strings); // malloc()ed by backtrace_symbols +#endif + } + + // not thread-safe; invoked after catching the exception + inline void exception::copy_stack_trace_to_r() const + { + if (!stack.size()) { + rcpp_set_stack_trace(R_NilValue); + return; + } + + CharacterVector res(stack.size()); + std::copy(stack.begin(), stack.end(), res.begin()); + List trace = List::create(_["file" ] = "", + _["line" ] = -1, + _["stack"] = res); + trace.attr("class") = "Rcpp_stack_trace"; + rcpp_set_stack_trace(trace); // #nocov end + } + +} + +#endif diff --git a/recipes/recipes_emscripten/r-later/recipe.yaml b/recipes/recipes_emscripten/r-later/recipe.yaml new file mode 100644 index 000000000..6dd9a7a0b --- /dev/null +++ b/recipes/recipes_emscripten/r-later/recipe.yaml @@ -0,0 +1,56 @@ +context: + version: 1.4.1 + name: r-later + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: 3ef3eb8315bb8331fc9a694ba74c5abeb1aa4d274bcbe81c605d5e6785e3722c + patches: + - patches/0001-Do-not-link-with-atomic-lib.patch + +build: + number: 0 + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} + - r-rcpp + host: + - r-base >= ${{ r_base_version }} + - r-rcpp + - r-rlang + run: + - r-base >= ${{ r_base_version }} + - r-rcpp + - r-rlang + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://r-lib.github.io/later/ + repository: https://github.com/r-lib/later + license: MIT + license_file: LICENSE + summary: Schedule an R function or formula to run after a specified period of time. + description: | + Executes arbitrary R or C functions some time after the current time, after + the R execution stack has emptied. The functions are scheduled in an event loop. + +extra: + recipe-maintainers: + - IsabelParedes From 40ea9f822ccac1647ac3618907d295046e991ab4 Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Tue, 7 Jan 2025 10:04:32 +0100 Subject: [PATCH 27/65] Add r-promises (#1504) --- .../recipes_emscripten/r-promises/build.sh | 9 ++ .../r-promises/patches/exceptions_impl.h | 110 ++++++++++++++++++ .../recipes_emscripten/r-promises/recipe.yaml | 66 +++++++++++ 3 files changed, 185 insertions(+) create mode 100644 recipes/recipes_emscripten/r-promises/build.sh create mode 100644 recipes/recipes_emscripten/r-promises/patches/exceptions_impl.h create mode 100644 recipes/recipes_emscripten/r-promises/recipe.yaml diff --git a/recipes/recipes_emscripten/r-promises/build.sh b/recipes/recipes_emscripten/r-promises/build.sh new file mode 100644 index 000000000..874636e97 --- /dev/null +++ b/recipes/recipes_emscripten/r-promises/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -ex + +# FIXME: Rcpp has a patch, but this gets overwritten by the activation script of +# cross-r-base. We need to copy it again here. +cp $RECIPE_DIR/patches/exceptions_impl.h $PREFIX/lib/R/library/Rcpp/include/Rcpp/ + +$R CMD INSTALL $R_ARGS --no-byte-compile . \ No newline at end of file diff --git a/recipes/recipes_emscripten/r-promises/patches/exceptions_impl.h b/recipes/recipes_emscripten/r-promises/patches/exceptions_impl.h new file mode 100644 index 000000000..5b7cc2f37 --- /dev/null +++ b/recipes/recipes_emscripten/r-promises/patches/exceptions_impl.h @@ -0,0 +1,110 @@ +// exceptions_impl.h: Rcpp R/C++ interface class library -- exceptions +// +// Copyright (C) 2012 - 2019 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2020 Dirk Eddelbuettel, Romain Francois, and Joshua N. Pritikin +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef Rcpp__exceptions_impl__h +#define Rcpp__exceptions_impl__h + +// disable demangler on platforms where we have no support +#ifndef RCPP_DEMANGLER_ENABLED +# if defined(_WIN32) || \ + defined(__FreeBSD__) || \ + defined(__NetBSD__) || \ + defined(__OpenBSD__) || \ + defined(__CYGWIN__) || \ + defined(__sun) || \ + defined(_AIX) || \ + defined(__MUSL__) || \ + defined(__HAIKU__) || \ + defined(__ANDROID__) || \ + defined(__EMSCRIPTEN__) +# define RCPP_DEMANGLER_ENABLED 0 +# elif defined(__GNUC__) || defined(__clang__) +# define RCPP_DEMANGLER_ENABLED 0 +# else +# define RCPP_DEMANGLER_ENABLED 0 +# endif +#endif + +namespace Rcpp { + + // Extract mangled name e.g. ./test(baz+0x14)[0x400962] +#if RCPP_DEMANGLER_ENABLED + static inline std::string demangler_one(const char* input) { // #nocov start + + static std::string buffer; + + buffer = input; + size_t last_open = buffer.find_last_of('('); + size_t last_close = buffer.find_last_of(')'); + if (last_open == std::string::npos || + last_close == std::string::npos) { + return input; // #nocov + } + std::string function_name = buffer.substr(last_open + 1, last_close - last_open - 1); + // Strip the +0x14 (if it exists, which it does not in earlier versions of gcc) + size_t function_plus = function_name.find_last_of('+'); + if (function_plus != std::string::npos) { + function_name.resize(function_plus); + } + buffer.replace(last_open + 1, function_name.size(), demangle(function_name)); + + return buffer; + + } +#endif + + // thread-safe; invoked prior to throwing the exception + inline void exception::record_stack_trace() + { +#if RCPP_DEMANGLER_ENABLED + /* inspired from http://tombarta.wordpress.com/2008/08/01/c-stack-traces-with-gcc/ */ + const size_t max_depth = 100; + int stack_depth; + void *stack_addrs[max_depth]; + + stack_depth = backtrace(stack_addrs, max_depth); + char **stack_strings = backtrace_symbols(stack_addrs, stack_depth); + + std::transform(stack_strings + 1, stack_strings + stack_depth, + std::back_inserter(stack), demangler_one); + free(stack_strings); // malloc()ed by backtrace_symbols +#endif + } + + // not thread-safe; invoked after catching the exception + inline void exception::copy_stack_trace_to_r() const + { + if (!stack.size()) { + rcpp_set_stack_trace(R_NilValue); + return; + } + + CharacterVector res(stack.size()); + std::copy(stack.begin(), stack.end(), res.begin()); + List trace = List::create(_["file" ] = "", + _["line" ] = -1, + _["stack"] = res); + trace.attr("class") = "Rcpp_stack_trace"; + rcpp_set_stack_trace(trace); // #nocov end + } + +} + +#endif diff --git a/recipes/recipes_emscripten/r-promises/recipe.yaml b/recipes/recipes_emscripten/r-promises/recipe.yaml new file mode 100644 index 000000000..6e510798f --- /dev/null +++ b/recipes/recipes_emscripten/r-promises/recipe.yaml @@ -0,0 +1,66 @@ +context: + version: 1.3.2 + name: r-promises + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: 94d5b07eb54d73174d3f5dd573b8bd996a59f5cf9eaf8f344793ac6c5f2654bd + +build: + number: 0 + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('cxx') }} + - r-later + - r-magrittr + - r-rcpp + host: + - r-base >= ${{ r_base_version }} + - r-fastmap + - r-later + - r-magrittr + - r-r6 + - r-rcpp + - r-rlang + run: + - r-base >= ${{ r_base_version }} + - r-fastmap + - r-later + - r-magrittr + - r-r6 + - r-rcpp + - r-rlang + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] | replace('.', '_') }}.so + +about: + homepage: https://rstudio.github.io/promises/ + repository: https://github.com/rstudio/promises + license: MIT + license_file: LICENSE + summary: A promise library for R + description: | + Provides fundamental abstractions for doing asynchronous programming in R + using promises. Asynchronous programming is useful for allowing a single R + process to orchestrate multiple tasks in the background while also attending + to something else. Semantics are similar to 'JavaScript' promises, but with a + syntax that is idiomatic R. + +extra: + recipe-maintainers: + - IsabelParedes From 598d795ea1a551d6ff9f8f7e80edb63fff7e502d Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Tue, 7 Jan 2025 14:28:32 +0100 Subject: [PATCH 28/65] Add r-lazyeval (#1505) --- recipes/recipes_emscripten/r-lazyeval/GPL-3 | 674 ++++++++++++++++++ .../recipes_emscripten/r-lazyeval/recipe.yaml | 51 ++ 2 files changed, 725 insertions(+) create mode 100644 recipes/recipes_emscripten/r-lazyeval/GPL-3 create mode 100644 recipes/recipes_emscripten/r-lazyeval/recipe.yaml diff --git a/recipes/recipes_emscripten/r-lazyeval/GPL-3 b/recipes/recipes_emscripten/r-lazyeval/GPL-3 new file mode 100644 index 000000000..f288702d2 --- /dev/null +++ b/recipes/recipes_emscripten/r-lazyeval/GPL-3 @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/recipes_emscripten/r-lazyeval/recipe.yaml b/recipes/recipes_emscripten/r-lazyeval/recipe.yaml new file mode 100644 index 000000000..0f8501e44 --- /dev/null +++ b/recipes/recipes_emscripten/r-lazyeval/recipe.yaml @@ -0,0 +1,51 @@ +context: + version: 0.2.2 + name: r-lazyeval + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: d6904112a21056222cfcd5eb8175a78aa063afe648a562d9c42c6b960a8820d4 + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + host: + - r-base >= ${{ r_base_version }} + run: + - r-base >= ${{ r_base_version }} + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://CRAN.R-project.org/package=lazyeval + repository: https://github.com/hadley/lazyeval + license: GPL-3.0-only + license_family: GPL3 + license_file: GPL-3 + summary: An alternative to non-standard evaluation (NSE) for R + description: | + An alternative approach to non-standard evaluation using formulas. Provides a + full implementation of LISP style 'quasiquotation', making it easier to + generate code with other code. + +extra: + recipe-maintainers: + - IsabelParedes From b4a7633a1c650e4581a27179740a3132bbe6b98f Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Tue, 7 Jan 2025 16:34:25 +0100 Subject: [PATCH 29/65] Add r-mime (#1506) --- recipes/recipes_emscripten/r-mime/GPL-2 | 339 ++++++++++++++++++ recipes/recipes_emscripten/r-mime/recipe.yaml | 50 +++ 2 files changed, 389 insertions(+) create mode 100644 recipes/recipes_emscripten/r-mime/GPL-2 create mode 100644 recipes/recipes_emscripten/r-mime/recipe.yaml diff --git a/recipes/recipes_emscripten/r-mime/GPL-2 b/recipes/recipes_emscripten/r-mime/GPL-2 new file mode 100644 index 000000000..d159169d1 --- /dev/null +++ b/recipes/recipes_emscripten/r-mime/GPL-2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/recipes/recipes_emscripten/r-mime/recipe.yaml b/recipes/recipes_emscripten/r-mime/recipe.yaml new file mode 100644 index 000000000..84f0ee77d --- /dev/null +++ b/recipes/recipes_emscripten/r-mime/recipe.yaml @@ -0,0 +1,50 @@ +context: + version: 0.12 + name: r-mime + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: a9001051d6c1e556e881910b1816b42872a1ee41ab76d0040ce66a27135e3849 + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + host: + - r-base >= ${{ r_base_version }} + run: + - r-base >= ${{ r_base_version }} + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://cran.rstudio.com/package=mime + repository: https://github.com/yihui/mime + license: GPL-2.0-or-later + license_family: GPL + license_file: GPL-2 + summary: Map filenames to MIME types + description: | + Guesses the MIME type from a filename extension using the data derived from + /etc/mime.types in UNIX-type systems. + +extra: + recipe-maintainers: + - IsabelParedes From e17627c5dd1fe42d60ee3a03826c3c97d07e4a02 Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Tue, 7 Jan 2025 16:54:38 +0100 Subject: [PATCH 30/65] Add r-sys (#1507) --- recipes/recipes_emscripten/r-sys/recipe.yaml | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recipes/recipes_emscripten/r-sys/recipe.yaml diff --git a/recipes/recipes_emscripten/r-sys/recipe.yaml b/recipes/recipes_emscripten/r-sys/recipe.yaml new file mode 100644 index 000000000..d7cbc6c67 --- /dev/null +++ b/recipes/recipes_emscripten/r-sys/recipe.yaml @@ -0,0 +1,53 @@ +context: + version: 3.4.3 + name: r-sys + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: 051e7332e3074db826efef9059067721864f9d70adc55bbcae3a72e5ae83913a + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + host: + - r-base >= ${{ r_base_version }} + run: + - r-base >= ${{ r_base_version }} + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://jeroen.r-universe.dev/sys + repository: https://github.com/jeroen/sys/ + license: MIT + license_family: MIT + license_file: LICENSE + summary: Powerful replacements for base::system2 + description: | + Drop-in replacements for the base system2() function with fine control and + consistent behavior across platforms. Supports clean interruption, timeout, + background tasks, and streaming STDIN / STDOUT / STDERR over binary or text + connections. Arguments on Windows automatically get encoded and quoted to + work on different locales. + +extra: + recipe-maintainers: + - IsabelParedes From 00e3662a75481cd6e1aa1c9081fe3c4c3d93b43d Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Tue, 7 Jan 2025 17:09:23 +0100 Subject: [PATCH 31/65] Add r-askpass (#1508) --- .../recipes_emscripten/r-askpass/recipe.yaml | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 recipes/recipes_emscripten/r-askpass/recipe.yaml diff --git a/recipes/recipes_emscripten/r-askpass/recipe.yaml b/recipes/recipes_emscripten/r-askpass/recipe.yaml new file mode 100644 index 000000000..ed4670496 --- /dev/null +++ b/recipes/recipes_emscripten/r-askpass/recipe.yaml @@ -0,0 +1,57 @@ +context: + version: 1.2.1 + name: r-askpass + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: 6c2106a74c44a748f2cea795d9686e27a0058a90debcfd8558b62b06aec0c7dd + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + host: + - r-base >= ${{ r_base_version }} + - r-sys + run: + - r-base >= ${{ r_base_version }} + - r-sys + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://r-lib.r-universe.dev/askpass + repository: https://github.com/r-lib/askpass + license: MIT + license_file: LICENSE + summary: Password Entry for R, Git, and SSH + description: | + Cross-platform utilities for prompting the user for credentials or a + passphrase, for example to authenticate with a server or read a protected + key. Includes native programs for MacOS and Windows, hence no 'tcltk' is + required. Password entry can be invoked in two different ways: directly from + R via the askpass() function, or indirectly as password-entry back-end for + 'ssh-agent' or 'git-credential' via the SSH_ASKPASS and GIT_ASKPASS + environment variables. Thereby the user can be prompted for credentials or a + passphrase if needed when R calls out to git or ssh. + +extra: + recipe-maintainers: + - IsabelParedes From 35786e067ee7b3e634796fac1972ab3dc47e7b72 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Wed, 8 Jan 2025 01:11:21 +0000 Subject: [PATCH 32/65] Update wheel from 0.45.0 to 0.45.1 --- recipes/recipes_emscripten/wheel/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/wheel/recipe.yaml b/recipes/recipes_emscripten/wheel/recipe.yaml index 5fa1f170e..5a28a1dc1 100644 --- a/recipes/recipes_emscripten/wheel/recipe.yaml +++ b/recipes/recipes_emscripten/wheel/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 0.45.0 + version: 0.45.1 name: wheel package: @@ -8,7 +8,7 @@ package: source: - url: https://pypi.io/packages/source/w/${{name}}/${{name}}-${{ version }}.tar.gz - sha256: a57353941a3183b3d5365346b567a260a0602a0f8a635926a7dede41b94c674a + sha256: 661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729 build: number: 0 From 560a58f173ee54e8fb214ef9d4587b1cf2e7ac40 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Wed, 8 Jan 2025 01:09:59 +0000 Subject: [PATCH 33/65] Update pyjs from 2.4.0 to 2.4.1 --- recipes/recipes_emscripten/pyjs/recipe.yaml | 88 ++++++++++----------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/recipes/recipes_emscripten/pyjs/recipe.yaml b/recipes/recipes_emscripten/pyjs/recipe.yaml index 3d13ef1b5..09415313f 100644 --- a/recipes/recipes_emscripten/pyjs/recipe.yaml +++ b/recipes/recipes_emscripten/pyjs/recipe.yaml @@ -1,13 +1,13 @@ context: - version: 2.4.0 + version: 2.4.1 name: pyjs package: name: ${{name}} version: ${{ version }} - + source: url: https://github.com/emscripten-forge/pyjs/archive/refs/tags/${{ version }}.tar.gz - sha256: f99ccde0b025efe76dd21243534660f231881fdff969b811b215406096a9488e + sha256: 9ff1655a1d070bfd44f16ad3d1599ca2c575ea67241e44697de8468d8f917459 build: number: 0 @@ -28,48 +28,48 @@ requirements: - pybind11<2.12.0 tests: - - script: | - echo "install playwright" - playwright install - echo "test in browser (main thread)" - pyjs_code_runner run script \ - browser-main \ - --conda-env $PREFIX \ - --mount $(pwd)/tests:/tests \ - --script main.py \ - --work-dir /tests \ - --headless \ - --async-main \ - --no-cache - # worker - echo "test in browser (worker thread)" - pyjs_code_runner run script \ - browser-worker \ - --conda-env $PREFIX \ - --mount $(pwd)/tests:/tests \ - --script main.py \ - --work-dir /tests \ - --headless \ - --async-main \ - --no-cache +- script: | + echo "install playwright" + playwright install + echo "test in browser (main thread)" + pyjs_code_runner run script \ + browser-main \ + --conda-env $PREFIX \ + --mount $(pwd)/tests:/tests \ + --script main.py \ + --work-dir /tests \ + --headless \ + --async-main \ + --no-cache + # worker + echo "test in browser (worker thread)" + pyjs_code_runner run script \ + browser-worker \ + --conda-env $PREFIX \ + --mount $(pwd)/tests:/tests \ + --script main.py \ + --work-dir /tests \ + --headless \ + --async-main \ + --no-cache - requirements: - build: - - pytester - - if: build_platform == "linux-64" - then: - - pyjs_code_runner >=3.0.0 - - microsoft::playwright <1.42 - else: - - pyjs_code_runner >=3.0.0 - - microsoft::playwright - run: - - pytest - - numpy<2 - - python<3.12 - files: - source: - - tests/**/* + requirements: + build: + - pytester + - if: build_platform == "linux-64" + then: + - pyjs_code_runner >=3.0.0 + - microsoft::playwright <1.42 + else: + - pyjs_code_runner >=3.0.0 + - microsoft::playwright + run: + - pytest + - numpy<2 + - python<3.12 + files: + source: + - tests/**/* about: From 3caa59e391698aeeb9550b5fad59f863a61a822c Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Wed, 8 Jan 2025 01:09:45 +0000 Subject: [PATCH 34/65] Update libpng from 1.6.44 to 1.6.45 --- recipes/recipes_emscripten/libpng/recipe.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/recipes/recipes_emscripten/libpng/recipe.yaml b/recipes/recipes_emscripten/libpng/recipe.yaml index fbbc68bf8..ad68aa566 100644 --- a/recipes/recipes_emscripten/libpng/recipe.yaml +++ b/recipes/recipes_emscripten/libpng/recipe.yaml @@ -1,14 +1,15 @@ context: name: libpng - version: 1.6.44 + version: 1.6.45 package: name: ${{ name }} version: ${{ version }} source: - url: http://downloads.sourceforge.net/project/${{ name }}/libpng16/${{ version }}/${{ name }}-${{ version }}.tar.gz - sha256: 8c25a7792099a0089fa1cc76c94260d0bb3f1ec52b93671b572f8bb61577b732 + url: http://downloads.sourceforge.net/project/${{ name }}/libpng16/${{ version }}/${{ + name }}-${{ version }}.tar.gz + sha256: 7dee9e1ca8152bf52f919456f4190330aee48209887f2ec0b3d9f0ad571df11b build: number: 1 @@ -30,7 +31,7 @@ tests: include: - png.h - script: - - libpng-config --version + - libpng-config --version about: license: zlib-acknowledgement @@ -45,4 +46,4 @@ about: extra: recipe-maintainers: - martinRenou - - IsabelParedes \ No newline at end of file + - IsabelParedes From 4e5ce8c6d2a41d23e7157fcd9dd4802186370c77 Mon Sep 17 00:00:00 2001 From: Anutosh Bhat Date: Thu, 9 Jan 2025 12:47:06 +0530 Subject: [PATCH 35/65] Update cppinterop to support automatic printf in xeus-cpp-lite (#1515) --- recipes/recipes_emscripten/cppinterop/build.sh | 11 +++++------ .../__clang_Interpreter_SetValueNoAlloc.patch | 16 ++++++++++++++++ .../recipes_emscripten/cppinterop/recipe.yaml | 4 +++- 3 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 recipes/recipes_emscripten/cppinterop/patches/__clang_Interpreter_SetValueNoAlloc.patch diff --git a/recipes/recipes_emscripten/cppinterop/build.sh b/recipes/recipes_emscripten/cppinterop/build.sh index 574b4fb16..b60d4dc5b 100644 --- a/recipes/recipes_emscripten/cppinterop/build.sh +++ b/recipes/recipes_emscripten/cppinterop/build.sh @@ -6,13 +6,12 @@ export CMAKE_SYSTEM_PREFIX_PATH=$PREFIX # Configure step emcmake cmake -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_PREFIX_PATH=$PREFIX \ - -DLLVM_DIR=$PREFIX \ - -DLLD_DIR=$PREFIX \ - -DClang_DIR=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DLLVM_DIR=$PREFIX/lib/cmake/llvm \ + -DLLD_DIR=$PREFIX/lib/cmake/lld \ + -DClang_DIR=$PREFIX/lib/cmake/clang \ -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_INSTALL_PREFIX=$PREFIX \ - -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ ../ # Build step diff --git a/recipes/recipes_emscripten/cppinterop/patches/__clang_Interpreter_SetValueNoAlloc.patch b/recipes/recipes_emscripten/cppinterop/patches/__clang_Interpreter_SetValueNoAlloc.patch new file mode 100644 index 000000000..d4cd6b3b9 --- /dev/null +++ b/recipes/recipes_emscripten/cppinterop/patches/__clang_Interpreter_SetValueNoAlloc.patch @@ -0,0 +1,16 @@ +diff --git a/lib/Interpreter/CMakeLists.txt b/lib/Interpreter/CMakeLists.txt +index 103b331..8d0dd97 100644 +--- a/lib/Interpreter/CMakeLists.txt ++++ b/lib/Interpreter/CMakeLists.txt +@@ -17,6 +17,11 @@ if(EMSCRIPTEN) + LINK_LIBS + clangInterpreter + ) ++ ++ target_link_options(clangCppInterOp PRIVATE ++ PUBLIC "SHELL: -s WASM_BIGINT" ++ PUBLIC "SHELL: -Wl,--export=__clang_Interpreter_SetValueNoAlloc" ++ ) + else() + set(LLVM_LINK_COMPONENTS + ${LLVM_TARGETS_TO_BUILD} diff --git a/recipes/recipes_emscripten/cppinterop/recipe.yaml b/recipes/recipes_emscripten/cppinterop/recipe.yaml index e07ec7c63..4cf6c13dc 100644 --- a/recipes/recipes_emscripten/cppinterop/recipe.yaml +++ b/recipes/recipes_emscripten/cppinterop/recipe.yaml @@ -8,9 +8,11 @@ package: source: url: https://github.com/compiler-research/CppInterOp/archive/refs/tags/v${{ version }}.tar.gz sha256: d29d610adeb23820533a456714c795de4e458153e04a003d26ac8b0326a3469f + patches: + - patches/__clang_Interpreter_SetValueNoAlloc.patch build: - number: 0 + number: 1 requirements: build: From d314021b898ad52f01b73d0833ddf28fbffda520 Mon Sep 17 00:00:00 2001 From: David Brochart Date: Thu, 9 Jan 2025 12:12:12 +0100 Subject: [PATCH 36/65] Upgrade rust v1.86.0 (#1518) * Upgrade rust v1.83.0 * Update to v1.86.0 --- recipes/recipes/rust/activate-rust.sh | 6 +++--- recipes/recipes/rust/build.sh | 6 +++--- recipes/recipes/rust/recipe.yaml | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/recipes/recipes/rust/activate-rust.sh b/recipes/recipes/rust/activate-rust.sh index 0c7c12b6d..3053fa503 100644 --- a/recipes/recipes/rust/activate-rust.sh +++ b/recipes/recipes/rust/activate-rust.sh @@ -11,8 +11,8 @@ export PATH=$CARGO_HOME/bin:$PATH # if $CARO_HOME does not exist, install rustup if [ ! -d "$CARGO_HOME" ]; then curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y #--default-toolchain=1.78.0 - rustup install nightly-2024-04-22 - rustup default nightly-2024-04-22 + rustup install nightly-2025-01-09 + rustup default nightly-2025-01-09 rustup target add wasm32-unknown-emscripten fi @@ -33,4 +33,4 @@ export PYO3_CROSS_INCLUDE_DIR=$PREFIX/include export PYO3_PYTHON=python export CARGO_BUILD_TARGET="wasm32-unknown-emscripten" -export LDFLAGS="$LDFLAGS -L${PREFIX}/lib" \ No newline at end of file +export LDFLAGS="$LDFLAGS -L${PREFIX}/lib" diff --git a/recipes/recipes/rust/build.sh b/recipes/recipes/rust/build.sh index cd0746ccf..29d4b5d75 100644 --- a/recipes/recipes/rust/build.sh +++ b/recipes/recipes/rust/build.sh @@ -10,6 +10,6 @@ export CARGO_HOME=$HOME/.cargo_emscripten_forge export PATH=$CARGO_HOME/bin:$PATH curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y #--default-toolchain=1.78.0 -rustup install nightly-2024-04-22 -rustup default nightly-2024-04-22 -rustup target add wasm32-unknown-emscripten \ No newline at end of file +rustup install nightly-2025-01-09 +rustup default nightly-2025-01-09 +rustup target add wasm32-unknown-emscripten diff --git a/recipes/recipes/rust/recipe.yaml b/recipes/recipes/rust/recipe.yaml index c79c9e5c0..4d43948b0 100644 --- a/recipes/recipes/rust/recipe.yaml +++ b/recipes/recipes/rust/recipe.yaml @@ -1,6 +1,6 @@ context: name: rust - version: "1.79.0" + version: "1.86.0" package: name: ${{ name|lower }} @@ -8,7 +8,7 @@ package: build: - number: 32 + number: 0 requirements: build: From 61e88110f43254640d561e0a5ea1b6a7810d377c Mon Sep 17 00:00:00 2001 From: David Brochart Date: Thu, 9 Jan 2025 12:30:06 +0100 Subject: [PATCH 37/65] Fix wrong link (#1516) --- docs/development/adding_packages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development/adding_packages.md b/docs/development/adding_packages.md index f90337b06..301f6e799 100644 --- a/docs/development/adding_packages.md +++ b/docs/development/adding_packages.md @@ -142,5 +142,5 @@ requirements: **Example recipes**: * [cryptography](https://github.com/emscripten-forge/recipes/tree/main/recipes/recipes_emscripten/cryptography) -* [pydantic-core](https://github.com/emscripten-forge/recipes/tree/main/recipes/recipes_emscripten/cryptography) +* [pydantic-core](https://github.com/emscripten-forge/recipes/tree/main/recipes/recipes_emscripten/pydantic-core) * [pycrdt](https://github.com/emscripten-forge/recipes/tree/main/recipes/recipes_emscripten/pycrdt) From 27b96628a4b4acbf27edf127829923ea7aea7b51 Mon Sep 17 00:00:00 2001 From: R2 <136319114+emscripten-forge-bot@users.noreply.github.com> Date: Sat, 11 Jan 2025 05:02:30 +0100 Subject: [PATCH 38/65] Update pugixml from 1.14 to 1.15 (#1521) Co-authored-by: emscripten-forge-bot --- recipes/recipes_emscripten/pugixml/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/pugixml/recipe.yaml b/recipes/recipes_emscripten/pugixml/recipe.yaml index 66b5e6631..bcc7745a3 100644 --- a/recipes/recipes_emscripten/pugixml/recipe.yaml +++ b/recipes/recipes_emscripten/pugixml/recipe.yaml @@ -1,5 +1,5 @@ context: - version: '1.14' + version: '1.15' package: name: pugixml @@ -7,7 +7,7 @@ package: source: url: https://github.com/zeux/pugixml/archive/v${{ version }}.tar.gz - sha256: 610f98375424b5614754a6f34a491adbddaaec074e9044577d965160ec103d2e + sha256: b39647064d9e28297a34278bfb897092bf33b7c487906ddfc094c9e8868bddcb build: number: 0 From e8c6075ecec8213631db69bda9f5e05f84f48ab6 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Sun, 12 Jan 2025 01:17:20 +0000 Subject: [PATCH 39/65] Update harfbuzz from 10.1.0 to 10.2.0 --- recipes/recipes_emscripten/harfbuzz/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/harfbuzz/recipe.yaml b/recipes/recipes_emscripten/harfbuzz/recipe.yaml index 50b4d1819..3c9cef21a 100644 --- a/recipes/recipes_emscripten/harfbuzz/recipe.yaml +++ b/recipes/recipes_emscripten/harfbuzz/recipe.yaml @@ -1,6 +1,6 @@ context: name: harfbuzz - version: 10.1.0 + version: 10.2.0 package: name: ${{ name }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/${{ name }}/${{ name }}/archive/${{ version }}.tar.gz - sha256: c758fdce8587641b00403ee0df2cd5d30cbea7803d43c65fddd76224f7b49b88 + sha256: 11749926914fd488e08e744538f19329332487a6243eec39ef3c63efa154a578 build: number: 0 From 8bf368f76c1c7a8966261c4e4a190118ee60da86 Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Sun, 12 Jan 2025 01:16:28 +0000 Subject: [PATCH 40/65] Update wrapt from 1.17.0 to 1.17.1 --- recipes/recipes_emscripten/wrapt/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/wrapt/recipe.yaml b/recipes/recipes_emscripten/wrapt/recipe.yaml index 858a95f92..7259f3348 100644 --- a/recipes/recipes_emscripten/wrapt/recipe.yaml +++ b/recipes/recipes_emscripten/wrapt/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 1.17.0 + version: 1.17.1 package: name: wrapt @@ -7,7 +7,7 @@ package: source: - url: https://pypi.io/packages/source/w/wrapt/wrapt-${{ version }}.tar.gz - sha256: 16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801 + sha256: 16b2fdfa09a74a3930175b6d9d7d008022aa72a4f02de2b3eecafcc1adfd3cfe build: number: 0 From e1d0bcd85e9b22fd47e5cbaf9f8bce90c97e79c8 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Mon, 13 Jan 2025 08:53:22 +0100 Subject: [PATCH 41/65] Fixes activate and dectivate scripts of emscripten-wasm32 (#1519) * Fixes activate and dectivate scripts of emscripten-wasm32 * Increased build number * Fixed cross-python recipes * .. * .. --- .../cross-python_emscripten-wasm32/recipe.yaml | 4 ++-- .../recipes/emscripten_emscripten-wasm32/activate.sh | 9 +++++++-- .../emscripten_emscripten-wasm32/deactivate.sh | 11 ++++++++++- .../recipes/emscripten_emscripten-wasm32/recipe.yaml | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/recipes/recipes/cross-python_emscripten-wasm32/recipe.yaml b/recipes/recipes/cross-python_emscripten-wasm32/recipe.yaml index 3320f7ea1..59bee3fca 100644 --- a/recipes/recipes/cross-python_emscripten-wasm32/recipe.yaml +++ b/recipes/recipes/cross-python_emscripten-wasm32/recipe.yaml @@ -7,7 +7,7 @@ package: version: ${{ version }} build: - number: 10 + number: 11 requirements: @@ -17,7 +17,7 @@ requirements: - emscripten_emscripten-wasm32 - rsync - sed - - python 3.11 + - python ==3.11 - setuptools #<60.0 - pip diff --git a/recipes/recipes/emscripten_emscripten-wasm32/activate.sh b/recipes/recipes/emscripten_emscripten-wasm32/activate.sh index ad0a7ed9f..a371ee6b5 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/activate.sh +++ b/recipes/recipes/emscripten_emscripten-wasm32/activate.sh @@ -2,8 +2,13 @@ if [ -z ${CONDA_FORGE_EMSCRIPTEN_ACTIVATED+x} ]; then export CONDA_FORGE_EMSCRIPTEN_ACTIVATED=1 - export EMSDK_PYTHON=${BUILD_PREFIX}/bin/python3 - export PYTHON=${BUILD_PREFIX}/bin/python3 + if [ -z ${BUILD_PREFIX+x} ]; then + export EMSDK_PYTHON=${CONDA_PREFIX}/bin/python3 + export PYTHON=${CONDA_PREFIX}/bin/python3 + else + export EMSDK_PYTHON=${BUILD_PREFIX}/bin/python3 + export PYTHON=${BUILD_PREFIX}/bin/python3 + fi CONDA_EMSDK_DIR=$CONDA_PREFIX/opt/emsdk diff --git a/recipes/recipes/emscripten_emscripten-wasm32/deactivate.sh b/recipes/recipes/emscripten_emscripten-wasm32/deactivate.sh index ab9bf172f..2736ab1bd 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/deactivate.sh +++ b/recipes/recipes/emscripten_emscripten-wasm32/deactivate.sh @@ -3,10 +3,19 @@ unset cmake unset CONDA_FORGE_EMSCRIPTEN_ACTIVATED +unset EMSDK_PYTHON +unset PYTHON +unset CONDA_EMSDK_DIR +unset CC +unset CXX +unset AR +unset RANLIB +unset CMAKE_ARGS unset PY_SIDE_LD_FLAGV unset EM_FORGE_OPTFLAGS unset EM_FORGE_DBGFLAGS unset EM_FORGE_LDFLAGS_BASE unset EM_FORGE_CFLAGS_BASE unset EM_FORGE_SIDE_MODULE_LDFLAGS -unset EM_FORGE_SIDE_MODULE_CFLAGS \ No newline at end of file +unset EM_FORGE_SIDE_MODULE_CFLAGS +unset LDFLAGS diff --git a/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml b/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml index 228bd6e14..2cf9969da 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml +++ b/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml @@ -3,7 +3,7 @@ context: version: 3.1.45 build: - number: 31 + number: 32 outputs: - package: From c39d98a6b275a03a148aacb0e3434f6761acf35f Mon Sep 17 00:00:00 2001 From: emscripten-forge-bot Date: Mon, 13 Jan 2025 01:14:04 +0000 Subject: [PATCH 42/65] Update fmt from 11.1.1 to 11.1.2 --- recipes/recipes_emscripten/fmt/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/fmt/recipe.yaml b/recipes/recipes_emscripten/fmt/recipe.yaml index 236fb623c..e032e6671 100644 --- a/recipes/recipes_emscripten/fmt/recipe.yaml +++ b/recipes/recipes_emscripten/fmt/recipe.yaml @@ -1,6 +1,6 @@ context: name: fmt - version: 11.1.1 + version: 11.1.2 package: name: ${{ name }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/fmtlib/${{ name }}/archive/${{ version }}.tar.gz - sha256: 482eed9efbc98388dbaee5cb5f368be5eca4893456bb358c18b7ff71f835ae43 + sha256: d8773cf062cc806d4dd4df658111f15ba7a2c9c65db5084d2491696828b1eb97 build: number: 0 From 4e7bbeefd54e424c2da317880c0d4ba3c9a1c4e6 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 10:36:37 +0100 Subject: [PATCH 43/65] version update bot changes st. it works for multiple branches (#1535) * version bot for emscripten-3.1.73 bot * version bot for emscripten-3.1.73 --- .github/workflows/new_versions.yaml | 7 +++++++ emci/bot/bump_recipes_versions.py | 26 ++++++++++++++++++++++---- emci/git_utils.py | 4 ++-- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/.github/workflows/new_versions.yaml b/.github/workflows/new_versions.yaml index 966d7c163..8cdb9d197 100644 --- a/.github/workflows/new_versions.yaml +++ b/.github/workflows/new_versions.yaml @@ -7,10 +7,17 @@ on: jobs: update_versions: + strategy: + matrix: + branch: [main, emscripten-3.1.73] + + if: (github.event_name == 'schedule' && github.repository == 'emscripten-forge/recipes') || (github.event_name != 'schedule') runs-on: [ubuntu-latest] steps: - uses: actions/checkout@v4 + with: + ref: ${{ matrix.branch }} - name: Install micromamba uses: mamba-org/setup-micromamba@v1 diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index 5346b5406..e3fef0190 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -113,7 +113,7 @@ def update_recipe_version(recipe_file, new_version, new_sha256, is_ratler): def make_pr_title(name, old_version, new_version): return f"Update {name} from {old_version} to {new_version}" -def bump_recipe_version(recipe_dir): +def bump_recipe_version(recipe_dir, target_pr_branch_name): recipe_locations = [ ("recipe.yaml", True)] @@ -164,7 +164,9 @@ def bump_recipe_version(recipe_dir): # commit the changes and make a PR pr_title = make_pr_title(name, current_version, new_version) print(f"Making PR for {name} with title: {pr_title}") - make_pr_for_recipe(recipe_dir=recipe_dir, pr_title=pr_title, branch_name=branch_name, automerge=automerge) + make_pr_for_recipe(recipe_dir=recipe_dir, pr_title=pr_title, branch_name=branch_name, + target_branch_name=target_pr_branch_name, + automerge=automerge) return True , current_version, new_version @@ -248,11 +250,27 @@ def empty_context_manager(): # get all opened PRs with user_ctx(): + # get current branch name + current_branch_name = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).decode('utf-8').strip() + + print(f"Current branch name: {current_branch_name}") + # Check for opened PRs and merge them if the CI passed print("Checking opened PRs and merge them if green!") - prs = subprocess.check_output( + all_prs = subprocess.check_output( ['gh', 'pr', 'list', '--author', 'emscripten-forge-bot'], ).decode('utf-8').split('\n') + prs = [] + for pr in all_prs: + + # gh pr view #1479 --json baseRefName -q '.baseRefName' + target_branch_name = subprocess.check_output( + ['gh', 'pr', 'view', pr, '--json', 'baseRefName', '-q', '.baseRefName'] + ).decode('utf-8').strip() + if target_branch_name == current_branch_name: + prs.append(pr) + else: + print(f"skip PR {pr} [ current branch {current_branch_name} but PR is for {target_branch_name}]") all_recipes = [recipe for recipe in Path(recipe_dir).iterdir() if recipe.is_dir()] # map from folder names to recipe-dir @@ -282,7 +300,7 @@ def empty_context_manager(): total_bumped = 0 for recipe in all_recipes: try: - bumped_version, old_version, new_version = bump_recipe_version(recipe) + bumped_version, old_version, new_version = bump_recipe_version(recipe, current_branch_name) if bumped_version: print(f"Bumped {recipe} from {old_version} to {new_version}") total_bumped += int(bumped_version) diff --git a/emci/git_utils.py b/emci/git_utils.py index c61f18f46..8b186e91c 100644 --- a/emci/git_utils.py +++ b/emci/git_utils.py @@ -98,7 +98,7 @@ def automerge_is_enabled(pr): -def make_pr_for_recipe(recipe_dir, pr_title, branch_name, automerge): +def make_pr_for_recipe(recipe_dir, pr_title, target_branch_name, branch_name, automerge): # git commit subprocess.check_output(['git', 'add', recipe_dir]) @@ -111,7 +111,7 @@ def make_pr_for_recipe(recipe_dir, pr_title, branch_name, automerge): # call gh to create a PR subprocess.check_call([ 'gh', 'pr', 'create', - '-B', 'main', + '-B', target_branch_name, '--title', pr_title, '--body', 'Beep-boop-beep! Whistle-whistle-woo!', '--label', 'Automerge' if automerge else 'Needs Tests' From 1f004a09118495de3fdf9cfc37de5e7330a52281 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 10:49:43 +0100 Subject: [PATCH 44/65] version bot for emscripten-3.1.73 -- fixes (#1536) --- emci/bot/bump_recipes_versions.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index e3fef0190..ea5df6cf6 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -261,11 +261,12 @@ def empty_context_manager(): ['gh', 'pr', 'list', '--author', 'emscripten-forge-bot'], ).decode('utf-8').split('\n') prs = [] - for pr in all_prs: - - # gh pr view #1479 --json baseRefName -q '.baseRefName' + for pr_line in all_prs: + if not pr_line: + continue + pr_id = pr_line.split()[0] target_branch_name = subprocess.check_output( - ['gh', 'pr', 'view', pr, '--json', 'baseRefName', '-q', '.baseRefName'] + ['gh', 'pr', 'view', pr_id, '--json', 'baseRefName', '-q', '.baseRefName'] ).decode('utf-8').strip() if target_branch_name == current_branch_name: prs.append(pr) From 348bfbdcdbf415379328b47dfa21f063c2c5068d Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 10:52:24 +0100 Subject: [PATCH 45/65] Update bump_recipes_versions.py --- emci/bot/bump_recipes_versions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index ea5df6cf6..a42f781c6 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -269,9 +269,9 @@ def empty_context_manager(): ['gh', 'pr', 'view', pr_id, '--json', 'baseRefName', '-q', '.baseRefName'] ).decode('utf-8').strip() if target_branch_name == current_branch_name: - prs.append(pr) + prs.append(pr_line) else: - print(f"skip PR {pr} [ current branch {current_branch_name} but PR is for {target_branch_name}]") + print(f"skip PR {pr_id} [ current branch {current_branch_name} but PR is for {target_branch_name}]") all_recipes = [recipe for recipe in Path(recipe_dir).iterdir() if recipe.is_dir()] # map from folder names to recipe-dir From 8bff2d89ed75e4f9b209429993c7194b955f0fcb Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 11:32:18 +0100 Subject: [PATCH 46/65] Bot updates (#1547) * version bot for emscripten-3.1.73 --- .github/workflows/new_versions.yaml | 4 ++-- emci/__main__.py | 4 ++-- emci/bot/bump_recipes_versions.py | 24 +++++++++++++++--------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.github/workflows/new_versions.yaml b/.github/workflows/new_versions.yaml index 8cdb9d197..019dd5ca7 100644 --- a/.github/workflows/new_versions.yaml +++ b/.github/workflows/new_versions.yaml @@ -17,7 +17,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - ref: ${{ matrix.branch }} + ref: main - name: Install micromamba uses: mamba-org/setup-micromamba@v1 @@ -26,6 +26,6 @@ jobs: - name: Determine new package version and open/merge PRs shell: bash -l -eo pipefail {0} - run: python -m emci bot bump-recipes-versions + run: python -m emci bot bump-recipes-versions ${{ matrix.branch }} env: GITHUB_TOKEN: ${{ secrets.BOT_ACCESS_TOKEN }} \ No newline at end of file diff --git a/emci/__main__.py b/emci/__main__.py index 570e92546..d8e3015a1 100644 --- a/emci/__main__.py +++ b/emci/__main__.py @@ -68,10 +68,10 @@ def changed( @bot_app.command() -def bump_recipes_versions(): +def bump_recipes_versions(target_branch_name: str): from .bot.bump_recipes_versions import bump_recipe_versions - bump_recipe_versions(RECIPES_EMSCRIPTEN_DIR) + bump_recipe_versions(RECIPES_EMSCRIPTEN_DIR, target_branch_name) if __name__ == "__main__": app() diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index a42f781c6..1b7f6b847 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -9,7 +9,7 @@ from .next_version import next_version from .url_exists import url_exists from .hash_url import hash_url -from ..git_utils import bot_github_user_ctx, git_branch_ctx, make_pr_for_recipe, automerge_is_enabled,set_bot_user +from ..git_utils import bot_github_user_ctx, git_branch_ctx, make_pr_for_recipe, automerge_is_enabled,set_bot_user,get_current_branch_name import sys import json @@ -226,7 +226,7 @@ def user_ctx(user, email, bypass=False): subprocess.check_output(['git', 'config', '--unset', 'user.email']) -def bump_recipe_versions(recipe_dir, use_bot=True, pr_limit=10): +def bump_recipe_versions(recipe_dir, pr_target_branch, use_bot=True, pr_limit=1): # empty context manager @contextlib.contextmanager @@ -249,11 +249,17 @@ def empty_context_manager(): # get all opened PRs with user_ctx(): + + current_branch_name = get_current_branch_name() + if current_branch_name == pr_target_branch: + print(f"Already on target branch {pr_target_branch}") + else: + print(f"swichting from {current_branch_name} to {pr_target_branch}") + # switch to the target branch + subprocess.run(['git', 'stash'], check=False) + subprocess.check_output(['git', 'checkout', pr_target_branch]) - # get current branch name - current_branch_name = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).decode('utf-8').strip() - - print(f"Current branch name: {current_branch_name}") + assert get_current_branch_name() == pr_target_branch # Check for opened PRs and merge them if the CI passed print("Checking opened PRs and merge them if green!") @@ -265,13 +271,13 @@ def empty_context_manager(): if not pr_line: continue pr_id = pr_line.split()[0] - target_branch_name = subprocess.check_output( + that_pr_target_branch = subprocess.check_output( ['gh', 'pr', 'view', pr_id, '--json', 'baseRefName', '-q', '.baseRefName'] ).decode('utf-8').strip() - if target_branch_name == current_branch_name: + if that_pr_target_branch == pr_target_branch: prs.append(pr_line) else: - print(f"skip PR {pr_id} [ current branch {current_branch_name} but PR is for {target_branch_name}]") + print(f"PR {pr_id} is not targeting {pr_target_branch} [but {that_pr_target_branch}], skipping it") all_recipes = [recipe for recipe in Path(recipe_dir).iterdir() if recipe.is_dir()] # map from folder names to recipe-dir From 031c11f57c8779d5890af829a7ee976871f96aa2 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 11:40:33 +0100 Subject: [PATCH 47/65] Update bump_recipes_versions.py --- emci/bot/bump_recipes_versions.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index 1b7f6b847..db8dfd73b 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -257,7 +257,11 @@ def empty_context_manager(): print(f"swichting from {current_branch_name} to {pr_target_branch}") # switch to the target branch subprocess.run(['git', 'stash'], check=False) + print(f"fetch {pr_target_branch}") + subprocess.check_output(['git', 'fetch', 'origin', pr_target_branch]) + print(f"checkout {pr_target_branch}") subprocess.check_output(['git', 'checkout', pr_target_branch]) + print("checkout done") assert get_current_branch_name() == pr_target_branch From c5dab3f825255bdb9e374ab95587066adde7cee3 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 12:01:33 +0100 Subject: [PATCH 48/65] bot fixes (#1553) --- emci/bot/bump_recipes_versions.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index db8dfd73b..a8361ae55 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -110,8 +110,11 @@ def update_recipe_version(recipe_file, new_version, new_sha256, is_ratler): with open(recipe_file, 'w') as file: YAML().dump(recipe, file) -def make_pr_title(name, old_version, new_version): - return f"Update {name} from {old_version} to {new_version}" +def make_pr_title(name, old_version, new_version, target_pr_branch_name): + if target_pr_branch_name == "main": + return f"Update {name} from {old_version} to {new_version}" + else: + return f"Update {name} from {old_version} to {new_version} [{target_pr_branch_name}]" def bump_recipe_version(recipe_dir, target_pr_branch_name): @@ -151,6 +154,8 @@ def bump_recipe_version(recipe_dir, target_pr_branch_name): branch_name = f"bump-{name}_{current_version}_to_{new_version}" + if target_pr_branch_name != "main": + branch_name = f"{target_pr_branch_name}_{target_pr_branch_name}" with git_branch_ctx(branch_name, stash_current=False): @@ -163,7 +168,7 @@ def bump_recipe_version(recipe_dir, target_pr_branch_name): # commit the changes and make a PR pr_title = make_pr_title(name, current_version, new_version) - print(f"Making PR for {name} with title: {pr_title}") + print(f"Making PR for {name} with title: {pr_title} with target branch {target_pr_branch_name}") make_pr_for_recipe(recipe_dir=recipe_dir, pr_title=pr_title, branch_name=branch_name, target_branch_name=target_pr_branch_name, automerge=automerge) @@ -227,7 +232,7 @@ def user_ctx(user, email, bypass=False): def bump_recipe_versions(recipe_dir, pr_target_branch, use_bot=True, pr_limit=1): - + print(f"Bumping recipes in {recipe_dir} to {pr_target_branch}") # empty context manager @contextlib.contextmanager def empty_context_manager(): @@ -264,6 +269,7 @@ def empty_context_manager(): print("checkout done") assert get_current_branch_name() == pr_target_branch + current_branch_name = target_branch_name # Check for opened PRs and merge them if the CI passed print("Checking opened PRs and merge them if green!") @@ -311,7 +317,7 @@ def empty_context_manager(): total_bumped = 0 for recipe in all_recipes: try: - bumped_version, old_version, new_version = bump_recipe_version(recipe, current_branch_name) + bumped_version, old_version, new_version = bump_recipe_version(recipe, pr_target_branch) if bumped_version: print(f"Bumped {recipe} from {old_version} to {new_version}") total_bumped += int(bumped_version) From ac6b08b5f7a7dcef6d290d9511b6ff1f98c1cc52 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 12:05:43 +0100 Subject: [PATCH 49/65] Update bump_recipes_versions.py --- emci/bot/bump_recipes_versions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index a8361ae55..54aa91041 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -269,7 +269,7 @@ def empty_context_manager(): print("checkout done") assert get_current_branch_name() == pr_target_branch - current_branch_name = target_branch_name + current_branch_name = pr_target_branch # Check for opened PRs and merge them if the CI passed print("Checking opened PRs and merge them if green!") From a27721c67b552d729afdbbcae9ecfc726352ee6a Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 12:08:20 +0100 Subject: [PATCH 50/65] Update bump_recipes_versions.py --- emci/bot/bump_recipes_versions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index 54aa91041..203a08fc8 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -167,7 +167,7 @@ def bump_recipe_version(recipe_dir, target_pr_branch_name): update_recipe_version(recipe_file, new_version=new_version, new_sha256=new_sha256, is_ratler=is_rattler) # commit the changes and make a PR - pr_title = make_pr_title(name, current_version, new_version) + pr_title = make_pr_title(name, current_version, new_version, target_pr_branch_name) print(f"Making PR for {name} with title: {pr_title} with target branch {target_pr_branch_name}") make_pr_for_recipe(recipe_dir=recipe_dir, pr_title=pr_title, branch_name=branch_name, target_branch_name=target_pr_branch_name, From 8e9cd8a90acd953d6ebe8e5e387c85d22f3e206f Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 12:13:00 +0100 Subject: [PATCH 51/65] Update bump_recipes_versions.py --- emci/bot/bump_recipes_versions.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index 203a08fc8..beb10ab6b 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -153,9 +153,7 @@ def bump_recipe_version(recipe_dir, target_pr_branch_name): automerge = True - branch_name = f"bump-{name}_{current_version}_to_{new_version}" - if target_pr_branch_name != "main": - branch_name = f"{target_pr_branch_name}_{target_pr_branch_name}" + branch_name = f"bump-{name}_{current_version}_to_{new_version}_for_{target_pr_branch_name}" with git_branch_ctx(branch_name, stash_current=False): @@ -231,7 +229,7 @@ def user_ctx(user, email, bypass=False): subprocess.check_output(['git', 'config', '--unset', 'user.email']) -def bump_recipe_versions(recipe_dir, pr_target_branch, use_bot=True, pr_limit=1): +def bump_recipe_versions(recipe_dir, pr_target_branch, use_bot=True, pr_limit=10): print(f"Bumping recipes in {recipe_dir} to {pr_target_branch}") # empty context manager @contextlib.contextmanager From f94d36c538c754eab11208eebc7a4eb578ce4cf1 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 12:23:18 +0100 Subject: [PATCH 52/65] Update git_utils.py --- emci/git_utils.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/emci/git_utils.py b/emci/git_utils.py index 8b186e91c..fe57b89bc 100644 --- a/emci/git_utils.py +++ b/emci/git_utils.py @@ -108,11 +108,21 @@ def make_pr_for_recipe(recipe_dir, pr_title, target_branch_name, branch_name, au # gh set default repo subprocess.check_call(['gh', 'repo', 'set-default', 'emscripten-forge/recipes'], cwd=os.getcwd()) + + args = ['gh', 'pr', 'create', + '-B', target_branch_name, + '--title', pr_title, '--body', 'Beep-boop-beep! Whistle-whistle-woo!' + '--label', 'Automerge' if automerge else 'Needs Tests' + ] + if target_branch_name == 'main': + extra_label = "3.1.45" + elif target_branch_name == "emscripten-3.1.73": + extra_label = "3.1.73" + else: + extra_label = None + + if extra_label is not None: + args.extend(['--label', extra_label]) + # call gh to create a PR - subprocess.check_call([ - 'gh', 'pr', 'create', - '-B', target_branch_name, - '--title', pr_title, - '--body', 'Beep-boop-beep! Whistle-whistle-woo!', - '--label', 'Automerge' if automerge else 'Needs Tests' - ], cwd=os.getcwd()) \ No newline at end of file + subprocess.check_call(args, cwd=os.getcwd()) From ec6459342868fccc26c8746b61cd1cdcbd3e6b0c Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 12:41:13 +0100 Subject: [PATCH 53/65] Update git_utils.py --- emci/git_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emci/git_utils.py b/emci/git_utils.py index fe57b89bc..809f04c13 100644 --- a/emci/git_utils.py +++ b/emci/git_utils.py @@ -111,7 +111,7 @@ def make_pr_for_recipe(recipe_dir, pr_title, target_branch_name, branch_name, au args = ['gh', 'pr', 'create', '-B', target_branch_name, - '--title', pr_title, '--body', 'Beep-boop-beep! Whistle-whistle-woo!' + '--title', pr_title, '--body', 'Beep-boop-beep! Whistle-whistle-woo!', '--label', 'Automerge' if automerge else 'Needs Tests' ] if target_branch_name == 'main': From a6bcc7071e545cf855d9bfad9c55d512e9e238b3 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Tue, 14 Jan 2025 13:02:00 +0100 Subject: [PATCH 54/65] Update bump_recipes_versions.py (#1581) --- emci/bot/bump_recipes_versions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index beb10ab6b..3f673136c 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -229,7 +229,7 @@ def user_ctx(user, email, bypass=False): subprocess.check_output(['git', 'config', '--unset', 'user.email']) -def bump_recipe_versions(recipe_dir, pr_target_branch, use_bot=True, pr_limit=10): +def bump_recipe_versions(recipe_dir, pr_target_branch, use_bot=True, pr_limit=20): print(f"Bumping recipes in {recipe_dir} to {pr_target_branch}") # empty context manager @contextlib.contextmanager From 50f46c6ea1cfdded08ab0fae898107fbf2f088a3 Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Tue, 14 Jan 2025 20:12:37 +0100 Subject: [PATCH 55/65] Update r-base (#1631) Build cairo without pthread --- .../0014-Build-cairo-without-pthread.patch | 22 +++++++++++++++++++ recipes/recipes_emscripten/r-base/recipe.yaml | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 recipes/recipes_emscripten/r-base/patches/0014-Build-cairo-without-pthread.patch diff --git a/recipes/recipes_emscripten/r-base/patches/0014-Build-cairo-without-pthread.patch b/recipes/recipes_emscripten/r-base/patches/0014-Build-cairo-without-pthread.patch new file mode 100644 index 000000000..b9ab0b670 --- /dev/null +++ b/recipes/recipes_emscripten/r-base/patches/0014-Build-cairo-without-pthread.patch @@ -0,0 +1,22 @@ +From c94f49cd8aa0d91b38cd0dc3872c42425822cbb0 Mon Sep 17 00:00:00 2001 +From: Isabel Paredes +Date: Tue, 14 Jan 2025 19:49:23 +0100 +Subject: [PATCH] Build cairo without pthread + +--- + configure | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure b/configure +index 6d4d68d..83ce92a 100755 +--- a/configure ++++ b/configure +@@ -50966,6 +50966,8 @@ printf "%s\n" "$as_me: using static pangocairo" >&6;} + CAIROX11_LIBS=`"${PKG_CONFIG}" --libs ${xmodlist}` + fi + ++CAIRO_LIBS=$(echo $CAIRO_LIBS | sed 's/-pthread//g' | sed 's/-sPTHREAD_POOL_SIZE=4//g') ++ + CPPFLAGS="${CPPFLAGS} ${CAIRO_CPPFLAGS}" + LIBS="${LIBS} ${CAIRO_LIBS}" + diff --git a/recipes/recipes_emscripten/r-base/recipe.yaml b/recipes/recipes_emscripten/r-base/recipe.yaml index 5bcd915d0..a77136405 100644 --- a/recipes/recipes_emscripten/r-base/recipe.yaml +++ b/recipes/recipes_emscripten/r-base/recipe.yaml @@ -23,9 +23,10 @@ source: - patches/0011-Use-cross_libraries-script-when-cross-compiling.patch - patches/0012-Install-wasm-files.patch - patches/0013-Remove-png-lib-from-bitmap-libs.patch + - patches/0014-Build-cairo-without-pthread.patch build: - number: 5 + number: 6 requirements: build: From f0e3de685d7f9b5f85f645fa904eeb2ecc66e73d Mon Sep 17 00:00:00 2001 From: Anutosh Bhat Date: Wed, 15 Jan 2025 11:21:41 +0530 Subject: [PATCH 56/65] Update cppinterop on main (#1636) * Update cppinterop on main --- .../__clang_Interpreter_SetValueNoAlloc.patch | 30 +++++++++++++++---- .../recipes_emscripten/cppinterop/recipe.yaml | 2 +- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/recipes/recipes_emscripten/cppinterop/patches/__clang_Interpreter_SetValueNoAlloc.patch b/recipes/recipes_emscripten/cppinterop/patches/__clang_Interpreter_SetValueNoAlloc.patch index d4cd6b3b9..9e214b22e 100644 --- a/recipes/recipes_emscripten/cppinterop/patches/__clang_Interpreter_SetValueNoAlloc.patch +++ b/recipes/recipes_emscripten/cppinterop/patches/__clang_Interpreter_SetValueNoAlloc.patch @@ -1,16 +1,34 @@ diff --git a/lib/Interpreter/CMakeLists.txt b/lib/Interpreter/CMakeLists.txt -index 103b331..8d0dd97 100644 +index 103b331..0eb356c 100644 --- a/lib/Interpreter/CMakeLists.txt +++ b/lib/Interpreter/CMakeLists.txt -@@ -17,6 +17,11 @@ if(EMSCRIPTEN) - LINK_LIBS - clangInterpreter - ) +@@ -4,18 +4,23 @@ if(EMSCRIPTEN) + set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-s SIDE_MODULE=1") + set(CMAKE_STRIP FALSE) + +- add_llvm_library(clangCppInterOp +- SHARED +- ++ add_library(clangCppInterOp SHARED + CppInterOp.cpp + CXCppInterOp.cpp + DynamicLibraryManager.cpp + DynamicLibraryManagerSymbol.cpp + Paths.cpp ++ ) + +- # Additional libraries from Clang and LLD +- LINK_LIBS +- clangInterpreter ++ target_link_libraries(clangCppInterOp clangInterpreter) + + target_link_options(clangCppInterOp PRIVATE + PUBLIC "SHELL: -s WASM_BIGINT" + PUBLIC "SHELL: -Wl,--export=__clang_Interpreter_SetValueNoAlloc" + ) ++ ++ install(TARGETS clangCppInterOp ++ LIBRARY DESTINATION lib + ) else() set(LLVM_LINK_COMPONENTS - ${LLVM_TARGETS_TO_BUILD} diff --git a/recipes/recipes_emscripten/cppinterop/recipe.yaml b/recipes/recipes_emscripten/cppinterop/recipe.yaml index 4cf6c13dc..6b0f6fa4d 100644 --- a/recipes/recipes_emscripten/cppinterop/recipe.yaml +++ b/recipes/recipes_emscripten/cppinterop/recipe.yaml @@ -12,7 +12,7 @@ source: - patches/__clang_Interpreter_SetValueNoAlloc.patch build: - number: 1 + number: 2 requirements: build: From 8de501a8a3f892add8bbcdabd0fbd29a0a6d7c72 Mon Sep 17 00:00:00 2001 From: Anutosh Bhat Date: Wed, 15 Jan 2025 17:36:05 +0530 Subject: [PATCH 57/65] Add recipe for xeus-r (#1451) * Add recipe for xeus-r * Update recipe.yaml * Update recipes/recipes_emscripten/xeus-r/recipe.yaml Co-authored-by: martinRenou * Update sha * Update build.sh * Remove copying * Update tests --------- Co-authored-by: martinRenou Co-authored-by: Isabel Paredes --- recipes/recipes_emscripten/xeus-r/build.sh | 25 ++++++++ recipes/recipes_emscripten/xeus-r/recipe.yaml | 63 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 recipes/recipes_emscripten/xeus-r/build.sh create mode 100644 recipes/recipes_emscripten/xeus-r/recipe.yaml diff --git a/recipes/recipes_emscripten/xeus-r/build.sh b/recipes/recipes_emscripten/xeus-r/build.sh new file mode 100644 index 000000000..51c39650f --- /dev/null +++ b/recipes/recipes_emscripten/xeus-r/build.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -eux + +# Create build directory +mkdir -p build +cd build + +# Set up the environment variables for cross-compiling to WASM +export CMAKE_PREFIX_PATH=$PREFIX +export CMAKE_SYSTEM_PREFIX_PATH=$PREFIX + +# Configure step with Emscripten's emcmake +emcmake cmake ${CMAKE_ARGS} -S .. -B . \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DXEUS_R_EMSCRIPTEN_WASM_BUILD=ON \ + -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON + +# Build step with emmake +emmake make -j1 + +# Install step +emmake make install diff --git a/recipes/recipes_emscripten/xeus-r/recipe.yaml b/recipes/recipes_emscripten/xeus-r/recipe.yaml new file mode 100644 index 000000000..f5fae6d8b --- /dev/null +++ b/recipes/recipes_emscripten/xeus-r/recipe.yaml @@ -0,0 +1,63 @@ +context: + version: 0.3.0 + name: xeus-r + r_base_version: 4.4.1 + +package: + name: ${{ name }} + version: ${{ version }} + +source: + url: https://github.com/jupyter-xeus/xeus-r/archive/refs/tags/${{ version }}.tar.gz + sha256: f0b4308b5a9ec1e3acf8f31fb20897f3814cfea2403be5ad79fe2617652a963c + +build: + number: 0 + +requirements: + build: + - ${{ compiler("cxx") }} + - cmake + - make # [unix] + host: + - nlohmann_json + - xeus-lite >=3.0.0,<4.0 + - xeus >=5.0.0,<6.0 + - pcre2>=10.43 + - zlib>=1.2.13 + - libflang # for FortranRuntime + - xz # for lzma + - bzip2 + - libiconv + - r-base >= ${{ r_base_version }} + run: + - r-base >= ${{ r_base_version }} + - r-rlang + - r-evaluate + - r-jsonlite + - r-glue + - r-cli >=3.6.3 + - r-repr + - r-IRdisplay + - r-ggplot2 + - r-htmltools + - r-munsell >=0.5.1 + - r-colorspace + +tests: +- package_contents: + bin: + - xr.js + - xr.wasm + +about: + license: GPL-3.0-only + license_family: GPL + license_file: LICENSE + summary: Jupyter kernel for the R programming language + homepage: https://github.com/jupyter-xeus/xeus-r + +extra: + recipe-maintainers: + - IsabelParedes + - anutosh491 From 3afcff2bc202103545a9c4278e0133a0bdf4d827 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Thu, 16 Jan 2025 08:13:59 +0100 Subject: [PATCH 58/65] python file symlinks in compiler [3.1.45] (#1639) * python file symlinks in compiler * bump version --- .../emscripten_emscripten-wasm32/build_compiler_package.sh | 7 +++++++ recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/recipes/recipes/emscripten_emscripten-wasm32/build_compiler_package.sh b/recipes/recipes/emscripten_emscripten-wasm32/build_compiler_package.sh index 01803207e..a399cd118 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/build_compiler_package.sh +++ b/recipes/recipes/emscripten_emscripten-wasm32/build_compiler_package.sh @@ -46,4 +46,11 @@ for file in $PREFIX/opt/emsdk/upstream/emscripten/*; do echo "Linking $file" ln -sf $file $PREFIX/bin/ fi + + # Check if the ends with .py + if [[ $file == *.py ]]; then + # Create a symbolic link in the $PREFIX/bin directory + echo "Linking $file" + ln -sf $file $PREFIX/bin/ + fi done diff --git a/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml b/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml index 2cf9969da..aa70fe2a5 100644 --- a/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml +++ b/recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml @@ -3,7 +3,7 @@ context: version: 3.1.45 build: - number: 32 + number: 33 outputs: - package: From b2f941badb48a44543d1d6025cfa9fcb3d8c2c25 Mon Sep 17 00:00:00 2001 From: Thorsten Beier Date: Thu, 16 Jan 2025 10:20:47 +0100 Subject: [PATCH 59/65] bot (#1644) --- emci/bot/bump_recipes_versions.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/emci/bot/bump_recipes_versions.py b/emci/bot/bump_recipes_versions.py index 3f673136c..1febc2e52 100644 --- a/emci/bot/bump_recipes_versions.py +++ b/emci/bot/bump_recipes_versions.py @@ -295,11 +295,16 @@ def empty_context_manager(): prs_id = [line.split()[0] for line in prs if line] prs_packages = [line.split()[2] for line in prs if line] - # Merge PRs if possible - for pr,pr_pkg in zip(prs_id, prs_packages): - # get the recipe dir - recipe_dir = recipe_name_to_recipe_dir.get(pr_pkg) - try_to_merge_pr(pr, recipe_dir=recipe_dir) + # Merge PRs if possible (only for main atm) + if pr_target_branch == "main": + for pr,pr_pkg in zip(prs_id, prs_packages): + # get the recipe dir + recipe_dir = recipe_name_to_recipe_dir.get(pr_pkg) + + try: + try_to_merge_pr(pr, recipe_dir=recipe_dir) + except Exception as e: + print(f"Error in {pr}: {e}") # only recipes for which there is no opened PR all_recipes = [recipe for recipe in all_recipes if recipe.name not in prs_packages] From 699941485a7b71e060931f92d3f7cc506bb67ccd Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Thu, 16 Jan 2025 15:15:46 +0100 Subject: [PATCH 60/65] Add r-yaml (#1651) --- recipes/recipes_emscripten/r-yaml/recipe.yaml | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 recipes/recipes_emscripten/r-yaml/recipe.yaml diff --git a/recipes/recipes_emscripten/r-yaml/recipe.yaml b/recipes/recipes_emscripten/r-yaml/recipe.yaml new file mode 100644 index 000000000..b3e6fdd5d --- /dev/null +++ b/recipes/recipes_emscripten/r-yaml/recipe.yaml @@ -0,0 +1,48 @@ +context: + name: r-yaml + version: 2.3.10 + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: e236d42d366e361d4855aa4f520260debd53a31e4786442b94770b045da02a6d + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + host: + - r-base >= ${{ r_base_version }} + run: + - r-base >= ${{ r_base_version }} + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://github.com/vubiostat/r-yaml + license: BSD-3-Clause + license_file: LICENSE + summary: R package for converting objects to and from YAML + description: | + Implements the 'libyaml' 'YAML' 1.1 parser and emitter + () for R. + +extra: + recipe-maintainers: + - IsabelParedes From bc5043d06acb626384656b322b3c3501cb709525 Mon Sep 17 00:00:00 2001 From: Isabel Paredes Date: Thu, 16 Jan 2025 16:14:29 +0100 Subject: [PATCH 61/65] Add r-xfun (#1653) --- recipes/recipes_emscripten/r-xfun/recipe.yaml | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 recipes/recipes_emscripten/r-xfun/recipe.yaml diff --git a/recipes/recipes_emscripten/r-xfun/recipe.yaml b/recipes/recipes_emscripten/r-xfun/recipe.yaml new file mode 100644 index 000000000..158f92edb --- /dev/null +++ b/recipes/recipes_emscripten/r-xfun/recipe.yaml @@ -0,0 +1,49 @@ +context: + name: r-xfun + version: 0.50 + r_base_version: 4.4.2 + +source: + url: + - https://cran.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + - https://cloud.r-project.org/src/contrib/${{ name[2:] }}_${{ version }}.tar.gz + sha256: 4d0c9a983ac67e7f82592273567313ba836dcd832386f30b4409ecd5b3f2410a + +build: + number: 0 + script: $R CMD INSTALL $R_ARGS --no-byte-compile . + +outputs: +- package: + name: ${{ name }} + version: ${{ version }} + build: + files: + - lib/R/library/${{ name[2:] }}/* + requirements: + build: + - cross-r-base >= ${{ r_base_version }} + - ${{ compiler('c') }} + host: + - r-base >= ${{ r_base_version }} + run: + - r-base >= ${{ r_base_version }} + + tests: + - package_contents: + lib: + - R/library/${{ name[2:] }}/libs/${{ name[2:] }}.so + +about: + homepage: https://git.yihui.org/xfun/ + repository: https://github.com/yihui/xfun + license: MIT + license_file: LICENSE + summary: Miscellaneous R functions + description: | + Miscellaneous functions commonly used in other packages maintained by + 'Yihui Xie'. + +extra: + recipe-maintainers: + - IsabelParedes From 99f38fed7cadb3bc8fdc9f242520da2e55030fb7 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Thu, 16 Jan 2025 22:08:25 +0100 Subject: [PATCH 62/65] Removed undefined symbols exported by cairo --- .../{glib.patch => 0001-glib_wasm.patch} | 0 .../0002-undefined_symbols_cairo.patch | 278 ++++++++++++++++++ recipes/recipes_emscripten/glib/recipe.yaml | 5 +- 3 files changed, 281 insertions(+), 2 deletions(-) rename recipes/recipes_emscripten/glib/patches/{glib.patch => 0001-glib_wasm.patch} (100%) create mode 100644 recipes/recipes_emscripten/glib/patches/0002-undefined_symbols_cairo.patch diff --git a/recipes/recipes_emscripten/glib/patches/glib.patch b/recipes/recipes_emscripten/glib/patches/0001-glib_wasm.patch similarity index 100% rename from recipes/recipes_emscripten/glib/patches/glib.patch rename to recipes/recipes_emscripten/glib/patches/0001-glib_wasm.patch diff --git a/recipes/recipes_emscripten/glib/patches/0002-undefined_symbols_cairo.patch b/recipes/recipes_emscripten/glib/patches/0002-undefined_symbols_cairo.patch new file mode 100644 index 000000000..9ccf3f849 --- /dev/null +++ b/recipes/recipes_emscripten/glib/patches/0002-undefined_symbols_cairo.patch @@ -0,0 +1,278 @@ +diff --git a/gio/gappinfo.c b/gio/gappinfo.c +index 8e7f17a97..5d99e8503 100644 +--- a/gio/gappinfo.c ++++ b/gio/gappinfo.c +@@ -796,6 +796,7 @@ default_for_type_data_free (DefaultForTypeData *data) + g_free (data); + } + ++#ifndef G_PLATFORM_WASM + static void + get_default_for_type_thread (GTask *task, + gpointer object, +@@ -911,6 +912,7 @@ g_app_info_get_default_for_uri_scheme_async (const char *uri_scheme, + g_task_run_in_thread (task, get_default_for_scheme_thread); + g_object_unref (task); + } ++#endif + + /** + * g_app_info_get_default_for_uri_scheme_finish: +@@ -966,6 +968,7 @@ g_app_info_get_default_for_type_finish (GAsyncResult *result, + return g_task_propagate_pointer (G_TASK (result), error); + } + ++#ifndef G_PLATFORM_WASM + /** + * g_app_info_launch_default_for_uri: + * @uri: the uri to show +@@ -1037,6 +1040,7 @@ g_app_info_launch_default_for_uri (const char *uri, + + return res; + } ++#endif + + typedef struct + { +@@ -1194,6 +1198,7 @@ launch_default_app_for_uri_cb (GObject *object, + } + } + ++#ifndef G_PLATFORM_WASM + /** + * g_app_info_launch_default_for_uri_async: + * @uri: the uri to show +@@ -1255,6 +1260,7 @@ g_app_info_launch_default_for_uri_async (const char *uri, + + g_free (uri_scheme); + } ++#endif + + /** + * g_app_info_launch_default_for_uri_finish: +diff --git a/gio/gappinfo.h b/gio/gappinfo.h +index 93974db7f..301836426 100644 +--- a/gio/gappinfo.h ++++ b/gio/gappinfo.h +@@ -236,6 +236,8 @@ GList * g_app_info_get_fallback_for_type (const gchar *content_type); + + GIO_AVAILABLE_IN_ALL + void g_app_info_reset_type_associations (const char *content_type); ++ ++#ifndef G_PLATFORM_WASM + GIO_AVAILABLE_IN_ALL + GAppInfo *g_app_info_get_default_for_type (const char *content_type, + gboolean must_support_uris); +@@ -245,9 +247,11 @@ void g_app_info_get_default_for_type_async (const char *content_t + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); ++#endif + GIO_AVAILABLE_IN_2_74 + GAppInfo *g_app_info_get_default_for_type_finish (GAsyncResult *result, + GError **error); ++#ifndef G_PLATFORM_WASM + GIO_AVAILABLE_IN_ALL + GAppInfo *g_app_info_get_default_for_uri_scheme (const char *uri_scheme); + +@@ -256,14 +260,16 @@ void g_app_info_get_default_for_uri_scheme_async (const char *uri_ + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); ++#endif + GIO_AVAILABLE_IN_2_74 + GAppInfo *g_app_info_get_default_for_uri_scheme_finish (GAsyncResult *result, + GError **error); +- ++#ifndef G_PLATFORM_WASM + GIO_AVAILABLE_IN_ALL + gboolean g_app_info_launch_default_for_uri (const char *uri, + GAppLaunchContext *context, + GError **error); ++#endif + + GIO_AVAILABLE_IN_2_50 + void g_app_info_launch_default_for_uri_async (const char *uri, +diff --git a/gio/gapplicationimpl-dbus.c b/gio/gapplicationimpl-dbus.c +index f9bf28c40..3cad72411 100644 +--- a/gio/gapplicationimpl-dbus.c ++++ b/gio/gapplicationimpl-dbus.c +@@ -941,7 +941,7 @@ g_dbus_command_line_printerr_literal (GApplicationCommandLine *cmdline, + static GInputStream * + g_dbus_command_line_get_stdin (GApplicationCommandLine *cmdline) + { +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) && !defined(G_PLATFORM_WASM) + GDBusCommandLine *gdbcl = (GDBusCommandLine *) cmdline; + GInputStream *result = NULL; + GDBusMessage *message; +diff --git a/gio/gfile.c b/gio/gfile.c +index 431599bdd..d5d59504e 100644 +--- a/gio/gfile.c ++++ b/gio/gfile.c +@@ -7644,6 +7644,7 @@ g_file_mount_enclosing_volume_finish (GFile *location, + * Utility functions * + ********************************************/ + ++#ifndef G_PLATFORM_WASM + /** + * g_file_query_default_handler: + * @file: a #GFile to open +@@ -7717,6 +7718,7 @@ g_file_query_default_handler (GFile *file, + _("No application is registered as handling this file")); + return NULL; + } ++#endif + + static void + query_default_handler_query_app_info_for_type_cb (GObject *object, +@@ -7748,6 +7750,7 @@ query_default_handler_query_app_info_for_type_cb (GObject *object, + g_object_unref (task); + } + ++#ifndef G_PLATFORM_WASM + static void + query_default_handler_query_info_cb (GObject *object, + GAsyncResult *result, +@@ -7873,6 +7876,7 @@ g_file_query_default_handler_async (GFile *file, + + g_free (uri_scheme); + } ++#endif + + /** + * g_file_query_default_handler_finish: +diff --git a/gio/gfile.h b/gio/gfile.h +index b45689ee6..12b9c4e83 100644 +--- a/gio/gfile.h ++++ b/gio/gfile.h +@@ -1243,10 +1243,13 @@ gboolean g_file_poll_mountable_finish (GFile + + /* Utilities */ + ++#ifndef G_PLATFORM_WASM + GIO_AVAILABLE_IN_ALL + GAppInfo *g_file_query_default_handler (GFile *file, + GCancellable *cancellable, + GError **error); ++#endif ++ + GIO_AVAILABLE_IN_2_60 + void g_file_query_default_handler_async (GFile *file, + int io_priority, +diff --git a/gio/gtestdbus.c b/gio/gtestdbus.c +index 24caf661c..45962cc04 100644 +--- a/gio/gtestdbus.c ++++ b/gio/gtestdbus.c +@@ -631,6 +631,7 @@ make_pipe (gint pipe_fds[2], + #endif + } + ++#ifndef G_PLATFORM_WASM + static void + start_daemon (GTestDBus *self) + { +@@ -715,6 +716,7 @@ start_daemon (GTestDBus *self) + g_free (config_path); + g_free (config_arg); + } ++#endif + + static void + stop_daemon (GTestDBus *self) +@@ -801,6 +803,7 @@ g_test_dbus_add_service_dir (GTestDBus *self, + g_ptr_array_add (self->priv->service_dirs, g_strdup (path)); + } + ++#ifndef G_PLATFORM_WASM + /** + * g_test_dbus_up: + * @self: a #GTestDBus +@@ -827,7 +830,7 @@ g_test_dbus_up (GTestDBus *self) + g_setenv ("DBUS_SESSION_BUS_ADDRESS", self->priv->bus_address, TRUE); + self->priv->up = TRUE; + } +- ++#endif + + /** + * g_test_dbus_stop: +diff --git a/gio/gunixconnection.c b/gio/gunixconnection.c +index e2c3a8145..dea3f56ad 100644 +--- a/gio/gunixconnection.c ++++ b/gio/gunixconnection.c +@@ -82,7 +82,7 @@ g_unix_connection_send_fd (GUnixConnection *connection, + GCancellable *cancellable, + GError **error) + { +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) && !defined(G_PLATFORM_WASM) + GSocketControlMessage *scm; + GSocket *socket; + +diff --git a/glib/giochannel.h b/glib/giochannel.h +index 913019cd4..e980ef1e6 100644 +--- a/glib/giochannel.h ++++ b/glib/giochannel.h +@@ -302,6 +302,7 @@ GQuark g_io_channel_error_quark (void); + GLIB_AVAILABLE_IN_ALL + GIOChannelError g_io_channel_error_from_errno (gint en); + ++#ifndef G_PLATFORM_WASM + /* On Unix, IO channels created with this function for any file + * descriptor or socket. + * +@@ -324,7 +325,7 @@ GLIB_AVAILABLE_IN_ALL + GIOChannel* g_io_channel_unix_new (int fd); + GLIB_AVAILABLE_IN_ALL + gint g_io_channel_unix_get_fd (GIOChannel *channel); +- ++#endif + + /* Hook for GClosure / GSource integration. Don't touch */ + GLIB_VAR GSourceFuncs g_io_watch_funcs; +diff --git a/glib/gtestutils.c b/glib/gtestutils.c +index 5c5f9051f..5181f460f 100644 +--- a/glib/gtestutils.c ++++ b/glib/gtestutils.c +@@ -3668,6 +3668,7 @@ child_read (GIOChannel *io, GIOCondition cond, gpointer user_data) + return TRUE; + } + ++#ifndef G_PLATFORM_WASM + static void + wait_for_child (GPid pid, + int stdout_fd, gboolean echo_stdout, +@@ -3748,6 +3749,7 @@ wait_for_child (GPid pid, + g_clear_pointer (&data.stdout_io, g_io_channel_unref); + g_clear_pointer (&data.stderr_io, g_io_channel_unref); + } ++#endif + + /** + * g_test_trap_fork: +@@ -3797,7 +3799,7 @@ gboolean + g_test_trap_fork (guint64 usec_timeout, + GTestTrapFlags test_trap_flags) + { +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) && !defined(G_PLATFORM_WASM) + int stdout_pipe[2] = { -1, -1 }; + int stderr_pipe[2] = { -1, -1 }; + int errsv; +@@ -3864,6 +3866,7 @@ g_test_trap_fork (guint64 usec_timeout, + } + G_GNUC_END_IGNORE_DEPRECATIONS + ++#ifndef G_PLATFORM_WASM + /** + * g_test_trap_subprocess: + * @test_path: (nullable): Test to run in a subprocess +@@ -4065,6 +4068,7 @@ g_test_trap_subprocess_with_envp (const char *test_path, + stderr_fd, !!(test_flags & G_TEST_SUBPROCESS_INHERIT_STDERR), + usec_timeout); + } ++#endif + + /** + * g_test_subprocess: diff --git a/recipes/recipes_emscripten/glib/recipe.yaml b/recipes/recipes_emscripten/glib/recipe.yaml index 15302f1d9..9ebfd529a 100644 --- a/recipes/recipes_emscripten/glib/recipe.yaml +++ b/recipes/recipes_emscripten/glib/recipe.yaml @@ -12,10 +12,11 @@ source: sha256: 9f23a9de803c695bbfde7e37d6626b18b9a83869689dd79019bf3ae66c3e6771 # Patch from https://gist.github.com/kleisauke/acfa1c09522705efa5eb0541d2d00887 patches: - - patches/glib.patch + - patches/0001-glib_wasm.patch + - patches/0002-undefined_symbols_cairo.patch build: - number: 1 + number: 2 requirements: build: From 39ddfe456e5a8e029acc02b527c1524f9afd72c0 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Thu, 16 Jan 2025 22:24:56 +0100 Subject: [PATCH 63/65] Rebuild with new build of glib --- recipes/recipes_emscripten/cairo/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/cairo/recipe.yaml b/recipes/recipes_emscripten/cairo/recipe.yaml index a27db4f12..e1b60cc74 100644 --- a/recipes/recipes_emscripten/cairo/recipe.yaml +++ b/recipes/recipes_emscripten/cairo/recipe.yaml @@ -11,7 +11,7 @@ source: sha256: 243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 build: - number: 2 + number: 3 requirements: build: @@ -55,4 +55,4 @@ about: extra: recipe-maintainers: - IsabelParedes - - anutosh491 \ No newline at end of file + - anutosh491 From f6c057f1243fb9df635eec30f48ad0ca159d1558 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Thu, 16 Jan 2025 22:47:05 +0100 Subject: [PATCH 64/65] rebuild r-base with new builds of glib and cairo --- recipes/recipes_emscripten/r-base/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/recipes_emscripten/r-base/recipe.yaml b/recipes/recipes_emscripten/r-base/recipe.yaml index a77136405..9a70b39ef 100644 --- a/recipes/recipes_emscripten/r-base/recipe.yaml +++ b/recipes/recipes_emscripten/r-base/recipe.yaml @@ -26,7 +26,7 @@ source: - patches/0014-Build-cairo-without-pthread.patch build: - number: 6 + number: 7 requirements: build: From 799a3b3116ff2b2d50755a36b19858b26fa7f6df Mon Sep 17 00:00:00 2001 From: Anutosh Bhat Date: Fri, 17 Jan 2025 11:40:57 +0530 Subject: [PATCH 65/65] Update llvm from 19.1.6 to 19.1.7 (#1638) --- recipes/recipes_emscripten/llvm/recipe.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/recipes_emscripten/llvm/recipe.yaml b/recipes/recipes_emscripten/llvm/recipe.yaml index 2e92fd7b8..6457e291c 100644 --- a/recipes/recipes_emscripten/llvm/recipe.yaml +++ b/recipes/recipes_emscripten/llvm/recipe.yaml @@ -1,5 +1,5 @@ context: - version: 19.1.6 + version: 19.1.7 package: name: llvm @@ -8,13 +8,13 @@ package: source: url: https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-${{ version }}.tar.gz - sha256: f07fdcbb27b2b67aa95e5ddadf45406b33228481c250e65175066d36536a1ee2 + sha256: 59abea1c22e64933fad4de1671a61cdb934098793c7a31b333ff58dc41bff36c patches: - patches/cross_compile.patch - patches/shift_temporary_files_to_tmp_dir.patch build: - number: 1 + number: 0 requirements: build: