List:Commits« Previous MessageNext Message »
From:holyfoot Date:April 28 2006 4:07am
Subject:bk commit into 5.0 tree (holyfoot:1.2101) BUG#18115
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of hf. When hf does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2101 06/04/28 09:07:25 holyfoot@deer.(none) +8 -0
  bug #18115 (mysql_upgrade on Windows)
  pushed in 5.0

  client/mysql_upgrade.c
    1.1 06/04/28 09:05:59 holyfoot@stripped +400 -0

  client/mysql_upgrade.c
    1.0 06/04/28 09:05:59 holyfoot@stripped +0 -0
    BitKeeper file /home/hf/work/mysql-5.0.upgd/client/mysql_upgrade.c

  VC++Files/client/mysql_upgrade_ia64.dsp
    1.1 06/04/28 09:05:58 holyfoot@stripped +124 -0

  VC++Files/client/mysql_upgrade.vcproj
    1.1 06/04/28 09:05:58 holyfoot@stripped +232 -0

  VC++Files/client/mysql_upgrade_ia64.dsp
    1.0 06/04/28 09:05:58 holyfoot@stripped +0 -0
    BitKeeper file /home/hf/work/mysql-5.0.upgd/VC++Files/client/mysql_upgrade_ia64.dsp

  VC++Files/client/mysql_upgrade.vcproj
    1.0 06/04/28 09:05:58 holyfoot@stripped +0 -0
    BitKeeper file /home/hf/work/mysql-5.0.upgd/VC++Files/client/mysql_upgrade.vcproj

  VC++Files/client/mysql_upgrade.dsp
    1.1 06/04/28 09:05:57 holyfoot@stripped +124 -0

  client/Makefile.am
    1.54 06/04/28 09:05:57 holyfoot@stripped +5 -1
    mysql_upgrade tool added

  VC++Files/mysql_ia64.dsw
    1.5 06/04/28 09:05:57 holyfoot@stripped +18 -0
    mysql_upgrade tool added

  VC++Files/mysql.sln
    1.7 06/04/28 09:05:57 holyfoot@stripped +8 -0
    mysql_upgrade tool added

  VC++Files/mysql.dsw
    1.27 06/04/28 09:05:57 holyfoot@stripped +21 -0
    mysql_upgrade tool added

  VC++Files/client/mysql_upgrade.dsp
    1.0 06/04/28 09:05:57 holyfoot@stripped +0 -0
    BitKeeper file /home/hf/work/mysql-5.0.upgd/VC++Files/client/mysql_upgrade.dsp

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	holyfoot
# Host:	deer.(none)
# Root:	/home/hf/work/mysql-5.0.upgd

--- 1.53/client/Makefile.am	Wed Jan 11 03:07:34 2006
+++ 1.54/client/Makefile.am	Fri Apr 28 09:05:57 2006
@@ -31,6 +31,7 @@
                                 $(top_builddir)/libmysql/libmysqlclient.la
 bin_PROGRAMS =			mysql mysqladmin mysqlcheck mysqlshow \
 				mysqldump mysqlimport mysqltest mysqlbinlog \
+				mysql_upgrade \
 				mysqltestmanagerc mysqltestmanager-pwgen
 noinst_HEADERS =		sql_string.h completion_hash.h my_readline.h \
 				client_priv.h
@@ -48,11 +49,14 @@
 mysqlshow_SOURCES=              mysqlshow.c $(yassl_dummy_link_fix)
 mysqldump_SOURCES=              mysqldump.c my_user.c $(yassl_dummy_link_fix)
 mysqlimport_SOURCES=            mysqlimport.c $(yassl_dummy_link_fix)
+mysql_upgrade_SOURCES=          mysql_upgrade.c $(yassl_dummy_link_fix)
 sql_src=log_event.h mysql_priv.h log_event.cc my_decimal.h my_decimal.cc
 strings_src=decimal.c
 
 # Fix for mit-threads
-DEFS =			-DUNDEF_THREADS_HACK
+DEFS =			-DUNDEF_THREADS_HACK \
+			-DDEFAULT_MYSQL_HOME="\"$(prefix)\"" \
+			-DDATADIR="\"$(localstatedir)\"" 
 
 link_sources:
 	for f in $(sql_src) ; do \

--- 1.4/VC++Files/mysql_ia64.dsw	Mon May 23 19:50:14 2005
+++ 1.5/VC++Files/mysql_ia64.dsw	Fri Apr 28 09:05:57 2006
@@ -508,6 +508,9 @@
     Project_Dep_Name mysqlimport
     End Project Dependency
     Begin Project Dependency
+    Project_Dep_Name mysql_upgrade
+    End Project Dependency
+    Begin Project Dependency
     Project_Dep_Name mysqlshow
     End Project Dependency
     Begin Project Dependency
@@ -566,6 +569,21 @@
 ###############################################################################
 
 Project: "mysqlimport"=".\client\mysqlimport_ia64.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name mysqlclient
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "mysql_upgrade"=".\client\mysql_upgrade_ia64.dsp" - Package Owner=<4>
 
 Package=<5>
 {{{
--- New file ---
+++ VC++Files/client/mysql_upgrade.dsp	06/04/28 09:05:57
# Microsoft Developer Studio Project File - Name="mysql_upgrade" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **

# TARGTYPE "Win32 (x86) Console Application" 0x0103

CFG=mysql_upgrade - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "mysql_upgrade.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "mysql_upgrade.mak" CFG="mysql_upgrade - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "mysql_upgrade - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "mysql_upgrade - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "mysql_upgrade - Win32 classic" (based on "Win32 (x86) Console Application")
!MESSAGE

# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=xicl6.exe
RSC=rc.exe

!IF  "$(CFG)" == "mysql_upgrade - Win32 Release"

# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "release"
# PROP Intermediate_Dir "release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "NDEBUG" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 mysqlclient.lib mysys.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib ..\extra\yassl\Release\yassl.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\"
# SUBTRACT LINK32 /incremental:yes

!ELSEIF  "$(CFG)" == "mysql_upgrade - Win32 Debug"

# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "mysqlimp"
# PROP BASE Intermediate_Dir "mysqlimp"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 mysqlclient.lib mysys.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib setargv.obj ..\extra\yassl\Debug\yassl.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysql_upgrade.exe" /pdbtype:sept /libpath:"..\lib_debug\\"

!ELSEIF  "$(CFG)" == "mysql_upgrade - Win32 classic"

# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "mysql_upgrade___Win32_classic"
# PROP BASE Intermediate_Dir "mysql_upgrade___Win32_classic"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "classic"
# PROP Intermediate_Dir "classic"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "NDEBUG"  /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "_CONSOLE" /D "_WINDOWS" /D LICENSE=Commercial /D "DBUG_OFF" /D "_MBCS" /D "NDEBUG" /FD  /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=xilink6.exe
# ADD BASE LINK32 mysqlclient.lib mysys.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\"
# SUBTRACT BASE LINK32 /incremental:yes
# ADD LINK32 mysqlclient.lib mysys.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib ..\extra\yassl\Release\yassl.lib /nologo /subsystem:console /machine:I386 /out:"../client_classic/mysql_upgrade.exe" /libpath:"..\lib_release\\"
# SUBTRACT LINK32 /incremental:yes

!ENDIF

# Begin Target

# Name "mysql_upgrade - Win32 Release"
# Name "mysql_upgrade - Win32 Debug"
# Name "mysql_upgrade - Win32 classic"
# Begin Source File

SOURCE=.\mysql_upgrade.c
# End Source File
# End Target
# End Project

--- New file ---
+++ VC++Files/client/mysql_upgrade.vcproj	06/04/28 09:05:58
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
	ProjectType="Visual C++"
	Version="7.10"
	Name="mysql_upgrade"
	SccProjectName=""
	SccLocalPath="">
	<Platforms>
		<Platform
			Name="Win32"/>
	</Platforms>
	<Configurations>
		<Configuration
			Name="Debug|Win32"
			OutputDirectory=".\debug"
			IntermediateDirectory=".\debug"
			ConfigurationType="1"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="FALSE"
			CharacterSet="2">
			<Tool
				Name="VCCLCompilerTool"
				Optimization="0"
				OptimizeForProcessor="2"
				AdditionalIncludeDirectories="../include,../"
				PreprocessorDefinitions="_DEBUG;SAFEMALLOC;SAFE_MUTEX;_CONSOLE;_WINDOWS"
				RuntimeLibrary="1"
				PrecompiledHeaderFile=".\debug/mysql_upgrade.pch"
				AssemblerListingLocation=".\debug/"
				ObjectFile=".\debug/"
				ProgramDataBaseFileName=".\debug/"
				WarningLevel="3"
				SuppressStartupBanner="TRUE"
				DebugInformationFormat="1"
				CompileAs="0"/>
			<Tool
				Name="VCCustomBuildTool"/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="wsock32.lib odbc32.lib odbccp32.lib setargv.obj"
				OutputFile="../client_debug/mysql_upgrade.exe"
				LinkIncremental="1"
				SuppressStartupBanner="TRUE"
				AdditionalLibraryDirectories=""
				GenerateDebugInformation="TRUE"
				ProgramDatabaseFile=".\debug/mysql_upgrade.pdb"
				SubSystem="1"
				TargetMachine="1"/>
			<Tool
				Name="VCMIDLTool"
				TypeLibraryName=".\debug/mysql_upgrade.tlb"
				HeaderFileName=""/>
			<Tool
				Name="VCPostBuildEventTool"/>
			<Tool
				Name="VCPreBuildEventTool"/>
			<Tool
				Name="VCPreLinkEventTool"/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="_DEBUG"
				Culture="1033"/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"/>
			<Tool
				Name="VCXMLDataGeneratorTool"/>
			<Tool
				Name="VCWebDeploymentTool"/>
			<Tool
				Name="VCManagedWrapperGeneratorTool"/>
			<Tool
				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
		</Configuration>
		<Configuration
			Name="Release|Win32"
			OutputDirectory=".\release"
			IntermediateDirectory=".\release"
			ConfigurationType="1"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="FALSE"
			CharacterSet="2">
			<Tool
				Name="VCCLCompilerTool"
				Optimization="2"
				InlineFunctionExpansion="1"
				OptimizeForProcessor="2"
				AdditionalIncludeDirectories="../include,../"
				PreprocessorDefinitions="DBUG_OFF;_CONSOLE;_WINDOWS;NDEBUG"
				StringPooling="TRUE"
				RuntimeLibrary="0"
				EnableFunctionLevelLinking="TRUE"
				PrecompiledHeaderFile=".\release/mysql_upgrade.pch"
				AssemblerListingLocation=".\release/"
				ObjectFile=".\release/"
				ProgramDataBaseFileName=".\release/"
				WarningLevel="3"
				SuppressStartupBanner="TRUE"
				CompileAs="0"/>
			<Tool
				Name="VCCustomBuildTool"/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="wsock32.lib odbc32.lib odbccp32.lib"
				OutputFile="../client_release/mysql_upgrade.exe"
				LinkIncremental="1"
				SuppressStartupBanner="TRUE"
				AdditionalLibraryDirectories=""
				ProgramDatabaseFile=".\release/mysql_upgrade.pdb"
				SubSystem="1"
				TargetMachine="1"/>
			<Tool
				Name="VCMIDLTool"
				TypeLibraryName=".\release/mysql_upgrade.tlb"
				HeaderFileName=""/>
			<Tool
				Name="VCPostBuildEventTool"/>
			<Tool
				Name="VCPreBuildEventTool"/>
			<Tool
				Name="VCPreLinkEventTool"/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="NDEBUG"
				Culture="1033"/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"/>
			<Tool
				Name="VCXMLDataGeneratorTool"/>
			<Tool
				Name="VCWebDeploymentTool"/>
			<Tool
				Name="VCManagedWrapperGeneratorTool"/>
			<Tool
				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
		</Configuration>
		<Configuration
			Name="classic|Win32"
			OutputDirectory=".\classic"
			IntermediateDirectory=".\classic"
			ConfigurationType="1"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="FALSE"
			CharacterSet="2">
			<Tool
				Name="VCCLCompilerTool"
				Optimization="2"
				InlineFunctionExpansion="1"
				OptimizeForProcessor="2"
				AdditionalIncludeDirectories="../include,../"
				PreprocessorDefinitions="_CONSOLE;_WINDOWS;LICENSE=Commercial;DBUG_OFF;NDEBUG"
				StringPooling="TRUE"
				RuntimeLibrary="0"
				EnableFunctionLevelLinking="TRUE"
				PrecompiledHeaderFile=".\classic/mysql_upgrade.pch"
				AssemblerListingLocation=".\classic/"
				ObjectFile=".\classic/"
				ProgramDataBaseFileName=".\classic/"
				WarningLevel="3"
				SuppressStartupBanner="TRUE"
				CompileAs="0"/>
			<Tool
				Name="VCCustomBuildTool"/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="wsock32.lib odbc32.lib odbccp32.lib"
				OutputFile="../client_classic/mysql_upgrade.exe"
				LinkIncremental="1"
				SuppressStartupBanner="TRUE"
				AdditionalLibraryDirectories=""
				ProgramDatabaseFile=".\classic/mysql_upgrade.pdb"
				SubSystem="1"
				TargetMachine="1"/>
			<Tool
				Name="VCMIDLTool"
				TypeLibraryName=".\classic/mysql_upgrade.tlb"
				HeaderFileName=""/>
			<Tool
				Name="VCPostBuildEventTool"/>
			<Tool
				Name="VCPreBuildEventTool"/>
			<Tool
				Name="VCPreLinkEventTool"/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="NDEBUG"
				Culture="1033"/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"/>
			<Tool
				Name="VCXMLDataGeneratorTool"/>
			<Tool
				Name="VCWebDeploymentTool"/>
			<Tool
				Name="VCManagedWrapperGeneratorTool"/>
			<Tool
				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
		</Configuration>
	</Configurations>
	<References>
	</References>
	<Files>
		<File
			RelativePath="mysql_upgrade.c">
			<FileConfiguration
				Name="Debug|Win32">
				<Tool
					Name="VCCLCompilerTool"
					Optimization="0"
					AdditionalIncludeDirectories=""
					PreprocessorDefinitions=""/>
			</FileConfiguration>
			<FileConfiguration
				Name="Release|Win32">
				<Tool
					Name="VCCLCompilerTool"
					Optimization="2"
					AdditionalIncludeDirectories=""
					PreprocessorDefinitions=""/>
			</FileConfiguration>
			<FileConfiguration
				Name="classic|Win32">
				<Tool
					Name="VCCLCompilerTool"
					Optimization="2"
					AdditionalIncludeDirectories=""
					PreprocessorDefinitions=""/>
			</FileConfiguration>
		</File>
	</Files>
	<Globals>
	</Globals>
</VisualStudioProject>

--- New file ---
+++ VC++Files/client/mysql_upgrade_ia64.dsp	06/04/28 09:05:58
# Microsoft Developer Studio Project File - Name="mysql_upgrade" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **

# TARGTYPE "Win32 (x86) Console Application" 0x0103

CFG=mysql_upgrade - WinIA64 classic
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE 
!MESSAGE NMAKE /f "mysql_upgrade_ia64.mak".
!MESSAGE 
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE 
!MESSAGE NMAKE /f "mysql_upgrade_ia64.mak" CFG="mysql_upgrade - WinIA64 classic"
!MESSAGE 
!MESSAGE Possible choices for configuration are:
!MESSAGE 
!MESSAGE "mysql_upgrade - WinIA64 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "mysql_upgrade - WinIA64 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "mysql_upgrade - WinIA64 classic" (based on "Win32 (x86) Console Application")
!MESSAGE 

# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe

!IF  "$(CFG)" == "mysql_upgrade - WinIA64 Release"

# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "release"
# PROP Intermediate_Dir "release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /Zi /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "NDEBUG" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console  /machine:IA64
# ADD LINK32 ..\lib_release\zlib.lib mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console  /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\" /machine:IA64

!ELSEIF  "$(CFG)" == "mysql_upgrade - WinIA64 Debug"

# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "mysqlimp"
# PROP BASE Intermediate_Dir "mysqlimp"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /Zi /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug  /machine:IA64
# ADD LINK32 setargv.obj ..\lib_debug\zlib.lib ..\lib_debug\dbug.lib mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /incremental:no /debug  /out:"../client_debug/mysql_upgrade.exe" /libpath:"..\lib_debug\\" /machine:IA64

!ELSEIF  "$(CFG)" == "mysql_upgrade - WinIA64 classic"

# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "mysql_upgrade___WinIA64_classic"
# PROP BASE Intermediate_Dir "mysql_upgrade___WinIA64_classic"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "classic"
# PROP Intermediate_Dir "classic"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "NDEBUG" /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MT /W3 /Zi /O2 /I "../include" /I "../" /D "_CONSOLE" /D "_WINDOWS" /D LICENSE=Commercial /D "DBUG_OFF" /D "_MBCS" /D "NDEBUG" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console  /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\" /machine:IA64
# ADD LINK32 ..\lib_release\zlib.lib mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console  /out:"../client_classic/mysql_upgrade.exe" /libpath:"..\lib_release\\" /machine:IA64

!ENDIF 

# Begin Target

# Name "mysql_upgrade - WinIA64 Release"
# Name "mysql_upgrade - WinIA64 Debug"
# Name "mysql_upgrade - WinIA64 classic"
# Begin Source File

SOURCE=.\mysql_upgrade.c
# End Source File
# End Target
# End Project

--- New file ---
+++ client/mysql_upgrade.c	06/04/28 09:05:59
/* Copyright (C) 2000 MySQL AB

   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; either version 2 of the License, or
   (at your option) any later version.

   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */

#include "client_priv.h"
#include <my_dir.h>

static my_bool opt_force= 0, opt_verbose= 0, tty_password= 0;
static char *user= (char*) "root", *basedir= 0, *datadir= 0, *opt_password= 0;
static my_bool upgrade_defaults_created= 0;
static my_string opt_mysql_port, opt_mysql_unix_port= 0;
static char *default_dbug_option= (char*) "d:t:O,/tmp/comp_err.trace";
static my_bool info_flag= 0;

static struct my_option my_long_options[]=
{
  {"help", '?', "Display this help message and exit.", 0, 0, 0, GET_NO_ARG,
   NO_ARG, 0, 0, 0, 0, 0, 0},
  {"basedir", 'b', "Specifies the directory where MySQL is installed",
   (gptr*) &basedir,
   (gptr*) &basedir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
  {"datadir", 'd', "Specifies the data directory", (gptr*) &datadir,
   (gptr*) &datadir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#ifdef DBUG_OFF
  {"debug", '#', "This is a non-debug version. Catch this and exit",
   0, 0, 0, GET_DISABLED, OPT_ARG, 0, 0, 0, 0, 0, 0},
#else
  {"debug", '#', "Output debug log", (gptr *) & default_dbug_option,
   (gptr *) & default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
#endif
  {"debug-info", 'T', "Print some debug info at exit.", (gptr *) & info_flag,
   (gptr *) & info_flag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
  {"force", 'f', "Continue even if we get an sql-error.",
   (gptr*) &opt_force, (gptr*) &opt_force, 0, GET_BOOL, NO_ARG, 0, 0,
   0, 0, 0, 0},
  {"password", 'p',
   "Password to use when connecting to server. If password is not given it's solicited on the tty.",
   0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
  {"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
   (gptr*) &opt_mysql_port, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0,
   0},
  {"protocol", OPT_MYSQL_PROTOCOL,
   "The protocol of connection (tcp,socket,pipe,memory).",
   0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
  {"socket", 'S', "Socket file to use for connection.",
   (gptr*) &opt_mysql_unix_port, (gptr*) &opt_mysql_unix_port, 0, GET_STR,
   REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
  {"user", 'u', "User for login if not current user.", (gptr*) &user,
   (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
  {"verbose", 'v', "Display more output about the process", (gptr*) &opt_verbose,
    (gptr *) &opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
static const char *load_default_groups[]=
{
  "mysql_upgrade", "client", 0
};

#include <help_end.h>

static my_bool
get_one_option(int optid, const struct my_option *opt __attribute__ ((unused)),
               char *argument)
{
  switch (optid) {
  case '?':
    puts
      ("MySQL utility script to upgrade database to the current server version");
    puts("");
    my_print_help(my_long_options);
    exit(0);
  case '#':
    DBUG_PUSH(argument ? argument : default_dbug_option);
    break;
  case 'f':
    opt_force= TRUE;
    break;
  case 'p':
    tty_password= 1;
    if (argument)
    {
      char *start= argument;
      my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
      opt_password= my_strdup(argument, MYF(MY_FAE));
      while (*argument)
        *argument++= 'x';                       /* Destroy argument */
      if (*start)
        start[1]= 0;                            /* Cut length of argument */
      tty_password= 0;
    }
    break;
  default:;
  };
  return 0;
}


/* buffer should be not smaller than FN_REFLEN */
static my_bool test_file_exists_res(const char *dir, const char *fname,
                                    char *buffer, char **buf_end)
{
  MY_STAT stat_info;

  *buf_end= strxnmov(buffer, FN_REFLEN-1, dir, "/", fname, NullS);
  unpack_filename(buffer, buffer);
  return my_stat(buffer, &stat_info, MYF(0)) != 0;
}


static my_bool test_file_exists(const char *dir, const char *fname)
{
  char path[FN_REFLEN];
  char *path_end;
  return test_file_exists_res(dir, fname, path, &path_end);
}


static int create_check_file(const char *path)
{
  File check_file= my_open(path, O_CREAT | O_WRONLY, MYF(MY_FAE | MY_WME));
  int error;

  if (check_file < 0)
    return 1;

  error= my_write(check_file, VERSION, strlen(VERSION), MYF(MY_WME | MY_FNABP));
  error= my_close(check_file, MYF(MY_FAE | MY_WME)) || error;
  return error;
}


static int create_defaults_file(const char *path, const char *our_defaults_path)
{
  uint b_read;
  File our_defaults_file, defaults_file;
  char buffer[512];
  char *buffer_end;
  int error;

  /* check if the defaults file is needed at all */
  if (!opt_password)
    return 0;

  defaults_file= my_open(path, O_BINARY | O_CREAT | O_WRONLY,
                         MYF(MY_FAE | MY_WME));

  if (defaults_file < 0)
    return 1;
  upgrade_defaults_created= 1;
  if (our_defaults_path)
  {
    our_defaults_file= my_open(our_defaults_path, O_RDONLY,
                               MYF(MY_FAE | MY_WME));
    if (our_defaults_file < 0)
      return 1;
    do
    {
      if (((b_read= my_read(our_defaults_file, buffer,
                            sizeof(buffer), MYF(MY_WME))) == MY_FILE_ERROR) ||
          my_write(defaults_file, buffer, b_read, MYF(MY_FNABP | MY_WME)))
      {
        error= 1;
        goto close_return;
      }
    } while (b_read == sizeof(buffer));
  }
  buffer_end= strnmov(buffer, "\n[client]", sizeof(buffer));
  if (opt_password)
    buffer_end= strxnmov(buffer, sizeof(buffer),
                         "\npassword=", opt_password, NullS);
  error= my_write(defaults_file, buffer, (int) (buffer_end - buffer),
                  MYF(MY_WME | MY_FNABP));
close_return:
  return my_close(defaults_file, MYF(MY_WME)) || error;
}


int main(int argc, char **argv)
{
  char bindir[FN_REFLEN];
  char *bindir_end, *buf_end;
  char datadir_buf[FN_REFLEN];
  char mysqlcheck_line[FN_REFLEN], *mysqlcheck_end;
  char check_file_name[FN_REFLEN];
  int check_file;
  char fix_priv_tables_cmd[FN_REFLEN], *fix_cmd_end;
  char script_line[FN_REFLEN];
  int error;
  char *forced_defaults_file;
  char *forced_extra_defaults;
  char *defaults_group_suffix;
  char upgrade_defaults_path[FN_REFLEN], *defaults_to_use= 0;
  char port_socket[100], *port_socket_end;

  MY_INIT(argv[0]);
#ifdef __NETWARE__
  setscreenmode(SCR_AUTOCLOSE_ON_EXIT);
#endif

  load_defaults("my", load_default_groups, &argc, &argv);

  if ((error= handle_options(&argc, &argv, my_long_options, get_one_option)))
    exit(error);

  if (tty_password)
    opt_password= get_tty_password(NullS);

  /* Check if we want to force the use a specific default file */
  get_defaults_options(argc, argv,
                       &forced_defaults_file, &forced_extra_defaults,
                       &defaults_group_suffix);

  port_socket_end= port_socket;
  if (opt_mysql_port)
    port_socket_end= strxnmov(port_socket, sizeof(port_socket) - 1, " --port=",
                              opt_mysql_port, NullS);
  if (opt_mysql_unix_port)
    port_socket_end= strxnmov(port_socket_end,
                              sizeof(port_socket) -
                                (int)(port_socket_end - port_socket) - 1,
                              " --socket=", opt_mysql_unix_port, NullS);
  *port_socket_end= 0;

  if (basedir)
  {
    bindir_end= strmake(bindir, basedir, sizeof(bindir)-1);
  }
  else
  {
    if (test_file_exists("./share/mysql/english", "errmsg.sys")
        && (test_file_exists("./bin", "mysqld") ||
            test_file_exists("./libexec", "mysqld")))
    {
      getcwd(bindir, sizeof(bindir));
      bindir_end= bindir + strlen(bindir);
    }
    else
    {
      bindir_end= strmake(bindir, DEFAULT_MYSQL_HOME, sizeof(bindir)-1);
    }
  }

  if (!datadir)
  {
    datadir= datadir_buf;
    if (test_file_exists(bindir, "data/mysql"))
    {
      *strxnmov(datadir_buf, sizeof(datadir_buf)-1, bindir, "/data", NullS)= 0;
    }
    else if (test_file_exists(bindir, "var/mysql"))
    {
      *strxnmov(datadir_buf, sizeof(datadir_buf)-1, bindir, "/var", NullS)= 0;
    }
    else
      datadir= (char*) DATADIR;
  }

  strmake(bindir_end, "/bin", sizeof(bindir) - (int) (bindir_end - bindir)-1);

  if (!test_file_exists_res
      (bindir, "mysqlcheck", mysqlcheck_line, &mysqlcheck_end))
  {
    printf("Can't find program '%s'\n", mysqlcheck_line);
    puts("Please restart with --basedir=mysql-install-directory");
    exit(1);
  }

  if (!test_file_exists(datadir, "mysql/user.frm"))
  {
    puts
      ("Can't find data directory. Please restart with --datadir=path-to-data-dir");
    exit(1);
  }

  /* create the modified defaults file to be used by mysqlcheck */
  /* and mysql tools                                            */
  *strxnmov(upgrade_defaults_path, sizeof(upgrade_defaults_path)-1,
           datadir, "/upgrade_defaults", NullS)= 0;
  unpack_filename(upgrade_defaults_path, upgrade_defaults_path);
  if ((error=
       create_defaults_file(upgrade_defaults_path, forced_extra_defaults)))
    goto err_exit;

  defaults_to_use= upgrade_defaults_created ?
    upgrade_defaults_path : forced_extra_defaults;

  if (test_file_exists_res(datadir, "mysql_upgrade_info", check_file_name,
                           &buf_end) && !opt_force)
  {
    char chf_buffer[50];
    int b_read;
    check_file= my_open(check_file_name, O_RDONLY, MYF(0));
    b_read= my_read(check_file, chf_buffer, sizeof(chf_buffer)-1, MYF(0));
    chf_buffer[b_read]= 0;
    my_close(check_file, MYF(0));
    if (!strcmp(chf_buffer, VERSION))
    {
      if (opt_verbose)
        puts("mysql_upgrade already done for this version");
      goto fix_priv_tables;
    }
  }

  if (defaults_to_use)
  {
    mysqlcheck_end= strxnmov(mysqlcheck_end,
                             sizeof(mysqlcheck_line) - (int) (mysqlcheck_end -
                                                              mysqlcheck_line),
                             " --defaults-extra-file=", defaults_to_use,NullS);
  }

  mysqlcheck_end= strxnmov(mysqlcheck_end,
                           sizeof(mysqlcheck_line) -
                             (int) (mysqlcheck_end - mysqlcheck_line - 1),
                           " --check-upgrade --all-databases --auto-repair --user=",
                           user, port_socket, NullS);
  *mysqlcheck_end= 0;

  if (opt_verbose)
    printf("Running %s\n", mysqlcheck_line);
  if ((error= system(mysqlcheck_line)))
  {
    printf("Error executing '%s'\n", mysqlcheck_line);
    goto err_exit;
  }

  if ((error= create_check_file(check_file_name)))
    goto err_exit;

fix_priv_tables:
  if (!test_file_exists_res(bindir, "mysql", fix_priv_tables_cmd, &fix_cmd_end))
  {
    puts("Could not find MySQL command-line client (mysql).");
    puts
      ("Please use --basedir to specify the directory where MySQL is installed.");
    error= 1;
    goto err_exit;
  }

  if (!test_file_exists_res(basedir,
                            "support_files/mysql_fix_privilege_tables.sql",
                            script_line, &buf_end)
      && !test_file_exists_res(basedir, "share/mysql_fix_privilege_tables.sql",
                               script_line, &buf_end)
      && !test_file_exists_res(basedir,
                               "share/mysql/mysql_fix_privilege_tables.sql",
                               script_line, &buf_end)
      && !test_file_exists_res(basedir,
                               "scripts/mysql_fix_privilege_tables.sql",
                               script_line, &buf_end)
      && !test_file_exists_res("/usr/local/mysql/share/mysql",
                               "mysql_fix_privilege_tables.sql", script_line,
                               &buf_end))
  {
    puts("Could not find file mysql_fix_privilege_tables.sql");
    puts
      ("Please use --basedir to specify the directory where MySQL is installed");
    error= 1;
    goto err_exit;
  }

  if (defaults_to_use)
  {
    fix_cmd_end= strxnmov(fix_cmd_end,
                          sizeof(fix_priv_tables_cmd) -
                            (int) (fix_cmd_end - fix_priv_tables_cmd - 1),
                          " --defaults-extra-file=", defaults_to_use, NullS);
  }
  fix_cmd_end= strxnmov(fix_cmd_end,
           sizeof(fix_priv_tables_cmd) - (int) (fix_cmd_end -
                                                fix_priv_tables_cmd),
           " --user=", user, port_socket, " mysql < ", script_line, NullS);
  *fix_cmd_end= 0;

  if ((error= system(fix_priv_tables_cmd)))
  {
    /* Problem is that the 'Duplicate column' error           */
    /* which is not a bug for the script makes 'mysql' return */
    /* an error                                               */
    /* printf("Error executing '%s'\n", fix_priv_tables_cmd); */
  }

err_exit:
  if (upgrade_defaults_created)
    my_delete(upgrade_defaults_path, MYF(0));
  my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
  return error;
}                                               /* main */


--- 1.6/VC++Files/mysql.sln	Mon Feb 27 17:30:03 2006
+++ 1.7/VC++Files/mysql.sln	Fri Apr 28 09:05:57 2006
@@ -174,6 +174,14 @@
 		{44D9C7DC-6636-4B82-BD01-6876C64017DF} = {44D9C7DC-6636-4B82-BD01-6876C64017DF}
 	EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql_upgrade", "client\mysql_upgrade.vcproj", "{AD95DAD3-6DB9-4F8B-A345-7A39A83AAD3D}"
+	ProjectSection(ProjectDependencies) = postProject
+		{BA86AE72-0CF5-423D-BBA2-E12B0D72EBFB} = {BA86AE72-0CF5-423D-BBA2-E12B0D72EBFB}
+		{26383276-4843-494B-8BE0-8936ED3EBAAB} = {26383276-4843-494B-8BE0-8936ED3EBAAB}
+		{8762A9B8-72A9-462E-A9A2-F3265081F8AF} = {8762A9B8-72A9-462E-A9A2-F3265081F8AF}
+		{44D9C7DC-6636-4B82-BD01-6876C64017DF} = {44D9C7DC-6636-4B82-BD01-6876C64017DF}
+	EndProjectSection
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysqlserver", "mysqlserver\mysqlserver.vcproj", "{94B86159-C581-42CD-825D-C69CBC237E5C}"
 	ProjectSection(ProjectDependencies) = postProject
 		{EEC1300B-85A5-497C-B3E1-F708021DF859} = {EEC1300B-85A5-497C-B3E1-F708021DF859}

--- 1.26/VC++Files/mysql.dsw	Thu Jun  9 21:01:17 2005
+++ 1.27/VC++Files/mysql.dsw	Fri Apr 28 09:05:57 2006
@@ -423,6 +423,9 @@
     Project_Dep_Name mysqlimport
     End Project Dependency
     Begin Project Dependency
+    Project_Dep_Name mysql_upgrade
+    End Project Dependency
+    Begin Project Dependency
     Project_Dep_Name mysqlshow
     End Project Dependency
     Begin Project Dependency
@@ -490,6 +493,24 @@
 ###############################################################################
 
 Project: "mysqlimport"=".\client\mysqlimport.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name mysqlclient
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name mysys
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "mysql_upgrade"=".\client\mysql_upgade.dsp" - Package Owner=<4>
 
 Package=<5>
 {{{
Thread
bk commit into 5.0 tree (holyfoot:1.2101) BUG#18115holyfoot28 Apr