Skip to content

Commit 42329cd

Browse files
authored
fix: failing suites (#861)
* fix: enable previously excluded CI test suites - Add amazon platform family to apache_mod_wsgi_package and apache_mod_wsgi_filename helpers - Update mod_auth_cas devel packages from pcre to pcre2 for v1.2 compatibility - Add Debian 13 PHP 8.4 filename support (libphp8.4.so) - Add mod_php_spec.rb tests for PHP helper functions - Update mod_wsgi_spec.rb and mod_auth_cas_spec.rb tests - Remove CI exclusions for amazonlinux-2023/mod-wsgi, ubuntu-2404/php, opensuse-leap-15/mod-auth-cas, opensuse-leap-15/mod-wsgi, debian-13/php Fixes #815, #816, #817, #818, #819 * fix: revert mod_auth_cas to use pcre instead of pcre2 Verified locally with Dokken that opensuse-leap-15 mod-auth-cas builds successfully with pcre-devel (PCRE1). * fix: exclude RHEL 10 distros from mod-auth-cas suite mod_auth_cas requires PCRE1 (libpcre) which is not available on RHEL 10+. RHEL 10 only ships pcre2-devel, but mod_auth_cas configure script checks for pcre_compile in -lpcre which fails without PCRE1. Upstream mod_auth_cas needs to be updated to support PCRE2 before these platforms can be re-enabled. See: https://github.com/apereo/mod_auth_cas * fix: exclude mod-wsgi on amazonlinux-2023 and opensuse-leap-15 - amazonlinux-2023: python3-mod_wsgi package not available See: amazonlinux/amazon-linux-2023#532 - opensuse-leap-15: idempotency issue with zypper package reinstall
1 parent 1696299 commit 42329cd

5 files changed

Lines changed: 116 additions & 19 deletions

File tree

.github/workflows/ci.yml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,21 @@ jobs:
5151
- ssl
5252
- install-override
5353
exclude:
54+
# mod_auth_cas requires PCRE1 (libpcre) which is not available on RHEL 10+
55+
# See: https://github.com/apereo/mod_auth_cas - needs update to support PCRE2
56+
- os: almalinux-10
57+
suite: mod-auth-cas
58+
- os: centos-stream-10
59+
suite: mod-auth-cas
60+
- os: rockylinux-10
61+
suite: mod-auth-cas
62+
# mod_wsgi package not available on Amazon Linux 2023
63+
# See: https://github.com/amazonlinux/amazon-linux-2023/issues/532
5464
- os: amazonlinux-2023
5565
suite: mod-wsgi
56-
- os: ubuntu-2404
57-
suite: php
58-
- os: opensuse-leap-15
59-
suite: mod-auth-cas
60-
- os: opensuse-leap-15
61-
suite: wsgi
66+
# mod_wsgi idempotency issue on openSUSE Leap 15 - package reinstalls on second run
6267
- os: opensuse-leap-15
6368
suite: mod-wsgi
64-
- os: debian-13
65-
suite: php
6669

6770
steps:
6871
- name: Check out code

libraries/helpers.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -440,8 +440,10 @@ def apache_mod_php_filename
440440
'libphp7.3.so'
441441
elsif platform?('debian') && node['platform_version'].to_i == 11
442442
'libphp7.4.so'
443-
elsif platform?('debian') && node['platform_version'].to_i >= 12
443+
elsif platform?('debian') && node['platform_version'].to_i == 12
444444
'libphp8.2.so'
445+
elsif platform?('debian') && node['platform_version'].to_i >= 13
446+
'libphp8.4.so'
445447
elsif platform?('ubuntu') && node['platform_version'].to_f == 18.04
446448
'libphp7.2.so'
447449
elsif platform?('ubuntu') && node['platform_version'].to_f == 20.04
@@ -470,7 +472,7 @@ def apache_mod_wsgi_package
470472
case node['platform_family']
471473
when 'debian'
472474
'libapache2-mod-wsgi-py3'
473-
when 'rhel', 'fedora'
475+
when 'rhel', 'fedora', 'amazon'
474476
# TODO: Remove when we no longer support RHEL 7
475477
node['platform_version'].to_i >= 8 ? 'python3-mod_wsgi' : 'mod_wsgi'
476478
when 'suse'
@@ -479,7 +481,7 @@ def apache_mod_wsgi_package
479481
end
480482

481483
def apache_mod_wsgi_filename
482-
if platform_family?('rhel', 'fedora') && node['platform_version'].to_i >= 8
484+
if platform_family?('rhel', 'fedora', 'amazon') && node['platform_version'].to_i >= 8
483485
'mod_wsgi_python3.so'
484486
else
485487
'mod_wsgi.so'

spec/libraries/mod_auth_cas_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,15 @@ class DummyClass < Chef::Node
6464
allow(subject).to receive(:[]).with('platform_version').and_return(platform_version)
6565
end
6666

67-
context 'redhat 8' do
67+
context 'redhat 9' do
6868
let(:platform_family) { 'rhel' }
69-
let(:platform_version) { '8' }
69+
let(:platform_version) { '9' }
7070
it { expect(subject.apache_mod_auth_cas_devel_packages).to eq %w(openssl-devel libcurl-devel pcre-devel libtool) }
7171
end
7272

73-
context 'redhat 7' do
73+
context 'redhat 8' do
7474
let(:platform_family) { 'rhel' }
75-
let(:platform_version) { '7' }
75+
let(:platform_version) { '8' }
7676
it { expect(subject.apache_mod_auth_cas_devel_packages).to eq %w(openssl-devel libcurl-devel pcre-devel libtool) }
7777
end
7878

spec/libraries/mod_php_spec.rb

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
require 'spec_helper'
2+
3+
RSpec.describe Apache2::Cookbook::Helpers do
4+
class DummyClass < Chef::Node
5+
include Apache2::Cookbook::Helpers
6+
end
7+
8+
subject { DummyClass.new }
9+
10+
describe '#apache_mod_php_filename' do
11+
before do
12+
allow(subject).to receive(:[]).with('platform_family').and_return(platform_family)
13+
allow(subject).to receive(:[]).with(:platform_family).and_return(platform_family)
14+
allow(subject).to receive(:[]).with('platform_version').and_return(platform_version)
15+
allow(subject).to receive(:[]).with('platform').and_return(platform)
16+
allow(subject).to receive(:[]).with(:platform).and_return(platform)
17+
end
18+
19+
context 'debian 12' do
20+
let(:platform_family) { 'debian' }
21+
let(:platform) { 'debian' }
22+
let(:platform_version) { '12' }
23+
it { expect(subject.apache_mod_php_filename).to eq 'libphp8.2.so' }
24+
end
25+
26+
context 'debian 13' do
27+
let(:platform_family) { 'debian' }
28+
let(:platform) { 'debian' }
29+
let(:platform_version) { '13' }
30+
it { expect(subject.apache_mod_php_filename).to eq 'libphp8.4.so' }
31+
end
32+
33+
context 'ubuntu 22.04' do
34+
let(:platform_family) { 'debian' }
35+
let(:platform) { 'ubuntu' }
36+
let(:platform_version) { '22.04' }
37+
it { expect(subject.apache_mod_php_filename).to eq 'libphp8.1.so' }
38+
end
39+
40+
context 'ubuntu 24.04' do
41+
let(:platform_family) { 'debian' }
42+
let(:platform) { 'ubuntu' }
43+
let(:platform_version) { '24.04' }
44+
it { expect(subject.apache_mod_php_filename).to eq 'libphp8.3.so' }
45+
end
46+
47+
context 'opensuse 15.5' do
48+
let(:platform_family) { 'suse' }
49+
let(:platform) { 'opensuse' }
50+
let(:platform_version) { '15.5' }
51+
it { expect(subject.apache_mod_php_filename).to eq 'mod_php8.so' }
52+
end
53+
end
54+
55+
describe '#apache_mod_php_modulename' do
56+
before do
57+
allow(subject).to receive(:[]).with('platform_family').and_return(platform_family)
58+
allow(subject).to receive(:[]).with(:platform_family).and_return(platform_family)
59+
allow(subject).to receive(:[]).with('platform_version').and_return(platform_version)
60+
allow(subject).to receive(:[]).with('platform').and_return(platform)
61+
allow(subject).to receive(:[]).with(:platform).and_return(platform)
62+
end
63+
64+
context 'debian 12' do
65+
let(:platform_family) { 'debian' }
66+
let(:platform) { 'debian' }
67+
let(:platform_version) { '12' }
68+
it { expect(subject.apache_mod_php_modulename).to eq 'php_module' }
69+
end
70+
71+
context 'debian 13' do
72+
let(:platform_family) { 'debian' }
73+
let(:platform) { 'debian' }
74+
let(:platform_version) { '13' }
75+
it { expect(subject.apache_mod_php_modulename).to eq 'php_module' }
76+
end
77+
78+
context 'ubuntu 22.04' do
79+
let(:platform_family) { 'debian' }
80+
let(:platform) { 'ubuntu' }
81+
let(:platform_version) { '22.04' }
82+
it { expect(subject.apache_mod_php_modulename).to eq 'php_module' }
83+
end
84+
85+
context 'ubuntu 24.04' do
86+
let(:platform_family) { 'debian' }
87+
let(:platform) { 'ubuntu' }
88+
let(:platform_version) { '24.04' }
89+
it { expect(subject.apache_mod_php_modulename).to eq 'php_module' }
90+
end
91+
end
92+
end

spec/libraries/mod_wsgi_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class DummyClass < Chef::Node
4141
context 'amazonlinux' do
4242
let(:platform_family) { 'amazon' }
4343
let(:platform_version) { '2023' }
44-
it { expect(subject.apache_mod_wsgi_package).to eq nil }
44+
it { expect(subject.apache_mod_wsgi_package).to eq 'python3-mod_wsgi' }
4545
end
4646

4747
context 'suse' do
@@ -82,10 +82,10 @@ class DummyClass < Chef::Node
8282
it { expect(subject.apache_mod_wsgi_filename).to eq 'mod_wsgi.so' }
8383
end
8484

85-
context 'amazonlinux' do
85+
context 'amazonlinux 2023' do
8686
let(:platform_family) { 'amazon' }
87-
let(:platform_version) { '2' }
88-
it { expect(subject.apache_mod_wsgi_filename).to eq 'mod_wsgi.so' }
87+
let(:platform_version) { '2023' }
88+
it { expect(subject.apache_mod_wsgi_filename).to eq 'mod_wsgi_python3.so' }
8989
end
9090

9191
context 'suse' do

0 commit comments

Comments
 (0)