diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 9dda70d..0000000 --- a/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -pgpool-II-1.2.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9ae6c1e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +pgpool-II-2.3.1.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index 8d78723..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: postgresql-pgpool-II -# $Id$ -NAME := postgresql-pgpool-II -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/pgpool.conf.sample.patch b/pgpool.conf.sample.patch new file mode 100644 index 0000000..81d10ca --- /dev/null +++ b/pgpool.conf.sample.patch @@ -0,0 +1,46 @@ +--- pgpool.conf.sample.old 2009-03-22 22:18:52.000000000 +0200 ++++ pgpool.conf.sample 2009-03-22 22:46:20.000000000 +0200 +@@ -12,16 +12,14 @@ + # Port number for pgpool communication manager + pcp_port = 9898 + +-# Unix domain socket path. (The Debian package defaults to +-# /var/run/postgresql.) ++# Unix domain socket path. + socket_dir = '/tmp' + + # Unix domain socket path for pgpool communication manager. +-# (Debian package defaults to /var/run/postgresql) + pcp_socket_dir = '/tmp' + +-# Unix domain socket path for the backend. Debian package defaults to /var/run/postgresql! +-backend_socket_dir = '/tmp' ++# Unix domain socket path for the backend. ++backend_socket_dir = '/var/run/pgpool' + + # pgpool communication manager timeout. 0 means no timeout, but strongly not recommended! + pcp_timeout = 10 +@@ -54,7 +52,7 @@ + authentication_timeout = 60 + + # Logging directory +-logdir = '/tmp' ++logdir = '/var/log/pgpool' + + # pid file name + pid_file_name = '/var/run/pgpool/pgpool.pid' +@@ -166,10 +164,10 @@ + + # backend_hostname, backend_port, backend_weight + # here are examples +-#backend_hostname0 = 'host1' +-#backend_port0 = 5432 +-#backend_weight0 = 1 +-#backend_data_directory0 = '/data' ++backend_hostname0 = 'localhost' ++backend_port0 = 5432 ++backend_weight0 = 1 ++backend_data_directory0 = '/var/lib/pgsql/data' + #backend_hostname1 = 'host2' + #backend_port1 = 5433 + #backend_weight1 = 1 diff --git a/pgpool.init b/pgpool.init index 8c96220..e0a4119 100755 --- a/pgpool.init +++ b/pgpool.init @@ -1,13 +1,22 @@ #!/bin/sh # pgpool This is the init script for starting up pgpool-II # -# chkconfig: - 64 36 +# chkconfig: - 235 74 33 # description: Starts and stops the pgpool daemon # processname: pgpool # pidfile: /var/run/pgpool.pid # # v1.0.0 Devrim GUNDUZ # - Initial version of Red Hat / Fedora init script +# +# v2.2 Devrim GUNDUZ +# - New and improved version which has some fixes. +# +# v2.2.5 Devrim GUNDUZ +# - Fix logging. +# +# v2.3 Devrim GUNDUZ +# - Adjust order of startup and kill, per RH bugzilla #545739. if [ -r /etc/sysconfig/pgpool ]; then . /etc/sysconfig/pgpool @@ -28,25 +37,31 @@ TYPESET=`typeset -f|grep "declare"` [ "${NETWORKING}" = "no" ] && exit 0 # Find the name of the script -NAME=pgpool +NAME=`basename $0` +if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ] +then + NAME=${NAME:3} +fi + +# For SELinux we need to use 'runuser' not 'su' +if [ -x /sbin/runuser ] +then + SU=runuser +else + SU=su +fi # Set defaults for configuration variables PGPOOLENGINE=/usr/bin PGPOOLDAEMON=$PGPOOLENGINE/pgpool -PGPOOLCONF=/etc/pgpool.conf -PGPOOLPID=/var/run/pgpool.pid +PGPOOLCONF=/etc/pgpool-II/pgpool.conf +PGPOOLPIDDIR=/var/run/pgpool PGPOOLLOG=/var/log/pgpool.log test -x $PGPOOLDAEMON || exit 5 -# Create the log file if it does not exist -if [ ! -r $PGPOOLLOG ] -then - touch $PGPOOLLOG -fi - # Check whether the config file exists or not -if [ ! -r /etc/pgpool.conf ] +if [ ! -r $PGPOOLCONF ] then echo "$PGPOOLCONF not found" RETVAL=1 @@ -54,13 +69,37 @@ then exit fi +# Create the log file if it does not exist +if [ ! -x $PGPOOLLOG ] +then + touch $PGPOOLLOG + chown postgres: $PGPOOLLOG +fi + +if [ ! -d $PGPOOLPIDDIR ] +then + mkdir $PGPOOLPIDDIR + chown postgres: $PGPOOLPIDDIR +fi + script_result=0 start(){ + pid=`pidof -s "$PGPOOLDAEMON"` + if [ $pid ] + then + echo "pgpool is already running with pid $pid" + failure "$PGPOQL_START" + echo + script_result=1 + exit 1 + fi + PGPOOL_START=$"Starting ${NAME} service: " echo -n "$PGPOOL_START" - $PGPOOLDAEMON -f $PGPOOLCONF $OPTS & >> "$PGPOOLLOG" 2>&1 < /dev/null + + $SU -l postgres -c "$PGPOOLDAEMON -f $PGPOOLCONF $OPTS & " >> "$PGPOOLLOG" 2>&1 < /dev/null sleep 2 pid=`pidof -s "$PGPOOLDAEMON"` @@ -70,7 +109,7 @@ start(){ touch /var/lock/subsys/${NAME} echo else - failure "$PSQL_START" + failure "$PGPOQL_START" echo script_result=1 fi @@ -82,7 +121,8 @@ stop(){ RETVAL=1 failure else - killproc /usr/bin/pgpool + killproc /usr/bin/pgpool +# $PGPOOLDAEMON stop & >> "$PGPOOLLOG" 2>&1 < /dev/null RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${NAME} fi; @@ -92,7 +132,7 @@ stop(){ switch() { echo -n $"Sending switchover request to $NAME " - $PGPOOLDAEMON switch >> "$PGPOOLLOG" 2>&1 < /dev/null + $PGPOOLDAEMON -f $PGPOOLCONF switch >> "$PGPOOLLOG" 2>&1 < /dev/null RETVAL=$? echo if [ $RETVAL -eq 0 ] @@ -110,22 +150,23 @@ restart(){ } reload(){ -echo -n $"Reloading ${NAME}: " - if [ -n "`pidfileofproc $PGPOOLDAEMON`" ] ; then - killproc $PGPOOLDAEMON -HUP - else - failure $"Reloading ${NAME}" - fi - RETVAL=$? - echo + echo -n $"Reloading ${NAME}: " + + if [ -n "`pidfileofproc $PGPOOLDAEMON`" ] ; then + killproc $PGPOOLDAEMON -HUP + else + failure $"Reloading ${NAME}" + fi + RETVAL=$? + echo } condrestart(){ - [ -e /var/lock/subsys/${NAME} ] && restart + [ -e /var/lock/subsys/${NAME} ] && restart } condstop(){ - [ -e /var/lock/subsys/${NAME} ] && stop + [ -e /var/lock/subsys/${NAME} ] && stop } # See how we were called. diff --git a/pgpool.sysconfig b/pgpool.sysconfig index ef8e2e1..221869e 100644 --- a/pgpool.sysconfig +++ b/pgpool.sysconfig @@ -4,3 +4,4 @@ # -d: debug mode. lots of debug information will be printed #OPTS=" -d -n" +OPTS=" -n" diff --git a/postgresql-pgpool-II.spec b/postgresql-pgpool-II.spec index 81a10a4..f8ff8bd 100644 --- a/postgresql-pgpool-II.spec +++ b/postgresql-pgpool-II.spec @@ -2,14 +2,15 @@ Summary: Pgpool is a connection pooling/replication server for PostgreSQL Name: postgresql-%{short_name} -Version: 1.2 -Release: 2%{?dist} +Version: 2.3.1 +Release: 1%{?dist} License: BSD Group: Applications/Databases -URL: http://pgpool.projects.PostgreSQL.org/pgpool-II/en -Source0: http://pgfoundry.org/frs/download.php/1419/%{short_name}-%{version}.tar.gz +URL: http://pgpool.projects.PostgreSQL.org +Source0: http://pgfoundry.org/frs/download.php/2506/%{short_name}-%{version}.tar.gz Source1: pgpool.init Source2: pgpool.sysconfig +Patch1: pgpool.conf.sample.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: postgresql-devel pam-devel @@ -36,27 +37,35 @@ DB nodes to be connected, which was not possible in pgpool-I. %package devel Summary: The development files for pgpool-II Group: Development/Libraries -Requires: %{name} = %{version} +Requires: %{name} = %{version}-%{release} %description devel Development headers and libraries for pgpool-II. %prep %setup -q -n %{short_name}-%{version} +%patch1 -p0 %build -%configure --with-pgsql-includedir=%{_includedir}/pgsql --with-pgsql-lib=%{_libdir}/pgsql --disable-static --with-pam --disable-rpath +%configure --with-pgsql-includedir=%{_includedir}/pgsql --with-pgsql-lib=%{_libdir}/pgsql --disable-static --with-pam --disable-rpath --sysconfdir=%{_sysconfdir}/%{short_name}/ make %{?_smp_flags} %install rm -rf %{buildroot} make %{?_smp_flags} DESTDIR=%{buildroot} install -mv %{buildroot}/%{_sysconfdir}/*.conf.sample %{buildroot}%{_datadir}/%{short_name} +install -d %{buildroot}%{_datadir}/%{short_name} +install -d %{buildroot}%{_sysconfdir}/%{short_name} +mv %{buildroot}/%{_sysconfdir}/%{short_name}/pcp.conf.sample %{buildroot}%{_sysconfdir}/%{short_name}/pcp.conf +mv %{buildroot}/%{_sysconfdir}/%{short_name}/pgpool.conf.sample %{buildroot}%{_sysconfdir}/%{short_name}/pgpool.conf +mv %{buildroot}/%{_sysconfdir}/%{short_name}/pool_hba.conf.sample %{buildroot}%{_sysconfdir}/%{short_name}/pool_hba.conf +mv %{buildroot}/%{_sysconfdir}/%{short_name}/pgpool.conf.sample-master-slave %{buildroot}%{_datadir}/%{short_name}/ +mv %{buildroot}/%{_sysconfdir}/%{short_name}/pgpool.conf.sample-replication %{buildroot}%{_datadir}/%{short_name}/ + install -d %{buildroot}%{_initrddir} install -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/pgpool install -d %{buildroot}%{_sysconfdir}/sysconfig -install -m 755 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/pgpool +install -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/pgpool # nuke libtool archive and static lib rm -f %{buildroot}%{_libdir}/libpcp.{a,la} @@ -64,7 +73,16 @@ rm -f %{buildroot}%{_libdir}/libpcp.{a,la} %clean rm -rf %{buildroot} -%post -p /sbin/ldconfig +%post +/sbin/ldconfig +chkconfig --add pgpool + +%preun +if [ $1 = 0 ] ; then + /sbin/service pgpool condstop >/dev/null 2>&1 + chkconfig --del pgpool +fi + %postun -p /sbin/ldconfig %files @@ -77,15 +95,19 @@ rm -rf %{buildroot} %{_bindir}/pcp_node_info %{_bindir}/pcp_proc_count %{_bindir}/pcp_proc_info +%{_bindir}/pcp_recovery_node %{_bindir}/pcp_stop_pgpool %{_bindir}/pcp_systemdb_info %{_bindir}/pg_md5 %{_mandir}/man8/pgpool* +%dir %{_datadir}/%{short_name} %{_datadir}/%{short_name}/system_db.sql +%{_datadir}/%{short_name}/pgpool.conf.sample-master-slave +%{_datadir}/%{short_name}/pgpool.conf.sample-replication %{_libdir}/libpcp.so.* -%attr(764,root,apache) %{_datadir}/%{short_name}/*.conf.sample %{_datadir}/%{short_name}/pgpool.pam %{_initrddir}/pgpool +%attr(764,root,root) %config(noreplace) %{_sysconfdir}/%{short_name}/*.conf %config(noreplace) %{_sysconfdir}/sysconfig/pgpool %files devel @@ -95,6 +117,88 @@ rm -rf %{buildroot} %{_libdir}/libpcp.so %changelog +* Fri Dec 25 2009 Devrim GUNDUZ - 2.3.1-1 +- Update to 2.3.1 +- Adjust order of startup and kill, per RH bugzilla #545739. + +* Tue Dec 1 2009 Devrim GUNDUZ - 2.2.6-1 +- Update to 2.2.6 + +* Sun Nov 01 2009 Devrim GUNDUZ - 2.2.5-2 +- Remove init script from all runlevels before uninstall. Per RH Bugzilla + #532177 + +* Sun Oct 4 2009 Devrim Gunduz 2.2.5-1 +- Update to 2.2.5, for various fixes described at + http://lists.pgfoundry.org/pipermail/pgpool-general/2009-October/002188.html + +* Sat Oct 3 2009 Devrim Gunduz 2.2.4-1 +- Update to 2.2.4 +- Re-apply a fix for #442372 + +* Thu May 7 2009 Devrim Gunduz 2.2.2-1 +- Update to 2.2.2 + +* Mon Mar 23 2009 Devrim Gunduz 2.2-1.1 +- Fix pid file path in init script. +- Fix spec file -- we don't use short_name macro in pgcore spec file. +- Create pgpool pid file directory. +- Fix stop/start routines, also improve init script a bit. +- Install conf files to a new directory (/etc/pgpool-II), and get rid + of sample conf files. + +* Sun Mar 1 2009 Devrim Gunduz 2.2-1 +- Update to 2.2 +- Update URL + +* Thu Feb 26 2009 Fedora Release Engineering - 2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Dec 4 2008 Michael Schwendt 2.1-2 +- Include /usr/share/pgpool-II directory. + +* Tue Aug 12 2008 Devrim Gunduz 2.1-1 +- Update to 2.1 Gold +- Set group of sample config files to root, not apache. Fixes RH #442372. +- Update patch #1: Fix build failure caused by new default patch +fuzz = 0 policy in rawhide + +* Fri Apr 11 2008 Devrim Gunduz 2.1-0.2.beta2 +- Fix Requires: issue, per #442021 (Alex Lancaster) + +* Sun Apr 6 2008 Devrim Gunduz 2.1-beta2 +- Update to 2.1 beta2 + +* Mon Feb 18 2008 Fedora Release Engineering - 2.0.1-3.1 +- Autorebuild for GCC 4.3 + +* Mon Jan 21 2008 Devrim GUNDUZ 2.0.1-2.1 +- Rebuilt against PostgreSQL 8.3 + +* Sat Jan 19 2008 Devrim Gunduz 2.0.1-2 +- Fix Requires of -devel package, per bz#429436 + +* Sun Jan 13 2008 Devrim Gunduz 2.0.1-1 +- Update to 2.0.1 +- Add a temp patch that will disappear in 2.0.2 + +* Tue Oct 23 2007 Devrim Gunduz 1.3-1 +- Update to 1.3 + +* Fri Oct 5 2007 Devrim Gunduz 1.2.1-1 +- Update to 1.2.1 + +* Wed Aug 29 2007 Devrim Gunduz 1.2-5 +- Chmod sysconfig/pgpool to 644, not 755. Per BZ review. +- Run chkconfig --add pgpool during %%post. + +* Thu Aug 16 2007 Devrim Gunduz 1.2-4 +- Fixed the directory name where sample conf files and sql files + are installed. + +* Sun Aug 5 2007 Devrim Gunduz 1.2-3 +- Added a patch for sample conf file to use Fedora defaults + * Sun Aug 5 2007 Devrim Gunduz 1.2-2 - Added an init script for pgpool - Added /etc/sysconfig/pgpool diff --git a/sources b/sources index f0d00ef..59dbedc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8fed94ed12769dacbbf8758b2154e5a7 pgpool-II-1.2.tar.gz +032fc94eaa71ed99276234b7a110cdf5 pgpool-II-2.3.1.tar.gz