Verified Commit 1bd944ee authored by David Runge's avatar David Runge
Browse files

Remove build.sh support from profiles and mkarchiso

configs/{baseline,releng}/build.sh:
Remove `build.sh` scripts. They were deprecated with v47.

archiso/mkarchiso:
Remove all `build.sh` related functionality (i.e. `command_pkglist()`, `command_iso()`, `command_prepare()`,
`command_install()`, `command_init()`, `command_run()`).

Rename `command_build_profile()` to `_build_profile()` to be more in line with the style of the other function naming.

Change `_show_config()` to only print info about the profile and make no more use of parameters.

Remove all help output related to legacy `build.sh` commands.

Fixes #51
parent bff36764
Pipeline #2551 passed with stage
in 29 seconds
...@@ -95,7 +95,7 @@ _umount_airootfs() { ...@@ -95,7 +95,7 @@ _umount_airootfs() {
# $1: exit status number. # $1: exit status number.
_usage() { _usage() {
IFS='' read -r -d '' usagetext <<ENDUSAGETEXT || true IFS='' read -r -d '' usagetext <<ENDUSAGETEXT || true
usage ${app_name} [options] <profile_dir or legacy_command> usage: ${app_name} [options] <profile_dir>
options: options:
-A <application> Set an application name for the ISO -A <application> Set an application name for the ISO
Default: '${iso_application}' Default: '${iso_application}'
...@@ -115,8 +115,6 @@ usage ${app_name} [options] <profile_dir or legacy_command> ...@@ -115,8 +115,6 @@ usage ${app_name} [options] <profile_dir or legacy_command>
-o <out_dir> Set the output directory -o <out_dir> Set the output directory
Default: '${out_dir}' Default: '${out_dir}'
-p PACKAGE(S) Package(s) to install, can be used multiple times -p PACKAGE(S) Package(s) to install, can be used multiple times
-r <run_cmd> Set a command to be run in chroot (only relevant for legacy 'run' command)
NOTE: Deprecated, will be removed with archiso v49
-s <sfs_mode> Set SquashFS image mode (img or sfs) -s <sfs_mode> Set SquashFS image mode (img or sfs)
img: prepare airootfs.sfs for dm-snapshot usage img: prepare airootfs.sfs for dm-snapshot usage
sfs: prepare airootfs.sfs for overlayfs usage sfs: prepare airootfs.sfs for overlayfs usage
...@@ -126,21 +124,6 @@ usage ${app_name} [options] <profile_dir or legacy_command> ...@@ -126,21 +124,6 @@ usage ${app_name} [options] <profile_dir or legacy_command>
Default: '${work_dir}' Default: '${work_dir}'
profile_dir: Directory of the archiso profile to build profile_dir: Directory of the archiso profile to build
legacy_command: Legacy build.sh command
NOTE: Deprecated, will be removed with archiso v49
init
initialize a chroot for building
install
install packages to the chroot
run
run a command in the chroot
prepare
cleanup and prepare the airootfs
pkglist
create a list of packages installed on the medium
iso
create the ISO
ENDUSAGETEXT ENDUSAGETEXT
printf '%s' "${usagetext}" printf '%s' "${usagetext}"
exit "${1}" exit "${1}"
...@@ -149,51 +132,23 @@ ENDUSAGETEXT ...@@ -149,51 +132,23 @@ ENDUSAGETEXT
# Shows configuration according to command mode. # Shows configuration according to command mode.
# $1: build_profile | init | install | run | prepare | iso # $1: build_profile | init | install | run | prepare | iso
_show_config() { _show_config() {
local _mode="$1" build_date local build_date
build_date="$(date --utc --iso-8601=seconds -d "@${SOURCE_DATE_EPOCH}")" build_date="$(date --utc --iso-8601=seconds -d "@${SOURCE_DATE_EPOCH}")"
_msg_info "${app_name} configuration settings" _msg_info "${app_name} configuration settings"
[[ ! -d "${command_name}" ]] && _msg_info " Legacy Command: ${command_name}"
_msg_info " Architecture: ${arch}" _msg_info " Architecture: ${arch}"
_msg_info " Working directory: ${work_dir}" _msg_info " Working directory: ${work_dir}"
_msg_info " Installation directory: ${install_dir}" _msg_info " Installation directory: ${install_dir}"
case "${_mode}" in _msg_info " Build date: ${build_date}"
build_profile) _msg_info " Output directory: ${out_dir}"
_msg_info " Build date: ${build_date}" _msg_info " GPG key: ${gpg_key:-None}"
_msg_info " Output directory: ${out_dir}" _msg_info " Profile: ${profile}"
_msg_info " GPG key: ${gpg_key:-None}" _msg_info "Pacman configuration file: ${pacman_conf}"
_msg_info " Profile: ${profile}" _msg_info " Image file name: ${img_name}"
_msg_info "Pacman configuration file: ${pacman_conf}" _msg_info " ISO volume label: ${iso_label}"
_msg_info " Image file name: ${img_name}" _msg_info " ISO publisher: ${iso_publisher}"
_msg_info " ISO volume label: ${iso_label}" _msg_info " ISO application: ${iso_application}"
_msg_info " ISO publisher: ${iso_publisher}" _msg_info " Boot modes: ${bootmodes[*]}"
_msg_info " ISO application: ${iso_application}" _msg_info " Packages: ${pkg_list[*]}"
_msg_info " Boot modes: ${bootmodes[*]}"
_msg_info " Packages: ${pkg_list[*]}"
;;
init)
_msg_info "Pacman configuration file: ${pacman_conf}"
;;
install)
_msg_info " GPG key: ${gpg_key:-None}"
_msg_info "Pacman configuration file: ${pacman_conf}"
_msg_info " Packages: ${pkg_list[*]}"
;;
run)
_msg_info " Run command: ${run_cmd}"
;;
prepare)
_msg_info " GPG key: ${gpg_key:-None}"
;;
pkglist)
;;
iso)
_msg_info " Output directory: ${out_dir}"
_msg_info " Image file name: ${img_name}"
_msg_info " ISO volume label: ${iso_label}"
_msg_info " ISO publisher: ${iso_publisher}"
_msg_info " ISO application: ${iso_application}"
;;
esac
[[ "${quiet}" == "y" ]] || printf '\n' [[ "${quiet}" == "y" ]] || printf '\n'
} }
...@@ -823,60 +778,7 @@ _make_pkglist() { ...@@ -823,60 +778,7 @@ _make_pkglist() {
_msg_info "Done!" _msg_info "Done!"
} }
command_pkglist() { _build_profile() {
_show_config "${FUNCNAME[0]#command_}"
_make_pkglist
}
# Create an ISO9660 filesystem from "iso" directory.
command_iso() {
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito')
# If exists, add an EFI "El Torito" boot image (FAT filesystem) to ISO-9660 image.
if [[ -f "${work_dir}/efiboot.img" ]]; then
bootmodes+=('uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
fi
_show_config "${FUNCNAME[0]#command_}"
_make_iso
}
# create airootfs.sfs filesystem, and push it in "iso" directory.
command_prepare() {
_show_config "${FUNCNAME[0]#command_}"
_cleanup
_make_prepare
}
# Install packages on airootfs.
# A basic check to avoid double execution/reinstallation is done via hashing package names.
command_install() {
if [[ ! -f "${pacman_conf}" ]]; then
_msg_error "Pacman config file '${pacman_conf}' does not exist" 1
fi
if (( ${#pkg_list[@]} == 0 )); then
_msg_error "Packages must be specified" 0
_usage 1
fi
_show_config "${FUNCNAME[0]#command_}"
_make_packages
}
command_init() {
_show_config "${FUNCNAME[0]#command_}"
_chroot_init
}
command_run() {
_show_config "${FUNCNAME[0]#command_}"
_chroot_run
}
command_build_profile() {
# Set up essential directory paths # Set up essential directory paths
airootfs_dir="${work_dir}/${arch}/airootfs" airootfs_dir="${work_dir}/${arch}/airootfs"
isofs_dir="${work_dir}/iso" isofs_dir="${work_dir}/iso"
...@@ -891,7 +793,7 @@ command_build_profile() { ...@@ -891,7 +793,7 @@ command_build_profile() {
printf '%s\n' "$SOURCE_DATE_EPOCH" > "${work_dir}/build_date" printf '%s\n' "$SOURCE_DATE_EPOCH" > "${work_dir}/build_date"
fi fi
_show_config "${FUNCNAME[0]#command_}" _show_config
_run_once _make_pacman_conf _run_once _make_pacman_conf
_run_once _export_gpg_publickey _run_once _export_gpg_publickey
_run_once _make_custom_airootfs _run_once _make_custom_airootfs
...@@ -933,7 +835,7 @@ done ...@@ -933,7 +835,7 @@ done
shift $((OPTIND - 1)) shift $((OPTIND - 1))
if (( $# < 1 )); then if (( $# < 1 )); then
_msg_error "No command specified" 0 _msg_error "No profile specified" 0
_usage 1 _usage 1
fi fi
...@@ -941,55 +843,14 @@ if (( EUID != 0 )); then ...@@ -941,55 +843,14 @@ if (( EUID != 0 )); then
_msg_error "${app_name} must be run as root." 1 _msg_error "${app_name} must be run as root." 1
fi fi
command_name="${1}" # get the absolute path representation of the first non-option argument
profile="$(realpath -- "${1}")"
# Set directory path defaults for legacy commands # Set directory path defaults for legacy commands
airootfs_dir="${work_dir}/airootfs" airootfs_dir="${work_dir}/airootfs"
isofs_dir="${work_dir}/iso" isofs_dir="${work_dir}/iso"
_read_profile
case "${command_name}" in _set_overrides
init) _build_profile
_msg_warning "The '${command_name}' command is deprecated! It will be removed with archiso v49."
_set_overrides
command_init
;;
install)
_msg_warning "The '${command_name}' command is deprecated! It will be removed with archiso v49."
_set_overrides
command_install
;;
run)
_msg_warning "The '${command_name}' command is deprecated! It will be removed with archiso v49."
command_run
;;
prepare)
_msg_warning "The '${command_name}' command is deprecated! It will be removed with archiso v49."
_set_overrides
command_prepare
;;
pkglist)
_msg_warning "The '${command_name}' command is deprecated! It will be removed with archiso v49."
command_pkglist
;;
iso)
_msg_warning "The '${command_name}' command is deprecated! It will be removed with archiso v49."
if (( $# < 2 )); then
_msg_error "No image specified" 0
_usage 1
fi
img_name="${2}"
_set_overrides
command_iso
;;
*)
# NOTE: we call read_profile here, assuming that the first non-option parameter is a profile directory
# This way we can retain backwards compatibility with legacy build.sh scripts until we deprecate the old way of
# calling mkarchiso with named parameters in v49
profile="$(realpath -- "${command_name}")"
_read_profile
_set_overrides
command_build_profile
;;
esac
# vim:ts=4:sw=4:et: # vim:ts=4:sw=4:et:
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
printf '\n[%s] WARNING: %s\n\n' "mkarchiso" "build.sh scripts are deprecated! Please use mkarchiso directly." >&2
_buildsh_path="$(realpath -- "$0")"
exec mkarchiso "$@" "${_buildsh_path%/*}"
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
printf '\n[%s] WARNING: %s\n\n' "mkarchiso" "build.sh scripts are deprecated! Please use mkarchiso directly." >&2
_buildsh_path="$(realpath -- "$0")"
exec mkarchiso "$@" "${_buildsh_path%/*}"
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment