commit
7d6b7b7ad2
BIN
SDL2-2.0.8.tar.gz
Normal file
BIN
SDL2-2.0.8.tar.gz
Normal file
Binary file not shown.
79
SDL2.spec
Normal file
79
SDL2.spec
Normal file
@ -0,0 +1,79 @@
|
||||
Name: SDL2
|
||||
Version: 2.0.8
|
||||
Release: 7
|
||||
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
|
||||
Patch0000: multilib.patch
|
||||
Patch0001: dynapi.patch
|
||||
BuildRequires: alsa-lib-devel audiofile-devel mesa-libGL-devel
|
||||
BuildRequires: mesa-libGLU-devel mesa-libEGL-devel mesa-libGLES-devel
|
||||
BuildRequires: libXext-devel libX11-devel libXi-devel libXrandr-devel
|
||||
BuildRequires: libXrender-devel libXScrnSaver-devel libusb-devel
|
||||
BuildRequires: libXinerama-devel libXcursor-devel systemd-devel
|
||||
BuildRequires: pkgconfig(libpulse-simple) pkgconfig(jack)
|
||||
BuildRequires: pkgconfig(dbus-1) pkgconfig(ibus-1.0)
|
||||
BuildRequires: pkgconfig(wayland-client) pkgconfig(wayland-egl)
|
||||
BuildRequires: pkgconfig(wayland-cursor) pkgconfig(wayland-protocols)
|
||||
BuildRequires: pkgconfig(wayland-scanner) pkgconfig(xkbcommon)
|
||||
BuildRequires: vulkan-devel mesa-libgbm-devel 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} = %{version}-%{release}
|
||||
Requires: mesa-libEGL-devel mesa-libGLES-devel libX11-devel
|
||||
Provides: %{name}-static = %{version}-%{release}
|
||||
Obsoletes: %{name}-static < %{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.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
sed -i -e 's/.*AM_PATH_ESD.*//' configure.in
|
||||
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 --enable-jack-shared \
|
||||
--enable-alsa --enable-video-wayland \
|
||||
--enable-video-vulkan --enable-sse2=no \
|
||||
--enable-sse3=no --disable-rpath \
|
||||
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%make_install
|
||||
mv %{buildroot}%{_includedir}/SDL2/SDL_config.h %{buildroot}%{_includedir}/SDL2/SDL_config-%{_arch}.h
|
||||
install -pm 0644 %{SOURCE1} %{buildroot}%{_includedir}/SDL2/SDL_config.h
|
||||
|
||||
%files
|
||||
%license COPYING.txt
|
||||
%doc BUGS.txt CREDITS.txt README-SDL.txt
|
||||
%{_libdir}/lib*.so.*
|
||||
%exclude %{_libdir}/*.la
|
||||
|
||||
%files devel
|
||||
%license COPYING.txt
|
||||
%doc README.txt TODO.txt WhatsNew.txt
|
||||
%{_bindir}/*-config
|
||||
%{_libdir}/lib*.so
|
||||
%{_libdir}/lib*.a
|
||||
%{_libdir}/pkgconfig/sdl2.pc
|
||||
%{_libdir}/cmake/SDL2/
|
||||
%{_includedir}/SDL2
|
||||
%{_datadir}/aclocal/*
|
||||
|
||||
%changelog
|
||||
* Fri Nov 29 2019 lijin Yang <yanglijin@huawei.com> - 2.0.8-7
|
||||
- Package Init
|
||||
83
SDL_config.h
Normal file
83
SDL_config.h
Normal file
@ -0,0 +1,83 @@
|
||||
/*
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
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-<arch>.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 <i.gnatenko.brain@gmail.com>
|
||||
*/
|
||||
|
||||
/**
|
||||
* \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
|
||||
84
dynapi.patch
Normal file
84
dynapi.patch
Normal file
@ -0,0 +1,84 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Ryan C. Gordon <icculus@icculus.org>
|
||||
# Date 1526575846 14400
|
||||
# Node ID 7babfecee045fac18d95e5936fede534ca54ed24
|
||||
# Parent 9e46f3dd75fd2e85e0e3ebb8a77329bc74a16e70
|
||||
dynapi: don't let system loader resolve the initializer to the wrong version.
|
||||
|
||||
Fixes problems launching Firewatch on Linux (which statically links SDL but
|
||||
also dynamically loads a system-wide copy from a plugin shared library) with
|
||||
a newer SDL build.
|
||||
|
||||
diff -r 9e46f3dd75fd -r 7babfecee045 src/dynapi/SDL_dynapi.c
|
||||
--- a/src/dynapi/SDL_dynapi.c Fri May 11 09:37:00 2018 +0300
|
||||
+++ b/src/dynapi/SDL_dynapi.c Thu May 17 12:50:46 2018 -0400
|
||||
@@ -167,15 +167,10 @@
|
||||
#error Write me.
|
||||
#endif
|
||||
|
||||
-
|
||||
-
|
||||
-/* Here's the exported entry point that fills in the jump table. */
|
||||
-/* Use specific types when an "int" might suffice to keep this sane. */
|
||||
-typedef Sint32 (SDLCALL *SDL_DYNAPI_ENTRYFN)(Uint32 apiver, void *table, Uint32 tablesize);
|
||||
-extern DECLSPEC Sint32 SDLCALL SDL_DYNAPI_entry(Uint32, void *, Uint32);
|
||||
-
|
||||
-Sint32
|
||||
-SDL_DYNAPI_entry(Uint32 apiver, void *table, Uint32 tablesize)
|
||||
+/* we make this a static function so we can call the correct one without the
|
||||
+ system's dynamic linker resolving to the wrong version of this. */
|
||||
+static Sint32
|
||||
+initialize_jumptable(Uint32 apiver, void *table, Uint32 tablesize)
|
||||
{
|
||||
SDL_DYNAPI_jump_table *output_jump_table = (SDL_DYNAPI_jump_table *) table;
|
||||
|
||||
@@ -202,6 +197,18 @@
|
||||
}
|
||||
|
||||
|
||||
+/* Here's the exported entry point that fills in the jump table. */
|
||||
+/* Use specific types when an "int" might suffice to keep this sane. */
|
||||
+typedef Sint32 (SDLCALL *SDL_DYNAPI_ENTRYFN)(Uint32 apiver, void *table, Uint32 tablesize);
|
||||
+extern DECLSPEC Sint32 SDLCALL SDL_DYNAPI_entry(Uint32, void *, Uint32);
|
||||
+
|
||||
+Sint32
|
||||
+SDL_DYNAPI_entry(Uint32 apiver, void *table, Uint32 tablesize)
|
||||
+{
|
||||
+ return initialize_jumptable(apiver, table, tablesize);
|
||||
+}
|
||||
+
|
||||
+
|
||||
/* Obviously we can't use SDL_LoadObject() to load SDL. :) */
|
||||
/* Also obviously, we never close the loaded library. */
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)
|
||||
@@ -260,7 +267,7 @@
|
||||
SDL_InitDynamicAPILocked(void)
|
||||
{
|
||||
const char *libname = SDL_getenv_REAL("SDL_DYNAMIC_API");
|
||||
- SDL_DYNAPI_ENTRYFN entry = SDL_DYNAPI_entry; /* funcs from here by default. */
|
||||
+ SDL_DYNAPI_ENTRYFN entry = NULL; /* funcs from here by default. */
|
||||
|
||||
if (libname) {
|
||||
entry = (SDL_DYNAPI_ENTRYFN) get_sdlapi_entry(libname, "SDL_DYNAPI_entry");
|
||||
@@ -268,16 +275,15 @@
|
||||
/* !!! FIXME: fail to startup here instead? */
|
||||
/* !!! FIXME: definitely warn user. */
|
||||
/* Just fill in the function pointers from this library. */
|
||||
- entry = SDL_DYNAPI_entry;
|
||||
}
|
||||
}
|
||||
|
||||
- if (entry(SDL_DYNAPI_VERSION, &jump_table, sizeof (jump_table)) < 0) {
|
||||
+ if (!entry || (entry(SDL_DYNAPI_VERSION, &jump_table, sizeof (jump_table)) < 0)) {
|
||||
/* !!! FIXME: fail to startup here instead? */
|
||||
/* !!! FIXME: definitely warn user. */
|
||||
/* Just fill in the function pointers from this library. */
|
||||
- if (entry != SDL_DYNAPI_entry) {
|
||||
- if (!SDL_DYNAPI_entry(SDL_DYNAPI_VERSION, &jump_table, sizeof (jump_table))) {
|
||||
+ if (!entry) {
|
||||
+ if (!initialize_jumptable(SDL_DYNAPI_VERSION, &jump_table, sizeof (jump_table))) {
|
||||
/* !!! FIXME: now we're screwed. Should definitely abort now. */
|
||||
}
|
||||
}
|
||||
|
||||
25
multilib.patch
Normal file
25
multilib.patch
Normal file
@ -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
|
||||
Loading…
x
Reference in New Issue
Block a user