Skip to content

Commit 7b2647d

Browse files
committed
nginx: separate ngx_http_perl_module build
Isolates the Perl module build step to ensure that other modules do not require perl to be installed, reducing dependencies for standard builds.
1 parent 1c12816 commit 7b2647d

2 files changed

Lines changed: 70 additions & 76 deletions

File tree

nginx-mainline.yaml

Lines changed: 36 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package:
33
# MAINLINE VERSIONS MUST USE ODD MINOR VERSIONS (e.g., 1.27.x, 1.29.x)
44
# Must also bump njs at the same time
55
version: "1.29.5"
6-
epoch: 1 # go/wolfi-rsc/nginx-mainline
6+
epoch: 0 # go/wolfi-rsc/nginx-mainline
77
# HEY YOU! If you update/bump this package you NEED to go and update the equivilent nginx-otel package
88
description: HTTP and reverse proxy server (mainline version)
99
copyright:
@@ -53,8 +53,8 @@ data:
5353
- name: modules
5454
items:
5555
http_geoip: "10"
56+
http_headers_more_filter: "10"
5657
http_image_filter: "10"
57-
http_perl: "10"
5858
http_xslt_filter: "10"
5959
mail: "10"
6060
stream_geoip: "10"
@@ -361,21 +361,22 @@ subpackages:
361361
- wolfi-baselayout
362362

363363
- range: modules
364-
name: nginx-mainline-mod-${{range.key}}
364+
name: ${{package.name}}-mod-${{range.key}}
365365
description: Nginx third-party module ${{range.key}}
366366
dependencies:
367367
provides:
368368
- nginx-mod-${{range.key}}=${{package.full-version}}
369369
runtime:
370370
- merged-usrsbin
371-
- perl-dev
371+
- ${{package.name}}
372372
- wolfi-baselayout
373373
pipeline:
374374
- runs: |
375-
mkdir -p ${{targets.subpkgdir}}/usr/lib/nginx/modules
376-
mkdir -p ${{targets.subpkgdir}}/etc/nginx/modules
377375
# --modules-path is only used for installing modules, not loading them
378-
mkdir -p ${{targets.subpkgdir}}/var/lib/nginx/
376+
install -d -m 755 \
377+
${{targets.subpkgdir}}/usr/lib/nginx/modules \
378+
${{targets.subpkgdir}}/etc/nginx/modules \
379+
${{targets.subpkgdir}}/var/lib/nginx
379380
ln -sf /usr/lib/nginx/modules ${{targets.subpkgdir}}/var/lib/nginx/modules
380381
381382
mv ${{targets.destdir}}/usr/lib/nginx/modules/ngx_${{range.key}}_module.so ${{targets.subpkgdir}}/usr/lib/nginx/modules/
@@ -384,13 +385,6 @@ subpackages:
384385
echo "load_module \"modules/ngx_${{range.key}}_module.so\";" >> ${{targets.subpkgdir}}/etc/nginx/modules/${{range.value}}_${{range.key}}.conf
385386
386387
case ${{range.key}} in
387-
http_perl)
388-
mv ${{targets.destdir}}/usr/lib/perl5 ${{targets.subpkgdir}}/usr/lib/
389-
;;
390-
http_naxsi)
391-
install -m644 -D naxsi-*/naxsi_config/naxsi_core.rules \
392-
${{targets.subpkgdir}}/etc/nginx/naxsi_core.rules
393-
;;
394388
stream)
395389
mkdir -p ${{targets.subpkgdir}}/etc/nginx/stream.d
396390
install -m644 -D stream.conf ${{targets.subpkgdir}}/etc/nginx/stream.d/
@@ -400,6 +394,34 @@ subpackages:
400394
pipeline:
401395
- uses: test/tw/ldd-check
402396

397+
- name: ${{package.name}}-mod-http_perl
398+
description: Nginx third-party module http_perl
399+
dependencies:
400+
provides:
401+
- nginx-mod-http_perl=${{package.full-version}}
402+
runtime:
403+
- merged-usrsbin
404+
- ${{package.name}}
405+
- perl
406+
- wolfi-baselayout
407+
pipeline:
408+
- runs: |
409+
install -d -m 755 \
410+
${{targets.subpkgdir}}/usr/lib/nginx/modules \
411+
${{targets.subpkgdir}}/etc/nginx/modules \
412+
${{targets.subpkgdir}}/var/lib/nginx
413+
414+
ln -sf /usr/lib/nginx/modules ${{targets.subpkgdir}}/var/lib/nginx/modules
415+
416+
mv ${{targets.destdir}}/usr/lib/nginx/modules/ngx_http_perl_module.so ${{targets.subpkgdir}}/usr/lib/nginx/modules/
417+
418+
mv ${{targets.destdir}}/usr/lib/perl5 ${{targets.subpkgdir}}/usr/lib/
419+
420+
echo "load_module \"modules/ngx_http_perl_module.so\";" >> ${{targets.subpkgdir}}/etc/nginx/modules/10_http_perl.conf
421+
test:
422+
pipeline:
423+
- uses: test/tw/ldd-check
424+
403425
- name: nginx-mainline-src
404426
description: Nginx source code
405427
dependencies:
@@ -437,31 +459,6 @@ subpackages:
437459
- runs: |
438460
readlink -v /etc/nginx/conf.d/default.conf
439461
440-
- name: ${{package.name}}-mod-http_headers_more_filter
441-
description: Nginx third-party module http_headers_more_filter
442-
dependencies:
443-
provides:
444-
- nginx-mod-http_headers_more_filter=${{package.full-version}}
445-
runtime:
446-
- merged-usrsbin
447-
- ${{package.name}}
448-
- wolfi-baselayout
449-
pipeline:
450-
- runs: |
451-
install -d -m 755 \
452-
${{targets.subpkgdir}}/usr/lib/nginx/modules \
453-
${{targets.subpkgdir}}/etc/nginx/modules \
454-
${{targets.subpkgdir}}/var/lib/nginx
455-
456-
ln -sf /usr/lib/nginx/modules ${{targets.subpkgdir}}/var/lib/nginx/modules
457-
458-
mv ${{targets.destdir}}/usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so ${{targets.subpkgdir}}/usr/lib/nginx/modules/
459-
460-
echo "load_module \"modules/ngx_http_headers_more_filter_module.so\";" >> ${{targets.subpkgdir}}/etc/nginx/modules/10_http_headers_more_filter.conf
461-
test:
462-
pipeline:
463-
- uses: test/tw/ldd-check
464-
465462
test:
466463
environment:
467464
accounts:

nginx-stable.yaml

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ data:
5252
- name: modules
5353
items:
5454
http_geoip: "10"
55+
http_headers_more_filter: "10"
5556
http_image_filter: "10"
56-
http_perl: "10"
5757
http_xslt_filter: "10"
5858
mail: "10"
5959
stream_geoip: "10"
@@ -356,14 +356,15 @@ subpackages:
356356
- nginx-mod-${{range.key}}=${{package.full-version}}
357357
runtime:
358358
- merged-usrsbin
359-
- perl-dev
359+
- ${{package.name}}
360360
- wolfi-baselayout
361361
pipeline:
362362
- runs: |
363-
mkdir -p ${{targets.subpkgdir}}/usr/lib/nginx/modules
364-
mkdir -p ${{targets.subpkgdir}}/etc/nginx/modules
365363
# --modules-path is only used for installing modules, not loading them
366-
mkdir -p ${{targets.subpkgdir}}/var/lib/nginx/
364+
install -d -m 755 \
365+
${{targets.subpkgdir}}/usr/lib/nginx/modules \
366+
${{targets.subpkgdir}}/etc/nginx/modules \
367+
${{targets.subpkgdir}}/var/lib/nginx
367368
ln -sf /usr/lib/nginx/modules ${{targets.subpkgdir}}/var/lib/nginx/modules
368369
369370
mv ${{targets.destdir}}/usr/lib/nginx/modules/ngx_${{range.key}}_module.so ${{targets.subpkgdir}}/usr/lib/nginx/modules/
@@ -372,13 +373,6 @@ subpackages:
372373
echo "load_module \"modules/ngx_${{range.key}}_module.so\";" >> ${{targets.subpkgdir}}/etc/nginx/modules/${{range.value}}_${{range.key}}.conf
373374
374375
case ${{range.key}} in
375-
http_perl)
376-
mv ${{targets.destdir}}/usr/lib/perl5 ${{targets.subpkgdir}}/usr/lib/
377-
;;
378-
http_naxsi)
379-
install -m644 -D naxsi-*/naxsi_config/naxsi_core.rules \
380-
${{targets.subpkgdir}}/etc/nginx/naxsi_core.rules
381-
;;
382376
stream)
383377
mkdir -p ${{targets.subpkgdir}}/etc/nginx/stream.d
384378
install -m644 -D stream.conf ${{targets.subpkgdir}}/etc/nginx/stream.d/
@@ -388,6 +382,34 @@ subpackages:
388382
pipeline:
389383
- uses: test/tw/ldd-check
390384

385+
- name: ${{package.name}}-mod-http_perl
386+
description: Nginx third-party module http_perl
387+
dependencies:
388+
provides:
389+
- nginx-mod-http_perl=${{package.full-version}}
390+
runtime:
391+
- merged-usrsbin
392+
- ${{package.name}}
393+
- perl
394+
- wolfi-baselayout
395+
pipeline:
396+
- runs: |
397+
install -d -m 755 \
398+
${{targets.subpkgdir}}/usr/lib/nginx/modules \
399+
${{targets.subpkgdir}}/etc/nginx/modules \
400+
${{targets.subpkgdir}}/var/lib/nginx
401+
402+
ln -sf /usr/lib/nginx/modules ${{targets.subpkgdir}}/var/lib/nginx/modules
403+
404+
mv ${{targets.destdir}}/usr/lib/nginx/modules/ngx_http_perl_module.so ${{targets.subpkgdir}}/usr/lib/nginx/modules/
405+
406+
mv ${{targets.destdir}}/usr/lib/perl5 ${{targets.subpkgdir}}/usr/lib/
407+
408+
echo "load_module \"modules/ngx_http_perl_module.so\";" >> ${{targets.subpkgdir}}/etc/nginx/modules/10_http_perl.conf
409+
test:
410+
pipeline:
411+
- uses: test/tw/ldd-check
412+
391413
- name: ${{package.name}}-src
392414
description: Nginx source code
393415
dependencies:
@@ -424,31 +446,6 @@ subpackages:
424446
- runs: |
425447
readlink -v /etc/nginx/conf.d/default.conf
426448
427-
- name: ${{package.name}}-mod-http_headers_more_filter
428-
description: Nginx third-party module http_headers_more_filter
429-
dependencies:
430-
provides:
431-
- nginx-mod-http_headers_more_filter=${{package.full-version}}
432-
runtime:
433-
- merged-usrsbin
434-
- ${{package.name}}
435-
- wolfi-baselayout
436-
pipeline:
437-
- runs: |
438-
install -d -m 755 \
439-
${{targets.subpkgdir}}/usr/lib/nginx/modules \
440-
${{targets.subpkgdir}}/etc/nginx/modules \
441-
${{targets.subpkgdir}}/var/lib/nginx
442-
443-
ln -sf /usr/lib/nginx/modules ${{targets.subpkgdir}}/var/lib/nginx/modules
444-
445-
mv ${{targets.destdir}}/usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so ${{targets.subpkgdir}}/usr/lib/nginx/modules/
446-
447-
echo "load_module \"modules/ngx_http_headers_more_filter_module.so\";" >> ${{targets.subpkgdir}}/etc/nginx/modules/10_http_headers_more_filter.conf
448-
test:
449-
pipeline:
450-
- uses: test/tw/ldd-check
451-
452449
test:
453450
environment:
454451
contents:

0 commit comments

Comments
 (0)