forked from sig_core/toolkit
add nplb to repoclosure list and altarch stuff
This commit is contained in:
parent
bcc1dd7c22
commit
62256a72b5
7
iso/py/build-iso
Normal file
7
iso/py/build-iso
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# builds ISO's
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
from common import *
|
||||||
|
from util import Checks
|
||||||
|
from util import IsoBuild
|
@ -43,6 +43,16 @@
|
|||||||
has_modules:
|
has_modules:
|
||||||
- 'AppStream'
|
- 'AppStream'
|
||||||
- 'PowerTools'
|
- 'PowerTools'
|
||||||
|
iso_map:
|
||||||
|
hosts:
|
||||||
|
x86_64: ''
|
||||||
|
aarch64: ''
|
||||||
|
ppc64le: ''
|
||||||
|
s390x: ''
|
||||||
|
images:
|
||||||
|
- dvd1
|
||||||
|
- minimal
|
||||||
|
- boot
|
||||||
repoclosure_map:
|
repoclosure_map:
|
||||||
arches:
|
arches:
|
||||||
x86_64: '--arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
x86_64: '--arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||||
@ -68,4 +78,12 @@
|
|||||||
NFV:
|
NFV:
|
||||||
- BaseOS
|
- BaseOS
|
||||||
- AppStream
|
- AppStream
|
||||||
|
extra_files:
|
||||||
|
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
|
||||||
|
branch: 'r8'
|
||||||
|
list:
|
||||||
|
- 'SOURCES/COMMUNITY-CHARTER'
|
||||||
|
- 'SOURCES/EULA'
|
||||||
|
- 'SOURCES/LICENSE'
|
||||||
|
- 'SOURCES/RPM-GPG-KEY-rockyofficial'
|
||||||
...
|
...
|
||||||
|
@ -50,6 +50,16 @@
|
|||||||
has_modules:
|
has_modules:
|
||||||
- 'AppStream'
|
- 'AppStream'
|
||||||
- 'CRB'
|
- 'CRB'
|
||||||
|
iso_map:
|
||||||
|
hosts:
|
||||||
|
x86_64: ''
|
||||||
|
aarch64: ''
|
||||||
|
ppc64le: ''
|
||||||
|
s390x: ''
|
||||||
|
images:
|
||||||
|
- dvd1
|
||||||
|
- minimal
|
||||||
|
- boot
|
||||||
repoclosure_map:
|
repoclosure_map:
|
||||||
arches:
|
arches:
|
||||||
x86_64: '--arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
x86_64: '--arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||||
@ -57,6 +67,7 @@
|
|||||||
ppc64le: '--arch=ppc64le --arch=noarch'
|
ppc64le: '--arch=ppc64le --arch=noarch'
|
||||||
s390x: '--arch=s390x --arch=noarch'
|
s390x: '--arch=s390x --arch=noarch'
|
||||||
repos:
|
repos:
|
||||||
|
nplb: []
|
||||||
BaseOS: []
|
BaseOS: []
|
||||||
AppStream:
|
AppStream:
|
||||||
- BaseOS
|
- BaseOS
|
||||||
@ -83,4 +94,13 @@
|
|||||||
- BaseOS
|
- BaseOS
|
||||||
- AppStream
|
- AppStream
|
||||||
- HighAvailability
|
- HighAvailability
|
||||||
|
extra_files:
|
||||||
|
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
|
||||||
|
branch: 'r9'
|
||||||
|
list:
|
||||||
|
- 'SOURCES/COMMUNITY-CHARTER'
|
||||||
|
- 'SOURCES/EULA'
|
||||||
|
- 'SOURCES/LICENSE'
|
||||||
|
- 'SOURCES/RPM-GPG-KEY-Rocky-9'
|
||||||
|
- 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
|
||||||
...
|
...
|
||||||
|
@ -2,7 +2,11 @@
|
|||||||
'8':
|
'8':
|
||||||
rockyrpi:
|
rockyrpi:
|
||||||
project_id: ''
|
project_id: ''
|
||||||
|
additional_dirs:
|
||||||
|
- 'images'
|
||||||
'9':
|
'9':
|
||||||
rockyrpi:
|
rockyrpi:
|
||||||
project_id: ''
|
project_id: ''
|
||||||
|
additional_dirs:
|
||||||
|
- 'images'
|
||||||
...
|
...
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
"""
|
||||||
|
Imports all of our classes for this local module
|
||||||
|
"""
|
||||||
|
|
||||||
from .check import (
|
from .check import (
|
||||||
Checks,
|
Checks,
|
||||||
)
|
)
|
||||||
@ -6,6 +10,11 @@ from .dnf_utils import (
|
|||||||
RepoSync,
|
RepoSync,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from .iso_utils import (
|
||||||
|
IsoBuild,
|
||||||
|
LiveBuild
|
||||||
|
)
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'Checks',
|
'Checks',
|
||||||
'RepoSync'
|
'RepoSync'
|
||||||
|
@ -69,6 +69,7 @@ class RepoSync:
|
|||||||
self.repos = rlvars['all_repos']
|
self.repos = rlvars['all_repos']
|
||||||
self.multilib = rlvars['provide_multilib']
|
self.multilib = rlvars['provide_multilib']
|
||||||
self.repo = repo
|
self.repo = repo
|
||||||
|
self.extra_files = rlvars['extra_files']
|
||||||
|
|
||||||
# each el can have its own designated container to run stuff in,
|
# each el can have its own designated container to run stuff in,
|
||||||
# otherwise we'll just default to the default config.
|
# otherwise we'll just default to the default config.
|
||||||
@ -176,6 +177,7 @@ class RepoSync:
|
|||||||
self.sync(self.repo, sync_root, work_root, log_root, self.arch)
|
self.sync(self.repo, sync_root, work_root, log_root, self.arch)
|
||||||
|
|
||||||
if self.fullrun:
|
if self.fullrun:
|
||||||
|
self.deploy_extra_files()
|
||||||
self.symlink_to_latest()
|
self.symlink_to_latest()
|
||||||
|
|
||||||
if self.repoclosure:
|
if self.repoclosure:
|
||||||
@ -894,6 +896,12 @@ class RepoSync:
|
|||||||
for issue in bad_exit_list:
|
for issue in bad_exit_list:
|
||||||
self.log.error(issue)
|
self.log.error(issue)
|
||||||
|
|
||||||
|
def deploy_extra_files(self):
|
||||||
|
"""
|
||||||
|
deploys extra files based on info of rlvars
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
class SigRepoSync:
|
class SigRepoSync:
|
||||||
"""
|
"""
|
||||||
This helps us do reposync operations for SIG's. Do not use this for the
|
This helps us do reposync operations for SIG's. Do not use this for the
|
||||||
|
152
iso/py/util/iso_utils.py
Normal file
152
iso/py/util/iso_utils.py
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
"""
|
||||||
|
Builds ISO's for Rocky Linux.
|
||||||
|
|
||||||
|
Louis Abel <label AT rockylinux.org>
|
||||||
|
"""
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
import subprocess
|
||||||
|
import shlex
|
||||||
|
import time
|
||||||
|
import re
|
||||||
|
from common import Color
|
||||||
|
|
||||||
|
class IsoBuild:
|
||||||
|
"""
|
||||||
|
This helps us build the generic ISO's for a Rocky Linux release. In
|
||||||
|
particular, this is for the boot and dvd images.
|
||||||
|
|
||||||
|
Live images are built in another class.
|
||||||
|
"""
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
rlvars,
|
||||||
|
config,
|
||||||
|
major,
|
||||||
|
host=None,
|
||||||
|
image=None,
|
||||||
|
arch=None,
|
||||||
|
logger=None
|
||||||
|
):
|
||||||
|
self.arch = arch
|
||||||
|
self.image = image
|
||||||
|
self.host = host
|
||||||
|
# Relevant config items
|
||||||
|
self.major_version = major
|
||||||
|
self.date_stamp = config['date_stamp']
|
||||||
|
self.compose_root = config['compose_root']
|
||||||
|
self.compose_base = config['compose_root'] + "/" + major
|
||||||
|
self.iso_base = config['compose_root'] + "/" + major + "/isos"
|
||||||
|
self.current_arch = config['arch']
|
||||||
|
self.extra_files = rlvars['extra_files']
|
||||||
|
|
||||||
|
# Relevant major version items
|
||||||
|
self.revision = rlvars['revision'] + "-" + rlvars['rclvl']
|
||||||
|
self.arches = rlvars['allowed_arches']
|
||||||
|
|
||||||
|
self.staging_dir = os.path.join(
|
||||||
|
config['staging_root'],
|
||||||
|
config['category_stub'],
|
||||||
|
self.revision
|
||||||
|
)
|
||||||
|
|
||||||
|
self.compose_latest_dir = os.path.join(
|
||||||
|
config['compose_root'],
|
||||||
|
major,
|
||||||
|
"latest-Rocky-{}".format(major)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.compose_latest_sync = os.path.join(
|
||||||
|
self.compose_latest_dir,
|
||||||
|
"compose"
|
||||||
|
)
|
||||||
|
|
||||||
|
self.compose_log_dir = os.path.join(
|
||||||
|
self.compose_latest_dir,
|
||||||
|
"work/logs"
|
||||||
|
)
|
||||||
|
|
||||||
|
# This is temporary for now.
|
||||||
|
if logger is None:
|
||||||
|
self.log = logging.getLogger("iso")
|
||||||
|
self.log.setLevel(logging.INFO)
|
||||||
|
handler = logging.StreamHandler(sys.stdout)
|
||||||
|
handler.setLevel(logging.INFO)
|
||||||
|
formatter = logging.Formatter(
|
||||||
|
'%(asctime)s :: %(name)s :: %(message)s',
|
||||||
|
'%Y-%m-%d %H:%M:%S'
|
||||||
|
)
|
||||||
|
handler.setFormatter(formatter)
|
||||||
|
self.log.addHandler(handler)
|
||||||
|
|
||||||
|
self.log.info('iso build init')
|
||||||
|
self.log.info(self.revision)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
work_root = os.path.join(
|
||||||
|
self.compose_latest_dir,
|
||||||
|
'work'
|
||||||
|
)
|
||||||
|
sync_root = self.compose_latest_sync
|
||||||
|
|
||||||
|
log_root = os.path.join(
|
||||||
|
work_root,
|
||||||
|
"logs"
|
||||||
|
)
|
||||||
|
|
||||||
|
self.iso_build(
|
||||||
|
sync_root,
|
||||||
|
work_root,
|
||||||
|
log_root,
|
||||||
|
self.arch,
|
||||||
|
self.host
|
||||||
|
)
|
||||||
|
|
||||||
|
self.log.info('Compose repo directory: %s' % sync_root)
|
||||||
|
self.log.info('ISO Build Logs: %s' % log_root)
|
||||||
|
self.log.info('ISO Build completed.')
|
||||||
|
|
||||||
|
def iso_build(self, sync_root, work_root, log_root, arch, host):
|
||||||
|
"""
|
||||||
|
Calls out the ISO builds to the individual hosts listed in the map.
|
||||||
|
Each architecture is expected to build their own ISOs, similar to
|
||||||
|
runroot operations of koji and pungi.
|
||||||
|
|
||||||
|
It IS possible to run locally, but that would mean this only builds
|
||||||
|
ISOs for the architecture of the running machine. Please keep this in
|
||||||
|
mind when stating host=local.
|
||||||
|
"""
|
||||||
|
# Check for local build, build accordingly
|
||||||
|
# Check for arch specific build, build accordingly
|
||||||
|
# local AND arch cannot be used together, local supersedes. print
|
||||||
|
# warning.
|
||||||
|
local_only = False
|
||||||
|
if 'local' in self.host:
|
||||||
|
local_only = True
|
||||||
|
|
||||||
|
arch = self.arch.copy()
|
||||||
|
if local_only and self.arch:
|
||||||
|
self.log.warn('You cannot set local build AND an architecture.')
|
||||||
|
self.log.warn('The architecture %s will be set' % self.current_arch)
|
||||||
|
arch = self.current_arch
|
||||||
|
|
||||||
|
def iso_build_local(self, sync_root, work_root, log_root):
|
||||||
|
"""
|
||||||
|
Local iso builds only. Architecture is locked.
|
||||||
|
"""
|
||||||
|
print()
|
||||||
|
|
||||||
|
def iso_build_remote(self, sync_root, work_root, log_root, arch):
|
||||||
|
"""
|
||||||
|
Remote ISO builds. Architecture is all or single.
|
||||||
|
"""
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
class LiveBuild:
|
||||||
|
"""
|
||||||
|
This helps us build the live images for Rocky Linux.
|
||||||
|
"""
|
Loading…
Reference in New Issue
Block a user