mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Added unique error for DEADLOCK
Include missing man pages into binary distribution BitKeeper/deleted/.del-make_mysql_pkg.sh~c616a18bed4b9c2: Delete: support-files/make_mysql_pkg.sh Docs/manual.texi: Changelog extra/perror.c: Added missing error codes include/my_base.h: Added unique error for DEADLOCK include/mysql.h: Portability fix for the LCC windows compiler include/mysqld_error.h: Added unique error for DEADLOCK scripts/make_binary_distribution.sh: Include missing man pages into binary distribution sql/ha_berkeley.cc: Added unique error for DEADLOCK sql/ha_berkeley.h: Added unique error for DEADLOCK sql/handler.h: Added unique error for DEADLOCK sql/mysqld.cc: Portability fix sql/share/czech/errmsg.txt: Added unique error for DEADLOCK sql/share/danish/errmsg.txt: Added unique error for DEADLOCK sql/share/dutch/errmsg.txt: Added unique error for DEADLOCK sql/share/english/errmsg.txt: Added unique error for DEADLOCK sql/share/estonian/errmsg.txt: Added unique error for DEADLOCK sql/share/french/errmsg.txt: Added unique error for DEADLOCK sql/share/german/errmsg.txt: Added unique error for DEADLOCK sql/share/greek/errmsg.txt: Added unique error for DEADLOCK sql/share/hungarian/errmsg.txt: Added unique error for DEADLOCK sql/share/italian/errmsg.txt: Added unique error for DEADLOCK sql/share/japanese/errmsg.txt: Added unique error for DEADLOCK sql/share/korean/errmsg.txt: Added unique error for DEADLOCK sql/share/norwegian-ny/errmsg.txt: Added unique error for DEADLOCK sql/share/norwegian/errmsg.txt: Added unique error for DEADLOCK sql/share/polish/errmsg.txt: Added unique error for DEADLOCK sql/share/portuguese/errmsg.txt: Added unique error for DEADLOCK sql/share/romanian/errmsg.txt: Added unique error for DEADLOCK sql/share/russian/errmsg.txt: Added unique error for DEADLOCK sql/share/slovak/errmsg.txt: Added unique error for DEADLOCK sql/share/spanish/errmsg.txt: Added unique error for DEADLOCK sql/share/swedish/errmsg.txt: Added unique error for DEADLOCK sql/share/ukrainian/errmsg.txt: Added unique error for DEADLOCK
This commit is contained in:
@ -46853,6 +46853,9 @@ not yet 100% confident in this code.
|
|||||||
@appendixsubsec Changes in release 3.23.43
|
@appendixsubsec Changes in release 3.23.43
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item
|
@item
|
||||||
|
Added unique error message when one gets a DEADLOCK during a transaction with
|
||||||
|
BDB tables.
|
||||||
|
@item
|
||||||
Fixed problem with @code{BDB} tables and @code{UNIQUE} columns defined
|
Fixed problem with @code{BDB} tables and @code{UNIQUE} columns defined
|
||||||
as @code{NULL}.
|
as @code{NULL}.
|
||||||
@item
|
@item
|
||||||
|
@ -67,6 +67,10 @@ static HA_ERRORS ha_errlist[]=
|
|||||||
{ 143,"Conflicting table definition between MERGE and mapped table"},
|
{ 143,"Conflicting table definition between MERGE and mapped table"},
|
||||||
{ 144,"Table is crashed and last repair failed"},
|
{ 144,"Table is crashed and last repair failed"},
|
||||||
{ 145,"Table was marked as crashed and should be repaired"},
|
{ 145,"Table was marked as crashed and should be repaired"},
|
||||||
|
{ 146,"Lock timed out; Retry transaction"},
|
||||||
|
{ 147,"Lock table is full; Restart program with a larger locktable"},
|
||||||
|
{ 148,"Updates are not allowed under a read only transactions"},
|
||||||
|
{ 149,"Lock deadlock; Retry transaction"},
|
||||||
{ 0,NullS },
|
{ 0,NullS },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -214,6 +214,7 @@ enum ha_base_keytype {
|
|||||||
#define HA_ERR_LOCK_WAIT_TIMEOUT 146
|
#define HA_ERR_LOCK_WAIT_TIMEOUT 146
|
||||||
#define HA_ERR_LOCK_TABLE_FULL 147
|
#define HA_ERR_LOCK_TABLE_FULL 147
|
||||||
#define HA_ERR_READ_ONLY_TRANSACTION 148 /* Updates not allowed */
|
#define HA_ERR_READ_ONLY_TRANSACTION 148 /* Updates not allowed */
|
||||||
|
#define HA_ERR_LOCK_DEADLOCK 149
|
||||||
|
|
||||||
/* Other constants */
|
/* Other constants */
|
||||||
|
|
||||||
|
@ -36,6 +36,9 @@ extern "C" {
|
|||||||
|
|
||||||
#ifndef _global_h /* If not standard header */
|
#ifndef _global_h /* If not standard header */
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#ifdef __LCC__
|
||||||
|
#include <winsock.h> /* For windows */
|
||||||
|
#endif
|
||||||
typedef char my_bool;
|
typedef char my_bool;
|
||||||
#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__)
|
#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__)
|
||||||
#define __WIN__
|
#define __WIN__
|
||||||
|
@ -213,4 +213,5 @@
|
|||||||
#define ER_WRONG_ARGUMENTS 1210
|
#define ER_WRONG_ARGUMENTS 1210
|
||||||
#define ER_NO_PERMISSON_TO_CREATE_USER 1211
|
#define ER_NO_PERMISSON_TO_CREATE_USER 1211
|
||||||
#define ER_UNION_TABLES_IN_DIFFERENT_DIR 1212
|
#define ER_UNION_TABLES_IN_DIFFERENT_DIR 1212
|
||||||
#define ER_ERROR_MESSAGES 213
|
#define ER_LOCK_DEADLOCK 1213
|
||||||
|
#define ER_ERROR_MESSAGES 214
|
||||||
|
@ -50,7 +50,7 @@ mkdir $BASE $BASE/bin $BASE/data $BASE/data/mysql $BASE/data/test \
|
|||||||
$BASE/include $BASE/lib $BASE/support-files $BASE/share $BASE/share/mysql \
|
$BASE/include $BASE/lib $BASE/support-files $BASE/share $BASE/share/mysql \
|
||||||
$BASE/tests $BASE/scripts $BASE/sql-bench $BASE/mysql-test \
|
$BASE/tests $BASE/scripts $BASE/sql-bench $BASE/mysql-test \
|
||||||
$BASE/mysql-test/t $BASE/mysql-test/r \
|
$BASE/mysql-test/t $BASE/mysql-test/r \
|
||||||
$BASE/mysql-test/include $BASE/mysql-test/std_data
|
$BASE/mysql-test/include $BASE/mysql-test/std_data $BASE/man
|
||||||
|
|
||||||
chmod o-rwx $BASE/data $BASE/data/*
|
chmod o-rwx $BASE/data $BASE/data/*
|
||||||
|
|
||||||
@ -101,6 +101,7 @@ rm $BASE/include/Makefile*; rm $BASE/include/*.in
|
|||||||
|
|
||||||
$CP tests/*.res tests/*.tst tests/*.pl $BASE/tests
|
$CP tests/*.res tests/*.tst tests/*.pl $BASE/tests
|
||||||
$CP support-files/* $BASE/support-files
|
$CP support-files/* $BASE/support-files
|
||||||
|
$CP man/*.? $BASE/man
|
||||||
|
|
||||||
$CP -r sql/share/* $BASE/share/mysql
|
$CP -r sql/share/* $BASE/share/mysql
|
||||||
rm -f $BASE/share/mysql/Makefile* $BASE/share/mysql/*/*.OLD
|
rm -f $BASE/share/mysql/Makefile* $BASE/share/mysql/*/*.OLD
|
||||||
|
@ -1996,6 +1996,12 @@ longlong ha_berkeley::get_auto_increment()
|
|||||||
return nr;
|
return nr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ha_berkeley::print_error(int error, myf errflag)
|
||||||
|
{
|
||||||
|
if (error == DB_LOCK_DEADLOCK)
|
||||||
|
error=HA_ERR_LOCK_DEADLOCK;
|
||||||
|
handler::print_error(error,errflag);
|
||||||
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
Analyzing, checking, and optimizing tables
|
Analyzing, checking, and optimizing tables
|
||||||
|
@ -162,6 +162,7 @@ class ha_berkeley: public handler
|
|||||||
pthread_mutex_unlock(&share->mutex);
|
pthread_mutex_unlock(&share->mutex);
|
||||||
}
|
}
|
||||||
longlong get_auto_increment();
|
longlong get_auto_increment();
|
||||||
|
void print_error(int error, myf errflag);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern bool berkeley_skip, berkeley_shared_data;
|
extern bool berkeley_skip, berkeley_shared_data;
|
||||||
|
@ -215,7 +215,7 @@ public:
|
|||||||
int ha_open(const char *name, int mode, int test_if_locked);
|
int ha_open(const char *name, int mode, int test_if_locked);
|
||||||
void update_timestamp(byte *record);
|
void update_timestamp(byte *record);
|
||||||
void update_auto_increment();
|
void update_auto_increment();
|
||||||
void print_error(int error, myf errflag);
|
virtual void print_error(int error, myf errflag);
|
||||||
uint get_dup_key(int error);
|
uint get_dup_key(int error);
|
||||||
void change_table_ptr(TABLE *table_arg) { table=table_arg; }
|
void change_table_ptr(TABLE *table_arg) { table=table_arg; }
|
||||||
virtual double scan_time()
|
virtual double scan_time()
|
||||||
|
@ -2325,7 +2325,7 @@ pthread_handler_decl(handle_connections_sockets,arg __attribute__((unused)))
|
|||||||
if (!(test_flags & TEST_BLOCKING))
|
if (!(test_flags & TEST_BLOCKING))
|
||||||
fcntl(sock, F_SETFL, flags);
|
fcntl(sock, F_SETFL, flags);
|
||||||
#endif
|
#endif
|
||||||
if (new_sock < 0)
|
if (new_sock == INVALID_SOCKET)
|
||||||
{
|
{
|
||||||
if ((error_count++ & 255) == 0) // This can happen often
|
if ((error_count++ & 255) == 0) // This can happen often
|
||||||
sql_perror("Error in accept");
|
sql_perror("Error in accept");
|
||||||
|
@ -223,3 +223,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -217,3 +217,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -218,3 +218,4 @@
|
|||||||
"Foutieve parameters voor %s",
|
"Foutieve parameters voor %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -206,7 +206,7 @@
|
|||||||
"Could not create slave thread, check system resources",
|
"Could not create slave thread, check system resources",
|
||||||
"User %-.64s has already more than 'max_user_connections' active connections",
|
"User %-.64s has already more than 'max_user_connections' active connections",
|
||||||
"You may only use constant expressions with SET",
|
"You may only use constant expressions with SET",
|
||||||
"Lock wait timeout exceeded",
|
"Lock wait timeout exceeded; Try restarting transaction",
|
||||||
"The total number of locks exceeds the lock table size",
|
"The total number of locks exceeds the lock table size",
|
||||||
"Update locks cannot be acquired during a READ UNCOMMITTED transaction",
|
"Update locks cannot be acquired during a READ UNCOMMITTED transaction",
|
||||||
"DROP DATABASE not allowed while thread is holding global read lock",
|
"DROP DATABASE not allowed while thread is holding global read lock",
|
||||||
@ -214,3 +214,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -218,3 +218,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -214,3 +214,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -217,3 +217,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -214,3 +214,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -216,3 +216,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -214,3 +214,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -216,3 +216,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -214,3 +214,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -216,3 +216,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -216,3 +216,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -218,3 +218,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -214,3 +214,4 @@
|
|||||||
"Argumentos errados para %s",
|
"Argumentos errados para %s",
|
||||||
"N<>o <20> permitido a %-.32s@%-.64s criar novos usu<73>rios",
|
"N<>o <20> permitido a %-.32s@%-.64s criar novos usu<73>rios",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -218,3 +218,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -217,3 +217,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -222,3 +222,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -215,3 +215,4 @@
|
|||||||
"Wrong arguments to %s",
|
"Wrong arguments to %s",
|
||||||
"%-.32s@%-.64s is not allowed to create new users",
|
"%-.32s@%-.64s is not allowed to create new users",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
@ -206,7 +206,7 @@
|
|||||||
"Kunde inte starta en tr<74>d f<>r replikering",
|
"Kunde inte starta en tr<74>d f<>r replikering",
|
||||||
"Anv<6E>ndare '%-.64s' har redan 'max_user_connections' aktiva inloggningar",
|
"Anv<6E>ndare '%-.64s' har redan 'max_user_connections' aktiva inloggningar",
|
||||||
"Man kan endast anv<6E>nda konstant-uttryck med SET",
|
"Man kan endast anv<6E>nda konstant-uttryck med SET",
|
||||||
"Fick inte ett l<>s i tid",
|
"Fick inte ett l<>s i tid ; F<>rs<72>k att starta om transaktionen",
|
||||||
"Antal l<>s <20>verskrider antalet reserverade l<>s",
|
"Antal l<>s <20>verskrider antalet reserverade l<>s",
|
||||||
"Updaterings-l<>s kan inte g<>ras n<>r man anv<6E>nder READ UNCOMMITTED",
|
"Updaterings-l<>s kan inte g<>ras n<>r man anv<6E>nder READ UNCOMMITTED",
|
||||||
"DROP DATABASE <20>r inte till<6C>tet n<>r man har ett globalt l<>s-l<>s",
|
"DROP DATABASE <20>r inte till<6C>tet n<>r man har ett globalt l<>s-l<>s",
|
||||||
@ -214,3 +214,4 @@
|
|||||||
"Felaktiga argument till %s",
|
"Felaktiga argument till %s",
|
||||||
"%-.32s@%-.64s har inte r<>ttigheter att skapa nya anv<6E>ndare",
|
"%-.32s@%-.64s har inte r<>ttigheter att skapa nya anv<6E>ndare",
|
||||||
"Felaktig tabell definition: Alla tabeller i en MERGE tabell m<>ste vara i samma databas",
|
"Felaktig tabell definition: Alla tabeller i en MERGE tabell m<>ste vara i samma databas",
|
||||||
|
"Fick 'DEADLOCK' vid l<>sf<73>rs<72>k av block/rad; F<>rs<72>k att starta om transaktionen",
|
||||||
|
@ -219,3 +219,4 @@
|
|||||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> %s",
|
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> %s",
|
||||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %-.32s@%-.64s <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ަ<EFBFBD>",
|
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %-.32s@%-.64s <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ަ<EFBFBD>",
|
||||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||||
|
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||||
|
414
support-files/make_mysql_pkg.pl
Normal file
414
support-files/make_mysql_pkg.pl
Normal file
@ -0,0 +1,414 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# make_mysql_pkg.pl
|
||||||
|
#
|
||||||
|
# This script creates a Mac OS X installation package
|
||||||
|
# of MySQL for Apple's Installer application.
|
||||||
|
#
|
||||||
|
# To use it:
|
||||||
|
#
|
||||||
|
# 1.) Unpack the mysql source tarball and cd into the directory
|
||||||
|
# 2.) execute this script
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Written by Marc Liyanage (http://www.entropy.ch)
|
||||||
|
#
|
||||||
|
# History:
|
||||||
|
#
|
||||||
|
# When Who What
|
||||||
|
# -------------------------------------------------------------
|
||||||
|
# 2001-09-16 Marc Liyanage First version
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use DirHandle;
|
||||||
|
|
||||||
|
my $data = {};
|
||||||
|
|
||||||
|
$data->{PREFIX_DIR} = "/usr/local";
|
||||||
|
$data->{CONFIG} = "--prefix=$data->{PREFIX_DIR} --with-innodb";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
prepare($data);
|
||||||
|
configure_source($data);
|
||||||
|
make($data);
|
||||||
|
make_binary_distribution($data);
|
||||||
|
create_pax_root($data);
|
||||||
|
create_package($data);
|
||||||
|
cleanup($data);
|
||||||
|
|
||||||
|
print "Package $data->{PACKAGE_TARBALL_FILENAME} created\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Subroutines follow here...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Prepares data in the global $data hash, like version numbers,
|
||||||
|
# directory names etc. Also makes sure that no old stuff
|
||||||
|
# is in our way.
|
||||||
|
#
|
||||||
|
sub prepare {
|
||||||
|
|
||||||
|
my ($data) = @_;
|
||||||
|
|
||||||
|
# Keep the current wd for reference
|
||||||
|
#
|
||||||
|
$data->{OLDWD} = `pwd`;
|
||||||
|
chomp($data->{OLDWD});
|
||||||
|
|
||||||
|
# Look for configure script
|
||||||
|
#
|
||||||
|
unless (-f "configure") {
|
||||||
|
abort($data, "Unable to find 'configure', make sure you're in the MySQL source toplevel directory!");
|
||||||
|
}
|
||||||
|
|
||||||
|
# Try to find version number there
|
||||||
|
#
|
||||||
|
my $mysql_version_h = `cat configure`;
|
||||||
|
($data->{VERSION}) = $mysql_version_h =~ /^VERSION=(.+?)$/m;
|
||||||
|
|
||||||
|
unless ($data->{VERSION} =~ /\d+/) {
|
||||||
|
abort($data, "Unable to find MySQL version number!");
|
||||||
|
}
|
||||||
|
|
||||||
|
debug($data, "found MySQL version number $data->{VERSION}");
|
||||||
|
|
||||||
|
|
||||||
|
# PAXROOT_DIR is where we will build our own little
|
||||||
|
# fake /usr/local directory. Make sure it doesn't exist,
|
||||||
|
# then try to create it.
|
||||||
|
#
|
||||||
|
$data->{PAXROOT_DIR} = "/tmp/mysql-$data->{VERSION}-paxroot";
|
||||||
|
|
||||||
|
if (-e $data->{PAXROOT_DIR}) {
|
||||||
|
abort($data, "$data->{PAXROOT_DIR} exists, please remove first");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (system("mkdir $data->{PAXROOT_DIR}")) {
|
||||||
|
abort($data, "Unable to mkdir $data->{PAXROOT_DIR}, please make sure you have the right permissions!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# PACKAGE_DIR is where we will build the package directory
|
||||||
|
# hierarchy, according to the standard .pkg layout.
|
||||||
|
#
|
||||||
|
$data->{PACKAGE_NAME} = "mysql-$data->{VERSION}.pkg";
|
||||||
|
$data->{PACKAGE_DIR} = "/tmp/$data->{PACKAGE_NAME}";
|
||||||
|
|
||||||
|
if (-e $data->{PACKAGE_DIR}) {
|
||||||
|
abort($data, "$data->{PACKAGE_DIR} exists, please remove first");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (system("mkdir $data->{PACKAGE_DIR}")) {
|
||||||
|
abort($data, "Unable to mkdir $data->{PACKAGE_DIR}, please make sure you have the right permissions!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Configure the MySQL source with our options
|
||||||
|
#
|
||||||
|
sub configure_source {
|
||||||
|
|
||||||
|
my ($data) = @_;
|
||||||
|
|
||||||
|
if (system("./configure $data->{CONFIG}")) {
|
||||||
|
abort($data, "Unable to configure!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Build the software
|
||||||
|
#
|
||||||
|
sub make {
|
||||||
|
|
||||||
|
my ($data) = @_;
|
||||||
|
|
||||||
|
if (system("make")) {
|
||||||
|
abort($data, "Unable to make!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# We don't ever install the software, but instead we use an
|
||||||
|
# included script to create a binary distribution
|
||||||
|
# tarball.
|
||||||
|
#
|
||||||
|
sub make_binary_distribution {
|
||||||
|
|
||||||
|
my ($data) = @_;
|
||||||
|
|
||||||
|
if (system("./scripts/make_binary_distribution > make_binary_distribution.out")) {
|
||||||
|
abort($data, "Unable to make_binary_distribution!");
|
||||||
|
}
|
||||||
|
|
||||||
|
my @output = `cat make_binary_distribution.out`;
|
||||||
|
my $last_line = $output[-1];
|
||||||
|
unlink("make_binary_distribution.out");
|
||||||
|
|
||||||
|
my ($tarball_filename, $tarball_directory) = $last_line =~ /^((.+)\.tar\.gz) created/i;
|
||||||
|
|
||||||
|
unless ($tarball_filename and -f $tarball_filename) {
|
||||||
|
abort($data, "Unable determine the output filename of scripts/make_binary_distribution!");
|
||||||
|
}
|
||||||
|
|
||||||
|
$data->{BINARY_TARBALL_FILENAME} = $tarball_filename;
|
||||||
|
$data->{BINARY_TARBALL_DIRECTORY} = $tarball_directory;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Now we build a fake /usr/local directory hierarchy.
|
||||||
|
# This will be fed to the pax tool to create
|
||||||
|
# the archive.
|
||||||
|
#
|
||||||
|
sub create_pax_root {
|
||||||
|
|
||||||
|
my ($data) = @_;
|
||||||
|
|
||||||
|
# Go there and try to extract the binary distribution
|
||||||
|
# tarball which we created in the previous step.
|
||||||
|
#
|
||||||
|
chdir($data->{PAXROOT_DIR});
|
||||||
|
my $tarfile = "$data->{OLDWD}/$data->{BINARY_TARBALL_FILENAME}";
|
||||||
|
|
||||||
|
if(system("tar -xzf $tarfile")) {
|
||||||
|
abort($data, "Unable to extract $tarfile inside $data->{PAXROOT_DIR}");
|
||||||
|
}
|
||||||
|
|
||||||
|
# Rename it to what we want it to be in the
|
||||||
|
# installed /usr/local directory later on, i.e.
|
||||||
|
# mysql-<version>. Then create a symlink from
|
||||||
|
# mysql to mysql-<version>
|
||||||
|
#
|
||||||
|
rename($data->{BINARY_TARBALL_DIRECTORY}, "mysql-$data->{VERSION}");
|
||||||
|
symlink("mysql-$data->{VERSION}", "mysql");
|
||||||
|
|
||||||
|
|
||||||
|
# We create a bunch of symlinks in /usr/local/bin and
|
||||||
|
# /usr/local/share/man so that the end-user will not
|
||||||
|
# have to adjust PATH and MANPATH to include the
|
||||||
|
# /usr/local/mysql/bin and man directories.
|
||||||
|
#
|
||||||
|
system("mkdir -p $_") foreach qw(bin share/man);
|
||||||
|
|
||||||
|
|
||||||
|
# First create the symlinks in the bin directory
|
||||||
|
#
|
||||||
|
chdir("bin");
|
||||||
|
symlink("../mysql/bin/$_", "$_") foreach (grep {$_ !~ /^\.+$/} DirHandle->new("../mysql/bin")->read());
|
||||||
|
|
||||||
|
|
||||||
|
# Now include the man pages. Two problems here:
|
||||||
|
# 1.) the make_binary_distribution script does not seem
|
||||||
|
# to include the man pages, so we have to copy them over
|
||||||
|
# now.
|
||||||
|
# 2.) The man pages could be in different sections, so
|
||||||
|
# we have to recursively copy *and* symlink them.
|
||||||
|
#
|
||||||
|
|
||||||
|
# First find out what's there in the source distribution.
|
||||||
|
# Store the names of the manpages in anonymous
|
||||||
|
# arrays which in turn will be stored in a hash, using
|
||||||
|
# the section numbers as hash keys.
|
||||||
|
#
|
||||||
|
chdir($data->{OLDWD});
|
||||||
|
my %man_sections;
|
||||||
|
foreach my $manpage (grep {$_ =~ /^.+\.(\d+)$/} DirHandle->new("man")->read()) {
|
||||||
|
|
||||||
|
my ($section) = $manpage =~ /\.(\d+)$/;
|
||||||
|
|
||||||
|
$man_sections{$section} ||= [];
|
||||||
|
push @{$man_sections{$section}}, "$manpage";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Now iterate through the sections and man pages,
|
||||||
|
# and copy/symlink the man pages
|
||||||
|
#
|
||||||
|
chdir("$data->{PAXROOT_DIR}/share/man/");
|
||||||
|
|
||||||
|
foreach my $section (keys(%man_sections)) {
|
||||||
|
|
||||||
|
system("mkdir -p $data->{PAXROOT_DIR}/mysql/man/man$section/");
|
||||||
|
system("mkdir -p man$section");
|
||||||
|
chdir("man$section");
|
||||||
|
|
||||||
|
foreach my $manpage (@{$man_sections{$section}}) {
|
||||||
|
|
||||||
|
system("cp $data->{OLDWD}/man/$manpage $data->{PAXROOT_DIR}/mysql/man/man$section/");
|
||||||
|
symlink("../../../mysql/man/man$section/$manpage", $manpage)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
chdir("..");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Take the pax root directory, create a few auxiliary
|
||||||
|
# files and then pack everything up into a tarball
|
||||||
|
#
|
||||||
|
sub create_package {
|
||||||
|
|
||||||
|
my ($data) = @_;
|
||||||
|
|
||||||
|
# Create the resources directory in which all
|
||||||
|
# interesting files for this package will be stored
|
||||||
|
#
|
||||||
|
$data->{PKG_RESOURCES_DIR} = "$data->{PACKAGE_DIR}/Contents/Resources";
|
||||||
|
|
||||||
|
if (system("mkdir -p $data->{PKG_RESOURCES_DIR}")) {
|
||||||
|
abort("Unable to create package resources dir $data->{PKG_RESOURCES_DIR}");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Create the big archive with all the files using
|
||||||
|
# the pax tool
|
||||||
|
#
|
||||||
|
chdir($data->{PAXROOT_DIR});
|
||||||
|
if(system("pax -w . | gzip -c > $data->{PKG_RESOURCES_DIR}/mysql-$data->{VERSION}.pax.gz")) {
|
||||||
|
abort("Unable to create package pax file");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Create the "Bill Of Materials" (bom) file.
|
||||||
|
#
|
||||||
|
if(system("mkbom . $data->{PKG_RESOURCES_DIR}/mysql-$data->{VERSION}.bom")) {
|
||||||
|
abort("Unable to create package bom file");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Create the ".sizes" file with some information about the package
|
||||||
|
#
|
||||||
|
my $size_uncompressed = `du -sk $data->{PAXROOT_DIR} | cut -f 1`;
|
||||||
|
chomp($size_uncompressed);
|
||||||
|
|
||||||
|
my $size_compressed = `du -sk $data->{PACKAGE_DIR} | cut -f 1`;
|
||||||
|
chomp($size_compressed);
|
||||||
|
|
||||||
|
my $numfiles = `find /tmp/mysql-3.23.42-paxroot/ | wc -l`;
|
||||||
|
$numfiles--;
|
||||||
|
|
||||||
|
open(SIZESFILE, ">$data->{PKG_RESOURCES_DIR}/mysql-$data->{VERSION}.sizes") or abort("Unable to write open sizes file $data->{PKG_RESOURCES_DIR}/mysql-$data->{VERSION}.sizes");
|
||||||
|
print SIZESFILE "NumFiles $numfiles\n";
|
||||||
|
print SIZESFILE "InstalledSize $size_uncompressed\n";
|
||||||
|
print SIZESFILE "CompressedSize $size_compressed\n";
|
||||||
|
close(SIZESFILE);
|
||||||
|
|
||||||
|
|
||||||
|
# Create the ".info" file with more information abou the package.
|
||||||
|
#
|
||||||
|
open(INFOFILE, ">$data->{PKG_RESOURCES_DIR}/mysql-$data->{VERSION}.info") or abort("Unable to write open sizes file $data->{PKG_RESOURCES_DIR}/mysql-$data->{VERSION}.info");
|
||||||
|
my $infodata = join("", <DATA>);
|
||||||
|
$infodata =~ s/<%(.+?)%>/$data->{$1}/eg;
|
||||||
|
abort("Unable to get info file data from __DATA__!") unless ($infodata =~ /\w+/);
|
||||||
|
print INFOFILE $infodata;
|
||||||
|
close(INFOFILE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Finally, create the .tar.gz file for the package,
|
||||||
|
# this is our end result
|
||||||
|
#
|
||||||
|
chdir($data->{PACKAGE_DIR});
|
||||||
|
chdir("..");
|
||||||
|
|
||||||
|
$data->{PACKAGE_TARBALL_FILENAME} = "$data->{PACKAGE_NAME}.tar.gz";
|
||||||
|
|
||||||
|
if(system("tar -czf $data->{OLDWD}/$data->{PACKAGE_TARBALL_FILENAME} $data->{PACKAGE_NAME}")) {
|
||||||
|
abort("Unable to create package tar file $data->{OLDWD}/$data->{PACKAGE_TARBALL_FILENAME}");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Abort with an error message
|
||||||
|
#
|
||||||
|
sub abort {
|
||||||
|
|
||||||
|
my ($data, $errormessage) = @_;
|
||||||
|
|
||||||
|
my ($caller) = (caller(1))[3];
|
||||||
|
$caller =~ s/^main:://;
|
||||||
|
|
||||||
|
print "*** Error: $caller(): $errormessage\n";
|
||||||
|
|
||||||
|
exit 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Output informative messages
|
||||||
|
#
|
||||||
|
sub debug {
|
||||||
|
|
||||||
|
my ($data, $message) = @_;
|
||||||
|
|
||||||
|
my ($caller) = (caller(1))[3];
|
||||||
|
$caller =~ s/^main:://;
|
||||||
|
|
||||||
|
print "*** Info: $caller(): $message\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Remove temporary items
|
||||||
|
#
|
||||||
|
sub cleanup {
|
||||||
|
|
||||||
|
my ($data) = @_;
|
||||||
|
|
||||||
|
chdir($data->{OLDWD});
|
||||||
|
|
||||||
|
system("rm -rf $data->{PACKAGE_DIR}");
|
||||||
|
system("rm -rf $data->{PAXROOT_DIR}");
|
||||||
|
system("rm $data->{BINARY_TARBALL_FILENAME}");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
__DATA__
|
||||||
|
Title MySQL
|
||||||
|
Version <%VERSION%>
|
||||||
|
Description The MySQL database server in a convenient Mac OS X package. Some additional configuration is necessary, please see http://www.entropy.ch/software/macosx/mysql/
|
||||||
|
DefaultLocation /usr/local
|
||||||
|
Diskname (null)
|
||||||
|
DeleteWarning
|
||||||
|
NeedsAuthorization YES
|
||||||
|
DisableStop NO
|
||||||
|
UseUserMask NO
|
||||||
|
Application NO
|
||||||
|
Relocatable NO
|
||||||
|
Required NO
|
||||||
|
InstallOnly NO
|
||||||
|
RequiresReboot NO
|
||||||
|
InstallFat NO
|
@ -1,159 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# make_mysql_pkg.sh
|
|
||||||
#
|
|
||||||
# This script creates a Mac OS X installation package
|
|
||||||
# for Apple's Installer application.
|
|
||||||
#
|
|
||||||
# To use it:
|
|
||||||
#
|
|
||||||
# 1.) unpack the MySQL source tarball
|
|
||||||
# 2.) cd to into the resulting directory and stay there for the next steps
|
|
||||||
# 3.) "configure" the source (preferably with --mandir=/usr/local/share/man)
|
|
||||||
# 4.) "make" the package
|
|
||||||
# 5.) invoke this script with superuser privileges (sudo or in a root shell)
|
|
||||||
#
|
|
||||||
# Written by Marc Liyanage (http://www.entropy.ch)
|
|
||||||
#
|
|
||||||
# History:
|
|
||||||
#
|
|
||||||
# When Who What
|
|
||||||
# -------------------------------------------------------------
|
|
||||||
# 2001-09-13 Marc Liyanage First version
|
|
||||||
|
|
||||||
|
|
||||||
# Find the version number of this particular MySQL build
|
|
||||||
#
|
|
||||||
OLDWD=`pwd`
|
|
||||||
VERSION_H_FILE=$OLDWD/include/mysql_version.h
|
|
||||||
|
|
||||||
if [ ! -e $VERSION_H_FILE ]
|
|
||||||
then
|
|
||||||
echo $VERSION_H_FILE not found, make sure you are in the mysql source dir
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
MYSQLVERSION=`egrep 'MYSQL_SERVER_VERSION' $VERSION_H_FILE | perl -e '$_ = <>; $_ =~ /"(.+?)"/; print $1'`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# We will temporarily rename /usr/local to this name
|
|
||||||
# and then mkdir a new, empty /usr/local
|
|
||||||
#
|
|
||||||
LOCAL_TMPDIR=/usr/local.tmp
|
|
||||||
|
|
||||||
# At the end, we'll keep our temporary /usr/local
|
|
||||||
# to this name
|
|
||||||
#
|
|
||||||
LOCAL_BACKUPDIR=/usr/local.mysql-package
|
|
||||||
|
|
||||||
# Where do we create the package directory
|
|
||||||
#
|
|
||||||
PKG_DIR=/tmp/mysql-$MYSQLVERSION.pkg
|
|
||||||
|
|
||||||
# Where is the resources directory within the
|
|
||||||
# package directory
|
|
||||||
#
|
|
||||||
PKG_RESOURCES_DIR=$PKG_DIR/Contents/Resources
|
|
||||||
|
|
||||||
# Check if old stuff is in our way
|
|
||||||
#
|
|
||||||
if [ -e $LOCAL_BACKUPDIR ]
|
|
||||||
then
|
|
||||||
echo $LOCAL_BACKUPDIR exists, please remove first...
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e $LOCAL_TMPDIR ]
|
|
||||||
then
|
|
||||||
echo $LOCAL_TMPDIR exists, please remove first...
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e $PKG_DIR ]
|
|
||||||
then
|
|
||||||
echo $PKG_DIR exists, please remove first...
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Now create the package dir
|
|
||||||
#
|
|
||||||
mkdir -p $PKG_RESOURCES_DIR
|
|
||||||
|
|
||||||
# Move the existing /usr/local out of our way
|
|
||||||
#
|
|
||||||
mv /usr/local $LOCAL_TMPDIR
|
|
||||||
|
|
||||||
# Now create our new empty temporary /usr/local
|
|
||||||
#
|
|
||||||
mkdir /usr/local
|
|
||||||
|
|
||||||
# And install MySQL there
|
|
||||||
#
|
|
||||||
make install
|
|
||||||
|
|
||||||
|
|
||||||
# cd there so the next few commands will use it
|
|
||||||
# as base directory
|
|
||||||
#
|
|
||||||
cd /usr/local
|
|
||||||
|
|
||||||
# First, create the gzipped pax archive file
|
|
||||||
# which contains the actual files
|
|
||||||
#
|
|
||||||
pax -w . | gzip -c > $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.pax.gz
|
|
||||||
|
|
||||||
# Create the bom ("Bill Of Materials") file
|
|
||||||
#
|
|
||||||
mkbom . $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.bom
|
|
||||||
|
|
||||||
# Create the sizes file with the package space
|
|
||||||
# requirement numbers and file count
|
|
||||||
#
|
|
||||||
SIZE_UNCOMPRESSED=`du -sk /usr/local | cut -f 1`
|
|
||||||
SIZE_COMPRESSED=`du -sk $PKG_DIR | cut -f 1`
|
|
||||||
NUMFILES=`find /usr/local | wc -l | perl -e '$_ = <>; $_ =~ /\s+(\d+)/; print $1 - 1'`
|
|
||||||
|
|
||||||
echo NumFiles $NUMFILES >> $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.sizes
|
|
||||||
echo InstalledSize $SIZE_UNCOMPRESSED >> $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.sizes
|
|
||||||
echo CompressedSize $SIZE_COMPRESSED >> $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.sizes
|
|
||||||
|
|
||||||
|
|
||||||
# Finally create the info file which drives the "Installer" application
|
|
||||||
#
|
|
||||||
cat >$PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.info <<- EOF
|
|
||||||
Title MySQL
|
|
||||||
Version $MYSQLVERSION
|
|
||||||
Description The MySQL database server in a convenient Mac OS X package. Some additional configuration is necessary, please see http://www.entropy.ch/software/macosx/mysql/
|
|
||||||
DefaultLocation /usr/local
|
|
||||||
Diskname (null)
|
|
||||||
DeleteWarning
|
|
||||||
NeedsAuthorization YES
|
|
||||||
DisableStop NO
|
|
||||||
UseUserMask NO
|
|
||||||
Application NO
|
|
||||||
Relocatable NO
|
|
||||||
Required NO
|
|
||||||
InstallOnly NO
|
|
||||||
RequiresReboot NO
|
|
||||||
InstallFat NO
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Create a .tar.gz file for the package directory
|
|
||||||
#
|
|
||||||
cd $PKG_DIR
|
|
||||||
cd ..
|
|
||||||
DIRNAME=`dirname $PKG_DIR`
|
|
||||||
BASENAME=`basename $PKG_DIR`
|
|
||||||
FILENAME=$BASENAME.tar.gz
|
|
||||||
tar -cvzf $FILENAME $BASENAME
|
|
||||||
|
|
||||||
# Move our temporary /usr/local out of the way
|
|
||||||
# and the original one back
|
|
||||||
#
|
|
||||||
mv /usr/local $LOCAL_BACKUPDIR
|
|
||||||
mv $LOCAL_TMPDIR /usr/local
|
|
||||||
|
|
||||||
echo output package is in $DIRNAME/$FILENAME
|
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user