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