You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by An...@bmw.de on 2013/07/23 14:35:09 UTC

Probleme beim Kompilieren von Apache 2.0.65 mit OpenSSL 1.0.0k

Hallo,

Ich habe ein Problem beim kompilieren des Apache 2.0.65 in Verbindung mit der OpenSSL Version 1.0.0k. Dabei wirft er folgenden Fehler, aus welchem ich leider nicht weiter schlau werde:

/wwws/apache/apache2.0.65w/instroot/build/libtool --silent --mode=compile gcc  -g -O2 -pthread    -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER   -I/wwws/apache/apache2.0.65w/instroot/include/apr-0 -I/wwws/apache/apache2.0.65w/openldap/include -I. -I/wwws/apache/src/httpd-2.0.65/os/unix -I/wwws/apache/src/httpd-2.0.65/server/mpm/worker -I/wwws/apache/src/httpd-2.0.65/modules/http -I/wwws/apache/src/httpd-2.0.65/modules/filters -I/wwws/apache/src/httpd-2.0.65/modules/proxy -I/wwws/apache/src/httpd-2.0.65/include -I/wwws/apache/src/httpd-2.0.65/modules/generators -I/wwws/apache/src/httpd-2.0.65/server -I/wwws/apache/apache2.0.65w/openssl/include/openssl -I/wwws/apache/apache2.0.65w/openssl/include -I/wwws/apache/src/httpd-2.0.65/modules/dav/main -prefer-pic -c ssl_engine_init.c && touch ssl_engine_init.slo
ssl_engine_init.c: In function âssl_init_ctx_protocolâ:
ssl_engine_init.c:392: warning: assignment discards qualifiers from pointer target type
ssl_engine_init.c:398: warning: assignment discards qualifiers from pointer target type
ssl_engine_init.c: In function âssl_init_ctx_verifyâ:
ssl_engine_init.c:538: error: âSTACKâ undeclared (first use in this function)
ssl_engine_init.c:538: error: (Each undeclared identifier is reported only once
ssl_engine_init.c:538: error: for each function it appears in.)
ssl_engine_init.c:538: error: expected expression before â)â token
ssl_engine_init.c: In function âssl_init_FindCAListâ:
ssl_engine_init.c:1113: warning: pointer type mismatch in conditional expression
make[4]: *** [ssl_engine_init.slo] Error 1
make[4]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules/ssl'
make[3]: *** [shared-build-recursive] Error 1
make[3]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules/ssl'
make[2]: *** [shared-build-recursive] Error 1
make[2]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules'
make[1]: *** [shared-build-recursive] Error 1
make[1]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65'
make: *** [all-recursive] Error 1
Making httpd was NOT SUCCESSFUL.

Ich hatte in älteren Versionen schon das Problem mit dem Fehler "inal link failed: Bad value", auf welchen hin ich OpenSSL mit dem Parameter "shared" gebaut habe und dies dann lief.

SuSe Linux 11SP1
GCC Version aktuell: gcc (GCC) 4.1.2 20070115 (SUSE Linux)

OpenSSL:
./config \
  --prefix=${prefix_openssl}     \
  --openssldir=${prefix_openssl} \
  shared

Apache:
./configure --prefix=${apache_prefix}/instroot \
...
--enable-ssl \
--with-ssl=${apache_prefix}/openssl \
...

Danke,
André 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org


Re: Probleme beim Kompilieren von Apache 2.0.65 mit OpenSSL 1.0.0k

Posted by Rainer Jung <ra...@kippdata.de>.
On 25.07.2013 15:32, Andre.Wendel@bmw.de wrote:
> Hallo Herr Jung,
> 
> vielen Dank für die schnelle Antwort und angebotene Hilfe. 
> 
> Nach etwas Hilfe und dem Einsatz rudimentärer C++-Kenntnisse habe ich das Ganze noch zum kompilieren und laufen bekommen, dabei hat mir folgender Teil sehr geholfen http://mail-index.netbsd.org/pkgsrc-users/2009/08/25/msg010530.html
> 
> Ich habe um das Ganze zu lösen innerhalb der Dateien folgende Stellen angepasst:
> 
> modules/ssl/ssl_engine_init.c
> 
>> #ifdef SSL_OP_CIPHER_SERVER_PREFERENCE
>>     if (sc->cipher_server_pref == TRUE) {
>>         SSL_CTX_set_options(ctx, SSL_OP_CIPHER_SERVER_PREFERENCE);
>>     }
>> #endif
>>
> 538c544
> <         SSL_CTX_set_client_CA_list(ctx, (STACK *)ca_list);
> ---
>>         SSL_CTX_set_client_CA_list(ctx, (STACK_OF(X509_NAME) *)ca_list);
> 
> modules/ssl/ ssl_util_ssl.c
> 
> 469c469
> <     STACK *extra_certs;
> ---
>>     STACK_OF(X509) *extra_certs;

Danke für die Info, ja das sieht auch für mich gut aus.

> Erste SSL-Test liefen ohne Probleme.

Ich habe diese Änderung an den von mit zitierten Bugzilla Issue gehängt.
Mit an Sicherheit grenzender Wahrscheinlichkeit wird es zwar kein
2.0-Release mehr geben, aber für User mit dem gleichen Problem beim
Bauen ist dann die Lösung besser auffindbar.

> Der Code scheint mir damals wohl nicht sehr einheitlich gepflegt worden zu sein bzw. die Stellen evtl. bei der Umstellung von STACK * auch Typisierung übersehen worden zu sein.

Ich hab es jetzt nicht nachgeschaut, aber ich denke zu der Zeit als es
relevant wurde hat sich einfach niemand gefunden, der genug Interesse
hatte 2.0 mit OpenSSL 1.0 kompatibel zu machen. Bei 2.2 ist dies ja gegeben.

Viel Spaß mit Apache (und ein baldiges Ende Ihres 2.0-Lifecycle) wünscht

Rainer Jung

-- 
kippdata
informationstechnologie GmbH   Tel: 0228 98549 -0
Bornheimer Str. 33a            Fax: 0228 98549 -50
53111 Bonn                     www.kippdata.de

HRB 8018 Amtsgericht Bonn / USt.-IdNr. DE 196 457 417
Geschäftsführer: Dr. Thomas Höfer, Rainer Jung, Sven Maurmann

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org


AW: Probleme beim Kompilieren von Apache 2.0.65 mit OpenSSL 1.0.0k

Posted by An...@bmw.de.
Hallo Herr Jung,

vielen Dank für die schnelle Antwort und angebotene Hilfe. 

Nach etwas Hilfe und dem Einsatz rudimentärer C++-Kenntnisse habe ich das Ganze noch zum kompilieren und laufen bekommen, dabei hat mir folgender Teil sehr geholfen http://mail-index.netbsd.org/pkgsrc-users/2009/08/25/msg010530.html

Ich habe um das Ganze zu lösen innerhalb der Dateien folgende Stellen angepasst:

modules/ssl/ssl_engine_init.c

> #ifdef SSL_OP_CIPHER_SERVER_PREFERENCE
>     if (sc->cipher_server_pref == TRUE) {
>         SSL_CTX_set_options(ctx, SSL_OP_CIPHER_SERVER_PREFERENCE);
>     }
> #endif
>
538c544
<         SSL_CTX_set_client_CA_list(ctx, (STACK *)ca_list);
---
>         SSL_CTX_set_client_CA_list(ctx, (STACK_OF(X509_NAME) *)ca_list);

modules/ssl/ ssl_util_ssl.c

469c469
<     STACK *extra_certs;
---
>     STACK_OF(X509) *extra_certs;

Erste SSL-Test liefen ohne Probleme.

Der Code scheint mir damals wohl nicht sehr einheitlich gepflegt worden zu sein bzw. die Stellen evtl. bei der Umstellung von STACK * auch Typisierung übersehen worden zu sein.

Viele Grüße,
André Wendel

-----Ursprüngliche Nachricht-----
Von: Rainer Jung [mailto:rainer.jung@kippdata.de] 
Gesendet: Mittwoch, 24. Juli 2013 17:30
An: users-de@httpd.apache.org
Betreff: Re: Probleme beim Kompilieren von Apache 2.0.65 mit OpenSSL 1.0.0k

Hallo Herr Wendel,

On 23.07.2013 14:35, Andre.Wendel@bmw.de wrote:
> Hallo,
> 
> Ich habe ein Problem beim kompilieren des Apache 2.0.65 in Verbindung mit der OpenSSL Version 1.0.0k. Dabei wirft er folgenden Fehler, aus welchem ich leider nicht weiter schlau werde:
> 
> /wwws/apache/apache2.0.65w/instroot/build/libtool --silent --mode=compile gcc  -g -O2 -pthread    -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER   -I/wwws/apache/apache2.0.65w/instroot/include/apr-0 -I/wwws/apache/apache2.0.65w/openldap/include -I. -I/wwws/apache/src/httpd-2.0.65/os/unix -I/wwws/apache/src/httpd-2.0.65/server/mpm/worker -I/wwws/apache/src/httpd-2.0.65/modules/http -I/wwws/apache/src/httpd-2.0.65/modules/filters -I/wwws/apache/src/httpd-2.0.65/modules/proxy -I/wwws/apache/src/httpd-2.0.65/include -I/wwws/apache/src/httpd-2.0.65/modules/generators -I/wwws/apache/src/httpd-2.0.65/server -I/wwws/apache/apache2.0.65w/openssl/include/openssl -I/wwws/apache/apache2.0.65w/openssl/include -I/wwws/apache/src/httpd-2.0.65/modules/dav/main -prefer-pic -c ssl_engine_init.c && touch ssl_engine_init.slo
> ssl_engine_init.c: In function âssl_init_ctx_protocolâ:
> ssl_engine_init.c:392: warning: assignment discards qualifiers from pointer target type
> ssl_engine_init.c:398: warning: assignment discards qualifiers from pointer target type
> ssl_engine_init.c: In function âssl_init_ctx_verifyâ:
> ssl_engine_init.c:538: error: âSTACKâ undeclared (first use in this function)
> ssl_engine_init.c:538: error: (Each undeclared identifier is reported only once
> ssl_engine_init.c:538: error: for each function it appears in.)
> ssl_engine_init.c:538: error: expected expression before â)â token
> ssl_engine_init.c: In function âssl_init_FindCAListâ:
> ssl_engine_init.c:1113: warning: pointer type mismatch in conditional expression
> make[4]: *** [ssl_engine_init.slo] Error 1
> make[4]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules/ssl'
> make[3]: *** [shared-build-recursive] Error 1
> make[3]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules/ssl'
> make[2]: *** [shared-build-recursive] Error 1
> make[2]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules'
> make[1]: *** [shared-build-recursive] Error 1
> make[1]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65'
> make: *** [all-recursive] Error 1
> Making httpd was NOT SUCCESSFUL.
> 
> Ich hatte in älteren Versionen schon das Problem mit dem Fehler "inal link failed: Bad value", auf welchen hin ich OpenSSL mit dem Parameter "shared" gebaut habe und dies dann lief.
> 
> SuSe Linux 11SP1
> GCC Version aktuell: gcc (GCC) 4.1.2 20070115 (SUSE Linux)
> 
> OpenSSL:
> ./config \
>   --prefix=${prefix_openssl}     \
>   --openssldir=${prefix_openssl} \
>   shared
> 
> Apache:
> ./configure --prefix=${apache_prefix}/instroot \
> ...
> --enable-ssl \
> --with-ssl=${apache_prefix}/openssl \
> ...

Ich denke es handelt sich hier um die bekannte Inkompatibilität zwischen
Apache 2.0 und OpenSSL 1.0 oder höher:

https://issues.apache.org/bugzilla/show_bug.cgi?id=49034

Ich kann mir das einmal ansehen, aber wenn Ihnen eine Übersetzung mit
dem letzten OpenSSL 0.9.8 reicht wäre das einfacher. Noch besser wäre
natürlich auf Apache 2.2.25 oder 2.4.6 zu switchen :)

Allerdings passt die oben angegebene Zeilennummer 538 nicht auf eine
Stelle, die STACK verwendet. Deshalb zunächst die Fragen:

- welche Version hatten Sie zuletzt erfolgreich mit den gleichen
Rahmenbedingungen kompiliert?

- wurde die Datei modules/ssl/ssl_engine_init.c von Ihnen angepasst?
  In der Originaldatei steht in Zeile 538 der Aufruf zur Ausgabe der
Log-Meldung "Unable to determine list of available CA certificates for
client authentication", keine Spur von STACK.

Grüße sendet

Rainer Jung

-- 
kippdata
informationstechnologie GmbH   Tel: 0228 98549 -0
Bornheimer Str. 33a            Fax: 0228 98549 -50
53111 Bonn                     www.kippdata.de

HRB 8018 Amtsgericht Bonn / USt.-IdNr. DE 196 457 417
Geschäftsführer: Dr. Thomas Höfer, Rainer Jung, Sven Maurmann

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org


Re: Probleme beim Kompilieren von Apache 2.0.65 mit OpenSSL 1.0.0k

Posted by Rainer Jung <ra...@kippdata.de>.
Hallo Herr Wendel,

On 23.07.2013 14:35, Andre.Wendel@bmw.de wrote:
> Hallo,
> 
> Ich habe ein Problem beim kompilieren des Apache 2.0.65 in Verbindung mit der OpenSSL Version 1.0.0k. Dabei wirft er folgenden Fehler, aus welchem ich leider nicht weiter schlau werde:
> 
> /wwws/apache/apache2.0.65w/instroot/build/libtool --silent --mode=compile gcc  -g -O2 -pthread    -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER   -I/wwws/apache/apache2.0.65w/instroot/include/apr-0 -I/wwws/apache/apache2.0.65w/openldap/include -I. -I/wwws/apache/src/httpd-2.0.65/os/unix -I/wwws/apache/src/httpd-2.0.65/server/mpm/worker -I/wwws/apache/src/httpd-2.0.65/modules/http -I/wwws/apache/src/httpd-2.0.65/modules/filters -I/wwws/apache/src/httpd-2.0.65/modules/proxy -I/wwws/apache/src/httpd-2.0.65/include -I/wwws/apache/src/httpd-2.0.65/modules/generators -I/wwws/apache/src/httpd-2.0.65/server -I/wwws/apache/apache2.0.65w/openssl/include/openssl -I/wwws/apache/apache2.0.65w/openssl/include -I/wwws/apache/src/httpd-2.0.65/modules/dav/main -prefer-pic -c ssl_engine_init.c && touch ssl_engine_init.slo
> ssl_engine_init.c: In function âssl_init_ctx_protocolâ:
> ssl_engine_init.c:392: warning: assignment discards qualifiers from pointer target type
> ssl_engine_init.c:398: warning: assignment discards qualifiers from pointer target type
> ssl_engine_init.c: In function âssl_init_ctx_verifyâ:
> ssl_engine_init.c:538: error: âSTACKâ undeclared (first use in this function)
> ssl_engine_init.c:538: error: (Each undeclared identifier is reported only once
> ssl_engine_init.c:538: error: for each function it appears in.)
> ssl_engine_init.c:538: error: expected expression before â)â token
> ssl_engine_init.c: In function âssl_init_FindCAListâ:
> ssl_engine_init.c:1113: warning: pointer type mismatch in conditional expression
> make[4]: *** [ssl_engine_init.slo] Error 1
> make[4]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules/ssl'
> make[3]: *** [shared-build-recursive] Error 1
> make[3]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules/ssl'
> make[2]: *** [shared-build-recursive] Error 1
> make[2]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65/modules'
> make[1]: *** [shared-build-recursive] Error 1
> make[1]: Leaving directory `/lfs/wwwmnt/wwws.nvgm042/apache/src/httpd-2.0.65'
> make: *** [all-recursive] Error 1
> Making httpd was NOT SUCCESSFUL.
> 
> Ich hatte in älteren Versionen schon das Problem mit dem Fehler "inal link failed: Bad value", auf welchen hin ich OpenSSL mit dem Parameter "shared" gebaut habe und dies dann lief.
> 
> SuSe Linux 11SP1
> GCC Version aktuell: gcc (GCC) 4.1.2 20070115 (SUSE Linux)
> 
> OpenSSL:
> ./config \
>   --prefix=${prefix_openssl}     \
>   --openssldir=${prefix_openssl} \
>   shared
> 
> Apache:
> ./configure --prefix=${apache_prefix}/instroot \
> ...
> --enable-ssl \
> --with-ssl=${apache_prefix}/openssl \
> ...

Ich denke es handelt sich hier um die bekannte Inkompatibilität zwischen
Apache 2.0 und OpenSSL 1.0 oder höher:

https://issues.apache.org/bugzilla/show_bug.cgi?id=49034

Ich kann mir das einmal ansehen, aber wenn Ihnen eine Übersetzung mit
dem letzten OpenSSL 0.9.8 reicht wäre das einfacher. Noch besser wäre
natürlich auf Apache 2.2.25 oder 2.4.6 zu switchen :)

Allerdings passt die oben angegebene Zeilennummer 538 nicht auf eine
Stelle, die STACK verwendet. Deshalb zunächst die Fragen:

- welche Version hatten Sie zuletzt erfolgreich mit den gleichen
Rahmenbedingungen kompiliert?

- wurde die Datei modules/ssl/ssl_engine_init.c von Ihnen angepasst?
  In der Originaldatei steht in Zeile 538 der Aufruf zur Ausgabe der
Log-Meldung "Unable to determine list of available CA certificates for
client authentication", keine Spur von STACK.

Grüße sendet

Rainer Jung

-- 
kippdata
informationstechnologie GmbH   Tel: 0228 98549 -0
Bornheimer Str. 33a            Fax: 0228 98549 -50
53111 Bonn                     www.kippdata.de

HRB 8018 Amtsgericht Bonn / USt.-IdNr. DE 196 457 417
Geschäftsführer: Dr. Thomas Höfer, Rainer Jung, Sven Maurmann

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org