[Pkg-mysql-commits] r1633 - in mysql-dfsg-5.1/branches/experimental/debian: . patches

Christian Hammers ch at alioth.debian.org
Sun Jul 19 23:22:17 UTC 2009


tags 515145 pending
thanks

Author: ch
Date: 2009-07-19 23:22:16 +0000 (Sun, 19 Jul 2009)
New Revision: 1633

Added:
   mysql-dfsg-5.1/branches/experimental/debian/patches/02_no_builtin_ndbcluster_plugin.dpatch
Modified:
   mysql-dfsg-5.1/branches/experimental/debian/changelog
   mysql-dfsg-5.1/branches/experimental/debian/patches/00list
   mysql-dfsg-5.1/branches/experimental/debian/rules
Log:

  * Build both -fPIC (libmysql_pic.a) and non -fPIC (libmysqld.a) as
    some packages seem to need the -fPIC variant for their own build
    process. Documented in README.Debian. Thanks to Modestas Vainius
    for the patch. Closes: #515145
  * Switch to out-of-source true build mode was a side effect of this change.



Modified: mysql-dfsg-5.1/branches/experimental/debian/changelog
===================================================================
--- mysql-dfsg-5.1/branches/experimental/debian/changelog	2009-07-19 16:48:33 UTC (rev 1632)
+++ mysql-dfsg-5.1/branches/experimental/debian/changelog	2009-07-19 23:22:16 UTC (rev 1633)
@@ -1,15 +1,15 @@
+mysql-dfsg-5.1 (5.1.36-2) experimental; urgency=low
+
+  * Build both -fPIC (libmysql_pic.a) and non -fPIC (libmysqld.a) as
+    some packages seem to need the -fPIC variant for their own build
+    process. Documented in README.Debian. Thanks to Modestas Vainius
+    for the patch. Closes: #515145
+  * Switch to out-of-source true build mode was a side effect of this change.
+
+ -- Christian Hammers <ch at debian.org>  Sun, 19 Jul 2009 18:48:53 +0200
+
 mysql-dfsg-5.1 (5.1.36-1) experimental; urgency=low
 
-  [TODO]
-  * Link libmysqlclient.so to libmysqlclient_r.so to help applications
-    like Apache where some modules, like libaprutil, want to use the thread
-    safe library and some, like PHP, do not. As the client library just copies
-    data between client and server, we do not expect significant performance
-    losses. (thanks to Stefan Fritsch). Closes: #450535
-    
-    Add the following to libmysqlclient16.links: 
-    usr/lib/libmysqlclient_r.so.16.0.0 usr/lib/libmysqlclient.so.16.0.0
-
   * Ex-maintainer upload :)
   * New upstream release.
   * SECURITY: Upstream fix for "mysql client does not escape strings in 

Modified: mysql-dfsg-5.1/branches/experimental/debian/patches/00list
===================================================================
--- mysql-dfsg-5.1/branches/experimental/debian/patches/00list	2009-07-19 16:48:33 UTC (rev 1632)
+++ mysql-dfsg-5.1/branches/experimental/debian/patches/00list	2009-07-19 23:22:16 UTC (rev 1633)
@@ -1,5 +1,6 @@
 01_MAKEFILES__Docs_Images_Makefile.in.dpatch
 01_MAKEFILES__Docs_Makefile.in.dpatch
+02_no_builtin_ndbcluster_plugin.dpatch
 33_scripts__mysql_create_system_tables__no_test.dpatch
 38_scripts__mysqld_safe.sh__signals.dpatch
 41_scripts__mysql_install_db.sh__no_test.dpatch

Added: mysql-dfsg-5.1/branches/experimental/debian/patches/02_no_builtin_ndbcluster_plugin.dpatch
===================================================================
--- mysql-dfsg-5.1/branches/experimental/debian/patches/02_no_builtin_ndbcluster_plugin.dpatch	                        (rev 0)
+++ mysql-dfsg-5.1/branches/experimental/debian/patches/02_no_builtin_ndbcluster_plugin.dpatch	2009-07-19 23:22:16 UTC (rev 1633)
@@ -0,0 +1,18 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 01_MAKEFILES__Docs_Makefile.in.dpatch by  <ch at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: As we completely disabled ndbcluster
+
+ at DPATCH@
+
+--- old/sql/sql_builtin.cc
++++ new/sql/sql_builtin.cc
+@@ -22,6 +22,6 @@
+ 
+ struct st_mysql_plugin *mysqld_builtins[]=
+ {
+-  builtin_binlog_plugin, builtin_partition_plugin, builtin_csv_plugin, builtin_heap_plugin, builtin_myisam_plugin, builtin_myisammrg_plugin, builtin_ndbcluster_plugin,(struct st_mysql_plugin *)0
++  builtin_binlog_plugin, builtin_partition_plugin, builtin_csv_plugin, builtin_heap_plugin, builtin_myisam_plugin, builtin_myisammrg_plugin, (struct st_mysql_plugin *)0
+ };
+ 

Modified: mysql-dfsg-5.1/branches/experimental/debian/rules
===================================================================
--- mysql-dfsg-5.1/branches/experimental/debian/rules	2009-07-19 16:48:33 UTC (rev 1632)
+++ mysql-dfsg-5.1/branches/experimental/debian/rules	2009-07-19 23:22:16 UTC (rev 1633)
@@ -42,6 +42,10 @@
    TESTSUITE_FAIL_CMD=exit 1
 #endif
 
+BUILDDIR = builddir
+BUILDDIR_PIC = builddir-pic
+builddir = $(if $(findstring -pic,$@),$(BUILDDIR_PIC),$(BUILDDIR))
+
 # This causes seg11 crashes if LDAP is used for groups in /etc/nsswitch.conf
 # so it is disabled by default although, according to MySQL, it brings >10%
 # performance gain if enabled. See #299382.
@@ -49,21 +53,27 @@
     USE_STATIC_MYSQLD=--with-mysqld-ldflags=-all-static
 endif
 		
+
+configure-stamp-pic: FORCE_FPIC_CFLAGS=-fPIC
+configure-stamp-pic: FORCE_FPIC=--with-pic --with-lib-ccflags="-fPIC"
+
 configure: patch configure-stamp
-configure-stamp:
-	@echo "RULES.configure-stamp"
+configure-pic: patch configure-stamp-pic
+configure-stamp configure-stamp-pic:
+	@echo "RULES.$@"
 	dh_testdir
 
 ifneq ($(ARCH_OS),hurd)
 	if [ ! -d /proc/self ]; then echo "/proc IS NEEDED" 1>&2; exit 1; fi 
 endif
 
+	( test -d $(builddir) || mkdir $(builddir) ) && cd $(builddir) && \
 	sh -c  'PATH=$${MYSQL_BUILD_PATH:-"/bin:/usr/bin"} \
 	    	CC=$${MYSQL_BUILD_CC:-gcc} \
 	    	CFLAGS=$${MYSQL_BUILD_CFLAGS:-"-O3 -DBIG_JOINS=1 ${FORCE_FPIC_CFLAGS}"} \
 	    	CXX=$${MYSQL_BUILD_CXX:-g++} \
 	    	CXXFLAGS=$${MYSQL_BUILD_CXXFLAGS:-"-O3 -DBIG_JOINS=1 -felide-constructors -fno-exceptions -fno-rtti ${FORCE_FPIC_CFLAGS}"} \
-	    ./configure \
+	    ../configure \
 		--build=${DEB_BUILD_GNU_TYPE} \
 		--host=${DEB_HOST_GNU_TYPE} \
 		\
@@ -106,25 +116,53 @@
 	#
 	#	--with-debug
 	
-	touch configure-stamp
+	touch $@
 
 
-build: build-stamp
+build: build-stamp build-stamp-pic
+
 build-stamp: configure
+	@echo "RULES.$@"
 	dh_testdir
 
-	$(MAKE) $(MAKE_J)
+	cd $(builddir) && $(MAKE) $(MAKE_J)
 
 ifeq ($(findstring $(DEB_BUILD_OPTIONS),nocheck),)
+	# Don't know why the following is necessary...
+	cp unittest/unit.pl $(builddir)/unittest/
+	cp -r mysql-test/* $(builddir)/mysql-test/
+	cp -r sql/share/* $(builddir)/sql/share/
+	cp -r scripts/*sql $(builddir)/scripts/
 	if [ ! -f testsuite-stamp ] ; then \
-	  $(MAKE) $(MAKE_TEST_TARGET) || $(TESTSUITE_FAIL_CMD) ; \
+	  cd $(builddir) && $(MAKE) $(MAKE_TEST_TARGET) || $(TESTSUITE_FAIL_CMD) ; \
 	fi
 endif
 
 	touch testsuite-stamp
 
 	touch build-stamp
+
+MAKE_PIC = cd $(builddir) && $(MAKE) $(MAKE_J)
+
+build-stamp-pic: configure-pic
+	@echo "RULES.$@"
+	# Build libmysqld dependencies
+	$(MAKE_PIC) -C include
+	$(MAKE_PIC) -C sql link_sources
+	$(MAKE_PIC) -C libmysql link_sources
+	$(MAKE_PIC) -C strings
+	$(MAKE_PIC) -C regex
+	$(MAKE_PIC) -C mysys
+	$(MAKE_PIC) -C dbug
+	$(MAKE_PIC) -C vio
+	$(MAKE_PIC) -C storage
+	$(MAKE_PIC) -C extra/yassl
+	$(MAKE_PIC) -C cmd-line-utils
+	$(MAKE_PIC) -C sql lex_hash.h
+	# Build libmysqld itself
+	$(MAKE_PIC) -C libmysqld
 	
+	touch $@
 
 clean: clean-patched unpatch
 	rm -rf debian/patched
@@ -132,41 +170,22 @@
 	@echo "RULES.clean-patched"
 	dh_testdir 
 	dh_testroot
-	rm -f configure-stamp
-	rm -f build-stamp
+	rm -f configure-stamp*
+	rm -f build-stamp*
 	rm -f testsuite-stamp
 	
 	[ ! -f Makefile ] || $(MAKE) clean
 	[ ! -d mysql-test/var ] || rm -rf mysql-test/var
+	
+	rm -rf $(BUILDDIR) $(BUILDDIR_PIC)
 
-	# We like to see how long this is neccessary
-	@echo "CRUFT BEGIN" 
-	@find -type l -print0 | xargs --no-run-if-empty -0 rm -v
-	@find -name .deps -type d -print0 | xargs --no-run-if-empty -0 rm -rfv
-	@rm -vrf ndb/docs/.doxy* ndb/docs/*html ndb/docs/*pdf innobase/autom4te.cache
-	@for i in \
-	  readline/Makefile \
-	  sql-bench/Makefile \
-	  scripts/make_win_binary_distribution \
-	  scripts/mysqlbug \
-	  sql/gen_lex_hash \
-	  sql/lex_hash.h \
-	  strings/ctype_autoconf.c \
-	  config.log \
-	  config.cache \
-	  ; \
-	do \
-	  rm -vf $$i; \
-	done
-	@echo "CRUFT END"
-
 	debconf-updatepo
 	dh_clean -v
 
-	
+
 install:
-install: build
-	@echo "RULES.install"
+install install-pic: build
+	@echo "RULES.$@"
 	dh_testdir
 	dh_testroot
 	dh_clean -k
@@ -183,7 +202,7 @@
 	ln -s mysqlmanager.1 $(TMP)/usr/share/man/man1/mysqlmanagerc.1
 
 	# make install (trailing slash needed for innobase)
-	$(MAKE) install DESTDIR=$(TMP)/
+	cd $(builddir) && $(MAKE) install DESTDIR=$(TMP)/
 		
 	# After installing, remove rpath to make lintian happy.
 	set +e; \
@@ -205,8 +224,10 @@
 	fi     
 
 	# libmysqlclient-dev: forgotten header file since 3.23.25?
-	cp include/my_config.h $(TMP)/usr/include/mysql/
+	cp $(BUILDDIR)/include/my_config.h $(TMP)/usr/include/mysql/
 	cp include/my_dir.h $(TMP)/usr/include/mysql/
+	# install libmysqld built with -FPIC
+	install -m 0644 -o root -g root $(BUILDDIR_PIC)/libmysqld/libmysqld.a $(TMP)/usr/lib/mysql/libmysqld_pic.a
 
 	# mysql-common: We now provide our own config file.
 	install -d $(TMP)/etc/mysql
@@ -219,14 +240,14 @@
 	install -m 0644 -D debian/additions/innotop/InnoDBParser.pm $(TMP)/usr/share/perl5/InnoDBParser.pm
 
 	# mysql-server
-	install -m 0755 scripts/mysqld_safe $(TMP)/usr/bin/mysqld_safe
+	install -m 0755 $(BUILDDIR)/scripts/mysqld_safe $(TMP)/usr/bin/mysqld_safe
 	mkdir -p $(TMP)/usr/share/doc/mysql-server-5.1/examples
 	mv $(TMP)/usr/share/mysql/*cnf 	    $(TMP)/usr/share/doc/mysql-server-5.1/examples/
 	rm -vf $(TMP)/usr/share/mysql/mi_test_all* \
 	       $(TMP)/usr/share/mysql/mysql-log-rotate \
 	       $(TMP)/usr/share/mysql/mysql.server \
 	       $(TMP)/usr/share/mysql/binary-configure
-	nm -n sql/mysqld |gzip -9 > $(TMP)/usr/share/doc/mysql-server-5.1/mysqld.sym.gz
+	nm -n $(BUILDDIR)/sql/mysqld |gzip -9 > $(TMP)/usr/share/doc/mysql-server-5.1/mysqld.sym.gz
 	install -m 0755 debian/additions/echo_stderr $(TMP)/usr/share/mysql/
 	install -m 0755 debian/additions/debian-start $(TMP)/etc/mysql/
 	install -m 0755 debian/additions/debian-start.inc.sh $(TMP)/usr/share/mysql/




More information about the Pkg-mysql-commits mailing list