AArch64 (arm64) support for image building, mock 83/1483/10
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Wed, 7 Aug 2019 14:57:59 +0000 (14:57 +0000)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Fri, 13 Sep 2019 09:28:11 +0000 (11:28 +0200)
commiteb6df414a1b5d1b7b67d3dd5f9b7d0529b8cf5fc
tree9dc197b1e64ce0b39ffb4ca6fd7307ae14d56b04
parent075a6c6d1b58d6fd81a3c65df61569ec10a59684
AArch64 (arm64) support for image building, mock

- mock:
  * extend config_opts['legal_host_arches'] to include 'aarch64';
  * parameterize RPM target architecture based on the output of
    $(uname -m) in create_mock_config.sh;
- Dockerfile-dib:
  * Bump base to centos:7.6.1810, but since centos:7.x.y tags are
    broken on arm64 [1], apply an arch-specific patch to the DIB
    Dockerfile which pins the FROM image to a specific sha256;
  * Use AArch64 altsig repository for openstack-queens packages;
  * Bump diskimage-builder to 2.26.1 to include arm64 critical fixes;
  * Add tools required for UEFI partition handling and other AArch64
    specific requirements to the arm64 container image (gdisk,
    dosfstools, util-linux, qemu-img);
- dib elements:
  * finalise.d/99-collect-rpm-info: AArch64 workaround for packages
    initially installed from 'updates' repo residing in 'base' repo
    after all distro/repo handling take place;
- create_golden_image.sh:
  * dib: Add additional element block-device-efi on AArch64 (only);
- build_step_create_install_cd.sh:
  * parameterize CentOS artifacts URI based on machine architecture;
  * skip isolinux artifacts download/handling for AArch64, since
    PC BIOS is x86 specific;
  * ISO(s) build: AArch64 only supports UEFI booting, skip isolinux;
  * AArch64: use legacy method of copying out the contents of "/boot"
    from the golden image since the AArch64 image has a more complex
    partition layout and would require mounting both "/boot" and ESP;
- create_rpmdata_in_docker.sh:
  * fix bash shebang since script uses bash-isms;
- tools/buildconfig.py:
  * add support for replacing the magic string '#ARCH#' with current
    platform architecture in option names;

Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Co-authored-by: Valentin Radulescu <Valentin.Radulescu@enea.com>
Change-Id: I32cfdc2adc43fb703843383a1e94a807919f4e8c
build_images.sh
build_step_create_install_cd.sh
build_step_golden_image.sh
create_golden_image.sh
create_mock_config.sh
create_rpmdata_in_docker.sh
dib_elements/myproduct/finalise.d/99-collect-rpm-info
docker-context/Dockerfile-dib
docker-context/Dockerfile-dib.aarch64.patch [new file with mode: 0644]
mock/mock.cfg.template
tools/buildconfig.py