diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 88cd5fce124..e0882ba4259 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -170,6 +170,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: | @@ -181,6 +193,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/FDBComponents.cmake b/cmake/FDBComponents.cmake index 5cf799dde8a..8b20c148457 100644 --- a/cmake/FDBComponents.cmake +++ b/cmake/FDBComponents.cmake @@ -72,7 +72,7 @@ endif() # Pip ################################################################################ -find_package(Python3 COMPONENTS Interpreter) +find_package(Python3 3.0...<3.11 COMPONENTS Interpreter) if (Python3_Interpreter_FOUND AND NOT APPLE) set(WITH_DOCUMENTATION ON) else() diff --git a/cmake/InstallLayout.cmake b/cmake/InstallLayout.cmake index ce7468d075a..a5880788756 100644 --- a/cmake/InstallLayout.cmake +++ b/cmake/InstallLayout.cmake @@ -156,14 +156,14 @@ set(unversioned_postfix "${FDB_VERSION}${not_fdb_release_string}") # RPM filenames set(rpm-clients-filename "foundationdb-clients-${unversioned_postfix}") set(rpm-server-filename "foundationdb-server-${unversioned_postfix}") -set(rpm-clients-versioned-filename "foundationdb${FDB_VERSION}-clients${prerelease_string}") -set(rpm-server-versioned-filename "foundationdb${FDB_VERSION}-server${prerelease_string}") +set(rpm-clients-versioned-filename "foundationdb-clients-versioned-${unversioned_postfix}") +set(rpm-server-versioned-filename "foundationdb-server-versioned-${unversioned_postfix}") # Deb filenames set(deb-clients-filename "foundationdb-clients_${unversioned_postfix}") set(deb-server-filename "foundationdb-server_${unversioned_postfix}") -set(deb-clients-versioned-filename "foundationdb${FDB_VERSION}-clients${prerelease_string}") -set(deb-server-versioned-filename "foundationdb${FDB_VERSION}-server${prerelease_string}") +set(deb-clients-versioned-filename "foundationdb-clients-versioned_${unversioned_postfix}") +set(deb-server-versioned-filename "foundationdb-server-versioned_${unversioned_postfix}") ################################################################################ # Configuration for RPM @@ -178,14 +178,14 @@ set(CPACK_RPM_SERVER-VERSIONED_PACKAGE_NAME "foundationdb${FDB_VERSION}-server") set(CPACK_RPM_CLIENTS-VERSIONED_PACKAGE_NAME "foundationdb${FDB_VERSION}-clients") set(CPACK_RPM_CLIENTS-EL7_FILE_NAME "${rpm-clients-filename}.el7.${CMAKE_SYSTEM_PROCESSOR}.rpm") -set(CPACK_RPM_CLIENTS-VERSIONED_FILE_NAME "${rpm-clients-filename}.versioned.${CMAKE_SYSTEM_PROCESSOR}.rpm") +set(CPACK_RPM_CLIENTS-VERSIONED_FILE_NAME "${rpm-clients-versioned-filename}.el7.${CMAKE_SYSTEM_PROCESSOR}.rpm") set(CPACK_RPM_SERVER-EL7_FILE_NAME "${rpm-server-filename}.el7.${CMAKE_SYSTEM_PROCESSOR}.rpm") -set(CPACK_RPM_SERVER-VERSIONED_FILE_NAME "${rpm-server-filename}.versioned.${CMAKE_SYSTEM_PROCESSOR}.rpm") +set(CPACK_RPM_SERVER-VERSIONED_FILE_NAME "${rpm-server-versioned-filename}.el7.${CMAKE_SYSTEM_PROCESSOR}.rpm") set(CPACK_RPM_CLIENTS-EL7_DEBUGINFO_FILE_NAME "${rpm-clients-filename}.el7-debuginfo.${CMAKE_SYSTEM_PROCESSOR}.rpm") -set(CPACK_RPM_CLIENTS-VERSIONED_DEBUGINFO_FILE_NAME "${rpm-clients-filename}.versioned-debuginfo.${CMAKE_SYSTEM_PROCESSOR}.rpm") +set(CPACK_RPM_CLIENTS-VERSIONED_DEBUGINFO_FILE_NAME "${rpm-clients-versioned-filename}.el7-debuginfo.${CMAKE_SYSTEM_PROCESSOR}.rpm") set(CPACK_RPM_SERVER-EL7_DEBUGINFO_FILE_NAME "${rpm-server-filename}.el7-debuginfo.${CMAKE_SYSTEM_PROCESSOR}.rpm") -set(CPACK_RPM_SERVER-VERSIONED_DEBUGINFO_FILE_NAME "${rpm-server-filename}.versioned-debuginfo.${CMAKE_SYSTEM_PROCESSOR}.rpm") +set(CPACK_RPM_SERVER-VERSIONED_DEBUGINFO_FILE_NAME "${rpm-server-versioned-filename}.el7-debuginfo.${CMAKE_SYSTEM_PROCESSOR}.rpm") file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir") fdb_install(DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir/" DESTINATION data COMPONENT server) @@ -257,13 +257,13 @@ set(CPACK_RPM_CLIENTS-VERSIONED_PRE_UNINSTALL_SCRIPT_FILE 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) @@ -279,6 +279,11 @@ set(CPACK_DEBIAN_CLIENTS-VERSIONED_PACKAGE_NAME "foundationdb${FDB_VERSION}-clie 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${FDB_VERSION}-clients") +set(CPACK_DEBIAN_SERVER-VERSIONED_PACKAGE_RECOMMENDS "python (>= 2.6)") +set(CPACK_DEBIAN_CLIENTS-VERSIONED_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12)") + set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://www.foundationdb.org") set(CPACK_DEBIAN_CLIENTS-DEB_PACKAGE_CONTROL_EXTRA ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-clients/postinst) @@ -297,7 +302,7 @@ set(CPACK_DEBIAN_SERVER-VERSIONED_PACKAGE_CONTROL_EXTRA ${CMAKE_BINARY_DIR}/packaging/multiversion/server/prerm) ################################################################################ -# Configuration for DEB +# Configuration for TGZ ################################################################################ set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)