in tools/selfhost/bootstrap.py [0:0]
def install_deltaupdate_files(script_dir):
"""Installs deltaupdate tools from the bundle"""
print("Installing DeltaUpdate DeltaProcessor and DiffGen tools ...")
# Install .net core 5 runtime for DiffGen Tools
print("DiffGen - Installing .NET core 5 runtime ...")
print("DiffGen .netcore5 - download packages-microsoft-prod.deb")
ret_code = run_cmd("wget https://packages.microsoft.com/config/ubuntu/"
"18.04/packages-microsoft-prod.deb "
"-O packages-microsoft-prod.deb"
)
if ret_code != 0:
return ret_code
print("DiffGen .netcore5 - dpkg install packages-microsoft-prod.deb")
ret_code = run_cmd("dpkg -i packages-microsoft-prod.deb")
if ret_code != 0:
return ret_code
print("DiffGen .netcore5 - apt update")
ret_code = run_cmd("apt-get update")
if ret_code != 0:
return ret_code
print("DiffGen .netcore5 - apt install apt-transport-https")
ret_code = run_cmd("apt-get install -y apt-transport-https")
if ret_code != 0:
return ret_code
print("DiffGen .netcore5 - apt update")
ret_code = run_cmd("apt-get update")
if ret_code != 0:
return ret_code
print("DiffGen .netcore5 - apt install aspnetcore-runtime-5.0")
ret_code = run_cmd("apt-get install -y aspnetcore-runtime-5.0")
if ret_code != 0:
return ret_code
# unzip
filename = 'deltaupdate_files.zip'
zip_file = os.path.join(script_dir, filename)
global content_dir
print(f"DiffGen - Ensure unzip APT pkg is installed ...")
ret_code = run_cmd(f"apt-get -y install unzip")
if ret_code != 0:
return ret_code
if not os.path.exists(content_dir):
print(f"creating {content_dir} ...")
ret_code = run_cmd(f"mkdir -p {content_dir}")
if ret_code != 0:
return ret_code
print(f"DiffGen - copy {zip_file} to {content_dir} ...")
ret_code = run_cmd(f"cp {zip_file} {content_dir}")
if ret_code != 0:
return ret_code
print(f"DiffGen - unzip {content_dir}/{filename} ...")
ret_code = run_cmd(f"cd {content_dir} && unzip ./{filename}")
if ret_code != 0:
return ret_code
# install delta processor library
#
print("DeltaProcessor - Setup Ubuntu Toolchain PPA for newer glibc ...")
ret_code = run_cmd("sudo apt-get -y install software-properties-common")
if ret_code != 0:
return ret_code
ret_code = run_cmd(
"sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test"
)
if ret_code != 0:
return ret_code
print("DeltaProcessor - Installing gcc-9 g++-9 Dependencies "
"for loading libadudiffapi.so ..."
)
ret_code = run_cmd("apt-get -y install gcc-9 g++-9")
if ret_code != 0:
return ret_code
lib_filename = 'libadudiffapi.so'
delta_processor_lib_filepath = os.path.join(
content_dir,
'DeltaProcessor_x64',
lib_filename
)
print("installing Delta processor library "
f"{delta_processor_lib_filepath} ...")
ret_code = run_cmd(
f"cp {delta_processor_lib_filepath} /usr/local/lib/ "
f"&& ldconfig /usr/local/lib/{lib_filename}"
)
if ret_code != 0:
return ret_code
print("unzip DiffGenTool ...")
ret_code = run_cmd(
"cd /tmp/deltaupdates/FIT_DiffGenTool "
"&& unzip diffgen-tool.Release.x64-linux.zip"
)
if ret_code != 0:
return ret_code
print("Make DiffGen binaries executable ...")
ret_code = run_cmd(
"cd /tmp/deltaupdates/FIT_DiffGenTool/"
"diffgen-tool.Release.x64-linux "
"&& chmod 755 applydiff bsdiff bspatch compress_files.py DiffGenTool "
"dumpdiff dumpextfs recompress_and_sign_tool.py "
"recompress_tool.py sign_tool.py zstd_compress_file"
)
if ret_code != 0:
return ret_code
return 0