Split -pl subpackage into three new packages to reduce dependencies and

track upstream project's packaging.
This commit is contained in:
Tom Lane 2007-01-13 04:30:50 +00:00
parent 721f5ecff5
commit d6ea25dd93
2 changed files with 93 additions and 42 deletions

View File

@ -1,7 +1,7 @@
README.rpm-dist
-----------------------------------------------------------------------------
Version 8.1, for the PostgreSQL 8.1.1-1 RPMset.
Lamar Owen <lamar.owen@wgcr.org>
Version 8.2, for the PostgreSQL 8.2.1-2 RPMset.
Devrim Gündüz <devrim@CommandPrompt.com>, Lamar Owen <lowen@pari.edu>
-----------------------------------------------------------------------------
Contents:
@ -31,9 +31,9 @@ This document exists to explain the layout of the RPMs for PostgreSQL, to
describe various RPM specifics, and to document special features found
in the RPMset.
This document is written to be applicable to version 8.1 of PostgreSQL,
This document is written to be applicable to version 8.2 of PostgreSQL,
which is the current version of the RPMs as of this writing. More to the
point, versions prior to 8.1 are not documented here.
point, versions prior to 8.2 are not documented here.
Official PostgreSQL Global Development Group RPMs have from version 7.1.2
on carried a 'PGDG' after the release number. Other RPMsets distributed
@ -94,6 +94,7 @@ Joe Conway
Andrew Overholt
David Jee
Kaj J. Niemi
Devrim Gunduz
POSTGRESQL RPM PACKAGES AND RATIONALE.
-----------------------------------------------------------------------------
@ -106,23 +107,24 @@ postgresql: Key clients and libraries, and documentation
postgresql-libs: Client shared libraries
postgresql-server: Server executables and data files
postgresql-devel: Development libraries and include files
postgresql-jdbc: JARs for the JDBC client library
postgresql-python: The PygreSQL client library
postgresql-python: The PyGreSQL client library
postgresql-tcl: Tcl client library (Pgtcl)
postgresql-test: The regression tests and associated files
postgresql-docs: Extra documentation, such as the tutorial files
postgresql-contrib: The contrib source tree, as well as selected binaries
postgresql-pl: PL/Perl (if possible on this dist), PL/Python, and PL/Tcl
postgresql-plperl: PL/Perl procedural language
postgresql-plpython: PL/Python procedural language
postgresql-pltcl: PL/Tcl procedural language
You have to install postgresql and postgresql-libs to do anything.
postgresql-server is needed unless you only plan to use the clients to work
with a remote PostgreSQL server. The others are optional.
Note that there is no postgresql-perl, postgresql-odbc, postgresql-tk, or
postgresql-plperl package any longer. This is due to these portions being
removed from the PostgreSQL source tarball.
Note that there is no postgresql-perl, postgresql-jdbc, postgresql-odbc, or
postgresql-tk package any longer. This is due to these portions being split
into separate source distributions.
While PygreSQL was split out from the core PostgreSQL distribution, thanks to
While PyGreSQL was split out from the core PostgreSQL distribution, thanks to
Kaj's work it is still included as the python subpackage. Also, Pgtcl is
still included as the tcl subpackage, although it is not part of the core
distribution anymore.
@ -138,8 +140,7 @@ various subdirectories.
Different distributions have different ideas of some of these file locations.
In particular, the documentation directory can be /usr/doc, /usr/doc/packages,
/usr/share/doc, /usr/share/doc/packages, or some other similar path. The
Red Hat/Fedora locations are listed below. On SuSE <7.1, substitute 'postgres'
for 'postgresql' below.
Red Hat / Fedora Core locations are listed below.
However, the RPMs install the files like this:
Executables: /usr/bin
@ -160,8 +161,8 @@ Extra documentation: /usr/share/doc/postgresql-docs-x.y.z
On some 64-bit architectures, /usr/lib64 is used instead of /usr/lib.
The above list describes the Red Hat/Fedora layout. These locations may
change for other distributions. Use of 'rpm -ql' for each package is
The above list describes the Red Hat / Fedora Core layout. These locations
may change for other distributions. Use of 'rpm -ql' for each package is
recommended as the 'official' information source.
While it may seem gratuitous to place these files in different locations, the
@ -171,7 +172,7 @@ the beauty of RPM -- you don't have to keep track of the files, RPM does it
for you.
These RPMs are designed to be LSB-compliant -- if you find this not to be the
case, please let us know by way of the pgsqlrpms-hackers@pgfoundry.org
case, please let us know by way of the pgsqlrpms-hackers@pgfoundry.org
mailing list.
MULTIPLE POSTMASTERS
@ -278,13 +279,12 @@ This release of the RPMset includes the ability to conditionally build
sets of packages. The parameters, their defaults, and the meanings are:
beta 0 #build with cassert and do not strip the binaries
tcl 1 #build the postgresql-tcl package.
jdbc 1 #build the postgresql-jdbc package.
pls 1 #build the postgresql-pl package.
test 1 #build the postgresql-test package.
python 1 #build the postgresql-python package.
pltcl 1 #build the pltcl portion of the postgresql-pl package.
plperl 1 #build the plperl portion of the postgresql-pl package.
tcl 1 #build the postgresql-tcl package.
test 1 #build the postgresql-test package.
plpython 1 #build the PL/Python package
pltcl 1 #build the PL/Tcl package.
plperl 1 #build the PL/Perl package.
ssl 1 #use OpenSSL support.
kerberos 1 #use Kerberos 5 support.
nls 1 #build with national language support.
@ -296,7 +296,7 @@ pgfts 1 #build with --enable-thread-safety
To use these defines, invoke a rebuild like this:
rpmbuild --rebuild --define 'python 0' --define 'tcl 0' \
--define 'test 0' --define 'runselftest 1' --define 'kerberos 0' \
postgresql-8.1.1-1.src.rpm
postgresql-8.2.1-1.src.rpm
This line would disable the python, tcl, and test subpackages, enable the
regression test run during build, and disable kerberos support.

View File

@ -61,11 +61,11 @@
%{!?tcldevel:%define tcldevel 1}
%{!?test:%define test 1}
%{!?python:%define python 1}
%{!?plpython:%define plpython 1}
%{!?pltcl:%define pltcl 1}
%{!?plperl:%define plperl 1}
%{!?python:%define python 1}
%{!?tcl:%define tcl 1}
%{!?pls:%define pls 1}
%{!?ssl:%define ssl 1}
%{!?kerberos:%define kerberos 1}
%{!?nls:%define nls 1}
@ -81,7 +81,7 @@
Summary: PostgreSQL client programs and libraries.
Name: postgresql
Version: 8.2.1
Release: 1%{?dist}
Release: 2%{?dist}
License: BSD
Group: Applications/Databases
Url: http://www.postgresql.org/
@ -109,7 +109,7 @@ Patch8: postgresql-prefer-ncurses.patch
Buildrequires: perl glibc-devel bison flex autoconf
Prereq: /sbin/ldconfig initscripts
%if %python
%if %python || %plpython
BuildPrereq: python-devel
%endif
@ -238,18 +238,51 @@ Postgres preprocessor. You need to install this package if you want to
develop applications which will interact with a PostgreSQL server.
#------------
%if %pls
%package pl
Summary: The PL procedural languages for PostgreSQL.
%if %plperl
%package plperl
Summary: The Perl procedural language for PostgreSQL.
Group: Applications/Databases
PreReq: postgresql = %{version}-%{release}
PreReq: postgresql-server = %{version}-%{release}
Obsoletes: rh-postgresql-pl
Obsoletes: postgresql-pl
%description pl
%description plperl
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-pl package contains the PL/Perl, PL/Tcl, and PL/Python
procedural languages for the backend. PL/Pgsql is part of the core server package.
system. The postgresql-plperl package contains the PL/Perl
procedural language for the backend.
%endif
#------------
%if %plpython
%package plpython
Summary: The Python procedural language for PostgreSQL.
Group: Applications/Databases
PreReq: postgresql = %{version}-%{release}
PreReq: postgresql-server = %{version}-%{release}
Obsoletes: rh-postgresql-pl
Obsoletes: postgresql-pl
%description plpython
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-plpython package contains the PL/Python
procedural language for the backend.
%endif
#------------
%if %pltcl
%package pltcl
Summary: The Tcl procedural language for PostgreSQL.
Group: Applications/Databases
PreReq: postgresql = %{version}-%{release}
PreReq: postgresql-server = %{version}-%{release}
Obsoletes: rh-postgresql-pl
Obsoletes: postgresql-pl
%description pltcl
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-pltcl package contains the PL/Tcl
procedural language for the backend.
%endif
#------------
@ -359,7 +392,7 @@ CFLAGS=`echo $CFLAGS|xargs -n 1|grep -v ffast-math|xargs -n 100`
--with-tcl \
--with-tclconfig=%{_libdir} \
%endif
%if %python
%if %plpython
--with-python \
%endif
%if %ssl
@ -574,9 +607,19 @@ if [ $1 = 0 ] ; then
groupdel postgres >/dev/null 2>&1 || :
fi
%if %pls
%post -p /sbin/ldconfig pl
%postun -p /sbin/ldconfig pl
%if %plperl
%post -p /sbin/ldconfig plperl
%postun -p /sbin/ldconfig plperl
%endif
%if %plpython
%post -p /sbin/ldconfig plpython
%postun -p /sbin/ldconfig plpython
%endif
%if %pltcl
%post -p /sbin/ldconfig pltcl
%postun -p /sbin/ldconfig pltcl
%endif
%if %test
@ -740,23 +783,27 @@ rm -rf $RPM_BUILD_ROOT
%doc Pgtcl-docs/*
%endif
%if %pls
%files pl
%defattr(-,root,root)
%if %plperl
%files plperl
%defattr(-,root,root)
%{_libdir}/pgsql/plperl.so
%endif
%if %pltcl
%files pltcl
%defattr(-,root,root)
%{_libdir}/pgsql/pltcl.so
%{_bindir}/pltcl_delmod
%{_bindir}/pltcl_listmod
%{_bindir}/pltcl_loadmod
%{_datadir}/pgsql/unknown.pltcl
%endif
%if %python
%if %plpython
%files plpython
%defattr(-,root,root)
%{_libdir}/pgsql/plpython.so
%endif
%endif
%if %python
%files python
@ -775,6 +822,10 @@ rm -rf $RPM_BUILD_ROOT
%endif
%changelog
* Fri Jan 12 2007 Tom Lane <tgl@redhat.com> 8.2.1-2
- Split -pl subpackage into three new packages to reduce dependencies
and track upstream project's packaging.
* Wed Jan 10 2007 Tom Lane <tgl@redhat.com> 8.2.1-1
- Update to PostgreSQL 8.2.1
- Update to pgtcl 1.5.3