diff --git a/.SDL2.metadata b/.SDL2.metadata new file mode 100644 index 0000000..45c85fb --- /dev/null +++ b/.SDL2.metadata @@ -0,0 +1 @@ +fb31312ea1d4b45db839796ae2336dfe3d5884e5 SOURCES/SDL2-2.0.10.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b72b7af --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/SDL2-2.0.10.tar.gz diff --git a/SOURCES/CVE-2019-13616-validate_image_size_when_loading_BMP_files.patch b/SOURCES/CVE-2019-13616-validate_image_size_when_loading_BMP_files.patch new file mode 100644 index 0000000..9cefc97 --- /dev/null +++ b/SOURCES/CVE-2019-13616-validate_image_size_when_loading_BMP_files.patch @@ -0,0 +1,22 @@ +From 85138c1ec673e05263ae666baf61f79384daf7e0 Mon Sep 17 00:00:00 2001 +From: Sam Lantinga +Date: Tue, 30 Jul 2019 11:00:00 -0700 +Subject: Fixed bug 4538 - validate image size when loading BMP files + + +diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c +index 0b68918cc..a06b0c94c 100644 +--- a/src/video/SDL_bmp.c ++++ b/src/video/SDL_bmp.c +@@ -226,6 +226,11 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) + SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR); + } + } ++ if (biWidth <= 0 || biHeight == 0) { ++ SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight); ++ was_error = SDL_TRUE; ++ goto done; ++ } + if (biHeight < 0) { + topDown = SDL_TRUE; + biHeight = -biHeight; diff --git a/SOURCES/SDL2-2.0.9-khrplatform.patch b/SOURCES/SDL2-2.0.9-khrplatform.patch new file mode 100644 index 0000000..b6c3927 --- /dev/null +++ b/SOURCES/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/SOURCES/SDL_config.h b/SOURCES/SDL_config.h new file mode 100644 index 0000000..7862549 --- /dev/null +++ b/SOURCES/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/SOURCES/multilib.patch b/SOURCES/multilib.patch new file mode 100644 index 0000000..955b398 --- /dev/null +++ b/SOURCES/multilib.patch @@ -0,0 +1,25 @@ +diff -uNr SDL2-2.0.0.orig/sdl2-config.in SDL2-2.0.0/sdl2-config.in +--- SDL2-2.0.0.orig/sdl2-config.in 2013-08-12 06:57:54.000000000 +0400 ++++ SDL2-2.0.0/sdl2-config.in 2013-08-24 12:50:01.630268642 +0400 +@@ -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 @@ + 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_RLD_FLAGS@ @SDL_STATIC_LIBS@ ++@ENABLE_STATIC_TRUE@ echo @SDL_RLD_FLAGS@ @SDL_STATIC_LIBS@ + @ENABLE_STATIC_TRUE@ ;; + *) + echo "${usage}" 1>&2 diff --git a/SPECS/SDL2.spec b/SPECS/SDL2.spec new file mode 100644 index 0000000..a98fb60 --- /dev/null +++ b/SPECS/SDL2.spec @@ -0,0 +1,310 @@ +Name: SDL2 +Version: 2.0.10 +Release: 2%{?dist} +Summary: Cross-platform multimedia library + +%if 0%{?fedora} +%global enable_jack 1 +%endif + +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 +Patch2: CVE-2019-13616-validate_image_size_when_loading_BMP_files.patch + +BuildRequires: gcc +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 +# PulseAudio +BuildRequires: pkgconfig(libpulse-simple) +# Jack +%if 0%{?enable_jack} +BuildRequires: pkgconfig(jack) +%endif +# 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 +%ifnarch s390 s390x aarch64 ppc64le +BuildRequires: vulkan-devel +%endif +# 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} + +%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 +# Compilation without ESD +sed -i -e 's/.*AM_PATH_ESD.*//' configure.ac +sed -i -e 's/\r//g' TODO.txt README.txt WhatsNew.txt BUGS.txt COPYING.txt CREDITS.txt README-SDL.txt + +%build +%configure \ + --enable-sdl-dlopen \ + --enable-video-kmsdrm \ + --disable-arts \ + --disable-esd \ + --disable-nas \ + --enable-pulseaudio-shared \ +%if 0%{?enable_jack} + --enable-jack-shared \ +%else + --disable-jack \ +%endif + --enable-alsa \ + --enable-video-wayland \ +%ifnarch s390 s390x aarch64 ppc64le + --enable-video-vulkan \ +%endif + --enable-sse2=no \ + --enable-sse3=no \ + --disable-rpath \ +%ifarch ppc64le + --disable-altivec \ +%endif + +make %{?_smp_mflags} + +%install +%make_install + +# 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 + +# remove libtool .la file +rm -vf %{buildroot}%{_libdir}/*.la +# remove static .a file +# rm -f %{buildroot}%{_libdir}/*.a + +%ldconfig_scriptlets + +%files +%license COPYING.txt +%doc BUGS.txt CREDITS.txt README-SDL.txt +%{_libdir}/lib*.so.* + +%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 +* Fri Nov 22 2019 Wim Taymans - 2.0.10-2 +- Fix CVE-2019-13616 SDL: heap-based buffer overflow in SDL blit + functions in video/SDL_blit*.c +- Resolves: rhbz#1756279 + +* Tue Nov 12 2019 Wim Taymans - 2.0.10-1 +- Update to 2.0.10 +- Resolves: rhbz#1751780 + +* Fri Feb 15 2019 Tom Callaway - 2.0.9-3 +- use khrplatform defines, not ptrdiff_t + +* Tue Aug 14 2018 Wim Taymans - 2.0.8-7 +- Disable jack + +* Sat Aug 11 2018 Wim Taymans - 2.0.8-6 +- Disable vulkan on s390, s390x, aarch64 and ppc64le +- Resolves: rhbz#1610034 + +* Tue Jul 17 2018 Wim Taymans - 2.0.8-5 +- Disable obsolete audiofile-devel BR (#1588283) + +* 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