Open bill88t opened 2 years ago
Gtk3 is still a WIP on box64. I would only attempt it natively... specially on an open source project.
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
Moved issue to build_tools
since it's base repo for all problems wich compilation from sources
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.
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.
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
> ________ 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
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.
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).
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 ],
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
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
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.
@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...
Yea, we kinda should set that environment up
@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)
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.
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.
A pi compilation fails at like 5 hours Im gonna push ahead and overclock from my 2.0Ghz -> 2.2Ghz to shorten it
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
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
@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.
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
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.
Well, it failed...
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.
@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 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
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
Another cause of concern is: (Sorry for having it sent from a picture)
@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
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.
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.
Solving this by removing the dependency to the npm package as npm is already installed through this nodejs
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"
Also found that the v8_89 check for linux_arm64 is broken Overriding it temporarily
why don't we just use uname().machine.startswith('a')
?
that will only be true for arm64 / aarch64 / armv7l / armv6
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.. 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.
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.
Oh it appears as so gn
is an x64 binary, this could explain the issue.
Proof:
(Box64 is a x64 -> arm64 translation layer and automatically kicks in on x64 binaries)
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
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
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!
Nevermind instead of using that souce I will instead use the original and:
base.cmd("git", ["checkout", "23d22bcaa71666e872a31fd3ec363727f305417e"], False)
which is the same commit
Those worked just fine. But the compile failed a few inches later, since clang needs the same treatment..
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\""])
base_args64 = "target_cpu=\\"arm64\\" v8_target_cpu=\\"arm64\\" v8_static_library=true is_component_build=false v8_use_snapshot=false"
no need to compile clang ,we can use system clang
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
I have tried compiling clang instead of using system, but there were library errors
This issue is unique.
Operating System
Linux
Version information
7.1.0
Expected Behavior
Compile
Actual Behavior
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.