summaryrefslogtreecommitdiff
path: root/functions
diff options
context:
space:
mode:
authorLyndon Brown <jnqnfe@gmail.com>2020-04-06 16:49:08 +0100
committerRaphaël Hertzog <hertzog@debian.org>2020-04-23 16:54:31 +0000
commitc441c39efe636a76e496f0e5c36401b6b0750496 (patch)
tree5f2ee55fcc35180a210920a0aa6131403595cdce /functions
parentbf63762721ddfa497e1b6e4b311178fd68a0b012 (diff)
downloadvyos-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-xfunctions/configuration.sh123
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
-}