# This spec builds only the AWS SDK components required by O3DE # to keep build time and package size reasonable. %global o3de_aws_components access-management;bedrock-runtime;cognito-identity;cognito-idp;core;devicefarm;dynamodb;gamelift;identity-management;kinesis;lambda;queues;s3;sns;sqs;sts;transfer Name: o3de-AWSNativeSDK Version: 1.11.361 Release: 6%{?dist} Summary: AWS SDK for C++ (O3DE subset) License: Apache-2.0 URL: https://github.com/aws/aws-sdk-cpp # Recursive tarball including all CRT submodules (aws-crt-cpp, aws-c-*, # s2n-tls, aws-lc, aws-checksums, etc.). Generate with: # git clone --recursive --branch %%{version} --depth 1 %%{url}.git aws-sdk-cpp-%%{version} # find aws-sdk-cpp-%%{version} -name '.git' -type d -exec rm -rf {} + # tar czf aws-sdk-cpp-%%{version}-full.tar.gz aws-sdk-cpp-%%{version} Source0: aws-sdk-cpp-%{version}-full.tar.gz # The AWS SDK bundles and builds its own aws-crt-cpp, aws-c-common, # aws-c-s3, s2n-tls, aws-lc, etc. via git submodules. These are not # available as individual Fedora packages, so we bundle them. Provides: bundled(aws-crt-cpp) Provides: bundled(aws-c-common) Provides: bundled(aws-c-io) Provides: bundled(aws-c-cal) Provides: bundled(aws-c-auth) Provides: bundled(aws-c-compression) Provides: bundled(aws-c-http) Provides: bundled(aws-c-mqtt) Provides: bundled(aws-c-event-stream) Provides: bundled(aws-c-s3) Provides: bundled(aws-c-sdkutils) Provides: bundled(aws-checksums) Provides: bundled(aws-lc) Provides: bundled(s2n-tls) BuildRequires: cmake >= 3.13 BuildRequires: gcc-c++ BuildRequires: git BuildRequires: ninja-build BuildRequires: libcurl-devel BuildRequires: openssl-devel BuildRequires: zlib-devel BuildRequires: pulseaudio-libs-devel BuildRequires: perl-interpreter %description The AWS SDK for C++ provides a modern C++ interface for Amazon Web Services. This package builds only the service clients required by Open 3D Engine (O3DE): Core, S3, DynamoDB, GameLift, Lambda, Cognito, Kinesis, SNS, SQS, STS, DeviceFarm, Bedrock Runtime, Access Management, Identity Management, Queues, and Transfer. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Header files and CMake config for the AWS SDK for C++ (O3DE subset). %prep %autosetup -n aws-sdk-cpp-%{version} # Strip -Werror from CRT submodule cmake files to fix GCC 16 builds find . -name CMakeLists.txt -o -name '*.cmake' | xargs sed -i 's/-Werror//g' # Fix cmake_minimum_required < 3.5 in all bundled CRT submodules for CMake 4.x find . -name CMakeLists.txt -exec sed -i 's/cmake_minimum_required\s*(VERSION\s*[0-2]\.[0-9.]*)/cmake_minimum_required(VERSION 3.5)/Ii' {} + %build %cmake \ -GNinja \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_ONLY="%{o3de_aws_components}" \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_DEPS=ON \ -DUSE_OPENSSL=OFF \ -DENABLE_TESTING=OFF \ -DENABLE_RTTI=ON \ -DCUSTOM_MEMORY_MANAGEMENT=ON \ -DFORCE_SHARED_CRT=ON \ -DCMAKE_INSTALL_RPATH=%{_libdir} \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 %cmake_build %install %cmake_install # Remove any static libraries that may have been installed alongside shared find %{buildroot} -name '*.a' -delete # Remove bundled aws-lc OpenSSL-compatible headers that would conflict # with system openssl-devel rm -rf %{buildroot}%{_includedir}/openssl # Remove aws-lc pkgconfig files that conflict with system openssl-devel rm -f %{buildroot}%{_libdir}/pkgconfig/libcrypto.pc rm -f %{buildroot}%{_libdir}/pkgconfig/libssl.pc rm -f %{buildroot}%{_libdir}/pkgconfig/openssl.pc %files %license LICENSE %doc README.md %{_libdir}/lib*.so.* %files devel %{_includedir}/aws/ %{_includedir}/smithy/ # CRT headers installed at top level %{_includedir}/s2n.h %{_includedir}/s2n/ %{_libdir}/lib*.so %{_libdir}/cmake/ # CRT components install cmake configs under per-component lib subdirs %{_libdir}/*/cmake/ # AWS SDK and CRT pkgconfig files %{_libdir}/pkgconfig/*.pc %changelog * Wed Feb 11 2026 O3DE Package Maintainer - 1.11.361-6 - Add pkgconfig files to devel package - Remove conflicting aws-lc pkgconfig files (libcrypto, libssl, openssl) * Wed Feb 11 2026 O3DE Package Maintainer - 1.11.361-5 - Use BUILD_DEPS=ON and USE_OPENSSL=OFF to use bundled aws-lc for s2n crypto (fixes openssl/engine.h missing on OpenSSL 3.x / Fedora rawhide) - Fix cmake_minimum_required < 3.5 in CRT submodules for CMake 4.x * Wed Feb 11 2026 O3DE Package Maintainer - 1.11.361-4 - Fix unpackaged files: add CRT cmake config dirs and s2n headers - Remove bundled aws-lc openssl headers that conflict with system openssl-devel * Wed Feb 11 2026 O3DE Package Maintainer - 1.11.361-3 - Use recursive source tarball with all CRT submodules included - Strip -Werror from CRT cmake files for GCC 16 compatibility - Remove LEGACY_BUILD=OFF (submodules present, default build works) * Tue Feb 11 2025 O3DE Packager - 1.11.361-1 - Initial package of AWS SDK for C++ 1.11.361 for O3DE - Build only O3DE-required service components