Обсуждение: Cygwin PostgreSQL Distribution
I have decided to contribute PostgreSQL to the standard Cygwin
distribution. It will be included in the contrib/postgresql branch on
the Cygwin mirrors. If interested, see the following for a copy
of the announcement:
http://sources.redhat.com/ml/cygwin/2001-04/msg00256.html
Please note that this distribution is configured with a prefix of
/usr/pgsql instead of /usr/local/pgsql due to the Cygwin packaging
requirements.
I also implore people to post to pgsql-ports@postgresql.org or
cygwin@sources.redhat.com as appropriate instead of emailing me
directly.
Thanks,
Jason
--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corp. Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Jason Tishler writes: > I have decided to contribute PostgreSQL to the standard Cygwin > distribution. It will be included in the contrib/postgresql branch on > the Cygwin mirrors. If interested, see the following for a copy > of the announcement: > > http://sources.redhat.com/ml/cygwin/2001-04/msg00256.html > > Please note that this distribution is configured with a prefix of > /usr/pgsql instead of /usr/local/pgsql due to the Cygwin packaging > requirements. Any chance of making this /usr/postgresql? -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Peter, On Wed, Apr 04, 2001 at 05:19:21PM +0200, Peter Eisentraut wrote: > Jason Tishler writes: > > Please note that this distribution is configured with a prefix of > > /usr/pgsql instead of /usr/local/pgsql due to the Cygwin packaging > > requirements. > > Any chance of making this /usr/postgresql? Sure, it's easy. I just have to change one line in my build script. But, why does configure default to /usr/local/pgsql instead of /usr/local/postgresql? Anyway, what would the PostgreSQL community like? If we can reach consensus, then I will gladly change the prefix, if necessary. Note however that the prefix must start with /usr not /usr/local. Jason -- Jason Tishler Director, Software Engineering Phone: +1 (732) 264-8770 x235 Dot Hill Systems Corp. Fax: +1 (732) 264-8798 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Jason Tishler writes: > But, why does configure default to /usr/local/pgsql instead of > /usr/local/postgresql? Ancient tradition, I suppose. Anyway, the package is called PostgreSQL, the tar ball is postgresql-xxx.tar.gz, the rpm is postgresql-....rpm, the BSD ports are also under postgresql somewhere. Also, we create subdirectories like .../share/postgresql and .../include/postgresql. So it only makes sense to keep that naming scheme. Or maybe I'm just concerned because many people can't spell "PostGresSql". ;-) -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Peter,
On Thu, Apr 05, 2001 at 09:54:38PM +0200, Peter Eisentraut wrote:
> Jason Tishler writes:
>
> > But, why does configure default to /usr/local/pgsql instead of
> > /usr/local/postgresql?
>
> Ancient tradition, I suppose.
>
> Anyway, the package is called PostgreSQL, the tar ball is
> postgresql-xxx.tar.gz, the rpm is postgresql-....rpm, the BSD ports are
> also under postgresql somewhere. Also, we create subdirectories
> like .../share/postgresql and .../include/postgresql. So it only makes
> sense to keep that naming scheme. Or maybe I'm just concerned because
> many people can't spell "PostGresSql". ;-)
OK. I don't know if Peter equals consensus...
But, if I don't hear from anyone by the time that I build
and package 7.1RC3 (when available), then I will configure with
--prefix=/usr/postgresql.
BTW, my pre-built Cygwin PostgreSQL tarball has the following directory
structure under the configure prefix:
bin
doc
doc/html
include
include/lib
include/libpq
include/libpq++
lib
man
man/cat1 # added by me to speed up man
man/catl # added by me to speed up man
man/man1
man/manl
share
I hope that it is OK -- that is I don't see any "include/postgresql" or
"share/postgresql" as indicated above.
Thanks,
Jason
--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corp. Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Jason Tishler writes: > BTW, my pre-built Cygwin PostgreSQL tarball has the following directory > structure under the configure prefix: > > bin > doc > doc/html > include > include/lib > include/libpq What do you put into these two? It's not necessarily a good idea to divert from the standard layout under include because people might start relying on `pg_config --includedir` to configure their packages. But if there is some standard that requires you to do this... > include/libpq++ > lib > man > man/cat1 # added by me to speed up man > man/catl # added by me to speed up man > man/man1 > man/manl > share > > I hope that it is OK -- that is I don't see any "include/postgresql" or > "share/postgresql" as indicated above. You only get these if $prefix doesn't contain "postgresql" (or pgsql) already, like in the case of /usr/local. -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Peter,
On Thu, Apr 05, 2001 at 11:26:50PM +0200, Peter Eisentraut wrote:
> Jason Tishler writes:
>
> > include/lib
> > include/libpq
>
> What do you put into these two?
$ find lib libpq++
lib
lib/dllist.h
libpq++
libpq++/pgconnection.h
libpq++/pgcursordb.h
libpq++/pgdatabase.h
libpq++/pglobject.h
libpq++/pgtransdb.h
> It's not necessarily a good idea to
> divert from the standard layout under include because people might start
> relying on `pg_config --includedir` to configure their packages. But if
> there is some standard that requires you to do this...
My intention was *not* to deviate from the standard PostgreSQL layout.
I got the previously mentioned directory structure by just configuring
as follows:
configure --prefix=/usr/pgsql --with-CXX
Did I do something wrong? How should I configure?
Thanks,
Jason
--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corp. Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Peter,
On Thu, Apr 05, 2001 at 05:30:10PM -0400, Jason Tishler wrote:
> My intention was *not* to deviate from the standard PostgreSQL layout.
> I got the previously mentioned directory structure by just configuring
> as follows:
>
> configure --prefix=/usr/pgsql --with-CXX
>
> Did I do something wrong? How should I configure?
By extracting pg_config from the following:
ftp://ftp.postgresql.org/pub/pub/dev/test-rpms/postgresql-devel-7.1RC2-1.i386.rpm
I have discovered that at least one PostgreSQL Distribution is
configured as follows:
--enable-locale --with-CXX --prefix=/usr --with-perl
--enable-multibyte --with-tcl --with-odbc --enable-syslog
--with-python --sysconfdir=/etc/pgsql --mandir=/usr/man
--docdir=/usr/doc --includedir=/usr/include/pgsql
--datadir=/usr/share/pgsql
Should I be using the above? Or, at least the directory affecting
options (with possibly pgsql replaced by postgresql as you previously
suggested)?
My goal is to provide a pre-built Cygwin PostgreSQL distribution that
best serves the community. Any guidance to help me achieve this goal
would be greatly appreciated.
Thanks,
Jason
--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corp. Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Jason Tishler writes: > Peter, > > On Thu, Apr 05, 2001 at 11:26:50PM +0200, Peter Eisentraut wrote: > > Jason Tishler writes: > > > > > include/lib > > > include/libpq > > > > What do you put into these two? > > $ find lib libpq++ > lib > lib/dllist.h > libpq++ > libpq++/pgconnection.h > libpq++/pgcursordb.h > libpq++/pgdatabase.h > libpq++/pglobject.h > libpq++/pgtransdb.h I see, my fault. I thought the libpq was for the client side library, but it's of course the backend's directory. Everything's great. > > > It's not necessarily a good idea to > > divert from the standard layout under include because people might start > > relying on `pg_config --includedir` to configure their packages. But if > > there is some standard that requires you to do this... > > My intention was *not* to deviate from the standard PostgreSQL layout. > I got the previously mentioned directory structure by just configuring > as follows: > > configure --prefix=/usr/pgsql --with-CXX > > Did I do something wrong? How should I configure? This is good, but before long users will pester you for stuff like --enable-locale, --enable-multibyte, --with-perl, etc. ;-) I don't know about the Cygwin file system conventions, but do people have to alter their PATH and MANPATH (and LD_LIBRARY_PATH?) setting for each new package they install? No shared installation locations? -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Jason Tishler wrote: > By extracting pg_config from the following: > ftp://ftp.postgresql.org/pub/pub/dev/test-rpms/postgresql-devel-7.1RC2-1.i386.rpm > I have discovered that at least one PostgreSQL Distribution is > configured as follows: > --enable-locale --with-CXX --prefix=/usr --with-perl > --enable-multibyte --with-tcl --with-odbc --enable-syslog > --with-python --sysconfdir=/etc/pgsql --mandir=/usr/man > --docdir=/usr/doc --includedir=/usr/include/pgsql > --datadir=/usr/share/pgsql And I'm using 'pgsql' instead of 'postgresql' for historical reasons, as I must fit the RPMset into an environment where the data has lived for ages in /var/lib/pgsql, the libraries have lived forever in /usr/lib/pgsql.... Changing to using 'postgresql' is currently not planned. I may do so for a future version, however, if the _need_ arises. After all, even on postgresql.org, the snapshots extract to the 'pgsql' tree. Yes, it is inconsistent. > Should I be using the above? Or, at least the directory affecting > options (with possibly pgsql replaced by postgresql as you previously > suggested)? For your application, you can pretty much dictate where everything will go as there really isn't a preexisting standard layout. However, to get the 'postgresql' part of the directory name only requires that you drop the 'pgsql' from the above -- the 'postgresql' will be automatically appended. Glad you're grabbing the bull by the horns, though! -- Lamar Owen WGCR Internet Radio 1 Peter 4:11
Lamar Owen writes: > After all, even on postgresql.org, the snapshots extract to the 'pgsql' > tree. The snapshots stopped doing that more than half a year ago. Now postgresql-snapshot.tar extracts into postgresql-snapshot/. -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Peter Eisentraut wrote: > > Lamar Owen writes: > > > After all, even on postgresql.org, the snapshots extract to the 'pgsql' > > tree. > > The snapshots stopped doing that more than half a year ago. Now > postgresql-snapshot.tar extracts into postgresql-snapshot/. My bad -- the last snapshot I extracted was about nine months ago. CVS checkouts still go the 'pgsql', and the module name is still 'pgsql',right? -- Lamar Owen WGCR Internet Radio 1 Peter 4:11
Peter,
On Fri, Apr 06, 2001 at 05:50:25PM +0200, Peter Eisentraut wrote:
> This is good, but before long users will pester you for stuff like
> --enable-locale, --enable-multibyte, --with-perl, etc. ;-)
The above is expected and fine with me. If Cygwin PostgreSQL can
support the requested functionality, then I will build and package as
appropriate.
> I don't know about the Cygwin file system conventions, but do people have
> to alter their PATH and MANPATH (and LD_LIBRARY_PATH?) setting for each
> new package they install?
No.
> No shared installation locations?
No, so far all (latest and contrib) packages share the same installation
location -- /usr.
I was just blindly going along with what configure (with defaults)
and Kevin Lo's Windows 2000 web page suggested.
With more information and some reflection, I would like to configure
Cygwin PostgreSQL as follows:
configure --with-CXX --prefix=/usr --sysconfdir=/etc/postgresql \
--mandir=/usr/man --docdir=/usr/doc/postgresql-$version \
--includedir=/usr/include/postgresql --datadir=/usr/share/postgresql
where $version is the PostgreSQL version (e.g., 7.1RC3) and the
--docdir value is following a Cygwin /usr/doc convention.
Note that the above configure options are essentially a subset of those
used to generate the RPM on the PostgreSQL ftp site. The only exception
is the --docdir value. Is this layout more acceptable?
Thanks,
Jason
--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corp. Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Jason Tishler writes:
> > I don't know about the Cygwin file system conventions, but do people have
> > to alter their PATH and MANPATH (and LD_LIBRARY_PATH?) setting for each
> > new package they install?
>
> No.
But if every package is installed into their own /usr/<package>, then
they'll have to.
> With more information and some reflection, I would like to configure
> Cygwin PostgreSQL as follows:
>
> configure --with-CXX --prefix=/usr --sysconfdir=/etc/postgresql \
> --mandir=/usr/man --docdir=/usr/doc/postgresql-$version \
> --includedir=/usr/include/postgresql --datadir=/usr/share/postgresql
>
> where $version is the PostgreSQL version (e.g., 7.1RC3) and the
> --docdir value is following a Cygwin /usr/doc convention.
>
> Note that the above configure options are essentially a subset of those
> used to generate the RPM on the PostgreSQL ftp site. The only exception
> is the --docdir value. Is this layout more acceptable?
Looks reasonable, but it really depends on what file system conventions
you need to follow. Btw., you could equivalently write
configure --with-CXX --prefix=/usr --sysconfdir=/etc
--docdir='/usr/doc/postgresql-${VERSION}' #(automatically track version changes)
The rest is set automatically.
--
Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Peter Eisentraut wrote:
> configure --with-CXX --prefix=/usr --sysconfdir=/etc
> --docdir='/usr/doc/postgresql-${VERSION}' #(automatically track version changes)
> The rest is set automatically.
I wish mine could be that simple.
Although, it is much better than it was for 7.0, thanks to Peter.
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11
Peter,
On Fri, Apr 06, 2001 at 11:10:36PM +0200, Peter Eisentraut wrote:
> Jason Tishler writes:
>
> > > I don't know about the Cygwin file system conventions, but do people have
> > > to alter their PATH and MANPATH (and LD_LIBRARY_PATH?) setting for each
> > > new package they install?
> >
> > No.
>
> But if every package is installed into their own /usr/<package>, then
> they'll have to.
So far no package until my PostgreSQL 7.1RC2 required users to alter
their PATH, MANPATH, etc. I made a mistake which I will rectify when I
package 7.1RC3.
> > With more information and some reflection, I would like to configure
> > Cygwin PostgreSQL as follows:
> >
> > configure --with-CXX --prefix=/usr --sysconfdir=/etc/postgresql \
> > --mandir=/usr/man --docdir=/usr/doc/postgresql-$version \
> > --includedir=/usr/include/postgresql --datadir=/usr/share/postgresql
>
> Looks reasonable, but it really depends on what file system conventions
> you need to follow. Btw., you could equivalently write
>
> configure --with-CXX --prefix=/usr --sysconfdir=/etc
> --docdir='/usr/doc/postgresql-${VERSION}' #(automatically track version changes)
Thanks for the above. This configuration matches perfectly with Cygwin's
file system conventions.
BTW, I am sticking with --docdir=/usr/doc/postgresql-$version with $version
supplied by my build script because --docdir='/usr/doc/postgresql-${VERSION}'
causes pg_config a bit of trouble. Specifically, pg_config --configure
displays the following if configured as above:
$ pg_config --configure
--with-CXX --prefix=/usr --sysconfdir=/etc --docdir=/usr/doc/postgresql-
Thanks,
Jason
--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corp. Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com