#
%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: 2
+Name: postgresql-%{pgsqlversion}
+Version: %{pgsqlversion}.5
+Release: 4
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
+Requires: postgresql-common
%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
%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/pgsql/<version>/<name>"
+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
%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
%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
-%posttrans -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