vine-users ML アーカイブ



[vine-users:052813] postgresql-python-7.2-0vl3 (on Vine2.5)

  • From: HAYAKAWA Hiroshi <hayakawa@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:052813] postgresql-python-7.2-0vl3 (on Vine2.5)
  • Date: Thu, 15 Aug 2002 09:27:11 +0900
早川@名古屋です。

Vine2.5のRPMで、
Python1.5.2からPostgreSQL7.2が使えてる方はいらっしゃるでしょうか?

以下の手順でPostgreSQLにアクセスするライブラリが
読み込まれるはずなのですが、うまくいきません。
(Pythonは数日前に使いはじめたばかりで、詳しくありません)
別のRedHat7.2のマシンでは以下の手順でエラーはでません。

$ python
Python 1.5.2 (#1, Nov 20 2001, 03:56:25)  [GCC 2.95.3 20010315 (release)] on
linux-i386
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import pg
Traceback (innermost last):
  File "<stdin>", line 1, in ?
  File "pg.py", line 7, in ?
    from _pg import *
ImportError: No module named _pg
>>> 
(※ Ctrl-Dで抜ける)


マシンには以下の関連RPMが入っています(これらはVine2.5のデフォルト)。

$ rpm -qa | grep postgres
postgresql-7.2-0vl3
postgresql-devel-7.2-0vl3
postgresql-jdbc-7.2-0vl3
postgresql-libs-7.2-0vl3
postgresql-odbc-7.2-0vl3
postgresql-perl-7.2-0vl3
postgresql-python-7.2-0vl3
postgresql-server-7.2-0vl3
postgresql-tcl-7.2-0vl3
postgresql-tk-7.2-0vl3

$ rpm -qa | grep python
postgresql-python-7.2-0vl3
python-1.5.2-28vl3
python-devel-1.5.2-28vl3
python-docs-1.5.2-28vl3
python-tools-1.5.2-28vl3
pythonlib-1.28-1vl2
rpm-python-3.0.6-0vl22


Vine2.5のPostgreSQLのSRPM (postgresql-7.2-0vl3.src.rpm) を
もってきてVine2.5(+some updates)の環境でそのままrebuildしたところ、
ログに以下のような出力がありました(3ヶ所を抜粋)。

make[3]: 入ります ディレクトリ
`/home/hayakawa/rpm/BUILD/postgresql-7.2/src/interfaces/python'
gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -fpic
-I../../../src/interfaces/libpq -I../../../src/include
-I/usr/include/python1.5  -c -o pgmodule.o pgmodule.c
pgmodule.c: In function `pgpy_quote_fast':
pgmodule.c:3166: warning: implicit declaration of function `PySequence_Size'
pgmodule.c:3194: warning: implicit declaration of function `_PyString_Join'
pgmodule.c:3194: warning: assignment makes pointer from integer without a
cast
pgmodule.c:3197: warning: implicit declaration of function
`PyString_FromFormat'pgmodule.c:3197: warning: assignment makes pointer from
integer without a cast
ar crs lib_pgmodule.a pgmodule.o
ranlib lib_pgmodule.a
gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -shared
-Wl,-soname,lib_pgmodule.so.0 pgmodule.o  -L../../../src/interfaces/libpq
-lpq -o lib_pgmodule.so.0.0
rm -f lib_pgmodule.so.0
ln -s lib_pgmodule.so.0.0 lib_pgmodule.so.0
rm -f lib_pgmodule.so
ln -s lib_pgmodule.so.0.0 lib_pgmodule.so
make -C ../../../src/interfaces/libpq all
make[4]: 入ります ディレクトリ
`/home/hayakawa/rpm/BUILD/postgresql-7.2/src/interfaces/libpq'
make[4]: `all' に対して行うべき事はありません。
make[4]: 出ます ディレクトリ
`/home/hayakawa/rpm/BUILD/postgresql-7.2/src/interfaces/libpq'
make[3]: 出ます ディレクトリ
`/home/hayakawa/rpm/BUILD/postgresql-7.2/src/interfaces/python'



+ pushd src/interfaces/python
~/rpm/BUILD/postgresql-7.2/src/interfaces/python ~/rpm/BUILD/postgresql-7.2
+ mkdir -p /var/tmp/postgresql-7.2-root/usr/lib/python1.5/site-packages
+ install -m 755 lib_pgmodule.so pg.py pgdb.py setup.py
/var/tmp/postgresql-7.2-root/usr/lib/python1.5/site-packages/



ファイルの処理中: postgresql-python-7.2-0vl3
実行中(%doc): /bin/sh -e /var/tmp/rpm-tmp.64836
+ umask 022
+ cd /home/hayakawa/rpm/BUILD
+ cd postgresql-7.2
+ DOCDIR=/var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2
+ export DOCDIR
+ rm -rf /var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2
+ /bin/mkdir -p /var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2
+ cp -pr src/interfaces/python/README src/interfaces/python/tutorial
/var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2
+ exit 0
Provides を探しています: (/usr/lib/rpm/find-provides を使用しています)...
Requires を探しています: (/usr/lib/rpm/find-requires を使用しています)...
objdump: 
/var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2/tutorial/advanced
.py: File format not recognized
objdump: 
/var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2/tutorial/basics.p
y: File format not recognized
objdump: 
/var/tmp/postgresql-7.2-root/usr/lib/python1.5/site-packages/pgdb.py: File
format not recognized
objdump: 
/var/tmp/postgresql-7.2-root/usr/lib/python1.5/site-packages/setup.py: File
format not recognized
1165 行目: 依存性トークンは英数字、'_'、'/' で始まらなければなりません: -
First 7.1 beta test-build

Requires を見つけるのに失敗しました:
Provides: lib_pgmodule.so.0
Requires: python >= 1.5 ld-linux.so.2 libc.so.6 libcrypt.so.1 libcrypto.so.2
libdl.so.2 libnsl.so.1 libpq.so.2 libresolv.so.2 libssl.so.2


postgresql.specの中に、以下のように変更されている部分があります。
このからみじゃないかと思いますが、
RPMの構築には詳しくなくてしっかり追えていません。
とりあえずレポートまで。

%if %python
# Python
pushd src/interfaces/python
# Makefile.pre.in doesn't yet support .py files anyway, so we stick to a
manual installation
  mkdir -p $RPM_BUILD_ROOT%{_libdir}/python%{pyver}/site-packages
#   install -m 755 _pgmodule.so *.py
$RPM_BUILD_ROOT%{_libdir}/python%{pyver}/site-packages/
 install -m 755 lib_pgmodule.so *.py
$RPM_BUILD_ROOT%{_libdir}/python%{pyver}/site-packages/
popd
%endif



-----
With your dreaming, with your smile.
Hayakawa, Hiroshi <hayakawa@xxxxxxxxxxxxxxx>
Nagoya,Aichi,JAPAN ☆彡