diff --git a/configs/components/_base-ruby-selinux.rb b/configs/components/_base-ruby-selinux.rb index c542918b1..cb93f3335 100644 --- a/configs/components/_base-ruby-selinux.rb +++ b/configs/components/_base-ruby-selinux.rb @@ -78,7 +78,9 @@ if ruby_version =~ /^3/ # swig 4.1 generated interface does not need patching - unless platform.name =~ /^(debian-12|ubuntu-24)/ + if (!platform.is_debian? || platform.os_version.to_i < 12) && + (!platform.is_fedora? || platform.os_version.to_i < 40) && + (!platform.is_ubuntu? || platform.os_version.to_i < 24) steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../selinuxswig_ruby_wrap.patch" end end diff --git a/configs/platforms/fedora-40-x86_64.rb b/configs/platforms/fedora-40-x86_64.rb new file mode 100644 index 000000000..24e41f200 --- /dev/null +++ b/configs/platforms/fedora-40-x86_64.rb @@ -0,0 +1,20 @@ +platform 'fedora-40-x86_64' do |plat| + plat.servicedir '/usr/lib/systemd/system' + plat.defaultdir '/etc/sysconfig' + plat.servicetype 'systemd' + plat.dist 'fc40' + + packages = %w[ + autoconf automake bzip2-devel gcc gcc-c++ libselinux-devel + libsepol libsepol-devel make cmake pkgconfig readline-devel + rpmdevtools rsync swig zlib-devel systemtap-sdt-devel + perl-lib perl-FindBin + ] + plat.provision_with("/usr/bin/dnf install -y --best --allowerasing #{packages.join(' ')}") + + plat.install_build_dependencies_with '/usr/bin/dnf install -y --best --allowerasing' + + plat.docker_image 'fedora:40' + plat.docker_run_args ['--tty', '--entrypoint=/bin/sh'] + plat.use_docker_exec true +end diff --git a/configs/projects/_shared-agent-components.rb b/configs/projects/_shared-agent-components.rb index 2a03db874..a8de52c62 100644 --- a/configs/projects/_shared-agent-components.rb +++ b/configs/projects/_shared-agent-components.rb @@ -38,7 +38,8 @@ proj.component 'libxml2' unless platform.is_windows? proj.component 'libxslt' unless platform.is_windows? -proj.component 'ruby-augeas' unless platform.is_windows? +# REMIND: gcc12 complains about invalid pointer types in ruby-augeas native extension +proj.component 'ruby-augeas' unless platform.is_windows? || platform.name =~ /^fedora-40/ proj.component 'ruby-shadow' unless platform.is_aix? || platform.is_windows? # We only build ruby-selinux for EL, Fedora, Debian and Ubuntu (amd64/i386) if platform.is_el? || platform.is_fedora? || platform.name =~ /debian|ubuntu/