diff --git a/extras/SDL2/SDL2-2.0.9-khrplatform.patch b/extras/SDL2/SDL2-2.0.9-khrplatform.patch new file mode 100644 index 0000000..b6c3927 --- /dev/null +++ b/extras/SDL2/SDL2-2.0.9-khrplatform.patch @@ -0,0 +1,15 @@ +diff -up SDL2-2.0.9/include/SDL_opengl_glext.h.khrplatform SDL2-2.0.9/include/SDL_opengl_glext.h +--- SDL2-2.0.9/include/SDL_opengl_glext.h.khrplatform 2019-02-15 20:22:39.173773779 -0500 ++++ SDL2-2.0.9/include/SDL_opengl_glext.h 2019-02-15 20:22:58.176399330 -0500 +@@ -469,8 +469,9 @@ GLAPI void APIENTRY glBlendEquation (GLe + typedef long GLsizeiptr; + typedef long GLintptr; + #else +-typedef ptrdiff_t GLsizeiptr; +-typedef ptrdiff_t GLintptr; ++#include ++typedef khronos_intptr_t GLintptr; ++typedef khronos_ssize_t GLsizeiptr; + #endif + #define GL_BUFFER_SIZE 0x8764 + #define GL_BUFFER_USAGE 0x8765 diff --git a/extras/SDL2/SDL2.spec b/extras/SDL2/SDL2.spec new file mode 100644 index 0000000..deb5299 --- /dev/null +++ b/extras/SDL2/SDL2.spec @@ -0,0 +1,345 @@ +Name: SDL2 +Version: 2.0.14 +Release: 5%{?dist} +Summary: Cross-platform multimedia library +License: zlib and MIT +URL: http://www.libsdl.org/ +Source0: http://www.libsdl.org/release/%{name}-%{version}.tar.gz +Source1: SDL_config.h + +Patch0: multilib.patch +# ptrdiff_t is not the same as khronos defines on 32bit arches +Patch1: SDL2-2.0.9-khrplatform.patch + +BuildRequires: cmake +BuildRequires: make +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: alsa-lib-devel +BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libGLU-devel +BuildRequires: mesa-libEGL-devel +BuildRequires: mesa-libGLES-devel +BuildRequires: libXext-devel +BuildRequires: libX11-devel +BuildRequires: libXi-devel +BuildRequires: libXrandr-devel +BuildRequires: libXrender-devel +BuildRequires: libXScrnSaver-devel +BuildRequires: libusb-devel +BuildRequires: libXinerama-devel +BuildRequires: libXcursor-devel +BuildRequires: systemd-devel +# Pipewire +BuildRequires: pipewire-devel >= 0.3.20 +# PulseAudio +BuildRequires: pkgconfig(libpulse-simple) +# Jack +BuildRequires: pkgconfig(jack) +# D-Bus +BuildRequires: pkgconfig(dbus-1) +# IBus +BuildRequires: pkgconfig(ibus-1.0) +# Wayland +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-egl) +BuildRequires: pkgconfig(wayland-cursor) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(wayland-scanner) +BuildRequires: pkgconfig(xkbcommon) +# Vulkan +BuildRequires: vulkan-devel +# KMS +BuildRequires: mesa-libgbm-devel +BuildRequires: libdrm-devel + +%description +Simple DirectMedia Layer (SDL) is a cross-platform multimedia library designed +to provide fast access to the graphics frame buffer and audio device. + +%package devel +Summary: Files needed to develop Simple DirectMedia Layer applications +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: mesa-libEGL-devel%{?_isa} +Requires: mesa-libGLES-devel%{?_isa} +Requires: libX11-devel%{?_isa} +# Needed to keep CMake happy +Requires: %{name}-static%{?_isa} = %{version}-%{release} + +%description devel +Simple DirectMedia Layer (SDL) is a cross-platform multimedia library designed +to provide fast access to the graphics frame buffer and audio device. This +package provides the libraries, include files, and other resources needed for +developing SDL applications. + +%package static +Summary: Static libraries for SDL2 + +%description static +Static libraries for SDL2. + +%prep +%autosetup -p1 +sed -i -e 's/\r//g' TODO.txt README.txt WhatsNew.txt BUGS.txt COPYING.txt CREDITS.txt README-SDL.txt + +%build +# Deal with new CMake policy around whitespace in LDFLAGS... +export LDFLAGS="%{shrink:%{build_ldflags}}" + +mkdir -p %{_target_platform} +pushd %{_target_platform} +%cmake \ + -DSDL_DLOPEN=ON \ + -DVIDEO_KMSDRM=ON \ + -DARTS=OFF \ + -DESD=OFF \ + -DNAS=OFF \ + -DPULSEAUDIO_SHARED=ON \ + -DJACK_SHARED=ON \ + -DPIPEWIRE_SHARED=ON \ + -DALSA=ON \ + -DVIDEO_WAYLAND=ON \ + -DVIDEO_VULKAN=ON \ + -DSSE3=OFF \ + -DRPATH=OFF \ + -DSDL_STATIC=ON \ +%ifarch ppc64le + -DALTIVEC=OFF \ +%endif + .. +popd + +%make_build -C %{_target_platform} + + +%install +%make_install -C %{_target_platform} + +# Rename SDL_config.h to SDL_config-.h to avoid file conflicts on +# multilib systems and install SDL_config.h wrapper +mv %{buildroot}%{_includedir}/SDL2/SDL_config.h %{buildroot}%{_includedir}/SDL2/SDL_config-%{_arch}.h +install -p -m 644 %{SOURCE1} %{buildroot}%{_includedir}/SDL2/SDL_config.h + + +%files +%license COPYING.txt +%doc BUGS.txt CREDITS.txt README-SDL.txt +%{_libdir}/libSDL2-2.0.so.0* + +%files devel +%doc README.txt TODO.txt WhatsNew.txt +%{_bindir}/*-config +%{_libdir}/lib*.so +%{_libdir}/pkgconfig/sdl2.pc +%{_libdir}/cmake/SDL2/ +%{_includedir}/SDL2 +%{_datadir}/aclocal/* + +%files static +%license COPYING.txt +%{_libdir}/lib*.a + +%changelog +* Thu Jul 1 2021 Raven - 2.0.14-5 +- enable native pipewire support + +* Thu Jun 3 2021 Tom Callaway - 2.0.14-5 +- add -static Requires to -devel to make CMake stop failing on missing files (bz1965359) + +* Mon May 17 2021 Neal Gompa - 2.0.14-4 +- Switch to CMake to build SDL2 +- Build JACK support unconditionally since PipeWire-JACK exists in RHEL 9 + +* Mon Feb 22 2021 Hans de Goede - 2.0.14-3 +- SDL2 no longer uses audiofile, drop the audiofile-devel BuildRequires + +* Mon Jan 25 2021 Fedora Release Engineering - 2.0.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Jan 21 2021 Pete Walter - 2.0.14-1 +- Update to 2.0.14 +- Rebase multilib.patch +- Don't use globs in the form of libFOO.so.* for listing files + +* Tue Jan 12 2021 Wim Taymans - 2.0.12-5 +- Disable JACK on rhel >= 8 + +* Sat Aug 01 2020 Fedora Release Engineering - 2.0.12-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2.0.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 2.0.12-2 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Wed Mar 11 2020 Pete Walter - 2.0.12-1 +- Update to 2.0.12 + +* Tue Feb 11 2020 Tom Callaway - 2.0.10-3 +- apply upstream fix for FTBFS + +* Tue Jan 28 2020 Fedora Release Engineering - 2.0.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Pete Walter - 2.0.10-1 +- Update to 2.0.10 + +* Wed Jul 24 2019 Fedora Release Engineering - 2.0.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 15 2019 Tom Callaway - 2.0.9-3 +- use khrplatform defines, not ptrdiff_t + +* Thu Jan 31 2019 Fedora Release Engineering - 2.0.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Nov 2 2018 Tom Callaway - 2.0.9-1 +- update to 2.0.9 + +* Thu Jul 12 2018 Fedora Release Engineering - 2.0.8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon May 21 2018 Adam Jackson - 2.0.8-5 +- Backport a crash/hang fix from 2.0.9 (#1580541) + +* Wed Apr 11 2018 Tom Callaway - 2.0.8-4 +- enable video-kmsdrm + +* Fri Mar 30 2018 David Abdurachmanov - 2.0.8-3 +- Add riscv64 to SDL_config.h + +* Sun Mar 04 2018 Miro Hrončok - 2.0.8-2 +- Disable altivec on ppc64le (RHBZ #1551338) + +* Sun Mar 4 2018 Peter Robinson 2.0.8-1 +- Update to 2.0.8 + +* Wed Feb 07 2018 Fedora Release Engineering - 2.0.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 31 2018 Igor Gnatenko - 2.0.7-3 +- Switch to %%ldconfig_scriptlets + +* Sun Nov 05 2017 Igor Gnatenko - 2.0.7-2 +- Fix IBus + +* Tue Oct 24 2017 Igor Gnatenko - 2.0.7-1 +- Update to 2.0.7 + +* Thu Oct 19 2017 Igor Gnatenko - 2.0.6-4 +- Fully fix last overflow + +* Wed Oct 11 2017 Igor Gnatenko - 2.0.6-3 +- Fix potential overflow in surface allocation + +* Thu Oct 05 2017 Igor Gnatenko - 2.0.6-2 +- Fix invalid dbus arguments + +* Sat Sep 23 2017 Igor Gnatenko - 2.0.6-1 +- Update to 2.0.6 + +* Wed Aug 02 2017 Fedora Release Engineering - 2.0.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 2.0.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 2.0.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jan 27 2017 Igor Gnatenko - 2.0.5-3 +- Fix NULL dereference (RHBZ #1416945) + +* Wed Oct 26 2016 Dan Horák - 2.0.5-2 +- fix FTBFS on ppc64/ppc64le + +* Thu Oct 20 2016 Igor Gnatenko - 2.0.5-1 +- Update to 2.0.5 (RHBZ #1387238) + +* Mon Sep 05 2016 Kalev Lember - 2.0.4-9 +- Backport Wayland fixes from upstream + +* Sun Aug 14 2016 Igor Gnatenko - 2.0.4-8 +- Fix whitespaces in CMake file (RHBZ #1366868) + +* Sun Jul 10 2016 Igor Gnatenko - 2.0.4-7 +- Remove useless Requirements from -devel subpkg + +* Sun Jul 10 2016 Igor Gnatenko - 2.0.4-6 +- Add ibus support + +* Sun Jul 10 2016 Joseph Mullally - 2.0.4-5 +- fix Wayland dynamic symbol loading (bz1354155) + +* Thu Feb 25 2016 Tom Callaway - 2.0.4-4 +- enable static subpackage (bz1253930) + +* Fri Feb 5 2016 Tom Callaway - 2.0.4-3 +- fix compile against latest wayland + +* Wed Feb 03 2016 Fedora Release Engineering - 2.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Jan 04 2016 Tom Callaway - 2.0.4-1 +- update to 2.0.4 + +* Fri Sep 04 2015 Michal Toman - 2.0.3-7 +- Add support for MIPS architecture to SDL_config.h + +* Tue Jun 16 2015 Fedora Release Engineering - 2.0.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Jun 2 2015 Tom Callaway - 2.0.3-5 +- remove code preventing builds with ancient gcc + +* Fri Aug 15 2014 Fedora Release Engineering - 2.0.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Jun 11 2014 Karsten Hopp 2.0.3-3 +- fix filename of SDL_config.h for ppc64le + +* Fri Jun 06 2014 Fedora Release Engineering - 2.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed Mar 19 2014 Igor Gnatenko - 2.0.3-1 +- 2.0.3 upstream release + +* Sat Mar 08 2014 Igor Gnatenko - 2.0.2-1 +- 2.0.2 upstream release +- Enable wayland backend + +* Tue Dec 10 2013 Igor Gnatenko - 2.0.1-2 +- Add libXinerama, libudev, libXcursor support (RHBZ #1039702) + +* Thu Oct 24 2013 Tom Callaway - 2.0.1-1 +- update to 2.0.1 + +* Sat Aug 24 2013 Igor Gnatenko - 2.0.0-3 +- Fix multilib issues + +* Tue Aug 13 2013 Igor Gnatenko - 2.0.0-2 +- SDL2 is released. Announce: +- http://lists.libsdl.org/pipermail/sdl-libsdl.org/2013-August/089854.html + +* Sat Aug 10 2013 Igor Gnatenko - 2.0.0-1.rc4 +- Update to latest SDL2 (08.08.2013) + +* Tue Jul 30 2013 Igor Gnatenko - 2.0.0-1.rc3 +- Fix Licenses +- some cleanups in spec + +* Tue Jul 30 2013 Igor Gnatenko - 2.0.0-1.rc2 +- Delete -static package +- Fix License tag +- Fix end-of-line in documents +- Remove all spike-nails EL-specify (if someone will want to do - 'patches are welcome') +- Change Release tag to .rcX%%{?dist} (maintainer has changed released tarballs) + +* Mon Jul 29 2013 Igor Gnatenko - 2.0.0-1.rc1 +- Some fixes in spec and cleanup + +* Mon Jul 29 2013 Jon Ciesla - 2.0.0-1 +- Ported from SDL 1.2.15-10 diff --git a/extras/SDL2/SDL_config.h b/extras/SDL2/SDL_config.h new file mode 100644 index 0000000..7862549 --- /dev/null +++ b/extras/SDL2/SDL_config.h @@ -0,0 +1,83 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/* + * This SDL_config.h is a wrapper include file for the original SDL_config.h, + * which has been renamed to SDL_config-.h. There are conflicts for the + * original SDL_config.h on multilib systems, which result from arch-specific + * configuration options. Please do not use the arch-specific file directly. + * + * Copyright (C) 2013 Igor Gnatenko + * Igor Gnatenko + */ + +/** + * \file SDL_config.h + */ + +#ifdef SDL_config_wrapper_h +#error "SDL_config_wrapper_h should not be defined!" +#endif +#define SDL_config_wrapper_h + +#if defined(__i386__) +#include "SDL_config-i386.h" +#elif defined(__ia64__) +#include "SDL_config-ia64.h" +#elif defined(__powerpc64__) +# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#include "SDL_config-ppc64.h" +# else +#include "SDL_config-ppc64le.h" +# endif +#elif defined(__powerpc__) +#include "SDL_config-ppc.h" +#elif defined(__s390x__) +#include "SDL_config-s390x.h" +#elif defined(__s390__) +#include "SDL_config-s390.h" +#elif defined(__x86_64__) +#include "SDL_config-x86_64.h" +#elif defined(__arm__) +#include "SDL_config-arm.h" +#elif defined(__alpha__) +#include "SDL_config-alpha.h" +#elif defined(__sparc__) && defined (__arch64__) +#include "SDL_config-sparc64.h" +#elif defined(__sparc__) +#include "SDL_config-sparc.h" +#elif defined(__aarch64__) +#include "SDL_config-aarch64.h" +#elif defined(__mips64) && defined(__MIPSEL__) +#include "SDL_config-mips64el.h" +#elif defined(__mips64) +#include "SDL_config-mips64.h" +#elif defined(__mips) && defined(__MIPSEL__) +#include "SDL_config-mipsel.h" +#elif defined(__mips) +#include "SDL_config-mips.h" +#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64 +#include "SDL_config-riscv64.h" +#else +#error "The SDL2-devel package is not usable with the architecture." +#endif + +#undef SDL_config_wrapper_h diff --git a/extras/SDL2/multilib.patch b/extras/SDL2/multilib.patch new file mode 100644 index 0000000..875a20f --- /dev/null +++ b/extras/SDL2/multilib.patch @@ -0,0 +1,25 @@ +diff -up SDL2-2.0.14/sdl2-config.in.orig SDL2-2.0.14/sdl2-config.in +--- SDL2-2.0.14/sdl2-config.in.orig 2020-12-21 17:44:36.000000000 +0000 ++++ SDL2-2.0.14/sdl2-config.in 2021-01-21 16:26:35.663960042 +0000 +@@ -3,7 +3,6 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ + exec_prefix_set=no +-libdir=@libdir@ + + @ENABLE_STATIC_FALSE@usage="\ + @ENABLE_STATIC_FALSE@Usage: $0 [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]" +@@ -45,11 +44,11 @@ while test $# -gt 0; do + echo -I@includedir@/SDL2 @SDL_CFLAGS@ + ;; + @ENABLE_SHARED_TRUE@ --libs) +-@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@ ++@ENABLE_SHARED_TRUE@ echo @SDL_RLD_FLAGS@ @SDL_LIBS@ + @ENABLE_SHARED_TRUE@ ;; + @ENABLE_STATIC_TRUE@@ENABLE_SHARED_TRUE@ --static-libs) + @ENABLE_STATIC_TRUE@@ENABLE_SHARED_FALSE@ --libs|--static-libs) +-@ENABLE_STATIC_TRUE@ echo -L@libdir@ @SDL_LIBS@ @SDL_STATIC_LIBS@ ++@ENABLE_STATIC_TRUE@ echo @SDL_LIBS@ @SDL_STATIC_LIBS@ + @ENABLE_STATIC_TRUE@ ;; + *) + echo "${usage}" 1>&2