[postgresql] Fix bugs 891531 and 891547

Tom Lane tgl at fedoraproject.org
Thu Jan 3 23:38:29 UTC 2013


commit 1cd49a06e5e67fbd1bc60706014d22ae6a71da9f
Author: Tom Lane <tgl at redhat.com>
Date:   Thu Jan 3 18:37:36 2013 -0500

    Fix bugs 891531 and 891547

 postgresql-setup                |    1 +
 postgresql-upgrade-test.patch   |   55 +++++++++++++++++++++++++++++++++++++++
 postgresql-var-run-socket.patch |   36 ++++++++-----------------
 postgresql.spec                 |   13 ++++++++-
 4 files changed, 79 insertions(+), 26 deletions(-)
---
diff --git a/postgresql-setup b/postgresql-setup
index 132ef78..e566106 100644
--- a/postgresql-setup
+++ b/postgresql-setup
@@ -91,6 +91,7 @@ perform_initdb(){
 	mkdir "$PGDATA/pg_log"
 	chown postgres:postgres "$PGDATA/pg_log"
 	chmod go-rwx "$PGDATA/pg_log"
+	[ -x /sbin/restorecon ] && /sbin/restorecon "$PGDATA/pg_log"
 
 	if [ -f "$PGDATA/PG_VERSION" ]
 	then
diff --git a/postgresql-upgrade-test.patch b/postgresql-upgrade-test.patch
new file mode 100644
index 0000000..28add1b
--- /dev/null
+++ b/postgresql-upgrade-test.patch
@@ -0,0 +1,55 @@
+Back-patch upstream fix to suppress creation of postmaster's TCP socket
+during pg_upgrade testing.  This will be in 9.2.3 and later.
+
+
+diff -Naur postgresql-9.2.2.orig/contrib/pg_upgrade/test.sh postgresql-9.2.2/contrib/pg_upgrade/test.sh
+--- postgresql-9.2.2.orig/contrib/pg_upgrade/test.sh	2012-12-03 15:16:10.000000000 -0500
++++ postgresql-9.2.2/contrib/pg_upgrade/test.sh	2013-01-03 17:33:45.581567466 -0500
+@@ -17,6 +17,13 @@
+ 
+ testhost=`uname -s`
+ 
++case $testhost in
++	MINGW*)	LISTEN_ADDRESSES="localhost" ;;
++	*)		LISTEN_ADDRESSES="" ;;
++esac
++
++POSTMASTER_OPTS="-F -c listen_addresses=$LISTEN_ADDRESSES"
++
+ temp_root=$PWD/tmp_check
+ 
+ if [ "$1" = '--install' ]; then
+@@ -71,10 +78,11 @@
+ rm -rf "$logdir"
+ mkdir "$logdir"
+ 
++# enable echo so the user can see what is being executed
+ set -x
+ 
+ $oldbindir/initdb
+-$oldbindir/pg_ctl start -l "$logdir/postmaster1.log" -w
++$oldbindir/pg_ctl start -l "$logdir/postmaster1.log" -o "$POSTMASTER_OPTS" -w
+ if "$MAKE" -C "$oldsrc" installcheck; then
+ 	pg_dumpall -f "$temp_root"/dump1.sql || pg_dumpall1_status=$?
+ 	if [ "$newsrc" != "$oldsrc" ]; then
+@@ -117,7 +125,7 @@
+ 
+ pg_upgrade -d "${PGDATA}.old" -D "${PGDATA}" -b "$oldbindir" -B "$bindir"
+ 
+-pg_ctl start -l "$logdir/postmaster2.log" -w
++pg_ctl start -l "$logdir/postmaster2.log" -o "$POSTMASTER_OPTS" -w
+ 
+ case $testhost in
+ 	MINGW*)	cmd /c analyze_new_cluster.bat ;;
+@@ -126,6 +134,11 @@
+ 
+ pg_dumpall -f "$temp_root"/dump2.sql || pg_dumpall2_status=$?
+ pg_ctl -m fast stop
++
++# no need to echo commands anymore
++set +x
++echo
++
+ if [ -n "$pg_dumpall2_status" ]; then
+ 	echo "pg_dumpall of post-upgrade database cluster failed"
+ 	exit 1
diff --git a/postgresql-var-run-socket.patch b/postgresql-var-run-socket.patch
index 305dc02..22b8a0c 100644
--- a/postgresql-var-run-socket.patch
+++ b/postgresql-var-run-socket.patch
@@ -17,9 +17,9 @@ least until 9.3 when that will be part of the upstream package.
 
 
 diff -Naur postgresql-9.2.2.sockets/contrib/pg_upgrade/test.sh postgresql-9.2.2/contrib/pg_upgrade/test.sh
---- postgresql-9.2.2.sockets/contrib/pg_upgrade/test.sh	2012-12-03 15:16:10.000000000 -0500
-+++ postgresql-9.2.2/contrib/pg_upgrade/test.sh	2012-12-04 14:34:04.661476094 -0500
-@@ -71,10 +71,14 @@
+--- postgresql-9.2.2.sockets/contrib/pg_upgrade/test.sh	2013-01-03 17:33:45.581567466 -0500
++++ postgresql-9.2.2/contrib/pg_upgrade/test.sh	2013-01-03 17:40:22.923364917 -0500
+@@ -78,6 +78,12 @@
  rm -rf "$logdir"
  mkdir "$logdir"
  
@@ -27,26 +27,14 @@ diff -Naur postgresql-9.2.2.sockets/contrib/pg_upgrade/test.sh postgresql-9.2.2/
 +PGHOST=$temp_root
 +export PGHOST
 +
++POSTMASTER_OPTS="$POSTMASTER_OPTS -c unix_socket_directories='$PGHOST'"
++
+ # enable echo so the user can see what is being executed
  set -x
  
- $oldbindir/initdb
--$oldbindir/pg_ctl start -l "$logdir/postmaster1.log" -w
-+$oldbindir/pg_ctl start -l "$logdir/postmaster1.log" -o "-c unix_socket_directories='$PGHOST'" -w
- if "$MAKE" -C "$oldsrc" installcheck; then
- 	pg_dumpall -f "$temp_root"/dump1.sql || pg_dumpall1_status=$?
- 	if [ "$newsrc" != "$oldsrc" ]; then
-@@ -117,7 +121,7 @@
- 
- pg_upgrade -d "${PGDATA}.old" -D "${PGDATA}" -b "$oldbindir" -B "$bindir"
- 
--pg_ctl start -l "$logdir/postmaster2.log" -w
-+pg_ctl start -l "$logdir/postmaster2.log" -o "-c unix_socket_directories='$PGHOST'" -w
- 
- case $testhost in
- 	MINGW*)	cmd /c analyze_new_cluster.bat ;;
 diff -Naur postgresql-9.2.2.sockets/src/backend/utils/misc/guc.c postgresql-9.2.2/src/backend/utils/misc/guc.c
---- postgresql-9.2.2.sockets/src/backend/utils/misc/guc.c	2012-12-04 14:25:57.578967623 -0500
-+++ postgresql-9.2.2/src/backend/utils/misc/guc.c	2012-12-04 14:34:04.663476214 -0500
+--- postgresql-9.2.2.sockets/src/backend/utils/misc/guc.c	2013-01-03 17:37:56.632977951 -0500
++++ postgresql-9.2.2/src/backend/utils/misc/guc.c	2013-01-03 17:38:30.183271588 -0500
 @@ -2901,7 +2901,7 @@
  		},
  		&Unix_socket_directories,
@@ -57,8 +45,8 @@ diff -Naur postgresql-9.2.2.sockets/src/backend/utils/misc/guc.c postgresql-9.2.
  		"",
  #endif
 diff -Naur postgresql-9.2.2.sockets/src/bin/initdb/initdb.c postgresql-9.2.2/src/bin/initdb/initdb.c
---- postgresql-9.2.2.sockets/src/bin/initdb/initdb.c	2012-12-04 14:25:57.579967636 -0500
-+++ postgresql-9.2.2/src/bin/initdb/initdb.c	2012-12-04 14:34:04.665476326 -0500
+--- postgresql-9.2.2.sockets/src/bin/initdb/initdb.c	2013-01-03 17:37:56.633977974 -0500
++++ postgresql-9.2.2/src/bin/initdb/initdb.c	2013-01-03 17:38:30.185271611 -0500
 @@ -1007,7 +1007,7 @@
  
  #ifdef HAVE_UNIX_SOCKETS
@@ -70,7 +58,7 @@ diff -Naur postgresql-9.2.2.sockets/src/bin/initdb/initdb.c postgresql-9.2.2/src
  #endif
 diff -Naur postgresql-9.2.2.sockets/src/include/pg_config_manual.h postgresql-9.2.2/src/include/pg_config_manual.h
 --- postgresql-9.2.2.sockets/src/include/pg_config_manual.h	2012-12-03 15:16:10.000000000 -0500
-+++ postgresql-9.2.2/src/include/pg_config_manual.h	2012-12-04 14:34:04.665476326 -0500
++++ postgresql-9.2.2/src/include/pg_config_manual.h	2013-01-03 17:38:30.185271611 -0500
 @@ -144,7 +144,7 @@
   * here's where to twiddle it.  You can also override this at runtime
   * with the postmaster's -k switch.
@@ -82,7 +70,7 @@ diff -Naur postgresql-9.2.2.sockets/src/include/pg_config_manual.h postgresql-9.
   * The random() function is expected to yield values between 0 and
 diff -Naur postgresql-9.2.2.sockets/src/test/regress/pg_regress.c postgresql-9.2.2/src/test/regress/pg_regress.c
 --- postgresql-9.2.2.sockets/src/test/regress/pg_regress.c	2012-12-03 15:16:10.000000000 -0500
-+++ postgresql-9.2.2/src/test/regress/pg_regress.c	2012-12-04 14:34:04.666476378 -0500
++++ postgresql-9.2.2/src/test/regress/pg_regress.c	2013-01-03 17:38:30.186271622 -0500
 @@ -772,7 +772,7 @@
  		if (hostname != NULL)
  			doputenv("PGHOST", hostname);
diff --git a/postgresql.spec b/postgresql.spec
index b94d35e..b335e59 100644
--- a/postgresql.spec
+++ b/postgresql.spec
@@ -58,7 +58,7 @@ Summary: PostgreSQL client programs
 Name: postgresql
 %global majorversion 9.2
 Version: 9.2.2
-Release: 2%{?dist}
+Release: 3%{?dist}
 
 # The PostgreSQL license is very similar to other MIT licenses, but the OSI
 # recognizes it as an independent license, so we do as well.
@@ -101,7 +101,8 @@ Patch2: postgresql-logging.patch
 Patch3: postgresql-perl-rpath.patch
 Patch4: postgresql-config-comment.patch
 Patch5: postgresql-multi-sockets.patch
-Patch6: postgresql-var-run-socket.patch
+Patch6: postgresql-upgrade-test.patch
+Patch7: postgresql-var-run-socket.patch
 
 BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex gawk
 BuildRequires: perl(ExtUtils::Embed), perl-devel
@@ -329,6 +330,7 @@ benchmarks.
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
 
 # We used to run autoconf here, but there's no longer any real need to,
 # since Postgres ships with a reasonably modern configure script.
@@ -1085,6 +1087,13 @@ fi
 %endif
 
 %changelog
+* Thu Jan  3 2013 Tom Lane <tgl at redhat.com> 9.2.2-3
+- Prevent creation of TCP socket during pg_upgrade regression test, so that
+  concurrent RPM builds on the same machine won't fail
+Resolves: #891531
+- Make sure $PGDATA/pg_log/ gets the right SELinux label in postgresql-setup
+Resolves: #891547
+
 * Wed Dec 19 2012 Tom Lane <tgl at redhat.com> 9.2.2-2
 - Make building of plpython3 dependent on Fedora version, per guidelines
 Resolves: #888419


More information about the scm-commits mailing list