Rpm packaging of 8.0.2 libraries - Mailing list pgsql-general

From Karl O. Pinc
Subject Rpm packaging of 8.0.2 libraries
Date
Msg-id 1115269533l.29564l.6l@mofo
Whole thread Raw
List pgsql-general
Hi,

With the bump of the major version number of the
libraries in 8.0.2 it would be nice to have the
rpm packages named so as to allow both the
pg 7 and pg 8 versions of the libraries installed.

Appended is a patch that does this to the rhel-es-3.0
specfile.  It changes the name of the rpm
postgresql library package to postgresql-libs8
so that both it and the postgresql-libs package
can be installed simultaneously.  (It also changes
the default location of the kerberos library so that
it compiles on RH AS 3.3.  This may or may not be
the best way to change the kerberos library location.)

(Can't say I like the libs8 name, but I can't think
of anything better as the libs have various major
version numbers.)

However, the patch is a bad kludge because the language
locale files are part of the postgresql-lib
(or postgresql-lib8) rpm, so if both rpms are
installed then the locale files overwrite each other.
I suspect that this does not matter if your
language is English.  I also suspect the locale files
may be upwardly compatible between the 7.x and 8
libraries.  If this is the case then the proper solution
is probably to separate the locale files into a different
rpm package from the libraries, and then install only
the new locale files.

Warning: lines may be wrapped in the patch.
Warning: you do not want the release number in the patch.

Regards,

Karl <kop@meme.com>
Free Software:  "You don't pay back, you pay forward."
                  -- Robert A. Heinlein


  # diff -u postgresql-8.0.2-1PGDG.spec
postgresql-8.0.2-1PGDG_1babase.spec
--- postgresql-8.0.2-1PGDG.spec 2005-04-08 07:10:20.000000000 -0400
+++ postgresql-8.0.2-1PGDG_1babase.spec 2005-05-04 23:40:43.000000000
-0400
@@ -17,7 +17,7 @@
  %{?build7x:%define aconfver autoconf-2.53}

  %{!?tcldevel:%define tcldevel 1}
-%{!?kerbdir:%define kerbdir "/usr"}
+%{!?kerbdir:%define kerbdir "/usr/kerberos"}
  %{!?aconfver:%define aconfver autoconf}

  %define beta 0
@@ -67,7 +67,7 @@
  # Pre-release RPM's should not be put up on the public
ftp.postgresql.org server
  # -- only test releases or full releases should be.

-Release: 1PGDG
+Release: 1PGDG_1babase
  License: BSD
  Group: Applications/Databases
  Source0:
ftp://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2
@@ -174,16 +174,16 @@
  server, you need this package. You also need to install this package
  if you're installing the postgresql-server package.

-%package libs
+%package libs8
  Summary: The shared libraries required for any PostgreSQL clients.
  Group: Applications/Databases
  Provides: libpq.so

-%description libs
-The postgresql-libs package provides the essential shared libraries
for any
-PostgreSQL client program or interface. You will need to install this
package
-to use any other PostgreSQL package or any clients that need to
connect to a
-PostgreSQL server.
+%description libs8
+The postgresql-libs8 package provides the essential shared libraries
+for any PostgreSQL version 8 client program or interface. You will
+need to install this package to use any other PostgreSQL package or
+any clients that need to connect to a PostgreSQL server.

  %package server
  Summary: The programs needed to create and run a PostgreSQL server.
@@ -225,7 +225,7 @@
  %package devel
  Summary: PostgreSQL development header files and libraries.
  Group: Development/Libraries
-Requires: postgresql-libs = %{version}
+Requires: postgresql-libs8 = %{version}

  %description devel
  The postgresql-devel package contains the header files and libraries
@@ -540,8 +540,8 @@
  cat initdb.lang pg_ctl.lang psql.lang pg_dump.lang pgscripts.lang >
main.lst
  cat postgres.lang pg_resetxlog.lang pg_controldata.lang > server.lst

-%post libs -p /sbin/ldconfig
-%postun libs -p /sbin/ldconfig
+%post libs8 -p /sbin/ldconfig
+%postun libs8 -p /sbin/ldconfig

  %pre server
  groupadd -g 26 -o -r postgres >/dev/null 2>&1 || :
@@ -673,7 +673,7 @@
  %{_bindir}/pg_autovacuum
  %doc contrib/*/README.* contrib/spi/*.example

-%files libs -f libpq.lang
+%files libs8 -f libpq.lang
  %defattr(-,root,root)
  %{_libdir}/libpq.so.*
  %{_libdir}/libecpg.so.*
@@ -782,6 +782,11 @@
  %endif

  %changelog
+* Wed May 04 2005 Karl O. Pinc <kop@meme.com> 8.0.1-2PGDB1babase
+- Hack to change default location of kerberos libs to /usr/kerberos.
+- Change name of postgresql-libs rpm to postgresql-libs8 so that
+  it can be installed at the same time as the postgresql 7 libraries.
+
  * Fri Apr 08 2005 Devrim GUNDUZ <devrim@PostgreSQL.org> 8.0.2-1PGDG
  - Update to 8.0.2


pgsql-general by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: does database shut down cleanly when WAL device fails?
Next
From: Shaun Clements
Date:
Subject: Postgres 8.02 connectivity