[tor-commits] [Git][tpo/applications/tor-browser-build][main] 3 commits: Bug 40852: Compile lox library to wasm

boklm (@boklm) git at gitlab.torproject.org
Tue Oct 17 13:42:45 UTC 2023



boklm pushed to branch main at The Tor Project / Applications / tor-browser-build


Commits:
3b1b0d89 by Cecylia Bocovich at 2023-10-17T15:38:41+02:00
Bug 40852: Compile lox library to wasm

- - - - -
f1003d94 by Cecylia Bocovich at 2023-10-17T15:38:43+02:00
Bug 40852: Add wasm-bindgen project

- - - - -
94a3fda8 by Cecylia Bocovich at 2023-10-17T15:38:45+02:00
Bug 40852: Generate javascript bindings for lox-wasm

- - - - -


5 changed files:

- Makefile
- + projects/lox-wasm/build
- + projects/lox-wasm/config
- + projects/wasm-bindgen/build
- + projects/wasm-bindgen/config


Changes:

=====================================
Makefile
=====================================
@@ -615,6 +615,12 @@ cargo_vendor-application-services: submodule-update
 cargo_vendor-cbindgen: submodule-update
 	$(rbm) build cbindgen --step cargo_vendor --target alpha --target torbrowser-linux-x86_64
 
+cargo_vendor-wasm-bindgen: submodule-update
+	$(rbm) build wasm-bindgen --step cargo_vendor --target alpha --target torbrowser-linux-x86_64
+
+cargo_vendor-lox: submodule-update
+	$(rbm) build lox-wasm --step cargo_vendor --target alpha --target torbrowser-linux-x86_64
+
 go_vendor-snowflake-alpha: submodule-update
 	$(rbm) build snowflake --step go_vendor --target alpha --target torbrowser-linux-x86_64
 


=====================================
projects/lox-wasm/build
=====================================
@@ -0,0 +1,43 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+distdir=/var/tmp/dist
+builddir=/var/tmp/build/[% project %]
+mkdir -p $distdir/[% project %]
+tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/rust') %]
+export PATH="/var/tmp/dist/rust/bin:$PATH"
+tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/wasm-bindgen') %]
+export PATH="/var/tmp/dist/wasm-bindgen:$PATH"
+[% IF c("var/linux") -%]
+  export LD_LIBRARY_PATH="/var/tmp/dist/rust/lib:$LD_LIBRARY_PATH"
+[% END -%]
+mkdir -p /var/tmp/build
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+
+# Now prepare the offline build
+# Move the directory for hardcoding the path in .cargo/config
+mv /var/tmp/build/[% project %]-[% c('version') %] $builddir
+tar -C $builddir -xf $rootdir/[% c('input_files_by_name/cargo_vendor') %]
+cd $builddir
+mkdir .cargo
+cat > .cargo/config << 'EOF'
+[source.crates-io]
+replace-with = "vendored-sources"
+
+[source."https://git-crysp.uwaterloo.ca/iang/lox.git"]
+git = "https://git-crysp.uwaterloo.ca/iang/lox.git"
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "/var/tmp/build/lox-wasm/vendor"
+EOF
+
+cargo build -p lox-wasm --release --frozen --target wasm32-unknown-unknown
+mv target/wasm32-unknown-unknown/release/lox_wasm.wasm $distdir/[% project %]
+
+cd $distdir
+wasm-bindgen --out-dir [% project %] --target web [% project %]/lox_wasm.wasm
+
+[% c('tar', {
+        tar_src => [ project ],
+        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+    }) %]


=====================================
projects/lox-wasm/config
=====================================
@@ -0,0 +1,25 @@
+# vim: filetype=yaml sw=2
+# Remember to update also the package's hash, with the version!
+version: "0.1.0"
+git_url: https://gitlab.torproject.org/tpo/anti-censorship/lox-rs
+git_hash: 003d9c886be3cef59c4c61db03e54a90990e2e93
+container:
+  use_container: 1
+
+steps:
+  build:
+    filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
+    input_files:
+      - project: container-image
+        pkg_type: build
+      - project: rust
+        name: rust
+        pkg_type: build
+      - project: wasm-bindgen
+        name: wasm-bindgen
+        pkg_type: build
+      - name: cargo_vendor
+        project: lox-wasm
+        pkg_type: cargo_vendor
+        norec:
+          sha256sum: c4d31f971d406688a08414d471bca6ae2dcea4ce9507ab44a4e54324768c2b22


=====================================
projects/wasm-bindgen/build
=====================================
@@ -0,0 +1,44 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+distdir=/var/tmp/dist
+builddir=/var/tmp/build/[% project %]
+mkdir -p $distdir/[% project %]
+tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/rust') %]
+export PATH="/var/tmp/dist/rust/bin:$PATH"
+[% IF c("var/linux") -%]
+  export LD_LIBRARY_PATH="/var/tmp/dist/rust/lib:$LD_LIBRARY_PATH"
+[% END -%]
+mkdir -p /var/tmp/build
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
+
+# Now prepare the offline build
+# Move the directory for hardcoding the path in .cargo/config
+mv /var/tmp/build/[% project %]-[% c('version') %] $builddir
+tar -C $builddir -xf $rootdir/[% c('input_files_by_name/cargo_vendor') %]
+cd $builddir
+cat > .cargo/config << 'EOF'
+[source.crates-io]
+replace-with = "vendored-sources"
+
+[source."git+https://github.com/alexcrichton/raytracer?branch=update-deps"]
+git = "https://github.com/alexcrichton/raytracer"
+branch = "update-deps"
+replace-with = "vendored-sources"
+
+[source."git+https://github.com/rustwasm/weedle.git"]
+git = "https://github.com/rustwasm/weedle.git"
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "/var/tmp/build/wasm-bindgen/vendor"
+EOF
+
+cargo build -p wasm-bindgen-cli --release --frozen --target x86_64-unknown-linux-gnu
+cd $builddir
+mv target/x86_64-unknown-linux-gnu/release/wasm-bindgen $distdir/[% project %]
+
+cd $distdir
+[% c('tar', {
+        tar_src => [ project ],
+        tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+    }) %]


=====================================
projects/wasm-bindgen/config
=====================================
@@ -0,0 +1,19 @@
+# vim: filetype=yaml sw=2
+version: 0.2.86
+git_url: https://github.com/cohosh/wasm-bindgen
+git_hash: ecc5ca153cda278bfcebc99c157fb4732eb75e6e
+container:
+  use_container: 1
+
+steps:
+  build:
+    filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
+    input_files:
+      - project: container-image
+      - project: rust
+        name: rust
+      - name: cargo_vendor
+        project: wasm-bindgen
+        pkg_type: cargo_vendor
+        norec:
+          sha256sum: 926e938cc4eebf2f5c99f34170fddc5aa7b12445fb379d768eb51aaae3b305a3



View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/5380e131133d700f2939926277c9380e65a1369e...94a3fda892173cae468ea3b834b65cb5d34bb089

-- 
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/5380e131133d700f2939926277c9380e65a1369e...94a3fda892173cae468ea3b834b65cb5d34bb089
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-commits/attachments/20231017/838084f6/attachment-0001.htm>


More information about the tor-commits mailing list