Thread: openbsd 3.2, postgresql 7.3beta3 and openssl 'e_os.h' include file
[To BOTH postgresql and openbsd ports lists... please reply as appropriate.] I finally got around to trying to build 7.3beta3 on an fresh OpenBSD 3.2/i386 box, without all the historical lint that gets collected up. OpenSSL 0.9.x is including in the base release. The includsion of <openssl/e_os.h> in src/backend/libpq/be-secure.c fails. Removing this include results in a compile, but a missing reference to 'get_last_socket_error()' in linking. I cannot find that in any openssl include file :( I know *nothing* about using the OpenSSL libraries, and I am off away from the 'net for a week from tonight. :( Sorry. I will include any patches in the OpenBSD postgresql port that I am working on, but this may affect other systems that (perhaps) use the newer OpenSSL libraries ? Any ideas ? -- Peter
According to the feedback I have had, e_os.h is no longer a public interface header file in OpenSSL. 'get_last_socket_error' is a macro that seems to expand to errno. Can I suggest someone with better understanding of the postgresql sources, and ssl support, please pick this up - maybe in time for the 7.3 release ? rgds, -- Peter ----- Original Message ----- From: "Peter Galbavy" <peter.galbavy@knowtion.net> To: <pgsql-ports@postgresql.org>; <ports@openbsd.org> Sent: Tuesday, November 05, 2002 8:13 AM Subject: openbsd 3.2, postgresql 7.3beta3 and openssl 'e_os.h' include file > [To BOTH postgresql and openbsd ports lists... please reply as appropriate.] > > I finally got around to trying to build 7.3beta3 on an fresh OpenBSD > 3.2/i386 box, without all the historical lint that gets collected up. > OpenSSL 0.9.x is including in the base release. > > The includsion of <openssl/e_os.h> in src/backend/libpq/be-secure.c fails. > Removing this include results in a compile, but a missing reference to > 'get_last_socket_error()' in linking. I cannot find that in any openssl > include file :( > > I know *nothing* about using the OpenSSL libraries, and I am off away from > the 'net for a week from tonight. :( Sorry. > > I will include any patches in the OpenBSD postgresql port that I am working > on, but this may affect other systems that (perhaps) use the newer OpenSSL > libraries ? > > Any ideas ? > -- > Peter > >
Peter Galbavy wrote: > According to the feedback I have had, e_os.h is no longer a public interface > header file in OpenSSL. 'get_last_socket_error' is a macro that seems to > expand to errno. > > Can I suggest someone with better understanding of the postgresql sources, > and ssl support, please pick this up - maybe in time for the 7.3 release ? OK, I am using: #$ openssl OpenSSL> version OpenSSL 0.9.6e 30 Jul 2002 and ssl compiles fine here. What version are you using, exactly. Maybe OpenBSD considered e_os.h to be a security risk. ;-) I don't think this will make 7.3 unless we can find more information. I am hesitant to make any changes that may break openssl on other platforms. If we can find a solution, it may be in 7.3.1. -- 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, Pennsylvania 19073
Bruce Momjian <pgman@candle.pha.pa.us> writes: > Peter Galbavy wrote: >> According to the feedback I have had, e_os.h is no longer a public interface >> header file in OpenSSL. 'get_last_socket_error' is a macro that seems to >> expand to errno. > OK, I am using: > #$ openssl > OpenSSL> version > OpenSSL 0.9.6e 30 Jul 2002 > and ssl compiles fine here. What version are you using, exactly. I have OpenSSL 0.9.6g here (which is still the current release according to www.openssl.org). openssl/e_os.h is certainly still there ... but it does contain the comment /* <openssl/e_os2.h> contains what we can justify to make visible * to the outside; this file e_os.h is not part of the exported * interface. */ which may have prompted the OpenBSD porter to not include it? Anyway, get_last_socket_error() seems exactly equivalent to our macro SOCK_ERRNO in libpq/libpq-int.h. AFAICT, the uses of it in our code are these: /home/postgres/pgsql/src/backend/libpq/be-secure.c: errno = get_last_socket_error(); /home/postgres/pgsql/src/backend/libpq/be-secure.c: errno = get_last_socket_error(); /home/postgres/pgsql/src/interfaces/libpq/fe-secure.c: SOCK_ERRNO = get_last_socket_error(); /home/postgres/pgsql/src/interfaces/libpq/fe-secure.c: SOCK_ERRNO = get_last_socket_error(); and I think every one of these is bogus and should be removed. At best they're no-ops. If that is the only use of e_os.h stuff then we can stop including the file ... regards, tom lane
I said: > Anyway, get_last_socket_error() seems exactly equivalent to our macro > SOCK_ERRNO in libpq/libpq-int.h. AFAICT, the uses of it in our > code are these: > /home/postgres/pgsql/src/backend/libpq/be-secure.c: > errno = get_last_socket_error(); > /home/postgres/pgsql/src/backend/libpq/be-secure.c: > errno = get_last_socket_error(); > /home/postgres/pgsql/src/interfaces/libpq/fe-secure.c: > SOCK_ERRNO = get_last_socket_error(); > /home/postgres/pgsql/src/interfaces/libpq/fe-secure.c: > SOCK_ERRNO = get_last_socket_error(); > and I think every one of these is bogus and should be removed. > At best they're no-ops. > If that is the only use of e_os.h stuff then we can stop including > the file ... These were indeed the only uses of e_os.h symbols. I have removed them and the #includes. regards, tom lane