ONLYOFFICE / build_tools

Used to build ONLYOFFICE DocumentServer-related products
https://www.onlyoffice.com
GNU Affero General Public License v3.0
105 stars 187 forks source link

ARM / ARM64 compilation issues #470

Open bill88t opened 2 years ago

bill88t commented 2 years ago

This issue is unique.

Operating System

Linux

Version information

7.1.0

Expected Behavior

Compile

Actual Behavior

Updating depot_tools...
bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3)
bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.26' not found (required by bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3)
bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.27' not found (required by bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3)
bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3)
bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.26' not found (required by bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3)
bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.27' not found (required by bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3)
cat: /onlyoffice/scripts/../../core/Common/3dParty/v8/depot_tools/python3_bin_reldir.txt: No such file or directory
[E2022-05-14T19:34:27.470174Z 134419 0 annotate.go:273] goroutine 1:
#0 go.chromium.org/luci/vpython/venv/config.go:309 - venv.(*Config).resolvePythonInterpreter()
  reason: none of [/onlyoffice/scripts/../../core/Common/3dParty/v8/depot_tools//python3] matched specification 3.8.0

ONLYOFFICE/DesktopEditors#1 go.chromium.org/luci/vpython/venv/config.go:153 - venv.(*Config).resolveRuntime()
  reason: failed to resolve system Python interpreter

ONLYOFFICE/DesktopEditors#2 go.chromium.org/luci/vpython/venv/venv.go:143 - venv.With()
  reason: failed to resolve python runtime

ONLYOFFICE/DesktopEditors#3 go.chromium.org/luci/vpython/run.go:60 - vpython.Run()
ONLYOFFICE/DesktopEditors#4 go.chromium.org/luci/vpython/application/application.go:327 - application.(*application).mainImpl()
ONLYOFFICE/DesktopEditors#5 go.chromium.org/luci/vpython/application/application.go:416 - application.(*Config).Main.func1()
ONLYOFFICE/DesktopEditors#6 go.chromium.org/luci/vpython/application/support.go:46 - application.run()
ONLYOFFICE/DesktopEditors#7 go.chromium.org/luci/vpython/application/application.go:415 - application.(*Config).Main()
ONLYOFFICE/DesktopEditors#8 vpython/main.go:112 - main.mainImpl()
ONLYOFFICE/DesktopEditors#9 vpython/main.go:118 - main.main()
ONLYOFFICE/DesktopEditors#10 runtime/proc.go:225 - runtime.main()
ONLYOFFICE/DesktopEditors#11 runtime/asm_arm64.s:1130 - runtime.goexit()
Error (gclient): 1
Error (./make.py): 1

Reproduction Steps

Using ubuntu 16.04 container with the instructions of onlyoffice build_tools git repo Opened the container, apt update && apt upgrade -y && apt install -y python and ran the ./automate.py desktop

Additional information

Seeing as https://github.com/ONLYOFFICE/DocumentServer/issues/152 issue being closed, I decided to try compiling onlyoffice natively again to see if it actually would, it actually now stops on some chromium depot_tools checks, for missing stuff. It's promising though! Compilation in ubuntu 16.04 (as instructed by the onlyoffice buildtools) container from my oveclocked Pi400. It failed something like 2 hours in, which is not bad (except for my mental health)

Also tried on the 7.1.0 deb via box64 and gtk3 lib at hand with the same results as ONLYOFFICE/DesktopEditors#270.

neofeo commented 2 years ago

Gtk3 is still a WIP on box64. I would only attempt it natively... specially on an open source project.

ShockwaveNN commented 2 years ago

reason: none of [/onlyoffice/scripts/../../core/Common/3dParty/v8/depot_tools//python3] matched specification 3.8.0

Juding by this error I thing python3 v3.8.0 is required, but on my ubuntu 16.04 box is 3.5.2 installed

Maybe try to build arm version on newer Ubuntus, as far as I remember for arm we use 18.04

ShockwaveNN commented 2 years ago

Moved issue to build_tools since it's base repo for all problems wich compilation from sources

bill88t commented 2 years ago

reason: none of [/onlyoffice/scripts/../../core/Common/3dParty/v8/depot_tools//python3] matched specification 3.8.0

Juding by this error I thing python3 v3.8.0 is required, but on my ubuntu 16.04 box is 3.5.2 installed

Maybe try to build arm version on newer Ubuntus, as far as I remember for arm we use 18.04

Yea, I remember briefly trying ubuntu:22.04 and there were many more errors, so I stuck with the version the instructions said.. I will try 18.04 tomorrow.

bill88t commented 2 years ago

It still hasn't failed, but some unexpected output has come up:

Cloning into 'depot_tools'...
Updating depot_tools...
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
Usage: gclient.py <command> [options]

Meta checkout dependency manager for Git.

Commands are:
  config   creates a .gclient file in the current directory
  diff     displays local diff for every dependencies
  fetch    fetches upstream commits for all modules
  flatten  flattens the solutions into a single DEPS file
  getdep   gets revision information and variable values from a DEPS file
  grep     greps through git repos managed by gclient
  help     prints list of commands or help for a specific command
  metrics  reports, and optionally modifies, the status of metric collection
  pack     generates a patch which can be applied at the root of the tree
  recurse  operates [command args ...] on all the dependencies
  revert   reverts all modifications in every dependencies
  revinfo  outputs revision info mapping for the client and its dependencies
  root     outputs the solution root (or current dir if there isn't one)
  runhooks runs hooks for files that have been modified in the local working copy
  setdep   modifies dependency revisions and variable values in a DEPS file
  status   shows modification status for every dependencies
  sync     checkout/update all modules
  validate validates the .gclient and DEPS syntax
  verify   verifies the DEPS file deps are only from allowed_hosts

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -j JOBS, --jobs=JOBS  Specify how many SCM commands can run in parallel;
                        defaults to 8 on this machine
  -v, --verbose         Produces additional output for diagnostics. Can be
                        used up to three times for more logging info.
  --gclientfile=CONFIG_FILENAME
                        Specify an alternate .gclient file
  --spec=SPEC           create a gclient file containing the provided string.
                        Due to Cygwin/Python brokenness, it can't contain any
                        newlines.
  --no-nag-max          Ignored for backwards compatibility.
Updating depot_tools...
Updating depot_tools...
Updating depot_tools...

I will follow up with the Dockerfile I made for arm, based on the og of this repo, after i'm done with the compilation on 18.04.

bill88t commented 2 years ago

Alrighty, it failed in a much different way now

________ running 'download_from_google_storage --no_resume --no_auth -u --bucket chromium-v8-closure-compiler -s v8/src/inspector/build/closure-compiler.tar.gz.sha1' in '/core/Common/3dParty/v8'
________ running 'vpython v8/build/linux/sysroot_scripts/install-sysroot.py --running-as-hook' in '/core/Common/3dParty/v8'
Unrecognized host arch: aarch64
Error: Command 'vpython v8/build/linux/sysroot_scripts/install-sysroot.py --running-as-hook' returned non-zero exit status 1 in /core/Common/3dParty/v8
Unrecognized host arch: aarch64

[git] update: desktop-sdk
[git] update: core
[git] update: plugin-thesaurus
[git] update: web-apps
[git] update: plugin-translator
[git] update: sdkjs
[git] update: sdkjs-forms
[git] update: plugin-highlightcode
[git] update: plugin-photoeditor
[git] update: plugin-mendeley
[git] update: dictionaries
[git] update: document-templates
[git] update: plugin-macros
[git] update: plugin-zotero
[git] update: plugin-youtube
[git] update: plugin-ocr
[git] update: plugin-speech
[git] update: desktop-apps
[fetch & build]: boost
delete warning [file not exist]: ./boost.data
[fetch & build]: cef
delete warning [file not exist]: ./cef_binary.7z.data
[fetch & build]: icu
[fetch & build]: openssl
delete warning [file not exist]: ./openssl.data
[fetch & build]: v8
delete warning [file not exist]: ./v8.data
Error (gclient): 2
install dependencies...
Installed Node.js version: 8.10
Node.js version cannot be less 10.20
Reinstall
install qt...
---------------------------------------------
build branch: master
---------------------------------------------
---------------------------------------------
build modules: desktop
---------------------------------------------
Error (./make.py): 1

To produce these results I created the following dockerfile

FROM ubuntu:18.04

ENV TZ=Etc/UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get -y update && apt-get -y install \
                            git python python3 sudo adwaita-icon-theme apt-transport-https at-spi2-core \
                            autoconf autoconf2.13 automake autopoint autotools-dev binutils binutils-aarch64-linux-gnu \
                            binutils-common bsdmainutils build-essential ca-certificates cmake cmake-data cpp cpp-7 curl \
                            dbus dconf-gsettings-backend dconf-service debhelper dh-autoreconf dh-strip-nondeterminism \
                            dirmngr dpkg-dev fakeroot fontconfig fontconfig-config fonts-dejavu-core g++ g++-7 \
                            gcc gcc-7 gcc-7-base gettext gettext-base gir1.2-atk-1.0 gir1.2-atspi-2.0 gir1.2-freedesktop \
                            gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 \
                            gir1.2-gtk-3.0 gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 gir1.2-spiceclientglib-2.0 git \
                            git-man glib-networking glib-networking-common glib-networking-services gnupg gnupg-l10n \
                            gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm groff-base gsettings-desktop-schemas \
                            gstreamer1.0-gl gstreamer1.0-plugins-base gtk-update-icon-cache hicolor-icon-theme \
                            humanity-icon-theme icu-devtools intltool-debian iso-codes krb5-locales less libalgorithm-diff-perl \
                            libalgorithm-diff-xs-perl libalgorithm-merge-perl libapparmor1 libapr1 \
                            libaprutil1 libarchive-cpio-perl libarchive-zip-perl libarchive13 libasan4 \
                            libasn1-8-heimdal libasound2 libasound2-data libasound2-dev libassuan0 libasyncns0 \
                            libatk-bridge2.0-0 libatk-bridge2.0-dev libatk1.0-0 libatk1.0-data libatk1.0-dev \
                            libatomic1 libatspi2.0-0 libatspi2.0-dev libavahi-client3 libavahi-common-data libavahi-common3 \
                            libbinutils libbsd0 libc-dev-bin libc6-dev libcacard0 libcairo-gobject2 libcairo-script-interpreter2 \
                            libcairo2 libcairo2-dev libcap2 libcap2-bin libcc1-0 libcdparanoia0 libcolord2 libcroco3 libcups2 \
                            libcups2-dev libcupsfilters-dev libcupsfilters1 libcupsimage2 libcupsimage2-dev libcurl3-gnutls \
                            libcurl4 libdatrie1 libdbus-1-3 libdbus-1-dev libdconf1 libdpkg-perl libdrm-amdgpu1 libdrm-common \
                            libdrm-dev libdrm-etnaviv1 libdrm-freedreno1 libdrm-nouveau2 libdrm-radeon1 libdrm-tegra0 libdrm2 \
                            libedit2 libegl-mesa0 libegl1 libegl1-mesa-dev libelf1 libepoxy-dev libepoxy0 liberror-perl \
                            libexpat1-dev libfakeroot libfile-fcntllock-perl libfile-stripnondeterminism-perl libflac8 libfontconfig1 \
                            libfontconfig1-dev libfreetype6 libfreetype6-dev libgbm1 libgcc-7-dev libgdbm-compat4 libgdbm5 libgdk-pixbuf2.0-0 \
                            libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgdk-pixbuf2.0-dev libgirepository-1.0-1 \
                            libgl1 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libgles1 libgles2 libgles2-mesa-dev libglib2.0-0 \
                            libglib2.0-bin libglib2.0-data libglib2.0-dev libglib2.0-dev-bin libglu1-mesa libglu1-mesa-dev libglvnd-core-dev \
                            libglvnd-dev libglvnd0 libglx-mesa0 libglx0 libgomp1 libgraphene-1.0-0 libgraphite2-3 libgraphite2-dev \
                            libgssapi-krb5-2 libgssapi3-heimdal libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 \
                            libgstreamer-plugins-base1.0-dev libgstreamer1.0-0 libgstreamer1.0-dev libgtk-3-0 libgtk-3-bin \
                            libgtk-3-common libgtk-3-dev libgudev-1.0-0 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 \
                            libharfbuzz0b libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal \
                            libice-dev libice6 libicu-dev libicu-le-hb-dev libicu-le-hb0 libicu60 libiculx60 libisl19 libitm1 \
                            libjbig-dev libjbig0 libjpeg-dev libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev \
                            libjson-glib-1.0-0 libjson-glib-1.0-common libjsoncpp1 libk5crypto3 libkeyutils1 libkrb5-26-heimdal \
                            libkrb5-3 libkrb5support0 libksba8 liblcms2-2 libldap-2.4-2 libldap-common libllvm10 liblocale-gettext-perl \
                            liblsan0 libltdl-dev libltdl7 liblzma-dev liblzo2-2 libmail-sendmail-perl libmpc3 libmpfr6 \
                            libnghttp2-14 libnpth0 libnspr4 libnss3 libogg0 libopengl0 libopus0 liborc-0.4-0 liborc-0.4-dev \
                            liborc-0.4-dev-bin libpam-cap libpango-1.0-0 libpango1.0-dev libpangocairo-1.0-0 libpangoft2-1.0-0 \
                            libpangoxft-1.0-0 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libperl5.26 libphodav-2.0-0 \
                            libphodav-2.0-common libpipeline1 libpixman-1-0 libpixman-1-dev libpng-dev libpng-tools libpng16-16 \
                            libpolkit-gobject-1-0 libproxy1v5 libpsl5 libpthread-stubs0-dev libpulse-dev libpulse-mainloop-glib0 \
                            libpulse0 librest-0.7-0 librhash0 libroken18-heimdal librsvg2-2 librsvg2-common librtmp1 libsasl2-2 \
                            libsasl2-modules libsasl2-modules-db libsensors4 libserf-1-1 libsigsegv2 libsm-dev libsm6 libsndfile1 \
                            libsoup-gnome2.4-1 libsoup2.4-1 libspice-client-glib-2.0-8 libspice-client-glib-2.0-dev libspice-protocol-dev \
                            libssl-dev libssl1.0.0 libstdc++-7-dev libsvn1 libsys-hostname-long-perl libthai-data libthai0 libtheora0 \
                            libtiff-dev libtiff5 libtiff5-dev libtiffxx5 libtimedate-perl libtool libtsan0 libubsan0 libusb-1.0-0 \
                            libusbredirhost1 libusbredirparser1 libuv1 libvisual-0.4-0 libvorbis0a libvorbisenc2 libwayland-bin \
                            libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1 libwayland-server0 libwind0-heimdal \
                            libwrap0 libx11-6 libx11-data libx11-dev libx11-doc libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 \
                            libxcb-composite0 libxcb-composite0-dev libxcb-cursor-dev libxcb-cursor0 libxcb-damage0 \
                            libxcb-damage0-dev libxcb-doc libxcb-dpms0 libxcb-dpms0-dev libxcb-dri2-0 libxcb-dri2-0-dev \
                            libxcb-dri3-0 libxcb-dri3-dev libxcb-ewmh-dev libxcb-ewmh2 libxcb-glx0 libxcb-glx0-dev \
                            libxcb-icccm4 libxcb-icccm4-dev libxcb-image0 libxcb-image0-dev libxcb-keysyms1 libxcb-keysyms1-dev \
                            libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-record0 libxcb-record0-dev \
                            libxcb-render-util0 libxcb-render-util0-dev libxcb-render0 libxcb-render0-dev libxcb-res0 libxcb-res0-dev \
                            libxcb-screensaver0 libxcb-screensaver0-dev libxcb-shape0 libxcb-shape0-dev libxcb-shm0 libxcb-shm0-dev \
                            libxcb-sync-dev libxcb-sync1 libxcb-util-dev libxcb-util0-dev libxcb-util1 libxcb-xf86dri0 libxcb-xf86dri0-dev \
                            libxcb-xfixes0 libxcb-xfixes0-dev libxcb-xinerama0 libxcb-xinerama0-dev libxcb-xinput-dev libxcb-xinput0 libxcb-xkb-dev \
                            libxcb-xkb1 libxcb-xrm-dev libxcb-xrm0 libxcb-xtest0 libxcb-xtest0-dev libxcb-xv0 libxcb-xv0-dev libxcb-xvmc0 \
                            libxcb-xvmc0-dev libxcb1 libxcb1-dev libxcomposite-dev libxcomposite1 libxcursor-dev libxcursor1 libxdamage-dev \
                            libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxfixes-dev libxfixes3 libxft-dev libxft2 libxi-dev \
                            libxi6 libxinerama-dev libxinerama1 libxkbcommon-dev libxkbcommon0 libxml2 libxmuu1 libxrandr-dev libxrandr2 \
                            libxrender-dev libxrender1 libxshmfence-dev libxshmfence1 libxss1 libxtst-dev libxtst6 libxxf86vm-dev libxxf86vm1 \
                            linux-libc-dev m4 make man-db manpages manpages-dev mesa-common-dev multiarch-support netbase \
                            openssh-client openssl p7zip p7zip-full patch perl perl-modules-5.26 pinentry-curses pkg-config \
                            po-debconf publicsuffix python3-distutils python3-lib2to3 shared-mime-info spice-client-glib-usb-acl-helper \
                            subversion ubuntu-mono ucf wayland-protocols x11-common x11proto-composite-dev x11proto-core-dev \
                            x11proto-damage-dev x11proto-dev x11proto-fixes-dev x11proto-input-dev x11proto-randr-dev x11proto-record-dev \
                            x11proto-xext-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev xauth xdg-user-dirs xkb-data \
                            xorg-sgml-doctools xtrans-dev zlib1g-dev libc-ares2 libhttp-parser2.7.1 nodejs nodejs-doc ca-certificates-java \
                            fonts-dejavu-extra java-common libatk-wrapper-java libatk-wrapper-java-jni libfontenc1 libgif7 libpcsclite1 \
                            libxaw7 libxmu6 libxpm4 libxt-dev libxt6 libxv1 libxxf86dga1 openjdk-11-jdk openjdk-11-jdk-headless \
                            openjdk-11-jre openjdk-11-jre-headless x11-utils

RUN rm /usr/bin/python && ln -s /usr/bin/python2 /usr/bin/python
ADD . /build_tools
WORKDIR /build_tools

CMD cd tools/linux && python3 ./automate.py desktop
theofficialgman commented 2 years ago
> ________ running 'download_from_google_storage --no_resume --no_auth -u --bucket chromium-v8-closure-compiler -s v8/src/inspector/build/closure-compiler.tar.gz.sha1' in '/core/Common/3dParty/v8'
> ________ running 'vpython v8/build/linux/sysroot_scripts/install-sysroot.py --running-as-hook' in '/core/Common/3dParty/v8'
> Unrecognized host arch: aarch64
> Error: Command 'vpython v8/build/linux/sysroot_scripts/install-sysroot.py --running-as-hook' returned non-zero exit status 1 in /core/Common/3dParty/v8
> Unrecognized host arch: aarch64

host arch should NOT be returning as aarch64... that is determined here from chromium source

def HostArch():
--
  | """Returns the host architecture with a predictable string."""
  | host_arch = platform.machine()
  |  
  | # Convert machine type to format recognized by gyp.
  | if re.match(r'i.86', host_arch) or host_arch == 'i86pc':
  | host_arch = 'ia32'
  | elif host_arch in ['x86_64', 'amd64']:
  | host_arch = 'x64'
  | elif host_arch.startswith('arm'):
  | host_arch = 'arm'
  | elif host_arch.startswith('aarch64'):
  | host_arch = 'arm64'
  | elif host_arch.startswith('mips64'):
  | host_arch = 'mips64'
  | elif host_arch.startswith('mips'):
  | host_arch = 'mips'
  | elif host_arch.startswith('ppc'):
  | host_arch = 'ppc'
  | elif host_arch.startswith('s390'):
  | host_arch = 's390'

well technically it used to just return aarch64.. but that bug was fixed 4 years ago https://chromium.googlesource.com/chromium/src/build/+/15ff94c12fba191a9638daec370b26881d8453cf

bill88t commented 2 years ago

host arch should NOT be returning as aarch64... that is determined here from chromium source

Uname, even the python module on: Linux, always returns aarch64. MacOS, always returns arm64.

I know that as a matter of fact because of one of my own projects. Did the check somehow get skipped or patched out???

well technically it used to just return aarch64.. but that bug was fixed 4 years ago

(It can't POSSIBLY be using such an old version) I will tear apart the install scripts to find what's going on in a bit. If it's all python, it wont take long.

jiriks74 commented 2 years ago

I'll try to take a look at the build script as well, but I got lost quite quickly in it (tried to modify it to compile directly on arch Linux - silly me).

fendaq commented 2 years ago

Alrighty, it failed in a much different way now

________ running 'download_from_google_storage --no_resume --no_auth -u --bucket chromium-v8-closure-compiler -s v8/src/inspector/build/closure-compiler.tar.gz.sha1' in '/core/Common/3dParty/v8'
________ running 'vpython v8/build/linux/sysroot_scripts/install-sysroot.py --running-as-hook' in '/core/Common/3dParty/v8'
Unrecognized host arch: aarch64
Error: Command 'vpython v8/build/linux/sysroot_scripts/install-sysroot.py --running-as-hook' returned non-zero exit status 1 in /core/Common/3dParty/v8
Unrecognized host arch: aarch64

[git] update: desktop-sdk
[git] update: core
[git] update: plugin-thesaurus
[git] update: web-apps
[git] update: plugin-translator
[git] update: sdkjs
[git] update: sdkjs-forms
[git] update: plugin-highlightcode
[git] update: plugin-photoeditor
[git] update: plugin-mendeley
[git] update: dictionaries
[git] update: document-templates
[git] update: plugin-macros
[git] update: plugin-zotero
[git] update: plugin-youtube
[git] update: plugin-ocr
[git] update: plugin-speech
[git] update: desktop-apps
[fetch & build]: boost
delete warning [file not exist]: ./boost.data
[fetch & build]: cef
delete warning [file not exist]: ./cef_binary.7z.data
[fetch & build]: icu
[fetch & build]: openssl
delete warning [file not exist]: ./openssl.data
[fetch & build]: v8
delete warning [file not exist]: ./v8.data
Error (gclient): 2
install dependencies...
Installed Node.js version: 8.10
Node.js version cannot be less 10.20
Reinstall
install qt...
---------------------------------------------
build branch: master
---------------------------------------------
---------------------------------------------
build modules: desktop
---------------------------------------------
Error (./make.py): 1

To produce these results I created the following dockerfile

FROM ubuntu:18.04

ENV TZ=Etc/UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get -y update && apt-get -y install \
                            git python python3 sudo adwaita-icon-theme apt-transport-https at-spi2-core \
                            autoconf autoconf2.13 automake autopoint autotools-dev binutils binutils-aarch64-linux-gnu \
                            binutils-common bsdmainutils build-essential ca-certificates cmake cmake-data cpp cpp-7 curl \
                            dbus dconf-gsettings-backend dconf-service debhelper dh-autoreconf dh-strip-nondeterminism \
                            dirmngr dpkg-dev fakeroot fontconfig fontconfig-config fonts-dejavu-core g++ g++-7 \
                            gcc gcc-7 gcc-7-base gettext gettext-base gir1.2-atk-1.0 gir1.2-atspi-2.0 gir1.2-freedesktop \
                            gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 \
                            gir1.2-gtk-3.0 gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 gir1.2-spiceclientglib-2.0 git \
                            git-man glib-networking glib-networking-common glib-networking-services gnupg gnupg-l10n \
                            gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm groff-base gsettings-desktop-schemas \
                            gstreamer1.0-gl gstreamer1.0-plugins-base gtk-update-icon-cache hicolor-icon-theme \
                            humanity-icon-theme icu-devtools intltool-debian iso-codes krb5-locales less libalgorithm-diff-perl \
                            libalgorithm-diff-xs-perl libalgorithm-merge-perl libapparmor1 libapr1 \
                            libaprutil1 libarchive-cpio-perl libarchive-zip-perl libarchive13 libasan4 \
                            libasn1-8-heimdal libasound2 libasound2-data libasound2-dev libassuan0 libasyncns0 \
                            libatk-bridge2.0-0 libatk-bridge2.0-dev libatk1.0-0 libatk1.0-data libatk1.0-dev \
                            libatomic1 libatspi2.0-0 libatspi2.0-dev libavahi-client3 libavahi-common-data libavahi-common3 \
                            libbinutils libbsd0 libc-dev-bin libc6-dev libcacard0 libcairo-gobject2 libcairo-script-interpreter2 \
                            libcairo2 libcairo2-dev libcap2 libcap2-bin libcc1-0 libcdparanoia0 libcolord2 libcroco3 libcups2 \
                            libcups2-dev libcupsfilters-dev libcupsfilters1 libcupsimage2 libcupsimage2-dev libcurl3-gnutls \
                            libcurl4 libdatrie1 libdbus-1-3 libdbus-1-dev libdconf1 libdpkg-perl libdrm-amdgpu1 libdrm-common \
                            libdrm-dev libdrm-etnaviv1 libdrm-freedreno1 libdrm-nouveau2 libdrm-radeon1 libdrm-tegra0 libdrm2 \
                            libedit2 libegl-mesa0 libegl1 libegl1-mesa-dev libelf1 libepoxy-dev libepoxy0 liberror-perl \
                            libexpat1-dev libfakeroot libfile-fcntllock-perl libfile-stripnondeterminism-perl libflac8 libfontconfig1 \
                            libfontconfig1-dev libfreetype6 libfreetype6-dev libgbm1 libgcc-7-dev libgdbm-compat4 libgdbm5 libgdk-pixbuf2.0-0 \
                            libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgdk-pixbuf2.0-dev libgirepository-1.0-1 \
                            libgl1 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libgles1 libgles2 libgles2-mesa-dev libglib2.0-0 \
                            libglib2.0-bin libglib2.0-data libglib2.0-dev libglib2.0-dev-bin libglu1-mesa libglu1-mesa-dev libglvnd-core-dev \
                            libglvnd-dev libglvnd0 libglx-mesa0 libglx0 libgomp1 libgraphene-1.0-0 libgraphite2-3 libgraphite2-dev \
                            libgssapi-krb5-2 libgssapi3-heimdal libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 \
                            libgstreamer-plugins-base1.0-dev libgstreamer1.0-0 libgstreamer1.0-dev libgtk-3-0 libgtk-3-bin \
                            libgtk-3-common libgtk-3-dev libgudev-1.0-0 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 \
                            libharfbuzz0b libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal \
                            libice-dev libice6 libicu-dev libicu-le-hb-dev libicu-le-hb0 libicu60 libiculx60 libisl19 libitm1 \
                            libjbig-dev libjbig0 libjpeg-dev libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev \
                            libjson-glib-1.0-0 libjson-glib-1.0-common libjsoncpp1 libk5crypto3 libkeyutils1 libkrb5-26-heimdal \
                            libkrb5-3 libkrb5support0 libksba8 liblcms2-2 libldap-2.4-2 libldap-common libllvm10 liblocale-gettext-perl \
                            liblsan0 libltdl-dev libltdl7 liblzma-dev liblzo2-2 libmail-sendmail-perl libmpc3 libmpfr6 \
                            libnghttp2-14 libnpth0 libnspr4 libnss3 libogg0 libopengl0 libopus0 liborc-0.4-0 liborc-0.4-dev \
                            liborc-0.4-dev-bin libpam-cap libpango-1.0-0 libpango1.0-dev libpangocairo-1.0-0 libpangoft2-1.0-0 \
                            libpangoxft-1.0-0 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libperl5.26 libphodav-2.0-0 \
                            libphodav-2.0-common libpipeline1 libpixman-1-0 libpixman-1-dev libpng-dev libpng-tools libpng16-16 \
                            libpolkit-gobject-1-0 libproxy1v5 libpsl5 libpthread-stubs0-dev libpulse-dev libpulse-mainloop-glib0 \
                            libpulse0 librest-0.7-0 librhash0 libroken18-heimdal librsvg2-2 librsvg2-common librtmp1 libsasl2-2 \
                            libsasl2-modules libsasl2-modules-db libsensors4 libserf-1-1 libsigsegv2 libsm-dev libsm6 libsndfile1 \
                            libsoup-gnome2.4-1 libsoup2.4-1 libspice-client-glib-2.0-8 libspice-client-glib-2.0-dev libspice-protocol-dev \
                            libssl-dev libssl1.0.0 libstdc++-7-dev libsvn1 libsys-hostname-long-perl libthai-data libthai0 libtheora0 \
                            libtiff-dev libtiff5 libtiff5-dev libtiffxx5 libtimedate-perl libtool libtsan0 libubsan0 libusb-1.0-0 \
                            libusbredirhost1 libusbredirparser1 libuv1 libvisual-0.4-0 libvorbis0a libvorbisenc2 libwayland-bin \
                            libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1 libwayland-server0 libwind0-heimdal \
                            libwrap0 libx11-6 libx11-data libx11-dev libx11-doc libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 \
                            libxcb-composite0 libxcb-composite0-dev libxcb-cursor-dev libxcb-cursor0 libxcb-damage0 \
                            libxcb-damage0-dev libxcb-doc libxcb-dpms0 libxcb-dpms0-dev libxcb-dri2-0 libxcb-dri2-0-dev \
                            libxcb-dri3-0 libxcb-dri3-dev libxcb-ewmh-dev libxcb-ewmh2 libxcb-glx0 libxcb-glx0-dev \
                            libxcb-icccm4 libxcb-icccm4-dev libxcb-image0 libxcb-image0-dev libxcb-keysyms1 libxcb-keysyms1-dev \
                            libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-record0 libxcb-record0-dev \
                            libxcb-render-util0 libxcb-render-util0-dev libxcb-render0 libxcb-render0-dev libxcb-res0 libxcb-res0-dev \
                            libxcb-screensaver0 libxcb-screensaver0-dev libxcb-shape0 libxcb-shape0-dev libxcb-shm0 libxcb-shm0-dev \
                            libxcb-sync-dev libxcb-sync1 libxcb-util-dev libxcb-util0-dev libxcb-util1 libxcb-xf86dri0 libxcb-xf86dri0-dev \
                            libxcb-xfixes0 libxcb-xfixes0-dev libxcb-xinerama0 libxcb-xinerama0-dev libxcb-xinput-dev libxcb-xinput0 libxcb-xkb-dev \
                            libxcb-xkb1 libxcb-xrm-dev libxcb-xrm0 libxcb-xtest0 libxcb-xtest0-dev libxcb-xv0 libxcb-xv0-dev libxcb-xvmc0 \
                            libxcb-xvmc0-dev libxcb1 libxcb1-dev libxcomposite-dev libxcomposite1 libxcursor-dev libxcursor1 libxdamage-dev \
                            libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxfixes-dev libxfixes3 libxft-dev libxft2 libxi-dev \
                            libxi6 libxinerama-dev libxinerama1 libxkbcommon-dev libxkbcommon0 libxml2 libxmuu1 libxrandr-dev libxrandr2 \
                            libxrender-dev libxrender1 libxshmfence-dev libxshmfence1 libxss1 libxtst-dev libxtst6 libxxf86vm-dev libxxf86vm1 \
                            linux-libc-dev m4 make man-db manpages manpages-dev mesa-common-dev multiarch-support netbase \
                            openssh-client openssl p7zip p7zip-full patch perl perl-modules-5.26 pinentry-curses pkg-config \
                            po-debconf publicsuffix python3-distutils python3-lib2to3 shared-mime-info spice-client-glib-usb-acl-helper \
                            subversion ubuntu-mono ucf wayland-protocols x11-common x11proto-composite-dev x11proto-core-dev \
                            x11proto-damage-dev x11proto-dev x11proto-fixes-dev x11proto-input-dev x11proto-randr-dev x11proto-record-dev \
                            x11proto-xext-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev xauth xdg-user-dirs xkb-data \
                            xorg-sgml-doctools xtrans-dev zlib1g-dev libc-ares2 libhttp-parser2.7.1 nodejs nodejs-doc ca-certificates-java \
                            fonts-dejavu-extra java-common libatk-wrapper-java libatk-wrapper-java-jni libfontenc1 libgif7 libpcsclite1 \
                            libxaw7 libxmu6 libxpm4 libxt-dev libxt6 libxv1 libxxf86dga1 openjdk-11-jdk openjdk-11-jdk-headless \
                            openjdk-11-jre openjdk-11-jre-headless x11-utils

RUN rm /usr/bin/python && ln -s /usr/bin/python2 /usr/bin/python
ADD . /build_tools
WORKDIR /build_tools

CMD cd tools/linux && python3 ./automate.py desktop

modify /core/Common/3dParty/v8/v8/DEPS : 228 # This sysroot updates at about the same rate that the chrome build deps 229 # change. 230 'name': 'sysroot', 231 'pattern': '.', 232 'action': [ 233 'python', 234 'v8/build/linux/sysroot_scripts/install-sysroot.py', 235 #'--running-as-hook', 236 '--arch=arm64', 237 ],

fendaq commented 2 years ago

I have successfully completed the compilation of the server for aarch64 ,here is compilation log, and It seems that I didn't find any obvious errors on it. but it failed on start ONLYOFFICE-QA/onlyoffice-documentserver-run-compiled#28

ShockwaveNN commented 2 years ago

I can confirm this error

Unrecognized host arch: aarch64

Checked it only the amazon arm instance with ubuntu 18.04

Seems that currently our code is not fully ready to a compilation on arm, I've created issue 57301 Maybe we need to update build instruction for arm or made some changes, that I'm not aware

bill88t commented 2 years ago

modify /core/Common/3dParty/v8/v8/DEPS : 228 # This sysroot updates at about the same rate that the chrome build deps 229 # change. 230 'name': 'sysroot', 231 'pattern': '.', 232 'action': [ 233 'python', 234 'v8/build/linux/sysroot_scripts/install-sysroot.py', 235 #'--running-as-hook', 236 '--arch=arm64', 237 ],

I am gonna do this tonight. Its hard finding 5 hours for a test. (cant leave it unattended since the pi400 is my laptop) I have introduced break points within the scripts to inspect. I will additionally split parts of the progress into seperate docker images.

jiriks74 commented 2 years ago

@bill88t If you have normal amd64 pc, you can use docker buildx and qemu to build an arm64 container. That's what I'll try as it's way faster than doing it on the pi...

bill88t commented 2 years ago

proxy-image (1)~2 Yea, we kinda should set that environment up

jiriks74 commented 2 years ago

@bill88t If you want, I've setup a simple Dockerfile that works with docker-compose and I can easily modify it to be multiarch once I figure out how to get the data from the container properly (now I have a simple script that moves the built files to a folder that is mouned in docker-compose.yml - so I can do just docker-compose up to build and copy everything)

jiriks74 commented 2 years ago

Ok, I've been building for like 45 minutes without errors. I had to kill it though, as I changed some things in the Dockerfile, etc. Looks alright so far though.

jiriks74 commented 2 years ago

Oh, the output got larger than 1MiB, so I see nithing. But I'm compiling for 2 hours now and from the processes running (make install) I think that the compilation was successful.

bill88t commented 2 years ago

A pi compilation fails at like 5 hours Im gonna push ahead and overclock from my 2.0Ghz -> 2.2Ghz to shorten it

ShockwaveNN commented 2 years ago

Guys, do you really need to compile it from source for several hours? Is there any particular problem with built packages? Or is it just for fun? I always fought that compiling package from source is interesting on fast hardware, but if it takes several hours it's more a chore

jiriks74 commented 2 years ago

A pi compilation fails at like 5 hours Im gonna push ahead and overclock from my 2.0Ghz -> 2.2Ghz to shorten it

Oh, but watch your temperatures. I'm running overclocked Pi 4 4GB all the time, but I have active cooling on it.

Also, that finished compilation was only qt

jiriks74 commented 2 years ago

@ShockwaveNN Are DesktopEditors available for aarch64 now? I'm trying to build it for Pi users as from what I know, DesktopEditors aren't available yet.

ShockwaveNN commented 2 years ago

Oops, sorry, my bad You're right, we still have not provided official builds of DesktopEditors

A little mess in my head, since usually people try to build our source for DocumentServer

neofeo commented 2 years ago

To be honest, a pi4 overclocked it's a decent compiling pc. Of course, you can't compare it with modern x86_64 hw. Hopefully this project will support and provide aarch64 binaries sooner or later.

jiriks74 commented 2 years ago

Well, it failed...

bill88t commented 2 years ago

Oh, but watch your temperatures. I'm running overclocked Pi 4 4GB all the time, but I have active cooling on it.

Pi400's got awesome temps even in summer. During the 5 hour hell, it maxes out at 55°C, I have a lot of headroom. And i've even opened mine..

Well, it failed...

If it didn't, we wouldn't be here.

I'm gonna leave it fail overnight, with some custom python logic I made. It will do each step in a seperate docker image, so that we won't have to repeat the good stuff. (qt)

This along with the overclock should help accelerate testing.

jiriks74 commented 2 years ago

@bill88t Would you be interesting in making a fork for this? I think that splitting the build scripts into multiple files and then running them one by one in Dockerfile, we could have everything work pretty well with cache. I'd create a fork where I'd try to do this and I'd invite you, but these build scripts are pretty confusing to me...

bill88t commented 2 years ago

@bill88t Would you be interesting in making a fork for this? I think that splitting the build scripts into multiple files and then running them one by one in Dockerfile, we could have everything work pretty well with cache. I'd create a fork where I'd try to do this and I'd invite you, but these build scripts are pretty confusing to me...

https://github.com/bill88t/build_tools is where I put what im running tonight Its all gonna build docker images, which I can inspect later

bill88t commented 2 years ago

To be honest, a pi4 overclocked it's a decent compiling pc.

iowait disagrees

https://github.com/bill88t/build_tools is where I put what im running tonight Its all gonna build docker images, which I can inspect later

Needs more work to reach to the point we are in now, imma check back in a few days worth of tests

bill88t commented 2 years ago

Another cause of concern is: PXL_20220524_140847258 (Sorry for having it sent from a picture)

ShockwaveNN commented 2 years ago

@bill88t seems that default repos provide only 8.10 version of Nodejs

I think you can manually install newer one (I think latest one will be good, but we've using 10.xx something, since we didn't proper tested it on newer version) manually and ./automate.py script will be agree with newer version

bill88t commented 2 years ago

I think you can manually install newer one

Ok I will give it a try


I successfully reached the title error from within my own scripts.

The culprit is make_common.make()

I know this isn't much but since I have compiled successfully till layer 4 this means I only have to edit layer 5 to test changes. I will follow up with any further findings.

bill88t commented 2 years ago

Forcing nodejs to install beforehand, will result to:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
       Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
       Depends: node-ansi-color-table but it is not going to be installed
       Depends: node-archy but it is not going to be installed
       Depends: node-block-stream but it is not going to be installed
       Depends: node-fstream (>= 0.1.22) but it is not going to be installed
       Depends: node-fstream-ignore but it is not going to be installed
       Depends: node-github-url-from-git but it is not going to be installed
       Depends: node-glob (>= 3.1.21) but it is not going to be installed
       Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
       Depends: node-inherits but it is not going to be installed
       Depends: node-ini (>= 1.1.0) but it is not going to be installed
       Depends: node-lockfile but it is not going to be installed
       Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
       Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
       Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
       Depends: node-gyp (>= 0.10.9) but it is not going to be installed
       Depends: node-nopt (>= 3.0.1) but it is not going to be installed
       Depends: node-npmlog but it is not going to be installed
       Depends: node-once but it is not going to be installed
       Depends: node-osenv but it is not going to be installed
       Depends: node-read but it is not going to be installed
       Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
       Depends: node-request (>= 2.25.0) but it is not going to be installed
       Depends: node-retry but it is not going to be installed
       Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
       Depends: node-semver (>= 2.1.0) but it is not going to be installed
       Depends: node-sha but it is not going to be installed
       Depends: node-slide but it is not going to be installed
       Depends: node-tar (>= 0.1.18) but it is not going to be installed
       Depends: node-underscore but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

These package installs were not requested by my scripts.

My layer 1 dockerfile forces the install by running:

RUN apt-get update && apt-get -y install curl

RUN curl -sL https://deb.nodesource.com/setup_10.x |  bash -

before the normal nodejs install. This means, 10.x will always be installed.

As a reminder we are building in a ubuntu 18.04 container.

bill88t commented 2 years ago

Solving this by removing the dependency to the npm package as npm is already installed through this nodejs

bill88t commented 2 years ago

build_tools/scripts/core_common/modules/v8.py

base_args64 = "target_cpu=\\\"x64\\\" v8_target_cpu=\\\"x64\\\" v8_static_library=true is_component_build=false v8_use_snapshot=false"
base_args32 = "target_cpu=\\\"x86\\\" v8_target_cpu=\\\"x86\\\" v8_static_library=true is_component_build=false v8_use_snapshot=false"
bill88t commented 2 years ago

Also found that the v8_89 check for linux_arm64 is broken Overriding it temporarily

bill88t commented 2 years ago

why don't we just use uname().machine.startswith('a')? that will only be true for arm64 / aarch64 / armv7l / armv6

bill88t commented 2 years ago

I have passed the title's error, however the part where i'm stuck now is a bit weird

WARNING: 'v8/third_party/logdog/logdog' is no longer part of this client.
It is recommended that you manually remove it or use 'gclient sync -D' next time.
________ running 'vpython third_party/depot_tools/update_depot_tools_toggle.py --disable' in '/core/Common/3dParty/v8_89/v8'
________ running 'vpython build/landmines.py --landmine-scripts tools/get_landmines.py' in '/core/Common/3dParty/v8_89/v8'
________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-clang-format -s buildtools/linux64/clang-format.sha1' in '/core/Common/3dParty/v8_89/v8'
________ running 'download_from_google_storage --no_resume --no_auth -u --bucket v8-wasm-spec-tests -s test/wasm-spec-tests/tests.tar.gz.sha1' in '/core/Common/3dParty/v8_89/v8'
________ running 'download_from_google_storage --no_resume --no_auth -u --bucket v8-wasm-spec-tests -s test/wasm-js/tests.tar.gz.sha1' in '/core/Common/3dParty/v8_89/v8'
________ running 'vpython build/linux/sysroot_scripts/install-sysroot.py --arch=arm64' in '/core/Common/3dParty/v8_89/v8'
________ running 'vpython tools/clang/scripts/update.py' in '/core/Common/3dParty/v8_89/v8'
________ running 'vpython build/util/lastchange.py -o build/util/LASTCHANGE' in '/core/Common/3dParty/v8_89/v8'
gn gen out.gn/linux_arm64 --args="v8_static_library=true is_component_build=false v8_monolithic=true v8_use_external_startup_data=false use_custom_libcxx=false treat_warnings_as_errors=false target_cpu=\"arm64\" v8_target_cpu=\"arm64\" use_sysroot=true is_debug=false"
Traceback (most recent call last):
  File "/build_tools/scripts/../../core/Common/3dParty/v8_89/depot_tools/gn.py", line 74, in <module>
    sys.exit(main(sys.argv))
  File "/build_tools/scripts/../../core/Common/3dParty/v8_89/depot_tools/gn.py", line 69, in main
    return subprocess.call([gn_path] + args[1:])
  File "/usr/lib/python3.6/subprocess.py", line 287, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/core/Common/3dParty/v8_89/v8/buildtools/linux64/gn': '/core/Common/3dParty/v8_89/v8/buildtools/linux64/gn'
Error (gn): 1

It is weird because after exporting the container's root I can clearly see the file being there.. image To make it clear, the container's root starts from "export". Please, for this I don't know what to do.

I will soon open a pr with the fixed scripts for up to here.

bill88t commented 2 years ago

Updated the title since, we passed that error. Now that I have fast testing readily available (docker image that has everything up built till before v8), it should take far less to pass through errors.

bill88t commented 2 years ago

Oh it appears as so gn is an x64 binary, this could explain the issue. Proof: image (Box64 is a x64 -> arm64 translation layer and automatically kicks in on x64 binaries)

bill88t commented 2 years ago

Created custom logic for compiling gn My pi is now compiling it again from the start with the pr code, cya is a few billion years

fendaq commented 2 years ago

we must compile ninja and gn,because depot_tools just provide x64 binary and dont use newlst gn version, because some function has removed from new version, use https://github.com/asdfghjjklllllaaa/gn.git

bill88t commented 2 years ago

Oh ok, I already made the logic for gn (I will change the repo), cancelling and adding ninja logic too Is the source trusted though? Tysm!

bill88t commented 2 years ago

Nevermind instead of using that souce I will instead use the original and: base.cmd("git", ["checkout", "23d22bcaa71666e872a31fd3ec363727f305417e"], False) which is the same commit

bill88t commented 2 years ago

Those worked just fine. But the compile failed a few inches later, since clang needs the same treatment..

fendaq commented 2 years ago

base.cmd2("gn", ["gen", "out.gn/linux_64", "--args=\"is_debug=false " + base_args64 + " is_clang=" + "true "+" clang_base_path=\\"/usr/\\" " +"clang_use_chrome_plugins=false" + " use_sysroot=false treat_warnings_as_errors=false\""])

fendaq commented 2 years ago

base_args64 = "target_cpu=\\"arm64\\" v8_target_cpu=\\"arm64\\" v8_static_library=true is_component_build=false v8_use_snapshot=false"

fendaq commented 2 years ago

no need to compile clang ,we can use system clang

bill88t commented 2 years ago

Using system clang I get many errors and warnings like

clang++: error: unknown argument: '-fcrash-diagnostics-dir=../../tools/clang/crashreports'
clang++: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]

Note: system clang is 6, the clang that comes with it is 12

bill88t commented 2 years ago

I have tried compiling clang instead of using system, but there were library errors