Problema ao atualizar o Apache - mod_deflate APR_INT32_MAX não declarado

1

No momento, estou tentando atualizar o apache de 2.2.8 para 2.2.29 e estou com algum problema.

Eu configurei o makefile assim:

./configure --enable-mods-shared --enable-ssl --enable-rewrite --enable-proxy-ftp --enable-proxy-http --enable-proxy-connect --enable-proxy --enable-cache --enable-mem-cache --enable-expires --enable-hea
ders --enable-deflateloca --enable-unique-id

Ao executar o comando make, recebo o seguinte erro:

/usr/local/apache2/build/libtool --silent --mode=compile gcc -g -O2 -pthread    -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE    -I/opt/vignette/software/apache/srclib/pcre -I. -I/opt/vignette/software/apache/os/unix -I/opt/vignette/software/apache/server/mpm/prefork -I/opt/vignette/software/apache/modules/http -I/opt/vignette/software/apache/modules/filters -I/opt/vignette/software/apache/modules/proxy -I/opt/vignette/software/apache/include -I/opt/vignette/software/apache/modules/generators -I/opt/vignette/software/apache/modules/mappers -I/opt/vignette/software/apache/modules/database -I/usr/local/apache2/include -I/opt/vignette/software/apache/modules/proxy/../generators -I/usr/kerberos/include -I/opt/vignette/software/apache/modules/ssl -I/opt/vignette/software/apache/modules/dav/main  -prefer-non-pic -static -c mod_deflate.c && touch mod_deflate.lo
mod_deflate.c: In function 'deflate_out_filter':
mod_deflate.c:790: error: 'APR_INT32_MAX' undeclared (first use in this function)
mod_deflate.c:790: error: (Each undeclared identifier is reported only once
mod_deflate.c:790: error: for each function it appears in.)
mod_deflate.c: In function 'deflate_in_filter':
mod_deflate.c:1165: error: 'APR_INT32_MAX' undeclared (first use in this function)
mod_deflate.c: In function 'inflate_out_filter':
mod_deflate.c:1550: error: 'APR_INT32_MAX' undeclared (first use in this function)
make[3]: *** [mod_deflate.lo] Error 1
make[3]: Leaving directory '/opt/vignette/software/httpd-2.2.29/modules/filters'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/opt/vignette/software/httpd-2.2.29/modules/filters'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/opt/vignette/software/httpd-2.2.29/modules'
make: *** [all-recursive] Error 1

Agora, quando vou para a linha 790 do deflate.c, tem isto:

 if (len > APR_INT32_MAX) {
            apr_bucket_split(e, APR_INT32_MAX);
            apr_bucket_read(e, &data, &len, APR_BLOCK_READ);
        }

Por alguma razão, não acho que essa variável esteja sendo definida por qualquer motivo.

Observarei que estou executando o RHEL4 (sei que é ruim) e que instalei recentemente o APR (Apache Runtime) e o APU (Apache Runtime Utility) e configurei-os em:

/usr/local/apr/bin/apr-1-config
/usr/local/apr/bin/apu-1-config

Não tenho certeza se estão relacionados ou se está causando um problema, já que instalei a APR independentemente e o fato de ela vir com o apache. O motivo pelo qual eu os instalo separadamente é porque outro programa que eu instalei depende de uma versão diferente.

Eu direi que quando configuro o makefile sem esvaziar as compilações binárias com sucesso.

    
por Christopher Stanley 30.10.2014 / 20:46

1 resposta

0

Depois de alguns dias tentando descobrir isso aqui, está a solução.

Parecia haver uma biblioteca antiga do APR (< v1.3.0) instalada no sistema que estava em conflito com a versão necessária para o apache. O que eu fiz foi compilar (e executar) com o APR embutido no arquivo httpd-2.2.29 usando: ./configure --with-included-apr

    
por 03.11.2014 / 18:25