From e8624efb3bb6112f73b010541bd8baf8764f9663 Mon Sep 17 00:00:00 2001 From: mpilman Date: Fri, 1 Mar 2019 14:13:16 -0800 Subject: [PATCH] several minor improvements --- build/cmake/build.sh | 8 +-- cmake/CPackConfig.cmake | 3 ++ cmake/InstallLayout.cmake | 111 +++++++++++++++++++++++++------------- fdbmonitor/CMakeLists.txt | 2 +- 4 files changed, 83 insertions(+), 41 deletions(-) diff --git a/build/cmake/build.sh b/build/cmake/build.sh index 75d33646b1..809b1c6eb2 100644 --- a/build/cmake/build.sh +++ b/build/cmake/build.sh @@ -121,7 +121,7 @@ rpm() { local __res=0 for _ in 1 do - cmake -DINSTALL_LAYOUT=RPM ../foundationdb + cmake ../foundationdb __res=$? if [ ${__res} -ne 0 ] then @@ -133,7 +133,7 @@ rpm() { then break fi - fakeroot cpack + fakeroot cpack -G RPM __res=$? if [ ${__res} -ne 0 ] then @@ -147,7 +147,7 @@ deb() { local __res=0 for _ in 1 do - cmake -DINSTALL_LAYOUT=DEB ../foundationdb + cmake ../foundationdb __res=$? if [ ${__res} -ne 0 ] then @@ -159,7 +159,7 @@ deb() { then break fi - fakeroot cpack + fakeroot cpack -G DEB __res=$? if [ ${__res} -ne 0 ] then diff --git a/cmake/CPackConfig.cmake b/cmake/CPackConfig.cmake index 15580aa84b..25aab266dd 100644 --- a/cmake/CPackConfig.cmake +++ b/cmake/CPackConfig.cmake @@ -1,13 +1,16 @@ # RPM specifics if(CPACK_GENERATOR MATCHES "RPM") + set(CPACK_PACKAGING_INSTALL_PREFIX "/") set(CPACK_COMPONENTS_ALL clients-el6 clients-el7 server-el6 server-el7) set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE) elseif(CPACK_GENERATOR MATCHES "DEB") + set(CPACK_PACKAGING_INSTALL_PREFIX "/") set(CPACK_COMPONENTS_ALL clients-deb server-deb) set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE) elseif(CPACK_GENERATOR MATCHES "PackageMaker") + set(CPACK_PACKAGING_INSTALL_PREFIX "/") set(CPACK_COMPONENTS_ALL clients-pm server-pm) set(CPACK_STRIP_FILES TRUE) set(CPACK_PREFLIGHT_SERVER_SCRIPT ${CMAKE_SOURCE_DIR}/packaging/osx/scripts-server/preinstall) diff --git a/cmake/InstallLayout.cmake b/cmake/InstallLayout.cmake index a5354568bb..76bff5597a 100644 --- a/cmake/InstallLayout.cmake +++ b/cmake/InstallLayout.cmake @@ -87,42 +87,42 @@ function(fdb_install) if(IN_EXPORT) set(args EXPORT) endif() - if("${IN_DESTINATION}" MATCHES "bin") + if("${IN_DESTINATION}" STREQUAL "bin") install(${args} DESTINATION "bin" COMPONENT "${IN_COMPONENT}-tgz") install(${args} DESTINATION "usr/bin" COMPONENT "${IN_COMPONENT}-deb") install(${args} DESTINATION "usr/bin" COMPONENT "${IN_COMPONENT}-el6") install(${args} DESTINATION "usr/bin" COMPONENT "${IN_COMPONENT}-el7") install(${args} DESTINATION "usr/local/bin" COMPONENT "${IN_COMPONENT}-pm") - elseif("${IN_DESTINATION}" MATCHES "sbin") + elseif("${IN_DESTINATION}" STREQUAL "sbin") install(${args} DESTINATION "sbin" COMPONENT "${IN_COMPONENT}-tgz") install(${args} DESTINATION "usr/sbin" COMPONENT "${IN_COMPONENT}-deb") install(${args} DESTINATION "usr/sbin" COMPONENT "${IN_COMPONENT}-el6") install(${args} DESTINATION "usr/sbin" COMPONENT "${IN_COMPONENT}-el7") install(${args} DESTINATION "usr/local/libexec" COMPONENT "${IN_COMPONENT}-pm") - elseif("${IN_DESTINATION}" MATCHES "libexec") + elseif("${IN_DESTINATION}" STREQUAL "fdbmonitor") install(${args} DESTINATION "libexec" COMPONENT "${IN_COMPONENT}-tgz") - install(${args} DESTINATION "usr/libexec" COMPONENT "${IN_COMPONENT}-deb") - install(${args} DESTINATION "usr/libexec" COMPONENT "${IN_COMPONENT}-el6") - install(${args} DESTINATION "usr/libexec" COMPONENT "${IN_COMPONENT}-el7") - install(${args} DESTINATION "usr/local/lib/foundationdb" COMPONENT "${IN_COMPONENT}-pm") - elseif("${IN_DESTINATION}" MATCHES "include") + install(${args} DESTINATION "usr/lib/foundationdb" COMPONENT "${IN_COMPONENT}-deb") + install(${args} DESTINATION "usr/lib/foundationdb" COMPONENT "${IN_COMPONENT}-el6") + install(${args} DESTINATION "usr/lib/foundationdb" COMPONENT "${IN_COMPONENT}-el7") + install(${args} DESTINATION "usr/local/libexec" COMPONENT "${IN_COMPONENT}-pm") + elseif("${IN_DESTINATION}" STREQUAL "include") install(${args} DESTINATION "include" COMPONENT "${IN_COMPONENT}-tgz") install(${args} DESTINATION "usr/include" COMPONENT "${IN_COMPONENT}-deb") install(${args} DESTINATION "usr/include" COMPONENT "${IN_COMPONENT}-el6") install(${args} DESTINATION "usr/include" COMPONENT "${IN_COMPONENT}-el7") install(${args} DESTINATION "usr/local/include" COMPONENT "${IN_COMPONENT}-pm") - elseif("${IN_DESTINATION}" MATCHES "etc") + elseif("${IN_DESTINATION}" STREQUAL "etc") install(${args} DESTINATION "etc/foundationdb" COMPONENT "${IN_COMPONENT}-tgz") install(${args} DESTINATION "etc/foundationdb" COMPONENT "${IN_COMPONENT}-deb") install(${args} DESTINATION "etc/foundationdb" COMPONENT "${IN_COMPONENT}-el6") install(${args} DESTINATION "etc/foundationdb" COMPONENT "${IN_COMPONENT}-el7") install(${args} DESTINATION "usr/local/etc/foundationdb" COMPONENT "${IN_COMPONENT}-pm") - elseif("${IN_DESTINATION}" MATCHES "log") + elseif("${IN_DESTINATION}" STREQUAL "log") install(${args} DESTINATION "log/foundationdb" COMPONENT "${IN_COMPONENT}-tgz") install(${args} DESTINATION "var/log/foundationdb" COMPONENT "${IN_COMPONENT}-deb") install(${args} DESTINATION "var/log/foundationdb" COMPONENT "${IN_COMPONENT}-el6") install(${args} DESTINATION "var/log/foundationdb" COMPONENT "${IN_COMPONENT}-el7") - elseif("${IN_DESTINATION}" MATCHES "data") + elseif("${IN_DESTINATION}" STREQUAL "data") install(${args} DESTINATION "lib/foundationdb" COMPONENT "${IN_COMPONENT}-tgz") install(${args} DESTINATION "var/lib/foundationdb" COMPONENT "${IN_COMPONENT}-deb") install(${args} DESTINATION "var/lib/foundationdb" COMPONENT "${IN_COMPONENT}-el6") @@ -167,7 +167,25 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions.") set(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/packaging/foundationdb.ico) set(CPACK_PACKAGE_CONTACT "The FoundationDB Community") -set(CPACK_COMPONENT_server_DEPENDS clients) + +set(CPACK_COMPONENT_SERVER-EL6_DEPENDS clients-el6) +set(CPACK_COMPONENT_SERVER-EL7_DEPENDS clients-el7) +set(CPACK_COMPONENT_SERVER-DEB_DEPENDS clients-deb) +set(CPACK_COMPONENT_SERVER-TGZ_DEPENDS clients-tgz) +set(CPACK_COMPONENT_SERVER-PM_DEPENDS clients-pm) + +set(CPACK_COMPONENT_SERVER-EL6_DISPLAY_NAME "foundationdb-server") +set(CPACK_COMPONENT_SERVER-EL7_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-PM_DISPLAY_NAME "foundationdb-server") + +set(CPACK_COMPONENT_CLIENTS-EL6_DISPLAY_NAME "foundationdb-clients") +set(CPACK_COMPONENT_CLIENTS-EL7_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-PM_DISPLAY_NAME "foundationdb-clients") + # MacOS needs a file exiension for the LICENSE file configure_file(${CMAKE_SOURCE_DIR}/LICENSE ${CMAKE_BINARY_DIR}/License.txt COPYONLY) @@ -186,15 +204,33 @@ set(server-filename "foundationdb-server-${PROJECT_VERSION}.${CURRENT_GIT_VERSIO # Configuration for RPM ################################################################################ -set(CPACK_RPM_clients-el6_FILE_NAME "${clients-filename}.el6.x86_64.rpm") -set(CPACK_RPM_clients-el7_FILE_NAME "${clients-filename}.el7.x86_64.rpm") -set(CPACK_RPM_server-el6_FILE_NAME "${server-filename}.el6.x86_64.rpm") -set(CPACK_RPM_server-el7_FILE_NAME "${server-filename}.el7.x86_64.rpm") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir") -fdb_install(DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir/" DESTINATION log COMPONENT server) -fdb_install(DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir/" DESTINATION lib COMPONENT server) +set(CPACK_RPM_PACKAGE_LICENSE "Apache 2.0") -set(CPACK_RPM_server_USER_FILELIST +set(CPACK_RPM_PACKAGE_NAME "foundationdb") +set(CPACK_RPM_CLIENTS-EL6-PACKAGE_NAME "foundationdb-clients") +set(CPACK_RPM_CLIENTS-EL7-PACKAGE_NAME "foundationdb-clients") +set(CPACK_RPM_SERVER-EL6-PACKAGE_NAME "foundationdb-server") +set(CPACK_RPM_SERVER-EL7-PACKAGE_NAME "foundationdb-server") + +set(CPACK_RPM_CLIENTS-EL6_FILE_NAME "${clients-filename}.el6.x86_64.rpm") +set(CPACK_RPM_CLIENTS-EL7_FILE_NAME "${clients-filename}.el7.x86_64.rpm") +set(CPACK_RPM_SERVER-EL6_FILE_NAME "${server-filename}.el6.x86_64.rpm") +set(CPACK_RPM_SERVER-EL7_FILE_NAME "${server-filename}.el7.x86_64.rpm") + +set(CPACK_RPM_CLIENTS-EL6_DEBUGINFO-FILE_NAME "${clients-filename}.el6-debuginfo.x86_64.rpm") +set(CPACK_RPM_CLIENTS-EL7_DEBUGINFO-FILE_NAME "${clients-filename}.el7-debuginfo.x86_64.rpm") +set(CPACK_RPM_SERVER-EL6_DEBUGINFO-FILE_NAME "${server-filename}.el6-debuginfo.x86_64.rpm") +set(CPACK_RPM_SERVER-EL7_DEBUGINFO-FILE_NAME "${server-filename}.el7-debuginfo.x86_64.rpm") + +file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir") +fdb_install(DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir/" DESTINATION data COMPONENT server) +fdb_install(DIRECTORY "${CMAKE_BINARY_DIR}/packaging/emptydir/" DESTINATION log COMPONENT server) + +set(CPACK_RPM_SERVER-EL6_USER_FILELIST + "%config(noreplace) /etc/foundationdb/foundationdb.conf" + "%attr(0700,foundationdb,foundationdb) /var/log/foundationdb" + "%attr(0700, foundationdb, foundationdb) /var/lib/foundationdb") +set(CPACK_RPM_SERVER-EL7_USER_FILELIST "%config(noreplace) /etc/foundationdb/foundationdb.conf" "%attr(0700,foundationdb,foundationdb) /var/log/foundationdb" "%attr(0700, foundationdb, foundationdb) /var/lib/foundationdb") @@ -212,42 +248,42 @@ set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/etc/rc.d/init.d") set(CPACK_RPM_DEBUGINFO_PACKAGE ON) set(CPACK_RPM_DEBUGINFO_PACKAGE ON) -set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX /usr/src) +#set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX /usr/src) set(CPACK_RPM_COMPONENT_INSTALL ON) -set(CPACK_RPM_clients-el6_PRE_INSTALL_SCRIPT_FILE +set(CPACK_RPM_CLIENTS-EL6_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preclients.sh) set(CPACK_RPM_clients-el7_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preclients.sh) -set(CPACK_RPM_clients-el6_POST_INSTALL_SCRIPT_FILE +set(CPACK_RPM_CLIENTS-EL6_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/postclients.sh) -set(CPACK_RPM_clients-el7_POST_INSTALL_SCRIPT_FILE +set(CPACK_RPM_CLIENTS-EL7_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/postclients.sh) -set(CPACK_RPM_server-el6_PRE_INSTALL_SCRIPT_FILE +set(CPACK_RPM_SERVER-EL6_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preserver.sh) -set(CPACK_RPM_server-el7_PRE_INSTALL_SCRIPT_FILE +set(CPACK_RPM_SERVER-EL7_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preserver.sh) -set(CPACK_RPM_server-el6_POST_INSTALL_SCRIPT_FILE +set(CPACK_RPM_SERVER-EL6_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/postserver.sh) -set(CPACK_RPM_server-el7_POST_INSTALL_SCRIPT_FILE +set(CPACK_RPM_SERVER-EL7_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/postserver.sh) -set(CPACK_RPM_server-el6_PRE_UNINSTALL_SCRIPT_FILE +set(CPACK_RPM_SERVER-EL6_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preunserver.sh) -set(CPACK_RPM_server-el7_PRE_UNINSTALL_SCRIPT_FILE +set(CPACK_RPM_SERVER-EL7_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/packaging/rpm/scripts/preunserver.sh) -set(CPACK_RPM_server-el6_PACKAGE_REQUIRES - "foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}, initscripts >= 9.03") -set(CPACK_RPM_server-el7_PACKAGE_REQUIRES - "foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}") +set(CPACK_RPM_SERVER-EL6_PACKAGE_REQUIRES + "foundationdb-clients-el6 = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}, initscripts >= 9.03") +set(CPACK_RPM_SERVER-EL7_PACKAGE_REQUIRES + "foundationdb-clients-el7 = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}") #set(CPACK_RPM_java_PACKAGE_REQUIRES # "foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}") -set(CPACK_RPM_python_PACKAGE_REQUIRES - "foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}") +#set(CPACK_RPM_python_PACKAGE_REQUIRES +# "foundationdb-clients = ${FDB_MAJOR}.${FDB_MINOR}.${FDB_PATCH}") ################################################################################ # Configuration for DEB @@ -260,6 +296,9 @@ set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) set(CPACK_DEBIAN_PACKAGE_SECTION "database") set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) +set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_NAME "foundationdb-server") +set(CPACK_DEBIAN_CLIENTS-DEB_PACKAGE_NAME "foundationdb-clients") + set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12), python (>= 2.6), foundationdb-clients (= ${FDB_VERSION})") set(CPACK_DEBIAN_CLIENTS-DEB_PACKAGE_DEPENDS "adduser, libc6 (>= 2.12)") set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://www.foundationdb.org") diff --git a/fdbmonitor/CMakeLists.txt b/fdbmonitor/CMakeLists.txt index 445638a9b3..bed70f15c0 100644 --- a/fdbmonitor/CMakeLists.txt +++ b/fdbmonitor/CMakeLists.txt @@ -9,4 +9,4 @@ endif() # as soon as we get rid of the old build system target_include_directories(fdbmonitor PRIVATE ${CMAKE_BINARY_DIR}/fdbclient) -fdb_install(TARGETS fdbmonitor DESTINATION libexec COMPONENT server) +fdb_install(TARGETS fdbmonitor DESTINATION fdbmonitor COMPONENT server)