mirror of
https://github.com/ONLYOFFICE/build_tools.git
synced 2026-04-07 14:06:31 +08:00
Compare commits
32 Commits
feature/lo
...
v9.2.1.12
| Author | SHA1 | Date | |
|---|---|---|---|
| c69158af8f | |||
| b47b412529 | |||
| 430a9878e5 | |||
| 561c648069 | |||
| df1c566005 | |||
| d548d731ae | |||
| 4d767c127b | |||
| 71d9e34164 | |||
| d3a2f05945 | |||
| 97b4421e3c | |||
| 73576ff817 | |||
| b4ba33bb69 | |||
| e04df1ba9a | |||
| dd148a105e | |||
| acf75749c2 | |||
| 354e4a6a04 | |||
| b85fb9c07c | |||
| 40b95455a0 | |||
| cc24ee8e85 | |||
| 62ab1f9935 | |||
| dd26863a2b | |||
| c02a387a64 | |||
| 0fd6852fe8 | |||
| 44b6d2d64f | |||
| b2ce2bbcad | |||
| 4ca5e4bcb5 | |||
| 2ffc1b9347 | |||
| 5a403cb3ac | |||
| d435dd496b | |||
| 252a5c306d | |||
| fc9d060a78 | |||
| 6c700fe492 |
@ -37,9 +37,11 @@ def is_os_64bit():
|
||||
return platform.machine().endswith('64')
|
||||
|
||||
def is_os_arm():
|
||||
if -1 == platform.machine().find('arm'):
|
||||
return False
|
||||
return True
|
||||
if -1 != platform.machine().lower().find('arm'):
|
||||
return True
|
||||
if -1 != platform.machine().lower().find('aarch64'):
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_platform():
|
||||
return platform.machine().lower()
|
||||
@ -1894,8 +1896,6 @@ def set_sysroot_env():
|
||||
if "linux" == host_platform() and config.option("sysroot") != "":
|
||||
os.environ['PATH'] = config.option("sysroot") + "/usr/bin:" + get_env("PATH")
|
||||
os.environ['LD_LIBRARY_PATH'] = config.get_custom_sysroot_lib()
|
||||
os.environ['QMAKE_CUSTOM_SYSROOT'] = config.option("sysroot")
|
||||
os.environ['PKG_CONFIG_PATH'] = config.get_custom_sysroot_lib() + "/pkgconfig"
|
||||
os.environ['CC'] = config.get_custom_sysroot_bin() + "/gcc"
|
||||
os.environ['CXX'] = config.get_custom_sysroot_bin() + "/g++"
|
||||
os.environ['CFLAGS'] = "--sysroot=" + config.option("sysroot")
|
||||
|
||||
@ -63,12 +63,6 @@ def parse():
|
||||
if not check_option("platform", "win_64"):
|
||||
options["platform"] = "win_64 " + options["platform"]
|
||||
|
||||
if ("linux" == host_platform) and check_option("platform", "linux_arm64") and not base.is_os_arm():
|
||||
if not check_option("platform", "linux_64"):
|
||||
# linux_64 binaries need only for desktop
|
||||
if check_option("module", "desktop"):
|
||||
options["platform"] = "linux_64 " + options["platform"]
|
||||
|
||||
if check_option("platform", "xp") and ("windows" == host_platform):
|
||||
options["platform"] += " win_64_xp win_32_xp"
|
||||
|
||||
@ -93,17 +87,11 @@ def parse():
|
||||
options["sysroot"] = ""
|
||||
elif options["sysroot"] == "1":
|
||||
dst_dir = os.path.abspath(base.get_script_dir(__file__) + '/../tools/linux/sysroot')
|
||||
custom_sysroot = dst_dir + '/sysroot_ubuntu_1604'
|
||||
options["sysroot"] = custom_sysroot
|
||||
if not os.path.isdir(custom_sysroot):
|
||||
print("Sysroot is not found, downloading...")
|
||||
sysroot_url = 'https://github.com/ONLYOFFICE-data/build_tools_data/raw/refs/heads/master/sysroot/sysroot_ubuntu_1604.tar.xz'
|
||||
base.download(sysroot_url, dst_dir + '/sysroot_ubuntu_1604.tar.xz')
|
||||
os.mkdir(custom_sysroot)
|
||||
print("Unpacking...")
|
||||
base.cmd2('tar', ['-xf', dst_dir + '/sysroot_ubuntu_1604.tar.xz', '-C', dst_dir])
|
||||
if os.path.exists(dst_dir + '/sysroot_ubuntu_1604.tar.xz'):
|
||||
os.remove(dst_dir + '/sysroot_ubuntu_1604.tar.xz')
|
||||
dst_dir_amd64 = dst_dir + "/ubuntu16-amd64-sysroot"
|
||||
dst_dir_arm64 = dst_dir + "/ubuntu16-arm64-sysroot"
|
||||
if not base.is_dir(dst_dir_amd64) or not base.is_dir(dst_dir_arm64):
|
||||
base.cmd_in_dir(dst_dir, "python3", ["./fetch.py"])
|
||||
options["sysroot"] = dst_dir
|
||||
|
||||
if is_cef_107():
|
||||
extend_option("config", "cef_version_107")
|
||||
|
||||
@ -235,8 +235,7 @@ def make_xp():
|
||||
base.replaceInFile("depot_tools/cipd.ps1", "windows-386", "windows-amd64")
|
||||
|
||||
# old variant
|
||||
#path_to_python2 = "/depot_tools/win_tools-2_7_13_chromium7_bin/python/bin"
|
||||
path_to_python2 = "/depot_tools/bootstrap-2@3_8_10_chromium_23_bin/python/bin"
|
||||
path_to_python2 = "/depot_tools/bootstrap-2@3_11_8_chromium_35_bin/python/bin"
|
||||
os.environ["PATH"] = os.pathsep.join([base_dir + "/depot_tools",
|
||||
base_dir + path_to_python2,
|
||||
config.option("vs-path") + "/../Common7/IDE",
|
||||
|
||||
@ -7,6 +7,25 @@ import base
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
def clean():
|
||||
if base.is_dir("depot_tools"):
|
||||
base.delete_dir_with_access_error("depot_tools")
|
||||
base.delete_dir("depot_tools")
|
||||
if base.is_dir("v8"):
|
||||
base.delete_dir_with_access_error("v8")
|
||||
base.delete_dir("v8")
|
||||
if base.is_exist("./.gclient"):
|
||||
base.delete_file("./.gclient")
|
||||
if base.is_exist("./.gclient_entries"):
|
||||
base.delete_file("./.gclient_entries")
|
||||
if base.is_exist("./.gclient_previous_sync_commits"):
|
||||
base.delete_file("./.gclient_previous_sync_commits")
|
||||
if base.is_exist("./.gcs_entries"):
|
||||
base.delete_file("./.gcs_entries")
|
||||
if base.is_exist("./.cipd"):
|
||||
base.delete_dir("./.cipd")
|
||||
return
|
||||
|
||||
def change_bootstrap():
|
||||
base.move_file("./depot_tools/bootstrap/manifest.txt", "./depot_tools/bootstrap/manifest.txt.bak")
|
||||
content = "# changed by build_tools\n\n"
|
||||
@ -149,6 +168,8 @@ def make():
|
||||
if not base.is_dir(base_dir):
|
||||
base.create_dir(base_dir)
|
||||
|
||||
base.common_check_version("v8", "1", clean)
|
||||
|
||||
if ("mac" == base.host_platform()):
|
||||
base.cmd("git", ["config", "--global", "http.postBuffer", "157286400"], True)
|
||||
|
||||
|
||||
@ -244,9 +244,11 @@ def make():
|
||||
#base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/encrypt/ui/engine/database/{9AB4BBA8-A7E5-48D5-B683-ECE76A020BB1}", root_dir + "/editors/sdkjs-plugins/{9AB4BBA8-A7E5-48D5-B683-ECE76A020BB1}")
|
||||
base.copy_sdkjs_plugin(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins", root_dir + "/editors/sdkjs-plugins", "sendto", True)
|
||||
|
||||
isUseAgent = False
|
||||
isUseAgent = True
|
||||
if isWindowsXP:
|
||||
isUseAgent = False
|
||||
if (0 == platform.find("mac")) and (config.check_option("config", "use_v8")):
|
||||
isUseAgent = False
|
||||
|
||||
if (isUseAgent):
|
||||
agent_plugin_dir = git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/ai-agent"
|
||||
|
||||
@ -131,6 +131,8 @@ def make_tar():
|
||||
make_args = ["tar"]
|
||||
if common.platform == "darwin_arm64":
|
||||
make_args += ["-e", "UNAME_M=arm64"]
|
||||
if common.platform == "darwin_x86_64":
|
||||
make_args += ["-e", "UNAME_M=x86_64"]
|
||||
if common.platform == "linux_aarch64":
|
||||
make_args += ["-e", "UNAME_M=aarch64"]
|
||||
if not branding.onlyoffice:
|
||||
|
||||
@ -3,14 +3,14 @@
|
||||
platformPrefixes = {
|
||||
"windows_x64": "win_64",
|
||||
"windows_x86": "win_32",
|
||||
"windows_arm64": "win_arm64",
|
||||
"windows_x64_xp": "win_64_xp",
|
||||
"windows_x86_xp": "win_32_xp",
|
||||
"darwin_x86_64": "mac_64",
|
||||
"darwin_arm64": "mac_arm64",
|
||||
"darwin_x86_64": "mac_64",
|
||||
"darwin_x86_64_v8": "mac_64",
|
||||
"linux_x86_64": "linux_64",
|
||||
"linux_aarch64": "linux_arm64",
|
||||
"linux_x86_64_cef": "linux_64",
|
||||
}
|
||||
|
||||
out_dir = "build_tools/out"
|
||||
|
||||
@ -44,7 +44,8 @@ def make_windows():
|
||||
"windows_x64": "x64",
|
||||
"windows_x64_xp": "x64",
|
||||
"windows_x86": "x86",
|
||||
"windows_x86_xp": "x86"
|
||||
"windows_x86_xp": "x86",
|
||||
"windows_arm64": "arm64"
|
||||
}[common.platform]
|
||||
xp = common.platform.endswith("_xp")
|
||||
|
||||
@ -61,16 +62,17 @@ def make_windows():
|
||||
if not xp:
|
||||
make_prepare()
|
||||
make_zip()
|
||||
make_inno()
|
||||
if branding.onlyoffice:
|
||||
make_inno()
|
||||
make_inno("standalone")
|
||||
make_inno("update")
|
||||
make_advinst()
|
||||
if arch != "arm64":
|
||||
make_inno("update")
|
||||
make_advinst()
|
||||
|
||||
make_prepare("commercial")
|
||||
make_zip("commercial")
|
||||
make_inno("commercial")
|
||||
make_advinst("commercial")
|
||||
make_prepare("commercial")
|
||||
make_zip("commercial")
|
||||
make_inno("commercial")
|
||||
make_advinst("commercial")
|
||||
else:
|
||||
make_prepare("xp")
|
||||
make_zip("xp")
|
||||
@ -86,7 +88,8 @@ def make_prepare(edition = "opensource"):
|
||||
args = [
|
||||
"-Version", package_version,
|
||||
"-Arch", arch,
|
||||
"-Target", edition
|
||||
"-Target", edition,
|
||||
"-CompanyName", branding.company_name
|
||||
]
|
||||
if common.sign:
|
||||
args += ["-Sign"]
|
||||
@ -104,7 +107,8 @@ def make_zip(edition = "opensource"):
|
||||
args = [
|
||||
"-Version", package_version,
|
||||
"-Arch", arch,
|
||||
"-Target", edition
|
||||
"-Target", edition,
|
||||
"-CompanyName", branding.company_name
|
||||
]
|
||||
# if common.sign:
|
||||
# args += ["-Sign"]
|
||||
@ -344,7 +348,9 @@ def make_linux():
|
||||
if common.deploy:
|
||||
for t in branding.desktop_make_targets:
|
||||
utils.log_h2("desktop " + edition + " " + t["make"] + " deploy")
|
||||
ret = s3_upload(utils.glob_path(t["src"]), t["dst"])
|
||||
ret = s3_upload(
|
||||
[i for i in utils.glob_path(t["src"]) if "enterprise-help" not in i],
|
||||
t["dst"])
|
||||
utils.set_summary("desktop " + edition + " " + t["make"] + " deploy", ret)
|
||||
|
||||
utils.set_cwd(common.workspace_dir)
|
||||
|
||||
@ -100,11 +100,15 @@ def make(platform, project, qmake_config_addon="", is_no_errors=False):
|
||||
if "1" == config.option("use-clang"):
|
||||
build_params.append("-spec")
|
||||
build_params.append("linux-clang-libc++")
|
||||
|
||||
if "" != config.option("sysroot"):
|
||||
os.environ['QMAKE_CUSTOM_SYSROOT'] = config.option("sysroot")
|
||||
os.environ['PKG_CONFIG_PATH'] = config.get_custom_sysroot_lib() + "/pkgconfig"
|
||||
|
||||
base.cmd_exe(qmake_app, build_params)
|
||||
|
||||
if "" != config.option("sysroot"):
|
||||
base.set_sysroot_env()
|
||||
base.cmd_exe(qmake_app, build_params) # calls cmd_exe to pass os.env
|
||||
else:
|
||||
base.cmd(qmake_app, build_params)
|
||||
|
||||
base.correct_makefile_after_qmake(platform, makefile)
|
||||
if ("1" == config.option("clean")):
|
||||
|
||||
2
tools/linux/.gitignore
vendored
Normal file
2
tools/linux/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
qt_build
|
||||
packages_complete
|
||||
@ -6,6 +6,7 @@ import base
|
||||
import os
|
||||
import subprocess
|
||||
import deps
|
||||
import qt_binary_build
|
||||
|
||||
def get_branch_name(directory):
|
||||
cur_dir = os.getcwd()
|
||||
@ -57,12 +58,7 @@ def install_qt():
|
||||
return
|
||||
|
||||
def install_qt_prebuild():
|
||||
url_amd64 = "https://github.com/ONLYOFFICE-data/build_tools_data/raw/refs/heads/master/qt/qt_binary_linux_amd64.7z"
|
||||
base.download(url_amd64, "./qt_amd64.7z")
|
||||
base.extract("./qt_amd64.7z", "./qt_build")
|
||||
base.create_dir("./qt_build/Qt-5.9.9")
|
||||
base.cmd("mv", ["./qt_build/qt_amd64", "./qt_build/Qt-5.9.9/gcc_64"])
|
||||
base.setup_local_qmake("./qt_build/Qt-5.9.9/gcc_64/bin")
|
||||
base.cmd("python3", ["qt_binary_fetch.py", "all"])
|
||||
return
|
||||
|
||||
if not base.is_file("./node_js_setup_14.x"):
|
||||
@ -72,7 +68,7 @@ if not base.is_file("./node_js_setup_14.x"):
|
||||
if not base.is_dir("./qt_build"):
|
||||
print("install qt...")
|
||||
if base.get_env("DO_NOT_USE_PREBUILD_QT") == "1":
|
||||
install_qt()
|
||||
qt_binary_build.install_qt()
|
||||
else:
|
||||
install_qt_prebuild()
|
||||
|
||||
|
||||
5
tools/linux/cmake.sh
Executable file
5
tools/linux/cmake.sh
Executable file
@ -0,0 +1,5 @@
|
||||
wget https://github.com/Kitware/CMake/releases/download/v3.30.0/cmake-3.30.0-linux-x86_64.tar.gz
|
||||
tar -xzf cmake-3.30.0-linux-x86_64.tar.gz -C /opt
|
||||
ln -s /opt/cmake-3.30.0-linux-x86_64/bin/cmake /usr/local/bin/cmake
|
||||
ln -s /opt/cmake-3.30.0-linux-x86_64/bin/ctest /usr/local/bin/ctest
|
||||
rm cmake-3.30.0-linux-x86_64.tar.gz
|
||||
47
tools/linux/qt_binary_build.py
Executable file
47
tools/linux/qt_binary_build.py
Executable file
@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
sys.path.append('../../scripts')
|
||||
import base
|
||||
import os
|
||||
import subprocess
|
||||
import deps
|
||||
|
||||
def install_qt():
|
||||
# qt
|
||||
if not base.is_file("./qt_source_5.9.9.tar.xz"):
|
||||
base.download("https://github.com/ONLYOFFICE-data/build_tools_data/raw/refs/heads/master/qt/qt-everywhere-opensource-src-5.9.9.tar.xz", "./qt_source_5.9.9.tar.xz")
|
||||
|
||||
if not base.is_dir("./qt-everywhere-opensource-src-5.9.9"):
|
||||
base.cmd("tar", ["-xf", "./qt_source_5.9.9.tar.xz"])
|
||||
|
||||
qt_params = ["-opensource",
|
||||
"-confirm-license",
|
||||
"-release",
|
||||
"-shared",
|
||||
"-accessibility",
|
||||
"-prefix",
|
||||
"./../qt_build/Qt-5.9.9/gcc_64",
|
||||
"-qt-zlib",
|
||||
"-qt-libpng",
|
||||
"-qt-libjpeg",
|
||||
"-qt-xcb",
|
||||
"-qt-pcre",
|
||||
"-no-sql-sqlite",
|
||||
"-no-qml-debug",
|
||||
"-gstreamer", "1.0",
|
||||
"-nomake", "examples",
|
||||
"-nomake", "tests",
|
||||
"-skip", "qtenginio",
|
||||
"-skip", "qtlocation",
|
||||
"-skip", "qtserialport",
|
||||
"-skip", "qtsensors",
|
||||
"-skip", "qtxmlpatterns",
|
||||
"-skip", "qt3d",
|
||||
"-skip", "qtwebview",
|
||||
"-skip", "qtwebengine"]
|
||||
|
||||
base.cmd_in_dir("./qt-everywhere-opensource-src-5.9.9", "./configure", qt_params)
|
||||
base.cmd_in_dir("./qt-everywhere-opensource-src-5.9.9", "make", ["-j", "4"])
|
||||
base.cmd_in_dir("./qt-everywhere-opensource-src-5.9.9", "make", ["install"])
|
||||
return
|
||||
67
tools/linux/qt_binary_fetch.py
Executable file
67
tools/linux/qt_binary_fetch.py
Executable file
@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import os
|
||||
sys.path.append('../../scripts')
|
||||
|
||||
import base
|
||||
|
||||
URL = "https://github.com/ONLYOFFICE-data/build_tools_data/raw/refs/heads/master/qt/"
|
||||
|
||||
SYSROOTS = {
|
||||
"amd64": "qt_binary_5.9.9_gcc_64.7z",
|
||||
"arm64": "qt_binary_5.9.9_gcc_arm64.7z",
|
||||
}
|
||||
|
||||
COMPILERS = {
|
||||
"amd64": "gcc_64",
|
||||
"arm64": "gcc_arm64",
|
||||
}
|
||||
|
||||
def download_and_extract(name):
|
||||
cur_dir = os.getcwd()
|
||||
os.chdir("./qt_build/Qt-5.9.9")
|
||||
archive = SYSROOTS[name]
|
||||
folder = "./" + COMPILERS[name]
|
||||
if (base.is_dir(folder)):
|
||||
base.delete_dir(folder)
|
||||
archive_file = "./" + archive
|
||||
base.download(URL + archive, archive_file)
|
||||
base.extract(archive_file, "./")
|
||||
os.chdir(cur_dir)
|
||||
base.setup_local_qmake("./qt_build/Qt-5.9.9/" + COMPILERS[name] + "/bin")
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: fetch.py [amd64|arm64|all]")
|
||||
sys.exit(1)
|
||||
|
||||
target = sys.argv[1]
|
||||
|
||||
if not base.is_dir("./qt_build/Qt-5.9.9"):
|
||||
base.create_dir("./qt_build/Qt-5.9.9")
|
||||
|
||||
targets = []
|
||||
if ("all" == target):
|
||||
targets.append("amd64")
|
||||
targets.append("arm64")
|
||||
elif ("arm64" == target) and not base.is_os_arm():
|
||||
targets.append("amd64")
|
||||
targets.append(target)
|
||||
else:
|
||||
targets.append(target)
|
||||
|
||||
if (0 == len(targets)):
|
||||
print(f"Unknown target: {target}")
|
||||
print("Valid values: amd64, arm64, all")
|
||||
sys.exit(1)
|
||||
|
||||
for name in targets:
|
||||
download_and_extract(name)
|
||||
|
||||
if "arm64" in targets and not base.is_os_arm():
|
||||
base.move_dir("./qt_build/Qt-5.9.9/gcc_arm64/bin", "./qt_build/Qt-5.9.9/gcc_arm64/_bin")
|
||||
base.move_dir("./qt_build/Qt-5.9.9/gcc_64/bin", "./qt_build/Qt-5.9.9/gcc_arm64/bin")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
2
tools/linux/sysroot/.gitignore
vendored
Normal file
2
tools/linux/sysroot/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
*sysroot*
|
||||
|
||||
@ -1,82 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
sys.path.append('../../../scripts')
|
||||
import base
|
||||
import os
|
||||
import shutil
|
||||
import fix_symlinks
|
||||
|
||||
def bash_chroot(command, sysroot):
|
||||
base.cmd2('sudo -S chroot', [sysroot, '/bin/bash -c', '\"' + command + ' \"'])
|
||||
|
||||
|
||||
def download_sysroot():
|
||||
curr_dir = base.get_script_dir(__file__)
|
||||
tmp_sysroot_ubuntu_dir = curr_dir + '/sysroot_ubuntu_1604'
|
||||
|
||||
if os.path.isdir(tmp_sysroot_ubuntu_dir):
|
||||
shutil.rmtree(tmp_sysroot_ubuntu_dir)
|
||||
|
||||
# debootstrap for downloading sysroot
|
||||
base.cmd2('sudo -S apt-get', ['install', 'debootstrap'])
|
||||
|
||||
archive_ubuntu_url = 'http://archive.ubuntu.com/ubuntu/'
|
||||
base.cmd2('sudo -S debootstrap', ['--arch=amd64', 'xenial', tmp_sysroot_ubuntu_dir, archive_ubuntu_url])
|
||||
|
||||
# setup a new sources
|
||||
base.cmd2('sudo -S cp', [curr_dir + '/sources.list', tmp_sysroot_ubuntu_dir + '/etc/apt/sources.list'])
|
||||
|
||||
bash_chroot('apt update -y', tmp_sysroot_ubuntu_dir)
|
||||
bash_chroot('apt upgrade -y', tmp_sysroot_ubuntu_dir)
|
||||
|
||||
apt_libs = ["build-essential"]
|
||||
apt_libs += ["libpthread-stubs0-dev"]
|
||||
apt_libs += ["zlib1g-dev"]
|
||||
apt_libs += ["curl"]
|
||||
apt_libs += ["libc6-dev"]
|
||||
apt_libs += ["glib-2.0-dev"]
|
||||
apt_libs += ["libglu1-mesa-dev"]
|
||||
apt_libs += ["libgtk-3-dev"]
|
||||
apt_libs += ["libpulse-dev"]
|
||||
apt_libs += ["libasound2-dev"]
|
||||
apt_libs += ["libatspi2.0-dev"]
|
||||
apt_libs += ["libcups2-dev"]
|
||||
apt_libs += ["libdbus-1-dev"]
|
||||
apt_libs += ["libicu-dev"]
|
||||
apt_libs += ["libgstreamer1.0-dev"]
|
||||
apt_libs += ["libgstreamer-plugins-base1.0-dev"]
|
||||
apt_libs += ["libx11-xcb-dev"]
|
||||
apt_libs += ["libxcb*"]
|
||||
apt_libs += ["libxi-dev"]
|
||||
apt_libs += ["libxrender-dev"]
|
||||
apt_libs += ["libxss-dev"]
|
||||
apt_libs += ["libxkbcommon-dev"]
|
||||
apt_libs += ["libxkbcommon-x11-dev"]
|
||||
apt_libs += ["libnotify-dev"]
|
||||
apt_libs += ["gtk+-3.0-dev"]
|
||||
|
||||
apt_libs_str = ""
|
||||
for apt_lib in apt_libs:
|
||||
apt_libs_str += apt_lib + " "
|
||||
bash_chroot('apt install -y ' + apt_libs_str, tmp_sysroot_ubuntu_dir)
|
||||
|
||||
# # downloading arm toolchain
|
||||
arm_toolchain_url = 'https://releases.linaro.org/components/toolchain/binaries/5.4-2017.05/aarch64-linux-gnu/'
|
||||
arm_toolchain_tar_filename = 'gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz'
|
||||
arm_toolchain_output_dir = 'gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu'
|
||||
base.cmd2('wget', [arm_toolchain_url + arm_toolchain_tar_filename])
|
||||
base.cmd2('tar', ['-xf', arm_toolchain_tar_filename])
|
||||
base.cmd2('sudo -S rsync', ['-avh', '--progress', curr_dir + '/' + arm_toolchain_output_dir + '/', tmp_sysroot_ubuntu_dir + '/usr/'])
|
||||
shutil.rmtree(arm_toolchain_output_dir)
|
||||
os.remove(arm_toolchain_tar_filename)
|
||||
|
||||
base.cmd2('sudo -S chmod', ['-R', 'o+rwx', tmp_sysroot_ubuntu_dir])
|
||||
|
||||
# fix symlinks
|
||||
fix_symlinks.fix_symlinks(tmp_sysroot_ubuntu_dir)
|
||||
|
||||
return
|
||||
|
||||
if __name__ == '__main__':
|
||||
download_sysroot()
|
||||
@ -1,4 +0,0 @@
|
||||
set(CMAKE_C_FLAGS $ENV{CFLAGS})
|
||||
set(CMAKE_CXX_FLAGS $ENV{CXXFLAGS})
|
||||
set(CMAKE_C_LINKER_FLAGS $ENV{LDFLAGS})
|
||||
set(CMAKE_CXX_LINKER_FLAGS $ENV{LDFLAGS})
|
||||
39
tools/linux/sysroot/fetch.py
Executable file
39
tools/linux/sysroot/fetch.py
Executable file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import os
|
||||
sys.path.append('../../../scripts')
|
||||
|
||||
import base
|
||||
|
||||
URL = "https://github.com/ONLYOFFICE-data/build_tools_data/raw/refs/heads/master/sysroot/"
|
||||
|
||||
SYSROOTS = {
|
||||
"amd64": "ubuntu16-amd64-sysroot.tar.gz",
|
||||
"arm64": "ubuntu16-arm64-sysroot.tar.gz",
|
||||
}
|
||||
|
||||
def download_and_extract(name):
|
||||
archive = SYSROOTS[name]
|
||||
base.download(URL + archive, "./" + archive)
|
||||
base.cmd("tar", ["-xzf", "./" + archive])
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: fetch.py [amd64|arm64|all]")
|
||||
sys.exit(1)
|
||||
|
||||
target = sys.argv[1]
|
||||
|
||||
if target == "all":
|
||||
for name in SYSROOTS:
|
||||
download_and_extract(name)
|
||||
elif target in SYSROOTS:
|
||||
download_and_extract(target)
|
||||
else:
|
||||
print(f"Unknown target: {target}")
|
||||
print("Valid values: amd64, arm64, all")
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@ -1,45 +0,0 @@
|
||||
import os
|
||||
import sys
|
||||
import uuid
|
||||
|
||||
# change symbolic link to relative paths
|
||||
def fix_symlinks(top_dir='./sysroot_ubuntu_1604'):
|
||||
for root, dirs, files in os.walk(top_dir):
|
||||
for name in files:
|
||||
path = os.path.join(root, name)
|
||||
if not os.path.islink(path):
|
||||
continue
|
||||
try:
|
||||
target = os.readlink(path)
|
||||
except OSError as e:
|
||||
print(f"Error reading link '{path}': {e}", file=sys.stderr)
|
||||
continue
|
||||
|
||||
if not target.startswith('/'):
|
||||
continue
|
||||
|
||||
new_target = top_dir + target
|
||||
new_target_rel = os.path.relpath(new_target, os.path.dirname(path))
|
||||
temp_name = f".tmp.{uuid.uuid4().hex}"
|
||||
temp_path = os.path.join(root, temp_name)
|
||||
try:
|
||||
os.symlink(new_target_rel, temp_path)
|
||||
except OSError as e:
|
||||
print(f"Failed to create temporary symlink for '{path}': {e}", file=sys.stderr)
|
||||
continue
|
||||
try:
|
||||
os.replace(temp_path, path)
|
||||
print(f"Updated: {path} -> {new_target_rel}")
|
||||
except OSError as e:
|
||||
print(f"Failed to replace symlink '{path}': {e}", file=sys.stderr)
|
||||
try:
|
||||
os.unlink(temp_path)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) > 1:
|
||||
directory = sys.argv[1]
|
||||
else:
|
||||
directory = './sysroot_ubuntu_1604'
|
||||
fix_symlinks(directory)
|
||||
@ -1,51 +0,0 @@
|
||||
#deb cdrom:[Ubuntu 16.04.2 LTS _Xenial Xerus_ - Release amd64 (20170215.2)]/ xenial main restricted
|
||||
|
||||
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
|
||||
# newer versions of the distribution.
|
||||
deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
|
||||
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
|
||||
|
||||
## Major bug fix updates produced after the final release of the
|
||||
## distribution.
|
||||
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
|
||||
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
|
||||
|
||||
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
|
||||
## team. Also, please note that software in universe WILL NOT receive any
|
||||
## review or updates from the Ubuntu security team.
|
||||
deb http://us.archive.ubuntu.com/ubuntu/ xenial universe
|
||||
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial universe
|
||||
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe
|
||||
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe
|
||||
|
||||
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
|
||||
## team, and may not be under a free licence. Please satisfy yourself as to
|
||||
## your rights to use the software. Also, please note that software in
|
||||
## multiverse WILL NOT receive any review or updates from the Ubuntu
|
||||
## security team.
|
||||
deb http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
|
||||
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
|
||||
deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
|
||||
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
|
||||
|
||||
## N.B. software from this repository may not have been tested as
|
||||
## extensively as that contained in the main release, although it includes
|
||||
## newer versions of some applications which may provide useful features.
|
||||
## Also, please note that software in backports WILL NOT receive any review
|
||||
## or updates from the Ubuntu security team.
|
||||
deb http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
|
||||
# deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
|
||||
|
||||
## Uncomment the following two lines to add software from Canonical's
|
||||
## 'partner' repository.
|
||||
## This software is not part of Ubuntu, but is offered by Canonical and the
|
||||
## respective vendors as a service to Ubuntu users.
|
||||
# deb http://archive.canonical.com/ubuntu xenial partner
|
||||
# deb-src http://archive.canonical.com/ubuntu xenial partner
|
||||
|
||||
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
|
||||
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
|
||||
deb http://security.ubuntu.com/ubuntu xenial-security universe
|
||||
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
|
||||
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
|
||||
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
|
||||
Reference in New Issue
Block a user