build-pkgs: pass build type to debrepack
Pass build type to debrepack to support to build rt packages Test Plan: Pass: Cherry pick https://review.opendev.org/c/starlingx/kernel/+/834810 Update the 'BUILD_TYPE' in contorl file to 'KERNEL_TYPE' Create 'debian_pkg_dirs_rt' for rt kernel module build-pkgs -c -p [debname of kernel module] -b rt Story: 2008846 Task: 44627 Signed-off-by: hbai <haiqing.bai@windriver.com> Change-Id: I39cd6dc6affff4d5d2e8e5df01ffd9718f785d5e
This commit is contained in:
parent
8ab6557df0
commit
f810774a77
@ -12,7 +12,7 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
# Copyright (C) 2021 Wind River Systems,Inc
|
# Copyright (C) 2021-2022 Wind River Systems,Inc
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import debrepack
|
import debrepack
|
||||||
@ -304,8 +304,11 @@ class BuildController():
|
|||||||
|
|
||||||
if not build_type in self.kits['dsc_maker']:
|
if not build_type in self.kits['dsc_maker']:
|
||||||
try:
|
try:
|
||||||
self.kits['dsc_maker'][build_type] = debrepack.Parser(build_dir,
|
if build_type == 'rt':
|
||||||
recipes_dir, 'debug')
|
self.kits['dsc_maker'][build_type] = debrepack.Parser(build_dir, recipes_dir,
|
||||||
|
'debug', None, 'rt')
|
||||||
|
else:
|
||||||
|
self.kits['dsc_maker'][build_type] = debrepack.Parser(build_dir, recipes_dir, 'debug')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(str(e))
|
logger.error(str(e))
|
||||||
logger.error("Failed to create dsc maker")
|
logger.error("Failed to create dsc maker")
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
# Copyright (C) 2021 WindRiver Corporation
|
# Copyright (C) 2021-2022 WindRiver Corporation
|
||||||
|
|
||||||
# import apt
|
# import apt
|
||||||
import apt_pkg
|
import apt_pkg
|
||||||
@ -36,6 +36,7 @@ RELEASENOTES = " ".join([os.environ.get('PROJECT'), os.environ.get('MY_RELEASE')
|
|||||||
DIST = os.environ.get('STX_DIST')
|
DIST = os.environ.get('STX_DIST')
|
||||||
CENGN_BASE = os.path.join(os.environ.get('CENGNURL'), "debian")
|
CENGN_BASE = os.path.join(os.environ.get('CENGNURL'), "debian")
|
||||||
CENGN_STRATEGY = os.environ.get('CENGN_STRATEGY')
|
CENGN_STRATEGY = os.environ.get('CENGN_STRATEGY')
|
||||||
|
BTYPE = "@KERNEL_TYPE@"
|
||||||
|
|
||||||
|
|
||||||
class DownloadProgress():
|
class DownloadProgress():
|
||||||
@ -234,7 +235,7 @@ class Parser():
|
|||||||
'crit': logging.CRITICAL
|
'crit': logging.CRITICAL
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, basedir, output, loglevel='info', srcrepo=None):
|
def __init__(self, basedir, output, loglevel='info', srcrepo=None, btype="std"):
|
||||||
|
|
||||||
self.logger = logging.getLogger(__name__)
|
self.logger = logging.getLogger(__name__)
|
||||||
self.logger.setLevel(self.level_relations.get(loglevel))
|
self.logger.setLevel(self.level_relations.get(loglevel))
|
||||||
@ -260,6 +261,7 @@ class Parser():
|
|||||||
self.output = os.path.abspath(output)
|
self.output = os.path.abspath(output)
|
||||||
|
|
||||||
self.srcrepo = srcrepo
|
self.srcrepo = srcrepo
|
||||||
|
self.btype = btype
|
||||||
self.meta_data = dict()
|
self.meta_data = dict()
|
||||||
self.versions = dict()
|
self.versions = dict()
|
||||||
self.pkginfo = dict()
|
self.pkginfo = dict()
|
||||||
@ -332,6 +334,24 @@ class Parser():
|
|||||||
if os.path.exists(self.pkginfo["srcdir"]):
|
if os.path.exists(self.pkginfo["srcdir"]):
|
||||||
shutil.rmtree(self.pkginfo["srcdir"])
|
shutil.rmtree(self.pkginfo["srcdir"])
|
||||||
|
|
||||||
|
def set_build_type(self):
|
||||||
|
|
||||||
|
local_debian = os.path.join(self.pkginfo["packdir"], "local_debian")
|
||||||
|
run_shell_cmd('cp -r %s %s' % (self.pkginfo["debfolder"], local_debian), self.logger)
|
||||||
|
|
||||||
|
# clean @KERNEL_TYPE@ if build type is std
|
||||||
|
if self.btype == "std":
|
||||||
|
btype = ""
|
||||||
|
else:
|
||||||
|
btype = "-" + self.btype
|
||||||
|
|
||||||
|
sed_cmd = 'sed -i s#%s#%s#g %s'
|
||||||
|
for root, _, files in os.walk(local_debian):
|
||||||
|
for name in files:
|
||||||
|
run_shell_cmd(sed_cmd % (BTYPE, btype, os.path.join(root, name)), self.logger)
|
||||||
|
|
||||||
|
self.pkginfo["debfolder"] = os.path.join(local_debian)
|
||||||
|
|
||||||
def set_revision(self):
|
def set_revision(self):
|
||||||
|
|
||||||
revision = 0
|
revision = 0
|
||||||
@ -339,6 +359,9 @@ class Parser():
|
|||||||
if "revision" not in self.meta_data:
|
if "revision" not in self.meta_data:
|
||||||
return dist
|
return dist
|
||||||
|
|
||||||
|
# reset the debfolder
|
||||||
|
self.pkginfo["debfolder"] = os.path.join(self.pkginfo["pkgpath"], "debian")
|
||||||
|
|
||||||
revision_data = self.meta_data["revision"]
|
revision_data = self.meta_data["revision"]
|
||||||
if "dist" in revision_data:
|
if "dist" in revision_data:
|
||||||
if revision_data["dist"] is not None:
|
if revision_data["dist"] is not None:
|
||||||
@ -762,6 +785,8 @@ class Parser():
|
|||||||
shutil.rmtree(self.pkginfo["packdir"])
|
shutil.rmtree(self.pkginfo["packdir"])
|
||||||
os.mkdir(self.pkginfo["packdir"])
|
os.mkdir(self.pkginfo["packdir"])
|
||||||
|
|
||||||
|
self.set_build_type()
|
||||||
|
|
||||||
logfile = os.path.join(self.pkginfo["packdir"], self.pkginfo["pkgname"] + ".log")
|
logfile = os.path.join(self.pkginfo["packdir"], self.pkginfo["pkgname"] + ".log")
|
||||||
if os.path.exists(logfile):
|
if os.path.exists(logfile):
|
||||||
os.remove(logfile)
|
os.remove(logfile)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user