[Python-de] SSL in python-2.1.2?

clemensF ino-waiting at gmx.net
Mon Mar 11 16:54:34 EST 2002


> M.-A. Lemburg:

> Es sollte OpenSSL eigentlich selbst finden. setup.py übernimmt
> diese Suche. 

das stimmt, aber erst, wenn das python fertig gebaut ist.  setup.py im
toplegvel dir nimmt sich doch erstmal das ./Modules/Setup vor, und dort
muss man eintragen, welche module man haben will und wie die konfiguriert
werden sollen.  das habe ich bis jetzt, also nach ueber einstuendiger suche
in der ansonsten doch recht umfangreichen dokumentation und auf der
python.org/howto seite nicht gefunden.

erst ein vager hinweis auf den modul-setup hat mich ueberhaupt auf diese
faehrte gebracht.  das ist viel zu mager.

> Außerdem werde in 2.1 alle Module dynamisch gelinkt (also
> als .so Modul gebaut), d.h. ein ldd auf python bringt nicht
> das gewünschte Ergebnis. ldd _socket.so sollte das aber tun....

ok, ich hab hier ein freebsd-4.3.  ldd geht nicht:

0 p3 Python-2.1.2 #ldd /l/lib/python2.1/lib-dynload/_socket.so
/l/lib/python2.1/lib-dynload/_socket.so:
ldd: /l/lib/python2.1/lib-dynload/_socket.so: Exec format error
/l/lib/python2.1/lib-dynload/_socket.so: exit status 1

aber man kann mit objdump(1) bzw. nm(1) nachsehen, ob _socket.so SSL
symbole kennt.  das tut es auch.  ich wundere mich bloss, dass HTTPS
verbindungen nicht richtig funktionieren.

die SSL symbole haben alle ein dickes `U' fuer undefined, also muss
irgendein dynamischer loader wissen, dass ich die neue version
openssl-0.9.6c in /usr/local/ssl habe, und die alte version in der /usr/lib
nicht mehr gilt.  diese letztere ist jetzt auch komplett ausradiert, legacy
kram habe ich durch einen symlink zum laufen gebracht.

also stehe ich (fast) am anfang, denn nach einer weile rumprobieren habe
ich einen ./Modules/Setup gefunden, der hier klappt.  aber das toplevel
Makefile musste ich trotzdem noch mit einem -pthread in den CFLAGS
ausruesten, diese funktion wird auch mit ./configure --with-threads nicht
richtig erkannt.

eine kompilation ist schon durch, und damit entsteht dann auch ein
interpreter mit readline, threads und openssl, so wie ich das brauche:

0 p1 Python-2.1.2 #ldd python
python:
        libc_r.so.4 => /usr/lib/libc_r.so.4 (0x280e5000)
        libutil.so.3 => /usr/lib/libutil.so.3 (0x28198000)
        libreadline.so.4 => /usr/lib/libreadline.so.4 (0x281a1000)
        libncurses.so.5 => /usr/lib/libncurses.so.5 (0x281c6000)
        libssl.so.0.9.6 => /usr/local/ssl/lib/libssl.so.0.9.6 (0x28208000)
        libcrypto.so.0.9.6 => /usr/local/ssl/lib/libcrypto.so.0.9.6 (0x28235000)
        libm.so.2 => /usr/lib/libm.so.2 (0x282f1000)
        libc.so.4 => /usr/lib/libc.so.4 (0x2830c000)

das -pthread ist uebrigens fuer fbsd systeme wichtig, es "beruhigt" das
compile/install doch sehr.

wer einen diff zum ./Modules/Setup.dist zu einem funktionierenden
freebsd-4.3 braucht, kann mich anmailen.  allerdings habe ich die
Berkeley-DB geopfert :)

wie kann ich denn mal eine ganz simple klasse bauen, um dieses feature zu
testen?  den browser aus der bibliothek moechte ich nicht extra dafuer
anschmeissen...

clemens fischer



More information about the Python-de mailing list