Thread: pygresql build/install problems: use setup.py?

pygresql build/install problems: use setup.py?

From
george young
Date:
[python 2.3a1 & 2.2, postgresql 7.3.2 & 7.2.1, x86 linux]

As you note from the above line, I'm wrangling multiple versions
of python and postgres[ql].  I use the PyGreSQL interface from the
postgres source dist.  But I need to install PyGreSQL for other
than the default python.  I know I could hack it by hand, but it
seems like there could be an optional arg to configure like:
 ./configure --with-python=python2.3

to specify a binary (and include files and lib install destination)
other than the default.  Maybe it needs a separate option:
 --python-include=/usr/local/include/python-2.3 

I'm hoping some autoconf wiz will take this in hand -- auto* stuff
scares me...

I succeeded by fixing up setup.py:
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
--- setup.py~   Tue Mar 19 08:21:14 2002
+++ setup.py    Wed May 14 15:10:30 2003
@@ -30,8 +30,8 @@       optional_libs=[ 'libpqdll', 'wsock32', 'advapi32' ]       data_files = [ 'libpq.dll' ]else:
-       include_dirs=['/usr/include/pgsql']
-       library_dirs=['usr/lib/pgsql']
+       include_dirs=['../../include','../libpq','/usr/include/pgsql']
+       library_dirs=['../libpq','/usr/lib/pgsql']       optional_libs=['pq']       data_files = []
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Isn't this the right thing to do?  It should use the .. lib and include
dirs if they exist, since these are sure to be correct, as opposed
to hard coded /usr/lib/pgsql and /usr/include/pgsql which might 
not exist until an install has been done, and worse, might be from
an older postgres version.

It seems like the makefiles should just run  $PYTHON setup.py build
and  $PYTHON setup.py install

since setup.py has a much better chance of installing in the right
directories, or am I missing something?

-- I cannot think why the whole bed of the ocean isnot one solid mass of oysters, so prolific they seem. Ah,I am
wandering!Strange how the brain controls the brain!-- Sherlock Holmes in "The Dying Detective"
 


Re: pygresql build/install problems: use setup.py?

From
Gerhard Häring
Date:
george young wrote:
> [...] I'm hoping some autoconf wiz will take this in hand -- auto* stuff
> scares me...
> 
> I succeeded by fixing up setup.py:
> vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
> --- setup.py~   Tue Mar 19 08:21:14 2002
> +++ setup.py    Wed May 14 15:10:30 2003
> @@ -30,8 +30,8 @@
>         optional_libs=[ 'libpqdll', 'wsock32', 'advapi32' ]
>         data_files = [ 'libpq.dll' ]
>  else:
> -       include_dirs=['/usr/include/pgsql']
> -       library_dirs=['usr/lib/pgsql']
> +       include_dirs=['../../include','../libpq','/usr/include/pgsql']
> +       library_dirs=['../libpq','/usr/lib/pgsql']
>         optional_libs=['pq']
>         data_files = []
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> Isn't this the right thing to do?  It should use the .. lib and include
> dirs if they exist, since these are sure to be correct, as opposed
> to hard coded /usr/lib/pgsql and /usr/include/pgsql which might 
> not exist until an install has been done, and worse, might be from
> an older postgres version.

It's the right thing to do. And it is also what it does in the win32
case. And pyPgSQL does the same as well on win32, because it's setup.py
evolved from the PyGreSQL one :-)

> It seems like the makefiles should just run
>    $PYTHON setup.py build
> and
>    $PYTHON setup.py install
> 
> since setup.py has a much better chance of installing in the right
> directories, or am I missing something?

That's a feasible approach. But the PostgreSQL developers probably
aren't very familiar with distutils. Also distutils doesn't support
cross-compiling, which the auto* build process for PostgreSQL might
support otherwise.

-- Gerhard




Re: pygresql build/install problems: use setup.py?

From
Peter Eisentraut
Date:
george young writes:

> As you note from the above line, I'm wrangling multiple versions
> of python and postgres[ql].  I use the PyGreSQL interface from the
> postgres source dist.  But I need to install PyGreSQL for other
> than the default python.  I know I could hack it by hand, but it
> seems like there could be an optional arg to configure like:
>
>   ./configure --with-python=python2.3

./configure --with-python PYTHON=python2.3

This works for any program that is detected in configure.

-- 
Peter Eisentraut   peter_e@gmx.net



Re: pygresql build/install problems: use setup.py?

From
Bruce Momjian
Date:
I have applied the setup.py part of this patch.  Thanks.

---------------------------------------------------------------------------

george young wrote:
> [python 2.3a1 & 2.2, postgresql 7.3.2 & 7.2.1, x86 linux]
> 
> As you note from the above line, I'm wrangling multiple versions
> of python and postgres[ql].  I use the PyGreSQL interface from the
> postgres source dist.  But I need to install PyGreSQL for other
> than the default python.  I know I could hack it by hand, but it
> seems like there could be an optional arg to configure like:
> 
>   ./configure --with-python=python2.3
> 
> to specify a binary (and include files and lib install destination)
> other than the default.  Maybe it needs a separate option:
> 
>   --python-include=/usr/local/include/python-2.3 
> 
> I'm hoping some autoconf wiz will take this in hand -- auto* stuff
> scares me...
> 
> I succeeded by fixing up setup.py:
> vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
> --- setup.py~   Tue Mar 19 08:21:14 2002
> +++ setup.py    Wed May 14 15:10:30 2003
> @@ -30,8 +30,8 @@
>         optional_libs=[ 'libpqdll', 'wsock32', 'advapi32' ]
>         data_files = [ 'libpq.dll' ]
>  else:
> -       include_dirs=['/usr/include/pgsql']
> -       library_dirs=['usr/lib/pgsql']
> +       include_dirs=['../../include','../libpq','/usr/include/pgsql']
> +       library_dirs=['../libpq','/usr/lib/pgsql']
>         optional_libs=['pq']
>         data_files = []
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> Isn't this the right thing to do?  It should use the .. lib and include
> dirs if they exist, since these are sure to be correct, as opposed
> to hard coded /usr/lib/pgsql and /usr/include/pgsql which might 
> not exist until an install has been done, and worse, might be from
> an older postgres version.
> 
> It seems like the makefiles should just run
>    $PYTHON setup.py build
> and
>    $PYTHON setup.py install
> 
> since setup.py has a much better chance of installing in the right
> directories, or am I missing something?
> 
> -- 
>  I cannot think why the whole bed of the ocean is
>  not one solid mass of oysters, so prolific they seem. Ah,
>  I am wandering! Strange how the brain controls the brain!
>     -- Sherlock Holmes in "The Dying Detective"
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
> http://www.postgresql.org/docs/faqs/FAQ.html
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073