codename fixes for multi-release builds

Change-Id: Ic4ddabe71d3baacc63ed53e07d60df391c898a84
Signed-off-by: Scott Little <scott.little@windriver.com>
This commit is contained in:
Scott Little
2025-07-31 09:56:53 -04:00
committed by Leonardo Fagundes Luz Serrano
parent 85d3ff1f06
commit eae7766ac2
4 changed files with 43 additions and 36 deletions

View File

@@ -43,6 +43,12 @@ pid = os.getpid()
os.setpriority(os.PRIO_PROCESS, 0, 15)
subprocess.run(['ionice', '-c', '3', '-p', str(pid)])
STX_DEFAULT_DISTRO = discovery.STX_DEFAULT_DISTRO
STX_DEFAULT_DISTRO_CODENAME = discovery.STX_DEFAULT_DISTRO_CODENAME
STX_DISTRO_DEBIAN_BULLSEYE = discovery.STX_DISTRO_DEBIAN_BULLSEYE
STX_DEFAULT_BUILD_TYPE = discovery.STX_DEFAULT_BUILD_TYPE
STX_DEFAULT_BUILD_TYPE_LIST = discovery.STX_DEFAULT_BUILD_TYPE_LIST
BUILDER_URL = os.environ.get('BUILDER_URL')
REPOMGR_URL = os.environ.get('REPOMGR_URL')
REPOMGR_ORIGIN = os.environ.get('REPOMGR_ORIGIN')
@@ -51,7 +57,8 @@ STX_ROOT = os.environ.get('MY_REPO_ROOT_DIR')
PKGBUILDER_ROOT = "/localdisk/pkgbuilder"
USER = os.environ.get('MYUNAME')
PROJECT = os.environ.get('PROJECT')
DISTRIBUTION = os.environ.get('DEBIAN_DISTRIBUTION')
DIST_ID = os.environ.get('DIST_ID', STX_DEFAULT_DISTRO)
DIST_CODENAME = os.environ.get('DIST', STX_DEFAULT_DISTRO_CODENAME)
STX_ARCH = 'amd64'
STX_META_NAME = 'stx-meta'
STX_META_PKG = 'stx-meta_1.0.orig.tar.gz'
@@ -132,15 +139,9 @@ STX_SOURCE_REPOS = [
'vault-armada-app',
]
STX_DEFAULT_DISTRO = discovery.STX_DEFAULT_DISTRO
STX_DEFAULT_DISTRO_CODENAME = discovery.STX_DEFAULT_DISTRO_CODENAME
STX_DISTRO_DEBIAN_BULLSEYE = discovery.STX_DISTRO_DEBIAN_BULLSEYE
STX_DEFAULT_BUILD_TYPE = discovery.STX_DEFAULT_BUILD_TYPE
STX_DEFAULT_BUILD_TYPE_LIST = discovery.STX_DEFAULT_BUILD_TYPE_LIST
ALL_DISTROS = discovery.get_all_distros()
ALL_LAYERS = discovery.get_all_layers(distro=STX_DEFAULT_DISTRO, codename=STX_DEFAULT_DISTRO_CODENAME)
ALL_BUILD_TYPES = discovery.get_all_build_types(distro=STX_DEFAULT_DISTRO)
ALL_LAYERS = discovery.get_all_layers(distro=DIST_ID, codename=DIST_CODENAME)
ALL_BUILD_TYPES = discovery.get_all_build_types(distro=DIST_ID)
logger = logging.getLogger('debcontroller')
utils.set_logger(logger)
@@ -684,7 +685,7 @@ class BuildController():
return False
logger.debug("Reuse is enabled, the reused source repository is %s", reuse_src_url)
kwargs = {'url': reuse_url, 'distribution': DISTRIBUTION, 'component': 'main',
kwargs = {'url': reuse_url, 'distribution': DIST_CODENAME, 'component': 'main',
'architectures': STX_ARCH}
try:
logger.info("Creating reused mirror with the shared URL, please wait...")
@@ -705,7 +706,7 @@ class BuildController():
meta_dir = os.path.join(BUILD_ROOT, 'stx-meta')
os.makedirs(meta_dir, exist_ok=True)
try:
ret = get_shared_source(reuse_src_url, STX_META_NAME, DISTRIBUTION, meta_dir)
ret = get_shared_source(reuse_src_url, STX_META_NAME, DIST_CODENAME, meta_dir)
except Exception as e:
logger.error(str(e))
logger.error("Failed to download stx-meta to reuse")
@@ -978,7 +979,7 @@ class BuildController():
ret = req_chroots_action('addchroot', extra_req)
if 'creating' in ret:
key_string = "Successfully set up " + DISTRIBUTION + " chroot"
key_string = "Successfully set up " + DIST_CODENAME + " chroot"
state = show_task_log(os.path.join(PKGBUILDER_ROOT, USER, PROJECT, 'chroot.log'),
10, key_string, "E: ")
if 'success' in state:
@@ -2179,8 +2180,8 @@ def bc_reg_signal_handler():
if __name__ == "__main__":
distro = STX_DEFAULT_DISTRO
distro_codename = STX_DEFAULT_DISTRO_CODENAME
distro = DIST_ID
distro_codename = DIST_CODENAME
layers = None
build_types = None
packages = None

View File

@@ -40,14 +40,14 @@ REPO_BIN = 'deb-local-binary'
mirror_root = os.environ.get('OS_MIRROR')
stx_src_mirror = os.path.join(mirror_root, 'sources')
stx_bin_mirror = os.path.join(mirror_root, 'binaries')
DEBIAN_DISTRIBUTION = os.environ.get('DEBIAN_DISTRIBUTION')
all_binary_lists = ['base-' + DEBIAN_DISTRIBUTION + '.lst', 'os-std.lst', 'os-rt.lst']
logger = logging.getLogger('downloader')
utils.set_logger(logger)
STX_DEFAULT_DISTRO = discovery.STX_DEFAULT_DISTRO
STX_DEFAULT_DISTRO_CODENAME = discovery.STX_DEFAULT_DISTRO_CODENAME
DIST_CODENAME = os.environ.get('DIST', STX_DEFAULT_DISTRO_CODENAME)
all_binary_lists = ['base-' + DIST_CODENAME + '.lst', 'os-std.lst', 'os-rt.lst']
logger = logging.getLogger('downloader')
utils.set_logger(logger)
ALL_DISTROS = discovery.get_all_distros()
ALL_LAYERS = discovery.get_all_layers(distro=STX_DEFAULT_DISTRO, codename=STX_DEFAULT_DISTRO_CODENAME)
@@ -118,7 +118,7 @@ def get_all_stx_pkgs():
def get_all_binary_list(distro=STX_DEFAULT_DISTRO, codename=STX_DEFAULT_DISTRO_CODENAME, layers=None,
build_types=None):
"""
Return all binary packages listed in base-${DEBIAN_DISTRIBUTION}.lst,
Return all binary packages listed in base-${DIST_CODENAME}.lst,
os-std.lst,os-rt.lst
"""
layer_binaries = {}
@@ -560,7 +560,7 @@ class DebDownloader(BaseDownloader):
def start(self):
"""Here define:
the complete set of binaries = base_${DEBIAN_DISTRIBUTION}.lst
the complete set of binaries = base_${DIST_CODENAME}.lst
+ <layer>/os-std.lst
+ <layer>/os-rt.lst
"""

View File

@@ -21,15 +21,19 @@ import discovery
STX_DEFAULT_DISTRO_CODENAME = discovery.STX_DEFAULT_DISTRO_CODENAME
STX_DISTRO_DEBIAN_BULLSEYE = discovery.STX_DISTRO_DEBIAN_BULLSEYE
DIST_CODENAME = os.environ.get('DIST', STX_DEFAULT_DISTRO_CODENAME)
DEB_CONFIG_DIR = 'stx-tools/debian-mirror-tools/config/'
logger = logging.getLogger('fetch_debs')
utils.set_logger(logger)
class FetchDebs(object):
def __init__(self, need_dl_stx_pkgs=None, need_dl_binary_pkgs=None):
def __init__(self, need_dl_stx_pkgs=None, need_dl_binary_pkgs=None,
codename=DIST_CODENAME):
self.need_dl_stx_pkgs = need_dl_stx_pkgs if need_dl_stx_pkgs else []
self.need_dl_binary_pkgs = need_dl_binary_pkgs if need_dl_binary_pkgs else []
@@ -38,7 +42,7 @@ class FetchDebs(object):
self.output_dir = os.path.join(self.build_root, 'dl_debs')
self.apt_src_file = os.path.join(self.build_root, 'aptsrc')
self.setup_apt_source()
self.setup_apt_source(codename=codename)
self.debs_fetcher = repo_manage.AptFetch(logger, self.apt_src_file, self.output_dir)
@@ -66,8 +70,7 @@ class FetchDebs(object):
return all_debs
def setup_apt_source(self):
def setup_apt_source(self, codename=DIST_CODENAME):
# clean up the output dir
if os.path.exists(self.output_dir):
shutil.rmtree(self.output_dir)
@@ -77,10 +80,12 @@ class FetchDebs(object):
try:
with open(self.apt_src_file, 'w') as f:
repo_url = utils.get_env_variable('REPOMGR_DEPLOY_URL')
apt_item = ' '.join(['deb [trusted=yes]', repo_url + 'deb-local-build', 'bullseye', 'main\n'])
apt_item = ' '.join(['deb [trusted=yes]', repo_url + 'deb-local-build', codename, 'main\n'])
f.write(apt_item)
apt_item = ' '.join(['deb [trusted=yes]', repo_url + 'deb-local-binary', 'bullseye', 'main\n'])
apt_item = ' '.join(['deb [trusted=yes]', repo_url + 'deb-local-binary', codename, 'main\n'])
f.write(apt_item)
logger.debug(f'Created apt source file {self.apt_src_file} to download debs')
except Exception as e:
logger.error(str(e))
@@ -145,13 +150,12 @@ class FetchDebs(object):
pkgs.extend(line.strip() for line in f if line.strip() and not line.startswith('#'))
return pkgs
def fetch_external_binaries(self, codename=STX_DEFAULT_DISTRO_CODENAME):
def fetch_external_binaries(self, codename=DIST_CODENAME):
'''
Download all binaries from the build system
apt_item = apt_item + ' '.join(['deb [trusted=yes]', repo_url + 'deb-local-binary', 'bullseye', 'main\n'])
apt_item = apt_item + ' '.join(['deb [trusted=yes]', repo_url + 'deb-local-binary', codename, 'main\n'])
'''
# Get debs from base-bullseye.lst
# Get debs from base-bullseye.lst, or base-<codename>.lst
# https://opendev.org/starlingx/tools/src/branch/master/debian-mirror-tools/config/debian/common/base-bullseye.lst
if not self.need_dl_binary_pkgs:
logger.debug("No binary packages to download")
@@ -165,14 +169,14 @@ class FetchDebs(object):
package_list = os.path.join(self.build_root,
'stx-tools/debian-mirror-tools/config/debian',
'common',
'base-' + codename + 'bullseye.lst')
'base-' + codename + '.lst')
if package_list is None or not os.path.exists(package_list):
package_list = os.path.join(self.build_root,
'stx-tools/debian-mirror-tools/config/debian',
codename,
'common',
'base-' + codename + 'bullseye.lst')
'base-' + codename + '.lst')
# find pkgs in the list file
logger.debug(f'Packages to find {self.need_dl_binary_pkgs}')
@@ -215,7 +219,8 @@ if __name__ == '__main__':
# Usage: Set the packages you want to download here
fetch_debs = FetchDebs(
need_dl_stx_pkgs = ['sysinv'],
need_dl_binary_pkgs = ['tzdata', 'curl', 'apache2']
need_dl_binary_pkgs = ['tzdata', 'curl', 'apache2'],
codename = DIST_CODENAME
)
fetch_debs.fetch_stx_packages()

View File

@@ -32,6 +32,7 @@ STX_DEFAULT_DISTRO = discovery.STX_DEFAULT_DISTRO
STX_DEFAULT_DISTRO_CODENAME = discovery.STX_DEFAULT_DISTRO_CODENAME
STX_DEFAULT_BUILD_TYPE = discovery.STX_DEFAULT_BUILD_TYPE
STX_DEFAULT_BUILD_TYPE_LIST = discovery.STX_DEFAULT_BUILD_TYPE_LIST
DIST_CODENAME = os.environ.get('DIST', STX_DEFAULT_DISTRO_CODENAME)
# Patch signature files
DETACHED_SIGNATURE_FILENAME = "signature.v2"
@@ -57,7 +58,7 @@ class PatchBuilder(object):
self.metadata = metadata.PatchMetadata(patch_recipe_file)
self.metadata.parse_input_xml_data()
self.fetch_debs = fetch_debs.FetchDebs()
self.fetch_debs = fetch_debs.FetchDebs(codename=codename)
self.fetch_debs.need_dl_stx_pkgs = self.metadata.stx_packages
self.fetch_debs.need_dl_binary_pkgs = self.metadata.binary_packages
@@ -399,4 +400,4 @@ def build(recipe, name=None, remote_sign=False, codename=STX_DEFAULT_DISTRO_CODE
if __name__ == '__main__':
build()
build(codename=DIST_CODENAME)