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
1adbecd9
Commit
1adbecd9
authored
Jul 25, 2007
by
iggy@amd64.(none)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug#24732 Executables do not include Vista manifests
- Sign executables with MySQL AB security certificate.
parent
9524c967
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
40 additions
and
11 deletions
+40
-11
.bzrignore
.bzrignore
+1
-0
CMakeLists.txt
CMakeLists.txt
+32
-6
win/README
win/README
+2
-1
win/create_manifest.js
win/create_manifest.js
+1
-1
win/mysql_manifest.cmake
win/mysql_manifest.cmake
+4
-3
No files found.
.bzrignore
View file @
1adbecd9
...
...
@@ -6,6 +6,7 @@
*.bin
*.vcproj.cmake
cmake_install.cmake
*.cdf
*.core
*.d
*.da
...
...
CMakeLists.txt
View file @
1adbecd9
...
...
@@ -139,21 +139,47 @@ ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR
ADD_DEFINITIONS
(
"-D_WINDOWS -D__WIN__ -D _CRT_SECURE_NO_DEPRECATE"
)
IF
(
EMBED_MANIFESTS
)
# Search for the Manifest tool. CMake will first search it's defaults
# (CMAKE_FRAMEWORK_PATH, CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and
# the system PATH) followed by the listed paths which are the current
# possible defaults and should be updated when necessary. The custom
# manifests are designed to be compatible with all mt versions.
# Search for the tools (mt, makecat, signtool) necessary for embedding
# manifests and signing executables with the MySQL AB authenticode cert.
#
# CMake will first search it's defaults (CMAKE_FRAMEWORK_PATH,
# CMAKE_APPBUNDLE_PATH, CMAKE_PROGRAM_PATH and the system PATH) followed
# by the listed paths which are the current possible defaults and should be
# updated when necessary.
#
# The custom manifests are designed to be compatible with all mt versions.
# The MySQL AB Authenticode certificate is available only internally.
# Others should store a single signing certificate in a local cryptographic
# service provider and alter the signtool command as necessary.
FIND_PROGRAM
(
HAVE_MANIFEST_TOOL NAMES mt
PATHS
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin"
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin"
)
FIND_PROGRAM
(
HAVE_CATALOG_TOOL NAMES makecat
PATHS
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
)
FIND_PROGRAM
(
HAVE_SIGN_TOOL NAMES signtool
PATHS
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
"$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin"
)
IF
(
HAVE_MANIFEST_TOOL
)
MESSAGE
(
STATUS
"Found Mainfest Tool.
Embedding custom manifests.
"
)
MESSAGE
(
STATUS
"Found Mainfest Tool."
)
ELSE
(
HAVE_MANIFEST_TOOL
)
MESSAGE
(
FATAL_ERROR
"Manifest tool, mt.exe, can't be found."
)
ENDIF
(
HAVE_MANIFEST_TOOL
)
IF
(
HAVE_CATALOG_TOOL
)
MESSAGE
(
STATUS
"Found Catalog Tool."
)
ELSE
(
HAVE_CATALOG_TOOL
)
MESSAGE
(
FATAL_ERROR
"Catalog tool, makecat.exe, can't be found."
)
ENDIF
(
HAVE_CATALOG_TOOL
)
IF
(
HAVE_SIGN_TOOL
)
MESSAGE
(
STATUS
"Found Sign Tool. Embedding custom manifests and signing executables."
)
ELSE
(
HAVE_SIGN_TOOL
)
MESSAGE
(
FATAL_ERROR
"Sign tool, signtool.exe, can't be found."
)
ENDIF
(
HAVE_SIGN_TOOL
)
# Disable automatic manifest generation.
STRING
(
REPLACE
"/MANIFEST"
"/MANIFEST:NO"
CMAKE_EXE_LINKER_FLAGS
${
CMAKE_EXE_LINKER_FLAGS
}
)
...
...
win/README
View file @
1adbecd9
...
...
@@ -51,7 +51,8 @@ The options right now are
DISABLE_GRANT_OPTIONS Disables the use of --init-file and --skip-grant-tables
options of mysqld.exe
EMBED_MANIFESTS Embed custom manifests into final exes, otherwise VS
default will be used.
default will be used. (Note - This option should only be
used by MySQL AB.)
So the command line could look like:
...
...
win/create_manifest.js
View file @
1adbecd9
...
...
@@ -56,7 +56,7 @@ try
manifest_xml
+=
"
\t
<assemblyIdentity name=
\
'
"
+
app_name
+
"
\
'
"
;
manifest_xml
+=
"
version=
\
'
"
+
app_version
+
"
\
'
"
;
manifest_xml
+=
"
processorArchitecture=
\
'
"
+
app_arch
+
"
\
'
"
;
// TOADD - Add publicKeyToken attribute once we have Authenticode key.
manifest_xml
+=
"
publicKeyToken=
\
'02ad33b422233ae3
\
'
"
;
manifest_xml
+=
"
type=
\
'win32
\
' />
\r\n
"
;
// Identify the application security requirements.
manifest_xml
+=
"
\t
<trustInfo xmlns=
\
'urn:schemas-microsoft-com:asm.v2
\
'>
\r\n
"
;
...
...
win/mysql_manifest.cmake
View file @
1adbecd9
...
...
@@ -14,7 +14,8 @@ MACRO(MYSQL_EMBED_MANIFEST _target_name _required_privs)
ADD_CUSTOM_COMMAND
(
TARGET
${
_target_name
}
POST_BUILD
COMMAND mt.exe
ARGS -nologo -manifest $
(
IntDir
)
\\$
(
TargetFileName
)
.intermediate.manifest -outputresource:$
(
TargetPath
)
COMMENT
"Embeds the manifest contents."
)
COMMAND mt.exe ARGS -nologo -hashupdate -makecdfs -manifest $
(
IntDir
)
\\$
(
TargetFileName
)
.intermediate.manifest -outputresource:$
(
TargetPath
)
COMMAND makecat.exe ARGS $
(
IntDir
)
\\$
(
TargetFileName
)
.intermediate.manifest.cdf
COMMAND signtool.exe ARGS sign /a /t http://timestamp.verisign.com/scripts/timstamp.dll $
(
TargetPath
)
COMMENT
"Embeds the manifest contents, creates a cryptographic catalog, signs the target with Authenticode certificate."
)
ENDMACRO
(
MYSQL_EMBED_MANIFEST
)
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