jprendes/emception

Broken patches

tolstenko opened this issue · 2 comments

Hi!

I am trying to use the build-with-docker approach, and it is failing because of broken patches. The offending one is cpython:

Cloning into '/Users/tolstenko/projects/emception/upstream/cpython'...
Updating files: 100% (4653/4653), done.
/Users/tolstenko/projects/emception/upstream/cpython /Users/tolstenko/projects/emception
From https://github.com/python/cpython
 * branch                  b8a9f13abb61bd91a368e2d3f339de736863050f -> FETCH_HEAD
Updating files: 100% (3155/3155), done.
HEAD is now at b8a9f13abb gh-97616: test_list_resize_overflow() uses sys.maxsize (#99057)
/Users/tolstenko/projects/emception
/Users/tolstenko/projects/emception/upstream/cpython /Users/tolstenko/projects/emception
error: patch failed: configure.ac:1253
error: configure.ac: patch does not apply
error: Modules/_emception.c: No such file or directory
error: patch failed: Modules/Setup.stdlib.in:118
error: Modules/Setup.stdlib.in: patch does not apply

And probably these too:

The necessary bits to build these optional modules were not found:
_bz2                  _ctypes               _ctypes_test       
_curses               _curses_panel         _dbm               
_gdbm                 _lzma                 _tkinter           
_uuid                 readline                  

Which causes

configure: WARNING: unrecognized options: --enable-wasm-js-module
configure: loading site script /Users/tolstenko/projects/emception/upstream/cpython/Tools/wasm/config.site-wasm32-emscripten
configure: creating cache config.cache
checking for git... found
checking build system type... x86_64-pc-linux-gnu
checking host system type... wasm32-unknown-emscripten
checking for --with-build-python... configure: error: invalid or missing build python binary "/Users/tolstenko/projects/emception/build/cpython-native/python"
emconfigure: error: '/Users/tolstenko/projects/emception/upstream/cpython/configure -C --host=wasm32-unknown-emscripten --build=x86_64-pc-linux-gnu --with-emscripten-target=browser --disable-wasm-dynamic-linking --with-suffix=.mjs --disable-wasm-preload --enable-wasm-js-module --with-build-python=/Users/tolstenko/projects/emception/build/cpython-native/python' failed (returned 1)
make: make -j10
make: *** No targets specified and no makefile found.  Stop.
emmake: error: 'make -j10' failed (returned 2)
/Users/tolstenko/projects/emception
/Users/tolstenko/projects/emception/build/cpython /Users/tolstenko/projects/emception
make: make -j10
make: *** No targets specified and no makefile found.  Stop.
emmake: error: 'make -j10' failed (returned 2)

Some changes I made to improve the build:

  • add to build-binaryen:
# fix wrong strange bug that generates 'ninja_required_version1.5' instead of 'ninja_required_version = 1.5'
    sed -i 's/ninja_required_version1\.5/ninja_required_version = 1.5/g' $BINARYEN_BUILD/build.ninja
  • git describe command was failing, so I removed the --depth 1 in most of the git clones commands, I don't remember anymore which ones.

But it is still not building.

Suggestion:

  • Instead of using patches and complex scripting, you might create a fork of the project, apply the patch, and refer to your fork instead of the original one. It will make it easier to keep your changes in sync with the main repo and avoid applying patches or running complex scripts on the dev machine.
  • If the goal of each subproject/subbuild is to generate wasm and mjs files, you could generate repos that automatically release them, so this one would be just downloading them, instead of compiling.

I would love to help somehow, but at this point, I got lost in everything you did.

Btw, awesome project. Congratulations on gluing everything together.

Keep up the good work.

I am assuming the html include to NodeProcess form here https://github.com/jprendes/emception/blob/205e46a0921f89333b56927589919a340c2bf6b8/src/index.html#L19C10-L19C10 is quicknode. But quicknode is being built correctly, but not transformed into NodeProcess. So some other part of the process is broken too. I will make a fork and test it through gh actions no you can see the full log though there.

Here you can see the full log. This exact line shows the problem https://github.com/InfiniBrains/emception/actions/runs/6803868511/job/18500146681#step:4:4374
and this might be a problem
https://github.com/InfiniBrains/emception/actions/runs/6803868511/job/18500146681#step:4:5519
I changed the docker version trying to solve other issues, and it causes problems with python not finding openssl anymore. https://github.com/InfiniBrains/emception/actions/runs/6803868511/job/18500146681#step:4:6698 I tried to add libssl and other dependencies and probably given SSL jumped to v3. It might have broken compatibility