ONLYOFFICE / build_tools

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

[ArchLinux] AttributeError: module 'boost' has no attribute 'make' #454

Open sl1pkn07 opened 2 years ago

sl1pkn07 commented 2 years ago

Describe your problem:

fail execution automate.py

  File "/media/COSAS/aplicaciones/onlyoffice/build_tools/./make.py", line 70, in <module>
    make_common.make()
  File "/media/COSAS/aplicaciones/onlyoffice/build_tools/scripts/core_common/make_common.py", line 35, in make
    boost.make()
AttributeError: module 'boost' has no attribute 'make'
Error (./make.py): 1

maybe a problem with python 3.10?

Steps to reproduce the problem:

clone this repo, edit the automate.py script for comment out all apt-get references. archlinux not exist that tool, but install by pacman (archlinux package manager) all dependencieds referenced in the script save and run automate.py script

Please make sure your error can be reproduced, Docker can be a great help sorry. im not use docker

build_tools base repo version: https://github.com/ONLYOFFICE/build_tools/commit/e31c77d42ce692374d41f1b798e7f6beec99ab88

Operating system: archlinux

Compiler version: gcc 11.2.0 python 3.10

sl1pkn07 commented 2 years ago

with some touch (disable boost, icu and openssl (also hunspell and glew), because is already installed in the system throught package manager), im able to build/install up to V8, with fails

gn gen out.gn/linux_64 --args="is_debug=false target_cpu=\"x64\" v8_target_cpu=\"x64\" v8_static_library=true is_component_build=false v8_use_snapshot=false is_clang=true use_sysroot=false treat_warnings_as_errors=false"
ERROR at //build/config/compiler/BUILD.gn:112:7: Script returned non-zero exit code.
      exec_script("//tools/clang/scripts/update.py", update_args, "trim string")
      ^----------
Current dir: /media/COSAS/aplicaciones/onlyoffice/core/Common/3dParty/v8/v8/out.gn/linux_64/
Command: python -- /media/COSAS/aplicaciones/onlyoffice/core/Common/3dParty/v8/v8/tools/clang/scripts/update.py --print-revision
Returned 1.
stderr:

  File "/media/COSAS/aplicaciones/onlyoffice/core/Common/3dParty/v8/v8/tools/clang/scripts/update.py", line 121
    print ' Done.'
    ^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

See //build/config/BUILDCONFIG.gn:518:3: which caused the file to be included.
  "//build/config/compiler:default_stack_frames",
  ^---------------------------------------------
Error (gn): 1
Error (./make.py): 1

wich also fail build due again python 3.10

:/

ShockwaveNN commented 2 years ago

Sorry, right now building onlyoffice from sources is supported only on Ubuntu

I don't think we got enough manpower to properly adapt this script to more Linux system

As far as I remember - most problems come from v8 build (as your latest message point out)

ShockwaveNN commented 2 years ago

I've created issue 56287 in our private issue tracker about build support on Arch Linux, but I don't think we'll made it any time soon

wwdhf commented 9 months ago

from modules import boost import cef import icu import openssl import curl import websocket import v8 import html2 import hunspell import glew import harfbuzz import hyphen import googletest import libvlc

def check_android_ndk_macos_arm(dir): if base.is_dir(dir + "/darwin-x86_64") and not base.is_dir(dir + "/darwin-arm64"): print("copy toolchain... [" + dir + "]") base.copy_dir(dir + "/darwin-x86_64", dir + "/darwin-arm64") return

def make(): script_dir = os.path.dirname(os.path.realpath(file)) sys.path.append(os.path.join(script_dir, 'scripts')) sys.path.append(os.path.join(script_dir, 'scripts/develop')) sys.path.append('scripts/develop/vendor') sys.path.append('scripts/core_common') sys.path.append('scripts/core_common/modules') if (config.check_option("platform", "android")) and (base.host_platform() == "mac") and (base.is_os_arm()): for toolchain in glob.glob(base.get_env("ANDROID_NDK_ROOT") + "/toolchains/*"): if base.is_dir(toolchain): check_android_ndk_macos_arm(toolchain + "/prebuilt") print(os.getcwd()) print(boost) boost.make()

Lucas-Baek-HYU commented 9 months ago

@wwdhf Thank you for your guide code :) I was able to do the build well by simply changing the import boost like your code! import boost → from modules import boost