diff options
author | Lyndon Brown <jnqnfe@gmail.com> | 2020-04-06 16:49:08 +0100 |
---|---|---|
committer | Raphaël Hertzog <hertzog@debian.org> | 2020-04-23 16:54:31 +0000 |
commit | c441c39efe636a76e496f0e5c36401b6b0750496 (patch) | |
tree | 5f2ee55fcc35180a210920a0aa6131403595cdce /functions | |
parent | bf63762721ddfa497e1b6e4b311178fd68a0b012 (diff) | |
download | vyos-live-build-c441c39efe636a76e496f0e5c36401b6b0750496.tar.gz vyos-live-build-c441c39efe636a76e496f0e5c36401b6b0750496.zip |
config: revert partial format conversion
back in v4.0~a6-1 a transition process was started to move the live-build
config to a new format. the new format was INI style, and required
parsing functions to read/write values, compared to the existing format
which was just shell script code setting variables.
this partial transition is the explanation for the existence of the
`New_configuration()` function, and understanding this is important to
understanding the purpose of it - it is not in fact intended for creating
a new configuration, it is just related to the new config format
transition.
the positives of the new format were that it was somewhat cleaner looking,
while the negative was the terrible relative efficiency.
the file `config/build` was created to hold options in this new format.
the transition was only ever completed for a handful of config options:
- architecture
- archive areas and parent archive areas
- live image name
- live image type
a 'configuration version' attribute was also saved, which is not used by
anything.
the bootstrap-mirror and parent-bootstrap-mirror attributes are pointlessly
stored in it seemingly resulting from work done in v4.0~a17-1. (they are
also stored in another config file from which the value is actually used).
it in fact seems to have been a source of confusion for Raphaël in
authoring 44b9b0a6501476de594ce3783cea5df0c141478c, since the new
`[parent]-distribution-{chroot|binary}` options it introduced were stored
both in `config/bootstrap` and in `config/build`, while only used from the
former. i expect, understandably, that he thought that `config/build` was
just an information file.
Gbp-Dch: Short
Diffstat (limited to 'functions')
-rwxr-xr-x | functions/configuration.sh | 123 |
1 files changed, 33 insertions, 90 deletions
diff --git a/functions/configuration.sh b/functions/configuration.sh index a39b9dfb0..8f52739e1 100755 --- a/functions/configuration.sh +++ b/functions/configuration.sh @@ -9,69 +9,9 @@ ## under certain conditions; see COPYING for details. -New_configuration () -{ - ## Runtime - - if [ $(which dpkg) ] - then - CURRENT_IMAGE_ARCHITECTURE="$(dpkg --print-architecture)" - else - case "$(uname -m)" in - x86_64) - CURRENT_IMAGE_ARCHITECTURE="amd64" - ;; - - i?86) - CURRENT_IMAGE_ARCHITECTURE="i386" - ;; - - *) - Echo_warning "Unable to determine current architecture, using ${CURRENT_IMAGE_ARCHITECTURE}" - ;; - esac - fi - - ## Configuration - - LIVE_CONFIGURATION_VERSION="${LIVE_CONFIGURATION_VERSION:-$(Get_configuration config/build Configuration-Version)}" - LIVE_CONFIGURATION_VERSION="${LIVE_CONFIGURATION_VERSION:-${LIVE_BUILD_VERSION}}" - export LIVE_CONFIGURATION_VERSION - - LIVE_IMAGE_NAME="${LIVE_IMAGE_NAME:-$(Get_configuration config/build Name)}" - LIVE_IMAGE_NAME="${LIVE_IMAGE_NAME:-live-image}" - export LIVE_IMAGE_NAME - - # (FIXME: Support and default to 'any') - LB_ARCHITECTURE="${LB_ARCHITECTURE:-$(Get_configuration config/build Architecture)}" - LB_ARCHITECTURE="${LB_ARCHITECTURE:-${CURRENT_IMAGE_ARCHITECTURE}}" - export LB_ARCHITECTURE - - # For backwards compat with custom hooks and conditional includes - LB_ARCHITECTURES=${LB_ARCHITECTURE} - export LB_ARCHITECTURES - - LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-$(Get_configuration config/build Archive-Areas)}" - LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-main}" - LB_ARCHIVE_AREAS="$(echo "${LB_ARCHIVE_AREAS}" | tr "," " ")" - export LB_ARCHIVE_AREAS - - LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS:-$(Get_configuration config/build Parent-Archive-Areas)}" - LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS:-${LB_ARCHIVE_AREAS}}" - LB_PARENT_ARCHIVE_AREAS="$(echo "${LB_PARENT_ARCHIVE_AREAS}" | tr "," " ")" - export LB_PARENT_ARCHIVE_AREAS - - LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-$(Get_configuration config/build Type)}" - LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-iso-hybrid}" - export LIVE_IMAGE_TYPE -} - # Prepare config for use, filling in defaults where no value provided for instance Prepare_config () { - # FIXME - New_configuration - # Colouring is re-evaluated here just incase a hard coded override was given in the saved config case "${_COLOR}" in true) @@ -91,6 +31,8 @@ Prepare_config () _QUIET="${_QUIET:-false}" _VERBOSE="${_VERBOSE:-false}" + LIVE_CONFIGURATION_VERSION="${LIVE_CONFIGURATION_VERSION:-${LIVE_BUILD_VERSION}}" + LB_SYSTEM="${LB_SYSTEM:-live}" if [ $(which lsb_release) ] @@ -116,6 +58,37 @@ Prepare_config () LB_DISTRIBUTION_CHROOT="${LB_DISTRIBUTION_CHROOT:-${LB_DISTRIBUTION}}" LB_DISTRIBUTION_BINARY="${LB_DISTRIBUTION_BINARY:-${LB_DISTRIBUTION_CHROOT}}" + LIVE_IMAGE_NAME="${LIVE_IMAGE_NAME:-live-image}" + LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-iso-hybrid}" + + if [ -z "${LB_ARCHITECTURE}" ]; then + if [ $(which dpkg) ]; then + LB_ARCHITECTURE="$(dpkg --print-architecture)" + else + case "$(uname -m)" in + x86_64) + LB_ARCHITECTURE="amd64" + ;; + + i?86) + LB_ARCHITECTURE="i386" + ;; + + *) + Echo_error "Unable to determine current architecture" + exit 1 + ;; + esac + fi + fi + # For backwards compat with custom hooks and conditional includes + LB_ARCHITECTURES="${LB_ARCHITECTURE}" + + LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-main}" + LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS:-${LB_ARCHIVE_AREAS}}" + LB_ARCHIVE_AREAS="$(echo "${LB_ARCHIVE_AREAS}" | tr "," " ")" + LB_PARENT_ARCHIVE_AREAS="$(echo "${LB_PARENT_ARCHIVE_AREAS}" | tr "," " ")" + LB_BACKPORTS="${LB_BACKPORTS:-false}" if [ -n "$LB_PARENT_DISTRIBUTION" ]; then LB_PARENT_DISTRIBUTION_CHROOT="${LB_PARENT_DISTRIBUTION_CHROOT:-${LB_PARENT_DISTRIBUTION}}" @@ -743,33 +716,3 @@ Validate_config_dependencies () exit 1 fi } - -Get_configuration () -{ - local CONFIGURATION_FILE="${1}" - local FIELD_NAME="${2}" - local FIELD_BODY - - if [ -e "${CONFIGURATION_FILE}" ] - then - FIELD_BODY="$(grep ^${FIELD_NAME}: ${CONFIGURATION_FILE} | awk '{ $1=""; print $0 }' | sed -e 's|^ ||')" - fi - - echo ${FIELD_BODY} -} - -Set_configuration () -{ - local CONFIGURATION_FILE="${1}" - local FIELD_NAME="${2}" - local FIELD_BODY="${3}" - - if grep -qs "^${FIELD_NAME}:" "${CONFIGURATION_FILE}" - then - # Update configuration - sed -i -e "s|^${FIELD_NAME}:.*$|${FIELD_NAME}: ${FIELD_BODY}|" "${CONFIGURATION_FILE}" - else - # Append configuration - echo "${FIELD_NAME}: ${FIELD_BODY}" >> "${CONFIGURATION_FILE}" - fi -} |