From 595d83eb0b68f8208cdf7643fe470e9742d99a47 Mon Sep 17 00:00:00 2001 From: Yanshu Wang Date: Sat, 25 Jul 2026 12:27:54 +0800 Subject: [PATCH 1/9] add eclib, sympow, sirocco, bliss --- recipes/recipes_emscripten/bliss/build.sh | 29 +++++++++++ recipes/recipes_emscripten/bliss/recipe.yaml | 44 +++++++++++++++++ recipes/recipes_emscripten/eclib/build.sh | 22 +++++++++ recipes/recipes_emscripten/eclib/recipe.yaml | 48 +++++++++++++++++++ recipes/recipes_emscripten/sirocco/build.sh | 18 +++++++ .../recipes_emscripten/sirocco/recipe.yaml | 41 ++++++++++++++++ recipes/recipes_emscripten/sympow/build.sh | 25 ++++++++++ recipes/recipes_emscripten/sympow/recipe.yaml | 43 +++++++++++++++++ 8 files changed, 270 insertions(+) create mode 100644 recipes/recipes_emscripten/bliss/build.sh create mode 100644 recipes/recipes_emscripten/bliss/recipe.yaml create mode 100644 recipes/recipes_emscripten/eclib/build.sh create mode 100644 recipes/recipes_emscripten/eclib/recipe.yaml create mode 100644 recipes/recipes_emscripten/sirocco/build.sh create mode 100644 recipes/recipes_emscripten/sirocco/recipe.yaml create mode 100644 recipes/recipes_emscripten/sympow/build.sh create mode 100644 recipes/recipes_emscripten/sympow/recipe.yaml diff --git a/recipes/recipes_emscripten/bliss/build.sh b/recipes/recipes_emscripten/bliss/build.sh new file mode 100644 index 00000000000..3492d0ca3cb --- /dev/null +++ b/recipes/recipes_emscripten/bliss/build.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -euxo pipefail + +export CFLAGS="-I$PREFIX/include $(echo "${CFLAGS:-}" | sed -E 's/-march=[^ ]+//g; s/-mtune=[^ ]+//g')" +export CXXFLAGS="-I$PREFIX/include $(echo "${CXXFLAGS:-}" | sed -E 's/-march=[^ ]+//g; s/-mtune=[^ ]+//g')" +export LDFLAGS="-L$PREFIX/lib ${LDFLAGS:-}" + +emcmake cmake -S . -B build \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DUSE_GMP=ON \ + -DGMP_LIBRARIES=$PREFIX/lib/libgmp.a \ + -DBUILD_SHARED_LIBS=OFF + +cd build +emmake make -j${CPU_COUNT:-1} + +mkdir -p $PREFIX/lib +mkdir -p $PREFIX/include/bliss +mkdir -p $PREFIX/bin + +cp libbliss.a $PREFIX/lib/ +cp libbliss_static.a $PREFIX/lib/ || true + +cp ../src/*.hh $PREFIX/include/bliss/ + +cp bliss.js $PREFIX/bin/ +cp bliss.wasm $PREFIX/bin/ \ No newline at end of file diff --git a/recipes/recipes_emscripten/bliss/recipe.yaml b/recipes/recipes_emscripten/bliss/recipe.yaml new file mode 100644 index 00000000000..bb80c67dc5f --- /dev/null +++ b/recipes/recipes_emscripten/bliss/recipe.yaml @@ -0,0 +1,44 @@ +context: + name: bliss + version: '0.77' + +package: + name: ${{ name }} + version: ${{ version }} + +source: + url: https://users.aalto.fi/~tjunttil/bliss/downloads/bliss-${{ version }}.zip + sha256: acc8b98034f30fad24c897f365abd866c13d9f1bb207e398d0caf136875972a4 + +build: + number: 0 + +requirements: + build: + - autoconf + - automake + - libtool + - make + - ${{ compiler("c") }} + - ${{ compiler('cxx') }} + - pkg-config + - autoconf-archive + host: + - gmp + +tests: + - package_contents: + files: + - bin/bliss + - lib/libbliss.a + - include/bliss/graph.hh + +about: + license: LGPL-3.0-only AND GPL-3.0-only + license_file: COPYING + summary: Combinatorial matrix recognition + homepage: https://users.aalto.fi/~tjunttil/bliss/index.html + +extra: + recipe-maintainers: + - wangyenshu \ No newline at end of file diff --git a/recipes/recipes_emscripten/eclib/build.sh b/recipes/recipes_emscripten/eclib/build.sh new file mode 100644 index 00000000000..ce5052dd3d1 --- /dev/null +++ b/recipes/recipes_emscripten/eclib/build.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -e + +autoreconf -vfi + +emconfigure ./configure \ + --prefix=$PREFIX \ + --disable-shared \ + --enable-static \ + --with-flint=$PREFIX \ + --with-ntl=$PREFIX \ + --with-pari=$PREFIX \ + CPPFLAGS="-I$PREFIX/include" \ + LDFLAGS="-L$PREFIX/lib" + + +find . -type f -name "Makefile" -exec sed -i 's/^LIBS =.*/& -lmpfr -lgmp/g' {} + + +emmake make +emmake make install + +cp progs/*.wasm $PREFIX/bin diff --git a/recipes/recipes_emscripten/eclib/recipe.yaml b/recipes/recipes_emscripten/eclib/recipe.yaml new file mode 100644 index 00000000000..eeffe99f33e --- /dev/null +++ b/recipes/recipes_emscripten/eclib/recipe.yaml @@ -0,0 +1,48 @@ +context: + name: eclib + version: '20250627' + +package: + name: ${{ name }} + version: ${{ version }} + +source: + url: https://github.com/JohnCremona/eclib/releases/download/${{ version }}/eclib-${{ version }}.tar.bz2 + sha256: b88d4b52612e491c5415946d9e35f2062ca1015ee7fbbe0b61f158fa74cb4bc9 + +build: + number: 0 + +requirements: + build: + - autoconf + - automake + - libtool + - make + - ${{ compiler("c") }} + - ${{ compiler('cxx') }} + - pkg-config + - autoconf-archive + host: + - gmp + - ntl + - libflint + - pari + - mpfr + +tests: + - package_contents: + files: + - include/eclib/interface.h + - lib/pkgconfig/eclib.pc + - bin/mwrank + +about: + homepage: https://github.com/JohnCremona/eclib + license: GPL-2.0-only + license_file: COPYING + summary: The eclib package includes mwrank (for 2-descent on elliptic curves over Q) and modular symbol code used to create the elliptic curve database. + +extra: + recipe-maintainers: + - wangyenshu \ No newline at end of file diff --git a/recipes/recipes_emscripten/sirocco/build.sh b/recipes/recipes_emscripten/sirocco/build.sh new file mode 100644 index 00000000000..19196c0a5e3 --- /dev/null +++ b/recipes/recipes_emscripten/sirocco/build.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -euxo pipefail + +# 1. Generate the configure script from the source +autoreconf --install + +# 2. Configure the build for the emscripten-forge prefix. +# We disable shared libraries to ensure a static .a archive is produced for WebAssembly. +emconfigure ./configure \ + --prefix=$PREFIX \ + --disable-shared \ + --enable-static + +# 3. Build the library +emmake make + +# 4. Install the library and headers into the prefix environment +emmake make install \ No newline at end of file diff --git a/recipes/recipes_emscripten/sirocco/recipe.yaml b/recipes/recipes_emscripten/sirocco/recipe.yaml new file mode 100644 index 00000000000..976a0741a0a --- /dev/null +++ b/recipes/recipes_emscripten/sirocco/recipe.yaml @@ -0,0 +1,41 @@ +context: + name: sirocco + version: '1.0' + +package: + name: ${{ name }} + version: ${{ version }} + +source: + url: https://github.com/miguelmarco/sirocco/archive/refs/tags/v${{ version }}.tar.gz + sha256: 70b1d327258aac2a82c4e466d47e6e3e3efc976454ba6b41f94c8670d4913fe9 + +build: + number: 0 + +requirements: + build: + - autoconf + - automake + - libtool + - make + - ${{ compiler("c") }} + - ${{ compiler('cxx') }} + - pkg-config + - autoconf-archive + +tests: + - package_contents: + files: + - lib/libsirocco.a + - include/sirocco.h + +about: + homepage: https://github.com/miguelmarco/sirocco + license: GPL-3.0-only + license_file: LICENSE + summary: Sirocco Is a ROot Certified COntinuator + +extra: + recipe-maintainers: + - wangyenshu \ No newline at end of file diff --git a/recipes/recipes_emscripten/sympow/build.sh b/recipes/recipes_emscripten/sympow/build.sh new file mode 100644 index 00000000000..89400a7bcb0 --- /dev/null +++ b/recipes/recipes_emscripten/sympow/build.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euxo pipefail + +# Strip architecture-specific flags that might clash with WebAssembly +export CFLAGS="$(echo "${CFLAGS:-}" | sed -E 's/-march=[^ ]+//g; s/-mtune=[^ ]+//g')" + +# Patch the Configure script to evaluate Emscripten's Wasm capabilities via Node.js +sed -i 's|-o config/fpubits|-o config/fpubits.js|g' Configure +sed -i 's|-o config/endiantuple|-o config/endiantuple.js|g' Configure + +sed -i 's|config/fpubits >|node config/fpubits.js >|g' Configure +sed -i 's@^[ \t]*config/fpubits@node config/fpubits.js@g' Configure +sed -i 's|\$(config/endiantuple)|\$(node config/endiantuple.js)|g' Configure + +PREFIX="${PREFIX}" VARPREFIX="${PREFIX}/var" ADDBINPATH=yes sh Configure + +# Patch the generated Makefile for cross-compilation +sed -i 's/\$(HELP2MAN) \$(H2MFLAGS) .*/touch \$@/g' Makefile +sed -i 's/\$(SH) armd.sh/echo "Skipping armd.sh for cross-compilation"/g' Makefile +sed -i '/logfile/d' Makefile +sed -i 's|datafiles/\*.txt ||g' Makefile + +emmake make all CC="emcc" +emmake make install +cp *.wasm $PREFIX/bin \ No newline at end of file diff --git a/recipes/recipes_emscripten/sympow/recipe.yaml b/recipes/recipes_emscripten/sympow/recipe.yaml new file mode 100644 index 00000000000..a2a8ac66589 --- /dev/null +++ b/recipes/recipes_emscripten/sympow/recipe.yaml @@ -0,0 +1,43 @@ +context: + name: sympow + version: 2.023.7 + +package: + name: ${{ name }} + version: ${{ version }} + +source: + url: https://gitlab.com/rezozer/forks/sympow/-/archive/v${{ version }}/sympow-v${{ version }}.tar.gz + sha256: f19a2b428c573f9e4c36a97b736b562e76f4bfc354497abaeb7140632bef3400 + +build: + number: 0 + +requirements: + build: + - autoconf + - automake + - libtool + - make + - ${{ compiler("c") }} + - ${{ compiler('cxx') }} + - pkg-config + - autoconf-archive + - help2man + host: + - pari + +tests: + - package_contents: + files: + - bin/sympow + +about: + homepage: https://gitlab.com/rezozer/forks/sympow + license: LicenseRef-sympow + license_file: COPYING + summary: SYMmetric POWer elliptic curve L-functions + +extra: + recipe-maintainers: + - wangyenshu \ No newline at end of file From c77017499c0771067908e929173916a309b92ae8 Mon Sep 17 00:00:00 2001 From: wangyenshu <155622798+wangyenshu@users.noreply.github.com> Date: Sat, 25 Jul 2026 12:36:50 +0800 Subject: [PATCH 2/9] Update recipe.yaml --- recipes/recipes_emscripten/bliss/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/bliss/recipe.yaml b/recipes/recipes_emscripten/bliss/recipe.yaml index bb80c67dc5f..41607014c06 100644 --- a/recipes/recipes_emscripten/bliss/recipe.yaml +++ b/recipes/recipes_emscripten/bliss/recipe.yaml @@ -29,7 +29,7 @@ requirements: tests: - package_contents: files: - - bin/bliss + - bin/bliss.js - lib/libbliss.a - include/bliss/graph.hh @@ -41,4 +41,4 @@ about: extra: recipe-maintainers: - - wangyenshu \ No newline at end of file + - wangyenshu From 03fb9709a109b67bbdf3e8fe9cb29aa25d6f08c7 Mon Sep 17 00:00:00 2001 From: wangyenshu <155622798+wangyenshu@users.noreply.github.com> Date: Sat, 25 Jul 2026 12:44:09 +0800 Subject: [PATCH 3/9] modify pari version in variant.yaml --- variant.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variant.yaml b/variant.yaml index 47a8b53c23a..284dc80cdcd 100644 --- a/variant.yaml +++ b/variant.yaml @@ -554,7 +554,7 @@ orc: pango: - '1.48' pari: - - 2.13.* *_pthread + - 2.17.* perl: - 5.32.1 petsc: From 6568e8e3ae09cb35ec0a1498de23cd324588f8c9 Mon Sep 17 00:00:00 2001 From: wangyenshu <155622798+wangyenshu@users.noreply.github.com> Date: Sat, 25 Jul 2026 13:02:17 +0800 Subject: [PATCH 4/9] Update recipe.yaml --- recipes/recipes_emscripten/sympow/recipe.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/recipes_emscripten/sympow/recipe.yaml b/recipes/recipes_emscripten/sympow/recipe.yaml index a2a8ac66589..0e84c37868c 100644 --- a/recipes/recipes_emscripten/sympow/recipe.yaml +++ b/recipes/recipes_emscripten/sympow/recipe.yaml @@ -24,6 +24,7 @@ requirements: - pkg-config - autoconf-archive - help2man + - pari host: - pari @@ -40,4 +41,4 @@ about: extra: recipe-maintainers: - - wangyenshu \ No newline at end of file + - wangyenshu From f4f1762b2be08065d66668d8eb22ecb80afff310 Mon Sep 17 00:00:00 2001 From: wangyenshu <155622798+wangyenshu@users.noreply.github.com> Date: Sun, 26 Jul 2026 09:08:56 +0800 Subject: [PATCH 5/9] Update recipe.yaml --- recipes/recipes_emscripten/sirocco/recipe.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/recipes_emscripten/sirocco/recipe.yaml b/recipes/recipes_emscripten/sirocco/recipe.yaml index 976a0741a0a..b99d0939be1 100644 --- a/recipes/recipes_emscripten/sirocco/recipe.yaml +++ b/recipes/recipes_emscripten/sirocco/recipe.yaml @@ -1,14 +1,14 @@ context: name: sirocco - version: '1.0' + version: 2.1.1 package: name: ${{ name }} version: ${{ version }} - + source: - url: https://github.com/miguelmarco/sirocco/archive/refs/tags/v${{ version }}.tar.gz - sha256: 70b1d327258aac2a82c4e466d47e6e3e3efc976454ba6b41f94c8670d4913fe9 + url: https://github.com/miguelmarco/SIROCCO2/releases/download/${{ version }}/libsirocco-${{ version }}.tar.gz + sha256: 83d1dd5622120eda42c475696235dd67be8072a76baad0a70693d9743a659a61 build: number: 0 @@ -31,11 +31,11 @@ tests: - include/sirocco.h about: - homepage: https://github.com/miguelmarco/sirocco + homepage: https://github.com/miguelmarco/SIROCCO2 license: GPL-3.0-only license_file: LICENSE summary: Sirocco Is a ROot Certified COntinuator extra: recipe-maintainers: - - wangyenshu \ No newline at end of file + - wangyenshu From 46d7168c7371604f2b65369554177271441ad177 Mon Sep 17 00:00:00 2001 From: wangyenshu <155622798+wangyenshu@users.noreply.github.com> Date: Sun, 26 Jul 2026 09:09:34 +0800 Subject: [PATCH 6/9] Update build.sh --- recipes/recipes_emscripten/sirocco/build.sh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/recipes/recipes_emscripten/sirocco/build.sh b/recipes/recipes_emscripten/sirocco/build.sh index 19196c0a5e3..eda4103ee43 100644 --- a/recipes/recipes_emscripten/sirocco/build.sh +++ b/recipes/recipes_emscripten/sirocco/build.sh @@ -1,18 +1,13 @@ #!/usr/bin/env bash set -euxo pipefail -# 1. Generate the configure script from the source autoreconf --install -# 2. Configure the build for the emscripten-forge prefix. -# We disable shared libraries to ensure a static .a archive is produced for WebAssembly. emconfigure ./configure \ --prefix=$PREFIX \ --disable-shared \ --enable-static -# 3. Build the library emmake make -# 4. Install the library and headers into the prefix environment -emmake make install \ No newline at end of file +emmake make install From 36e9aafdcdb0a559a876fcec8c152d1df0c7eacf Mon Sep 17 00:00:00 2001 From: wangyenshu <155622798+wangyenshu@users.noreply.github.com> Date: Sun, 26 Jul 2026 09:32:02 +0800 Subject: [PATCH 7/9] Update recipe.yaml --- recipes/recipes_emscripten/sirocco/recipe.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recipes/recipes_emscripten/sirocco/recipe.yaml b/recipes/recipes_emscripten/sirocco/recipe.yaml index b99d0939be1..dfff6d2d4b5 100644 --- a/recipes/recipes_emscripten/sirocco/recipe.yaml +++ b/recipes/recipes_emscripten/sirocco/recipe.yaml @@ -23,6 +23,9 @@ requirements: - ${{ compiler('cxx') }} - pkg-config - autoconf-archive + host: + - mpfr + - gmp tests: - package_contents: From 2071fde2ae6f206062191b194f03b65a935bff44 Mon Sep 17 00:00:00 2001 From: wangyenshu <155622798+wangyenshu@users.noreply.github.com> Date: Sun, 26 Jul 2026 14:11:12 +0800 Subject: [PATCH 8/9] Update build.sh --- recipes/recipes_emscripten/sirocco/build.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/recipes_emscripten/sirocco/build.sh b/recipes/recipes_emscripten/sirocco/build.sh index eda4103ee43..8dc12694698 100644 --- a/recipes/recipes_emscripten/sirocco/build.sh +++ b/recipes/recipes_emscripten/sirocco/build.sh @@ -4,9 +4,11 @@ set -euxo pipefail autoreconf --install emconfigure ./configure \ - --prefix=$PREFIX \ + --prefix="${PREFIX}" \ --disable-shared \ - --enable-static + --enable-static \ + CPPFLAGS="-I${PREFIX}/include" \ + LDFLAGS="-L${PREFIX}/lib" emmake make From 8c2e4e0d1871a02cb86f43bdd4e4e746eb57206e Mon Sep 17 00:00:00 2001 From: wangyenshu <155622798+wangyenshu@users.noreply.github.com> Date: Tue, 28 Jul 2026 20:23:26 +0800 Subject: [PATCH 9/9] Update recipes/recipes_emscripten/eclib/recipe.yaml Co-authored-by: Isabel Paredes --- recipes/recipes_emscripten/eclib/recipe.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipes/recipes_emscripten/eclib/recipe.yaml b/recipes/recipes_emscripten/eclib/recipe.yaml index eeffe99f33e..41d787ca08c 100644 --- a/recipes/recipes_emscripten/eclib/recipe.yaml +++ b/recipes/recipes_emscripten/eclib/recipe.yaml @@ -34,6 +34,7 @@ tests: - package_contents: files: - include/eclib/interface.h + - lib/libec.a - lib/pkgconfig/eclib.pc - bin/mwrank