devel: guard against incompabtible plugin installation
Each package having some *.so plugin for postgresql-server should be rebuilt against each major version bump of PostgreSQL. Using this statements in F21+ BuildRequires: postgresql-devel Require: postgresql-server(:MODULE_COMPAT_%{postgresql_major}) then automatically blocks installation of postgresql-server and incompatible plugin at the same time and thus indirectly forces plugin maintainers to rebuild their packages against newer server. File macros.postgresql now starts providing correct %{postgresql_major} macro. Resolves: #1008939 Version: 9.3.4-8
This commit is contained in:
parent
bf770dd7e1
commit
4f1d2a0833
@ -60,6 +60,9 @@
|
|||||||
# _pkgdocdir is defined in fc20+, remove once f19 is dead
|
# _pkgdocdir is defined in fc20+, remove once f19 is dead
|
||||||
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
||||||
|
|
||||||
|
# https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_of_Additional_RPM_Macros
|
||||||
|
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
|
||||||
|
|
||||||
Summary: PostgreSQL client programs
|
Summary: PostgreSQL client programs
|
||||||
Name: postgresql
|
Name: postgresql
|
||||||
%global majorversion 9.3
|
%global majorversion 9.3
|
||||||
@ -208,6 +211,12 @@ Requires(postun): systemd-units
|
|||||||
# should fire just after this package is installed.
|
# should fire just after this package is installed.
|
||||||
Requires(post): systemd-sysv
|
Requires(post): systemd-sysv
|
||||||
Requires(post): chkconfig
|
Requires(post): chkconfig
|
||||||
|
# Packages which provide postgresql plugins should build-require
|
||||||
|
# postgresql-devel and require
|
||||||
|
# postgresql-server(:MODULE_COMPAT_%%{postgresql_major}).
|
||||||
|
# This will automatically guard against incompatible server & plugin
|
||||||
|
# installation (#1008939, #1007840)
|
||||||
|
Provides: %{name}-server(:MODULE_COMPAT_%{majorversion})
|
||||||
|
|
||||||
%description server
|
%description server
|
||||||
PostgreSQL is an advanced Object-Relational database management system (DBMS).
|
PostgreSQL is an advanced Object-Relational database management system (DBMS).
|
||||||
@ -623,6 +632,10 @@ make DESTDIR=$RPM_BUILD_ROOT install-world
|
|||||||
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/pgsql/contrib
|
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/pgsql/contrib
|
||||||
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/pgsql/extension
|
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/pgsql/extension
|
||||||
|
|
||||||
|
echo "%%%{name}_major %{majorversion}" > macros.%{name}
|
||||||
|
install -D -m 644 macros.%{name} \
|
||||||
|
$RPM_BUILD_ROOT%{macrosdir}/%{name}.macros
|
||||||
|
|
||||||
# multilib header hack; note pg_config.h is installed in two places!
|
# multilib header hack; note pg_config.h is installed in two places!
|
||||||
# we only apply this to known Red Hat multilib arches, per bug #177564
|
# we only apply this to known Red Hat multilib arches, per bug #177564
|
||||||
case `uname -i` in
|
case `uname -i` in
|
||||||
@ -1090,6 +1103,7 @@ fi
|
|||||||
%{_libdir}/pkgconfig/*.pc
|
%{_libdir}/pkgconfig/*.pc
|
||||||
%{_mandir}/man1/ecpg.*
|
%{_mandir}/man1/ecpg.*
|
||||||
%{_mandir}/man3/SPI_*
|
%{_mandir}/man3/SPI_*
|
||||||
|
%{macrosdir}/*
|
||||||
|
|
||||||
%if %upgrade
|
%if %upgrade
|
||||||
%files upgrade
|
%files upgrade
|
||||||
@ -1136,9 +1150,11 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Jun 25 2014 Pavel Raiskup <praiskup@redhat.com> - 9.3.4-8
|
* Fri Jul 18 2014 Pavel Raiskup <praiskup@redhat.com> - 9.3.4-8
|
||||||
- provide postgresql-doc for postgresql-docs package (#1086420)
|
- provide postgresql-doc for postgresql-docs package (#1086420)
|
||||||
- move html documentation to *-docs subpackage (#1086420)
|
- move html documentation to *-docs subpackage (#1086420)
|
||||||
|
- provide postgresql-server(:MODULE_COMPAT_%%{postgresql_major}) to guard
|
||||||
|
against incompatible plugin installation (#1008939)
|
||||||
|
|
||||||
* Thu Jun 19 2014 Pavel Raiskup <praiskup@redhat.com> - 9.3.4-7
|
* Thu Jun 19 2014 Pavel Raiskup <praiskup@redhat.com> - 9.3.4-7
|
||||||
- OOM handling compatible with 9.5+, by Tom Lane (#1110969)
|
- OOM handling compatible with 9.5+, by Tom Lane (#1110969)
|
||||||
|
Loading…
Reference in New Issue
Block a user