From c9e982557b15a4b6b67c1094bb81f44568eb68d2 Mon Sep 17 00:00:00 2001 From: Ziheng Li Date: Tue, 26 Apr 2022 19:04:19 +0800 Subject: [PATCH] [acrn-deb] install_compile_package function is not consistent with gsg Remove misc/packaging/install_uSoS.py, because there's no use for this script. Tracked-On: projectacrn#7370 Signed-off-by: Ziheng Li --- misc/packaging/install_uSoS.py | 387 --------------------------------- 1 file changed, 387 deletions(-) delete mode 100644 misc/packaging/install_uSoS.py diff --git a/misc/packaging/install_uSoS.py b/misc/packaging/install_uSoS.py deleted file mode 100644 index 752a406b8..000000000 --- a/misc/packaging/install_uSoS.py +++ /dev/null @@ -1,387 +0,0 @@ -# -*- coding: utf-8 -*- -#* Copyright (c) 2020 Intel Corporation -import os,sys,copy,json -import subprocess -import datetime -import time -import shlex -import glob -import multiprocessing - -#parse json file -with open("release.json","r") as load_f: - load_dict = json.load(load_f) -load_f.close() - -with open("deb.json","r") as load_fdeb: - load_dictdeb = json.load(load_fdeb) -load_fdeb.close() - -def run_command(cmd, path): - ret_code = 0 - print("cmd = %s, path = %s" % (cmd, path)) - cmd_proc = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd = path, universal_newlines=True) - - while True: - output = cmd_proc.stdout.readline() - print(output.strip()) - - ret_code = cmd_proc.poll() - if ret_code is not None: - for output in cmd_proc.stdout.readlines(): - print(output.strip()) - break - - return ret_code - -def add_cmd_list(cmd_list, cmd_str, dir_str): - cmd = {} - cmd['cmd'] = cmd_str - cmd['dir'] = dir_str - cmd_list.append(cmd) - -def run_cmd_list(cmd_list): - for i, cmd in enumerate(cmd_list): - ret = run_command(cmd['cmd'], cmd['dir']) - if ret != 0: - print("cmd(%s) run in dir(%s) failed and exit" % (cmd['cmd'], cmd['dir'])) - exit(-1) - return -# install compile package -def install_compile_package(): - #check compile env - os.system('sudo apt install gcc \ - git \ - make \ - gnu-efi \ - libssl-dev \ - libpciaccess-dev \ - uuid-dev \ - libsystemd-dev \ - libevent-dev \ - libxml2-dev \ - libusb-1.0-0-dev \ - python3 \ - python3-pip \ - libblkid-dev \ - e2fslibs-dev \ - pkg-config \ - libelf-dev\ - libnuma-dev -y') - gcc_version_out = os.popen('gcc --version') - gcc_version = gcc_version_out.read() - if tuple(gcc_version.split(' ')[3].split("\n")[0].split(".")) < tuple(load_dict['gcc_version'].split('.')): - print("your gcc version is too old") - binutils_version_out = os.popen('ld -v') - binutils_version = binutils_version_out.read().split(" ") - if tuple(binutils_version[-1].split("\n")[0].split(".")) < tuple(load_dict['binutils'].split('.')): - print("your binutils version is too old") - os.system('sudo apt install python-pip -y') - os.system('sudo pip3 install kconfiglib') - os.system('sudo apt-get install bison -y') - os.system('sudo apt-get install flex -y') - os.system('sudo apt install liblz4-tool -y') - os.system('sudo apt install bc -y') - -# build acrn -def build_acrn(): - cmd_list = [] - cur_dir = os.getcwd() - hv_dir = cur_dir + '/' + 'acrn-hypervisor' - if os.path.exists('acrn_release_img'): - add_cmd_list(cmd_list, 'rm -rf acrn_release_img', cur_dir) - add_cmd_list(cmd_list, 'mkdir -p acrn_release_img', cur_dir) - - if load_dict['sync_acrn_code'] == 'true': - if os.path.exists('acrn-hypervisor'): - add_cmd_list(cmd_list, 'rm -rf acrn-hypervisor', cur_dir) - add_cmd_list(cmd_list, 'git clone %s' % load_dict['acrn_repo'], cur_dir) - add_cmd_list(cmd_list, 'git checkout -b mybranch %s'% load_dict['release_version'], hv_dir) - - else: - #clean git code directory - if os.path.exists('acrn-hypervisor'): - add_cmd_list(cmd_list, 'git reset --hard HEAD', hv_dir) - add_cmd_list(cmd_list, 'git checkout master', hv_dir) - add_cmd_list(cmd_list, 'git branch -D mybranch', hv_dir) - add_cmd_list(cmd_list, 'git checkout -b mybranch %s' % load_dict['release_version'], hv_dir) - - - if load_dict['acrn_patch']['patch_need'] == 'true': - #Need to apply additional acrn patch - patch_path = os.getcwd() + '/' + load_dict['acrn_patch']['patch_dir'] - - for patch in load_dict['acrn_patch']['patch_list']: - patch_full_name = patch_path + '/' + patch - add_cmd_list(cmd_list, 'git am %s/%s' % (patch_path, patch), hv_dir) - - run_cmd_list(cmd_list) - cmd_list = [] - make_cmd_list =[] - - release = load_dict['build_cmd']['release'] - scenario = load_dict['build_cmd']['scenario'] - board = load_dict['build_cmd']['board'] - info_list = [] - - for i in scenario: - if scenario[i] == 'true': - for j in board: - if board[j] == 'true': - info_list.append((i,j)) - if load_dict['build_cmd']['build_method']['use_xml'] == 'true': - make_cmd = 'make all BOARD_FILE=misc/acrn-config/xmls/board-xmls/%s.xml SCENARIO_FILE=misc/acrn-config/xmls/config-xmls/%s/%s.xml RELEASE=%s'%(j,j,i,release) - else: - make_cmd = 'make all BOARD=%s SCENARIO=%s RELEASE=%s'%(j,i,release) - - make_cmd_list.append(make_cmd) - - for i in range(len(make_cmd_list)): - - add_cmd_list(cmd_list, 'make clean', hv_dir) - add_cmd_list(cmd_list, make_cmd_list[i], hv_dir) - - bin_name ='acrn.%s.%s.bin' % (info_list[i][0],info_list[i][1]) - out_name ='acrn.%s.%s.32.out' % (info_list[i][0],info_list[i][1]) - efi_name ='acrn.%s.%s.efi' % (info_list[i][0],info_list[i][1]) - - add_cmd_list(cmd_list, 'cp %s acrn_release_img/%s' %(load_dictdeb['acrn.bin']['source'],bin_name), cur_dir) - add_cmd_list(cmd_list, 'cp %s acrn_release_img/%s' %(load_dictdeb['acrn.32.out']['source'],out_name), cur_dir) - - - if os.path.exists(load_dictdeb['acrn.efi']['source']): - add_cmd_list(cmd_list, 'cp %s acrn_release_img/%s' %(load_dictdeb['acrn.efi']['source'],efi_name), cur_dir) - run_cmd_list(cmd_list) - return - -def create_acrn_kernel_deb(): - - cmd_list = [] - cur_dir = os.getcwd() - kernel_dir = cur_dir + '/' + 'acrn-kernel' - kernel_deb_dir = cur_dir + '/' + 'acrn_kernel_deb' - kernel_boot_dir = kernel_dir + '/' + 'boot' - if os.path.exists('acrn_kernel_deb'): - add_cmd_list(cmd_list, 'rm -rf acrn_kernel_deb', cur_dir) - - add_cmd_list(cmd_list, 'mkdir -p acrn_kernel_deb', cur_dir) - add_cmd_list(cmd_list, 'mkdir DEBIAN', kernel_deb_dir) - add_cmd_list(cmd_list, 'touch DEBIAN/control', kernel_deb_dir) - - # following operations depends on the previous cmmd. Run and clear cmd list here - run_cmd_list(cmd_list) - cmd_list = [] - - #control file description - - listcontrol=['Package: acrn-kernel-package\n','version: %s \n'% datetime.date.today(),'Section: free \n','Priority: optional \n','Architecture: amd64 \n','Installed-Size: 66666 \n','Maintainer: Intel\n','Description: sos_kernel \n','\n'] - - - with open('acrn_kernel_deb/DEBIAN/control','w',encoding='utf-8') as fr: - fr.writelines(listcontrol) - - cmd = 'cd acrn-kernel' + '&&' + 'ls *.gz' - filename = os.popen(cmd).read().replace('\n', '').replace('\r', '') - add_cmd_list(cmd_list, 'cp acrn-kernel/%s acrn_kernel_deb/' % filename, cur_dir) - add_cmd_list(cmd_list, 'tar -zvxf %s' % filename, kernel_deb_dir) - # following operations depends on the previous cmmd. Run and clear cmd list here - run_cmd_list(cmd_list) - cmd_list = [] - - cmd = 'cd acrn_kernel_deb/boot' + '&&' + 'ls vmlinuz*' - version = os.popen(cmd) - - f = open("acrn_kernel_deb/boot/version.txt",'w') - f.write(version.read()) - f.close() - - add_cmd_list(cmd_list, 'cp acrn-kernel.postinst acrn_kernel_deb/DEBIAN/postinst', cur_dir) - add_cmd_list(cmd_list, 'chmod +x acrn_kernel_deb/DEBIAN/postinst', cur_dir) - add_cmd_list(cmd_list, 'sed -i \'s/\r//\' acrn_kernel_deb/DEBIAN/postinst', cur_dir) - add_cmd_list(cmd_list, 'rm acrn_kernel_deb/%s' % filename, cur_dir) - add_cmd_list(cmd_list, 'dpkg -b acrn_kernel_deb acrn_kernel_deb_package.deb ', cur_dir) - - run_cmd_list(cmd_list) - cmd_list = [] - return - -def build_acrn_kernel(acrn_repo,acrn_version): - - cmd_list = [] - cur_dir = os.getcwd() - kernel_dir = cur_dir + '/' + 'acrn-kernel' - - if load_dict['sync_acrn_kernel_code'] == 'true': - if os.path.exists('acrn-kernel'): - add_cmd_list(cmd_list, 'rm -rf acrn-kernel', cur_dir) - - add_cmd_list(cmd_list, 'git clone %s' % acrn_repo, cur_dir) - add_cmd_list(cmd_list, 'git checkout %s'% acrn_version, kernel_dir) - - if load_dict['kernel_patch']['patch_need'] == 'true': - #Need to apply additional acrn patch - patch_path = os.getcwd() + '/' + load_dict['kernel_patch']['patch_dir'] - - for patch in load_dict['kernel_patch']['patch_list']: - patch_full_name = patch_path + '/' + patch - add_cmd_list(cmd_list, 'git am %s/%s' % (patch_path, patch), hv_dir) - add_cmd_list(cmd_list, 'make clean', kernel_dir) - add_cmd_list(cmd_list, 'cp kernel_config_uefi_sos .config', kernel_dir) - add_cmd_list(cmd_list, 'make olddefconfig', kernel_dir) - - cpu_cnt = multiprocessing.cpu_count() - cmd = 'make targz-pkg' + " -j%s" % str(cpu_cnt) - add_cmd_list(cmd_list, cmd, kernel_dir) - - run_cmd_list(cmd_list) - cmd_list = [] - return - - - -#install acrn -def install_acrn_deb(): - os.system('dpkg -r acrn-package') - os.system('dpkg -i acrn_deb_package.deb ') - - -#install kernel -def install_acrn_kernel_deb(): - os.system('dpkg -r acrn-kernel-package ') - os.system('dpkg -i acrn_kernel_deb_package.deb ') - - -def create_acrn_deb(): - cmd_list = [] - cur_dir = os.getcwd() - hv_dir = cur_dir + '/' + 'acrn_release_deb' - path = 'acrn_release_deb' - if os.path.exists(path): - add_cmd_list(cmd_list, 'rm -rf acrn_release_deb', cur_dir) - add_cmd_list(cmd_list, 'mkdir -p acrn_release_deb', cur_dir) - add_cmd_list(cmd_list, 'mkdir DEBIAN', hv_dir) - add_cmd_list(cmd_list, 'touch DEBIAN/control', hv_dir) - - # following operations depends on the previous cmmd. Run and clear cmd list here - run_cmd_list(cmd_list) - cmd_list = [] - #control file description - acrn_info = load_dict['release_version'] - scenario = load_dict['build_cmd']['scenario'] - board = load_dict['build_cmd']['board'] - - scenario_info="" - board_info="" - for i in scenario: - scenario_info = scenario_info + i +" " - - for i in board: - board_info = board_info + i +" " - - - lines=[] - f=open("acrn-hypervisor.postinst",'r') - for line in f: - lines.append(line) - f.close() - - start = lines.index('echo "please choose , ,"\n') - - end = lines.index('echo "Scenario is ->"\n') - - del lines[(start+1):(end-1)] - - lines.insert(start+1,"\nscenario_info=(%s)\n"%scenario_info) - lines.insert(start+2,"\nboard_info=(%s)\n"%board_info) - with open("acrn-hypervisor.postinst", "w") as f: - for line in lines: - f.write(line) - f.close() - listcontrol=['Package: acrn-package\n','version: %s \n'% datetime.date.today(),'Section: free \n','Priority: optional \n','Architecture: amd64 \n','Installed-Size: 66666 \n','Maintainer: Intel\n','Description: %s \n' % acrn_info,'\n'] - - - with open('acrn_release_deb/DEBIAN/control','w',encoding='utf-8') as fr: - fr.writelines(listcontrol) - - #design in acrn_data - - with open("deb.json","r") as load_deb: - deb_info = json.load(load_deb) - - load_deb.close() - - deb_info_list = list(deb_info) - - for i in deb_info_list: - source = deb_info[i]['source'] - target = deb_info[i]['target'] - if target == 'boot': - continue - if os.path.exists(target): - add_cmd_list(cmd_list, 'cp %s %s' % (source,target), cur_dir) - else: - add_cmd_list(cmd_list, 'mkdir -p %s' % target, cur_dir) - add_cmd_list(cmd_list, 'cp %s %s' % (source,target), cur_dir) - - add_cmd_list(cmd_list, 'mkdir -p %s' % target, cur_dir) - add_cmd_list(cmd_list, 'cp %s %s' % (source,target), cur_dir) - - add_cmd_list(cmd_list, 'cp -r usr acrn_release_deb', cur_dir) - add_cmd_list(cmd_list, 'rm -rf usr', cur_dir) - add_cmd_list(cmd_list, 'mkdir -p acrn_release_deb/boot', cur_dir) - - - - for filename in glob.glob(r'acrn_release_img/acrn.*'): - add_cmd_list(cmd_list, 'cp %s acrn_release_deb/boot' % filename, cur_dir) - - add_cmd_list(cmd_list, 'cp acrn-hypervisor.postinst acrn_release_deb/DEBIAN/postinst', cur_dir) - add_cmd_list(cmd_list, 'chmod +x acrn_release_deb/DEBIAN/postinst', cur_dir) - add_cmd_list(cmd_list, 'sed -i \'s/\r//\' acrn_release_deb/DEBIAN/postinst', cur_dir) - - add_cmd_list(cmd_list, 'chmod +x acrn_release_deb/DEBIAN/preinst', cur_dir) - add_cmd_list(cmd_list, 'sed -i \'s/\r//\' acrn_release_deb/DEBIAN/preinst', cur_dir) - - add_cmd_list(cmd_list, 'dpkg -b acrn_release_deb acrn_deb_package.deb ', cur_dir) - run_cmd_list(cmd_list) - return - - - -def install_process(): - - if load_dict['install_package'] == 'true': - print('start install package') - install_compile_package() - - if load_dict['build_acrn'] == 'true': - print('start build acrn') - build_acrn() - - if load_dict['build_acrn_kernel'] == 'true': - print('start build_acrn_kernel') - build_acrn_kernel(load_dict['sos_kernel_repo'],load_dict['kernel_release_version']) - - if load_dict['acrn_deb_package'] == 'true': - print('start create acrn_deb_package deb') - create_acrn_deb() - - if load_dict['acrn_kernel_deb_package'] == 'true': - print('start create acrn_kernel_deb_package deb') - create_acrn_kernel_deb() - - if load_dict['install_acrn_deb'] == 'true': - print('start install_acrn_deb') - install_acrn_deb() - - - if load_dict['install_acrn_kernel_deb'] == 'true': - print('start install install_acrn_kernel_deb') - install_acrn_kernel_deb() - - if load_dict['auto_reboot'] == 'true': - print('start reboot') - os.system("sudo reboot") - -if __name__ == "__main__": - install_process()