~aleteoryx/muditaos

d13a51d04428f679c6313e0e7f429a3f88afe8dc — Bartosz 3 years ago a4406ec
[MOS-785] Reworked updater dependencies into recovery

Fixed usage of updater in OS build flow to use recovery
M CMakeLists.txt => CMakeLists.txt +8 -4
@@ 4,6 4,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
set(MUDITA_CACHE_DIR "~/.mudita/" CACHE STRING "cache directory for our downloaded assets")

project(PureOS)
enable_language(C CXX ASM)



@@ 12,6 13,9 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
include(Product)
include(Board)

set(SYSROOT_PATH ${CMAKE_CURRENT_BINARY_DIR}/sysroot)
set(SYSROOT_BIN_PATH ${SYSROOT_PATH}/system_a/bin)

validate_product_selection()
include(products/${PRODUCT}/config.cmake)
select_board()


@@ 180,7 184,7 @@ add_custom_target(
# Create common system directories
add_directories(
        TARGET system_directories_common
        PREFIX ${CMAKE_BINARY_DIR}/sysroot/system_a
        PREFIX ${SYSROOT_PATH}/system_a
        DEPENDS assets
        DIRECTORIES log assets crash_dumps data bin db scripts
)


@@ 189,7 193,7 @@ add_directories(
add_databases_target(
        TARGET create_databases_common
        SOURCE_DIR ${CMAKE_SOURCE_DIR}/module-db/databases/scripts
        DEST_DIR ${CMAKE_BINARY_DIR}/sysroot/system_a/db
        DEST_DIR ${SYSROOT_PATH}/system_a/db
        DEVEL ${WITH_DEVELOPMENT_FEATURES}
)



@@ 197,7 201,7 @@ add_databases_target(
add_databases_target(
        TARGET create_product_databases
        SOURCE_DIR ${CMAKE_SOURCE_DIR}/products/${PRODUCT}/services/db/databases/scripts
        DEST_DIR ${CMAKE_BINARY_DIR}/sysroot/system_a/db
        DEST_DIR ${SYSROOT_PATH}/system_a/db
        DEVEL ${WITH_DEVELOPMENT_FEATURES}
        DEPENDS create_databases_common
)


@@ 205,7 209,7 @@ add_databases_target(
add_scripts_target(
        TARGET install_scripts
        PRODUCT ${PRODUCT}
        DEST_DIR ${CMAKE_BINARY_DIR}/sysroot/system_a/scripts
        DEST_DIR ${SYSROOT_PATH}/system_a/scripts
)

# Create and initialize common databases for tests

M cmake/modules/AddBootBin.cmake => cmake/modules/AddBootBin.cmake +1 -1
@@ 1,5 1,5 @@
function(add_boot_bin SOURCE_TARGET)
    set(BIN_FILE ${CMAKE_BINARY_DIR}/sysroot/system_a/bin/boot.bin)
    set(BIN_FILE ${SYSROOT_PATH}/system_a/bin/boot.bin)

    set_target_properties(
            ${SOURCE_TARGET}

M cmake/modules/AddPackage.cmake => cmake/modules/AddPackage.cmake +2 -2
@@ 46,7 46,7 @@ function(add_standalone_image SOURCE_TARGET)
        DEPENDS json-proprietary-target
        DEPENDS json-rt1051-target
        DEPENDS ecoboot.bin-target
        DEPENDS updater.bin-target
        DEPENDS recovery.bin-target
        DEPENDS ${SOURCE_TARGET}-version.json-target
        DEPENDS ${SOURCE_TARGET}.img
        )


@@ 74,7 74,7 @@ function(add_update_package SOURCE_TARGET)
                ${SOURCE_TARGET}-boot.bin
                ${SOURCE_TARGET}-version.json-target
                ecoboot.bin-target
                updater.bin-target
                recovery.bin-target
                assets
        COMMAND ${CMAKE_SOURCE_DIR}/tools/generate_update_image.sh ${SOURCE_TARGET} ${PROJECT_VERSION} ${CPACK_SYSTEM_NAME}
        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}

M cmake/modules/AddVersionJson.cmake => cmake/modules/AddVersionJson.cmake +11 -11
@@ 5,30 5,30 @@ function(add_version_rt1051_json SOURCE_TARGET)
            -DSRC_FILE=${CMAKE_SOURCE_DIR}/config/version_rt1051.json.cmake_template
            -DDST_FILE=${CMAKE_BINARY_DIR}/${SOURCE_TARGET}-version.json
            -DBOOTLOADER_FILENAME=ecoboot.bin
            -DBOOTLOADER_FILE=${CMAKE_BINARY_DIR}/ecoboot.bin
            -DBOOTLOADER_FILE=${SYSROOT_BIN_PATH}/ecoboot.bin
            -DBOOT_FILENAME=boot.bin
            -DBOOT_FILE=$<TARGET_PROPERTY:${SOURCE_TARGET},BIN_FILE>
            -DBOOT_VERSION=${PROJECT_VERSION}
            -DUPDATER_FILENAME=updater.bin
            -DUPDATER_FILE=${CMAKE_BINARY_DIR}/updater.bin
            -DRECOVERY_FILENAME=recovery.bin
            -DRECOVERY_FILE=${SYSROOT_BIN_PATH}/recovery.bin
            -DOS_VERSION_MAJOR=${OS_VERSION_MAJOR}
            -DOS_VERSION_MINOR=${OS_VERSION_MINOR}
            -DOS_VERSION_PATCH=${OS_VERSION_PATCH}
            -DOS_VERSION_LABEL=${OS_VERSION_LABEL}
            -DECOBOOT_BIN_VERSION=${ECOBOOT_BIN_VERSION}
            -DUPDATER_BIN_VERSION=${UPDATER_BIN_VERSION}
            -DRECOVERY_BIN_VERSION=${RECOVERY_BIN_VERSION}
            -B ${CMAKE_BINARY_DIR}
            -P ${CMAKE_SOURCE_DIR}/cmake/modules/ConfigureVersionJson.cmake
        DEPENDS ecoboot.bin-target
        DEPENDS updater.bin-target
        DEPENDS recovery.bin-target
        DEPENDS ${SOURCE_TARGET}-boot.bin
    )

    add_custom_command(OUTPUT add-${SOURCE_TARGET}-version.json
        COMMAND mkdir -p ${CMAKE_BINARY_DIR}/sysroot/system_a
        COMMAND rsync -qravu
        COMMAND mkdir -p ${SYSROOT_PATH}/system_a
        COMMAND rsync -qau
            ${CMAKE_BINARY_DIR}/${SOURCE_TARGET}-version.json
            ${CMAKE_BINARY_DIR}/sysroot/system_a/version.json
            ${SYSROOT_PATH}/system_a/version.json
        DEPENDS
            ${SOURCE_TARGET}-version.json
    )


@@ 53,10 53,10 @@ function(add_version_linux_json SOURCE_TARGET)
    )

    add_custom_command(OUTPUT add-${SOURCE_TARGET}-version.json
        COMMAND mkdir -p ${CMAKE_BINARY_DIR}/sysroot/system_a
        COMMAND rsync -qravu
        COMMAND mkdir -p ${SYSROOT_PATH}/system_a
        COMMAND rsync -qau
            ${CMAKE_BINARY_DIR}/${SOURCE_TARGET}-version.json
            ${CMAKE_BINARY_DIR}/sysroot/system_a/version.json
            ${SYSROOT_PATH}/system_a/version.json
        DEPENDS
            ${SOURCE_TARGET}-version.json
    )

M cmake/modules/ConfigureVersionJson.cmake => cmake/modules/ConfigureVersionJson.cmake +2 -2
@@ 7,8 7,8 @@ endif()
if (NOT ${BOOT_FILE} STREQUAL "")
    file(MD5 ${BOOT_FILE} BOOT_MD5SUM)
endif()
if (NOT ${UPDATER_FILE} STREQUAL "")
    file(MD5 ${UPDATER_FILE} UPDATER_MD5SUM)
if (NOT ${RECOVERY_FILE} STREQUAL "")
    file(MD5 ${RECOVERY_FILE} RECOVERY_MD5SUM)
endif()

message("Configuring version.json file")

M cmake/modules/DownloadAsset.cmake => cmake/modules/DownloadAsset.cmake +1 -1
@@ 7,7 7,7 @@ function(download_asset_release asset_name_in asset_name_out asset_repo asset_ve
            github
            --owner mudita
            --repository ${asset_repo}
            --install_dir ${CMAKE_BINARY_DIR}
            --install_dir ${SYSROOT_BIN_PATH}
            download
            --name_in ${asset_name_in}
            --name_out ${asset_name_out}

M config/version.json.cmake_template => config/version.json.cmake_template +4 -4
@@ 20,10 20,10 @@
        "filename": "@BOOT_FILENAME@",
        "md5sum":   "@BOOT_MD5SUM@"
    },
    "updater":
    "recovery":
    {
        "version":  "@UPDATER_BIN_VERSION@",
        "filename": "@UPDATER_FILENAME@",
        "md5sum":   "@UPDATER_MD5SUM@"
        "version":  "@RECOVERY_BIN_VERSION@",
        "filename": "@RECOVERY_FILENAME@",
        "md5sum":   "@RECOVERY_MD5SUM@"
    }
}

M config/version_rt1051.json.cmake_template => config/version_rt1051.json.cmake_template +4 -4
@@ 20,10 20,10 @@
        "filename": "@BOOT_FILENAME@",
        "md5sum":   "@BOOT_MD5SUM@"
    },
    "updater":
    "recovery":
    {
        "version":  "@UPDATER_BIN_VERSION@",
        "filename": "@UPDATER_FILENAME@",
        "md5sum":   "@UPDATER_MD5SUM@"
        "version":  "@RECOVERY_BIN_VERSION@",
        "filename": "@RECOVERY_FILENAME@",
        "md5sum":   "@RECOVERY_MD5SUM@"
    }
}

M image/CMakeLists.txt => image/CMakeLists.txt +2 -3
@@ 1,9 1,8 @@
include(Assets)
include(Utils)

set(SYSROOT ${CMAKE_BINARY_DIR}/sysroot)
set(SYSTEM_DEST_DIR ${SYSROOT}/system_a)
set(USER_DEST_DIR ${SYSROOT}/user)
set(SYSTEM_DEST_DIR ${SYSROOT_PATH}/system_a)
set(USER_DEST_DIR ${SYSROOT_PATH}/user)

set(ASSETS_DEPENDENCIES "json-common-target")


M products/BellHybrid/BinaryAssetsVersions.cmake => products/BellHybrid/BinaryAssetsVersions.cmake +2 -2
@@ 4,6 4,6 @@ if( NOT DEFINED ECOBOOT_BIN_VERSION)
    set(ECOBOOT_BIN_VERSION 1.1.0 CACHE STRING "bootloader binary version to download from bootloader release page")
endif()

if (NOT DEFINED UPDATER_BIN_VERSION)
    set(UPDATER_BIN_VERSION 1.3.0 CACHE STRING "updater binary version to download from updater release page")
if (NOT DEFINED RECOVERY_BIN_VERSION)
    set(RECOVERY_BIN_VERSION 0.0.1 CACHE STRING "recovery binary version to download from recovery release page")
endif()

M products/BellHybrid/CMakeLists.txt => products/BellHybrid/CMakeLists.txt +7 -7
@@ 84,7 84,7 @@ include(AddVersionJson)

add_directories(
        TARGET create_user_directories
        PREFIX ${CMAKE_BINARY_DIR}/sysroot/user/media/app
        PREFIX ${SYSROOT_PATH}/user/media/app
        DEPENDS system_directories_common
        DIRECTORIES relaxation
)


@@ 100,7 100,7 @@ if (${PROJECT_TARGET} STREQUAL "TARGET_RT1051")
            create_product_databases
            create_user_directories
            assets
            updater.bin-target
            recovery.bin-target
            ecoboot.bin-target
            BellHybrid-boot.bin
            BellHybrid-version.json-target


@@ 128,31 128,31 @@ include(DownloadAsset)
# copy all assets required to build catalog under current folder as in json recipe
download_asset_json(json-proprietary-target
                    ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_proprietary.json
                    ${CMAKE_BINARY_DIR}/sysroot/system_a/
                   ${SYSROOT_PATH}/system_a/
                    MuditaOSAssets
                    ${MUDITA_CACHE_DIR}
    )
download_asset_release_json(json-common-target
                            ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_common.json
                            ${CMAKE_BINARY_DIR}/sysroot/system_a/
                           ${SYSROOT_PATH}/system_a/
                            MuditaOSPublicAssets
                            0.0.15
                            ${MUDITA_CACHE_DIR}
    )
download_asset_release_json(json-community-target
                            ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_community.json
                            ${CMAKE_BINARY_DIR}/sysroot/system_a/
                           ${SYSROOT_PATH}/system_a/
                            MuditaOSPublicAssets
                            0.0.15
                            ${MUDITA_CACHE_DIR}
    )
download_asset_json(json-rt1051-target
                            ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_rt1051.json
                            ${CMAKE_BINARY_DIR}/sysroot/system_a/assets
                           ${SYSROOT_PATH}/system_a/assets
                            MuditaOSAssets
                            ${MUDITA_CACHE_DIR}
    )
download_asset_release(PureUpdater_RT.bin updater.bin PureUpdater ${UPDATER_BIN_VERSION}  ${MUDITA_CACHE_DIR})
download_asset_release(PureRecovery.bin recovery.bin PureRecovery ${RECOVERY_BIN_VERSION}  ${MUDITA_CACHE_DIR})
download_asset_release(ecoboot.bin ecoboot.bin ecoboot ${ECOBOOT_BIN_VERSION}  ${MUDITA_CACHE_DIR})



M products/PurePhone/BinaryAssetsVersions.cmake => products/PurePhone/BinaryAssetsVersions.cmake +2 -2
@@ 4,6 4,6 @@ if( NOT DEFINED ECOBOOT_BIN_VERSION)
    set(ECOBOOT_BIN_VERSION 1.1.2 CACHE STRING "bootloader binary version to download from bootloader release page")
endif()

if (NOT DEFINED UPDATER_BIN_VERSION)
    set(UPDATER_BIN_VERSION 1.5.4 CACHE STRING "updater binary version to download from updater release page")
if (NOT DEFINED RECOVERY_BIN_VERSION)
    set(RECOVERY_BIN_VERSION 0.0.1 CACHE STRING "recovery binary version to download from recovery release page")
endif()

M products/PurePhone/CMakeLists.txt => products/PurePhone/CMakeLists.txt +7 -7
@@ 108,7 108,7 @@ include(AddVersionJson)

add_directories(
        TARGET create_user_directories
        PREFIX ${CMAKE_BINARY_DIR}/sysroot/user/media/app
        PREFIX ${SYSROOT_PATH}/user/media/app
        DEPENDS system_directories_common
        DIRECTORIES music_player
)


@@ 124,7 124,7 @@ if (${PROJECT_TARGET} STREQUAL "TARGET_RT1051")
            create_product_databases
            create_user_directories
            assets
            updater.bin-target
            recovery.bin-target
            ecoboot.bin-target
            PurePhone-boot.bin
            PurePhone-version.json-target


@@ 152,32 152,32 @@ include(DownloadAsset)

download_asset_json(json-proprietary-target
                    ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_proprietary.json
                    ${CMAKE_BINARY_DIR}/sysroot/system_a/
                    ${SYSROOT_PATH}/system_a/
                    MuditaOSAssets
                    ${MUDITA_CACHE_DIR}
    )
download_asset_release_json(json-common-target
                            ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_common.json
                            ${CMAKE_BINARY_DIR}/sysroot/
                            ${SYSROOT_PATH}/
                            MuditaOSPublicAssets
                            0.0.8
                            ${MUDITA_CACHE_DIR}
    )
download_asset_release_json(json-community-target
                            ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_community.json
                            ${CMAKE_BINARY_DIR}/sysroot/system_a/
                            ${SYSROOT_PATH}/system_a/
                            MuditaOSPublicAssets
                            0.0.8
                            ${MUDITA_CACHE_DIR}
    )
download_asset_json(json-rt1051-target
                            ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_rt1051.json
                            ${CMAKE_BINARY_DIR}/sysroot/system_a/assets
                            ${SYSROOT_PATH}/system_a/assets
                            MuditaOSAssets
                            ${MUDITA_CACHE_DIR}
    )

download_asset_release(PureUpdater_RT.bin updater.bin PureUpdater ${UPDATER_BIN_VERSION} ${MUDITA_CACHE_DIR})
download_asset_release(PureRecovery.bin recovery.bin PureRecovery ${RECOVERY_BIN_VERSION} ${MUDITA_CACHE_DIR})
download_asset_release(ecoboot.bin ecoboot.bin ecoboot ${ECOBOOT_BIN_VERSION} ${MUDITA_CACHE_DIR})