Comments (6)
replicate the first code block
...
very simple logic just checking the presence of a header file
...
in an RPM package build you'll have to mimic
yup.
there was at one time (~2015) discussion about 'git submodule' support in COPR rpm builds,
https://lists.fedoraproject.org/archives/list/[email protected]/thread/24IXWXUDHT3OFCXABNSQ6V4DYUSADA7I/
a draft PR was here
https://fedoraproject.org/wiki/User:Gbcox/PackagingDrafts/SourceURL#Git_Submodules
afaict, it was never adopted,
https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/
unclear as to why not ... haven't found subsequent discuss
so, instead, standalone/manual prep in the build
https://download.copr.fedorainfracloud.org/results/pgfed/nginx-mainline/fedora-38-x86_64/06513099-nginx/nginx.spec
does the trick.
build's successful, and exec's good.
thx! o/
from ngx_brotli.
Looks like Sep 7 commit 63ca02a is the culprit
Builds,
Oct 9, 2023 a71f9312c2deb28875acc7bacfdd5695a111aa53 FAIL
Sep 7, 2023 63ca02abdcf79c9e788d2eedcc388d2335902e52 FAIL
log ->
https://download.copr.fedorainfracloud.org/results/pgfed/nginx-mainline/fedora-38-x86_64/06509212-nginx/builder-live.log.gz
Sep 1, 2023 8f726ea6614eb5541812647a673abd8f66eb4660 GOOD
log ->
https://download.copr.fedorainfracloud.org/results/pgfed/nginx-mainline/fedora-38-x86_64/06509221-nginx/builder-live.log.gz
Apr 29, 2022 6e975bcb015f62e1f303054897783355e2a877dc GOOD
log ->
https://download.copr.fedorainfracloud.org/results/pgfed/nginx-mainline/fedora-38-x86_64/06509194-nginx/builder-live.log.gz
cc: @wyattoday
from ngx_brotli.
@pgnd To me it looks like you did not follow the updated build instructed which tell you that you'll have to build Brotli library before running Nginx's configure
script. That's a new extra step required.
Nevertheless there is room for improvement when it comes to the build instructions for the Brotli library as the build flags are highly opinionated (like "works on my desk") and might potentially break Nginx either during build or runtime.
-flto
might or might not work correctly dependent how recent the compiler suit is, -march=native -mtune=native
might build fine but can cause signal 4 core dumps (illegal instruction) during runtime if executed on a different machine with a different CPU not supporting the same instructions as the build platform. The C++ flags defined per CMAKE_CXX_FLAGS
aren't IMHO required at all as ther is no C++ code involved as far as I can see.
from ngx_brotli.
you'll have to build Brotli library before running Nginx's configure script. That's a new extra step required.
can you point to that ?
this,
https://github.com/google/ngx_brotli/blob/master/README.md#dynamically-loaded
doesn't appear to mention it
from ngx_brotli.
@pgnd Hi, thanks reporting.
related? #157
I guess it is nothing to be related with #157.
Because nginx gzip module has been same care of #157 below.
If you said it failed the build for that, nginx gzip module would had already been build failed a few month ago when the below commit came into.
nginx/nginx@e59c209
from ngx_brotli.
@pgnd Indeed. Actually I cannot tell for 100 % because I always build Nginx statically, but I guess you'll need to replicate the first code block of the "Statically compiled" instructions, because the check you're failing ("Brotli library is missing from ...") is very simple logic just checking the presence of a header file.
It should be noted that in an RPM package build you'll have to mimic of the git clone --recurse-submodules
. I'm not super familiar with COPR, but it looks to me you are using the source code of https://github.com/google/ngx_brotli only, but that one uses the https://github.com/google/brotli as a Git sub-module (see https://github.com/google/ngx_brotli/blob/a71f9312c2deb28875acc7bacfdd5695a111aa53/.gitmodules). Hence you'll need to download and extract those sources too, at the named patch deps/brotli
, and ideally also at the revision ed737e8
(see https://github.com/google/ngx_brotli/tree/a71f9312c2deb28875acc7bacfdd5695a111aa53/deps).
from ngx_brotli.
Related Issues (20)
- Why on earth is this so complicated to install in Ubuntu AND have it auto-update? HOT 5
- nginx only uses br if content-length response header is missing HOT 1
- Use-After-Free problem HOT 5
- Does not compile on Debian 12 / Bookworm HOT 5
- Statically compiled installation fails HOT 13
- make[1]: Nothing to be done for 'modules' HOT 1
- cannot find -lbrotlienc HOT 3
- Statically compiled failure on debian 11 ARM HOT 1
- Still "make[1]: Nothing to be done for 'modules'" after PR HOT 6
- Statically compiled module fails to compile on arm64 HOT 2
- Brotli throwing errors on make modules: Ubuntu 22.04 HOT 4
- ''' /tmp/ngx_brotli/filter/ngx_http_brotli_filter_module.c: In function 'ngx_http_brotli_header_filter': 136.9 /tmp/ngx_brotli/filter/ngx_http_brotli_filter_module.c:322:4: error: 'ngx_table_elt_t' has no member named 'next' 136.9 322 | h->next = NULL; 136.9 | ^~ HOT 9
- compile failed with nginx when cmake build brotli return plugin needed to handle lto object HOT 6
- Statically compiled instructions fail for armv7 on raspberry pi 4 HOT 1
- Enforce Brotli over Gzip for reverse proxy HOT 1
- Docs / readme improvement: clarify behavior with reverse proxied backends
- Build errors for dynamic module on Ubuntu 20.04 on Raspeberry Pi 4 ARM. HOT 4
- cmake failed on macos HOT 1
- Critical issue on nginx worker exited on signal 4 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ngx_brotli.