From 23ab4ab1d011ae5a5652987631c354a796f09d34 Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Mon, 26 Apr 2010 13:32:54 +0200 Subject: [PATCH 01/17] Try to fix libmysqlclient symlinks on per-OS basis. --- libmysql/CMakeLists.txt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt index 1193b9d7e27..0690211f981 100755 --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -177,10 +177,18 @@ ENDIF() IF(NOT DISABLE_SHARED) MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS}) IF(UNIX) + # libtool compatability + IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE) + SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}") + ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP-UX") + SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0") + ELSE() + SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0.0") + ENDIF() # Name of shared library is mysqlclient on Unix SET_TARGET_PROPERTIES(libmysql PROPERTIES OUTPUT_NAME mysqlclient - VERSION "${SHARED_LIB_MAJOR_VERSION}.0.0" + VERSION "${OS_SHARED_LIB_VERSION}" SOVERSION "${SHARED_LIB_MAJOR_VERSION}") IF(LINK_FLAG_NO_UNDEFINED) GET_TARGET_PROPERTY(libmysql_link_flags libmysql LINK_FLAGS) @@ -196,8 +204,7 @@ IF(NOT DISABLE_SHARED) SET_TARGET_PROPERTIES(libmysql PROPERTIES CLEAN_DIRECT_OUTPUT 1) # Install 3 links to libmysqlclient.so (client_r) - FOREACH(ver "" "${SHARED_LIB_MAJOR_VERSION}" - "${SHARED_LIB_MAJOR_VERSION}.0.0") + FOREACH(ver "" "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}") GET_VERSIONED_LIBNAME( "${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r" "${CMAKE_SHARED_LIBRARY_SUFFIX}" From ce5cd7bc8ec237f04550a41f30cf98fd6832b3ff Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Mon, 26 Apr 2010 14:51:01 +0200 Subject: [PATCH 02/17] Remove duplicates. --- libmysql/CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt index 0690211f981..7eb42b3367c 100755 --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -203,8 +203,10 @@ IF(NOT DISABLE_SHARED) SET_TARGET_PROPERTIES(mysqlclient PROPERTIES CLEAN_DIRECT_OUTPUT 1) SET_TARGET_PROPERTIES(libmysql PROPERTIES CLEAN_DIRECT_OUTPUT 1) - # Install 3 links to libmysqlclient.so (client_r) - FOREACH(ver "" "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}") + # Install links to libmysqlclient.so (client_r) + SET(OS_SHARED_LIB_SYMLINKS "" "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}") + LIST(REMOVE_DUPLICATES OS_SHARED_LIB_SYMLINKS) + FOREACH(ver ${OS_SHARED_LIB_SYMLINKS}) GET_VERSIONED_LIBNAME( "${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r" "${CMAKE_SHARED_LIBRARY_SUFFIX}" From 4542bc32406f09b9733233a06bd9c5c37165d0b3 Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Mon, 26 Apr 2010 18:06:59 +0200 Subject: [PATCH 03/17] Try new RPM layout. Fix libmysqlclient_r symlinks. --- libmysql/CMakeLists.txt | 18 +++++++---- support-files/mysql.spec.sh | 61 +++++++++++++++++++++---------------- 2 files changed, 47 insertions(+), 32 deletions(-) diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt index 7eb42b3367c..cd23f825b9e 100755 --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -204,14 +204,20 @@ IF(NOT DISABLE_SHARED) SET_TARGET_PROPERTIES(libmysql PROPERTIES CLEAN_DIRECT_OUTPUT 1) # Install links to libmysqlclient.so (client_r) - SET(OS_SHARED_LIB_SYMLINKS "" "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}") + GET_VERSIONED_LIBNAME( + "${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r" + "${CMAKE_SHARED_LIBRARY_SUFFIX}" + "" + linkname) + INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR}) + SET(OS_SHARED_LIB_SYMLINKS "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}") LIST(REMOVE_DUPLICATES OS_SHARED_LIB_SYMLINKS) FOREACH(ver ${OS_SHARED_LIB_SYMLINKS}) - GET_VERSIONED_LIBNAME( - "${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r" - "${CMAKE_SHARED_LIBRARY_SUFFIX}" - "${ver}" - linkname) + GET_VERSIONED_LIBNAME( + "${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r" + "${CMAKE_SHARED_LIBRARY_SUFFIX}" + "${ver}" + linkname) INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR}) ENDFOREACH() ENDIF() diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index b1fbc90d829..8520057b71a 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -168,6 +168,14 @@ %define distro_requires coreutils grep procps /sbin/chkconfig /usr/sbin/useradd /usr/sbin/groupadd %endif +# Turn on debuginfo RPMs for SuSE >= 10 +%define debugrpm 0 +%if %{defined suse_version} + %if %suse_version >= 1000 + %define debugrpm 1 + %endif +%endif + # ---------------------------------------------------------------------------- # Support optional "tcmalloc" library (experimental) # ---------------------------------------------------------------------------- @@ -235,14 +243,14 @@ documentation and the manual for more information. # Sub package definition ############################################################################## -%package -n MySQL-server%{product_suffix} +%package -n %{name}-server Summary: MySQL: a very fast and reliable SQL database server Group: Applications/Databases Requires: %{distro_requires} Provides: msqlormysql mysql-server mysql MySQL MySQL-server Obsoletes: MySQL mysql mysql-server MySQL-server -%description -n MySQL-server%{product_suffix} +%description -n %{name}-server The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well @@ -264,64 +272,64 @@ This package includes the MySQL server binary as well as related utilities to run and administer a MySQL server. If you want to access and work with the database, you have to install -package "MySQL-client%{product_suffix}" as well! +package "%{name}-client" as well! # ---------------------------------------------------------------------------- -%package -n MySQL-client%{product_suffix} +%package -n %{name}-client Summary: MySQL - Client Group: Applications/Databases Obsoletes: mysql-client MySQL-client Provides: mysql-client MySQL-client -%description -n MySQL-client%{product_suffix} +%description -n %{name}-client This package contains the standard MySQL clients and administration tools. For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- -%package -n MySQL-test%{product_suffix} -Requires: MySQL-client%{product_suffix} perl +%package -n %{name}-test +Requires: %{name}-client perl Summary: MySQL - Test suite Group: Applications/Databases Provides: mysql-test Obsoletes: mysql-bench mysql-test AutoReqProv: no -%description -n MySQL-test%{product_suffix} +%description -n %{name}-test This package contains the MySQL regression test suite. For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- -%package -n MySQL-devel%{product_suffix} +%package -n %{name}-devel Summary: MySQL - Development header files and libraries Group: Applications/Databases Provides: mysql-devel Obsoletes: mysql-devel -%description -n MySQL-devel%{product_suffix} +%description -n %{name}-devel This package contains the development header files and libraries necessary to develop MySQL client applications. For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- -%package -n MySQL-shared%{product_suffix} +%package -n %{name}-shared Summary: MySQL - Shared libraries Group: Applications/Databases -%description -n MySQL-shared%{product_suffix} +%description -n %{name}-shared This package contains the shared libraries (*.so*) which certain languages and applications need to dynamically load and use MySQL. # ---------------------------------------------------------------------------- -%package -n MySQL-embedded%{product_suffix} +%package -n %{name}-embedded Summary: MySQL - embedded library Group: Applications/Databases -Requires: MySQL-devel%{product_suffix} +Requires: %{name}-devel Obsoletes: mysql-embedded -%description -n MySQL-embedded%{product_suffix} +%description -n %{name}-embedded This package contains the MySQL server as an embedded library. The embedded MySQL server library makes it possible to run a full-featured @@ -334,6 +342,7 @@ client/server version. For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ ############################################################################## +%{?debugrpm:%debug_package} %prep %setup -T -a 0 -c -n %{src_dir} @@ -478,7 +487,7 @@ rm -f $RBR%{_mandir}/man1/make_win_bin_dist.1* # Post processing actions, i.e. when installed ############################################################################## -%pre -n MySQL-server%{product_suffix} +%pre -n %{name}-server # Check if we can safely upgrade. An upgrade is only safe if it's from one # of our RPMs in the same version family. @@ -554,7 +563,7 @@ if [ -x %{_sysconfdir}/init.d/mysql ] ; then sleep 5 fi -%post -n MySQL-server%{product_suffix} +%post -n %{name}-server mysql_datadir=%{mysqldatadir} # ---------------------------------------------------------------------- @@ -622,7 +631,7 @@ sleep 2 #scheduled service packs and more. Visit www.mysql.com/enterprise for more #information." -%preun -n MySQL-server%{product_suffix} +%preun -n %{name}-server if [ $1 = 0 ] ; then # Stop MySQL before uninstalling it if [ -x %{_sysconfdir}/init.d/mysql ] ; then @@ -651,7 +660,7 @@ fi # Files section ############################################################################## -%files -n MySQL-server%{product_suffix} +%files -n %{name}-server %defattr(-,root,root,0755) %if %{defined license_files_server} @@ -734,7 +743,7 @@ fi %attr(755, root, root) %{_datadir}/mysql/ # ---------------------------------------------------------------------------- -%files -n MySQL-client%{product_suffix} +%files -n %{name}-client %defattr(-, root, root, 0755) %attr(755, root, root) %{_bindir}/msql2mysql @@ -766,7 +775,7 @@ fi %doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1* # ---------------------------------------------------------------------------- -%files -n MySQL-devel%{product_suffix} -f optional-files-devel +%files -n %{name}-devel -f optional-files-devel %defattr(-, root, root, 0755) %if %{defined license_files_devel} %doc %{license_files_devel} @@ -783,19 +792,19 @@ fi %{_libdir}/mysql/libmysqlservices.a # ---------------------------------------------------------------------------- -%files -n MySQL-shared%{product_suffix} +%files -n %{name}-shared %defattr(-, root, root, 0755) # Shared libraries (omit for architectures that don't support them) %{_libdir}/libmysql*.so* -%post -n MySQL-shared%{product_suffix} +%post -n %{name}-shared /sbin/ldconfig -%postun -n MySQL-shared%{product_suffix} +%postun -n %{name}-shared /sbin/ldconfig # ---------------------------------------------------------------------------- -%files -n MySQL-test%{product_suffix} +%files -n %{name}-test %defattr(-, root, root, 0755) %attr(-, root, root) %{_datadir}/mysql-test %attr(755, root, root) %{_bindir}/mysql_client_test @@ -808,7 +817,7 @@ fi %doc %attr(644, root, man) %{_mandir}/man1/mysqltest_embedded.1* # ---------------------------------------------------------------------------- -%files -n MySQL-embedded%{product_suffix} +%files -n %{name}-embedded %defattr(-, root, root, 0755) %attr(755, root, root) %{_bindir}/mysql_embedded %attr(644, root, root) %{_libdir}/mysql/libmysqld.a From 036343c3eab737899d22b412d29841f7677dc584 Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Mon, 26 Apr 2010 19:25:58 +0200 Subject: [PATCH 04/17] Try removing debuginfo altogether. --- support-files/mysql.spec.sh | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 8520057b71a..b96dc64332a 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -168,13 +168,8 @@ %define distro_requires coreutils grep procps /sbin/chkconfig /usr/sbin/useradd /usr/sbin/groupadd %endif -# Turn on debuginfo RPMs for SuSE >= 10 -%define debugrpm 0 -%if %{defined suse_version} - %if %suse_version >= 1000 - %define debugrpm 1 - %endif -%endif +# Avoid debuginfo RPMs, leaves binaries unstripped +%define debug_package %{nil} # ---------------------------------------------------------------------------- # Support optional "tcmalloc" library (experimental) @@ -342,7 +337,6 @@ client/server version. For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ ############################################################################## -%{?debugrpm:%debug_package} %prep %setup -T -a 0 -c -n %{src_dir} From b2c44afba95f37e872bb7b247560ec70e4444598 Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Tue, 27 Apr 2010 12:09:55 +0200 Subject: [PATCH 05/17] Avoid __os_install_post RHEL5 bug by redefining __strip. --- support-files/mysql.spec.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index b96dc64332a..0a100fd919c 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -171,6 +171,10 @@ # Avoid debuginfo RPMs, leaves binaries unstripped %define debug_package %{nil} +# Hack to work around bug in RHEL5 __os_install_post macro, wrong inverted +# test for __debug_package +%define __strip /bin/true + # ---------------------------------------------------------------------------- # Support optional "tcmalloc" library (experimental) # ---------------------------------------------------------------------------- From 58aec8118548f9c6f9ced93b090106d651d9ce60 Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Tue, 27 Apr 2010 17:10:06 +0200 Subject: [PATCH 06/17] Try to exclude make_win_bin_dist.1 Build full debug release in RPMs so we can include bits we need. --- man/CMakeLists.txt | 4 +++- support-files/mysql.spec.sh | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index 29de4432c0c..aeee5824047 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -17,7 +17,9 @@ FILE(GLOB MAN1_FILES *.1) FILE(GLOB MAN8_FILES *.8) IF(MAN1_FILES) - INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1) + INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1 + PATTERN "make_win_bin_dist.1" EXCLUDE + ) ENDIF() IF(MAN8_FILES) INSTALL(FILES ${MAN8_FILES} DESTINATION ${INSTALL_MANDIR}/man8) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 0a100fd919c..1803ce9f8e8 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -396,7 +396,7 @@ mkdir debug -DFEATURE_SET="%{feature_set}" \ -DCOMPILATION_COMMENT="%{compilation_comment_debug}" \ -DMYSQL_SERVER_SUFFIX="%{server_suffix}" - make VERBOSE=1 mysqld mysqlserver + make VERBOSE=1 ) # Build full release mkdir release @@ -730,6 +730,9 @@ fi %attr(755, root, root) %{_libdir}/mysql/plugin/mypluglib.so %attr(755, root, root) %{_libdir}/mysql/plugin/semisync_master.so* %attr(755, root, root) %{_libdir}/mysql/plugin/semisync_slave.so* +%attr(755, root, root) %{_libdir}/mysql/plugin/debug/mypluglib.so +%attr(755, root, root) %{_libdir}/mysql/plugin/debug/semisync_master.so* +%attr(755, root, root) %{_libdir}/mysql/plugin/debug/semisync_slave.so* %if %{WITH_TCMALLOC} %attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target} From 159852698b601686443903367f78644db3a0f60d Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Tue, 27 Apr 2010 20:12:13 +0200 Subject: [PATCH 07/17] Try again --- man/CMakeLists.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index aeee5824047..31603f64334 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -17,9 +17,8 @@ FILE(GLOB MAN1_FILES *.1) FILE(GLOB MAN8_FILES *.8) IF(MAN1_FILES) - INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1 - PATTERN "make_win_bin_dist.1" EXCLUDE - ) + LIST(REMOVE_ITEM MAN1_FILES "make_win_bin_dist.1" + INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1) ENDIF() IF(MAN8_FILES) INSTALL(FILES ${MAN8_FILES} DESTINATION ${INSTALL_MANDIR}/man8) From 83de7f640a7c50a0bd05d1a19c5bdd887c5e8147 Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Tue, 27 Apr 2010 20:12:43 +0200 Subject: [PATCH 08/17] syntax --- man/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index 31603f64334..d437e9a0c76 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -17,7 +17,7 @@ FILE(GLOB MAN1_FILES *.1) FILE(GLOB MAN8_FILES *.8) IF(MAN1_FILES) - LIST(REMOVE_ITEM MAN1_FILES "make_win_bin_dist.1" + LIST(REMOVE_ITEM MAN1_FILES "make_win_bin_dist.1") INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1) ENDIF() IF(MAN8_FILES) From b9303c87e3841cd75a8f95fc752497eca14a7c2c Mon Sep 17 00:00:00 2001 From: Kent Boortz Date: Tue, 27 Apr 2010 22:21:48 +0200 Subject: [PATCH 09/17] On Mac OS X, add the "-arch" option to the 'mysql_config' output --- scripts/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index bfe65a0acd8..7f7baecc6c1 100755 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -93,6 +93,10 @@ IF(CMAKE_GENERATOR MATCHES "Makefiles") # No multiconfig build - use CMAKE_C_FLAGS SET(CFLAGS "@CMAKE_C_FLAGS@") SET(CXXFLAGS "@CMAKE_CXX_FLAGS@") + FOREACH(ARCH ${CMAKE_OSX_ARCHITECTURES}) + SET(CFLAGS "${CFLAGS} -arch ${ARCH}") + SET(CXXFLAGS "${CXXFLAGS} -arch ${ARCH}") + ENDFOREACH() ELSE() # Multiconfig build - use CMAKE_C_FLAGS_RELWITHDEBINFO SET(CFLAGS "@CMAKE_C_FLAGS_RELWITHDEBINFO@") From d110132ffce95352755604ef19abd9545fe78f89 Mon Sep 17 00:00:00 2001 From: Kent Boortz Date: Wed, 28 Apr 2010 11:25:11 +0200 Subject: [PATCH 10/17] Exclude "mysql_embedded" from being installed or part of a binary package, is more of a linktest of the embedded library. --- libmysqld/examples/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libmysqld/examples/CMakeLists.txt b/libmysqld/examples/CMakeLists.txt index f8adae9c931..f98470a2047 100644 --- a/libmysqld/examples/CMakeLists.txt +++ b/libmysqld/examples/CMakeLists.txt @@ -23,7 +23,9 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ADD_DEFINITIONS(-DEMBEDDED_LIBRARY -UMYSQL_CLIENT) -MYSQL_ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc +# We never use "mysql_embedded", is more of a linktest, so we don't +# use MYSQL_ADD_EXECUTABLE as that would install it and package it +ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc ../../client/mysql.cc ../../client/readline.cc) TARGET_LINK_LIBRARIES(mysql_embedded mysqlserver) IF(UNIX) From 9eefdcfd1ae5a3f9ff477c57362e94ed64446d8a Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Wed, 28 Apr 2010 11:52:26 +0200 Subject: [PATCH 11/17] Try to fix the manual again, and a kent change --- man/CMakeLists.txt | 3 ++- support-files/mysql.spec.sh | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index d437e9a0c76..beae58bc2c2 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -15,9 +15,10 @@ # Copy man pages FILE(GLOB MAN1_FILES *.1) +FILE(GLOB MAN1_EXCLUDE make_win_bin_dist.1) FILE(GLOB MAN8_FILES *.8) IF(MAN1_FILES) - LIST(REMOVE_ITEM MAN1_FILES "make_win_bin_dist.1") + LIST(REMOVE_ITEM MAN1_FILES ${MAN1_EXCLUDE}) INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1) ENDIF() IF(MAN8_FILES) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 1803ce9f8e8..3f5f4282310 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -820,7 +820,6 @@ fi # ---------------------------------------------------------------------------- %files -n %{name}-embedded %defattr(-, root, root, 0755) -%attr(755, root, root) %{_bindir}/mysql_embedded %attr(644, root, root) %{_libdir}/mysql/libmysqld.a %attr(644, root, root) %{_libdir}/mysql/libmysqld-debug.a From 3b8334f9d32b4e0f23f125b9b6696e74d9f57f78 Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Wed, 28 Apr 2010 12:48:44 +0200 Subject: [PATCH 12/17] fix man bootstrap --- man/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index beae58bc2c2..1113b73fd8d 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -18,7 +18,9 @@ FILE(GLOB MAN1_FILES *.1) FILE(GLOB MAN1_EXCLUDE make_win_bin_dist.1) FILE(GLOB MAN8_FILES *.8) IF(MAN1_FILES) - LIST(REMOVE_ITEM MAN1_FILES ${MAN1_EXCLUDE}) + IF(MAN1_EXCLUDE) + LIST(REMOVE_ITEM MAN1_FILES ${MAN1_EXCLUDE}) + ENDIF() INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1) ENDIF() IF(MAN8_FILES) From 5492202344c1d2ebaecbbb2873f1b50ce932ee26 Mon Sep 17 00:00:00 2001 From: Bjorn Munch Date: Wed, 28 Apr 2010 14:56:38 +0200 Subject: [PATCH 13/17] Do not install mysql-test/lib/t --- mysql-test/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/CMakeLists.txt b/mysql-test/CMakeLists.txt index ce3b684295b..0755af5e7db 100644 --- a/mysql-test/CMakeLists.txt +++ b/mysql-test/CMakeLists.txt @@ -18,6 +18,7 @@ INSTALL( DESTINATION ${INSTALL_MYSQLTESTDIR} PATTERN "var/" EXCLUDE PATTERN "lib/My/SafeProcess" EXCLUDE + PATTERN "lib/t*" EXCLUDE PATTERN "CPack" EXCLUDE PATTERN "CMake*" EXCLUDE PATTERN "mtr.out*" EXCLUDE From 32a4de454f95d0752bd2939a95a45368968ff00d Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Wed, 28 Apr 2010 17:55:45 +0200 Subject: [PATCH 14/17] Revert the RPM naming change, we know it works, and can apply it to a later release. --- support-files/mysql.spec.sh | 52 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 3f5f4282310..52dce98c69f 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -242,14 +242,14 @@ documentation and the manual for more information. # Sub package definition ############################################################################## -%package -n %{name}-server +%package -n MySQL-server%{product_suffix} Summary: MySQL: a very fast and reliable SQL database server Group: Applications/Databases Requires: %{distro_requires} Provides: msqlormysql mysql-server mysql MySQL MySQL-server Obsoletes: MySQL mysql mysql-server MySQL-server -%description -n %{name}-server +%description -n MySQL-server%{product_suffix} The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well @@ -271,64 +271,64 @@ This package includes the MySQL server binary as well as related utilities to run and administer a MySQL server. If you want to access and work with the database, you have to install -package "%{name}-client" as well! +package "MySQL-client%{product_suffix}" as well! # ---------------------------------------------------------------------------- -%package -n %{name}-client +%package -n MySQL-client%{product_suffix} Summary: MySQL - Client Group: Applications/Databases Obsoletes: mysql-client MySQL-client Provides: mysql-client MySQL-client -%description -n %{name}-client +%description -n MySQL-client%{product_suffix} This package contains the standard MySQL clients and administration tools. For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- -%package -n %{name}-test -Requires: %{name}-client perl +%package -n MySQL-test%{product_suffix} +Requires: MySQL-client%{product_suffix} perl Summary: MySQL - Test suite Group: Applications/Databases Provides: mysql-test Obsoletes: mysql-bench mysql-test AutoReqProv: no -%description -n %{name}-test +%description -n MySQL-test%{product_suffix} This package contains the MySQL regression test suite. For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- -%package -n %{name}-devel +%package -n MySQL-devel%{product_suffix} Summary: MySQL - Development header files and libraries Group: Applications/Databases Provides: mysql-devel Obsoletes: mysql-devel -%description -n %{name}-devel +%description -n MySQL-devel%{product_suffix} This package contains the development header files and libraries necessary to develop MySQL client applications. For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- -%package -n %{name}-shared +%package -n MySQL-shared%{product_suffix} Summary: MySQL - Shared libraries Group: Applications/Databases -%description -n %{name}-shared +%description -n MySQL-shared%{product_suffix} This package contains the shared libraries (*.so*) which certain languages and applications need to dynamically load and use MySQL. # ---------------------------------------------------------------------------- -%package -n %{name}-embedded +%package -n MySQL-embedded%{product_suffix} Summary: MySQL - embedded library Group: Applications/Databases -Requires: %{name}-devel +Requires: MySQL-devel%{product_suffix} Obsoletes: mysql-embedded -%description -n %{name}-embedded +%description -n MySQL-embedded%{product_suffix} This package contains the MySQL server as an embedded library. The embedded MySQL server library makes it possible to run a full-featured @@ -485,7 +485,7 @@ rm -f $RBR%{_mandir}/man1/make_win_bin_dist.1* # Post processing actions, i.e. when installed ############################################################################## -%pre -n %{name}-server +%pre -n MySQL-server%{product_suffix} # Check if we can safely upgrade. An upgrade is only safe if it's from one # of our RPMs in the same version family. @@ -561,7 +561,7 @@ if [ -x %{_sysconfdir}/init.d/mysql ] ; then sleep 5 fi -%post -n %{name}-server +%post -n MySQL-server%{product_suffix} mysql_datadir=%{mysqldatadir} # ---------------------------------------------------------------------- @@ -629,7 +629,7 @@ sleep 2 #scheduled service packs and more. Visit www.mysql.com/enterprise for more #information." -%preun -n %{name}-server +%preun -n MySQL-server%{product_suffix} if [ $1 = 0 ] ; then # Stop MySQL before uninstalling it if [ -x %{_sysconfdir}/init.d/mysql ] ; then @@ -658,7 +658,7 @@ fi # Files section ############################################################################## -%files -n %{name}-server +%files -n MySQL-server%{product_suffix} %defattr(-,root,root,0755) %if %{defined license_files_server} @@ -744,7 +744,7 @@ fi %attr(755, root, root) %{_datadir}/mysql/ # ---------------------------------------------------------------------------- -%files -n %{name}-client +%files -n MySQL-client%{product_suffix} %defattr(-, root, root, 0755) %attr(755, root, root) %{_bindir}/msql2mysql @@ -776,7 +776,7 @@ fi %doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1* # ---------------------------------------------------------------------------- -%files -n %{name}-devel -f optional-files-devel +%files -n MySQL-devel%{product_suffix} -f optional-files-devel %defattr(-, root, root, 0755) %if %{defined license_files_devel} %doc %{license_files_devel} @@ -793,19 +793,19 @@ fi %{_libdir}/mysql/libmysqlservices.a # ---------------------------------------------------------------------------- -%files -n %{name}-shared +%files -n MySQL-shared%{product_suffix} %defattr(-, root, root, 0755) # Shared libraries (omit for architectures that don't support them) %{_libdir}/libmysql*.so* -%post -n %{name}-shared +%post -n MySQL-shared%{product_suffix} /sbin/ldconfig -%postun -n %{name}-shared +%postun -n MySQL-shared%{product_suffix} /sbin/ldconfig # ---------------------------------------------------------------------------- -%files -n %{name}-test +%files -n MySQL-test%{product_suffix} %defattr(-, root, root, 0755) %attr(-, root, root) %{_datadir}/mysql-test %attr(755, root, root) %{_bindir}/mysql_client_test @@ -818,7 +818,7 @@ fi %doc %attr(644, root, man) %{_mandir}/man1/mysqltest_embedded.1* # ---------------------------------------------------------------------------- -%files -n %{name}-embedded +%files -n MySQL-embedded%{product_suffix} %defattr(-, root, root, 0755) %attr(644, root, root) %{_libdir}/mysql/libmysqld.a %attr(644, root, root) %{_libdir}/mysql/libmysqld-debug.a From ce57e2415c18370985e182c707e96e26a8ec752d Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Wed, 28 Apr 2010 21:01:26 +0200 Subject: [PATCH 15/17] Sync icc flags with reality. --- cmake/build_configurations/mysql_release.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/build_configurations/mysql_release.cmake b/cmake/build_configurations/mysql_release.cmake index de92544ada5..eeef9f04544 100644 --- a/cmake/build_configurations/mysql_release.cmake +++ b/cmake/build_configurations/mysql_release.cmake @@ -136,8 +136,8 @@ IF(UNIX) # Linux flags IF(CMAKE_SYSTEM_NAME MATCHES "Linux") IF(CMAKE_C_COMPILER_ID MATCHES "Intel") - SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-static-intel -g -O3 -unroll2 -ip -mp -restrict") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-static-intel -g -O3 -unroll2 -ip -mp -restrict") + SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-static-intel -static-libgcc -g -O3 -unroll2 -ip -mp -restrict -no-ftz -no-prefetch") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-static-intel -static-libgcc -g -O3 -unroll2 -ip -mp -restrict -no-ftz -no-prefetch") SET(WITH_SSL no) ENDIF() ENDIF() From 241b702d7a66ce700f846d51915befea98c588a2 Mon Sep 17 00:00:00 2001 From: Bjorn Munch Date: Thu, 29 Apr 2010 12:31:15 +0200 Subject: [PATCH 16/17] Do not include Comments, as3ap or example --- sql-bench/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sql-bench/CMakeLists.txt b/sql-bench/CMakeLists.txt index 59dca2e84cc..4b7f9520cc1 100644 --- a/sql-bench/CMakeLists.txt +++ b/sql-bench/CMakeLists.txt @@ -18,7 +18,6 @@ FILE(GLOB all_files ${CMAKE_SOURCE_DIR}/sql-bench/* ${CMAKE_SOURCE_DIR}/sql-bench/Data/ATIS/* ${CMAKE_SOURCE_DIR}/sql-bench/Data/Wisconsin/* -${CMAKE_SOURCE_DIR}/sql-bench/Comments/* ${CMAKE_SOURCE_DIR}/sql-bench/limits/* ) @@ -34,7 +33,7 @@ ENDIF() GET_FILENAME_COMPONENT(basedir ${CMAKE_SOURCE_DIR} ABSOLUTE) FOREACH(file ${all_files}) - IF(NOT IS_DIRECTORY ${file} AND NOT ${file} MATCHES "Make" ) + IF(NOT IS_DIRECTORY ${file} AND NOT ${file} MATCHES "Make|as3ap|/example$" ) FILE(RELATIVE_PATH relpath ${basedir} ${file}) SET(target_relpath ${relpath}) GET_FILENAME_COMPONENT(ext ${file} EXT) From 17206900a07660ec35b7d86d8febabccac6a384f Mon Sep 17 00:00:00 2001 From: Jonathan Perkin Date: Thu, 29 Apr 2010 16:37:28 +0200 Subject: [PATCH 17/17] Rebrand Red Hat as 'Enterprise Linux' --- support-files/mysql.spec.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 52dce98c69f..764c67b85c7 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -122,20 +122,20 @@ %endif %if %{distro_specific} %if %(test -f /etc/redhat-release && echo 1 || echo 0) - %define redhatver %(rpm -qf --qf '%%{version}\\n' /etc/redhat-release | sed -e 's/^\\([0-9]*\\).*/\\1/g') - %if "%redhatver" == "4" - %define distro_description Red Hat Enterprise Linux 4 - %define distro_releasetag rhel4 + %define elver %(rpm -qf --qf '%%{version}\\n' /etc/redhat-release | sed -e 's/^\\([0-9]*\\).*/\\1/g') + %if "%elver" == "4" + %define distro_description Enterprise Linux 4 + %define distro_releasetag el4 %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel %define distro_requires chkconfig coreutils grep procps shadow-utils %else - %if "%redhatver" == "5" - %define distro_description Red Hat Enterprise Linux 5 - %define distro_releasetag rhel5 + %if "%elver" == "5" + %define distro_description Enterprise Linux 5 + %define distro_releasetag el5 %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel %define distro_requires chkconfig coreutils grep procps shadow-utils %else - %{error:Red Hat %{redhatver} is unsupported} + %{error:Enterprise Linux %{elver} is unsupported} %endif %endif %else @@ -577,7 +577,7 @@ if [ ! -d $mysql_datadir/test ] ; then mkdir $mysql_datadir/test; fi # use insserv for older SuSE Linux versions if [ -x /sbin/insserv ] ; then /sbin/insserv %{_sysconfdir}/init.d/mysql -# use chkconfig on Red Hat and newer SuSE releases +# use chkconfig on Enterprise Linux and newer SuSE releases elif [ -x /sbin/chkconfig ] ; then /sbin/chkconfig --add mysql fi @@ -638,7 +638,7 @@ if [ $1 = 0 ] ; then # For older SuSE Linux versions if [ -x /sbin/insserv ] ; then /sbin/insserv -r %{_sysconfdir}/init.d/mysql - # use chkconfig on Red Hat and newer SuSE releases + # use chkconfig on Enterprise Linux and newer SuSE releases elif [ -x /sbin/chkconfig ] ; then /sbin/chkconfig --del mysql fi