From: Chunhua Liu Date: Mon, 29 Jan 2018 05:29:00 +0000 (+0000) Subject: Merge "Another method of install tpk." into devel X-Git-Tag: accepted/tizen/devbase/tools/20191220.065431^2~30 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=50d41f73c8814831eb6c3065ffe2c08d5792b56e;p=tools%2Fmic.git Merge "Another method of install tpk." into devel --- 50d41f73c8814831eb6c3065ffe2c08d5792b56e diff --cc mic/3rdparty/pykickstart/parser.py index 02a0f32,f09f925..46495f6 --- a/mic/3rdparty/pykickstart/parser.py +++ b/mic/3rdparty/pykickstart/parser.py @@@ -704,5 -720,6 +722,7 @@@ class KickstartParser self.registerSection(PostScriptSection(self.handler, dataObj=Script)) self.registerSection(TracebackScriptSection(self.handler, dataObj=Script)) self.registerSection(RunScriptSection(self.handler, dataObj=Script)) + self.registerSection(PostUmountScriptSection(self.handler, dataObj=Script)) self.registerSection(PackageSection(self.handler)) + self.registerSection(TpkPackageSection(self.handler)) + diff --cc mic/imager/baseimager.py index f39d236,d932763..ef86f0f --- a/mic/imager/baseimager.py +++ b/mic/imager/baseimager.py @@@ -1153,8 -1152,49 +1153,49 @@@ class BaseImageCreator(object) except: pass + def tpkinstall(self): + if self.ks: + tpk_pkgs = kickstart.get_tpkpackages(self.ks) + tpk_repoList = kickstart.get_tpkrepos(self.ks) + if tpk_repoList and tpk_pkgs: + tpk_dir = "/usr/apps/.preload-tpk" + fs.makedirs(self._instroot + "/usr/apps") + fs.makedirs(self._instroot + tpk_dir) + for pkg in tpk_pkgs: + flag = 0 + for tpk_repo in tpk_repoList: + if hasattr(tpk_repo,'baseurl') and tpk_repo.baseurl.startswith("file:"): + tpk_repourl = tpk_repo.baseurl.replace('file:','') + tpk_repourl = "/%s" % tpk_repourl.lstrip('/') + tpk_pkgpath = tpk_repourl + "/"+ pkg + if os.path.isfile(tpk_pkgpath): + shutil.copy(tpk_pkgpath,self._instroot + tpk_dir) + flag = 1 + break + elif hasattr(tpk_repo,'baseurl'): + url = tpk_repo.baseurl.join(pkg) + filename = self._instroot+tpk_dir+"/"+pkg + if tpk_repo.baseurl.startswith("http:"): + import urllib + status = urllib.urlopen(url).code + if status == 200: + filename = myurlgrab(url.full, filename, None) + flag = 1 + break + elif status == 404 or status == None: + continue + #url is ok, then download, url wrong, check other url. + elif tpk_repo.baseurl.startswith("https:") : + try: + flag = 1 + filename = myurlgrab(url.full, filename, None) + except CreatorError: + continue + if flag == 0: + raise CreatorError("Tpk package missing.") + def postinstall(self): - self.copy_attachment() + pass def _get_sign_scripts_env(self): """Return an environment dict for %post-umount scripts. diff --cc plugins/imager/loop_plugin.py index 8815fe4,0b94f0e..d81eb45 --- a/plugins/imager/loop_plugin.py +++ b/plugins/imager/loop_plugin.py @@@ -101,9 -101,9 +101,10 @@@ class LoopPlugin(ImagerPlugin) creator.check_depend_tools() creator.mount(None, creatoropts["cachedir"]) creator.install() + creator.tpkinstall() creator.configure(creatoropts["repomd"]) creator.copy_kernel() + creator.copy_attachment() creator.create_cpio_image() creator.unmount() creator.copy_cpio_image() diff --cc plugins/imager/qcow_plugin.py index a1d808a,3962ec0..239778b --- a/plugins/imager/qcow_plugin.py +++ b/plugins/imager/qcow_plugin.py @@@ -132,9 -132,9 +132,10 @@@ class QcowPlugin(ImagerPlugin) creator.check_depend_tools() creator.mount(None, creatoropts["cachedir"]) creator.install() + creator.tpkinstall() creator.configure(creatoropts["repomd"]) creator.copy_kernel() + creator.copy_attachment() creator.create_cpio_image() creator.unmount() creator.copy_cpio_image() diff --cc plugins/imager/raw_plugin.py index ef537a4,e954b7b..7d44bc3 --- a/plugins/imager/raw_plugin.py +++ b/plugins/imager/raw_plugin.py @@@ -99,9 -99,9 +99,10 @@@ class RawPlugin(ImagerPlugin) creator.check_depend_tools() creator.mount(None, creatoropts["cachedir"]) creator.install() + creator.tpkinstall() creator.configure(creatoropts["repomd"]) creator.copy_kernel() + creator.copy_attachment() creator.unmount() creator.generate_bmap() creator.package(creatoropts["destdir"])