Browse Source

Merge pull request #347 from oleorhagen/MEN-4256

MEN-4256 Do not install the client by default on Prebuilt RPi images
2.5.x
Lluis Campos 4 years ago
committed by GitHub
parent
commit
3986680330
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      configs/images/raspberrypi_raspbian_config
  2. 4
      configs/mender_convert_config
  3. 6
      docker-mender-convert
  4. 9
      mender-convert-modify
  5. 18
      mender-convert-package
  6. 2
      tests/mender-image-tests

3
configs/images/raspberrypi_raspbian_config

@ -13,6 +13,9 @@ IMAGE_OVERHEAD_FACTOR=1.0
# Best compression there is! # Best compression there is!
MENDER_COMPRESS_DISK_IMAGE=lzma MENDER_COMPRESS_DISK_IMAGE=lzma
# MEN-4256: Do not install the mender-client by default in our images
MENDER_CLIENT_INSTALL="n"
# #
# Resize the data partition to fill the remaining space, using parted, with systemd # Resize the data partition to fill the remaining space, using parted, with systemd
# #

4
configs/mender_convert_config

@ -113,6 +113,10 @@ MENDER_DATA_PART_SIZE_MB="128"
# Default is 8MB # Default is 8MB
MENDER_PARTITION_ALIGNMENT="8388608" MENDER_PARTITION_ALIGNMENT="8388608"
# Install Mender client
#
MENDER_CLIENT_INSTALL="y"
# Mender client version # Mender client version
# #
# This is used to fetch the correct binaries # This is used to fetch the correct binaries

6
docker-mender-convert

@ -44,6 +44,10 @@ docker run \
--env MENDER_CONVERT_LOG_FILE=logs/${LOG_FILE} \ --env MENDER_CONVERT_LOG_FILE=logs/${LOG_FILE} \
$IMAGE_NAME "$@" $IMAGE_NAME "$@"
[ $? -eq 0 ] && rmdir ${WORK_DIR} exit_code=$?
[ ${exit_code} -eq 0 ] && rmdir ${WORK_DIR}
echo "Log file available at: logs/${LOG_FILE}" echo "Log file available at: logs/${LOG_FILE}"
exit ${exit_code}

9
mender-convert-modify

@ -103,6 +103,10 @@ log_info "Installing Mender client and related files"
deb_arch=$(probe_debian_arch_name) deb_arch=$(probe_debian_arch_name)
if [ "${MENDER_CLIENT_INSTALL}" = "y" ]; then
log_info "Installing Mender Client version ${MENDER_CLIENT_VERSION}"
if [ "${MENDER_CLIENT_VERSION}" = "latest" ]; then if [ "${MENDER_CLIENT_VERSION}" = "latest" ]; then
deb_name=$(deb_from_repo_dist_get "work/deb-packages" ${MENDER_APT_REPO_URL} ${deb_arch} "stable" "mender-client") deb_name=$(deb_from_repo_dist_get "work/deb-packages" ${MENDER_APT_REPO_URL} ${deb_arch} "stable" "mender-client")
elif [ "${MENDER_CLIENT_VERSION}" = "master" ]; then elif [ "${MENDER_CLIENT_VERSION}" = "master" ]; then
@ -117,6 +121,8 @@ deb_extract_package "work/deb-packages/${deb_name}" "work/rootfs/"
# Save installed client version for tests in Yocto variable format # Save installed client version for tests in Yocto variable format
testscfg_add "PREFERRED_VERSION_mender-client" "$(echo ${deb_name} | sed -r 's/.*_([0-9]+\.[0-9]+\.[0-9]+).*/\1/')" testscfg_add "PREFERRED_VERSION_mender-client" "$(echo ${deb_name} | sed -r 's/.*_([0-9]+\.[0-9]+\.[0-9]+).*/\1/')"
fi
if [ "${MENDER_ENABLE_SYSTEMD}" == "y" ]; then if [ "${MENDER_ENABLE_SYSTEMD}" == "y" ]; then
run_and_log_cmd "sudo ln -sf /lib/systemd/system/mender-client.service \ run_and_log_cmd "sudo ln -sf /lib/systemd/system/mender-client.service \
work/rootfs/etc/systemd/system/multi-user.target.wants/mender-client.service" work/rootfs/etc/systemd/system/multi-user.target.wants/mender-client.service"
@ -297,8 +303,11 @@ fi
run_and_log_cmd "echo 'device_type=${device_type}' > work/device_type" run_and_log_cmd "echo 'device_type=${device_type}' > work/device_type"
run_and_log_cmd "sudo install -m 0444 work/device_type work/rootfs/data/mender/" run_and_log_cmd "sudo install -m 0444 work/device_type work/rootfs/data/mender/"
if [ "${MENDER_CLIENT_INSTALL}" = "y" ]; then
run_and_log_cmd "echo 'artifact_name=${MENDER_ARTIFACT_NAME}' \ run_and_log_cmd "echo 'artifact_name=${MENDER_ARTIFACT_NAME}' \
| sudo tee work/rootfs/etc/mender/artifact_info" | sudo tee work/rootfs/etc/mender/artifact_info"
fi
log_info "Creating state scripts version file." log_info "Creating state scripts version file."
case "${MENDER_CLIENT_VERSION}" in case "${MENDER_CLIENT_VERSION}" in

18
mender-convert-package

@ -144,12 +144,11 @@ rootfs_part_sectors=$(((${disk_image_total_sectors} - ${data_part_sectors} - \
rootfs_part_sectors=$(disk_align_sectors ${rootfs_part_sectors} ${MENDER_PARTITION_ALIGNMENT}) rootfs_part_sectors=$(disk_align_sectors ${rootfs_part_sectors} ${MENDER_PARTITION_ALIGNMENT})
device_type=$(cat work/rootfs/data/mender/device_type | sed 's/[^=]*=//') device_type=$(cat work/rootfs/data/mender/device_type | sed 's/[^=]*=//')
artifact_name=$(cat work/rootfs/etc/mender/artifact_info | sed 's/[^=]*=//')
# Get the name from the input disk_image # Get the name from the input disk_image
temp_img_name=$(basename "$disk_image") temp_img_name=$(basename "$disk_image")
# Check if user has chooses custom filename # Check if user has chosen custom filename
if [ -z "${DEPLOY_IMAGE_NAME}" ]; then if [ -z "${DEPLOY_IMAGE_NAME}" ]; then
# Strip the image suffix from temp_img_name and set the original image name as # Strip the image suffix from temp_img_name and set the original image name as
# the output image name # the output image name
@ -212,7 +211,10 @@ disk_create_file_system_from_folder "work/rootfs/" "work/rootfs.img" \
log_info "Copying root filesystem image to deploy directory" log_info "Copying root filesystem image to deploy directory"
run_and_log_cmd "cp --sparse=always work/rootfs.img deploy/${image_name}.${image_fs_type}" run_and_log_cmd "cp --sparse=always work/rootfs.img deploy/${image_name}.${image_fs_type}"
mender_create_artifact "${device_type}" "${artifact_name}" "${image_name}" if [ "${MENDER_CLIENT_INSTALL}" != "y" ]; then
log_warn "Generating Artifact with no Mender client in it; not suitable for deployment"
fi
mender_create_artifact "${device_type}" "${MENDER_ARTIFACT_NAME}" "${image_name}"
log_info "Creating Mender compatible disk-image" log_info "Creating Mender compatible disk-image"
@ -347,6 +349,8 @@ log_info "Conversion has completed! \o/"
##################### Create configuration file for tests ###################### ##################### Create configuration file for tests ######################
mender_features="mender-convert"
if [ "${MENDER_GRUB_EFI_INTEGRATION}" == "y" ]; then if [ "${MENDER_GRUB_EFI_INTEGRATION}" == "y" ]; then
boot_part_mountpoint="/boot/efi" boot_part_mountpoint="/boot/efi"
@ -358,7 +362,11 @@ else
# This is the name of the MENDER_FEATURES in Yocto # This is the name of the MENDER_FEATURES in Yocto
bootloader_feature="mender-uboot" bootloader_feature="mender-uboot"
fi fi
mender_features="${bootloader_feature} mender-convert" mender_features="${mender_features} ${bootloader_feature}"
if [ "${MENDER_CLIENT_INSTALL}" = "y" ]; then
mender_features="${mender_features} mender-client-install"
fi
testscfg_add "MENDER_BOOT_PART" "${boot_part_device}" testscfg_add "MENDER_BOOT_PART" "${boot_part_device}"
testscfg_add "MENDER_ROOTFS_PART_A" "${root_part_a_device}" testscfg_add "MENDER_ROOTFS_PART_A" "${root_part_a_device}"
@ -372,7 +380,7 @@ testscfg_add "MENDER_PARTITIONING_OVERHEAD_KB" "$(((${overhead_sectors} * 512) /
testscfg_add "MENDER_PARTITION_ALIGNMENT" "${MENDER_PARTITION_ALIGNMENT}" testscfg_add "MENDER_PARTITION_ALIGNMENT" "${MENDER_PARTITION_ALIGNMENT}"
testscfg_add "MENDER_STORAGE_TOTAL_SIZE_MB" "${MENDER_STORAGE_TOTAL_SIZE_MB}" testscfg_add "MENDER_STORAGE_TOTAL_SIZE_MB" "${MENDER_STORAGE_TOTAL_SIZE_MB}"
testscfg_add "MENDER_UBOOT_ENV_STORAGE_DEVICE_OFFSET" "12582912" testscfg_add "MENDER_UBOOT_ENV_STORAGE_DEVICE_OFFSET" "12582912"
testscfg_add "MENDER_ARTIFACT_NAME" "${artifact_name}" testscfg_add "MENDER_ARTIFACT_NAME" "${MENDER_ARTIFACT_NAME}"
testscfg_add "MENDER_FEATURES" "${mender_features}" testscfg_add "MENDER_FEATURES" "${mender_features}"
testscfg_add "DEPLOY_DIR_IMAGE" "${PWD}/deploy" testscfg_add "DEPLOY_DIR_IMAGE" "${PWD}/deploy"
testscfg_add "MENDER_MACHINE" "${device_type}" testscfg_add "MENDER_MACHINE" "${device_type}"

2
tests/mender-image-tests

@ -1 +1 @@
Subproject commit 762ce89b764bf67db647827f8eb7923b707fc2fe Subproject commit 1e51f5c54f71da25c50400d4a6bd8b1626267e6a
Loading…
Cancel
Save