On Thu, Dec 08, 2011 at 04:19:04PM +0000, Michael Meeks wrote:

> * postgresql fun. non-internal
>       + postgresql have a strict API stability (Norbert)

Norbert was saying they have a strict *ABI* stability, properly
managing sonames and all that. I'm not sure if MS Windows has a
mechanism that gives the same functionality of "marking
ABI-incompatible versions as such", but
http://en.wikipedia.org/wiki/DLL_Hell suggests they do not. In this
case, we absolutely cannot rely on the users installing libpq
separately, beyond the problems mentioned by Fridrich.

>       + Windows - run-time DLL dependency a pain (Lionel)
>               + ship DLL ourselves ?

This is not a question mark, we have to do that, or link statically,
be it only because of Fridrich-mentioned problems.

Note that currently postgresql-sdbc always links statically when using
internal PostgreSQL. It links dynamically with system PostgreSQL, and
does not ship the dynamic library itself. The latter is typically what
GNU/Linux distributions want: the package will have a dependency on
the right dynamic library. Is that what we want for our downloads from
http://www.libreoffice.org/download/ ? Maybe not, I notice that the
.deb files we distribute declare no other dependency than between
themselves.

>       + building vs. an internal libpostgresql (Lionel)
>               + client library code is:
>                       + around 25 files + a few headers
>               + can knock up a gnumake makefile in a module
>                 as a static library.

So, the situation with Windows is a bit more flexible than what I
previously reported, but that is not necessarily helpful to
us. PostgreSQL on Windows can be built in more ways than I knew:

 - ActiveState Perl and MSVC: no go, we'd like not to require
   ActiveState Perl as a build dependency
   http://www.postgresql.org/docs/9.1/static/install-windows-full.html

 - MinGW: would requiring MinGW/MSYS as a build dependency be any
          better than requiring ActiveState Perl? I understand this
          build does not need any piece MinGW/MSYS at run-time (like
          Cygwin would), and I guess it is binary-compatible with
          MSVC-compiled code? I mean we compile only libpq with MinGW,
          the rest of LibO with cygwin-bash/awk/... driving MSVC and
          it all works out?
   
http://www.postgresql.org/docs/9.1/static/installation-platform-notes.html#INSTALLATION-NOTES-MINGW

 - Cygwin: Tor explained this is not useful

 - Borland C++ / old MSVC: not useful

 - knock up our own Makefile for the subpart we need: more fragile wrt
   to new versions of PostgreSQL (may need to update that makefile);
   but possibly still the easiest solution.


-- 
Lionel
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to