From 2a98e44a5c9ae360c21f0bb305081d4bd5cd384b Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Thu, 25 Jul 2024 06:37:36 -0500 Subject: [PATCH] updated build system --- scripts/make_common.sh | 15 --------------- scripts/make_package.sh | 26 +++++++++++++++++++------- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/scripts/make_common.sh b/scripts/make_common.sh index ccf963a2..9c6cc599 100755 --- a/scripts/make_common.sh +++ b/scripts/make_common.sh @@ -90,18 +90,3 @@ ln -sf "${PROJECT_BUILD_DIR}/build/compile_commands.json" "${SOURCE_DIR}/compile if [ -f "${SOURCE_DIR}/post_build.sh" ]; then "${SOURCE_DIR}/post_build.sh" fi - -pushd "${PROJECT_DIST_DIR}" -IFS=$'\n' -set -f -FILE_LIST=$(find . -type f) -for FILE in ${FILE_LIST}; do - sha256sum ${FILE} >${FILE}.sha256 - if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then - openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${FILE}.sig" "${FILE}" - openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${FILE}.sig" "${FILE}" || exit 1 - fi -done -unset IFS -set +f -popd diff --git a/scripts/make_package.sh b/scripts/make_package.sh index ea25db5d..0baf84fb 100755 --- a/scripts/make_package.sh +++ b/scripts/make_package.sh @@ -27,20 +27,32 @@ if [ ! -d "${DIST_DIR}" ]; then error_exit "dest directory not found: ${DIST_DIR}" 1 fi -PACKAGE_ROOT="${PROJECT_DIST_DIR}/.." -PACKAGE_ROOT=$(realpath "${PACKAGE_ROOT}") - rsync -av --progress ${PROJECT_DIST_DIR}/ ${TEMP_DIR}/${PROJECT_NAME}/ || error_exit "failed to rsync" 1 +pushd "${TEMP_DIR}/${PROJECT_NAME}/" +IFS=$'\n' +set -f +FILE_LIST=$(find . -type f) +for FILE in ${FILE_LIST}; do + sha256sum ${FILE} >${FILE}.sha256 || error_exit "failed to create sha256 for file: ${FILE}" 1 + if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then + openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${FILE}.sig" "${FILE}" || error_exit "failed to create signature for file: ${FILE}" 1 + openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${FILE}.sig" "${FILE}" || error_exit "failed to validate signature for file: ${FILE}" 1 + fi +done +unset IFS +set +f +popd + FILE_PART=${PROJECT_NAME}_${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}-${PROJECT_RELEASE_ITER}-${PROJECT_GIT_REV}_${PROJECT_BUILD_ARCH}_${PROJECT_OS} pushd "${DIST_DIR}" OUT_FILE=${FILE_PART}.tar.gz -tar cvzf "${OUT_FILE}" -C ${TEMP_DIR} . || error_exit "failed to create archive" 1 -sha256sum "${OUT_FILE}" >"${OUT_FILE}.sha256" || error_exit "failed to create sha256 file" 1 +tar cvzf "${OUT_FILE}" -C ${TEMP_DIR} . || error_exit "failed to create archive: ${OUT_FILE}" 1 +sha256sum "${OUT_FILE}" >"${OUT_FILE}.sha256" || error_exit "failed to create sha256 for file: ${OUT_FILE}" 1 if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then - openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${OUT_FILE}.sig" "${OUT_FILE}" || error_exit "failed to create signature file" 1 - openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${OUT_FILE}.sig" "${OUT_FILE}" || error_exit "failed to validate signature file" 1 + openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${OUT_FILE}.sig" "${OUT_FILE}" || error_exit "failed to create signature for file: ${OUT_FILE}" 1 + openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${OUT_FILE}.sig" "${OUT_FILE}" || error_exit "failed to validate signature for file: ${OUT_FILE}" 1 fi popd