incubator-pagespeed-ngx
incubator-pagespeed-ngx copied to clipboard
Problem with automatic installer.
Hello guys,
I have a problem with installing latest version of nginx, never had that issue before, all the time shown for me same error, never had the problem.
/root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc
/root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc: In function ‘ngx_int_t net_instaweb::{anonymous}::ps_set_cache_control(ngx_http_request_t*, char*)’:
/root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc:407:36: error: request for member ‘elts’ in ‘r->ngx_http_request_s::headers_out.ngx_http_headers_out_t::cache_control’, which is of pointer type ‘ngx_table_elt_t*’ {aka ‘ngx_table_elt_s*’} (maybe you meant to use ‘->’ ?)
407 | if (r->headers_out.cache_control.elts == NULL) {
| ^~~~
/root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc:408:35: error: cannot convert ‘ngx_table_elt_t**’ {aka ‘ngx_table_elt_s**’} to ‘ngx_array_t*’
408 | ngx_int_t rc = ngx_array_init(&r->headers_out.cache_control, r->pool,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| ngx_table_elt_t** {aka ngx_table_elt_s**}
In file included from src/core/ngx_core.h:65,
from src/http/ngx_http.h:13,
from /root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.h:33,
from /root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc:26:
src/core/ngx_array.h:32:29: note: initializing argument 1 of ‘ngx_int_t ngx_array_init(ngx_array_t*, ngx_pool_t*, ngx_uint_t, size_t)’
32 | ngx_array_init(ngx_array_t *array, ngx_pool_t *pool, ngx_uint_t n, size_t size)
| ~~~~~~~~~~~~~^~~~~
/root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc:415:22: error: cannot convert ‘ngx_table_elt_t**’ {aka ‘ngx_table_elt_s**’} to ‘ngx_array_t*’
415 | ngx_array_push(&r->headers_out.cache_control));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| ngx_table_elt_t** {aka ngx_table_elt_s**}
In file included from src/core/ngx_core.h:65,
from src/http/ngx_http.h:13,
from /root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.h:33,
from /root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc:26:
src/core/ngx_array.h:27:35: note: initializing argument 1 of ‘void* ngx_array_push(ngx_array_t*)’
27 | void *ngx_array_push(ngx_array_t *a);
| ~~~~~~~~~~~~~^
/root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc: In function ‘bool net_instaweb::{anonymous}::ps_get_cache_control(ngx_http_request_t*, GoogleString*)’:
/root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc:439:74: error: request for member ‘elts’ in ‘r->ngx_http_request_s::headers_out.ngx_http_headers_out_t::cache_control’, which is of pointer type ‘ngx_table_elt_t*’ {aka ‘ngx_table_elt_s*’} (maybe you meant to use ‘->’ ?)
439 | auto ccp = static_cast<ngx_table_elt_t**>(r->headers_out.cache_control.elts);
| ^~~~
/root/incubator-pagespeed-ngx-latest-stable/src/ngx_pagespeed.cc:444:59: error: request for member ‘nelts’ in ‘r->ngx_http_request_s::headers_out.ngx_http_headers_out_t::cache_control’, which is of pointer type ‘ngx_table_elt_t*’ {aka ‘ngx_table_elt_s*’} (maybe you meant to use ‘->’ ?)
444 | for (ngx_uint_t i = 0; i < r->headers_out.cache_control.nelts; i++) {
| ^~~~~
make[1]: *** [objs/Makefile:1439: objs/addon/src/ngx_pagespeed.o] Error 1
make[1]: Leaving directory '/root/nginx-1.23.0'
make: *** [Makefile:10: build] Error 2
Error: Failure running 'make', exiting.
I have the same issue. ngx_pagespeed version 1.13.35.2, nginx version 1.23.0
nginx 1.23.0 comes with some api changes, the git repo has been fixed but I do not think the automatic installer is fetching the git repo but a .tar.gz instead, which obviously hasn't been updated
@eilandert I saw your psol build for Ubuntu 22, thanks for your work! Please, can you make a tip how to build ngx_pagespeed from git sources for nginx 1.23.0? Automatic installer from repo fails on this issue too :c
nginx 1.23.0 comes with some api changes, the git repo has been fixed but I do not think the automatic installer is fetching the git repo but a .tar.gz instead, which obviously hasn't been updated
Ok, so when I can expect the fix for that pagespeed automatic installer? https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source
nginx 1.23.0 comes with some api changes, the git repo has been fixed but I do not think the automatic installer is fetching the git repo but a .tar.gz instead, which obviously hasn't been updated
Ok, so when I can expect the fix for that pagespeed automatic installer? https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source
I built ngx_pagespeed for Ubuntu 22.04
Just do it with official docs (https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source), but instead of downloading ngx_pagespeed sources from the version just clone the repo (i.e. git clone https://github.com/apache/incubator-pagespeed-ngx.git
(or your like way)) and instead of downloading PSOL from the official URL download @eilandert PSOL for Jammy wget https://www.linuxcapable.com/uploads/psol-jammy.tar.xz
Now I want to try building ngx_pagespeed with other OSes. Can I ping you with any news?
configuring additional modules adding module in /root/incubator-pagespeed-ngx-latest-stable mod_pagespeed_dir=/root/incubator-pagespeed-ngx-latest-stable/psol/include build_from_source=false checking for psol ... not found ./configure: error: module ngx_pagespeed requires the pagespeed optimization library. Look in /root/nginx-1.23.0/objs/autoconf.err for more details.
This happens after adding your custom PSOL, what's now?
Edit: I just replaced that custom PSOL to original PSOL but in different version ( 1.14.36.1 ): https://dist.apache.org/repos/dist/release/incubator/pagespeed/1.14.36.1/x64/psol-1.14.36.1-apache-incubating-x64.tar.gz
now the original automatic installer work, I just replaced that PSOL content during instalation process before apply --configure modules, then press Yes for compile, magic!
I checked your solution. It 100% works for debian 9/10/11, ubuntu 16/18/20 and centos 8. My solution works for Ubuntu 22. But I used manual installation.
@eilandert I saw your psol build for Ubuntu 22, thanks for your work! Please, can you make a tip how to build ngx_pagespeed from git sources for nginx 1.23.0? Automatic installer from repo fails on this issue too :c
I cooked something up in https://github.com/apache/incubator-pagespeed-ngx/issues/1760