Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
a7662cf0
Commit
a7662cf0
authored
Feb 14, 2011
by
Joerg Bruehe
Browse files
Options
Browse Files
Download
Plain Diff
Merge bug fix 42969 into main 5.5 branch.
parents
3058b8e2
bb956c1e
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
288 additions
and
3 deletions
+288
-3
CMakeLists.txt
CMakeLists.txt
+20
-1
cmake/info_bin.cmake
cmake/info_bin.cmake
+30
-0
cmake/info_macros.cmake.in
cmake/info_macros.cmake.in
+132
-0
cmake/info_src.cmake
cmake/info_src.cmake
+31
-0
cmake/make_dist.cmake.in
cmake/make_dist.cmake.in
+7
-1
mysql-test/r/file_contents.result
mysql-test/r/file_contents.result
+6
-0
mysql-test/t/file_contents.test
mysql-test/t/file_contents.test
+56
-0
support-files/mysql.spec.sh
support-files/mysql.spec.sh
+6
-1
No files found.
CMakeLists.txt
View file @
a7662cf0
# Copyright (c) 2006, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2006, 201
1
, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
...
...
@@ -317,6 +317,24 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
${
CMAKE_BINARY_DIR
}
/include/mysql_version.h
)
CONFIGURE_FILE
(
${
CMAKE_SOURCE_DIR
}
/sql/sql_builtin.cc.in
${
CMAKE_BINARY_DIR
}
/sql/sql_builtin.cc
)
CONFIGURE_FILE
(
${
CMAKE_SOURCE_DIR
}
/cmake/info_macros.cmake.in
${
CMAKE_BINARY_DIR
}
/info_macros.cmake @ONLY
)
# Handle the "INFO_*" files.
INCLUDE
(
${
CMAKE_BINARY_DIR
}
/info_macros.cmake
)
# Source: This can be done during the cmake phase, all information is
# available, but should be repeated on each "make" just in case someone
# does "cmake ; make ; bzr pull ; make".
CREATE_INFO_SRC
(
${
CMAKE_BINARY_DIR
}
/Docs
)
ADD_CUSTOM_TARGET
(
INFO_SRC ALL
COMMAND
${
CMAKE_COMMAND
}
-P
${
CMAKE_SOURCE_DIR
}
/cmake/info_src.cmake
WORKING_DIRECTORY
${
CMAKE_BINARY_DIR
}
)
# Build flags: This must be postponed to the make phase.
ADD_CUSTOM_TARGET
(
INFO_BIN ALL
COMMAND
${
CMAKE_COMMAND
}
-P
${
CMAKE_SOURCE_DIR
}
/cmake/info_bin.cmake
WORKING_DIRECTORY
${
CMAKE_BINARY_DIR
}
)
# Packaging
IF
(
WIN32
)
...
...
@@ -344,6 +362,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM")
OPTIONAL
)
INSTALL
(
FILES README DESTINATION
${
INSTALL_DOCREADMEDIR
}
COMPONENT Readme
)
INSTALL
(
FILES
${
CMAKE_BINARY_DIR
}
/Docs/INFO_SRC
${
CMAKE_BINARY_DIR
}
/Docs/INFO_BIN DESTINATION
${
INSTALL_DOCDIR
}
)
IF
(
UNIX
)
INSTALL
(
FILES Docs/INSTALL-BINARY DESTINATION
${
INSTALL_DOCREADMEDIR
}
COMPONENT Readme
)
ENDIF
()
...
...
cmake/info_bin.cmake
0 → 100644
View file @
a7662cf0
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# The sole purpose of this cmake control file is to create the "INFO_BIN" file.
# By having a separate cmake file for this, it is ensured this happens
# only in the build (Unix: "make") phase, not when cmake runs.
# This, in turn, avoids creating stuff in the source directory -
# it should get into the binary directory only.
# Get the macros which the "INFO_*" files.
INCLUDE
(
${
CMAKE_BINARY_DIR
}
/info_macros.cmake
)
# Here is where the action is.
CREATE_INFO_BIN
()
cmake/info_macros.cmake.in
0 → 100644
View file @
a7662cf0
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# Handle/create the "INFO_*" files describing a MySQL (server) binary.
# This is part of the fix for bug#42969.
# Several of cmake's variables need to be translated from '@' notation
# to '${}', this is done by the "configure" call in top level "CMakeLists.txt".
# If further variables are used in this file, add them to this list.
SET(VERSION "@VERSION@")
SET(CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@")
SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")
SET(CMAKE_GENERATOR "@CMAKE_GENERATOR@")
SET(CMAKE_SIZEOF_VOID_P "@CMAKE_SIZEOF_VOID_P@")
SET(BZR_EXECUTABLE "@BZR_EXECUTABLE@")
SET(CMAKE_CROSSCOMPILING "@CMAKE_CROSSCOMPILING@")
SET(CMAKE_HOST_SYSTEM "@CMAKE_HOST_SYSTEM@")
SET(CMAKE_HOST_SYSTEM_PROCESSOR "@CMAKE_HOST_SYSTEM_PROCESSOR@")
SET(CMAKE_SYSTEM "@CMAKE_SYSTEM@")
SET(CMAKE_SYSTEM_PROCESSOR "@CMAKE_SYSTEM_PROCESSOR@")
# Create an "INFO_SRC" file with information about the source (only).
# We use "bzr version-info", if possible, and the "VERSION" contents.
#
# Outside development (BZR tree), the "INFO_SRC" file will not be modified
# provided it exists (from "make dist" or a source tarball creation).
MACRO(CREATE_INFO_SRC target_dir)
SET(INFO_SRC "${target_dir}/INFO_SRC")
IF(EXISTS ${CMAKE_SOURCE_DIR}/.bzr)
# Sources are in a BZR repository: Always update.
EXECUTE_PROCESS(
COMMAND ${BZR_EXECUTABLE} version-info ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE VERSION_INFO
RESULT_VARIABLE RESULT
)
FILE(WRITE ${INFO_SRC} "${VERSION_INFO}\n")
# to debug, add: FILE(APPEND ${INFO_SRC} "\nResult ${RESULT}\n")
# For better readability ...
FILE(APPEND ${INFO_SRC} "\nMySQL source ${VERSION}\n")
ELSEIF(EXISTS ${INFO_SRC})
# Outside a BZR tree, there is no need to change an existing "INFO_SRC",
# it cannot be improved.
ELSEIF(EXISTS ${CMAKE_SOURCE_DIR}/Docs/INFO_SRC)
# If we are building from a source distribution, it also contains "INFO_SRC".
# Similar, the export used for a release build already has the file.
FILE(READ ${CMAKE_SOURCE_DIR}/Docs/INFO_SRC SOURCE_INFO)
FILE(WRITE ${INFO_SRC} "${SOURCE_INFO}\n")
ELSEIF(EXISTS ${CMAKE_SOURCE_DIR}/INFO_SRC)
# This is not the proper location, but who knows ...
FILE(READ ${CMAKE_SOURCE_DIR}/INFO_SRC SOURCE_INFO)
FILE(WRITE ${INFO_SRC} "${SOURCE_INFO}\n")
ELSE()
# This is a fall-back.
FILE(WRITE ${INFO_SRC} "\nMySQL source ${VERSION}\n")
ENDIF()
ENDMACRO(CREATE_INFO_SRC)
# This is for the "real" build, must be run again with each cmake run
# to make sure we report the current flags (not those of some previous run).
MACRO(CREATE_INFO_BIN)
SET(INFO_BIN "Docs/INFO_BIN")
FILE(WRITE ${INFO_BIN} "===== Information about the build process: =====\n")
IF (WIN32)
EXECUTE_PROCESS(COMMAND cmd /c date /T OUTPUT_VARIABLE TMP_DATE)
ELSEIF(UNIX)
EXECUTE_PROCESS(COMMAND date "+%Y-%m-%d %H:%M:%S" OUTPUT_VARIABLE TMP_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
ELSE()
SET(TMP_DATE "(no date command known for this platform)")
ENDIF()
SITE_NAME(HOSTNAME)
FILE(APPEND ${INFO_BIN} "Build was run at ${TMP_DATE} on host '${HOSTNAME}'\n\n")
# According to the cmake docs, these variables should always be set.
# However, they are empty in my tests, using cmake 2.6.4 on Linux, various Unix, and Windows.
# Still, include this code, so we will profit if a build environment does provide that info.
IF(CMAKE_HOST_SYSTEM)
FILE(APPEND ${INFO_BIN} "Build was done on ${CMAKE_HOST_SYSTEM} using ${CMAKE_HOST_SYSTEM_PROCESSOR}\n")
ENDIF()
IF(CMAKE_CROSSCOMPILING)
FILE(APPEND ${INFO_BIN} "Build was done for ${CMAKE_SYSTEM} using ${CMAKE_SYSTEM_PROCESSOR}\n")
ENDIF()
# ${CMAKE_VERSION} doesn't work in 2.6.0, use the separate components.
FILE(APPEND ${INFO_BIN} "Build was done using cmake ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} \n\n")
IF (WIN32)
FILE(APPEND ${INFO_BIN} "===== Compiler / generator used: =====\n")
FILE(APPEND ${INFO_BIN} ${CMAKE_GENERATOR} "\n\n")
ELSEIF(UNIX)
FILE(APPEND ${INFO_BIN} "===== Compiler flags used (from the 'sql/' subdirectory): =====\n")
IF(EXISTS sql/CMakeFiles/sql.dir/flags.make)
EXECUTE_PROCESS(COMMAND egrep "^# compile|^C_|^CXX_" sql/CMakeFiles/sql.dir/flags.make OUTPUT_VARIABLE COMPILE_FLAGS)
FILE(APPEND ${INFO_BIN} ${COMPILE_FLAGS} "\n")
ELSE()
FILE(APPEND ${INFO_BIN} "File 'sql/CMakeFiles/sql.dir/flags.make' is not yet found.\n\n")
ENDIF()
ENDIF()
FILE(APPEND ${INFO_BIN} "Pointer size: ${CMAKE_SIZEOF_VOID_P}\n\n")
FILE(APPEND ${INFO_BIN} "===== Feature flags used: =====\n")
IF(EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt)
# Attention: "-N" prevents cmake from entering a recursion, and it must be a separate flag from "-L".
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -N -L ${CMAKE_BINARY_DIR} OUTPUT_VARIABLE FEATURE_FLAGS)
FILE(APPEND ${INFO_BIN} ${FEATURE_FLAGS} "\n")
ELSE()
FILE(APPEND ${INFO_BIN} "File 'CMakeCache.txt' is not yet found.\n\n")
ENDIF()
FILE(APPEND ${INFO_BIN} "===== EOF =====\n")
ENDMACRO(CREATE_INFO_BIN)
cmake/info_src.cmake
0 → 100644
View file @
a7662cf0
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# The sole purpose of this cmake control file is to create the "INFO_SRC" file.
# As long as and "bzr pull" (or "bzr commit") is followed by a "cmake",
# the call in top level "CMakeLists.txt" is sufficient.
# This file is to provide a separate target for the "make" phase,
# to ensure the BZR revision-id is correct even after a sequence
# cmake ; make ; bzr pull ; make
# Get the macros which handle the "INFO_*" files.
INCLUDE
(
${
CMAKE_BINARY_DIR
}
/info_macros.cmake
)
# Here is where the action is.
CREATE_INFO_SRC
(
${
CMAKE_BINARY_DIR
}
/Docs
)
cmake/make_dist.cmake.in
View file @
a7662cf0
# Copyright (
C) 2009 Sun Microsystems, Inc
# Copyright (
c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
...
...
@@ -106,6 +106,12 @@ IF(MYSQL_DOCS_LOCATION)
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_directory "${MYSQL_DOCS_LOCATION}" "${PACKAGE_DIR}")
ENDIF()
# Ensure there is an "INFO_SRC" file.
INCLUDE(${CMAKE_BINARY_DIR}/info_macros.cmake)
IF(NOT EXISTS ${PACKAGE_DIR}/Docs/INFO_SRC)
CREATE_INFO_SRC(${PACKAGE_DIR}/Docs)
ENDIF()
# In case we used CPack, it could have copied some
# extra files that are not usable on different machines.
FILE(REMOVE ${PACKAGE_DIR}/CMakeCache.txt)
...
...
mysql-test/r/file_contents.result
0 → 100644
View file @
a7662cf0
Checking 'INFO_SRC' and 'INFO_BIN'
INFO_SRC: Found MySQL version number / Found BZR revision id
INFO_BIN: Found 'Compiler ... used' line / Found 'Feature flags' line
End of tests
mysql-test/t/file_contents.test
0 → 100644
View file @
a7662cf0
#
# Testing files that were built to be packaged, both for existence and for contents
#
#
# Bug #42969: Create MANIFEST files
#
# Use a Perl script to verify that files "docs/INFO_BIN" and "docs/INFO_SRC" do exist
# and have the expected contents.
--
perl
print
"
\n
Checking 'INFO_SRC' and 'INFO_BIN'
\n
"
;
$dir_docs
=
$ENV
{
'MYSQL_LIBDIR'
};
if
(
$dir_docs
=~
m
|/
usr
/|
)
{
# RPM package
$dir_docs
=~
s
|/
lib
|/
share
/
doc
|
;
if
(
-
d
"
$dir_docs
/packages/MySQL-server"
)
{
# SuSE
$dir_docs
=
"
$dir_docs
/packages/MySQL-server"
;
}
else
{
# RedHat: version number in directory name
$dir_docs
=
glob
"
$dir_docs
/MySQL-server*"
;
}
}
else
{
# tar.gz package, Windows, or developer work (in BZR)
$dir_docs
=~
s
|/
lib
||
;
if
(
-
d
"
$dir_docs
/docs"
)
{
$dir_docs
=
"
$dir_docs
/docs"
;
# package
}
else
{
$dir_docs
=
"
$dir_docs
/Docs"
;
# development tree
}
}
$found_version
=
"No line 'MySQL source #.#.#'"
;
$found_revision
=
"No line 'revision-id: .....'"
;
open
(
I_SRC
,
"<"
,
"
$dir_docs
/INFO_SRC"
)
or
print
"Cannot open 'INFO_SRC' in '
$dir_docs
'
\n
"
;
while
(
defined
(
$line
=
<
I_SRC
>
))
{
if
(
$line
=~
m
|^
MySQL
source
\d
\
.
\d
\
.
\d
+|
)
{
$found_version
=
"Found MySQL version number"
;}
if
(
$line
=~
m
|^
revision
-
id
:
.*@.*-
2
\d
{
13
}
-
\w
+
$
|
)
{
$found_revision
=
"Found BZR revision id"
;}
}
close
I_SRC
;
print
"INFO_SRC:
$found_version
/
$found_revision
\n
"
;
$found_compiler
=
"No line about compiler information"
;
$found_features
=
"No line 'Feature flags'"
;
open
(
I_BIN
,
"<"
,
"
$dir_docs
/INFO_BIN"
)
or
print
"Cannot open 'INFO_BIN' in '
$dir_docs
'
\n
"
;
while
(
defined
(
$line
=
<
I_BIN
>
))
{
# "generator" on Windows, "flags" on Unix:
if
((
$line
=~
m
|
Compiler
/
generator
used
:
|
)
||
(
$line
=~
m
|
Compiler
flags
used
|
))
{
$found_compiler
=
"Found 'Compiler ... used' line"
;}
if
(
$line
=~
m
|
Feature
flags
used
:|
)
{
$found_features
=
"Found 'Feature flags' line"
;}
}
close
I_BIN
;
print
"INFO_BIN:
$found_compiler
/
$found_features
\n
"
;
EOF
--
echo
--
echo
End
of
tests
support-files/mysql.spec.sh
View file @
a7662cf0
...
...
@@ -947,6 +947,8 @@ echo "=====" >> $STATUS_HISTORY
%doc %
{
license_files_server
}
%endif
%doc %
{
src_dir
}
/Docs/ChangeLog
%doc %
{
src_dir
}
/Docs/INFO_SRC
*
%doc release/Docs/INFO_BIN
*
%doc release/support-files/my-
*
.cnf
%doc %attr
(
644, root, root
)
%
{
_infodir
}
/mysql.info
*
...
...
@@ -1124,13 +1126,16 @@ echo "=====" >> $STATUS_HISTORY
# merging BK trees)
##############################################################################
%changelog
*
Thu Feb 09 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
- Fix bug#56581: If an installation deviates from the default file locations
(
"datadir"
and
"pid-file"
)
, the mechanism to detect a running server
(
on upgrade
)
should still work, and use these locations.
The problem was that the fix
for
bug#27072 did not check
for
local
settings.
*
Mon Jan 31 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
- Install the new
"manifest"
files:
"INFO_SRC"
and
"INFO_BIN"
.
*
Tue Nov 23 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment