Futher bootloader cleanups
GRUB_OPTS has never been documented as externally available, and is not used. Assume it's value to simplify the code. Move the grub version check separately, as we only support grub2 Remove references to buliding i386 images. I don't image it works in any way. Remove ci.md, which is no longer relevant. Refactor the test for "building BIOS image on EFI system" consiberably after these changes. Change-Id: Ia99687815667c3cf5e82cf21d841d3b1008b8fa9
This commit is contained in:
parent
b43c5967e8
commit
79ea63f525
@ -52,20 +52,26 @@ else
|
||||
GRUB_MKCONFIG="grub-mkconfig"
|
||||
fi
|
||||
|
||||
echo "Installing GRUB2..."
|
||||
if [[ ! $($GRUBNAME --version) =~ ' 2.' ]]; then
|
||||
echo "Failure: not grub2"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# This might be better factored out into a per-distro 'install-bootblock'
|
||||
# helper.
|
||||
# Some distros keep things in /boot/grub2, others in /boot/grub
|
||||
if [ -d /boot/grub2 ]; then
|
||||
GRUB_CFG=/boot/grub2/grub.cfg
|
||||
GRUBENV=/boot/grub2/grubenv
|
||||
else
|
||||
# TODO(frickler): /boot/grub doesn't seem to exist for gentoo either
|
||||
# at this point, let's hope it gets created later
|
||||
# NOTE(ianw) This used to be behind a "-d /boot/grub" but this
|
||||
# directory doesn't seem to exist for gentoo at this point;
|
||||
# something creates it later. So we just fallback to this
|
||||
# unconditionally.
|
||||
GRUB_CFG=/boot/grub/grub.cfg
|
||||
GRUBENV=/boot/grub/grubenv
|
||||
fi
|
||||
|
||||
echo "Installing GRUB2..."
|
||||
|
||||
# When using EFI image-based builds, particularly rhel element
|
||||
# based on RHEL>=8.2 .qcow2, we might have /boot/grub2/grubenv
|
||||
# as a dangling symlink to /boot/efi because we have extracted
|
||||
@ -79,41 +85,19 @@ fi
|
||||
|
||||
# We need --force so grub does not fail due to being installed on the
|
||||
# root partition of a block device.
|
||||
GRUB_OPTS=${GRUB_OPTS:-"--force"}
|
||||
# XXX: This is buggy:
|
||||
# - --target=i386-pc is invalid for non-i386/amd64 architectures
|
||||
# - and for UEFI too.
|
||||
# GRUB_OPTS="$GRUB_OPTS --target=i386-pc"
|
||||
if [[ ! $GRUB_OPTS == *--target* ]] && [[ $($GRUBNAME --version) =~ ' 2.' ]]; then
|
||||
# /sys/ comes from the host machine. If the host machine is using EFI
|
||||
# but the image being built doesn't have EFI boot-images installed we
|
||||
# should set the --target to use a BIOS-based boot-image.
|
||||
#
|
||||
# * --target tells grub what's the target platform
|
||||
# * the boot images are placed in /usr/lib/grub/<cpu>-<platform>
|
||||
# * i386-pc is used for BIOS-based machines
|
||||
# http://www.gnu.org/software/grub/manual/grub.html#Installation
|
||||
#
|
||||
if [ -d /sys/firmware/efi ]; then
|
||||
if [[ ${DIB_BLOCK_DEVICE} == "mbr" || ${DIB_BLOCK_DEVICE} == "gpt" ]]; then
|
||||
case $ARCH in
|
||||
"x86_64"|"amd64")
|
||||
GRUB_OPTS="$GRUB_OPTS --target=i386-pc"
|
||||
;;
|
||||
"i386")
|
||||
target=i386-pc
|
||||
if [ -e /proc/device-tree ]; then
|
||||
for x in /proc/device-tree/*; do
|
||||
if [ -e "$x" ]; then
|
||||
target="i386-ieee1275"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
GRUB_OPTS="$GRUB_OPTS --target=$target"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
GRUB_OPTS="--force "
|
||||
|
||||
# /sys/ comes from the host machine. If the host machine is using EFI
|
||||
# but the image being built doesn't have EFI boot-images installed we
|
||||
# should set the --target to use a BIOS-based boot-image.
|
||||
#
|
||||
# * --target tells grub what's the target platform
|
||||
# * the boot images are placed in /usr/lib/grub/<cpu>-<platform>
|
||||
# * i386-pc is used for BIOS-based machines
|
||||
# http://www.gnu.org/software/grub/manual/grub.html#Installation
|
||||
#
|
||||
if [[ -d /sys/firmware/efi && ! -d /usr/lib/grub/*-efi ]]; then
|
||||
GRUB_OPTS="$GRUB_OPTS --target=i386-pc"
|
||||
fi
|
||||
|
||||
if [[ "$ARCH" =~ "ppc" ]] ; then
|
||||
|
@ -1,7 +1,5 @@
|
||||
linux-image-amd64:
|
||||
arch: amd64
|
||||
linux-image-686:
|
||||
arch: i386
|
||||
linux-image-arm64:
|
||||
arch: arm64
|
||||
netbase:
|
||||
|
@ -6,10 +6,7 @@ fi
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
if [ "i386" = "$ARCH" ]; then
|
||||
basearch=i386
|
||||
arch=i686
|
||||
elif [[ "amd64 x86_64" =~ "$ARCH" ]]; then
|
||||
if [[ "amd64 x86_64" =~ "$ARCH" ]]; then
|
||||
basearch=x86_64
|
||||
arch=x86_64
|
||||
elif [[ "$ARCH" = "ppc64" ]]; then
|
||||
|
@ -52,7 +52,7 @@ function show_options () {
|
||||
echo "Usage: ${SCRIPTNAME} [OPTION]... [ELEMENT]..."
|
||||
echo
|
||||
echo "Options:"
|
||||
echo " -a i386|amd64|armhf|arm64 -- set the architecture of the image(default amd64)"
|
||||
echo " -a amd64|armhf|arm64 -- set the architecture of the image(default amd64)"
|
||||
echo " -o imagename -- set the imagename of the output image file(default image)"
|
||||
echo " -t qcow2,tar,tgz,squashfs,vhd,docker,aci,raw -- set the image types of the output image files (default qcow2)"
|
||||
echo " File types should be comma separated. VHD outputting requires the vhd-util"
|
||||
|
@ -1,41 +0,0 @@
|
||||
CI needs for image building
|
||||
===========================
|
||||
|
||||
Eventually, if/when TripleO becomes an official OpenStack project, all CI for
|
||||
it should be on OpenStack systems. Until then we still need CI.
|
||||
|
||||
Jenkins
|
||||
-------
|
||||
|
||||
* Jenkins from jenkins apt repo.
|
||||
* IRC notification service, notify-only on #triple on OFTC, port 7000 ssl.
|
||||
* Github OAuth plugin, permit all from tripleo organisation, and organisation
|
||||
members as service admins.
|
||||
* Grant jenkins builders sudo [may want lxc containers or cloud instances for
|
||||
security isolation]
|
||||
* Jobs to build:
|
||||
* base ubuntu VM.
|
||||
|
||||
disk-image-create vm base -o base -a i386
|
||||
|
||||
* ramdisk deploy image build
|
||||
|
||||
ramdisk-image-create deploy
|
||||
|
||||
Copyright
|
||||
=========
|
||||
|
||||
Copyright 2012, 2013 Hewlett-Packard Development Company, L.P.
|
||||
Copyright (c) 2012 NTT DOCOMO, INC.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
not use this file except in compliance with the License. You may obtain
|
||||
a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing permissions and limitations
|
||||
under the License.
|
@ -1,7 +1,7 @@
|
||||
Components
|
||||
==========
|
||||
|
||||
`disk-image-create [-a i386|amd64|armhf|arm64] -o filename {element} [{element} ...]`
|
||||
`disk-image-create [-a amd64|armhf|arm64] -o filename {element} [{element} ...]`
|
||||
|
||||
Create an image of element {element}, optionally mixing in other elements.
|
||||
Element dependencies are automatically included. Support for other
|
||||
|
@ -87,7 +87,7 @@ The phases are:
|
||||
* runs: **outside chroot**
|
||||
* inputs:
|
||||
|
||||
* ``$ARCH=i386|amd64|armhf|arm64``
|
||||
* ``$ARCH=amd64|armhf|arm64``
|
||||
* ``$TARGET_ROOT=/path/to/target/workarea``
|
||||
|
||||
``extra-data.d``
|
||||
@ -176,7 +176,7 @@ The phases are:
|
||||
* runs: **outside chroot**
|
||||
* inputs:
|
||||
|
||||
* ``$ARCH=i386|amd64|armhf|arm64``
|
||||
* ``$ARCH=amd64|armhf|arm64``
|
||||
* ``$TARGET_ROOT=/path/to/target/workarea``
|
||||
|
||||
|
||||
|
3
releasenotes/notes/i386-removed-13fc770dc88e81dc.yaml
Normal file
3
releasenotes/notes/i386-removed-13fc770dc88e81dc.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
deprecations:
|
||||
- References to building ``i386`` images have been removed.
|
Loading…
Reference in New Issue
Block a user