openresty / openresty.org

Code and data for the openresty.org site
https://openresty.org
1.26k stars 289 forks source link

Ubuntu 16.04 requires libcurl4-openssl-dev to compile #57

Closed brendon closed 7 years ago

brendon commented 7 years ago

I had to install this package in order to successfully compile.

agentzh commented 7 years ago

@brendon This is strange. What error messages are you getting?

agentzh commented 7 years ago

@brendon Is the error from the opm command?

brendon commented 7 years ago

This was from ./configure while trying to compile OpenResty. I don't have the error message on me anymore but it was a failed dependency. I was also including the Phusion Passenger module in the compile so perhaps that's where the dependency was coming from?

Feel free to close this if you think it's not appropriate :)

agentzh commented 7 years ago

@brendon I'm pretty sure the whole OpenResty does not depend on libcurl since libcurl will horribly block the nginx event loop. So beware of any 3rd-party nginx C modules depending on libcurl; they may well block your nginx event loop and ruin the performance upon curl I/O.

OpenResty's opm tool depends on the curl command-line utility though, but not libcurl-dev.

agentzh commented 7 years ago

I've added the curl dependency instead of libcurl-dev.

brendon commented 7 years ago

Thanks @agentzh :) I'll look into what was requiring libcurl. I was using the default build config from Ubuntu 16.04 but ended up removing a lot of the modules they require by default. Perhaps it was one of these.

brendon commented 7 years ago

Just as a followup, here was the error message:

src/agent/Core/CoreMain.cpp:62:23: fatal error: curl/curl.h: No such file or directory
compilation terminated.
rake aborted!
Command failed with status (1): [c++ -o buildout/support-binaries/CoreMain.o  -Isrc/agent -Isrc/cxx_supportlib -Isrc/cxx_supportlib/vendor-copy -Isrc/cxx_supportlib/vendor-modified -Isrc/cxx_supportlib/vendor-modified/libev -Isrc/cxx_supportlib/vendor-copy/libuv/include -D_REENTRANT -I/usr/local/include -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long -Wno-missing-field-initializers -feliminate-unused-debug-symbols -feliminate-unused-debug-types -fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -Wno-attributes -ggdb -DHAS_ALLOCA_H -DHAVE_ACCEPT4 -DHAS_SFENCE -DHAS_LFENCE -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -std=gnu++11 -Wno-unused-local-typedefs -DHASH_NAMESPACE="__gnu_cxx" -DHASH_MAP_HEADER="<hash_map>" -DHASH_MAP_CLASS="hash_map" -DHASH_FUN_H="<hash_fun.h>" -c src/agent/Core/CoreMain.cpp]

Tasks: TOP => nginx => nginx_without_native_support => buildout/support-binaries/PassengerAgent => buildout/support-binaries/CoreMain.o
(See full trace by running task with --trace)
ERROR: failed to run command: sh ./configure --prefix=/usr/share/nginx/nginx \...

Looks like PassengerAgent requires libcurl? I'm not very experienced with compiling so I'm not 100% sure if that's the cause.

agentzh commented 7 years ago

@brendon It's apparently not our code. We never write C++ code in OpenResty.

brendon commented 7 years ago

Yea I figured that'd be the case. :) Thanks for looking though :)