#
%define beta %{nil}
-%define pgver 10
-%define pgminver 5
+%define pgsqlversion 10
+%define pgsqlpriority 100
Summary: PostgreSQL Data Base Management System
Summary(de.UTF-8): PostgreSQL Datenbankverwaltungssystem
Summary(tr.UTF-8): Veri Tabanı Yönetim Sistemi
Summary(uk.UTF-8): PostgreSQL - система керування базами даних
Summary(zh_CN.UTF-8): PostgreSQL 客户端程序和库文件
-Name: postgresql%{pgver}
-Version: %{pgver}.%{pgminver}
-Release: 1.1
+Name: postgresql-%{pgsqlversion}
+Version: %{pgsqlversion}.5
+Release: 2
License: BSD
Group: Applications/Databases
Source0: http://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2
Patch4: postgresql-disable_horology_test.patch
Patch5: postgresql-heimdal.patch
Patch6: postgresql-link.patch
+Patch7: socket-dir-fixes.patch
URL: http://www.postgresql.org/
BuildRequires: autoconf >= 2.69
BuildRequires: automake
Requires(pre): /usr/bin/getgid
Requires(triggerpostun): /bin/id
Requires(triggerpostun): /usr/sbin/usermod
-Requires: %{name}-clients >= %{version}-%{release}
+Requires: %{name}-clients = %{version}-%{release}
Requires: %{name}-dirs = %{version}-%{release}
-Requires: postgresql-libs = %{version}-%{release}
+Requires: postgresql-libs >= %{version}-%{release}
Requires: rc-scripts >= 0.4.3.0
Requires: tzdata
Obsoletes: postgresql
Obsoletes: postgresql-test
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define pgsqldatadir %{_datadir}/postgresql/%{pgver}
-%define pgsqllibdir %{_libdir}/postgresql/%{pgver}
+%define pgsqldatadir %{_datadir}/postgresql/%{pgsqlversion}
+%define pgsqllibdir %{_libdir}/postgresql/%{pgsqlversion}
%define moduledir %{pgsqllibdir}/lib
%define extensiondir %{pgsqldatadir}/extension
PostgreSQL - wspólne pliki i katalogi.
%package dirs
-Summary: Common directories for PostgresSQL %{pgver}
-Summary(pl.UTF-8): Wspólne pliki i katalogi dla PostgreSQL %{pgver}
+Summary: Common directories for PostgresSQL %{pgsqlversion}
+Summary(pl.UTF-8): Wspólne pliki i katalogi dla PostgreSQL %{pgsqlversion}
Group: Applicataion/Databases
%description dirs
-Common directories for PostgresSQL %{pgver}
+Common directories for PostgresSQL %{pgsqlversion}
%description dirs -l pl.UTF-8
-Wspólne pliki i katalogi dla PostgreSQL %{pgver}
+Wspólne pliki i katalogi dla PostgreSQL %{pgsqlversion}
%package -n postgresql-devel
Summary: PostgreSQL development header files and libraries
Summary(uk.UTF-8): PostgreSQL - хедери та бібліотеки програміста
Group: Development/Libraries
Requires: alternatives
-Requires: postgresql-libs = %{version}-%{release}
+Requires: postgresql-libs >= %{version}-%{release}
%description -n postgresql-devel
This package contains header files and libraries required to compile
Summary: PostgreSQL backend development header files
Summary(pl.UTF-8): PostgreSQL - pliki nagłówkowe dla backendu
Group: Development/Libraries
-Requires: postgresql-devel = %{version}-%{release}
-Requires: postgresql-libs = %{version}-%{release}
+Requires: postgresql-devel >= %{version}-%{release}
+Requires: postgresql-libs >= %{version}-%{release}
Obsoletes: postgresql-backend-devel
%description backend-devel
Group: Applications/Databases
Requires: alternatives
Requires: %{name}-dirs = %{version}-%{release}
-Requires: postgresql-libs = %{version}-%{release}
+Requires: postgresql-libs >= %{version}-%{release}
Obsoletes: postgresql-clients
%description clients
Summary(pt_BR.UTF-8): Biblioteca compartilhada do PostgreSQL
Summary(zh_CN.UTF-8): PostgreSQL 客户所需要的共享库
Group: Libraries
-Requires: postgresql-common = %{version}-%{release}
+Requires: postgresql-common >= %{version}-%{release}
%description -n postgresql-libs
PostgreSQL shared libraries.
Summary(pl.UTF-8): Interfejs wbudowanego SQL-a w język C
Group: Libraries
Requires: %{name}-dirs = %{version}-%{release}
-Requires: postgresql-libs = %{version}-%{release}
-Requires: postgresql-ecpg-libs = %{version}-%{release}
+Requires: postgresql-libs >= %{version}-%{release}
+Requires: postgresql-ecpg-libs >= %{version}-%{release}
Obsoletes: postgresql-ecpg
%description ecpg
Summary: Embedded SQL in C interface files
Summary(pl.UTF-8): Pliki programistyczne interfejsu wbudowanego SQL-a w język C
Group: Development/Libraries
-Requires: postgresql-devel = %{version}-%{release}
-Requires: postgresql-ecpg-devel = %{version}-%{release}
+Requires: postgresql-devel >= %{version}-%{release}
+Requires: postgresql-ecpg-devel >= %{version}-%{release}
%description -n postgresql-ecpg-devel
Embedded SQL in C interface files.
Summary(ru.UTF-8): Статические библиотеки для программирования с PostgreSQL
Summary(uk.UTF-8): Статичні бібліотеки для програмування з PostgreSQL
Group: Development/Libraries
-Requires: postgresql-devel = %{version}-%{release}
+Requires: postgresql-devel >= %{version}-%{release}
%description -n postgresql-ecpg-static
PostgreSQL static libraries.
Summary(ru.UTF-8): Статические библиотеки для программирования с PostgreSQL
Summary(uk.UTF-8): Статичні бібліотеки для програмування з PostgreSQL
Group: Development/Libraries
-Requires: postgresql-devel = %{version}-%{release}
+Requires: postgresql-devel >= %{version}-%{release}
%description -n postgresql-static
PostgreSQL static libraries.
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
# force rebuild of bison/flex files
find src -name \*.l -o -name \*.y | xargs touch
--datadir=%{pgsqldatadir} \
--libdir=%{_libdir} \
--docdir=%{pgsqldatadir}/doc \
+ --localedir=%{_datadir}/locale \
--disable-rpath \
--enable-depend \
%{?with_systemtap:--enable-dtrace} \
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig}} \
- $RPM_BUILD_ROOT/var/{lib/pgsql,log} \
+ $RPM_BUILD_ROOT/var/{lib/postgresql/%{pgsqlversion},log,run/postgresql} \
$RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
- $RPM_BUILD_ROOT%{_mandir}
+ $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1}
install src/tutorial/*.sql $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
touch $RPM_BUILD_ROOT/var/log/pgsql
-sed -e 's,@pgsqlbindir@,%{pgsqllibdir}/bin,g' %{SOURCE1} >$RPM_BUILD_ROOT/etc/rc.d/init.d/postgresql10
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/postgresql10
+sed -e 's,@pgsqlbindir@,%{pgsqllibdir}/bin,g; s,@pgsqlversion@,%{pgsqlversion},g;' %{SOURCE1} >$RPM_BUILD_ROOT/etc/rc.d/init.d/postgresql-%{pgsqlversion}
+sed -e 's,@pgsqlversion@,%{pgsqlversion},g;' %{SOURCE3} >$RPM_BUILD_ROOT/etc/sysconfig/postgresql-%{pgsqlversion}
install -d howto
tar zxf %{SOURCE2} -C howto
for f in libpq5 pgscripts postgres psql initdb ecpg ecpglib6 \
plpgsql %{?with_perl:plperl} %{?with_python:plpython} \
pg_archivecleanup pg_basebackup pg_config pg_controldata pg_ctl pg_dump pg_resetwal pg_rewind pg_test_fsync pg_test_timing pg_upgrade pg_waldump; do
- %find_lang $f-%{pgver}
+ %find_lang $f-%{pgsqlversion}
done
# merge locales
merge_lang() {
- cat $(for f in $@; do echo ${f}-%{pgver}.lang ; done)
+ cat $(for f in $@; do echo ${f}-%{pgsqlversion}.lang ; done)
}
merge_lang pgscripts postgres plpgsql \
pg_basebackup pg_controldata pg_resetwal pg_rewind pg_upgrade pg_test_fsync pg_test_timing pg_waldump > main.lang
pg_archivecleanup pg_ctl pg_dump > clients.lang
%if %{with tcl}
-%find_lang pltcl-%{pgver}
+%find_lang pltcl-%{pgsqlversion}
%endif
%if %{with selinux}
%{__mv} $RPM_BUILD_ROOT{%{pgsqldatadir}/contrib,%{extensiondir}}/sepgsql.sql
%endif
-cp -p src/pl/plperl/ppport.h $RPM_BUILD_ROOT%{_includedir}/postgresql/%{pgver}/server/
+cp -p src/pl/plperl/ppport.h $RPM_BUILD_ROOT%{_includedir}/postgresql/%{pgsqlversion}/server/
+
+%{__mv} $RPM_BUILD_ROOT{%{pgsqllibdir}/bin,%{_bindir}}/pg_config
+%{__mv} $RPM_BUILD_ROOT{%{pgsqldatadir}/man,%{_mandir}}/man1/pg_config.1
# package it...? nah, why bother.
%{__rm} -r $RPM_BUILD_ROOT%{pgsqldatadir}/doc/html
%pre
PG_DB_CLUSTERS=""
-if [ -f /etc/sysconfig/postgresql10 ]; then
- . /etc/sysconfig/postgresql10
+if [ -f /etc/sysconfig/postgresql-%{pgsqlversion} ]; then
+ . /etc/sysconfig/postgresql-%{pgsqlversion}
if [ -z "$PG_DB_CLUSTERS" -a -n "$POSTGRES_DATA_DIR" ]; then
PG_DB_CLUSTERS="$POSTGRES_DATA_DIR"
fi
foundold=0
for pgdir in $PG_DB_CLUSTERS; do
if [ -f $pgdir/PG_VERSION ]; then
- if [ $(cat $pgdir/PG_VERSION) != '%{pgver}' ]; then
+ if [ $(cat $pgdir/PG_VERSION) != '%{pgsqlversion}' ]; then
echo "Found database(s) in older, incompatible format in cluster $pgdir."
foundold=1
fi
exit 1
fi
-%triggerpostun -- %{name} < 7.2-2
-if [ -n "`/bin/id -u postgres 2>/dev/null`" ]; then
- /usr/sbin/usermod -d /home/services/postgres postgres
-fi
-
-%triggerpostun -- %{name} < 10.2-2
+%triggerpostun -- postgresql < 10.5-2
if [ -n "`/bin/id -u postgres 2>/dev/null`" ]; then
- /usr/sbin/usermod -d /var/lib/pgsql postgres
+ /usr/sbin/usermod -d /var/lib/postgresql postgres
fi
+echo
+echo "This version of PostgreSQL uses new default location for database clusters."
+echo "Please move your existing clusters before starting PostgreSQL so they follow"
+echo "below scheme:"
+echo
+echo "/var/lib/postgresql/<version>/<name>"
+echo
+echo "where <version> means PostgreSQL version like 9.6 or 10 and name is cluster"
+echo "name of your choice. When done, be sure to update /etc/sysconfig/postgresql*"
+echo "files so they reflect your changes."
+echo
%post
-/sbin/chkconfig --add postgresql10
-%service postgresql10 restart "postgresql10 server"
+/sbin/chkconfig --add postgresql-%{pgsqlversion}
+%service postgresql-%{pgsqlversion} restart "postgresql-%{pgsqlversion} server"
%preun
if [ "$1" = "0" ]; then
- %service postgresql10 stop
- /sbin/chkconfig --del postgresql10
+ %service postgresql-%{pgsqlversion} stop
+ /sbin/chkconfig --del postgresql-%{pgsqlversion}
fi
%pre -n postgresql-common
%groupadd -g 88 -r postgres
-%useradd -M -o -r -u 88 -d /var/lib/pgsql -s /bin/sh -g postgres -c "PostgreSQL Server" postgres
+%useradd -M -o -r -u 88 -d /var/lib/postgresql -s /bin/sh -g postgres -c "PostgreSQL Server" postgres
-%post clients
+%posttrans clients
update-alternatives \
- --install %{_bindir}/clusterdb clusterdb %{pgsqllibdir}/bin/clusterdb %{pgver}%{pgminver} \
+ --install %{_bindir}/clusterdb clusterdb %{pgsqllibdir}/bin/clusterdb %{pgsqlpriority} \
--slave %{_mandir}/man1/clusterdb.1 clusterdb.1 %{pgsqldatadir}/man/man1/clusterdb.1* || :
update-alternatives \
- --install %{_bindir}/createdb createdb %{pgsqllibdir}/bin/createdb %{pgver}%{pgminver} \
+ --install %{_bindir}/createdb createdb %{pgsqllibdir}/bin/createdb %{pgsqlpriority} \
--slave %{_mandir}/man1/createdb.1 createdb.1 %{pgsqldatadir}/man/man1/createdb.1* || :
update-alternatives \
- --install %{_bindir}/createuser createuser %{pgsqllibdir}/bin/createuser %{pgver}%{pgminver} \
+ --install %{_bindir}/createuser createuser %{pgsqllibdir}/bin/createuser %{pgsqlpriority} \
--slave %{_mandir}/man1/createuser.1 createuser.1 %{pgsqldatadir}/man/man1/createuser.1* || :
update-alternatives \
- --install %{_bindir}/dropdb dropdb %{pgsqllibdir}/bin/dropdb %{pgver}%{pgminver} \
+ --install %{_bindir}/dropdb dropdb %{pgsqllibdir}/bin/dropdb %{pgsqlpriority} \
--slave %{_mandir}/man1/dropdb.1 dropdb.1 %{pgsqldatadir}/man/man1/dropdb.1* || :
update-alternatives \
- --install %{_bindir}/dropuser dropuser %{pgsqllibdir}/bin/dropuser %{pgver}%{pgminver} \
+ --install %{_bindir}/dropuser dropuser %{pgsqllibdir}/bin/dropuser %{pgsqlpriority} \
--slave %{_mandir}/man1/dropuser.1 dropuser.1 %{pgsqldatadir}/man/man1/dropuser.1* || :
update-alternatives \
- --install %{_bindir}/pg_archivecleanup pg_archivecleanup %{pgsqllibdir}/bin/pg_archivecleanup %{pgver}%{pgminver} \
+ --install %{_bindir}/pg_archivecleanup pg_archivecleanup %{pgsqllibdir}/bin/pg_archivecleanup %{pgsqlpriority} \
--slave %{_mandir}/man1/pg_archivecleanup.1 pg_archivecleanup.1 %{pgsqldatadir}/man/man1/pg_archivecleanup.1* || :
update-alternatives \
- --install %{_bindir}/pg_dump pg_dump %{pgsqllibdir}/bin/pg_dump %{pgver}%{pgminver} \
+ --install %{_bindir}/pg_dump pg_dump %{pgsqllibdir}/bin/pg_dump %{pgsqlpriority} \
--slave %{_mandir}/man1/pg_dump.1 pg_dump.1 %{pgsqldatadir}/man/man1/pg_dump.1* || :
update-alternatives \
- --install %{_bindir}/pg_dumpall pg_dumpall %{pgsqllibdir}/bin/pg_dumpall %{pgver}%{pgminver} \
+ --install %{_bindir}/pg_dumpall pg_dumpall %{pgsqllibdir}/bin/pg_dumpall %{pgsqlpriority} \
--slave %{_mandir}/man1/pg_dumpall.1 pg_dumpall.1 %{pgsqldatadir}/man/man1/pg_dumpall.1* || :
update-alternatives \
- --install %{_bindir}/pg_isready pg_isready %{pgsqllibdir}/bin/pg_isready %{pgver}%{pgminver} \
+ --install %{_bindir}/pg_isready pg_isready %{pgsqllibdir}/bin/pg_isready %{pgsqlpriority} \
--slave %{_mandir}/man1/pg_isready.1 pg_isready.1 %{pgsqldatadir}/man/man1/pg_isready.1* || :
update-alternatives \
- --install %{_bindir}/pg_restore pg_restore %{pgsqllibdir}/bin/pg_restore %{pgver}%{pgminver} \
+ --install %{_bindir}/pg_restore pg_restore %{pgsqllibdir}/bin/pg_restore %{pgsqlpriority} \
--slave %{_mandir}/man1/pg_restore.1 pg_restore.1 %{pgsqldatadir}/man/man1/pg_restore.1* || :
update-alternatives \
- --install %{_bindir}/psql psql %{pgsqllibdir}/bin/psql %{pgver}%{pgminver} \
+ --install %{_bindir}/psql psql %{pgsqllibdir}/bin/psql %{pgsqlpriority} \
--slave %{_mandir}/man1/psql.1 pgsql.1 %{pgsqldatadir}/man/man1/psql.1* || :
update-alternatives \
- --install %{_bindir}/reindexdb reindexdb %{pgsqllibdir}/bin/reindexdb %{pgver}%{pgminver} \
+ --install %{_bindir}/reindexdb reindexdb %{pgsqllibdir}/bin/reindexdb %{pgsqlpriority} \
--slave %{_mandir}/man1/reindexdb.1 reindexdb.1 %{pgsqldatadir}/man/man1/reindexdb.1* || :
update-alternatives \
- --install %{_bindir}/vacuumdb vacuumdb %{pgsqllibdir}/bin/vacuumdb %{pgver}%{pgminver} \
+ --install %{_bindir}/vacuumdb vacuumdb %{pgsqllibdir}/bin/vacuumdb %{pgsqlpriority} \
--slave %{_mandir}/man1/vacuumdb.1 vacuumdb.1 %{pgsqldatadir}/man/man1/vacuumdb.1* || :
%postun clients
update-alternatives --remove vacuumdb %{pgsqllibdir}/bin/vacuumdb || :
fi
-%post -n postgresql-devel
-update-alternatives \
- --install %{_bindir}/pg_config pg_config %{pgsqllibdir}/bin/pg_config %{pgver}%{pgminver} \
- --slave %{_mandir}/man1/pg_config.1 pg_config.1 %{pgsqldatadir}/man/man1/pg_config.1* || :
-
%postun -n postgresql-devel
update-alternatives --remove pg_config %{pgsqllibdir}/bin/pg_config || :
-
%post -n postgresql-libs -p /sbin/ldconfig
%postun -n postgresql-libs -p /sbin/ldconfig
%files -f main.lang
%defattr(644,root,root,755)
%doc COPYRIGHT README HISTORY doc/{bug.template,KNOWN_BUGS,MISSING_FEATURES,TODO}
-%attr(754,root,root) /etc/rc.d/init.d/postgresql10
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postgresql10
+%attr(754,root,root) /etc/rc.d/init.d/postgresql-%{pgsqlversion}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postgresql-%{pgsqlversion}
%attr(755,root,root) %{pgsqllibdir}/bin/initdb
%attr(755,root,root) %{pgsqllibdir}/bin/pg_basebackup
%defattr(644,root,root,755)
%dir %{_libdir}/postgresql
%dir %{_datadir}/postgresql
-%attr(700,postgres,postgres) %dir /var/lib/pgsql
+%attr(700,postgres,postgres) %dir /var/lib/postgresql
+%attr(700,postgres,postgres) %dir /var/run/postgresql
%files dirs
%defattr(644,root,root,755)
%dir %{pgsqldatadir}/man/man1
%dir %{pgsqldatadir}/man/man3
%dir %{pgsqldatadir}/man/man7
+%attr(700,postgres,postgres) %dir /var/lib/postgresql/%{pgsqlversion}
%files doc
%defattr(644,root,root,755)
%doc doc/src/sgml/html howto
%{_examplesdir}/%{name}-%{version}
-%files -n postgresql-libs -f libpq5-%{pgver}.lang
+%files -n postgresql-libs -f libpq5-%{pgsqlversion}.lang
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libpq.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libpq.so.5
-%files ecpg -f ecpg-%{pgver}.lang
+%files ecpg -f ecpg-%{pgsqlversion}.lang
%defattr(644,root,root,755)
%attr(755,root,root) %{pgsqllibdir}/bin/ecpg
%{pgsqldatadir}/man/man1/ecpg.1*
-%files -n postgresql-ecpg-libs -f ecpglib6-%{pgver}.lang
+%files -n postgresql-ecpg-libs -f ecpglib6-%{pgsqlversion}.lang
%attr(755,root,root) %{_libdir}/libecpg.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libecpg.so.6
%attr(755,root,root) %{_libdir}/libecpg_compat.so.*.*
%{_libdir}/libecpg_compat.a
%{_libdir}/libpgtypes.a
-%files -n postgresql-devel -f pg_config-%{pgver}.lang
+%files -n postgresql-devel -f pg_config-%{pgsqlversion}.lang
%defattr(644,root,root,755)
-%attr(755,root,root) %{pgsqllibdir}/bin/pg_config
+%attr(755,root,root) %{_bindir}/pg_config
%attr(755,root,root) %{_libdir}/libpq.so
%dir %{_includedir}/postgresql
%{_includedir}/libpq-events.h
%{_includedir}/postgresql/internal/libpq
%{_includedir}/libpq
%{_libdir}/pkgconfig/libpq.pc
-%{pgsqldatadir}/man/man1/pg_config.1*
+%{_mandir}/man1/pg_config.1*
%files backend-devel
%defattr(644,root,root,755)
-%dir %{_includedir}/postgresql/%{pgver}
-%{_includedir}/postgresql/%{pgver}/server
+%dir %{_includedir}/postgresql/%{pgsqlversion}
+%{_includedir}/postgresql/%{pgsqlversion}/server
%dir %{moduledir}/pgxs
%attr(755,root,root) %{moduledir}/pgxs/config
%{moduledir}/pgxs/src
%{pgsqldatadir}/man/man7/*.7*
%if %{with perl}
-%files module-plperl -f plperl-%{pgver}.lang
+%files module-plperl -f plperl-%{pgsqlversion}.lang
%defattr(644,root,root,755)
%attr(755,root,root) %{moduledir}/plperl.so
%{extensiondir}/plperl--*.sql
%endif
%if %{with python}
-%files module-plpython -f plpython-%{pgver}.lang
+%files module-plpython -f plpython-%{pgsqlversion}.lang
%defattr(644,root,root,755)
%attr(755,root,root) %{moduledir}/plpython2.so
%{extensiondir}/plpython*--*.sql
%endif
%if %{with tcl}
-%files module-pltcl -f pltcl-%{pgver}.lang
+%files module-pltcl -f pltcl-%{pgsqlversion}.lang
%defattr(644,root,root,755)
%attr(755,root,root) %{moduledir}/pltcl.so
%{extensiondir}/pltcl*--*.sql