Re: PostgreSQL - proposed package
Manoj Srivastava wrote:
>>>"Oliver" == Oliver Elphick <email@example.com> writes:
>Oliver> 1. postgres95 divided the upstream source into 4 sections:
>Oliver> postgres95, postgres95-dev, libpq1 and postgres95-doc. While I
>Oliver> can see the point of most of these, I am not sure of libpq1:
>Oliver> would it be acceptable to bundle the library in with the
>Oliver> development system?
> What does libpq1 do? What is in the -dev package?
libpq1 contains the library of routines for calling the PostgreSQL
backend from a user C program. To answer my own question, it would be
needed by anyone running such a program supplied by a third party,
so I think the separate library should remain. The -dev package will
contain the header files for developing programs that use the library.
>Oliver> 2. PostgreSQL provides interfaces for C (libpq), C++ and TCL.
>Oliver> Should these be separate packages or can they again be merged
>Oliver> into the development package?
> Do these interfaces have different dependencies?
$ ls -l
-rw-rw-r-- 1 root root 26406 Nov 7 10:14 libpgtcl.a
lrwxrwxrwx 1 root root 13 Nov 7 10:14 libpgtcl.so ->
-rw-rw-r-- 1 root root 24638 Nov 7 10:14 libpgtcl.so.1
-rw-rw-r-- 1 root root 24892 Nov 7 10:14 libpq++.a
-rw-rw-r-- 1 root root 53662 Nov 7 10:14 libpq.a
lrwxrwxrwx 1 root root 10 Nov 7 10:14 libpq.so -> libpq.so.1
-rw-rw-r-- 1 root root 45648 Nov 7 10:14 libpq.so.1
-rw-rw-r-- 1 root root 99617 Oct 7 12:25 pgaccess.tcl
$ ldd ./libpgtcl.so.1
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4000b000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40038000)
libdl.so.2 => /lib/libdl.so.2 (0x4003e000)
libm.so.6 => /lib/libm.so.6 (0x40041000)
libreadline.so.2 => /lib/libreadline.so.2 (0x4005a000)
libhistory.so.2 => /usr/lib/libhistory.so.2 (0x4007c000)
libncurses.so.3.4 => /lib/libncurses.so.3.4 (0x40082000)
libpq.so => /usr/local/pgsql/lib/libpq.so (0x400c9000)
libc.so.6 => /lib/libc.so.6 (0x400d4000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
$ ldd libpq.so.1
That's how it is produced by the upstream Makefiles. How do I find out
what is required by the *.a files?
I have TCL 8 on this machine, so I suppose that would be a dependency of
the TCL interface, with TK 8. Why don't the tcl libraries show up in the
> Does the
> python interface require python (I don't have that installed
If there is a python interface, it doesn't come with the upstream source.
> If the dependencies are there, then separating out the
> interfaces shall enable me to pick and choose what I like (Don't
> forget the perl5 interface).
I have never got on with perl! There does seem to be a perl5 interface, but
it was commented out in the Makefile... OK, make install seems to work, with
a bit of manual intervention. The interface requires a minimum of Perl 5.002,
according to the README file.
I see there's also a JDBC interface. Again, it isn't referenced by the higher-
level Makefile. It builds, but the test file fails! Oh dear, yet another
language to learn... Only one file is produced (a .jar archive). Is that
sufficient to be a package by itself?
Is the idea that if one element of the whole thing needs something that
the rest don't, and is separable from the rest, that it ought to be made
a separate package? That would make the TCL, Java, Perl and C/C++ interfaces
four separate packages. (I am combining C and C++, seeing that the C++
interface depends on the C one, and does not depend on anything external,
except g++, of course.)
>Oliver> 3. What should be done with the software in PostgreSQL's
>Oliver> contrib area?
> We have an xcontrib package. If the stuff builds, and is even
> mildly useful, caould we please have it packaged?
OK, but maybe not in the first release...
There's a lot of scope for other add-ons; there are a number of extras such as
ODBC and so on which could be added in the future.
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://lfix.co.uk/oliver
PGP key from public servers; key ID 32B8FAA1
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
Trouble? e-mail to firstname.lastname@example.org .