From rea-fbsd@codelabs.ru  Mon Dec 29 15:35:01 2008
Return-Path: <rea-fbsd@codelabs.ru>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6D59D106564A
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 29 Dec 2008 15:35:01 +0000 (UTC)
	(envelope-from rea-fbsd@codelabs.ru)
Received: from 0.mx.codelabs.ru (0.mx.codelabs.ru [144.206.177.45])
	by mx1.freebsd.org (Postfix) with ESMTP id F1D808FC08
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 29 Dec 2008 15:34:55 +0000 (UTC)
	(envelope-from rea-fbsd@codelabs.ru)
Received: from phoenix.codelabs.ru (ppp85-141-64-192.pppoe.mtu-net.ru [85.141.64.192])
	by 0.mx.codelabs.ru with esmtps (TLSv1:CAMELLIA256-SHA:256)
	id 1LHK8s-000J4h-AL for FreeBSD-gnats-submit@freebsd.org; Mon, 29 Dec 2008 18:34:54 +0300
Message-Id: <20081229153454.8BEC8B8019@phoenix.codelabs.ru>
Date: Mon, 29 Dec 2008 18:34:54 +0300 (MSK)
From: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
Reply-To: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [patch] databases/mysql41-server: update to 4.1.25
X-Send-Pr-Version: 3.113
X-GNATS-Notify: ale@freebsd.org, adaugherity@tamu.edu, eugen@kuzbass.ru

>Number:         130023
>Category:       ports
>Synopsis:       [patch] databases/mysql41-server: update to 4.1.25
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    ale
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Dec 29 15:40:02 UTC 2008
>Closed-Date:    Tue Dec 30 14:04:44 UTC 2008
>Last-Modified:  Tue Dec 30 14:10:01 UTC 2008
>Originator:     Eygene Ryabinkin
>Release:        FreeBSD 7.1-PRERELEASE amd64
>Organization:
Code Labs
>Environment:

System: FreeBSD 7.1-PRERELEASE amd64

>Description:

Although MySQL 4.1 branch is in the externded support phase, i.e. no
tarballs are generated since 4.1.22, improvements and security patches
are still backported from the modern releases.

While evaluating some security bugs (ports/129978, ports/129979) I had
found that this is exceptionally hard to backport the fixes for the
security vulnerabilities to 4.1.22 and to test them with the official
MySQL testsuite.  So, as was noted in the ports/127731, we can just
create 4.1.25 tarball from the Bazaar repository and host it somewhere.

I did exactly this.  I can continue to host the tarball at inse.ru, but
it will be better (if the update in this PR will be committed, of
course) to mirror it at freebsd.org and possibly somewhere else.

>How-To-Repeat:

http://dev.mysql.com/doc/refman/4.1/en/news-4-1-25.html

>Fix:

The following patch upgrades the port to 4.1.25:
--- mysql41-upgrade-to-4.1.25.diff begins here ---
From 0c1bc8ccc00026bc68791ad300a7fccdd896eb12 Mon Sep 17 00:00:00 2001
From: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
Date: Mon, 29 Dec 2008 18:02:22 +0300

This is not an official distribution, but rather tarball exported from
the official Bazaar repository.  4.1.22 has many security
vulnerabilities that are rather hard to backport, so it is just easier
to host the semi-official tarball at the FreeBSD and 3rd-party servers
and to have all fixes and enhancements since 4.1.22.

Signed-off-by: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
---
 databases/mysql41-server/Makefile                  |   22 +----
 databases/mysql41-server/distinfo                  |    6 +-
 .../mysql41-server/files/patch-Docs::Makefile.in   |   14 ++--
 .../mysql41-server/files/patch-sql::mysqld.cc      |   21 -----
 .../mysql41-server/files/patch-sql_mysql_priv.h    |   11 ---
 .../mysql41-server/files/patch-sql_sql_parse.cc    |   82 --------------------
 databases/mysql41-server/pkg-plist.client          |    2 +-
 7 files changed, 15 insertions(+), 143 deletions(-)
 delete mode 100644 databases/mysql41-server/files/patch-sql_mysql_priv.h
 delete mode 100644 databases/mysql41-server/files/patch-sql_sql_parse.cc

diff --git a/databases/mysql41-server/Makefile b/databases/mysql41-server/Makefile
index 1754134..16e5b7c 100644
--- a/databases/mysql41-server/Makefile
+++ b/databases/mysql41-server/Makefile
@@ -6,11 +6,10 @@
 #
 
 PORTNAME?=	mysql
-PORTVERSION=	4.1.22
-PORTREVISION?=	1
+PORTVERSION=	4.1.25
+PORTREVISION?=	0
 CATEGORIES=	databases
-MASTER_SITES=	${MASTER_SITE_MYSQL}
-MASTER_SITE_SUBDIR=	MySQL-4.1
+MASTER_SITES=	http://inse.ru/fbsd/
 PKGNAMESUFFIX?=	-server
 
 MAINTAINER=	ale@FreeBSD.org
@@ -18,6 +17,7 @@ COMMENT?=	Multithreaded SQL database (server)
 
 SLAVEDIRS=	databases/mysql41-client
 USE_AUTOTOOLS=	libtool:15
+USE_BZIP2=	yes
 
 CONFIGURE_ARGS=	--localstatedir=/var/db/mysql \
 		--without-debug \
@@ -100,11 +100,6 @@ PLIST_SUB+=	NDB=""
 PLIST_SUB+=	NDB="@comment "
 .endif
 
-MAN1=		myisamchk.1 myisamlog.1 myisampack.1 mysqld.1 \
-		mysqld_safe.1 mysql.server.1 perror.1 replace.1
-
-MAN8=		mysqld.8
-
 INFO=		mysql
 
 pre-fetch:
@@ -131,7 +126,6 @@ post-patch:
 	@${REINPLACE_CMD} -e "s|all: config.h|all: config.h all-local|g" ${WRKSRC}/Makefile.in
 	@${REINPLACE_CMD} -e "s|bin_SCRIPTS =|bin_SCRIPTS = @server_scripts@ mysql_create_system_tables|g" ${WRKSRC}/scripts/Makefile.in
 	@${REINPLACE_CMD} -e "s|dist_pkgdata_DATA =|dist_pkgdata_DATA = fill_help_tables.sql|g" ${WRKSRC}/scripts/Makefile.in
-	@${REINPLACE_CMD} -e "s|man1_MANS =|man1_MANS = ${MAN1}|g;s|man8_MANS =|man8_MANS = ${MAN8}|g" ${WRKSRC}/man/Makefile.in
 	@${REINPLACE_CMD} -e "s|install-data-am: install-pkgincludeHEADERS|install-data-am:|g" ${WRKSRC}/include/Makefile.in
 	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/mysys/default.c
 .if defined(WITH_PROC_SCOPE_PTH)
@@ -150,9 +144,6 @@ LATEST_LINK=	mysql41-client
 
 CONFLICTS=	mysql-client-3.* mysql-client-4.[02-9].* mysql-client-5.* mysql-client-6.*
 
-MAN1=		mysql_config.1 mysql.1 mysqladmin.1 mysqlbinlog.1 \
-		mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlshow.1
-
 USE_LDCONFIG=	${PREFIX}/lib/mysql
 
 CONFIGURE_ARGS+=--without-server
@@ -163,7 +154,6 @@ post-patch:
 	@${REINPLACE_CMD} -e "s|all: config.h|all: config.h all-local|g" ${WRKSRC}/Makefile.in
 	@${REINPLACE_CMD} -e "s|bin_SCRIPTS =|bin_SCRIPTS = mysql_config mysql_fix_privilege_tables mysqlbug|g" ${WRKSRC}/scripts/Makefile.in
 	@${REINPLACE_CMD} -e "s|dist_pkgdata_DATA =|dist_pkgdata_DATA = mysql_fix_privilege_tables.sql|g" ${WRKSRC}/scripts/Makefile.in
-	@${REINPLACE_CMD} -e "s|man1_MANS =|man1_MANS = ${MAN1}|g" ${WRKSRC}/man/Makefile.in
 	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/mysys/default.c
 .if defined(WITH_PROC_SCOPE_PTH)
 	@${REINPLACE_CMD} -e "s|PTHREAD_SCOPE_SYSTEM|PTHREAD_SCOPE_PROCESS|g" ${WRKSRC}/tools/mysqlmanager.c
@@ -184,9 +174,6 @@ LATEST_LINK=	mysql41-scripts
 
 CONFLICTS=	mysql-scripts-3.* mysql-scripts-4.[02-9].* mysql-scripts-5.* mysql-scripts-6.*
 
-MAN1=		msql2mysql.1 mysql_zap.1 mysqlaccess.1 mysqlhotcopy.1 \
-		mysqld_multi.1 mysql_fix_privilege_tables.1
-
 SCRIPTS=	msql2mysql mysql_fix_extensions mysql_setpermission \
 		mysql_secure_installation mysql_zap mysqlaccess \
 		mysql_convert_table_format mysql_find_rows mysqlhotcopy \
@@ -196,7 +183,6 @@ post-patch:
 	@${REINPLACE_CMD} -e "s|SUBDIRS =|SUBDIRS = scripts @man_dirs@|g" ${WRKSRC}/Makefile.in
 	@${REINPLACE_CMD} -e "s|bin_SCRIPTS =|bin_SCRIPTS = ${SCRIPTS}|g" ${WRKSRC}/scripts/Makefile.in
 	@${REINPLACE_CMD} -e "s|install-exec-am install-data-am|install-exec-am|g" ${WRKSRC}/scripts/Makefile.in
-	@${REINPLACE_CMD} -e "s|man1_MANS =|man1_MANS = ${MAN1}|g" ${WRKSRC}/man/Makefile.in
 .endif
 .endif
 # Common part
diff --git a/databases/mysql41-server/distinfo b/databases/mysql41-server/distinfo
index b7e9ff6..6e3fcda 100644
--- a/databases/mysql41-server/distinfo
+++ b/databases/mysql41-server/distinfo
@@ -1,3 +1,3 @@
-MD5 (mysql-4.1.22.tar.gz) = 37b4479951fa0cf052269d27c41ca200
-SHA256 (mysql-4.1.22.tar.gz) = 6bd2436fd0f233bb1518e15975cb4e9fa4434acb53c3c3cd7d4648219abf58e9
-SIZE (mysql-4.1.22.tar.gz) = 17761101
+MD5 (mysql-4.1.25.tar.bz2) = 77f9226fc732c25e144f8014d9f5f8c1
+SHA256 (mysql-4.1.25.tar.bz2) = 65498b23f80f51473ca0e5df6113b0c075c7d19b1205b5c0677e6e1f4e4bb8c4
+SIZE (mysql-4.1.25.tar.bz2) = 11487898
diff --git a/databases/mysql41-server/files/patch-Docs::Makefile.in b/databases/mysql41-server/files/patch-Docs::Makefile.in
index 803cbea..ed4333e 100644
--- a/databases/mysql41-server/files/patch-Docs::Makefile.in
+++ b/databases/mysql41-server/files/patch-Docs::Makefile.in
@@ -1,15 +1,15 @@
---- Docs/Makefile.in.orig	Wed Nov 30 21:37:04 2005
-+++ Docs/Makefile.in	Thu Dec 22 16:03:51 2005
-@@ -324,7 +324,7 @@
- 			INSTALL-BINARY ../support-files/MacOSX/ReadMe.txt
- 
- GT = $(srcdir)/Support/generate-text-files.pl
+--- Docs/Makefile.in.orig	2008-12-29 16:52:20.000000000 +0300
++++ Docs/Makefile.in	2008-12-29 17:25:03.000000000 +0300
+@@ -334,7 +334,7 @@
+ vio_libs = @vio_libs@
+ zlib_dir = @zlib_dir@
+ EXTRA_DIST = mysql.info INSTALL-BINARY
 -all: all-am
 +all:
  
  .SUFFIXES:
  $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-@@ -410,7 +410,7 @@
+@@ -419,7 +419,7 @@
  install-data: install-data-am
  uninstall: uninstall-am
  
diff --git a/databases/mysql41-server/files/patch-sql::mysqld.cc b/databases/mysql41-server/files/patch-sql::mysqld.cc
index 69c124f..e79f985 100644
--- a/databases/mysql41-server/files/patch-sql::mysqld.cc
+++ b/databases/mysql41-server/files/patch-sql::mysqld.cc
@@ -9,24 +9,3 @@
  #include <syslog.h>
  #ifdef NEED_SYS_SYSLOG_H
  #include <sys/syslog.h>
---- sql/mysqld.cc	2007-11-29 10:52:36 +0000
-+++ sql/mysqld.cc	2008-02-29 09:55:00 +0000
-@@ -390,6 +390,7 @@
- char compiled_default_collation_name[]= MYSQL_DEFAULT_COLLATION_NAME;
- char *language_ptr, *default_collation_name, *default_character_set_name;
- char mysql_data_home_buff[2], *mysql_data_home=mysql_real_data_home;
-+char mysql_unpacked_real_data_home[FN_REFLEN];
- struct passwd *user_info;
- char server_version[SERVER_VERSION_LENGTH];
- char *mysqld_unix_port, *opt_mysql_tmpdir;
-@@ -6896,6 +6897,9 @@
-     pos[1]= 0;
-   }
-   convert_dirname(mysql_real_data_home,mysql_real_data_home,NullS);
-+  (void) fn_format(buff, mysql_real_data_home, "", "",
-+                   (MY_RETURN_REAL_PATH|MY_RESOLVE_SYMLINKS));
-+  (void) unpack_dirname(mysql_unpacked_real_data_home, buff);
-   convert_dirname(language,language,NullS);
-   (void) my_load_path(mysql_home,mysql_home,""); // Resolve current dir
-   (void) my_load_path(mysql_real_data_home,mysql_real_data_home,mysql_home);
-
diff --git a/databases/mysql41-server/files/patch-sql_mysql_priv.h b/databases/mysql41-server/files/patch-sql_mysql_priv.h
deleted file mode 100644
index a02b313..0000000
--- a/databases/mysql41-server/files/patch-sql_mysql_priv.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- sql/mysql_priv.h	2007-11-09 12:05:01 +0000
-+++ sql/mysql_priv.h	2008-02-29 09:55:00 +0000
-@@ -890,6 +890,7 @@
- extern time_t start_time;
- extern char *mysql_data_home,server_version[SERVER_VERSION_LENGTH],
- 	    mysql_real_data_home[], *opt_mysql_tmpdir, mysql_charsets_dir[],
-+	    mysql_unpacked_real_data_home[],
-             def_ft_boolean_syntax[sizeof(ft_boolean_syntax)];
- #define mysql_tmpdir (my_tmpdir(&mysql_tmpdir_list))
- extern MY_TMPDIR mysql_tmpdir_list;
-
diff --git a/databases/mysql41-server/files/patch-sql_sql_parse.cc b/databases/mysql41-server/files/patch-sql_sql_parse.cc
deleted file mode 100644
index 418d6d2..0000000
--- a/databases/mysql41-server/files/patch-sql_sql_parse.cc
+++ /dev/null
@@ -1,82 +0,0 @@
---- sql/sql_parse.cc	2007-06-12 12:47:36 +0000
-+++ sql/sql_parse.cc	2008-02-29 09:55:00 +0000
-@@ -65,7 +65,8 @@
- 			       const char *table_name);
-              
- static TABLE_LIST* get_table_by_alias(TABLE_LIST* tl, const char* db,
--  const char* alias);      
-+  const char* alias);
-+static bool test_if_data_home_dir(const char *dir);
- 
- const char *any_db="*any*";	// Special symbol for check_access
- 
-@@ -2531,6 +2532,20 @@
-                    "INDEX DIRECTORY option ignored");
-     create_info.data_file_name= create_info.index_file_name= NULL;
- #else
-+
-+    if (test_if_data_home_dir(lex->create_info.data_file_name))
-+    {
-+      my_error(ER_WRONG_ARGUMENTS,MYF(0),"DATA DIRECORY");
-+      res= -1;
-+      break;
-+    }
-+    if (test_if_data_home_dir(lex->create_info.index_file_name))
-+    {
-+      my_error(ER_WRONG_ARGUMENTS,MYF(0),"INDEX DIRECORY");
-+      res= -1;
-+      break;
-+    }
-+
-     /* Fix names if symlinked tables */
-     if (append_file_to_dir(thd, &create_info.data_file_name,
- 			   create_table->real_name) ||
-@@ -5920,3 +5935,47 @@
-     return negated;
-   return new Item_func_not(expr);
- }
-+
-+
-+/*
-+  Check if path does not contain mysql data home directory
-+
-+  SYNOPSIS
-+    test_if_data_home_dir()
-+    dir                     directory
-+    conv_home_dir           converted data home directory
-+    home_dir_len            converted data home directory length
-+
-+  RETURN VALUES
-+    0	ok
-+    1	error  
-+*/
-+
-+static bool test_if_data_home_dir(const char *dir)
-+{
-+  char path[FN_REFLEN], conv_path[FN_REFLEN];
-+  uint dir_len, home_dir_len= strlen(mysql_unpacked_real_data_home);
-+  DBUG_ENTER("test_if_data_home_dir");
-+
-+  if (!dir)
-+    DBUG_RETURN(0);
-+
-+  (void) fn_format(path, dir, "", "",
-+                   (MY_RETURN_REAL_PATH|MY_RESOLVE_SYMLINKS));
-+  dir_len= unpack_dirname(conv_path, dir);
-+
-+  if (home_dir_len <= dir_len)
-+  {
-+    if (lower_case_file_system)
-+    {
-+      if (!my_strnncoll(default_charset_info, (const uchar*) conv_path,
-+                        home_dir_len,
-+                        (const uchar*) mysql_unpacked_real_data_home,
-+                        home_dir_len))
-+        DBUG_RETURN(1);
-+    }
-+    else if (!memcmp(conv_path, mysql_unpacked_real_data_home, home_dir_len))
-+      DBUG_RETURN(1);
-+  }
-+  DBUG_RETURN(0);
-+}
-
diff --git a/databases/mysql41-server/pkg-plist.client b/databases/mysql41-server/pkg-plist.client
index 94d6384..556634e 100644
--- a/databases/mysql41-server/pkg-plist.client
+++ b/databases/mysql41-server/pkg-plist.client
@@ -11,6 +11,7 @@ bin/mysqlmanager-pwgen
 bin/mysqlmanagerc
 bin/mysqlshow
 bin/mysqltest
+include/mysql/abi_check
 include/mysql/errmsg.h
 include/mysql/keycache.h
 include/mysql/m_ctype.h
@@ -25,7 +26,6 @@ include/mysql/my_list.h
 include/mysql/my_net.h
 include/mysql/my_no_pthread.h
 include/mysql/my_pthread.h
-include/mysql/my_semaphore.h
 include/mysql/my_sys.h
 include/mysql/my_xml.h
 include/mysql/mysql.h
-- 
1.6.0.5
--- mysql41-upgrade-to-4.1.25.diff ends here ---

I had tested its compilability, run the whole testsuite and tested good
packaging for databases/mysql41-*.  Andrew, Eugene, Alex, anyone -- if
you'll be so kind to test this update, it will be very good.

This patch should fix ports/129979 from the mysql-4.1 side.
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->ale 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Mon Dec 29 15:40:16 UTC 2008 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=130023 

From: Eugene Grosbein <eugen@kuzbass.ru>
To: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
Cc: FreeBSD-gnats-submit@FreeBSD.org
Subject: Re: ports/130023: [patch] databases/mysql41-server: update to 4.1.25
Date: Tue, 30 Dec 2008 12:17:42 +0700

 Eygene Ryabinkin wrote:
 
 > I had tested its compilability, run the whole testsuite and tested good
 > packaging for databases/mysql41-*.  Andrew, Eugene, Alex, anyone -- if
 > you'll be so kind to test this update, it will be very good.
 > 
 > This patch should fix ports/129979 from the mysql-4.1 side.
 > >Release-Note:
 > >Audit-Trail:
 > >Unformatted:
 
 H!
 
 The patch applies OK to fresh ports tree but building of the port
 fails for me at 'configure' stage:
 
 checking for BerkeleyDB... searching...
 Compiling Berekeley DB in 'bdb'
 checking for Innodb... Using Innodb
 checking for aio_read in -lrt... no
 checking for example storage engine... no
 checking for archive storage engine... no
 checking for csv storage engine... no
 checking for blackhole storage engine... no
 checking for NDB Cluster... Not using NDB Cluster
 CONFIGURING FOR BERKELEY DB
 ../.././bdb/dist/configure: Can't open ../.././bdb/dist/configure: No such
 file
 or directory
 configure: error: could not configure Berkeley DB
 ===>  Script "configure" failed unexpectedly.
 Please report the problem to ale@FreeBSD.org [maintainer] and attach the
 "/home/ports/databases/mysql41-server/work/mysql-4.1.25/config.log" including
 the output of the failure of your make command. Also, it might be a good idea
 to provide an overview of all packages installed on your system (e.g. an `ls
 /var/db/pkg`).
 *** Error code 1
 
 Stop in /home/ports/databases/mysql41-server.
 
 Note I've no any version of BDB other than in base system,
 e.g. no BDB ports installed. Here is FreeBSD-6.4 PRERELEASE.
 
 Eugene Grosbein

From: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
To: Eugene Grosbein <eugen@kuzbass.ru>
Cc: bug-followup@FreeBSD.org
Subject: Re: ports/130023: [patch] databases/mysql41-server: update to
	4.1.25
Date: Tue, 30 Dec 2008 12:07:17 +0300

 Eugene, good day.
 
 Tue, Dec 30, 2008 at 12:17:42PM +0700, Eugene Grosbein wrote:
 > The patch applies OK to fresh ports tree but building of the port
 > fails for me at 'configure' stage:
 >=20
 > checking for BerkeleyDB... searching...
 > Compiling Berekeley DB in 'bdb'
 > checking for Innodb... Using Innodb
 > checking for aio_read in -lrt... no
 > checking for example storage engine... no
 > checking for archive storage engine... no
 > checking for csv storage engine... no
 > checking for blackhole storage engine... no
 > checking for NDB Cluster... Not using NDB Cluster
 > CONFIGURING FOR BERKELEY DB
 > ../.././bdb/dist/configure: Can't open ../.././bdb/dist/configure: No such
 > file
 > or directory
 > configure: error: could not configure Berkeley DB
 
 OK, I had tested the new ports only for amd64 and the variant for i386
 includes Berkeley DB stuff that I missed.  I had created configure
 script for the bundled BDB and fixed some rough places.  The following
 patch is the reworked variant of the original upgrade patch.  Basically,
 it just changes 'distinfo' contents -- all other stuff was done in the
 tarball.  You should wipe out the old tarball and download the new one,
 possibly 'make fetch' will do it automatically because it will notice
 the difference in the tarball size.
 
 Now I had tested the port both for amd64 and i386 on 7.x.  It compiles
 and packages fine, at least for me.  Please, try it again.
 
 The new distinfo contents follow (you can drop them over the old
 patched variant and proceed):
 -----
 MD5 (mysql-4.1.25.tar.bz2) =3D 884fb8a3b21951ecd2b07b0a1781afe0
 SHA256 (mysql-4.1.25.tar.bz2) =3D 827198b5fe71dd624b5afb8a9b160c22004c50d38=
 e79d23f363358901197ac43
 SIZE (mysql-4.1.25.tar.bz2) =3D 11712509
 -----
 
 New variant of the original patch;
 --- mysql41-upgrade-to-4.1.25.diff begins here ---
 =46rom f43dcc05e7668c4d43288791e744c452a9142797 Mon Sep 17 00:00:00 2001
 =46rom: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
 Date: Mon, 29 Dec 2008 18:02:22 +0300
 Subject: [PATCH] databases/mysql41-*: upgrade to 4.1.25
 
 This is not an official distribution, but rather tarball exported from
 the official Bazaar repository.  4.1.22 has many security
 vulnerabilities that are rather hard to backport, so it is just easier
 to host the semi-official tarball at the FreeBSD and 3rd-party servers
 and to have all fixes and enhancements since 4.1.22.
 
 Signed-off-by: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
 ---
  databases/mysql41-server/Makefile                  |   22 +----
  databases/mysql41-server/distinfo                  |    6 +-
  .../mysql41-server/files/patch-Docs::Makefile.in   |   14 ++--
  .../mysql41-server/files/patch-sql::mysqld.cc      |   21 -----
  .../mysql41-server/files/patch-sql_mysql_priv.h    |   11 ---
  .../mysql41-server/files/patch-sql_sql_parse.cc    |   82 ----------------=
 ----
  databases/mysql41-server/pkg-plist.client          |    2 +-
  7 files changed, 15 insertions(+), 143 deletions(-)
  delete mode 100644 databases/mysql41-server/files/patch-sql_mysql_priv.h
  delete mode 100644 databases/mysql41-server/files/patch-sql_sql_parse.cc
 
 diff --git a/databases/mysql41-server/Makefile b/databases/mysql41-server/M=
 akefile
 index 1754134..16e5b7c 100644
 --- a/databases/mysql41-server/Makefile
 +++ b/databases/mysql41-server/Makefile
 @@ -6,11 +6,10 @@
  #
 =20
  PORTNAME?=3D	mysql
 -PORTVERSION=3D	4.1.22
 -PORTREVISION?=3D	1
 +PORTVERSION=3D	4.1.25
 +PORTREVISION?=3D	0
  CATEGORIES=3D	databases
 -MASTER_SITES=3D	${MASTER_SITE_MYSQL}
 -MASTER_SITE_SUBDIR=3D	MySQL-4.1
 +MASTER_SITES=3D	http://inse.ru/fbsd/
  PKGNAMESUFFIX?=3D	-server
 =20
  MAINTAINER=3D	ale@FreeBSD.org
 @@ -18,6 +17,7 @@ COMMENT?=3D	Multithreaded SQL database (server)
 =20
  SLAVEDIRS=3D	databases/mysql41-client
  USE_AUTOTOOLS=3D	libtool:15
 +USE_BZIP2=3D	yes
 =20
  CONFIGURE_ARGS=3D	--localstatedir=3D/var/db/mysql \
  		--without-debug \
 @@ -100,11 +100,6 @@ PLIST_SUB+=3D	NDB=3D""
  PLIST_SUB+=3D	NDB=3D"@comment "
  .endif
 =20
 -MAN1=3D		myisamchk.1 myisamlog.1 myisampack.1 mysqld.1 \
 -		mysqld_safe.1 mysql.server.1 perror.1 replace.1
 -
 -MAN8=3D		mysqld.8
 -
  INFO=3D		mysql
 =20
  pre-fetch:
 @@ -131,7 +126,6 @@ post-patch:
  	@${REINPLACE_CMD} -e "s|all: config.h|all: config.h all-local|g" ${WRKSRC=
 }/Makefile.in
  	@${REINPLACE_CMD} -e "s|bin_SCRIPTS =3D|bin_SCRIPTS =3D @server_scripts@ =
 mysql_create_system_tables|g" ${WRKSRC}/scripts/Makefile.in
  	@${REINPLACE_CMD} -e "s|dist_pkgdata_DATA =3D|dist_pkgdata_DATA =3D fill_=
 help_tables.sql|g" ${WRKSRC}/scripts/Makefile.in
 -	@${REINPLACE_CMD} -e "s|man1_MANS =3D|man1_MANS =3D ${MAN1}|g;s|man8_MANS=
  =3D|man8_MANS =3D ${MAN8}|g" ${WRKSRC}/man/Makefile.in
  	@${REINPLACE_CMD} -e "s|install-data-am: install-pkgincludeHEADERS|instal=
 l-data-am:|g" ${WRKSRC}/include/Makefile.in
  	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/mysys/default.c
  .if defined(WITH_PROC_SCOPE_PTH)
 @@ -150,9 +144,6 @@ LATEST_LINK=3D	mysql41-client
 =20
  CONFLICTS=3D	mysql-client-3.* mysql-client-4.[02-9].* mysql-client-5.* mys=
 ql-client-6.*
 =20
 -MAN1=3D		mysql_config.1 mysql.1 mysqladmin.1 mysqlbinlog.1 \
 -		mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlshow.1
 -
  USE_LDCONFIG=3D	${PREFIX}/lib/mysql
 =20
  CONFIGURE_ARGS+=3D--without-server
 @@ -163,7 +154,6 @@ post-patch:
  	@${REINPLACE_CMD} -e "s|all: config.h|all: config.h all-local|g" ${WRKSRC=
 }/Makefile.in
  	@${REINPLACE_CMD} -e "s|bin_SCRIPTS =3D|bin_SCRIPTS =3D mysql_config mysq=
 l_fix_privilege_tables mysqlbug|g" ${WRKSRC}/scripts/Makefile.in
  	@${REINPLACE_CMD} -e "s|dist_pkgdata_DATA =3D|dist_pkgdata_DATA =3D mysql=
 _fix_privilege_tables.sql|g" ${WRKSRC}/scripts/Makefile.in
 -	@${REINPLACE_CMD} -e "s|man1_MANS =3D|man1_MANS =3D ${MAN1}|g" ${WRKSRC}/=
 man/Makefile.in
  	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/mysys/default.c
  .if defined(WITH_PROC_SCOPE_PTH)
  	@${REINPLACE_CMD} -e "s|PTHREAD_SCOPE_SYSTEM|PTHREAD_SCOPE_PROCESS|g" ${W=
 RKSRC}/tools/mysqlmanager.c
 @@ -184,9 +174,6 @@ LATEST_LINK=3D	mysql41-scripts
 =20
  CONFLICTS=3D	mysql-scripts-3.* mysql-scripts-4.[02-9].* mysql-scripts-5.* =
 mysql-scripts-6.*
 =20
 -MAN1=3D		msql2mysql.1 mysql_zap.1 mysqlaccess.1 mysqlhotcopy.1 \
 -		mysqld_multi.1 mysql_fix_privilege_tables.1
 -
  SCRIPTS=3D	msql2mysql mysql_fix_extensions mysql_setpermission \
  		mysql_secure_installation mysql_zap mysqlaccess \
  		mysql_convert_table_format mysql_find_rows mysqlhotcopy \
 @@ -196,7 +183,6 @@ post-patch:
  	@${REINPLACE_CMD} -e "s|SUBDIRS =3D|SUBDIRS =3D scripts @man_dirs@|g" ${W=
 RKSRC}/Makefile.in
  	@${REINPLACE_CMD} -e "s|bin_SCRIPTS =3D|bin_SCRIPTS =3D ${SCRIPTS}|g" ${W=
 RKSRC}/scripts/Makefile.in
  	@${REINPLACE_CMD} -e "s|install-exec-am install-data-am|install-exec-am|g=
 " ${WRKSRC}/scripts/Makefile.in
 -	@${REINPLACE_CMD} -e "s|man1_MANS =3D|man1_MANS =3D ${MAN1}|g" ${WRKSRC}/=
 man/Makefile.in
  .endif
  .endif
  # Common part
 diff --git a/databases/mysql41-server/distinfo b/databases/mysql41-server/d=
 istinfo
 index b7e9ff6..98544fc 100644
 --- a/databases/mysql41-server/distinfo
 +++ b/databases/mysql41-server/distinfo
 @@ -1,3 +1,3 @@
 -MD5 (mysql-4.1.22.tar.gz) =3D 37b4479951fa0cf052269d27c41ca200
 -SHA256 (mysql-4.1.22.tar.gz) =3D 6bd2436fd0f233bb1518e15975cb4e9fa4434acb5=
 3c3c3cd7d4648219abf58e9
 -SIZE (mysql-4.1.22.tar.gz) =3D 17761101
 +MD5 (mysql-4.1.25.tar.bz2) =3D 884fb8a3b21951ecd2b07b0a1781afe0
 +SHA256 (mysql-4.1.25.tar.bz2) =3D 827198b5fe71dd624b5afb8a9b160c22004c50d3=
 8e79d23f363358901197ac43
 +SIZE (mysql-4.1.25.tar.bz2) =3D 11712509
 diff --git a/databases/mysql41-server/files/patch-Docs::Makefile.in b/datab=
 ases/mysql41-server/files/patch-Docs::Makefile.in
 index 803cbea..ed4333e 100644
 --- a/databases/mysql41-server/files/patch-Docs::Makefile.in
 +++ b/databases/mysql41-server/files/patch-Docs::Makefile.in
 @@ -1,15 +1,15 @@
 ---- Docs/Makefile.in.orig	Wed Nov 30 21:37:04 2005
 -+++ Docs/Makefile.in	Thu Dec 22 16:03:51 2005
 -@@ -324,7 +324,7 @@
 - 			INSTALL-BINARY ../support-files/MacOSX/ReadMe.txt
 -=20
 - GT =3D $(srcdir)/Support/generate-text-files.pl
 +--- Docs/Makefile.in.orig	2008-12-29 16:52:20.000000000 +0300
 ++++ Docs/Makefile.in	2008-12-29 17:25:03.000000000 +0300
 +@@ -334,7 +334,7 @@
 + vio_libs =3D @vio_libs@
 + zlib_dir =3D @zlib_dir@
 + EXTRA_DIST =3D mysql.info INSTALL-BINARY
  -all: all-am
  +all:
  =20
   .SUFFIXES:
   $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 -@@ -410,7 +410,7 @@
 +@@ -419,7 +419,7 @@
   install-data: install-data-am
   uninstall: uninstall-am
  =20
 diff --git a/databases/mysql41-server/files/patch-sql::mysqld.cc b/database=
 s/mysql41-server/files/patch-sql::mysqld.cc
 index 69c124f..e79f985 100644
 --- a/databases/mysql41-server/files/patch-sql::mysqld.cc
 +++ b/databases/mysql41-server/files/patch-sql::mysqld.cc
 @@ -9,24 +9,3 @@
   #include <syslog.h>
   #ifdef NEED_SYS_SYSLOG_H
   #include <sys/syslog.h>
 ---- sql/mysqld.cc	2007-11-29 10:52:36 +0000
 -+++ sql/mysqld.cc	2008-02-29 09:55:00 +0000
 -@@ -390,6 +390,7 @@
 - char compiled_default_collation_name[]=3D MYSQL_DEFAULT_COLLATION_NAME;
 - char *language_ptr, *default_collation_name, *default_character_set_name;
 - char mysql_data_home_buff[2], *mysql_data_home=3Dmysql_real_data_home;
 -+char mysql_unpacked_real_data_home[FN_REFLEN];
 - struct passwd *user_info;
 - char server_version[SERVER_VERSION_LENGTH];
 - char *mysqld_unix_port, *opt_mysql_tmpdir;
 -@@ -6896,6 +6897,9 @@
 -     pos[1]=3D 0;
 -   }
 -   convert_dirname(mysql_real_data_home,mysql_real_data_home,NullS);
 -+  (void) fn_format(buff, mysql_real_data_home, "", "",
 -+                   (MY_RETURN_REAL_PATH|MY_RESOLVE_SYMLINKS));
 -+  (void) unpack_dirname(mysql_unpacked_real_data_home, buff);
 -   convert_dirname(language,language,NullS);
 -   (void) my_load_path(mysql_home,mysql_home,""); // Resolve current dir
 -   (void) my_load_path(mysql_real_data_home,mysql_real_data_home,mysql_hom=
 e);
 -
 diff --git a/databases/mysql41-server/files/patch-sql_mysql_priv.h b/databa=
 ses/mysql41-server/files/patch-sql_mysql_priv.h
 deleted file mode 100644
 index a02b313..0000000
 --- a/databases/mysql41-server/files/patch-sql_mysql_priv.h
 +++ /dev/null
 @@ -1,11 +0,0 @@
 ---- sql/mysql_priv.h	2007-11-09 12:05:01 +0000
 -+++ sql/mysql_priv.h	2008-02-29 09:55:00 +0000
 -@@ -890,6 +890,7 @@
 - extern time_t start_time;
 - extern char *mysql_data_home,server_version[SERVER_VERSION_LENGTH],
 - 	    mysql_real_data_home[], *opt_mysql_tmpdir, mysql_charsets_dir[],
 -+	    mysql_unpacked_real_data_home[],
 -             def_ft_boolean_syntax[sizeof(ft_boolean_syntax)];
 - #define mysql_tmpdir (my_tmpdir(&mysql_tmpdir_list))
 - extern MY_TMPDIR mysql_tmpdir_list;
 -
 diff --git a/databases/mysql41-server/files/patch-sql_sql_parse.cc b/databa=
 ses/mysql41-server/files/patch-sql_sql_parse.cc
 deleted file mode 100644
 index 418d6d2..0000000
 --- a/databases/mysql41-server/files/patch-sql_sql_parse.cc
 +++ /dev/null
 @@ -1,82 +0,0 @@
 ---- sql/sql_parse.cc	2007-06-12 12:47:36 +0000
 -+++ sql/sql_parse.cc	2008-02-29 09:55:00 +0000
 -@@ -65,7 +65,8 @@
 - 			       const char *table_name);
 -             =20
 - static TABLE_LIST* get_table_by_alias(TABLE_LIST* tl, const char* db,
 --  const char* alias);     =20
 -+  const char* alias);
 -+static bool test_if_data_home_dir(const char *dir);
 -=20
 - const char *any_db=3D"*any*";	// Special symbol for check_access
 -=20
 -@@ -2531,6 +2532,20 @@
 -                    "INDEX DIRECTORY option ignored");
 -     create_info.data_file_name=3D create_info.index_file_name=3D NULL;
 - #else
 -+
 -+    if (test_if_data_home_dir(lex->create_info.data_file_name))
 -+    {
 -+      my_error(ER_WRONG_ARGUMENTS,MYF(0),"DATA DIRECORY");
 -+      res=3D -1;
 -+      break;
 -+    }
 -+    if (test_if_data_home_dir(lex->create_info.index_file_name))
 -+    {
 -+      my_error(ER_WRONG_ARGUMENTS,MYF(0),"INDEX DIRECORY");
 -+      res=3D -1;
 -+      break;
 -+    }
 -+
 -     /* Fix names if symlinked tables */
 -     if (append_file_to_dir(thd, &create_info.data_file_name,
 - 			   create_table->real_name) ||
 -@@ -5920,3 +5935,47 @@
 -     return negated;
 -   return new Item_func_not(expr);
 - }
 -+
 -+
 -+/*
 -+  Check if path does not contain mysql data home directory
 -+
 -+  SYNOPSIS
 -+    test_if_data_home_dir()
 -+    dir                     directory
 -+    conv_home_dir           converted data home directory
 -+    home_dir_len            converted data home directory length
 -+
 -+  RETURN VALUES
 -+    0	ok
 -+    1	error =20
 -+*/
 -+
 -+static bool test_if_data_home_dir(const char *dir)
 -+{
 -+  char path[FN_REFLEN], conv_path[FN_REFLEN];
 -+  uint dir_len, home_dir_len=3D strlen(mysql_unpacked_real_data_home);
 -+  DBUG_ENTER("test_if_data_home_dir");
 -+
 -+  if (!dir)
 -+    DBUG_RETURN(0);
 -+
 -+  (void) fn_format(path, dir, "", "",
 -+                   (MY_RETURN_REAL_PATH|MY_RESOLVE_SYMLINKS));
 -+  dir_len=3D unpack_dirname(conv_path, dir);
 -+
 -+  if (home_dir_len <=3D dir_len)
 -+  {
 -+    if (lower_case_file_system)
 -+    {
 -+      if (!my_strnncoll(default_charset_info, (const uchar*) conv_path,
 -+                        home_dir_len,
 -+                        (const uchar*) mysql_unpacked_real_data_home,
 -+                        home_dir_len))
 -+        DBUG_RETURN(1);
 -+    }
 -+    else if (!memcmp(conv_path, mysql_unpacked_real_data_home, home_dir_l=
 en))
 -+      DBUG_RETURN(1);
 -+  }
 -+  DBUG_RETURN(0);
 -+}
 -
 diff --git a/databases/mysql41-server/pkg-plist.client b/databases/mysql41-=
 server/pkg-plist.client
 index 94d6384..556634e 100644
 --- a/databases/mysql41-server/pkg-plist.client
 +++ b/databases/mysql41-server/pkg-plist.client
 @@ -11,6 +11,7 @@ bin/mysqlmanager-pwgen
  bin/mysqlmanagerc
  bin/mysqlshow
  bin/mysqltest
 +include/mysql/abi_check
  include/mysql/errmsg.h
  include/mysql/keycache.h
  include/mysql/m_ctype.h
 @@ -25,7 +26,6 @@ include/mysql/my_list.h
  include/mysql/my_net.h
  include/mysql/my_no_pthread.h
  include/mysql/my_pthread.h
 -include/mysql/my_semaphore.h
  include/mysql/my_sys.h
  include/mysql/my_xml.h
  include/mysql/mysql.h
 --=20
 1.6.0.6
 --- mysql41-upgrade-to-4.1.25.diff ends here ---
 --=20
 Eygene
  _                ___       _.--.   #
  \`.|\..----...-'`   `-._.-'_.-'`   #  Remember that it is hard
  /  ' `         ,       __.--'      #  to read the on-line manual
  )/' _/     \   `-_,   /            #  while single-stepping the kernel.
  `-'" `"\_  ,_.-;_.-\_ ',  fsc/as   #
      _.-'_./   {_.'   ; /           #    -- FreeBSD Developers handbook
     {_.-``-'         {_/            #
State-Changed-From-To: open->closed 
State-Changed-By: ale 
State-Changed-When: Tue Dec 30 14:03:46 UTC 2008 
State-Changed-Why:  
Updated with a different tarball, thanks for submitting. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=130023 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/130023: commit references a PR
Date: Tue, 30 Dec 2008 14:02:33 +0000 (UTC)

 ale         2008-12-30 14:02:23 UTC
 
   FreeBSD ports repository
 
   Modified files:
     databases/mysql41-server Makefile distinfo pkg-plist 
                              pkg-plist.client 
     databases/mysql41-server/files patch-sql::mysqld.cc 
   Removed files:
     databases/mysql41-server/files patch-sql_mysql_priv.h 
                                    patch-sql_sql_parse.cc 
   Log:
   Update to 4.1.25 release.
   
   PR:             ports/130023
   Submitted by:   Eygene Ryabinkin <rea-fbsd@codelabs.ru>
   
   Revision  Changes    Path
   1.230     +4 -4      ports/databases/mysql41-server/Makefile
   1.94      +3 -3      ports/databases/mysql41-server/distinfo
   1.6       +0 -21     ports/databases/mysql41-server/files/patch-sql::mysqld.cc
   1.2       +0 -11     ports/databases/mysql41-server/files/patch-sql_mysql_priv.h (dead)
   1.2       +0 -82     ports/databases/mysql41-server/files/patch-sql_sql_parse.cc (dead)
   1.78      +1 -1      ports/databases/mysql41-server/pkg-plist
   1.26      +1 -1      ports/databases/mysql41-server/pkg-plist.client
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
