apache / incubator-pagespeed-ngx

Automatic PageSpeed optimization module for Nginx
http://ngxpagespeed.com/
Apache License 2.0
4.37k stars 363 forks source link

incompatible with nginx-gridfs and any other modules setting `--std=c99` #626

Closed Mimikoo closed 10 years ago

Mimikoo commented 10 years ago

Hello. Can not build this module with nginx. This is make error:

cc -c -I /home/mimiko/src/nginx-modules/ngx_http_js_module/src/
    -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror
   -g -I/opt/GeoIP/include -I/opt/gperftools/include -I/opt/ffmpeg/include
   -DNDK_SET_VAR -DSERF_HTTPS_FETCHING=0
   -I/home/mimiko/src/nginx-modules/nginx-rtmp-module
   -I/home/mimiko/src/nginx-modules/ngx_http_lower_upper_case
   -DNDK_SET_VAR -DNDK_UPSTREAM_LIST
   -D_LARGEFILE_SOURCE -DBUILDING_NGINX
   -I/home/mimiko/src/nginx-modules/ngx_http_php_session
   -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR
   -DNDK_SET_VAR -Wno-unused-function -Wno-missing-field-initializers 
   -D_POSIX_C_SOURCE=200112L --std=c99 -Isrc  -I src/core -I src/event 
  -I src/event/modules -I src/os/unix -I /home/mimiko/src/nginx-modules/ngx_devel_kit/objs 
  -I objs/addon/ndk -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/chromium/src 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/google-sparsehash/src 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/google-sparsehash/gen/arch/linux/x64/include 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/protobuf/src 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/re2/src 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/out/Release/obj/gen 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/out/Release/obj/gen/protoc_out/instaweb 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/apr/src/include 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/aprutil/src/include
   -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/apr/gen/arch/linux/x64/include 
  -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/aprutil/gen/arch/linux/x64/include 
  -I /home/mimiko/src/nginx-modules/nginx_tcp_proxy_module/modules 
  -I /home/mimiko/src/nginx-modules/nginx_tcp_proxy_module/parsers 
  -I /home/mimiko/src/nginx-modules/nginx_tcp_proxy_module 
  -I /opt/libpq/include 
  -I /opt/spidermonkey/include 
  -I /home/mimiko/src/nginx-modules/nginx-video-thumbextractor-module/src 
  -I /home/mimiko/src/nginx-modules/nginx-video-thumbextractor-module/include 
  -I /opt/sregex/include -I /opt/luajit/include/luajit-2.0 
  -I /opt/luajit/include/luajit-2.0
  -I /home/mimiko/src/nginx-modules/lua-nginx-module/src/api
  -I /home/mimiko/src/nginx-modules/nginx-push-stream-module/src
  -I /home/mimiko/src/nginx-modules/nginx-push-stream-module/include
  -I /home/mimiko/src/nginx-modules/nginx_http_push_module/src
  -I /home/mimiko/src/nginx-modules/nginx-selective-cache-purge-module/src
  -I /home/mimiko/src/nginx-modules/nginx-selective-cache-purge-module/include
  -I ../pcre
  -I ../openssl/.openssl/include
  -I ../zlib
  -I /usr/include/libxml2
  -I objs
  -I src/http
  -I src/http/modules
  -I src/http/modules/perl
  -I /home/mimiko/src/nginx-modules/ngx_devel_kit/src
  -I /home/mimiko/src/nginx-modules/nginx-upload-module
  -I /home/mimiko/src/nginx-modules/healthcheck_nginx_upstreams
  -I /home/mimiko/src/nginx-modules/nginx-http-sysguard -I src/mail \
                -o objs/addon/src/log_message_handler.o \
                /home/mimiko/src/nginx-modules/ngx_pagespeed/src/log_message_handler.cc
cc1plus: error: command line option Б─≤-std=c99Б─≥ is valid for C/ObjC but not for C++ [-Werror]
cc1plus: all warnings being treated as errors
make[1]: *** [objs/addon/src/log_message_handler.o] Error 1
make[1]: Leaving directory `/home/mimiko/src/nginx'
make: *** [build] Error 2

I use Debian Wheezy x86_64. Nginx and module are latest from git.

jeffkaufman commented 10 years ago

What modules are you using? My guess is one sets --std=c99 and we need to change our build process to be compatible with them.

Mimikoo commented 10 years ago

This module is setting the option:

grep -r "\-\-std=c99"
nginx-gridfs/mongo-c-driver/docs/source/sphinx/source/tutorial.rst:    $ gcc -Isrc --std=c99 /path/to/mongo-c-driver/src/*.c -I /path/to/mongo-c-driver/src/ tutorial.c -o tutorial
nginx-gridfs/mongo-c-driver/docs/source/sphinx/source/building.rst:    gcc --std=c99 -I/usr/local/include -L/usr/local/lib -o example docs/examples/example.c -lmongoc
nginx-gridfs/mongo-c-driver/docs/source/sphinx/source/building.rst:    gcc --std=c99 -static -I/usr/local/include -L/usr/local/lib -o example docs/examples/example.c -lmongoc
nginx-gridfs/mongo-c-driver/docs/source/sphinx/source/building.rst:    gcc --std=c99 -static -Isrc -o example docs/example/example.c libmongoc.a
nginx-gridfs/config:CFLAGS="$CFLAGS -Wno-unused-function -Wno-missing-field-initializers -D_POSIX_C_SOURCE=200112L --std=c99 -Isrc"

Disabling nginx-gridfs and enabling ngx_pagespeed, allows nginx to compile.

Mimikoo commented 10 years ago

Removing --std=c99 from nginx-gridfs a new error is produced:

cc -c -I /home/mimiko/src/nginx-modules/ngx_http_js_module/src/  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I/opt/GeoIP/include -I/opt/gperftools/include -I/opt/ffmpeg/include -I/opt/ImageMagick/include/ImageMagick-6 -DMAGICKCORE_QUANTUM_DEPTH=32 -DMAGICKCORE_HDRI_ENABLE=0 -I/opt/libsass/include -I/opt/hiredis/include/hiredis -DNDK_SET_VAR -DSERF_HTTPS_FETCHING=0  -I/home/mimiko/src/nginx-modules/nginx-rtmp-module -I/home/mimiko/src/nginx-modules/ngx_http_lower_upper_case -DNDK_SET_VAR -DNDK_UPSTREAM_LIST  -I/home/mimiko/src/nginx-modules/ngx_http_php_session -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR -Wno-unused-function -Wno-missing-field-initializers -D_POSIX_C_SOURCE=200112L  -Isrc  -I src/core -I src/event -I src/event/modules -I src/os/unix -I /home/mimiko/src/nginx-modules/ngx_devel_kit/objs -I objs/addon/ndk -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/chromium/src -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/google-sparsehash/src -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/google-sparsehash/gen/arch/linux/x64/include -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/protobuf/src -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/re2/src -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/out/Release/obj/gen -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/apr/src/include -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/aprutil/src/include -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/apr/gen/arch/linux/x64/include -I /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/third_party/aprutil/gen/arch/linux/x64/include -I /home/mimiko/src/nginx-modules/nginx_tcp_proxy_module/modules -I /home/mimiko/src/nginx-modules/nginx_tcp_proxy_module/parsers -I /home/mimiko/src/nginx-modules/nginx_tcp_proxy_module -I /opt/libpq/include -I /opt/spidermonkey/include -I /home/mimiko/src/nginx-modules/ngx_http_upstream_check_module -I /home/mimiko/src/nginx-modules/nginx-video-thumbextractor-module/src -I /home/mimiko/src/nginx-modules/nginx-video-thumbextractor-module/include -I /opt/sregex/include -I /opt/luajit/include/luajit-2.0 -I /opt/luajit/include/luajit-2.0 -I /home/mimiko/src/nginx-modules/lua-nginx-module/src/api -I /home/mimiko/src/nginx-modules/nginx-push-stream-module/src -I /home/mimiko/src/nginx-modules/nginx-push-stream-module/include -I /home/mimiko/src/nginx-modules/nginx_http_push_module/src -I /home/mimiko/src/nginx-modules/nginx-selective-cache-purge-module/src -I /home/mimiko/src/nginx-modules/nginx-selective-cache-purge-module/include -I ../pcre -I ../openssl/.openssl/include -I ../zlib -I /usr/include/libxml2 -I objs -I src/http -I src/http/modules -I src/http/modules/perl -I /home/mimiko/src/nginx-modules/ngx_devel_kit/src -I /home/mimiko/src/nginx-modules/nginx-http-sysguard -I src/mail \
                -o objs/addon/src/ngx_pagespeed.o \
                /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::in_place::ps_in_place_check_header_filter(ngx_http_request_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2213:24: error: no matching function for call to Б─≤net_instaweb::InPlaceResourceRecorder::InPlaceResourceRecorder(net_instaweb::RequestContextPtr, GoogleString&, net_instaweb::RequestHeaders*, bool, int64, int64, net_instaweb::HTTPCache*, net_instaweb::Statistics*, net_instaweb::MessageHandler*&)Б─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2213:24: note: candidates are:
In file included from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:53:0:
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/in_place_resource_recorder.h:133:3: note: net_instaweb::InPlaceResourceRecorder::InPlaceResourceRecorder(const net_instaweb::InPlaceResourceRecorder&)
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/in_place_resource_recorder.h:133:3: note:   candidate expects 1 argument, 9 provided
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/in_place_resource_recorder.h:45:3: note: net_instaweb::InPlaceResourceRecorder::InPlaceResourceRecorder(base::StringPiece, net_instaweb::RequestHeaders*, bool, int, int, net_instaweb::HTTPCache*, net_instaweb::Statistics*, net_instaweb::MessageHandler*)
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/in_place_resource_recorder.h:45:3: note:   candidate expects 8 arguments, 9 provided
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::in_place::ps_in_place_body_filter(ngx_http_request_t*, ngx_chain_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2270:9: error: Б─≤kPreliminaryHeadersБ─≥ is not a member of Б─≤net_instaweb::InPlaceResourceRecorderБ─≥
make[1]: *** [objs/addon/src/ngx_pagespeed.o] Error 1
make[1]: Leaving directory `/home/mimiko/src/nginx'
make: *** [build] Error 2

Please look at this to resolve.

peterbowey commented 10 years ago

The issue is that gcc is being run with -Werror (treating all warnings as errors). You can see it in the your output: (via nginx-gridfs above)

cc1plus: error: command line option Б─≤-std=c99Б─≥ is valid for C/ObjC but not for C++ [-Werror]

Please append "-Wno-error" to your CFLAGS.

This is a known problem with nginx-gridfs

peterbowey commented 10 years ago

It might be easier to simply remove the '-Werror' flag to solve the above problem. But please keep the '--std=c99'

Mimikoo commented 10 years ago

I don't want to break nginx's compile rule about erroring on warnings. May be there is some code to change in progress? Or add -Wno-error in config just for ngx_pagespeed?

peterbowey commented 10 years ago

The issue is with 'nginx-gridfs' and not 'ngx_pagespeed' It is 'nginx-gridfs' that adds the '--std=c99', it is a known issue if you Google this issue.

Mimikoo commented 10 years ago

I chenged config file to: CFLAGS="$CFLAGS -DSERF_HTTPS_FETCHING=0 $FLAG_MARCH -Wno-error" but still error:

 /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc
cc1plus: warning: command line option Б─≤-std=c99Б─≥ is valid for C/ObjC but not for C++ [enabled by default]
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::in_place::ps_in_place_check_header_filter(ngx_http_request_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2213:24: error: no matching function for call to Б─≤net_instaweb::InPlaceResourceRecorder::InPlaceResourceRecorder(net_instaweb::RequestContextPtr, GoogleString&, net_instaweb::RequestHeaders*, bool, int64, int64, net_instaweb::HTTPCache*, net_instaweb::Statistics*, net_instaweb::MessageHandler*&)Б─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2213:24: note: candidates are:
In file included from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:53:0:
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/in_place_resource_recorder.h:133:3: note: net_instaweb::InPlaceResourceRecorder::InPlaceResourceRecorder(const net_instaweb::InPlaceResourceRecorder&)
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/in_place_resource_recorder.h:133:3: note:   candidate expects 1 argument, 9 provided
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/in_place_resource_recorder.h:45:3: note: net_instaweb::InPlaceResourceRecorder::InPlaceResourceRecorder(base::StringPiece, net_instaweb::RequestHeaders*, bool, int, int, net_instaweb::HTTPCache*, net_instaweb::Statistics*, net_instaweb::MessageHandler*)
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/in_place_resource_recorder.h:45:3: note:   candidate expects 8 arguments, 9 provided
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::in_place::ps_in_place_body_filter(ngx_http_request_t*, ngx_chain_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2270:9: error: Б─≤kPreliminaryHeadersБ─≥ is not a member of Б─≤net_instaweb::InPlaceResourceRecorderБ─≥
make[1]: *** [objs/addon/src/ngx_pagespeed.o] Error 1
make[1]: Leaving directory `/home/mimiko/src/nginx'
make: *** [build] Error 2

For now I willl compile or with gridfs or with pagespeed. I writted to nginx-gridfs githup as an issue about this also. Will wait for pathes from them.

peterbowey commented 10 years ago

Actually, there are many 'harmless' warnings compiling 'ngx_pagespeed' - and most of them are due to a 'fuzzy coding' used in the linked 'chromium' library'. So you will need the "-Wno-error" to compile with 'ngx_pagespeed' - regardless of other issues. Having the compiler treat warnings as an error is a luxury here.

The most common 'warning' in mod_pagespeed and ngx_pageseed is: scoped_ptr.h:403:35: warning: invalid use of incomplete type 'class scoped_ptr_malloc<C, FreeProc>'

Others show like: warning: typedef 'VerifySizesAreEqual' locally defined but not used [-Wunused-local-typedefs], warning: declaration of 'class scoped_ptr<C>, warning: declaration of 'class scoped_ptr_malloc<C, FreeProc>, and warning: invalid use of incomplete type 'class scoped_array<C>

Mimikoo commented 10 years ago

It is interesting that no other modules, nor nginx itself frows error on --std=c99. As I don't use MongoDB for now, I will disable the nginx-gridfs.

If I ignore those warnings - is any probability that nginx will not work correctly after that? I thin that any warning must be taken in account and corrected.

Mimikoo commented 10 years ago

If those warnings are harmless, why don't you add to config file of ngx_pagespeed to CFLAGS this rewrite of warnings to errors? Then there will be no changes nor from CFLAGS globally to nginx, nor for other modules.

Mimikoo commented 10 years ago

Hmm, just tried to compile without nginx-gridfs. The errors is with pagespeed that I mentioned in latest snip. -Wno-error does not help.

peterbowey commented 10 years ago

Your have another issue on the last report, it reads like this:

/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2213:24: error: no matching function for call to Б─≤net_instaweb::InPlaceResourceRecorder::InPlaceResourceRecorder(net_instaweb::RequestContextPtr, GoogleString&, net_instaweb::RequestHeaders*, bool, int64, int64, net_instaweb::HTTPCache*, net_instaweb::Statistics*, net_instaweb::MessageHandler*&)Б─≥

This is an issue with what release you chose to compile from mod_pagespeed, for you are showing the use of a function net_instaweb::InPlaceResourceRecorder::InPlaceResourceRecorder scope that ngx_pagespeed does not yet support, and it is about the use of net_instaweb::Statistics*.

See my report at: https://github.com/pagespeed/ngx_pagespeed/pull/648 on the same issue I had experienced.

Mimikoo commented 10 years ago

I compile with nginx 1.5.13 and latest ngx_pagespeed:

git clone https://github.com/pagespeed/ngx_pagespeed.git ~/src/nginx-modules/ngx_pagespeed; \
    wget https://dl.google.com/dl/page-speed/psol/1.7.30.2.tar.gz -O ~/src/nginx-modules/ngx_pagespeed/psol.tar.gz; \
    tar -C ~/src/nginx-modules/ngx_pagespeed/ -xzvf ~/src/nginx-modules/ngx_pagespeed/psol.tar.gz

So I understand, that ngx_pagespeed is not compatible right now with nginx 1.5.13?

peterbowey commented 10 years ago

I use the latest nginx v1.5.13 pull via http://hg.nginx.org/nginx/branches and I have no current issue using that 'bleeding edge' nginx release with the latest 'trunk' ngx_pagespeed at ngx_pagespeed 'trunk-tracking release. See: https://github.com/pagespeed/ngx_pagespeed/tree/trunk-tracking.

I notice you were using an much older https://dl.google.com/dl/page-speed/psol/1.7.30.2.tar.gz You should be compiling your own, see: https://github.com/pagespeed/ngx_pagespeed/wiki/Building-PSOL-From-Source - or using the recent release at wget https://dl.google.com/dl/page-speed/psol/1.7.30.4.tar.gz. The use of the older https://dl.google.com/dl/page-speed/psol/1.7.30.2.tar.gz is much to 'out-of-date' to take on board for the current issue you report here.

For some notes that may help - further, please see this page: https://github.com/pagespeed/ngx_pagespeed/pull/648

I am not on the ngx_pagespeed or mod_pagespeed coder team. I am just a very bleeding edge 'end' user, web developer and coder who battles with code written by others.

I am not employed by either project team mentioned, I am simply a very patient coder and analyst. I hope I have been of some help here in your crisis....

Mimikoo commented 10 years ago

Well, I switched to trunk-tracking and more errors appeared:

 /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc
cc1plus: warning: command line option Б─≤-std=c99Б─≥ is valid for C/ObjC but not for C++ [enabled by default]
In file included from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:35:0:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:58:13: error: Б─≤ProcessContextБ─≥ does not name a type
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:58:29: error: ISO C++ forbids declaration of Б─≤process_contextБ─≥ with no type [-fpermissive]
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤void* net_instaweb::{anonymous}::ps_create_main_conf(ngx_conf_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:690:30: error: no matching function for call to Б─≤net_instaweb::NgxRewriteDriverFactory::NgxRewriteDriverFactory(net_instaweb::ProcessContext&, net_instaweb::SystemThreadSystem*, const char [1], int)Б─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:690:30: note: candidates are:
In file included from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:35:0:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:176:3: note: net_instaweb::NgxRewriteDriverFactory::NgxRewriteDriverFactory(const net_instaweb::NgxRewriteDriverFactory&)
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:176:3: note:   candidate expects 1 argument, 4 provided
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:57:12: note: net_instaweb::NgxRewriteDriverFactory::NgxRewriteDriverFactory(const int&, net_instaweb::SystemThreadSystem*, base::StringPiece, int)
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:57:12: note:   no known conversion for argument 1 from Б─≤net_instaweb::ProcessContextБ─≥ to Б─≤const int&Б─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤net_instaweb::RewriteOptions* net_instaweb::{anonymous}::ps_determine_request_options(ngx_http_request_t*, net_instaweb::RequestHeaders*, net_instaweb::ResponseHeaders*, net_instaweb::{anonymous}::ps_srv_conf_t*, net_instaweb::GoogleUrl*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1229:65: error: no matching function for call to Б─≤net_instaweb::NgxServerContext::GetQueryOptions(net_instaweb::GoogleUrl*&, net_instaweb::RequestHeaders*&, net_instaweb::ResponseHeaders*&, net_instaweb::RewriteQuery*)Б─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1229:65: note: candidate is:
In file included from /home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/system/public/system_server_context.h:20:0,
                 from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_server_context.h:25,
                 from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_base_fetch.h:48,
                 from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:31:
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/rewriter/public/server_context.h:364:19: note: net_instaweb::ServerContext::OptionsBoolPair net_instaweb::ServerContext::GetQueryOptions(net_instaweb::GoogleUrl*, net_instaweb::RequestHeaders*, net_instaweb::ResponseHeaders*)
/home/mimiko/src/nginx-modules/ngx_pagespeed/psol/include/net/instaweb/rewriter/public/server_context.h:364:19: note:   candidate expects 3 arguments, 4 provided
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1239:24: error: Б─≤class net_instaweb::RewriteQueryБ─≥ has no member named Б─≤ReleaseOptionsБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤bool net_instaweb::{anonymous}::ps_determine_options(ngx_http_request_t*, net_instaweb::RequestHeaders*, net_instaweb::ResponseHeaders*, net_instaweb::RewriteOptions**, net_instaweb::GoogleUrl*, bool)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1352:20: error: Б─≤class net_instaweb::RewriteOptionsБ─≥ has no member named Б─≤enroll_experimentБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::ps_resource_handler(ngx_http_request_t*, bool)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1653:26: error: Б─≤class net_instaweb::RewriteOptionsБ─≥ has no member named Б─≤IsDownstreamCacheIntegrationEnabledБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1663:58: error: Б─≤kPsaShouldBeaconБ─≥ was not declared in this scope
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1664:20: error: Б─≤class net_instaweb::RewriteOptionsБ─≥ has no member named Б─≤MatchesDownstreamCacheRebeaconingKeyБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::in_place::ps_in_place_check_header_filter(ngx_http_request_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2140:9: error: Б─≤kPreliminaryHeadersБ─≥ is not a member of Б─≤net_instaweb::InPlaceResourceRecorderБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2190:22: error: Б─≤class net_instaweb::RewriteDriverБ─≥ has no member named Б─≤CacheFragmentБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2191:25: error: Б─≤class net_instaweb::RequestHeadersБ─≥ has no member named Б─≤GetPropertiesБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::ps_simple_handler(ngx_http_request_t*, net_instaweb::NgxServerContext*, net_instaweb::{anonymous}::RequestRouting::Response)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2344:39: error: Б─≤class net_instaweb::NgxServerContextБ─≥ has no member named Б─≤StatisticsHandlerБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2359:23: error: Б─≤class net_instaweb::NgxServerContextБ─≥ has no member named Б─≤ConsoleHandlerБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2408:66: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::ps_init_child_process(ngx_cycle_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2858:3: error: Б─≤InitAprБ─≥ is not a member of Б─≤net_instaweb::SystemRewriteDriverFactoryБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤net_instaweb::RewriteOptions* net_instaweb::{anonymous}::ps_determine_request_options(ngx_http_request_t*, net_instaweb::RequestHeaders*, net_instaweb::ResponseHeaders*, net_instaweb::{anonymous}::ps_srv_conf_t*, net_instaweb::GoogleUrl*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1240:1: warning: control reaches end of non-void function [-Wreturn-type]
make[1]: *** [objs/addon/src/ngx_pagespeed.o] Error 1
make[1]: Leaving directory `/home/mimiko/src/nginx'
make: *** [build] Error 2

peterbowey, thanks for tips, but this didn't help. Hope all errors I posted here will guide developers of pagespeed to upgrading code. Maybe some other module also is involved here. For now - no pagespeed. :(

peterbowey commented 10 years ago

@Mimikoo I am sorry it has been so hard to get this working!

Your errors (above) indicate that you are not using the latest mod_pagespeed 'psol' library to match the ngx_pagespeed 'trunk' you chose.

Try once more using the pbsol library at: https://github.com/pagespeed/ngx_pagespeed/archive/v1.7.30.4-beta.zip

This is not the latest pbsol release, but is the correct one to match your use of ngx_pagespeed 'trunk'. However you must patch in the r3889 from mod_pagespeed (see: https://code.google.com/p/modpagespeed/source/detail?r=3889).

In my own case, I always build my own using the guide at https://github.com/pagespeed/ngx_pagespeed/wiki/Building-PSOL-From-Source.

If it helps, I could send you my own psol library - but is meant for x86_64 systems, along with the latest ngx_pagespeed trunk build (currently @ r3872) .

Mimikoo commented 10 years ago

peterbowey, I did a compile of psol from following that link, but still there are errors:

cc -c -I /home/mimiko/src/nginx-modules/ngx_http_js_module/src/  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I/opt/GeoIP/include -I/opt/gperftools/include -I/opt/ffmpeg/include -I/opt/ImageMagick/include/ImageMagick-6 -Wno-error=unused-but-set-variable -DMAGICKCORE_HDRI_ENABLE=0 -I/opt/libsass/include -I/opt/hiredis/include/hiredis -DNDK_SET_VAR  -I/home/mimiko/src/nginx-modules/nginx-rtmp-module -I/home/mimiko/src/nginx-modules/ngx_http_lower_upper_case -DNDK_SET_VAR -DNDK_UPSTREAM_LIST -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/opt/ImageMagick/include/ImageMagick-6   -I/home/mimiko/src/nginx-modules/ngx_http_php_session -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR  -I src/core -I src/event -I src/event/modules -I src/os/unix -I /home/mimiko/src/nginx-modules/ngx_devel_kit/objs -I objs/addon/ndk -I ~/src/mod_pagespeed/src -I ~/src/mod_pagespeed/src/third_party/chromium/src -I ~/src/mod_pagespeed/src/third_party/google-sparsehash/src -I ~/src/mod_pagespeed/src/third_party/google-sparsehash/gen/arch/linux/x64/include -I ~/src/mod_pagespeed/src/third_party/protobuf/src -I ~/src/mod_pagespeed/src/third_party/re2/src -I ~/src/mod_pagespeed/src/out/Release/obj/gen -I ~/src/mod_pagespeed/src/out/Release/obj/gen/protoc_out/instaweb -I ~/src/mod_pagespeed/src/third_party/apr/src/include -I ~/src/mod_pagespeed/src/third_party/aprutil/src/include -I ~/src/mod_pagespeed/src/third_party/apr/gen/arch/linux/x64/include -I ~/src/mod_pagespeed/src/third_party/aprutil/gen/arch/linux/x64/include -I /opt/libpq/include -I /opt/spidermonkey/include -I /home/mimiko/src/nginx-modules/ngx_http_upstream_check_module -I /home/mimiko/src/nginx-modules/nginx-video-thumbextractor-module/src -I /home/mimiko/src/nginx-modules/nginx-video-thumbextractor-module/include -I /opt/sregex/include -I /opt/luajit/include/luajit-2.0 -I /opt/luajit/include/luajit-2.0 -I /home/mimiko/src/nginx-modules/lua-nginx-module/src/api -I /home/mimiko/src/nginx-modules/nginx-push-stream-module/src -I /home/mimiko/src/nginx-modules/nginx-push-stream-module/include -I /home/mimiko/src/nginx-modules/nginx_http_push_module/src -I /home/mimiko/src/nginx-modules/nginx-selective-cache-purge-module/src -I /home/mimiko/src/nginx-modules/nginx-selective-cache-purge-module/include -I ../pcre -I ../openssl/.openssl/include -I ../zlib -I /usr/include/libxml2 -I objs -I src/http -I src/http/modules -I src/http/modules/perl -I /home/mimiko/src/nginx-modules/ngx_devel_kit/src -I /home/mimiko/src/nginx-modules/nginx-http-sysguard -I src/mail \
                -o objs/addon/src/ngx_pagespeed.o \
                /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc
In file included from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:35:0:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:58:13: error: Б─≤ProcessContextБ─≥ does not name a type
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:58:29: error: ISO C++ forbids declaration of Б─≤process_contextБ─≥ with no type [-fpermissive]
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤void* net_instaweb::{anonymous}::ps_create_main_conf(ngx_conf_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:690:30: error: no matching function for call to Б─≤net_instaweb::NgxRewriteDriverFactory::NgxRewriteDriverFactory(net_instaweb::ProcessContext&, net_instaweb::SystemThreadSystem*, const char [1], int)Б─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:690:30: note: candidates are:
In file included from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:35:0:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:176:3: note: net_instaweb::NgxRewriteDriverFactory::NgxRewriteDriverFactory(const net_instaweb::NgxRewriteDriverFactory&)
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:176:3: note:   candidate expects 1 argument, 4 provided
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:57:12: note: net_instaweb::NgxRewriteDriverFactory::NgxRewriteDriverFactory(const int&, net_instaweb::SystemThreadSystem*, base::StringPiece, int)
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_rewrite_driver_factory.h:57:12: note:   no known conversion for argument 1 from Б─≤net_instaweb::ProcessContextБ─≥ to Б─≤const int&Б─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤net_instaweb::RewriteOptions* net_instaweb::{anonymous}::ps_determine_request_options(ngx_http_request_t*, net_instaweb::RequestHeaders*, net_instaweb::ResponseHeaders*, net_instaweb::{anonymous}::ps_srv_conf_t*, net_instaweb::GoogleUrl*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1229:65: error: no matching function for call to Б─≤net_instaweb::NgxServerContext::GetQueryOptions(net_instaweb::GoogleUrl*&, net_instaweb::RequestHeaders*&, net_instaweb::ResponseHeaders*&, net_instaweb::RewriteQuery*)Б─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1229:65: note: candidate is:
In file included from /home/mimiko/src/mod_pagespeed/src/net/instaweb/system/public/system_server_context.h:20:0,
                 from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_server_context.h:25,
                 from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_base_fetch.h:48,
                 from /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:31:
/home/mimiko/src/mod_pagespeed/src/net/instaweb/rewriter/public/server_context.h:364:19: note: net_instaweb::ServerContext::OptionsBoolPair net_instaweb::ServerContext::GetQueryOptions(net_instaweb::GoogleUrl*, net_instaweb::RequestHeaders*, net_instaweb::ResponseHeaders*)
/home/mimiko/src/mod_pagespeed/src/net/instaweb/rewriter/public/server_context.h:364:19: note:   candidate expects 3 arguments, 4 provided
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1239:24: error: Б─≤class net_instaweb::RewriteQueryБ─≥ has no member named Б─≤ReleaseOptionsБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤bool net_instaweb::{anonymous}::ps_determine_options(ngx_http_request_t*, net_instaweb::RequestHeaders*, net_instaweb::ResponseHeaders*, net_instaweb::RewriteOptions**, net_instaweb::GoogleUrl*, bool)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1352:20: error: Б─≤class net_instaweb::RewriteOptionsБ─≥ has no member named Б─≤enroll_experimentБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::ps_resource_handler(ngx_http_request_t*, bool)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1653:26: error: Б─≤class net_instaweb::RewriteOptionsБ─≥ has no member named Б─≤IsDownstreamCacheIntegrationEnabledБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1663:58: error: Б─≤kPsaShouldBeaconБ─≥ was not declared in this scope
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1664:20: error: Б─≤class net_instaweb::RewriteOptionsБ─≥ has no member named Б─≤MatchesDownstreamCacheRebeaconingKeyБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::in_place::ps_in_place_check_header_filter(ngx_http_request_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2190:22: error: Б─≤class net_instaweb::RewriteDriverБ─≥ has no member named Б─≤CacheFragmentБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2191:25: error: Б─≤class net_instaweb::RequestHeadersБ─≥ has no member named Б─≤GetPropertiesБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::ps_simple_handler(ngx_http_request_t*, net_instaweb::NgxServerContext*, net_instaweb::{anonymous}::RequestRouting::Response)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2344:39: error: Б─≤class net_instaweb::NgxServerContextБ─≥ has no member named Б─≤StatisticsHandlerБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2359:23: error: Б─≤class net_instaweb::NgxServerContextБ─≥ has no member named Б─≤ConsoleHandlerБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2408:66: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤ngx_int_t net_instaweb::{anonymous}::ps_init_child_process(ngx_cycle_t*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:2858:3: error: Б─≤InitAprБ─≥ is not a member of Б─≤net_instaweb::SystemRewriteDriverFactoryБ─≥
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc: In function Б─≤net_instaweb::RewriteOptions* net_instaweb::{anonymous}::ps_determine_request_options(ngx_http_request_t*, net_instaweb::RequestHeaders*, net_instaweb::ResponseHeaders*, net_instaweb::{anonymous}::ps_srv_conf_t*, net_instaweb::GoogleUrl*)Б─≥:
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:1240:1: error: control reaches end of non-void function [-Werror=return-type]
cc1plus: all warnings being treated as errors
make[1]: *** [objs/addon/src/ngx_pagespeed.o] Error 1
make[1]: Leaving directory `/home/mimiko/src/nginx'
make: *** [build] Error 2
peterbowey commented 10 years ago

@Mimikoo Reading the above log, you appear to be mixing an older 'ngx_pagespeed' with a newer 'mod_pagespeed'.

Hence, the errors you are seeing as per "error: no matching function for call xxxx". (where xxx represents function calls not yet incorporated into ngx_pagespeed).

That suggests that parts of your chosen ngx_pagespeed do not have knowledge [scope] via the more recent 'mod_pagespeed' functions.

What links did you use here - for your two resources [ngx_pagespeed + mod_pagespeed]?

Mimikoo commented 10 years ago

What I do. Cloning ngx_pagespeed:

git clone https://github.com/pagespeed/ngx_pagespeed.git ~/src/nginx-modules/ngx_pagespeed; \
cd ~/src/nginx-modules/ngx_pagespeed; git checkout -f trunk-tracking

Cloning and compiling mod_pagespeed:

mkdir -p ~/src/mod_pagespeed; rm -rf ~/src/mod_pagespeed/*
cd ~/src/mod_pagespeed; \
PATH=~/src/depot_tools:$PATH gclient config http://modpagespeed.googlecode.com/svn/branches/latest-stable/src; \
PATH=~/src/depot_tools:$PATH gclient sync --force --jobs=1; \
cd ~/src/mod_pagespeed/src; \
make V=1 CXXFLAGS="-DSERF_HTTPS_FETCHING=0" AR.host=`pwd`/build/wrappers/ar.sh AR.target=`pwd`/build/wrappers/ar.sh \
BUILDTYPE=Release all

Compiling nginx:

cd ~/src/nginx; \
MOD_PAGESPEED_DIR="~/src/mod_pagespeed/src" \
auto/configure --prefix=/opt/nginx --add-module=~/src/nginx-modules/ngx_pagespeed; \
make
peterbowey commented 10 years ago

@Mimikoo What I will suggest here is to follow this proven recipe for using your given choice to use ngx_pagespeed @ the trunk-tracking release (at the moment it is r3895).

Building trunk tracking ngx_pagespeed with mod_pagespeed's PSOL synced to trunk:

Step 1:

$ mkdir -p ~/bin
$ cd ~/bin
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
$ export PATH=$PATH:~/bin/depot_tools
$ mkdir ~/mod_pagespeed
$ cd ~/mod_pagespeed
$ gclient config http://modpagespeed.googlecode.com/svn/trunk/src
# look the version number NNNN up in the trunk-tracking commit history (at the moment it is 3895)
$ gclient sync --revision src@3895 --force --jobs=1
$ cd src/
$ make AR.host="$PWD/build/wrappers/ar.sh" \
       AR.target="$PWD/build/wrappers/ar.sh" \
       BUILDTYPE=Release \
       mod_pagespeed_test pagespeed_automatic_test

Step 2:

Build the pagespeed optimization library:

$ cd net/instaweb/automatic
$ make AR.host="$PWD/../../../build/wrappers/ar.sh" \
       AR.target="$PWD/../../../build/wrappers/ar.sh" \
       BUILDTYPE=Release \
       all

Step 3:

Check out ngx_pagespeed @ trunk-tracking:

$ cd ~
$ git clone https://github.com/pagespeed/ngx_pagespeed.git

Check out ngx_pagespeed trunk-tracking branch specifically:

$ cd ~/ngx_pagespeed
$ git checkout trunk-tracking

Continue with the instructions given in the https://github.com/pagespeed/ngx_pagespeed/wiki/Building-PSOL-From-Source for downloading and building nginx.

Mimikoo commented 10 years ago

I did like this with selected btanches, but no success. Now I get this error:

cc -c -I /home/mimiko/src/nginx-modules/ngx_http_js_module/src/  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I/opt/GeoIP/include -I/opt/gperftools/include -I/opt/ffmpeg/include -I/opt/ImageMagick/include/ImageMagick-6 -Wno-error=unused-but-set-variable -DMAGICKCORE_HDRI_ENABLE=0 -I/opt/libsass/include -I/opt/hiredis/include/hiredis -DNDK_SET_VAR -DSERF_HTTPS_FETCHING=0  -I/home/mimiko/src/nginx-modules/nginx-rtmp-module -I/home/mimiko/src/nginx-modules/ngx_http_lower_upper_case -DNDK_SET_VAR -DNDK_UPSTREAM_LIST -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/opt/ImageMagick/include/ImageMagick-6   -I/home/mimiko/src/nginx-modules/ngx_http_php_session -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR -DNDK_SET_VAR  -I src/core -I src/event -I src/event/modules -I src/os/unix -I /home/mimiko/src/nginx-modules/ngx_devel_kit/objs -I objs/addon/ndk -I ~/src/mod_pagespeed/src -I ~/src/mod_pagespeed/src/third_party/chromium/src -I ~/src/mod_pagespeed/src/third_party/google-sparsehash/src -I ~/src/mod_pagespeed/src/third_party/google-sparsehash/gen/arch/linux/x64/include -I ~/src/mod_pagespeed/src/third_party/protobuf/src -I ~/src/mod_pagespeed/src/third_party/re2/src -I ~/src/mod_pagespeed/src/out/Release/obj/gen -I ~/src/mod_pagespeed/src/out/Release/obj/gen/protoc_out/instaweb -I ~/src/mod_pagespeed/src/third_party/apr/src/include -I ~/src/mod_pagespeed/src/third_party/aprutil/src/include -I ~/src/mod_pagespeed/src/third_party/apr/gen/arch/linux/x64/include -I ~/src/mod_pagespeed/src/third_party/aprutil/gen/arch/linux/x64/include -I /opt/libpq/include -I /opt/spidermonkey/include -I /home/mimiko/src/nginx-modules/ngx_http_upstream_check_module -I /home/mimiko/src/nginx-modules/nginx-video-thumbextractor-module/src -I /home/mimiko/src/nginx-modules/nginx-video-thumbextractor-module/include -I /opt/sregex/include -I /opt/luajit/include/luajit-2.0 -I /opt/luajit/include/luajit-2.0 -I /home/mimiko/src/nginx-modules/lua-nginx-module/src/api -I /home/mimiko/src/nginx-modules/nginx-push-stream-module/src -I /home/mimiko/src/nginx-modules/nginx-push-stream-module/include -I /home/mimiko/src/nginx-modules/nginx_http_push_module/src -I /home/mimiko/src/nginx-modules/nginx-selective-cache-purge-module/src -I /home/mimiko/src/nginx-modules/nginx-selective-cache-purge-module/include -I ../pcre -I ../openssl/.openssl/include -I ../zlib -I /usr/include/libxml2 -I objs -I src/http -I src/http/modules -I src/http/modules/perl -I /home/mimiko/src/nginx-modules/ngx_devel_kit/src -I /home/mimiko/src/nginx-modules/nginx-http-sysguard -I src/mail \
                -o objs/addon/src/ngx_pagespeed.o \
                /home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc
/home/mimiko/src/nginx-modules/ngx_pagespeed/src/ngx_pagespeed.cc:52:49: fatal error: net/instaweb/system/public/handlers.h: No such file or directory
compilation terminated.
make[1]: *** [objs/addon/src/ngx_pagespeed.o] Error 1
make[1]: Leaving directory `/home/mimiko/src/nginx'
make: *** [build] Error 2

I think its too trouble some for a module to compile specific revisions only, and also is note compatible with nginx-gridfs, while other modules are ready to compile with minor adjustments to new version of nginx.

oschaaf commented 10 years ago

@Mimikoo Summarizing -- the problem is that ngx_pagespeed and nginx-gridfs won't play happily together at build time right? I'll see if I can figure something out to make that easier tomorrow.

oschaaf commented 10 years ago

@Mimikoo https://github.com/pagespeed/ngx_pagespeed/pull/658 attempts to work around this by adding an option for ./configure. That pull allows me to build ngx_pagespeed (against PSOL 1.7.30.4) when combined with nginx-gridfs when configured like:

WNO_ERROR=YES ./configure --add-module=../ngx_pagespeed --add-module=../nginx-gridfs && make

What do you think?

peterbowey commented 10 years ago

@oschaaf Thanks for doing this via @Mimikoo #626. This 'fix' matches an old comment of mine as "Please append "-Wno-error" to your CFLAGS".

Your decision to add append this requirement via the ngx_pagespeed/config is nice:

+if [ "$WNO_ERROR" = "YES" ]; then
+    CFLAGS="$CFLAGS -Wno-error"
+fi
+

I can see that not many users realize the possible changes that can be promoted into the ngx_pagespeed/config file for custom compiling events / needs..

Add info to the ngx_ build doc's maybe...

oschaaf commented 10 years ago

@peterbowey Re: "I can see that not many users realize the possible changes that can be promoted into the ngx_pagespeed/config file for custom compiling events / needs.."

Indeed - I'm not sure if there's a golden bullet to address that, but perhaps this will do. I'll have a look at the docs to shed light on the configure option if https://github.com/pagespeed/ngx_pagespeed/pull/658 passes review - thanks!

jeffkaufman commented 10 years ago

@Mimikoo While it's possible to use trunk-tracking I don't think it's necessary to fix your problem, and adds a lot of complexity. If you follow the steps on https://github.com/pagespeed/ngx_pagespeed#how-to-build and build ngx_pagespeed 1.7.30.4 without gridfs, does that work? If so, could you edit ngx_pagespeed/config and add in CFLAGS="$CFLAGS -Wno-error"? Then you should be able to build with gridfs.

oschaaf commented 10 years ago

This was closed via https://github.com/pagespeed/ngx_pagespeed/pull/658. Issue https://github.com/pagespeed/ngx_pagespeed/issues/662 tracks @jeffkaufman's suggestion for the real fix.