You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Xintong Song (Jira)" <ji...@apache.org> on 2022/05/14 05:43:00 UTC
[jira] [Comment Edited] (FLINK-27554) The asf-site does not build on Apple Silicon
[ https://issues.apache.org/jira/browse/FLINK-27554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17536970#comment-17536970 ]
Xintong Song edited comment on FLINK-27554 at 5/14/22 5:42 AM:
---------------------------------------------------------------
I've made a little progress on this.
I ran into the same error with the `docker-build.sh`. Inspired by this [comment|https://github.com/rubyjs/libv8/issues/315#issuecomment-846475866], I tried with the `amd64` image, and it worked! The full command is:
{code:java}
docker run --rm --volume="$PWD:/srv/flink-web" --expose=4000 -p 4000:4000 -it --platform linux/amd64 ruby:2.6.0 bash -c "cd /srv/flink-web && gem install bundler && ./build.sh $@"{code}
Unfortunately, while this works for `./docker-build.sh` (the generated HTML files look good), I ran into another error with `./docker-build.sh -p`.
{code:java}
Configuration file: /srv/flink-web/_config.yml
Source: /srv/flink-web
Destination: /srv/flink-web/content
Incremental build: disabled. Enable with --incremental
Generating...
done in 85.06 seconds.
bundler: failed to load command: jekyll (/srv/flink-web/.rubydeps/ruby/2.6.0/bin/jekyll)
Traceback (most recent call last):
40: from /usr/local/bundle/bin/bundle:23:in `<main>'
39: from /usr/local/bundle/bin/bundle:23:in `load'
38: from /usr/local/bundle/gems/bundler-2.3.13/exe/bundle:36:in `<top (required)>'
37: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors'
36: from /usr/local/bundle/gems/bundler-2.3.13/exe/bundle:48:in `block in <top (required)>'
35: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli.rb:25:in `start'
34: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
33: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli.rb:31:in `dispatch'
32: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
31: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
30: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
29: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli.rb:483:in `exec'
28: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:23:in `run'
27: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
26: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:58:in `load'
25: from /srv/flink-web/.rubydeps/ruby/2.6.0/bin/jekyll:23:in `<top (required)>'
24: from /srv/flink-web/.rubydeps/ruby/2.6.0/bin/jekyll:23:in `load'
23: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-3.0.5/bin/jekyll:17:in `<top (required)>'
22: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
21: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
20: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
19: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
18: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
17: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-3.0.5/lib/jekyll/commands/serve.rb:26:in `block (2 levels) in init_with_program'
16: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-3.0.5/lib/jekyll/commands/build.rb:39:in `process'
15: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-3.0.5/lib/jekyll/commands/build.rb:72:in `watch'
14: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-watch-1.5.1/lib/jekyll/watcher.rb:26:in `watch'
13: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/listener.rb:92:in `start'
12: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/fsm.rb:72:in `transition'
11: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/fsm.rb:105:in `transition_with_callbacks!'
10: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/fsm.rb:124:in `call'
9: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/fsm.rb:124:in `instance_eval'
8: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/listener.rb:71:in `block in <class:Listener>'
7: from /usr/local/lib/ruby/2.6.0/forwardable.rb:230:in `start'
6: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/base.rb:66:in `start'
5: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/base.rb:42:in `configure'
4: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/base.rb:42:in `each'
3: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/base.rb:47:in `block in configure'
2: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/linux.rb:29:in `_configure'
1: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/linux.rb:29:in `new'
/srv/flink-web/.rubydeps/ruby/2.6.0/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:69:in `initialize': Function not implemented - Failed to initialize inotify (Errno::ENOSYS)
{code}
I did a little search. It seems `inotify` is something used for watching file changes, which is not available on M1, and `jekyll` tries to load it even in the non-incremental mode. I don't find a good solution to this.
So in conclusion, *I'm able to build the website locally, but not able to preview it.* I guess that's not really helpful.
was (Author: xintongsong):
I've made a little progress on this.
I ran into the same error with the `docker-build.sh`. Inspired by this [comment|https://github.com/rubyjs/libv8/issues/315#issuecomment-846475866], I tried with the `amd64` image, and it worked! The full command is:
{code:java}
docker run --rm --volume="$PWD:/srv/flink-web" --expose=4000 -p 4000:4000 -it --platform linux/amd64 ruby:2.6.0 bash -c "cd /srv/flink-web && gem install bundler && ./build.sh $@"{code}
Unfortunately, while this works for `./docker-build.sh` (the generated HTML files look good), I ran into another error with `./docker-build.sh -p`.
{code:java}
Configuration file: /srv/flink-web/_config.yml
Source: /srv/flink-web
Destination: /srv/flink-web/content
Incremental build: disabled. Enable with --incremental
Generating...
done in 85.06 seconds.
bundler: failed to load command: jekyll (/srv/flink-web/.rubydeps/ruby/2.6.0/bin/jekyll)
Traceback (most recent call last):
40: from /usr/local/bundle/bin/bundle:23:in `<main>'
39: from /usr/local/bundle/bin/bundle:23:in `load'
38: from /usr/local/bundle/gems/bundler-2.3.13/exe/bundle:36:in `<top (required)>'
37: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors'
36: from /usr/local/bundle/gems/bundler-2.3.13/exe/bundle:48:in `block in <top (required)>'
35: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli.rb:25:in `start'
34: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
33: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli.rb:31:in `dispatch'
32: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
31: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
30: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
29: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli.rb:483:in `exec'
28: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:23:in `run'
27: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
26: from /usr/local/bundle/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:58:in `load'
25: from /srv/flink-web/.rubydeps/ruby/2.6.0/bin/jekyll:23:in `<top (required)>'
24: from /srv/flink-web/.rubydeps/ruby/2.6.0/bin/jekyll:23:in `load'
23: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-3.0.5/bin/jekyll:17:in `<top (required)>'
22: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
21: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
20: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
19: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
18: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
17: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-3.0.5/lib/jekyll/commands/serve.rb:26:in `block (2 levels) in init_with_program'
16: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-3.0.5/lib/jekyll/commands/build.rb:39:in `process'
15: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-3.0.5/lib/jekyll/commands/build.rb:72:in `watch'
14: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/jekyll-watch-1.5.1/lib/jekyll/watcher.rb:26:in `watch'
13: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/listener.rb:92:in `start'
12: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/fsm.rb:72:in `transition'
11: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/fsm.rb:105:in `transition_with_callbacks!'
10: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/fsm.rb:124:in `call'
9: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/fsm.rb:124:in `instance_eval'
8: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/listener.rb:71:in `block in <class:Listener>'
7: from /usr/local/lib/ruby/2.6.0/forwardable.rb:230:in `start'
6: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/base.rb:66:in `start'
5: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/base.rb:42:in `configure'
4: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/base.rb:42:in `each'
3: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/base.rb:47:in `block in configure'
2: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/linux.rb:29:in `_configure'
1: from /srv/flink-web/.rubydeps/ruby/2.6.0/gems/listen-3.7.1/lib/listen/adapter/linux.rb:29:in `new'
/srv/flink-web/.rubydeps/ruby/2.6.0/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:69:in `initialize': Function not implemented - Failed to initialize inotify (Errno::ENOSYS)
{code}
I did a little search. It seems `inotify` is something used for watching file changes, which is not available on M1, and `jekyll` tries to load it even in the non-incremental mode. I don't find a good solution to this.
So in conclusion, *I'm able to build the website locally, but not able to preview it.* I guess that's not really helpful.
> The asf-site does not build on Apple Silicon
> --------------------------------------------
>
> Key: FLINK-27554
> URL: https://issues.apache.org/jira/browse/FLINK-27554
> Project: Flink
> Issue Type: Sub-task
> Components: Project Website
> Affects Versions: 1.15.0
> Reporter: Jiangjie Qin
> Priority: Major
>
> It looks that the ASF website does not build on my laptop with Apple silicon. It errors out when installing libv8 via the following command:
> {noformat}
> gem install libv8 -v '3.16.14.19' --source 'https://rubygems.org/'
> {noformat}
> The error logs are following:
> {noformat}
> current directory: /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/ext/libv8
> /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20220509-16154-19vsxkp.rb extconf.rb
> creating Makefile
> Applying /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/patches/disable-building-tests.patch
> Applying /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/patches/disable-werror-on-osx.patch
> Applying /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/patches/disable-xcode-debugging.patch
> Applying /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/patches/do-not-imply-vfp3-and-armv7.patch
> Applying /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/patches/do-not-use-MAP_NORESERVE-on-freebsd.patch
> Applying /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/patches/do-not-use-vfp2.patch
> Applying /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/patches/fPIC-for-static.patch
> Compiling v8 for x64
> Using python 2.7.18
> Using compiler: c++ (clang version 13.1.6)
> Unable to find a compiler officially supported by v8.
> It is recommended to use GCC v4.4 or higher
> Beginning compilation. This will take some time.
> Building v8 with env CXX=c++ LINK=c++ /usr/bin/make x64.release vfp2=off vfp3=on hardfp=on ARFLAGS.target=crs werror=no
> GYP_GENERATORS=make \
> build/gyp/gyp --generator-output="out" build/all.gyp \
> -Ibuild/standalone.gypi --depth=. \
> -Dv8_target_arch=x64 \
> -S.x64 -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=false -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3 -Dwerror='' -Dv8_use_arm_eabi_hardfloat=true
> CXX(target) /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/allocation.o
> clang: warning: include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
> In file included from ../src/allocation.cc:33:
> ../src/utils.h:33:10: fatal error: 'climits' file not found
> #include <climits>
> ^~~~~~~~~
> 1 error generated.
> make[1]: *** [/Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/allocation.o] Error 1
> make: *** [x64.release] Error 2
> /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
> from /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:35:in `each'
> from /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:35:in `verify_installation!'
> from /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:26:in `install!'
> from extconf.rb:7:in `<main>'
>
> extconf failed, exit code 1
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)