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 README.rpm-dist
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
Version 8.1, for the PostgreSQL 8.1.1-1 RPMset. Version 8.2, for the PostgreSQL 8.2.1-2 RPMset.
Lamar Owen <lamar.owen@wgcr.org> Devrim Gündüz <devrim@CommandPrompt.com>, Lamar Owen <lowen@pari.edu>
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
Contents: 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 describe various RPM specifics, and to document special features found
in the RPMset. 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 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 Official PostgreSQL Global Development Group RPMs have from version 7.1.2
on carried a 'PGDG' after the release number. Other RPMsets distributed on carried a 'PGDG' after the release number. Other RPMsets distributed
@ -94,6 +94,7 @@ Joe Conway
Andrew Overholt Andrew Overholt
David Jee David Jee
Kaj J. Niemi Kaj J. Niemi
Devrim Gunduz
POSTGRESQL RPM PACKAGES AND RATIONALE. POSTGRESQL RPM PACKAGES AND RATIONALE.
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
@ -106,23 +107,24 @@ postgresql: Key clients and libraries, and documentation
postgresql-libs: Client shared libraries postgresql-libs: Client shared libraries
postgresql-server: Server executables and data files postgresql-server: Server executables and data files
postgresql-devel: Development libraries and include 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-tcl: Tcl client library (Pgtcl)
postgresql-test: The regression tests and associated files postgresql-test: The regression tests and associated files
postgresql-docs: Extra documentation, such as the tutorial files postgresql-docs: Extra documentation, such as the tutorial files
postgresql-contrib: The contrib source tree, as well as selected binaries 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. 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 postgresql-server is needed unless you only plan to use the clients to work
with a remote PostgreSQL server. The others are optional. with a remote PostgreSQL server. The others are optional.
Note that there is no postgresql-perl, postgresql-odbc, postgresql-tk, or Note that there is no postgresql-perl, postgresql-jdbc, postgresql-odbc, or
postgresql-plperl package any longer. This is due to these portions being postgresql-tk package any longer. This is due to these portions being split
removed from the PostgreSQL source tarball. 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 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 still included as the tcl subpackage, although it is not part of the core
distribution anymore. distribution anymore.
@ -138,8 +140,7 @@ various subdirectories.
Different distributions have different ideas of some of these file locations. Different distributions have different ideas of some of these file locations.
In particular, the documentation directory can be /usr/doc, /usr/doc/packages, 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 /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' Red Hat / Fedora Core locations are listed below.
for 'postgresql' below.
However, the RPMs install the files like this: However, the RPMs install the files like this:
Executables: /usr/bin 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. 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 The above list describes the Red Hat / Fedora Core layout. These locations
change for other distributions. Use of 'rpm -ql' for each package is may change for other distributions. Use of 'rpm -ql' for each package is
recommended as the 'official' information source. recommended as the 'official' information source.
While it may seem gratuitous to place these files in different locations, the While it may seem gratuitous to place these files in different locations, the
@ -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: sets of packages. The parameters, their defaults, and the meanings are:
beta 0 #build with cassert and do not strip the binaries 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. python 1 #build the postgresql-python package.
pltcl 1 #build the pltcl portion of the postgresql-pl package. tcl 1 #build the postgresql-tcl package.
plperl 1 #build the plperl portion of the postgresql-pl 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. ssl 1 #use OpenSSL support.
kerberos 1 #use Kerberos 5 support. kerberos 1 #use Kerberos 5 support.
nls 1 #build with national language 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: To use these defines, invoke a rebuild like this:
rpmbuild --rebuild --define 'python 0' --define 'tcl 0' \ rpmbuild --rebuild --define 'python 0' --define 'tcl 0' \
--define 'test 0' --define 'runselftest 1' --define 'kerberos 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 This line would disable the python, tcl, and test subpackages, enable the
regression test run during build, and disable kerberos support. regression test run during build, and disable kerberos support.

View File

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