diff --git a/ags-build-tests-with-cxx17.patch b/ags-build-tests-with-cxx17.patch new file mode 100644 index 0000000..daea83b --- /dev/null +++ b/ags-build-tests-with-cxx17.patch @@ -0,0 +1,36 @@ +diff -up ags-3.6.2.13/Common/CMakeLists.txt.cxx17 ags-3.6.2.13/Common/CMakeLists.txt +--- ags-3.6.2.13/Common/CMakeLists.txt.cxx17 2025-09-04 10:13:12.000000000 +0200 ++++ ags-3.6.2.13/Common/CMakeLists.txt 2025-09-05 00:52:47.300264039 +0200 +@@ -241,7 +241,7 @@ if(AGS_TESTS) + test/version_test.cpp + ) + set_target_properties(common_test PROPERTIES +- CXX_STANDARD 11 ++ CXX_STANDARD 17 + CXX_EXTENSIONS NO + C_STANDARD 11 + C_EXTENSIONS NO +diff -up ags-3.6.2.13/Compiler/CMakeLists.txt.cxx17 ags-3.6.2.13/Compiler/CMakeLists.txt +--- ags-3.6.2.13/Compiler/CMakeLists.txt.cxx17 2025-09-04 10:13:12.000000000 +0200 ++++ ags-3.6.2.13/Compiler/CMakeLists.txt 2025-09-05 00:54:51.632435890 +0200 +@@ -92,7 +92,7 @@ if(AGS_TESTS) + test/cc_test_helper.h + ) + set_target_properties(compiler_test PROPERTIES +- CXX_STANDARD 11 ++ CXX_STANDARD 17 + CXX_EXTENSIONS NO + C_STANDARD 11 + C_EXTENSIONS NO +diff -up ags-3.6.2.13/Engine/CMakeLists.txt.cxx17 ags-3.6.2.13/Engine/CMakeLists.txt +--- ags-3.6.2.13/Engine/CMakeLists.txt.cxx17 2025-09-04 10:13:12.000000000 +0200 ++++ ags-3.6.2.13/Engine/CMakeLists.txt 2025-09-05 00:55:12.224488252 +0200 +@@ -649,7 +649,7 @@ if(AGS_TESTS) + test/systemimports_test.cpp + ) + set_target_properties(engine_test PROPERTIES +- CXX_STANDARD 11 ++ CXX_STANDARD 17 + CXX_EXTENSIONS NO + C_STANDARD 11 + C_EXTENSIONS NO diff --git a/ags-use-openal.patch b/ags-use-openal.patch deleted file mode 100644 index 3a8ba1a..0000000 --- a/ags-use-openal.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up ags-v.3.6.0.22/Engine/Makefile-defs.linux.openal ags-v.3.6.0.22/Engine/Makefile-defs.linux ---- ags-v.3.6.0.22/Engine/Makefile-defs.linux.openal 2022-03-31 22:47:27.000000000 +0200 -+++ ags-v.3.6.0.22/Engine/Makefile-defs.linux 2022-04-01 23:34:19.014773295 +0200 -@@ -37,6 +37,9 @@ SDL2_LIBS = $(shell sdl2-config --libs) - CFLAGS += $(SDL2_CFLAGS) - LIBS += $(SDL2_LIBS) -lSDL2_sound - -+CFLAGS += $(shell pkg-config --cflags openal) -+LIBS += $(shell pkg-config --libs openal) -+ - LIBS += -ldl -lpthread -lm - - ifdef BUILD_STR -diff -up ags-v.3.6.0.22/Engine/Makefile-objs.openal ags-v.3.6.0.22/Engine/Makefile-objs ---- ags-v.3.6.0.22/Engine/Makefile-objs.openal 2022-03-31 22:47:27.000000000 +0200 -+++ ags-v.3.6.0.22/Engine/Makefile-objs 2022-04-01 23:32:14.054815899 +0200 -@@ -58,8 +58,6 @@ PLUGINS = ../Plugins/AGSflashlight/agsfl - - ALFONT = ../Common/libsrc/alfont-2.0.9/alfont.c - --MOJOAL = ../libsrc/mojoAL/mojoal.c -- - APEG = libsrc/apeg-1.2.1/adisplay.c libsrc/apeg-1.2.1/getbits.c libsrc/apeg-1.2.1/getblk.c libsrc/apeg-1.2.1/gethdr.c libsrc/apeg-1.2.1/getpic.c libsrc/apeg-1.2.1/idct.c libsrc/apeg-1.2.1/motion.c libsrc/apeg-1.2.1/mpeg1dec.c libsrc/apeg-1.2.1/ogg.c libsrc/apeg-1.2.1/recon.c libsrc/apeg-1.2.1/audio/apegcommon.c libsrc/apeg-1.2.1/audio/aaudio.c libsrc/apeg-1.2.1/audio/dct64.c libsrc/apeg-1.2.1/audio/decode_1to1.c libsrc/apeg-1.2.1/audio/decode_2to1.c libsrc/apeg-1.2.1/audio/decode_4to1.c libsrc/apeg-1.2.1/audio/layer1.c libsrc/apeg-1.2.1/audio/layer2.c libsrc/apeg-1.2.1/audio/layer3.c libsrc/apeg-1.2.1/audio/mpg123.c libsrc/apeg-1.2.1/audio/readers.c libsrc/apeg-1.2.1/audio/tabinit.c libsrc/apeg-1.2.1/audio/vbrhead.c - - AASTR = ../Common/libsrc/aastr-0.1.1/aarot.c ../Common/libsrc/aastr-0.1.1/aastr.c ../Common/libsrc/aastr-0.1.1/aautil.c diff --git a/ags-use-system-freetype.patch b/ags-use-system-freetype.patch deleted file mode 100644 index 5b7b2dd..0000000 --- a/ags-use-system-freetype.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up ags-v.3.6.0.22/Engine/Makefile-defs.linux.noft ags-v.3.6.0.22/Engine/Makefile-defs.linux ---- ags-v.3.6.0.22/Engine/Makefile-defs.linux.noft 2022-03-31 22:47:27.000000000 +0200 -+++ ags-v.3.6.0.22/Engine/Makefile-defs.linux 2022-04-01 13:43:17.624163097 +0200 -@@ -1,8 +1,6 @@ - USE_BUILT_IN_LIBSRC = 0 - USE_MIDI_PATCH = 1 - --include Makefile-defs.freetype -- - INCDIR = ../Engine ../Common ../Common/libinclude ../Common/libsrc/alfont-2.0.9 ../Engine/libsrc/apeg-1.2.1/ ../libsrc/mojoAL ../Plugins ../Engine/libsrc/glad/include ../libsrc/glm $(ALLEGRO_SRCDIR)/include - LIBDIR = - -@@ -19,7 +17,8 @@ CFLAGS := -O2 -g \ - - CXXFLAGS := -std=c++11 -Werror=delete-non-virtual-dtor $(CXXFLAGS) - --LIBS += $(FT_LDFLAGS) -+CFLAGS += $(shell pkg-config --cflags freetype2) -+LIBS += $(shell pkg-config --libs freetype2) - LIBS += $(shell pkg-config --libs ogg) - LIBS += $(shell pkg-config --libs theora) - diff --git a/ags-use-system-libraries.patch b/ags-use-system-libraries.patch new file mode 100644 index 0000000..0ea5cd9 --- /dev/null +++ b/ags-use-system-libraries.patch @@ -0,0 +1,11 @@ +diff -up ags-3.6.2.13/CMake/FindLocalOpenAL.cmake.orig ags-3.6.2.13/CMake/FindLocalOpenAL.cmake +--- ags-3.6.2.13/CMake/FindLocalOpenAL.cmake.orig 2025-09-04 10:13:12.000000000 +0200 ++++ ags-3.6.2.13/CMake/FindLocalOpenAL.cmake 2025-10-09 13:07:24.743943475 +0200 +@@ -1,6 +1,6 @@ + # Grab system openAL or use embedded mojoAL + +-if(WIN32 OR LINUX OR MACOS OR FREEBSD) ++if(WIN32 OR MACOS OR FREEBSD) + set(AGS_USE_MOJO_AL TRUE) + endif() + diff --git a/ags.spec b/ags.spec index 0e9b75b..1e42828 100644 --- a/ags.spec +++ b/ags.spec @@ -1,45 +1,48 @@ -%bcond_without freetype %bcond_without openal %global fver v%{version} -%define ags_license Artistic 2.0 and BSD and Giftware and LGPLv2+ and Public Domain and zlib -%if %{without freetype} -%define license_full %{ags_license} and FTL -%else -%define license_full %{ags_license} -%endif +# avoid building bundled libraries as shared +%undefine _cmake_shared_libs Name: ags Summary: Engine for creating and running videogames of adventure (quest) genre -Version: 3.6.0.51 +Version: 3.6.2.16 URL: http://www.adventuregamestudio.co.uk/site/ags/ -Release: 1%{?dist} +Release: 2%{?dist} Source0: https://github.com/adventuregamestudio/ags/archive/%{fver}/ags-%{fver}.tar.gz -# unbundle freetype -Patch2: %{name}-use-system-freetype.patch -# use openal-soft -Patch3: %{name}-use-openal.patch -License: %{license_full} -%if %{with freetype} -BuildRequires: freetype-devel -%else +Patch0: ags-use-system-libraries.patch +Patch1: ags-build-tests-with-cxx17.patch +# Most code is under Artistic-2.0, except: +# Common/libsrc/aastr-0.1.1: LicenseRef-Fedora-UltraPermissive +# Common/libsrc/alfont-2.0.9: FTL +# Engine/libsrc/apeg-1.2.1: MPEG-SSG +# Engine/libsrc/glad: Apache-2.0 AND MIT-Khronos-old +# Engine/libsrc/libcda-0.5: Zlib +# Plugins/agsblend/agsblend: MIT +# Plugins/agspalrender/agspalrender/raycast.{cpp,h}: BSD-2-Clause +# Plugins/AGSSpriteFont: CC0-1.0 +# libsrc/allegro: Giftware +License: Artistic-2.0 AND LicenseRef-Fedora-UltraPermissive AND FTL AND MPEG-SSG AND Apache-2.0 AND MIT-Khronos-old AND Zlib AND MIT AND BSD-2-Clause AND CC0-1.0 AND Giftware # incorrect rendering with new FT: https://github.com/adventuregamestudio/ags/issues/1528 Provides: bundled(freetype) = 2.1.3 -%endif %if %{with openal} BuildRequires: openal-soft-devel %else # https://github.com/icculus/mojoAL (zlib) Provides: bundled(mojoal) %endif +BuildRequires: cmake BuildRequires: gcc-c++ +BuildRequires: glad BuildRequires: glm-devel +BuildRequires: gtest-devel # for KHR/khrplatform.h BuildRequires: libglvnd-devel BuildRequires: libogg-devel BuildRequires: libtheora-devel BuildRequires: libvorbis-devel BuildRequires: make +BuildRequires: cmake(miniz) BuildRequires: SDL2-devel BuildRequires: SDL2_sound-devel BuildRequires: tinyxml2-devel @@ -65,14 +68,17 @@ limited, support for other genres as well. Originally created by Chris Jones back in 1999, AGS was opensourced in 2011 and since continued to be developed by contributors. +%package tools +Summary: Tools for Adventure Game Studio engine game development +Requires: %{name}%{_isa} = %{version}-%{release} + +%description tools +This package contains the AGS engine game development tools. + %prep %setup -q -%if %{with freetype} -%patch2 -p1 -b .noft -%endif -%if %{with openal} -%patch3 -p1 -b .openal -%endif +%patch 0 -p1 -b .orig +%patch 1 -p1 -b .cxx17 # delete unused bundled stuff pushd Common/libinclude rm -r ogg @@ -80,19 +86,19 @@ rm -r theora rm -r vorbis popd pushd Common/libsrc -%if %{with freetype} -rm -r freetype-2.1.3 -%endif rmdir googletest popd pushd Engine/libsrc -rm -r glad{,-gles2}/include/KHR +rm -r glad{,-gles2}/{src,include} +glad --reproducible --out-path=glad --profile="compatibility" --api="gl=2.1" --generator="c" --spec="gl" --extensions="GL_EXT_framebuffer_object" +glad --reproducible --out-path=glad-gles2 --profile="core" --api="gles2=2.0" --generator="c" --spec="gl" --extensions="" rm -r ogg rm -r theora rm -r vorbis popd pushd libsrc rm -r glm +rm -r miniz %if %{with openal} rm -r mojoAL %endif @@ -103,21 +109,132 @@ touch -r Changes.txt Changes.txt.utf-8 && \ mv Changes.txt.utf-8 Changes.txt %build -%set_build_flags -%make_build -C Engine +%cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DAGS_BUILD_TOOLS=TRUE \ + -DAGS_TESTS=TRUE \ + -DAGS_USE_LOCAL_SDL2=TRUE \ + -DAGS_USE_LOCAL_SDL2_SOUND=TRUE \ + -DAGS_USE_LOCAL_OGG=TRUE \ + -DAGS_USE_LOCAL_VORBIS=TRUE \ + -DAGS_USE_LOCAL_THEORA=TRUE \ + -DAGS_USE_LOCAL_GLM=TRUE \ + -DAGS_USE_LOCAL_TINYXML2=TRUE \ + -DAGS_USE_LOCAL_MINIZ=TRUE \ + -DAGS_USE_LOCAL_GTEST=TRUE \ + +%cmake_build %install -make V=1 -C Engine PREFIX=%{buildroot}%{_prefix} install +%cmake_install + +%check +%ctest %files %license License.txt %doc Changes.txt Copyright.txt OPTIONS.md README.md %{_bindir}/ags +%files tools +%{_bindir}/agscc +%{_bindir}/agf2dlgasc +%{_bindir}/agfexport +%{_bindir}/agspak +%{_bindir}/agsunpak +%{_bindir}/crm2ash +%{_bindir}/crmpak +%{_bindir}/trac +%{_bindir}/ags + %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 3.6.2.16-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Jan 14 2026 Dominik Mierzejewski - 3.6.2.16-1 +- update to 3.6.2.16 +- drop obsolete patch + +* Wed Nov 26 2025 Dominik Mierzejewski - 3.6.2.15-1 +- update to 3.6.2.15 (resolves rhbz#2416531) +- drop serial ctest call work-around, fixed upstream + (https://github.com/adventuregamestudio/ags/pull/2910) + +* Mon Nov 03 2025 Benjamin A. Beasley - 3.6.2.14-2 +- Build tests as C++17; required for gtest 1.17 + +* Mon Oct 27 2025 Dominik Mierzejewski - 3.6.2.14-1 +- update to 3.6.2.14 (resolves rhbz#2405254) + +* Fri Sep 05 2025 Dominik Mierzejewski - 3.6.2.13-2 +- build tools and run tests + +* Thu Sep 04 2025 Dominik Mierzejewski - 3.6.2.13-1 +- update to 3.6.2.13 (resolves rhbz#2393079) + +* Sat Aug 23 2025 Benjamin A. Beasley - 3.6.2.12-4 +- Rebuilt for tinyxml2 11.0.0 + +* Sun Aug 03 2025 Dominik Mierzejewski - 3.6.2.12-3 +- follow upstream convention in option naming +- drop custom miniz detection and require a fixed build instead + +* Wed Jul 23 2025 Fedora Release Engineering - 3.6.2.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Jul 19 2025 Dominik Mierzejewski - 3.6.2.12-1 +- update to 3.6.2.12 +- switch back to bundled freetype per upstream recommendation + +* Sun Jul 06 2025 Dominik Mierzejewski - 3.6.2.11-1 +- update to 3.6.2.11 + +* Fri May 09 2025 Dominik Mierzejewski - 3.6.2.9-1 +- update to 3.6.2.9 +- regenerate glad sources + +* Fri Feb 28 2025 Dominik Mierzejewski - 3.6.2.7-1 +- update to 3.6.2.7 +- switch build system to cmake +- unbundle miniz +- update SPDX expression in License: field after review + +* Thu Feb 27 2025 Dominik Mierzejewski - 3.6.1.31-1 +- update to 3.6.1.31 +- fix build with C23 (resolves rhbz#2336273) + +* Thu Jan 16 2025 Fedora Release Engineering - 3.6.1.30-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sat Nov 30 2024 Dominik Mierzejewski - 3.6.1.30-1 +- update to 3.6.1.30 +- drop obsolete patch + +* Mon Nov 11 2024 Dominik Mierzejewski - 3.6.0.56-5 +- rebuild for tinyxml2 + +* Wed Jul 17 2024 Fedora Release Engineering - 3.6.0.56-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jan 29 2024 Fedora Release Engineering - 3.6.0.56-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 3.6.0.56-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Dominik Mierzejewski - 3.6.0.56-1 +- update to 3.6.0.56 +- fix build with GCC14 + +* Fri Jan 19 2024 Fedora Release Engineering - 3.6.0.51-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Sep 01 2023 Dominik Mierzejewski - 3.6.0.51-1 - update to 3.6.0.51 +* Wed Jul 19 2023 Fedora Release Engineering - 3.6.0.48-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Sun May 14 2023 Dominik Mierzejewski - 3.6.0.48-1 - update to 3.6.0.48 (#2192719) @@ -132,9 +249,14 @@ make V=1 -C Engine PREFIX=%{buildroot}%{_prefix} install * Mon Feb 06 2023 Dominik Mierzejewski - 3.6.0.42-1 - update to 3.6.0.42 (#2167149) +- drop obsolete patch * Tue Jan 24 2023 Dominik Mierzejewski - 3.6.0.41-1 - update to 3.6.0.41 (#2161376) +- fix build with GCC 13 + +* Wed Jan 18 2023 Fedora Release Engineering - 3.6.0.40-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Sun Jan 08 2023 Dominik Mierzejewski - 3.6.0.40-1 - update to 3.6.0.40 (#2158889) @@ -151,6 +273,9 @@ make V=1 -C Engine PREFIX=%{buildroot}%{_prefix} install * Thu Oct 06 2022 Dominik Mierzejewski - 3.6.0.35-1 - update to 3.6.0.35 (#2108390) +* Sun Sep 25 2022 Rich Mattes - 3.6.0.33-2 +- Rebuild for tinyxml2-9.0.0 + * Sun Aug 14 2022 Dominik Mierzejewski - 3.6.0.33-1 - update to 3.6.0.33 (#2108390) diff --git a/sources b/sources index 8aa5e57..2c31f17 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ags-v3.6.0.51.tar.gz) = f816909bb94c2f2d9e3527f80312df94bb1d2f2a962b883954cd57c75957405255da290e26a8d00d22a49f7110405449291e3ae7bd0ebe09c3d2359a6f1e1f58 +SHA512 (ags-v3.6.2.16.tar.gz) = 4b3261284454fc4e770f684eb6ece5199bc9d8a731d433b96f1134ade8907d60f0658f481f5ed229346a6dfeac61622ce5d62adfc163489f1cbf335b7c088936