From cfdbe5791726b54c76a3de0e950a04abe0ea7760 Mon Sep 17 00:00:00 2001 From: Dmitry Fedchenko Date: Mon, 10 Oct 2022 14:22:46 +0300 Subject: [PATCH 1/4] XDB-104: Remove debug information from releases but keep it for the regular builds --- cmake/CPackConfig.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmake/CPackConfig.cmake b/cmake/CPackConfig.cmake index 13dee34e772..026ae40b4d9 100644 --- a/cmake/CPackConfig.cmake +++ b/cmake/CPackConfig.cmake @@ -11,6 +11,10 @@ else() message(FATAL_ERROR "Unsupported package format ${CPACK_GENERATOR}") endif() -set(CPACK_STRIP_FILES TRUE) +if(${FDB_RELEASE} STREQUAL "ON") + message("Strip binaries for release") + set(CPACK_STRIP_FILES TRUE) +endif() + set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE) From bb27510ffaf9adee60b5def5460ab9a945ac5ccd Mon Sep 17 00:00:00 2001 From: Dmitry Fedchenko Date: Mon, 10 Oct 2022 18:51:06 +0300 Subject: [PATCH 2/4] XDB-128: Versioned packages renamed --- .github/workflows/build.yml | 24 +++++++++++++++++++++++ cmake/InstallLayout.cmake | 38 +++++++++++++++++++++---------------- 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2952cb603b3..42245743e9b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -169,6 +169,18 @@ jobs: podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; } podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${clients} && grep -q foundationdb /etc/passwd" || { echo "User foundationdb is not created after $clients installation"; exit 3; } + - name: Test versioned RPMs deploy + shell: bash + run: | + MY_ARCH=`uname -m` + curr_path="${{ github.workspace }}" + server="foundationdb-server-versioned-${{ needs.calc_ver.outputs.full_ver }}.el7.${MY_ARCH}.rpm" + clients="foundationdb-clients-versioned-${{ needs.calc_ver.outputs.full_ver }}.el7.${MY_ARCH}.rpm" + podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server}" && { echo "Installation $server have to fail"; exit 1; } + podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; } + podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${clients} && grep -q foundationdb /etc/passwd" && { echo "User foundationdb was created after $clients installation"; exit 3; } + podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server} /home/${clients} && grep -q foundationdb /etc/passwd" || { echo "User foundationdb is not created after $server installation"; exit 4; } + - name: Test DEBs deploy shell: bash run: | @@ -180,6 +192,18 @@ jobs: podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; } podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${clients} && grep -q foundationdb /etc/passwd" || { echo "User foundationdb is not created after $clients installation"; exit 3; } + - name: Test versioned DEBs deploy + shell: bash + run: | + MY_ARCH=`dpkg-architecture -q DEB_BUILD_ARCH` + curr_path="${{ github.workspace }}" + server="foundationdb-server-versioned_${{ needs.calc_ver.outputs.full_ver }}_${MY_ARCH}.deb" + clients="foundationdb-clients-versioned_${{ needs.calc_ver.outputs.full_ver }}_${MY_ARCH}.deb" + podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server}" && { echo "Installation $server have to fail"; exit 1; } + podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; } + podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${clients} && grep -q foundationdb /etc/passwd" && { echo "User foundationdb was created after $clients installation"; exit 3; } + podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server} /home/${clients} && grep -q foundationdb /etc/passwd" || { echo "User foundationdb is not created after $server installation"; exit 4; } + release: needs: [calc_ver, build_linux] if: ${{ needs.calc_ver.outputs.release_flag == 'ON' }} diff --git a/cmake/InstallLayout.cmake b/cmake/InstallLayout.cmake index e868ed2b583..1c051751009 100644 --- a/cmake/InstallLayout.cmake +++ b/cmake/InstallLayout.cmake @@ -205,12 +205,12 @@ set(CPACK_COMPONENT_SERVER-VERSIONED_DEPENDS clients-versioned) set(CPACK_COMPONENT_SERVER-EL8_DISPLAY_NAME "foundationdb-server") set(CPACK_COMPONENT_SERVER-DEB_DISPLAY_NAME "foundationdb-server") set(CPACK_COMPONENT_SERVER-TGZ_DISPLAY_NAME "foundationdb-server") -set(CPACK_COMPONENT_SERVER-VERSIONED_DISPLAY_NAME "foundationdb-server-${FDB_VERSION}") +set(CPACK_COMPONENT_SERVER-VERSIONED_DISPLAY_NAME "foundationdb${FDB_VERSION}-server") set(CPACK_COMPONENT_CLIENTS-EL8_DISPLAY_NAME "foundationdb-clients") set(CPACK_COMPONENT_CLIENTS-DEB_DISPLAY_NAME "foundationdb-clients") set(CPACK_COMPONENT_CLIENTS-TGZ_DISPLAY_NAME "foundationdb-clients") -set(CPACK_COMPONENT_CLIENTS-VERSIONED_DISPLAY_NAME "foundationdb-clients-${FDB_VERSION}") +set(CPACK_COMPONENT_CLIENTS-VERSIONED_DISPLAY_NAME "foundationdb${FDB_VERSION}-clients") # MacOS needs a file extension for the LICENSE file @@ -237,9 +237,11 @@ endif() ############# # Filenames # ############# -set(package_basename "foundationdb") -set(clients_package_basename "${package_basename}-clients") -set(server_package_basename "${package_basename}-server") +set(package_basename "foundationdb") +set(clients_package_basename "${package_basename}-clients") +set(server_package_basename "${package_basename}-server") +set(clients_versioned_package_basename "${package_basename}${FDB_VERSION}-clients") +set(server_versioned_package_basename "${package_basename}${FDB_VERSION}-server") string(REPLACE "-" "_" FDB_PACKAGE_VERSION ${FDB_VERSION}) set(unversioned_postfix "${FDB_VERSION}${not_fdb_release_string}") @@ -247,10 +249,14 @@ set(unversioned_postfix "${FDB_VERSION}${not_fdb_release_string}") # RPM filenames set(rpm-clients-filename "${clients_package_basename}-${unversioned_postfix}") set(rpm-server-filename "${server_package_basename}-${unversioned_postfix}") +set(rpm-clients-versioned-filename "${clients_package_basename}-versioned-${unversioned_postfix}") +set(rpm-server-versioned-filename "${server_package_basename}-versioned-${unversioned_postfix}") # Deb filenames set(deb-clients-filename "${clients_package_basename}_${unversioned_postfix}") set(deb-server-filename "${server_package_basename}_${unversioned_postfix}") +set(deb-clients-versioned-filename "${clients_package_basename}-versioned_${unversioned_postfix}") +set(deb-server-versioned-filename "${server_package_basename}-versioned_${unversioned_postfix}") ################################################################################ # Configuration for RPM @@ -273,13 +279,13 @@ set(CPACK_RPM_SERVER-EL8_USER_FILELIST "%config(noreplace) / "%attr(0700,foundationdb,foundationdb) /var/log/foundationdb" "%attr(0700,foundationdb,foundationdb) /var/lib/foundationdb") -set(CPACK_RPM_CLIENTS-VERSIONED_PACKAGE_NAME "${clients_package_basename}") -set(CPACK_RPM_CLIENTS-VERSIONED_FILE_NAME "${rpm-clients-filename}.versioned.${CMAKE_SYSTEM_PROCESSOR}.rpm") +set(CPACK_RPM_CLIENTS-VERSIONED_PACKAGE_NAME "${clients_versioned_package_basename}") +set(CPACK_RPM_CLIENTS-VERSIONED_FILE_NAME "${rpm-clients-versioned-filename}.${CMAKE_SYSTEM_PROCESSOR}.rpm") set(CPACK_RPM_CLIENTS-VERSIONED_POST_INSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/multiversion/clients/postinst) set(CPACK_RPM_CLIENTS-VERSIONED_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/multiversion/clients/prerm) -set(CPACK_RPM_SERVER-VERSIONED_PACKAGE_NAME "${server_package_basename}") -set(CPACK_RPM_SERVER-VERSIONED_FILE_NAME "${rpm-server-filename}.versioned.${CMAKE_SYSTEM_PROCESSOR}.rpm") +set(CPACK_RPM_SERVER-VERSIONED_PACKAGE_NAME "${server_versioned_package_basename}") +set(CPACK_RPM_SERVER-VERSIONED_FILE_NAME "${rpm-server-versioned-filename}.${CMAKE_SYSTEM_PROCESSOR}.rpm") set(CPACK_RPM_SERVER-VERSIONED_PACKAGE_REQUIRES "${CPACK_RPM_CLIENTS-VERSIONED_PACKAGE_NAME} = ${FDB_VERSION}") set(CPACK_RPM_SERVER-VERSIONED_POST_INSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/multiversion/server/postinst-rpm) set(CPACK_RPM_SERVER-VERSIONED_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/multiversion/server/prerm) @@ -321,13 +327,13 @@ set(CPACK_RPM_COMPONENT_INSTALL ON) if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") set(CPACK_DEBIAN_CLIENTS-DEB_FILE_NAME "${deb-clients-filename}_amd64.deb") set(CPACK_DEBIAN_SERVER-DEB_FILE_NAME "${deb-server-filename}_amd64.deb") - set(CPACK_DEBIAN_CLIENTS-VERSIONED_FILE_NAME "${deb-clients-filename}.versioned_amd64.deb") - set(CPACK_DEBIAN_SERVER-VERSIONED_FILE_NAME "${deb-server-filename}.versioned_amd64.deb") + set(CPACK_DEBIAN_CLIENTS-VERSIONED_FILE_NAME "${deb-clients-versioned-filename}_amd64.deb") + set(CPACK_DEBIAN_SERVER-VERSIONED_FILE_NAME "${deb-server-versioned-filename}_amd64.deb") else() set(CPACK_DEBIAN_CLIENTS-DEB_FILE_NAME "${deb-clients-filename}_${CMAKE_SYSTEM_PROCESSOR}.deb") set(CPACK_DEBIAN_SERVER-DEB_FILE_NAME "${deb-server-filename}_${CMAKE_SYSTEM_PROCESSOR}.deb") - set(CPACK_DEBIAN_CLIENTS-VERSIONED_FILE_NAME "${deb-clients-filename}.versioned_${CMAKE_SYSTEM_PROCESSOR}.deb") - set(CPACK_DEBIAN_SERVER-VERSIONED_FILE_NAME "${deb-server-filename}.versioned_${CMAKE_SYSTEM_PROCESSOR}.deb") + set(CPACK_DEBIAN_CLIENTS-VERSIONED_FILE_NAME "${deb-clients-versioned-filename}_${CMAKE_SYSTEM_PROCESSOR}.deb") + set(CPACK_DEBIAN_SERVER-VERSIONED_FILE_NAME "${deb-server-versioned-filename}_${CMAKE_SYSTEM_PROCESSOR}.deb") endif() set(CPACK_DEB_COMPONENT_INSTALL ON) @@ -338,14 +344,14 @@ set(CPACK_DEBIAN_PACKAGE_SECTION "database") set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_NAME "${server_package_basename}") set(CPACK_DEBIAN_CLIENTS-DEB_PACKAGE_NAME "${clients_package_basename}") -set(CPACK_DEBIAN_SERVER-VERSIONED_PACKAGE_NAME "${server_package_basename}") -set(CPACK_DEBIAN_CLIENTS-VERSIONED_PACKAGE_NAME "${clients_package_basename}") +set(CPACK_DEBIAN_SERVER-VERSIONED_PACKAGE_NAME "${server_versioned_package_basename}") +set(CPACK_DEBIAN_CLIENTS-VERSIONED_PACKAGE_NAME "${clients_versioned_package_basename}") set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12), foundationdb-clients (= ${FDB_VERSION})") set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_RECOMMENDS "python (>= 2.6)") set(CPACK_DEBIAN_CLIENTS-DEB_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12)") -set(CPACK_DEBIAN_SERVER-VERSIONED_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12), foundationdb-clients (= ${FDB_VERSION})") +set(CPACK_DEBIAN_SERVER-VERSIONED_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12), foundationdb${FDB_VERSION}-clients") set(CPACK_DEBIAN_SERVER-VERSIONED_PACKAGE_RECOMMENDS "python (>= 2.6)") set(CPACK_DEBIAN_CLIENTS-VERSIONED_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12)") From 12dfd2e4de963f3b4ef8762871db43342fae5cc4 Mon Sep 17 00:00:00 2001 From: Dmitry Fedchenko Date: Fri, 14 Oct 2022 14:32:41 +0300 Subject: [PATCH 3/4] Fixed typo --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42245743e9b..e664f42b920 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -174,8 +174,8 @@ jobs: run: | MY_ARCH=`uname -m` curr_path="${{ github.workspace }}" - server="foundationdb-server-versioned-${{ needs.calc_ver.outputs.full_ver }}.el7.${MY_ARCH}.rpm" - clients="foundationdb-clients-versioned-${{ needs.calc_ver.outputs.full_ver }}.el7.${MY_ARCH}.rpm" + server="foundationdb-server-versioned-${{ needs.calc_ver.outputs.full_ver }}.el8.${MY_ARCH}.rpm" + clients="foundationdb-clients-versioned-${{ needs.calc_ver.outputs.full_ver }}.el8.${MY_ARCH}.rpm" podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server}" && { echo "Installation $server have to fail"; exit 1; } podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; } podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${clients} && grep -q foundationdb /etc/passwd" && { echo "User foundationdb was created after $clients installation"; exit 3; } From 1e4fcf74986ce31310f4a1bee7624affd97fe1dc Mon Sep 17 00:00:00 2001 From: Dmitry Fedchenko Date: Mon, 17 Oct 2022 12:40:17 +0300 Subject: [PATCH 4/4] XDB-128: In versioned rpms added system suffix --- cmake/InstallLayout.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/InstallLayout.cmake b/cmake/InstallLayout.cmake index 1c051751009..a2a22137dad 100644 --- a/cmake/InstallLayout.cmake +++ b/cmake/InstallLayout.cmake @@ -280,12 +280,12 @@ set(CPACK_RPM_SERVER-EL8_USER_FILELIST "%config(noreplace) / "%attr(0700,foundationdb,foundationdb) /var/lib/foundationdb") set(CPACK_RPM_CLIENTS-VERSIONED_PACKAGE_NAME "${clients_versioned_package_basename}") -set(CPACK_RPM_CLIENTS-VERSIONED_FILE_NAME "${rpm-clients-versioned-filename}.${CMAKE_SYSTEM_PROCESSOR}.rpm") +set(CPACK_RPM_CLIENTS-VERSIONED_FILE_NAME "${rpm-clients-versioned-filename}.el8.${CMAKE_SYSTEM_PROCESSOR}.rpm") set(CPACK_RPM_CLIENTS-VERSIONED_POST_INSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/multiversion/clients/postinst) set(CPACK_RPM_CLIENTS-VERSIONED_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/multiversion/clients/prerm) set(CPACK_RPM_SERVER-VERSIONED_PACKAGE_NAME "${server_versioned_package_basename}") -set(CPACK_RPM_SERVER-VERSIONED_FILE_NAME "${rpm-server-versioned-filename}.${CMAKE_SYSTEM_PROCESSOR}.rpm") +set(CPACK_RPM_SERVER-VERSIONED_FILE_NAME "${rpm-server-versioned-filename}.el8.${CMAKE_SYSTEM_PROCESSOR}.rpm") set(CPACK_RPM_SERVER-VERSIONED_PACKAGE_REQUIRES "${CPACK_RPM_CLIENTS-VERSIONED_PACKAGE_NAME} = ${FDB_VERSION}") set(CPACK_RPM_SERVER-VERSIONED_POST_INSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/multiversion/server/postinst-rpm) set(CPACK_RPM_SERVER-VERSIONED_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/multiversion/server/prerm)