682ed4
# This is the PostgreSQL Global Development Group Official RPMset spec file,
682ed4
# or a derivative thereof.
682ed4
# Copyright 2003-2009 Lamar Owen <lowen@pari.edu> <lamar.owen@wgcr.org>
682ed4
# and others listed.                 ** vi: ts=4 sw=4 noexpandtab nosmarttab
682ed4
682ed4
# Major Contributors:
682ed4
# ---------------
682ed4
# Lamar Owen
682ed4
# Trond Eivind Glomsrd <teg@redhat.com>
682ed4
# Thomas Lockhart
682ed4
# Reinhard Max
682ed4
# Karl DeBisschop
682ed4
# Peter Eisentraut
682ed4
# Joe Conway
682ed4
# Andrew Overholt
682ed4
# David Jee
682ed4
# Kaj J. Niemi
682ed4
# Sander Steffann
682ed4
# Tom Lane
682ed4
# and others in the Changelog....
682ed4
682ed4
# This spec file and ancillary files are licensed in accordance with
682ed4
# The PostgreSQL license.
682ed4
682ed4
# In this file you can find the default build package list macros.
682ed4
# These can be overridden by defining on the rpm command line:
682ed4
# rpm --define 'packagename 1' .... to force the package to build.
682ed4
# rpm --define 'packagename 0' .... to force the package NOT to build.
682ed4
# The base package, the libs package, the devel package, and the server package
682ed4
# always get built.
682ed4
682ed4
%{!?beta:%global beta 0}
682ed4
682ed4
%{!?test:%global test 1}
682ed4
# Disable temporarily to be able to build the package
682ed4
# tracked in RHBZ#1940964
682ed4
%{!?llvmjit:%global llvmjit 0}
682ed4
%{!?external_libpq:%global external_libpq 0}
682ed4
%{!?upgrade:%global upgrade 1}
682ed4
%{!?plpython3:%global plpython3 1}
682ed4
%{!?pltcl:%global pltcl 1}
682ed4
%{!?plperl:%global plperl 1}
682ed4
%{!?ssl:%global ssl 1}
682ed4
%{!?icu:%global icu 1}
682ed4
%{!?kerberos:%global kerberos 1}
682ed4
%{!?ldap:%global ldap 1}
682ed4
%{!?nls:%global nls 1}
682ed4
%{!?uuid:%global uuid 1}
682ed4
%{!?xml:%global xml 1}
682ed4
%{!?pam:%global pam 1}
682ed4
%{!?sdt:%global sdt 1}
682ed4
%{!?selinux:%global selinux 1}
682ed4
%{!?runselftest:%global runselftest 1}
682ed4
682ed4
# By default, patch(1) creates backup files when chunks apply with offsets.
682ed4
# Turn that off to ensure such files don't get included in RPMs.
682ed4
%global _default_patch_flags --no-backup-if-mismatch
682ed4
682ed4
# https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_of_Additional_RPM_Macros
682ed4
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
682ed4
682ed4
Summary: PostgreSQL client programs
682ed4
Name: postgresql
682ed4
%global majorversion 15
7413b7
Version: %{majorversion}.2
682ed4
Release: 1%{?dist}
682ed4
682ed4
# The PostgreSQL license is very similar to other MIT licenses, but the OSI
682ed4
# recognizes it as an independent license, so we do as well.
682ed4
License: PostgreSQL
682ed4
Url: http://www.postgresql.org/
682ed4
682ed4
# This SRPM includes a copy of the previous major release, which is needed for
682ed4
# in-place upgrade of an old database.  In most cases it will not be critical
682ed4
# that this be kept up with the latest minor release of the previous series;
682ed4
# but update when bugs affecting pg_dump output are fixed.
682ed4
%global prevmajorversion 13
682ed4
%global prevversion %{prevmajorversion}.7
682ed4
%global prev_prefix %{_libdir}/pgsql/postgresql-%{prevmajorversion}
682ed4
%global precise_version %{?epoch:%epoch:}%version-%release
682ed4
7413b7
%global setup_version 8.8
682ed4
682ed4
%global service_name postgresql.service
682ed4
682ed4
Source0: https://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2
682ed4
# The PDF file is generated by generate-pdf.sh, which see for comments
682ed4
Source1: postgresql-%{version}-US.pdf
682ed4
# generate-pdf.sh is not used during RPM build, but include for documentation
682ed4
Source2: generate-pdf.sh
682ed4
Source3: https://ftp.postgresql.org/pub/source/v%{prevversion}/postgresql-%{prevversion}.tar.bz2
682ed4
Source4: Makefile.regress
682ed4
Source9: postgresql.tmpfiles.d
682ed4
Source10: postgresql.pam
682ed4
Source11: postgresql-bashprofile
682ed4
682ed4
682ed4
# git: https://github.com/devexp-db/postgresql-setup
682ed4
Source12: https://github.com/devexp-db/postgresql-setup/releases/download/v%{setup_version}/postgresql-setup-%{setup_version}.tar.gz
682ed4
682ed4
# Those here are just to enforce packagers check that the tarball was downloaded
682ed4
# correctly.  Also, this allows us check that packagers-only tarballs do not
682ed4
# differ with publicly released ones.
682ed4
Source16: https://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2.sha256
682ed4
Source17: https://ftp.postgresql.org/pub/source/v%{prevversion}/postgresql-%{prevversion}.tar.bz2.sha256
682ed4
682ed4
# Comments for these patches are in the patch files.
682ed4
Patch1: rpm-pgsql.patch
682ed4
Patch2: postgresql-logging.patch
682ed4
Patch5: postgresql-var-run-socket.patch
682ed4
Patch8: postgresql-external-libpq.patch
682ed4
Patch9: postgresql-server-pg_config.patch
682ed4
Patch12: postgresql-no-libecpg.patch
682ed4
682ed4
BuildRequires: make
682ed4
BuildRequires: gcc
682ed4
BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex gawk
682ed4
BuildRequires: perl(ExtUtils::Embed), perl-devel
682ed4
BuildRequires: perl(Opcode)
682ed4
%if 0%{?fedora} || 0%{?rhel} > 7
682ed4
BuildRequires: perl-generators
682ed4
%endif
682ed4
BuildRequires: readline-devel zlib-devel
682ed4
BuildRequires: systemd systemd-devel util-linux
682ed4
BuildRequires: multilib-rpm-config
682ed4
%if %external_libpq
682ed4
BuildRequires: libpq-devel >= %version
682ed4
%endif
682ed4
BuildRequires: docbook-style-xsl
682ed4
682ed4
# postgresql-setup build requires
682ed4
BuildRequires: m4 elinks docbook-utils help2man
682ed4
682ed4
%if %plpython3
682ed4
BuildRequires: python3-devel
682ed4
%endif
682ed4
682ed4
%if %pltcl
682ed4
BuildRequires: tcl-devel
682ed4
%endif
682ed4
682ed4
%if %ssl
682ed4
BuildRequires: openssl-devel
682ed4
%endif
682ed4
682ed4
%if %kerberos
682ed4
BuildRequires: krb5-devel
682ed4
%endif
682ed4
682ed4
%if %ldap
682ed4
BuildRequires: openldap-devel
682ed4
%endif
682ed4
682ed4
%if %nls
682ed4
BuildRequires: gettext >= 0.10.35
682ed4
%endif
682ed4
682ed4
%if %uuid
682ed4
BuildRequires: uuid-devel
682ed4
%endif
682ed4
682ed4
%if %xml
682ed4
BuildRequires: libxml2-devel libxslt-devel
682ed4
%endif
682ed4
682ed4
%if %pam
682ed4
BuildRequires: pam-devel
682ed4
%endif
682ed4
682ed4
%if %sdt
682ed4
BuildRequires: systemtap-sdt-devel
682ed4
%endif
682ed4
682ed4
%if %selinux
682ed4
BuildRequires: libselinux-devel
682ed4
%endif
682ed4
682ed4
%if %icu
682ed4
BuildRequires:	libicu-devel
682ed4
%endif
682ed4
682ed4
# https://bugzilla.redhat.com/1464368
682ed4
# and do not provide pkgconfig RPM provides (RHBZ#1980992)
682ed4
%global __provides_exclude_from %{_libdir}/(pgsql|pkgconfig)
682ed4
682ed4
%description
682ed4
PostgreSQL is an advanced Object-Relational database management system (DBMS).
682ed4
The base postgresql package contains the client programs that you'll need to
682ed4
access a PostgreSQL DBMS server, as well as HTML documentation for the whole
682ed4
system.  These client programs can be located on the same machine as the
682ed4
PostgreSQL server, or on a remote machine that accesses a PostgreSQL server
682ed4
over a network connection.  The PostgreSQL server can be found in the
682ed4
postgresql-server sub-package.
682ed4
682ed4
682ed4
%if ! %external_libpq
682ed4
%package private-libs
682ed4
Summary: The shared libraries required only for this build of PostgreSQL server
682ed4
Group: Applications/Databases
682ed4
# for /sbin/ldconfig
682ed4
Requires(post): glibc
682ed4
Requires(postun): glibc
682ed4
682ed4
%description private-libs
682ed4
The postgresql-private-libs package provides the shared libraries for this
682ed4
build of PostgreSQL server and plugins build with this version of server.
682ed4
For shared libraries used by client packages that need to connect to a
682ed4
PostgreSQL server, install libpq package instead.
682ed4
682ed4
682ed4
%package private-devel
682ed4
Summary: PostgreSQL development header files for this build of PostgreSQL server
682ed4
Group: Development/Libraries
682ed4
Requires: %{name}-private-libs%{?_isa} = %precise_version
682ed4
# Conflict is desired here, a user must pick one or another
682ed4
Conflicts: libpq-devel
682ed4
682ed4
%description private-devel
682ed4
The postgresql-private-devel package contains the header files and libraries
682ed4
needed to compile C or C++ applications which will directly interact
682ed4
with a PostgreSQL database management server.
682ed4
You need to install this package if you want to develop applications which
682ed4
will interact with a PostgreSQL server.
682ed4
%endif
682ed4
682ed4
682ed4
%package server
682ed4
Summary: The programs needed to create and run a PostgreSQL server
682ed4
Requires: %{name}%{?_isa} = %precise_version
682ed4
Requires(pre): /usr/sbin/useradd
682ed4
# We require this to be present for %%{_prefix}/lib/tmpfiles.d
682ed4
Requires: systemd
682ed4
# Make sure it's there when scriptlets run, too
682ed4
%{?systemd_requires}
682ed4
# Packages which provide postgresql plugins should build-require
682ed4
# postgresql-server-devel and require
682ed4
# postgresql-server(:MODULE_COMPAT_%%{postgresql_major}).
682ed4
# This will automatically guard against incompatible server & plugin
682ed4
# installation (#1008939, #1007840)
682ed4
Provides: %{name}-server(:MODULE_COMPAT_%{majorversion})
682ed4
Provides: bundled(postgresql-setup) = %setup_version
682ed4
682ed4
%description server
682ed4
PostgreSQL is an advanced Object-Relational database management system (DBMS).
682ed4
The postgresql-server package contains the programs needed to create
682ed4
and run a PostgreSQL server, which will in turn allow you to create
682ed4
and maintain PostgreSQL databases.
682ed4
682ed4
682ed4
%package docs
682ed4
Summary: Extra documentation for PostgreSQL
682ed4
Requires: %{name}%{?_isa} = %precise_version
682ed4
# Just for more intuitive documentation installation
682ed4
Provides: %{name}-doc = %precise_version
682ed4
682ed4
%description docs
682ed4
The postgresql-docs package contains some additional documentation for
682ed4
PostgreSQL.  Currently, this includes the main documentation in PDF format
682ed4
and source files for the PostgreSQL tutorial.
682ed4
682ed4
682ed4
%package contrib
682ed4
Summary: Extension modules distributed with PostgreSQL
682ed4
Requires: %{name}%{?_isa} = %precise_version
682ed4
682ed4
%description contrib
682ed4
The postgresql-contrib package contains various extension modules that are
682ed4
included in the PostgreSQL distribution.
682ed4
682ed4
682ed4
%package server-devel
682ed4
Summary: PostgreSQL development header files and libraries
682ed4
%if %icu
682ed4
Requires:	libicu-devel
682ed4
%endif
682ed4
%if %kerberos
682ed4
Requires: krb5-devel
682ed4
%endif
682ed4
%if %llvmjit
682ed4
Requires: clang-devel llvm-devel
682ed4
%endif
682ed4
%if %external_libpq
682ed4
# Some extensions require libpq
682ed4
# Do not make them care about whether server uses private or system-wide
682ed4
# libpq, simply let the server pull the correct one
682ed4
Requires: libpq-devel
682ed4
%else
682ed4
Requires: %{name}-private-devel
682ed4
%endif
682ed4
682ed4
%description server-devel
682ed4
The postgresql-server-devel package contains the header files and configuration
682ed4
needed to compile PostgreSQL server extension.
682ed4
682ed4
%package test-rpm-macros
682ed4
Summary: Convenience RPM macros for build-time testing against PostgreSQL server
682ed4
Requires: %{name}-server = %precise_version
682ed4
BuildArch: noarch
682ed4
682ed4
%description test-rpm-macros
682ed4
This package is meant to be added as BuildRequires: dependency of other packages
682ed4
that want to run build-time testsuite against running PostgreSQL server.
682ed4
682ed4
682ed4
%package static
682ed4
Summary: Statically linked PostgreSQL libraries
682ed4
Requires: %{name}-server-devel%{?_isa} = %precise_version
682ed4
682ed4
%description static
682ed4
Statically linked PostgreSQL libraries that do not have dynamically linked
682ed4
counterparts.
682ed4
682ed4
682ed4
%if %upgrade
682ed4
%package upgrade
682ed4
Summary: Support for upgrading from the previous major release of PostgreSQL
682ed4
Requires: %{name}-server%{?_isa} = %precise_version
682ed4
Provides: bundled(postgresql-server) = %prevversion
682ed4
682ed4
%description upgrade
682ed4
The postgresql-upgrade package contains the pg_upgrade utility and supporting
682ed4
files needed for upgrading a PostgreSQL database from the previous major
682ed4
version of PostgreSQL.
682ed4
682ed4
682ed4
%package upgrade-devel
682ed4
Summary: Support for build of extensions required for upgrade process
682ed4
Requires: %{name}-upgrade%{?_isa} = %precise_version
682ed4
682ed4
%description upgrade-devel
682ed4
The postgresql-devel package contains the header files and libraries
682ed4
needed to compile C or C++ applications which are necessary in upgrade
682ed4
process.
682ed4
%endif
682ed4
682ed4
682ed4
%if %plperl
682ed4
%package plperl
682ed4
Summary: The Perl procedural language for PostgreSQL
682ed4
Requires: %{name}-server%{?_isa} = %precise_version
682ed4
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
682ed4
%if %runselftest
682ed4
BuildRequires: perl(Opcode)
682ed4
BuildRequires: perl(Data::Dumper)
682ed4
%endif
682ed4
682ed4
%description plperl
682ed4
The postgresql-plperl package contains the PL/Perl procedural language,
682ed4
which is an extension to the PostgreSQL database server.
682ed4
Install this if you want to write database functions in Perl.
682ed4
%endif
682ed4
682ed4
682ed4
%if %plpython3
682ed4
%package plpython3
682ed4
Summary: The Python3 procedural language for PostgreSQL
682ed4
Requires: %{name}-server%{?_isa} = %precise_version
682ed4
682ed4
%description plpython3
682ed4
The postgresql-plpython3 package contains the PL/Python3 procedural language,
682ed4
which is an extension to the PostgreSQL database server.
682ed4
Install this if you want to write database functions in Python 3.
682ed4
%endif
682ed4
682ed4
682ed4
%if %pltcl
682ed4
%package pltcl
682ed4
Summary: The Tcl procedural language for PostgreSQL
682ed4
Requires: %{name}-server%{?_isa} = %precise_version
682ed4
682ed4
%description pltcl
682ed4
The postgresql-pltcl package contains the PL/Tcl procedural language,
682ed4
which is an extension to the PostgreSQL database server.
682ed4
Install this if you want to write database functions in Tcl.
682ed4
%endif
682ed4
682ed4
682ed4
%if %test
682ed4
%package test
682ed4
Summary: The test suite distributed with PostgreSQL
682ed4
Requires: %{name}-server%{?_isa} = %precise_version
682ed4
Requires: %{name}-server-devel%{?_isa} = %precise_version
682ed4
682ed4
%description test
682ed4
The postgresql-test package contains files needed for various tests for the
682ed4
PostgreSQL database management system, including regression tests and
682ed4
benchmarks.
682ed4
%endif
682ed4
682ed4
%if %llvmjit
682ed4
%package llvmjit
682ed4
Summary:	Just-in-time compilation support for PostgreSQL
682ed4
Requires:	%{name}-server%{?_isa} = %{version}-%{release}
682ed4
%if 0%{?rhel} && 0%{?rhel} == 7
682ed4
Requires:	llvm5.0 >= 5.0
682ed4
%else
682ed4
Requires:	llvm => 5.0
682ed4
%endif
682ed4
Provides:	postgresql-llvmjit >= %{version}-%{release}
682ed4
682ed4
BuildRequires:	llvm-devel >= 5.0 clang-devel >= 5.0
682ed4
682ed4
%description llvmjit
682ed4
The postgresql-llvmjit package contains support for
682ed4
just-in-time compiling parts of PostgreSQL queries. Using LLVM it
682ed4
compiles e.g. expressions and tuple deforming into native code, with the
682ed4
goal of accelerating analytics queries.
682ed4
%endif
682ed4
682ed4
%prep
682ed4
(
682ed4
  cd "$(dirname "%{SOURCE0}")"
682ed4
  sha256sum -c %{SOURCE16}
682ed4
%if %upgrade
682ed4
  sha256sum -c %{SOURCE17}
682ed4
%endif
682ed4
)
682ed4
%setup -q -a 12 -n postgresql-%{version}
682ed4
%patch1 -p1
682ed4
%patch2 -p1
682ed4
%patch5 -p1
682ed4
%if %external_libpq
682ed4
%patch8 -p1
682ed4
%else
682ed4
%patch12 -p1
682ed4
%endif
682ed4
%patch9 -p1
682ed4
682ed4
# We used to run autoconf here, but there's no longer any real need to,
682ed4
# since Postgres ships with a reasonably modern configure script.
682ed4
682ed4
cp -p %{SOURCE1} .
682ed4
682ed4
%if ! %external_libpq
682ed4
%global private_soname private%{majorversion}
682ed4
find . -type f -name Makefile -exec sed -i -e "s/SO_MAJOR_VERSION=\s\?\([0-9]\+\)/SO_MAJOR_VERSION= %{private_soname}-\1/" {} \;
682ed4
%endif
682ed4
682ed4
%if %upgrade
682ed4
tar xfj %{SOURCE3}
682ed4
682ed4
# libpq from this upgrade-only build is dropped and the libpq from the main
682ed4
# version is used. Use the same major hack therefore.
682ed4
%if ! %external_libpq
682ed4
find . -type f -name Makefile -exec sed -i -e "s/SO_MAJOR_VERSION=\s\?\([0-9]\+\)/SO_MAJOR_VERSION= %{private_soname}-\1/" {} \;
682ed4
%endif
682ed4
682ed4
# apply once SOURCE3 is extracted
682ed4
%endif
682ed4
682ed4
# remove .gitignore files to ensure none get into the RPMs (bug #642210)
682ed4
find . -type f -name .gitignore | xargs rm
682ed4
682ed4
682ed4
%build
682ed4
# Avoid LTO on armv7hl as it runs out of memory
682ed4
%ifarch armv7hl s390x
682ed4
%define _lto_cflags %{nil}
682ed4
%endif
682ed4
# fail quickly and obviously if user tries to build as root
682ed4
%if %runselftest
682ed4
	if [ x"`id -u`" = x0 ]; then
682ed4
		echo "postgresql's regression tests fail if run as root."
682ed4
		echo "If you really need to build the RPM as root, use"
682ed4
		echo "--define='runselftest 0' to skip the regression tests."
682ed4
		exit 1
682ed4
	fi
682ed4
%endif
682ed4
682ed4
# Building postgresql-setup
682ed4
682ed4
cd postgresql-setup-%{setup_version}
682ed4
682ed4
%configure \
682ed4
    pgdocdir=%{_pkgdocdir} \
682ed4
    PGVERSION=%{version} \
682ed4
    PGMAJORVERSION=%{majorversion} \
682ed4
    NAME_DEFAULT_PREV_SERVICE=postgresql
682ed4
682ed4
make %{?_smp_mflags}
682ed4
cd ..
682ed4
682ed4
# Fiddling with CFLAGS.
682ed4
682ed4
CFLAGS="${CFLAGS:-%optflags}"
682ed4
# Strip out -ffast-math from CFLAGS....
682ed4
CFLAGS=`echo $CFLAGS|xargs -n 1|grep -v ffast-math|xargs -n 100`
682ed4
export CFLAGS
682ed4
682ed4
common_configure_options='
682ed4
	--disable-rpath
682ed4
%if %beta
682ed4
	--enable-debug
682ed4
	--enable-cassert
682ed4
%endif
682ed4
%if %plperl
682ed4
	--with-perl
682ed4
%endif
682ed4
%if %pltcl
682ed4
	--with-tcl
682ed4
	--with-tclconfig=%_libdir
682ed4
%endif
682ed4
%if %ldap
682ed4
	--with-ldap
682ed4
%endif
682ed4
%if %ssl
682ed4
	--with-openssl
682ed4
%endif
682ed4
%if %pam
682ed4
	--with-pam
682ed4
%endif
682ed4
%if %kerberos
682ed4
	--with-gssapi
682ed4
%endif
682ed4
%if %uuid
682ed4
	--with-ossp-uuid
682ed4
%endif
682ed4
%if %xml
682ed4
	--with-libxml
682ed4
	--with-libxslt
682ed4
%endif
682ed4
%if %nls
682ed4
	--enable-nls
682ed4
%endif
682ed4
%if %sdt
682ed4
	--enable-dtrace
682ed4
%endif
682ed4
%if %selinux
682ed4
	--with-selinux
682ed4
%endif
682ed4
	--with-system-tzdata=%_datadir/zoneinfo
682ed4
	--datadir=%_datadir/pgsql
682ed4
	--with-systemd
682ed4
%if %icu
682ed4
	--with-icu
682ed4
%endif
682ed4
%if %llvmjit
682ed4
	--with-llvm
682ed4
%endif
682ed4
%if %plpython3
682ed4
	--with-python
682ed4
%endif
682ed4
'
682ed4
682ed4
export PYTHON=/usr/bin/python3
682ed4
682ed4
# These configure options must match main build
682ed4
%configure $common_configure_options
682ed4
682ed4
%make_build world
682ed4
682ed4
# Have to hack makefile to put correct path into tutorial scripts
682ed4
sed "s|C=\`pwd\`;|C=%{_libdir}/pgsql/tutorial;|" < src/tutorial/Makefile > src/tutorial/GNUmakefile
682ed4
make %{?_smp_mflags} -C src/tutorial NO_PGXS=1 all
682ed4
rm -f src/tutorial/GNUmakefile
682ed4
682ed4
# The object files shouldn't be copied to rpm bz#1187514
682ed4
rm -f src/tutorial/*.o
682ed4
682ed4
# run_testsuite WHERE
682ed4
# -------------------
682ed4
# Run 'make check' in WHERE path.  When that command fails, return the logs
682ed4
# given by PostgreSQL build system and set 'test_failure=1'.  This function
682ed4
# never exits directly nor stops rpmbuild where `set -e` is enabled.
682ed4
run_testsuite()
682ed4
{
682ed4
	make -k -C "$1" MAX_CONNECTIONS=5 check && return 0 || test_failure=1
682ed4
	(
682ed4
		set +x
682ed4
		echo "=== trying to find all regression.diffs files in build directory ==="
682ed4
		find "$1" -name 'regression.diffs' | \
682ed4
		while read line; do
682ed4
			echo "=== make failure: $line ==="
682ed4
			cat "$line"
682ed4
		done
682ed4
	)
682ed4
}
682ed4
682ed4
test_failure=0
682ed4
682ed4
%if %runselftest
682ed4
	run_testsuite "src/test/regress"
682ed4
	make clean -C "src/test/regress"
682ed4
	run_testsuite "src/pl"
682ed4
	run_testsuite "contrib"
682ed4
%endif
682ed4
682ed4
# "assert(ALL_TESTS_OK)"
682ed4
test "$test_failure" -eq 0
682ed4
682ed4
%if %test
682ed4
	# undo the "make clean" above
682ed4
	make all -C src/test/regress
682ed4
%endif
682ed4
682ed4
%if %upgrade
682ed4
	pushd postgresql-%{prevversion}
682ed4
682ed4
	# The upgrade build can be pretty stripped-down, but make sure that
682ed4
	# any options that affect on-disk file layout match the previous
682ed4
	# major release!
682ed4
682ed4
	# The set of built server modules here should ideally create superset
682ed4
	# of modules we used to ship in %%prevversion (in the installation
682ed4
	# the user will upgrade from), including *-contrib or *-pl*
682ed4
	# subpackages.  This increases chances that the upgrade from
682ed4
	# %%prevversion will work smoothly.
682ed4
682ed4
upgrade_configure ()
682ed4
{
682ed4
	# Note we intentionally do not use %%configure here, because we *don't* want
682ed4
	# its ideas about installation paths.
682ed4
682ed4
	# The -fno-aggressive-loop-optimizations is hack for #993532
682ed4
	CFLAGS="$CFLAGS -fno-aggressive-loop-optimizations" ./configure \
682ed4
		--build=%{_build} \
682ed4
		--host=%{_host} \
682ed4
		--prefix=%prev_prefix \
682ed4
		--disable-rpath \
682ed4
%if %beta
682ed4
		--enable-debug \
682ed4
		--enable-cassert \
682ed4
%endif
682ed4
%if %icu
682ed4
		--with-icu \
682ed4
%endif
682ed4
%if %plperl
682ed4
		--with-perl \
682ed4
%endif
682ed4
%if %pltcl
682ed4
		--with-tcl \
682ed4
%endif
682ed4
%if %ssl
682ed4
	    --with-openssl \
682ed4
%endif
682ed4
%if %plpython3
682ed4
		--with-python \
682ed4
%endif
682ed4
		--with-tclconfig=%_libdir \
682ed4
		--with-system-tzdata=/usr/share/zoneinfo \
682ed4
		"$@"
682ed4
}
682ed4
682ed4
	upgrade_configure \
682ed4
682ed4
	make %{?_smp_mflags} all
682ed4
	make -C contrib %{?_smp_mflags} all
682ed4
	popd
682ed4
# endif upgrade
682ed4
%endif
682ed4
682ed4
682ed4
%install
682ed4
cd postgresql-setup-%{setup_version}
682ed4
make install DESTDIR=$RPM_BUILD_ROOT
682ed4
cd ..
682ed4
682ed4
# For some reason, having '%%doc %%{_pkgdocdir}/README.rpm-dist' in %%files
682ed4
# causes FTBFS (at least on RHEL6), see rhbz#1250006.
682ed4
mv $RPM_BUILD_ROOT/%{_pkgdocdir}/README.rpm-dist ./
682ed4
682ed4
cat > $RPM_BUILD_ROOT%{_sysconfdir}/postgresql-setup/upgrade/postgresql.conf <
682ed4
id              postgresql
682ed4
major           %{prevmajorversion}
682ed4
data_default    %{_localstatedir}/pgsql/data
682ed4
package         postgresql-upgrade
682ed4
engine          %{_libdir}/pgsql/postgresql-%{prevmajorversion}/bin
682ed4
description     "Upgrade data from system PostgreSQL version (PostgreSQL %{prevmajorversion})"
682ed4
redhat_sockets_hack no
682ed4
EOF
682ed4
682ed4
make DESTDIR=$RPM_BUILD_ROOT install-world
682ed4
682ed4
# We ship pg_config through libpq-devel
682ed4
mv $RPM_BUILD_ROOT/%_mandir/man1/pg_{,server_}config.1
682ed4
%if %external_libpq
682ed4
rm $RPM_BUILD_ROOT/%_includedir/pg_config*.h
682ed4
rm $RPM_BUILD_ROOT/%_includedir/libpq/libpq-fs.h
682ed4
rm $RPM_BUILD_ROOT/%_includedir/postgres_ext.h
682ed4
rm -r $RPM_BUILD_ROOT/%_includedir/pgsql/internal/
682ed4
%else
682ed4
ln -s pg_server_config $RPM_BUILD_ROOT/%_bindir/pg_config
682ed4
rm $RPM_BUILD_ROOT/%{_libdir}/libpq.a
682ed4
%endif
682ed4
682ed4
# make sure these directories exist even if we suppressed all contrib modules
682ed4
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/pgsql/contrib
682ed4
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/pgsql/extension
682ed4
682ed4
# multilib header hack
682ed4
for header in \
682ed4
	%{_includedir}/pg_config.h \
682ed4
	%{_includedir}/pg_config_ext.h
682ed4
do
682ed4
%multilib_fix_c_header --file "$header"
682ed4
done
682ed4
682ed4
install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/pgsql/tutorial
682ed4
cp -p src/tutorial/* $RPM_BUILD_ROOT%{_libdir}/pgsql/tutorial
682ed4
682ed4
%if %pam
682ed4
install -d $RPM_BUILD_ROOT/etc/pam.d
682ed4
install -m 644 %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/postgresql
682ed4
%endif
682ed4
682ed4
# Create the directory for sockets.
682ed4
install -d -m 755 $RPM_BUILD_ROOT%{?_localstatedir}/run/postgresql
682ed4
682ed4
# ... and make a tmpfiles script to recreate it at reboot.
682ed4
mkdir -p $RPM_BUILD_ROOT%{_tmpfilesdir}
682ed4
install -m 0644 %{SOURCE9} $RPM_BUILD_ROOT%{_tmpfilesdir}/postgresql.conf
682ed4
682ed4
# PGDATA needs removal of group and world permissions due to pg_pwd hole.
682ed4
install -d -m 700 $RPM_BUILD_ROOT%{?_localstatedir}/lib/pgsql/data
682ed4
682ed4
# backups of data go here...
682ed4
install -d -m 700 $RPM_BUILD_ROOT%{?_localstatedir}/lib/pgsql/backups
682ed4
682ed4
# postgres' .bash_profile
682ed4
install -m 644 %{SOURCE11} $RPM_BUILD_ROOT%{?_localstatedir}/lib/pgsql/.bash_profile
682ed4
682ed4
rm $RPM_BUILD_ROOT/%{_datadir}/man/man1/ecpg.1
682ed4
682ed4
%if %upgrade
682ed4
	pushd postgresql-%{prevversion}
682ed4
	make DESTDIR=$RPM_BUILD_ROOT install
682ed4
	make -C contrib DESTDIR=$RPM_BUILD_ROOT install
682ed4
	popd
682ed4
682ed4
	# remove stuff we don't actually need for upgrade purposes
682ed4
	pushd $RPM_BUILD_ROOT%{_libdir}/pgsql/postgresql-%{prevmajorversion}
682ed4
	rm bin/clusterdb
682ed4
	rm bin/createdb
682ed4
	rm bin/createuser
682ed4
	rm bin/dropdb
682ed4
	rm bin/dropuser
682ed4
	rm bin/ecpg
682ed4
	rm bin/initdb
682ed4
	rm bin/pg_basebackup
682ed4
	rm bin/pg_dump
682ed4
	rm bin/pg_dumpall
682ed4
	rm bin/pg_restore
682ed4
	rm bin/pgbench
682ed4
	rm bin/psql
682ed4
	rm bin/reindexdb
682ed4
	rm bin/vacuumdb
682ed4
	rm -rf share/doc
682ed4
	rm -rf share/man
682ed4
	rm -rf share/tsearch_data
682ed4
	rm lib/*.a
682ed4
	# Drop libpq.  This might need some tweaks once there's
682ed4
	# soname bump between %%prevversion and %%version.
682ed4
	rm lib/libpq.so*
682ed4
	# Drop libraries.
682ed4
	rm lib/lib{ecpg,ecpg_compat,pgtypes}.so*
682ed4
	rm share/*.bki
682ed4
	rm share/*.sample
682ed4
	rm share/*.sql
682ed4
	rm share/*.txt
682ed4
	rm share/extension/*.sql
682ed4
	rm share/extension/*.control
682ed4
	popd
682ed4
	cat <<EOF > $RPM_BUILD_ROOT%macrosdir/macros.%name-upgrade
682ed4
%%postgresql_upgrade_prefix %prev_prefix
682ed4
EOF
682ed4
%endif
682ed4
682ed4
# Let plugins use the same llvmjit settings as server has
682ed4
cat <<EOF >> $RPM_BUILD_ROOT%macrosdir/macros.%name
682ed4
%%postgresql_server_llvmjit %llvmjit
682ed4
EOF
682ed4
682ed4
%if %test
682ed4
	# tests. There are many files included here that are unnecessary,
682ed4
	# but include them anyway for completeness.  We replace the original
682ed4
	# Makefiles, however.
682ed4
	mkdir -p $RPM_BUILD_ROOT%{_libdir}/pgsql/test
682ed4
	cp -a src/test/regress $RPM_BUILD_ROOT%{_libdir}/pgsql/test
682ed4
	# pg_regress binary should be only in one subpackage,
682ed4
	# there will be a symlink from -test to -devel
682ed4
	rm -f $RPM_BUILD_ROOT%{_libdir}/pgsql/test/regress/pg_regress
682ed4
	ln -sf ../../pgxs/src/test/regress/pg_regress $RPM_BUILD_ROOT%{_libdir}/pgsql/test/regress/pg_regress
682ed4
	pushd  $RPM_BUILD_ROOT%{_libdir}/pgsql/test/regress
682ed4
	rm -f GNUmakefile Makefile *.o
682ed4
	chmod 0755 pg_regress regress.so
682ed4
	popd
682ed4
	sed 's|@bindir@|%{_bindir}|g' \
682ed4
		< %{SOURCE4} \
682ed4
		> $RPM_BUILD_ROOT%{_libdir}/pgsql/test/regress/Makefile
682ed4
	chmod 0644 $RPM_BUILD_ROOT%{_libdir}/pgsql/test/regress/Makefile
682ed4
%endif
682ed4
682ed4
rm -rf doc/html # HACK! allow 'rpmbuild -bi --short-circuit'
682ed4
mv $RPM_BUILD_ROOT%{_docdir}/pgsql/html doc
682ed4
rm -rf $RPM_BUILD_ROOT%{_docdir}/pgsql
682ed4
682ed4
# remove files not to be packaged
682ed4
rm $RPM_BUILD_ROOT%{_libdir}/libpgfeutils.a
682ed4
682ed4
%if !%plperl
682ed4
rm -f $RPM_BUILD_ROOT%{_bindir}/pgsql/hstore_plperl.so
682ed4
%endif
682ed4
682ed4
# no python2, yet installed, remove
682ed4
rm -f $RPM_BUILD_ROOT%{_datadir}/pgsql/extension/*_plpythonu*
682ed4
rm -f $RPM_BUILD_ROOT%{_datadir}/pgsql/extension/*_plpython2u*
682ed4
682ed4
%if %nls
682ed4
find_lang_bins ()
682ed4
{
682ed4
	lstfile=$1 ; shift
682ed4
	cp /dev/null "$lstfile"
682ed4
	for binary; do
682ed4
		%find_lang "$binary"-%{majorversion}
682ed4
		cat "$binary"-%{majorversion}.lang >>"$lstfile"
682ed4
	done
682ed4
}
682ed4
find_lang_bins devel.lst pg_server_config
682ed4
find_lang_bins server.lst \
682ed4
	initdb pg_basebackup pg_controldata pg_ctl pg_resetwal pg_rewind plpgsql \
682ed4
	postgres pg_checksums pg_verifybackup
682ed4
find_lang_bins contrib.lst \
682ed4
	pg_amcheck pg_archivecleanup pg_test_fsync pg_test_timing pg_waldump
682ed4
find_lang_bins main.lst \
682ed4
	pg_dump pg_upgrade pgscripts psql \
682ed4
%if ! %external_libpq
682ed4
libpq%{private_soname}-5
682ed4
%endif
682ed4
682ed4
%if %plperl
682ed4
find_lang_bins plperl.lst plperl
682ed4
%endif
682ed4
%if %plpython3
682ed4
find_lang_bins plpython3.lst plpython
682ed4
%endif
682ed4
%if %pltcl
682ed4
find_lang_bins pltcl.lst pltcl
682ed4
%endif
682ed4
%endif
682ed4
682ed4
%pre server
682ed4
/usr/sbin/groupadd -g 26 -o -r postgres >/dev/null 2>&1 || :
682ed4
/usr/sbin/useradd -M -N -g postgres -o -r -d /var/lib/pgsql -s /bin/bash \
682ed4
	-c "PostgreSQL Server" -u 26 postgres >/dev/null 2>&1 || :
682ed4
682ed4
%post server
682ed4
%systemd_post %service_name
682ed4
682ed4
682ed4
%preun server
682ed4
%systemd_preun %service_name
682ed4
682ed4
682ed4
%postun server
682ed4
%systemd_postun_with_restart %service_name
682ed4
682ed4
682ed4
%check
682ed4
%if %runselftest
682ed4
make -C postgresql-setup-%{setup_version} check
682ed4
%endif
682ed4
682ed4
# FILES sections.
682ed4
%files -f main.lst
682ed4
%doc doc/KNOWN_BUGS doc/MISSING_FEATURES doc/TODO
682ed4
%doc COPYRIGHT README HISTORY
682ed4
%doc README.rpm-dist
682ed4
%{_bindir}/clusterdb
682ed4
%{_bindir}/createdb
682ed4
%{_bindir}/createuser
682ed4
%{_bindir}/dropdb
682ed4
%{_bindir}/dropuser
682ed4
%{_bindir}/pg_dump
682ed4
%{_bindir}/pg_dumpall
682ed4
%{_bindir}/pg_isready
682ed4
%{_bindir}/pg_restore
682ed4
%{_bindir}/pg_upgrade
682ed4
%{_bindir}/psql
682ed4
%{_bindir}/reindexdb
682ed4
%{_bindir}/vacuumdb
682ed4
%{_mandir}/man1/clusterdb.*
682ed4
%{_mandir}/man1/createdb.*
682ed4
%{_mandir}/man1/createuser.*
682ed4
%{_mandir}/man1/dropdb.*
682ed4
%{_mandir}/man1/dropuser.*
682ed4
%{_mandir}/man1/pg_dump.*
682ed4
%{_mandir}/man1/pg_dumpall.*
682ed4
%{_mandir}/man1/pg_isready.*
682ed4
%{_mandir}/man1/pg_restore.*
682ed4
%{_mandir}/man1/pg_upgrade.*
682ed4
%{_mandir}/man1/psql.*
682ed4
%{_mandir}/man1/reindexdb.*
682ed4
%{_mandir}/man1/vacuumdb.*
682ed4
%{_mandir}/man7/*
682ed4
%if %llvmjit
682ed4
# Install bitcode directory along with the main package,
682ed4
# so that extensions can use this dir.
682ed4
%dir %{_libdir}/pgsql/bitcode
682ed4
%endif
682ed4
682ed4
682ed4
%if ! %external_libpq
682ed4
%files private-libs
682ed4
%{_libdir}/libpq.so.*
682ed4
%endif
682ed4
682ed4
682ed4
%files docs
682ed4
%doc *-US.pdf
682ed4
%doc doc/html
682ed4
%{_libdir}/pgsql/tutorial/
682ed4
682ed4
682ed4
%files contrib -f contrib.lst
682ed4
%doc contrib/spi/*.example
682ed4
%{_bindir}/oid2name
682ed4
%{_bindir}/pg_amcheck
682ed4
%{_bindir}/pg_archivecleanup
682ed4
%{_bindir}/pg_test_fsync
682ed4
%{_bindir}/pg_test_timing
682ed4
%{_bindir}/pg_waldump
682ed4
%{_bindir}/pgbench
682ed4
%{_bindir}/vacuumlo
682ed4
%{_datadir}/pgsql/extension/adminpack*
682ed4
%{_datadir}/pgsql/extension/amcheck*
682ed4
%{_datadir}/pgsql/extension/autoinc*
682ed4
%{_datadir}/pgsql/extension/bloom*
682ed4
%{_datadir}/pgsql/extension/btree_gin*
682ed4
%{_datadir}/pgsql/extension/btree_gist*
682ed4
%{_datadir}/pgsql/extension/citext*
682ed4
%{_datadir}/pgsql/extension/cube*
682ed4
%{_datadir}/pgsql/extension/dblink*
682ed4
%{_datadir}/pgsql/extension/dict_int*
682ed4
%{_datadir}/pgsql/extension/dict_xsyn*
682ed4
%{_datadir}/pgsql/extension/earthdistance*
682ed4
%{_datadir}/pgsql/extension/file_fdw*
682ed4
%{_datadir}/pgsql/extension/fuzzystrmatch*
682ed4
%{_datadir}/pgsql/extension/hstore*
682ed4
%{_datadir}/pgsql/extension/insert_username*
682ed4
%{_datadir}/pgsql/extension/intagg*
682ed4
%{_datadir}/pgsql/extension/intarray*
682ed4
%{_datadir}/pgsql/extension/isn*
682ed4
%if %{plperl}
682ed4
%{_datadir}/pgsql/extension/jsonb_plperl*
682ed4
%endif
682ed4
%if %{plpython3}
682ed4
%{_datadir}/pgsql/extension/jsonb_plpython3u*
682ed4
%endif
682ed4
%{_datadir}/pgsql/extension/lo*
682ed4
%{_datadir}/pgsql/extension/ltree*
682ed4
%{_datadir}/pgsql/extension/moddatetime*
682ed4
%{_datadir}/pgsql/extension/old_snapshot*
682ed4
%{_datadir}/pgsql/extension/pg_surgery*
682ed4
%{_datadir}/pgsql/extension/pageinspect*
682ed4
%{_datadir}/pgsql/extension/pg_buffercache*
682ed4
%{_datadir}/pgsql/extension/pg_freespacemap*
682ed4
%{_datadir}/pgsql/extension/pg_prewarm*
682ed4
%{_datadir}/pgsql/extension/pg_stat_statements*
682ed4
%{_datadir}/pgsql/extension/pg_trgm*
682ed4
%{_datadir}/pgsql/extension/pg_visibility*
682ed4
%{_datadir}/pgsql/extension/pgcrypto*
682ed4
%{_datadir}/pgsql/extension/pgrowlocks*
682ed4
%{_datadir}/pgsql/extension/pgstattuple*
682ed4
%{_datadir}/pgsql/extension/postgres_fdw*
682ed4
%{_datadir}/pgsql/extension/refint*
682ed4
%{_datadir}/pgsql/extension/seg*
682ed4
%{_datadir}/pgsql/extension/tablefunc*
682ed4
%{_datadir}/pgsql/extension/tcn*
682ed4
%{_datadir}/pgsql/extension/tsm_system_rows*
682ed4
%{_datadir}/pgsql/extension/tsm_system_time*
682ed4
%{_datadir}/pgsql/extension/unaccent*
682ed4
%{_datadir}/pgsql/extension/pg_walinspect*
682ed4
%{_libdir}/pgsql/_int.so
682ed4
%{_libdir}/pgsql/adminpack.so
682ed4
%{_libdir}/pgsql/amcheck.so
682ed4
%{_libdir}/pgsql/auth_delay.so
682ed4
%{_libdir}/pgsql/auto_explain.so
682ed4
%{_libdir}/pgsql/autoinc.so
682ed4
%{_libdir}/pgsql/bloom.so
682ed4
%{_libdir}/pgsql/btree_gin.so
682ed4
%{_libdir}/pgsql/btree_gist.so
682ed4
%{_libdir}/pgsql/citext.so
682ed4
%{_libdir}/pgsql/cube.so
682ed4
%{_libdir}/pgsql/dblink.so
682ed4
%{_libdir}/pgsql/dict_int.so
682ed4
%{_libdir}/pgsql/dict_xsyn.so
682ed4
%{_libdir}/pgsql/earthdistance.so
682ed4
%{_libdir}/pgsql/file_fdw.so
682ed4
%{_libdir}/pgsql/fuzzystrmatch.so
682ed4
%{_libdir}/pgsql/hstore.so
682ed4
%if %plperl
682ed4
%{_libdir}/pgsql/hstore_plperl.so
682ed4
%endif
682ed4
%if %plpython3
682ed4
%{_libdir}/pgsql/hstore_plpython3.so
682ed4
%endif
682ed4
%{_libdir}/pgsql/insert_username.so
682ed4
%{_libdir}/pgsql/isn.so
682ed4
%if %plperl
682ed4
%{_libdir}/pgsql/jsonb_plperl.so
682ed4
%endif
682ed4
%if %plpython3
682ed4
%{_libdir}/pgsql/jsonb_plpython3.so
682ed4
%endif
682ed4
%{_libdir}/pgsql/lo.so
682ed4
%{_libdir}/pgsql/ltree.so
682ed4
%if %plpython3
682ed4
%{_libdir}/pgsql/ltree_plpython3.so
682ed4
%endif
682ed4
%{_libdir}/pgsql/moddatetime.so
682ed4
%{_libdir}/pgsql/old_snapshot.so
682ed4
%{_libdir}/pgsql/pg_surgery.so
682ed4
%{_libdir}/pgsql/pageinspect.so
682ed4
%{_libdir}/pgsql/passwordcheck.so
682ed4
%{_libdir}/pgsql/pg_buffercache.so
682ed4
%{_libdir}/pgsql/pg_freespacemap.so
682ed4
%{_libdir}/pgsql/pg_stat_statements.so
682ed4
%{_libdir}/pgsql/pg_trgm.so
682ed4
%{_libdir}/pgsql/pg_visibility.so
682ed4
%{_libdir}/pgsql/pgcrypto.so
682ed4
%{_libdir}/pgsql/pgrowlocks.so
682ed4
%{_libdir}/pgsql/pgstattuple.so
682ed4
%{_libdir}/pgsql/postgres_fdw.so
682ed4
%{_libdir}/pgsql/refint.so
682ed4
%{_libdir}/pgsql/seg.so
682ed4
%{_libdir}/pgsql/tablefunc.so
682ed4
%{_libdir}/pgsql/tcn.so
682ed4
%{_libdir}/pgsql/test_decoding.so
682ed4
%{_libdir}/pgsql/tsm_system_rows.so
682ed4
%{_libdir}/pgsql/tsm_system_time.so
682ed4
%{_libdir}/pgsql/unaccent.so
682ed4
%{_libdir}/pgsql/basebackup_to_shell.so
682ed4
%{_libdir}/pgsql/basic_archive.so
682ed4
%{_libdir}/pgsql/pg_walinspect.so
682ed4
%{_mandir}/man1/oid2name.*
682ed4
%{_mandir}/man1/pg_amcheck.*
682ed4
%{_mandir}/man1/pg_archivecleanup.*
682ed4
%{_mandir}/man1/pg_recvlogical.*
682ed4
%{_mandir}/man1/pg_test_fsync.*
682ed4
%{_mandir}/man1/pg_test_timing.*
682ed4
%{_mandir}/man1/pg_waldump.*
682ed4
%{_mandir}/man1/pgbench.*
682ed4
%{_mandir}/man1/vacuumlo.*
682ed4
%{_mandir}/man3/dblink*
682ed4
%if %selinux
682ed4
%{_datadir}/pgsql/contrib/sepgsql.sql
682ed4
%{_libdir}/pgsql/sepgsql.so
682ed4
%endif
682ed4
%if %ssl
682ed4
%{_datadir}/pgsql/extension/sslinfo*
682ed4
%{_libdir}/pgsql/sslinfo.so
682ed4
%endif
682ed4
%if %uuid
682ed4
%{_datadir}/pgsql/extension/uuid-ossp*
682ed4
%{_libdir}/pgsql/uuid-ossp.so
682ed4
%endif
682ed4
%if %xml
682ed4
%{_datadir}/pgsql/extension/xml2*
682ed4
%{_libdir}/pgsql/pgxml.so
682ed4
%endif
682ed4
682ed4
%files server -f server.lst
682ed4
%{_bindir}/initdb
682ed4
%{_bindir}/pg_basebackup
682ed4
%{_bindir}/pg_controldata
682ed4
%{_bindir}/pg_ctl
682ed4
%{_bindir}/pg_receivewal
682ed4
%{_bindir}/pg_recvlogical
682ed4
%{_bindir}/pg_resetwal
682ed4
%{_bindir}/pg_rewind
682ed4
%{_bindir}/pg_checksums
682ed4
%{_bindir}/pg_verifybackup
682ed4
%{_bindir}/postgres
682ed4
%{_bindir}/postgresql-setup
682ed4
%{_bindir}/postgresql-upgrade
682ed4
%{_bindir}/postmaster
682ed4
%dir %{_datadir}/pgsql
682ed4
%{_datadir}/pgsql/*.sample
682ed4
%dir %{_datadir}/pgsql/contrib
682ed4
%dir %{_datadir}/pgsql/extension
682ed4
%{_datadir}/pgsql/extension/plpgsql*
682ed4
%{_datadir}/pgsql/information_schema.sql
682ed4
%{_datadir}/pgsql/postgres.bki
682ed4
%{_datadir}/pgsql/snowball_create.sql
682ed4
%{_datadir}/pgsql/sql_features.txt
682ed4
%{_datadir}/pgsql/system_constraints.sql
682ed4
%{_datadir}/pgsql/system_functions.sql
682ed4
%{_datadir}/pgsql/system_views.sql
682ed4
%{_datadir}/pgsql/timezonesets/
682ed4
%{_datadir}/pgsql/tsearch_data/
682ed4
%dir %{_datadir}/postgresql-setup
682ed4
%{_datadir}/postgresql-setup/library.sh
682ed4
%dir %{_libdir}/pgsql
682ed4
%{_libdir}/pgsql/*_and_*.so
682ed4
%{_libdir}/pgsql/dict_snowball.so
682ed4
%{_libdir}/pgsql/euc2004_sjis2004.so
682ed4
%{_libdir}/pgsql/libpqwalreceiver.so
682ed4
%{_libdir}/pgsql/pg_prewarm.so
682ed4
%{_libdir}/pgsql/pgoutput.so
682ed4
%{_libdir}/pgsql/plpgsql.so
682ed4
%dir %{_libexecdir}/initscripts/legacy-actions/postgresql
682ed4
%{_libexecdir}/initscripts/legacy-actions/postgresql/*
682ed4
%{_libexecdir}/postgresql-check-db-dir
682ed4
%dir %{_sysconfdir}/postgresql-setup
682ed4
%dir %{_sysconfdir}/postgresql-setup/upgrade
682ed4
%config %{_sysconfdir}/postgresql-setup/upgrade/*.conf
682ed4
%{_mandir}/man1/initdb.*
682ed4
%{_mandir}/man1/pg_basebackup.*
682ed4
%{_mandir}/man1/pg_controldata.*
682ed4
%{_mandir}/man1/pg_ctl.*
682ed4
%{_mandir}/man1/pg_receivewal.*
682ed4
%{_mandir}/man1/pg_resetwal.*
682ed4
%{_mandir}/man1/pg_rewind.*
682ed4
%{_mandir}/man1/pg_checksums.*
682ed4
%{_mandir}/man1/pg_verifybackup.*
682ed4
%{_mandir}/man1/postgres.*
682ed4
%{_mandir}/man1/postgresql-new-systemd-unit.*
682ed4
%{_mandir}/man1/postgresql-setup.*
682ed4
%{_mandir}/man1/postgresql-upgrade.*
682ed4
%{_mandir}/man1/postmaster.*
682ed4
%{_sbindir}/postgresql-new-systemd-unit
682ed4
%{_tmpfilesdir}/postgresql.conf
682ed4
%{_unitdir}/*postgresql*.service
682ed4
%attr(700,postgres,postgres) %dir %{?_localstatedir}/lib/pgsql
682ed4
%attr(644,postgres,postgres) %config(noreplace) %{?_localstatedir}/lib/pgsql/.bash_profile
682ed4
%attr(700,postgres,postgres) %dir %{?_localstatedir}/lib/pgsql/backups
682ed4
%attr(700,postgres,postgres) %dir %{?_localstatedir}/lib/pgsql/data
682ed4
%attr(755,postgres,postgres) %dir %{?_localstatedir}/run/postgresql
682ed4
%if %pam
682ed4
%config(noreplace) /etc/pam.d/postgresql
682ed4
%endif
682ed4
682ed4
682ed4
%files server-devel -f devel.lst
682ed4
%{_bindir}/pg_server_config
682ed4
%dir %{_datadir}/pgsql
682ed4
%{_datadir}/pgsql/errcodes.txt
682ed4
%dir %{_includedir}/pgsql
682ed4
%{_includedir}/pgsql/server
682ed4
%{_libdir}/pgsql/pgxs/
682ed4
%{_mandir}/man1/pg_server_config.*
682ed4
%{_mandir}/man3/SPI_*
682ed4
%{macrosdir}/macros.%name
682ed4
682ed4
682ed4
%if ! %external_libpq
682ed4
%files private-devel
682ed4
%{_bindir}/pg_config
682ed4
%{_includedir}/libpq-events.h
682ed4
%{_includedir}/libpq-fe.h
682ed4
%{_includedir}/postgres_ext.h
682ed4
%{_includedir}/pgsql/internal/*.h
682ed4
%{_includedir}/pgsql/internal/libpq/pqcomm.h
682ed4
%{_includedir}/libpq/*.h
682ed4
%exclude %{_libdir}/pkgconfig/*.pc
682ed4
%{_libdir}/libpq.so
682ed4
%{_includedir}/pg_config*.h
682ed4
%endif
682ed4
682ed4
682ed4
%files test-rpm-macros
682ed4
%{_datadir}/postgresql-setup/postgresql_pkg_tests.sh
682ed4
%{macrosdir}/macros.%name-test
682ed4
682ed4
682ed4
%files static
682ed4
%{_libdir}/libpgcommon.a
682ed4
%{_libdir}/libpgport.a
682ed4
%{_libdir}/libpgcommon_shlib.a
682ed4
%{_libdir}/libpgport_shlib.a
682ed4
682ed4
682ed4
%if %upgrade
682ed4
%files upgrade
682ed4
%{_libdir}/pgsql/postgresql-%{prevmajorversion}/bin
682ed4
%exclude %{_libdir}/pgsql/postgresql-%{prevmajorversion}/bin/pg_config
682ed4
%{_libdir}/pgsql/postgresql-%{prevmajorversion}/lib
682ed4
%exclude %{_libdir}/pgsql/postgresql-%{prevmajorversion}/lib/pgxs
682ed4
%exclude %{_libdir}/pgsql/postgresql-%{prevmajorversion}/lib/pkgconfig
682ed4
%{_libdir}/pgsql/postgresql-%{prevmajorversion}/share
682ed4
682ed4
682ed4
%files upgrade-devel
682ed4
%{_libdir}/pgsql/postgresql-%{prevmajorversion}/bin/pg_config
682ed4
%{_libdir}/pgsql/postgresql-%{prevmajorversion}/include
682ed4
%{_libdir}/pgsql/postgresql-%{prevmajorversion}/lib/pkgconfig
682ed4
%{_libdir}/pgsql/postgresql-%{prevmajorversion}/lib/pgxs
682ed4
%{macrosdir}/macros.%name-upgrade
682ed4
%endif
682ed4
682ed4
%if %llvmjit
682ed4
%files llvmjit
682ed4
%defattr(-,root,root)
682ed4
%{_libdir}/pgsql/bitcode/*
682ed4
%{_libdir}/pgsql/llvmjit.so
682ed4
%{_libdir}/pgsql/llvmjit_types.bc
682ed4
%endif
682ed4
682ed4
%if %plperl
682ed4
%files plperl -f plperl.lst
682ed4
%{_datadir}/pgsql/extension/bool_plperl*
682ed4
%{_datadir}/pgsql/extension/plperl*
682ed4
%{_libdir}/pgsql/bool_plperl.so
682ed4
%{_libdir}/pgsql/plperl.so
682ed4
%endif
682ed4
682ed4
682ed4
%if %pltcl
682ed4
%files pltcl -f pltcl.lst
682ed4
%{_datadir}/pgsql/extension/pltcl*
682ed4
%{_libdir}/pgsql/pltcl.so
682ed4
%endif
682ed4
682ed4
682ed4
%if %plpython3
682ed4
%files plpython3 -f plpython3.lst
682ed4
%{_datadir}/pgsql/extension/plpython3*
682ed4
%{_libdir}/pgsql/plpython3.so
682ed4
%endif
682ed4
682ed4
682ed4
%if %test
682ed4
%files test
682ed4
%attr(-,postgres,postgres) %{_libdir}/pgsql/test
682ed4
%endif
682ed4
682ed4
682ed4
%changelog
7413b7
* Wed Feb 08 2023 Filip Januš <fjanus@redhat.com> - 15.2-1
7413b7
- Update to upstream version 15.2
7413b7
- Update postgresql-setup to 8.8
7413b7
- PostgreSQL systemd unit waits for the network to be up
7413b7
- Resolves: #2128241
7413b7
682ed4
* Fri Oct 14 2022 Filip Januš <fjanus@redhat.com> - 15.0-1
682ed4
- Initial import for postgresql 15
682ed4
- Specfile is based on version locate in centos stream
682ed4
  It reflects changes with libpq. This version of databse server
682ed4
  will use private libpq library.
682ed4
- Resolves: #2128241