diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ee85cea..d3409889 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -210,7 +210,7 @@ IF(NOT USE_SYSTEM_INSTALLED_LIB) ELSE() INSTALL(FILES $ - DESTINATION ${INSTALL_LIBDIR} + DESTINATION "${INSTALL_LIBDIR}" COMPONENT ConCLib) MESSAGE(STATUS "Configuring to install libmariadb to ${INSTALL_LIBDIR}") IF(NOT ALL_PLUGINS_STATIC) @@ -474,8 +474,44 @@ ELSE() INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmaodbc.pc DESTINATION "${INSTALL_PCDIR}" COMPONENT Development) - IF(RPM) - SET(CPACK_RPM_Development_USER_FILELIST "%ignore ${CMAKE_INSTALL_PREFIX}/${INSTALL_PCDIR}") + # Not doing this with MacOS(iOdbc). So far, at least + CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/packaging/linux/maodbc.ini.in + ${CMAKE_BINARY_DIR}/packaging/linux/maodbc.ini @ONLY) + INSTALL(FILES + ${CMAKE_BINARY_DIR}/packaging/linux/maodbc.ini + DESTINATION + "${INSTALL_DOCDIR}" + COMPONENT Documentation) + IF(RPM OR DEB) + CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/packaging/linux/postinstall.in + ${CMAKE_BINARY_DIR}/packaging/linux/postinstall @ONLY) + + IF(RPM) + SET(CPACK_RPM_Development_USER_FILELIST "%ignore ${CMAKE_INSTALL_PREFIX}/${INSTALL_PCDIR}") + SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION ${CMAKE_INSTALL_PREFIX}/${INSTALL_PCDIR}) + MESSAGE(STATUS "Excluding ${CMAKE_INSTALL_PREFIX}/${INSTALL_PCDIR} from RPM filelist") + SET(CPACK_RPM_POST_INSTALL_SCRIPT_FILE ${CMAKE_BINARY_DIR}/packaging/linux/postinstall) + + IF(CMAKE_VERSION VERSION_GREATER "3.9.99") + + SET(CPACK_SOURCE_GENERATOR "RPM") + SETA(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS "-DRPM=${RPM}") + + MACRO(ADDIF var) + IF(DEFINED ${var}) + SETA(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS "-D${var}=${${var}}") + ENDIF() + ENDMACRO() + + ADDIF(CMAKE_BUILD_TYPE) + ADDIF(BUILD_CONFIG) + #ADDIF(WITH_SSL) + + ENDIF() + ELSE() + SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/packaging/linux/postinstall") + ENDIF() + ENDIF() ENDIF() INSTALL(TARGETS @@ -488,6 +524,7 @@ ELSE() DESTINATION "${INSTALL_DOCDIR}" COMPONENT Documentation) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/COPYING DESTINATION @@ -573,7 +610,7 @@ SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") SET(CPACK_SOURCE_PACKAGE_FILE_NAME "mariadb-connector-odbc-${CPACK_PACKAGE_VERSION}${QUALITY_SUFFIX}-src") SET(CPACK_PACKAGE_CONTACT "info@mariadb.com") -SET(CPACK_PACKAGE_VENDOR "MariaDB Corporation AB") +SET(CPACK_PACKAGE_VENDOR "MariaDB plc") SET(CPACK_SOURCE_IGNORE_FILES /test/ /.git/ diff --git a/packaging/linux/maodbc.ini.in b/packaging/linux/maodbc.ini.in new file mode 100644 index 00000000..27289753 --- /dev/null +++ b/packaging/linux/maodbc.ini.in @@ -0,0 +1,9 @@ +[MariaDB] +Driver = @CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@/libmaodbc.so +DESCRIPTION = MariaDB ODBC Connector +Threading = 0 + +[@CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@/libmaodbc.so] +Driver = @CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@/libmaodbc.so +DESCRIPTION = MariaDB ODBC Connector +Threading = 0 diff --git a/packaging/linux/postinstall.in b/packaging/linux/postinstall.in new file mode 100644 index 00000000..795b12a5 --- /dev/null +++ b/packaging/linux/postinstall.in @@ -0,0 +1,15 @@ +#!/bin/sh + +if ! odbcinst -i -d -n "MariaDB ODBC Connector" -f @CMAKE_INSTALL_PREFIX@/@INSTALL_DOCDIR@/maodbc.ini ; then + if [-z ${ODBCINSTINI+x}]; then + if [-z ${ODBCSYSINI+x}]; then + ODBCINIFILE="/etc/odbcinst.ini"; + else + ODBCINIFILE="$ODBCSYSINI/odbcinst.ini"; + fi + else + ODBCINIFILE="$ODBCINSTINI"; + fi + + cat @CMAKE_INSTALL_PREFIX@/@INSTALL_DOCDIR@/maodbc.ini >> $ODBCINIFILE +fi