Group :: Databases
RPM: pgpool-II
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
%define full_ver %(pkg-config --modversion libpq)
%define pg_ver %(c=%{full_ver}; echo ${c%%.*})
%define sname pgpool
Name: pgpool-II
Version: 4.2.7
Release: alt1
Summary: Pgpool is a connection pooling/replication server for PostgreSQL
License: BSD
Group: Databases
Url: http://www.pgpool.net
Source: %name-%version.tar
Source1: pgpool.service
Source2: pgpool.tmpfiles
Source3: pgpool.init
Source4: pgpool.sysconfig
Patch: 0001-Update-path-for-socket-and-log.patch
BuildRequires: flex
BuildRequires: postgresql-devel
BuildRequires: pam-devel
BuildRequires: libmemcached-devel
BuildRequires: libssl-devel
BuildRequires: setproctitle-devel
Provides: pgpool2 = %EVR
Requires: postgresql-common
%description
pgpool-II is a inherited project of pgpool (to classify from
pgpool-II, it is sometimes called as pgpool-I). For those of
you not familiar with pgpool-I, it is a multi-functional
middle ware for PostgreSQL that features connection pooling,
replication and load balancing functions. pgpool-I allows a
user to connect at most two PostgreSQL servers for higher
availability or for higher search performance compared to a
single PostgreSQL server.
%package -n libpcp
Summary: lib files for %name
Group: System/Libraries
Provides: %name-lib = %EVR
Obsoletes: %name-lib < %EVR
%description -n libpcp
lib files for %name.
%package -n libpcp-devel
Summary: The development files for pgpool-II
Group: Development/C
Provides: %name-devel = %EVR
Obsoletes: %name-devel < %EVR
Requires: libpcp = %EVR
%description -n libpcp-devel
Development headers and libraries for pgpool-II.
%package -n postgresql%pg_ver-%name
Summary: Postgresql extensions for pgpool-II
Group: Databases
Requires: postgresql%pg_ver-server
%description -n postgresql%pg_ver-%name
Postgresql extensions libraries and sql files for pgpool-II.
%prep
%setup -q
%patch -p1
%build
%autoreconf
%configure \
--disable-static \
--with-pam \
--with-openssl \
--disable-rpath \
--with-memcached=%_includedir/libmemcached \
--sysconfdir=%_sysconfdir/%sname
%make_build
%make_build -C src/sql/pgpool-recovery
%make_build -C src/sql/pgpool-regclass
%install
%make DESTDIR=%buildroot install
%make DESTDIR=%buildroot install -C src/sql/pgpool-recovery
%make DESTDIR=%buildroot install -C src/sql/pgpool-regclass
mkdir -p %buildroot{{%_logdir,%_datadir}/%sname,%_unitdir,%_initdir,%_tmpfilesdir,%_man1dir,%_man8dir}
install -p -m644 %SOURCE1 %buildroot%_unitdir/%sname.service
install -p -m644 %SOURCE2 %buildroot%_tmpfilesdir/%sname.conf
install -p -m755 %SOURCE3 %buildroot%_initdir/%sname
install -p -m644 -D %SOURCE4 %buildroot%_sysconfdir/sysconfig/%sname
mv %buildroot%_sysconfdir/%sname/pcp.conf.sample %buildroot%_sysconfdir/%sname/pcp.conf
mv %buildroot%_sysconfdir/%sname/pgpool.conf.sample %buildroot%_sysconfdir/%sname/pgpool.conf
mv %buildroot%_sysconfdir/%sname/pool_hba.conf.sample %buildroot%_sysconfdir/%sname/pool_hba.conf
mv %buildroot%_sysconfdir/%sname/failover.sh.sample %buildroot%_sysconfdir/%sname/failover.sh
mv %buildroot%_sysconfdir/%sname/follow_primary.sh.sample %buildroot%_sysconfdir/%sname/follow_primary.sh
mv %buildroot%_sysconfdir/%sname/pgpool_remote_start.sample %buildroot%_sysconfdir/%sname/pgpool_remote_start
mv %buildroot%_sysconfdir/%sname/recovery_1st_stage.sample %buildroot%_sysconfdir/%sname/recovery_1st_stage
mv %buildroot%_sysconfdir/%sname/pgpool.conf.sample-* %buildroot%_datadir/%sname/
# Copy man pages
cp doc/src/sgml/man1/* %buildroot%_man1dir/
cp doc/src/sgml/man8/* %buildroot%_man8dir/
rm -f %buildroot%_libdir/*.{a,la}
%post
# Migrate configs from pgpool < 4.2.1
if [ $1 -eq 2 ]; then
[ ! -f %_sysconfdir/pcp.conf ] || mv -f %_sysconfdir/pcp.conf %_sysconfdir/%sname/pcp.conf
[ ! -f %_sysconfdir/pgpool.conf ] || mv -f %_sysconfdir/pgpool.conf %_sysconfdir/%sname/pgpool.conf
[ ! -f %_sysconfdir/pool_hba.conf ] || mv -f %_sysconfdir/pool_hba.conf %_sysconfdir/%sname/pool_hba.conf
chown root:postgres %_sysconfdir/%sname/*
chmod 640 %_sysconfdir/%sname/*
fi
%post_service %sname
%preun
%preun_service %sname
%files
%doc NEWS COPYING src/sample
%_bindir/*
%_datadir/%name
%_datadir/%sname
%_initdir/*
%_unitdir/*
%_tmpfilesdir/*
%dir %attr(750,root,postgres) %_sysconfdir/%sname
%config(noreplace) %attr(640,root,postgres) %_sysconfdir/%sname/*
%config(noreplace) %_sysconfdir/sysconfig/%sname
%_man1dir/*
%_man8dir/*
%attr(1775,root,%sname) %dir %_logdir/%sname
%files -n libpcp-devel
%_includedir/*
%_libdir/libpcp.so
%files -n libpcp
%_libdir/libpcp.so.*
%files -n postgresql%pg_ver-%name
%_libdir/pgsql/*
%_datadir/pgsql/extension/*
%changelog
…
Full changelog you can see here
%define pg_ver %(c=%{full_ver}; echo ${c%%.*})
%define sname pgpool
Name: pgpool-II
Version: 4.2.7
Release: alt1
Summary: Pgpool is a connection pooling/replication server for PostgreSQL
License: BSD
Group: Databases
Url: http://www.pgpool.net
Source: %name-%version.tar
Source1: pgpool.service
Source2: pgpool.tmpfiles
Source3: pgpool.init
Source4: pgpool.sysconfig
Patch: 0001-Update-path-for-socket-and-log.patch
BuildRequires: flex
BuildRequires: postgresql-devel
BuildRequires: pam-devel
BuildRequires: libmemcached-devel
BuildRequires: libssl-devel
BuildRequires: setproctitle-devel
Provides: pgpool2 = %EVR
Requires: postgresql-common
%description
pgpool-II is a inherited project of pgpool (to classify from
pgpool-II, it is sometimes called as pgpool-I). For those of
you not familiar with pgpool-I, it is a multi-functional
middle ware for PostgreSQL that features connection pooling,
replication and load balancing functions. pgpool-I allows a
user to connect at most two PostgreSQL servers for higher
availability or for higher search performance compared to a
single PostgreSQL server.
%package -n libpcp
Summary: lib files for %name
Group: System/Libraries
Provides: %name-lib = %EVR
Obsoletes: %name-lib < %EVR
%description -n libpcp
lib files for %name.
%package -n libpcp-devel
Summary: The development files for pgpool-II
Group: Development/C
Provides: %name-devel = %EVR
Obsoletes: %name-devel < %EVR
Requires: libpcp = %EVR
%description -n libpcp-devel
Development headers and libraries for pgpool-II.
%package -n postgresql%pg_ver-%name
Summary: Postgresql extensions for pgpool-II
Group: Databases
Requires: postgresql%pg_ver-server
%description -n postgresql%pg_ver-%name
Postgresql extensions libraries and sql files for pgpool-II.
%prep
%setup -q
%patch -p1
%build
%autoreconf
%configure \
--disable-static \
--with-pam \
--with-openssl \
--disable-rpath \
--with-memcached=%_includedir/libmemcached \
--sysconfdir=%_sysconfdir/%sname
%make_build
%make_build -C src/sql/pgpool-recovery
%make_build -C src/sql/pgpool-regclass
%install
%make DESTDIR=%buildroot install
%make DESTDIR=%buildroot install -C src/sql/pgpool-recovery
%make DESTDIR=%buildroot install -C src/sql/pgpool-regclass
mkdir -p %buildroot{{%_logdir,%_datadir}/%sname,%_unitdir,%_initdir,%_tmpfilesdir,%_man1dir,%_man8dir}
install -p -m644 %SOURCE1 %buildroot%_unitdir/%sname.service
install -p -m644 %SOURCE2 %buildroot%_tmpfilesdir/%sname.conf
install -p -m755 %SOURCE3 %buildroot%_initdir/%sname
install -p -m644 -D %SOURCE4 %buildroot%_sysconfdir/sysconfig/%sname
mv %buildroot%_sysconfdir/%sname/pcp.conf.sample %buildroot%_sysconfdir/%sname/pcp.conf
mv %buildroot%_sysconfdir/%sname/pgpool.conf.sample %buildroot%_sysconfdir/%sname/pgpool.conf
mv %buildroot%_sysconfdir/%sname/pool_hba.conf.sample %buildroot%_sysconfdir/%sname/pool_hba.conf
mv %buildroot%_sysconfdir/%sname/failover.sh.sample %buildroot%_sysconfdir/%sname/failover.sh
mv %buildroot%_sysconfdir/%sname/follow_primary.sh.sample %buildroot%_sysconfdir/%sname/follow_primary.sh
mv %buildroot%_sysconfdir/%sname/pgpool_remote_start.sample %buildroot%_sysconfdir/%sname/pgpool_remote_start
mv %buildroot%_sysconfdir/%sname/recovery_1st_stage.sample %buildroot%_sysconfdir/%sname/recovery_1st_stage
mv %buildroot%_sysconfdir/%sname/pgpool.conf.sample-* %buildroot%_datadir/%sname/
# Copy man pages
cp doc/src/sgml/man1/* %buildroot%_man1dir/
cp doc/src/sgml/man8/* %buildroot%_man8dir/
rm -f %buildroot%_libdir/*.{a,la}
%post
# Migrate configs from pgpool < 4.2.1
if [ $1 -eq 2 ]; then
[ ! -f %_sysconfdir/pcp.conf ] || mv -f %_sysconfdir/pcp.conf %_sysconfdir/%sname/pcp.conf
[ ! -f %_sysconfdir/pgpool.conf ] || mv -f %_sysconfdir/pgpool.conf %_sysconfdir/%sname/pgpool.conf
[ ! -f %_sysconfdir/pool_hba.conf ] || mv -f %_sysconfdir/pool_hba.conf %_sysconfdir/%sname/pool_hba.conf
chown root:postgres %_sysconfdir/%sname/*
chmod 640 %_sysconfdir/%sname/*
fi
%post_service %sname
%preun
%preun_service %sname
%files
%doc NEWS COPYING src/sample
%_bindir/*
%_datadir/%name
%_datadir/%sname
%_initdir/*
%_unitdir/*
%_tmpfilesdir/*
%dir %attr(750,root,postgres) %_sysconfdir/%sname
%config(noreplace) %attr(640,root,postgres) %_sysconfdir/%sname/*
%config(noreplace) %_sysconfdir/sysconfig/%sname
%_man1dir/*
%_man8dir/*
%attr(1775,root,%sname) %dir %_logdir/%sname
%files -n libpcp-devel
%_includedir/*
%_libdir/libpcp.so
%files -n libpcp
%_libdir/libpcp.so.*
%files -n postgresql%pg_ver-%name
%_libdir/pgsql/*
%_datadir/pgsql/extension/*
%changelog
…
Full changelog you can see here