summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Grande2021-02-14 01:28:26 -0500
committerVincent Grande2021-02-14 01:28:26 -0500
commit6ce2c5513cf2fa1c392d6168ffdb260c46dfef70 (patch)
tree33509beffa8c9a90e6aa8667b0b5100e92c388ce
downloadaur-6ce2c5513cf2fa1c392d6168ffdb260c46dfef70.tar.gz
initial upload
-rw-r--r--.SRCINFO39
-rwxr-xr-xPKGBUILD100
-rw-r--r--cmake-include-paths.patch45
-rw-r--r--dynapi.patch84
4 files changed, 268 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..213aea11ccc3
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,39 @@
+pkgbase = lib32-sdl2-git
+ pkgdesc = A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (Version 2. 32 -bit)
+ pkgver = 2.0.12
+ pkgrel = 1
+ url = https://www.libsdl.org
+ arch = x86_64
+ license = MIT
+ makedepends = cmake
+ makedepends = jack
+ makedepends = lib32-alsa-lib
+ makedepends = lib32-mesa
+ makedepends = lib32-libpulse
+ makedepends = lib32-libxrandr
+ makedepends = lib32-libxinerama
+ makedepends = lib32-wayland
+ makedepends = lib32-libxkbcommon
+ makedepends = lib32-libxss
+ makedepends = lib32-libxxf86vm
+ makedepends = git
+ makedepends = wayland-protocols
+ depends = lib32-glibc
+ depends = lib32-libxext
+ depends = lib32-libxrender
+ depends = lib32-libx11
+ depends = lib32-libgl
+ depends = lib32-libxcursor
+ depends = lib32-libxxf86vm
+ depends = sdl2
+ optdepends = lib32-alsa-lib: ALSA audio driver
+ optdepends = lib32-libpulse: PulseAudio audio driver
+ optdepends = lib32-jack: JACK audio driver
+ provides = lib32-sdl2
+ conflicts = lib32-sdl2
+ conflicts = lib32-sdl2-minimal-hg
+ source = git+https://github.com/libsdl-org/SDL
+ sha512sums = SKIP
+
+pkgname = lib32-sdl2-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100755
index 000000000000..de642268683c
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,100 @@
+# Maintainer: Vincent Grande <shoober420@gmail.com>
+# Contributor: Christer Solskogen <christer.solskogen@gmail.com>
+# Contributor: Maxime Gauduin <alucryd@archlinux.org>
+# Contributor: Jameson Pugh <imntreal@gmail.com>
+# Contributor: J0k3r <moebius282@gmail.com>
+
+pkgname=lib32-sdl2-git
+pkgver=2.0.12
+pkgrel=1
+pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (Version 2. 32 -bit)"
+arch=('x86_64')
+url="https://www.libsdl.org"
+license=('MIT')
+depends=(
+ lib32-glibc
+ lib32-libxext
+ lib32-libxrender
+ lib32-libx11
+ lib32-libgl
+ lib32-libxcursor
+ lib32-libxxf86vm
+ sdl2
+)
+makedepends=(
+ cmake
+ jack
+ lib32-alsa-lib
+ lib32-mesa
+ lib32-libpulse
+ lib32-libxrandr
+ lib32-libxinerama
+ lib32-wayland
+ lib32-libxkbcommon
+ lib32-libxss
+ lib32-libxxf86vm
+ git
+ wayland-protocols
+)
+optdepends=(
+ 'lib32-alsa-lib: ALSA audio driver'
+ 'lib32-libpulse: PulseAudio audio driver'
+ 'lib32-jack: JACK audio driver'
+)
+provides=(lib32-sdl2)
+conflicts=(lib32-sdl2 lib32-sdl2-minimal-hg)
+source=("git+https://github.com/libsdl-org/SDL")
+sha512sums=('SKIP')
+
+pkgver() {
+ cd "SDL"
+ git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
+}
+
+prepare() {
+ #fix libdir
+ sed -i 's|lib/cmake|lib32/cmake|' SDL/CMakeLists.txt
+
+ # Don't try to link against ibus
+ sed -i '/pkg_search_module.*ibus-1.0/d' SDL/CMakeLists.txt
+
+ rm -rf build
+ mkdir build
+}
+
+build() {
+ export CC='gcc -m32'
+ export CXX='g++ -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+
+ cmake -S SDL -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=32 \
+ -DSDL_STATIC=OFF \
+ -DSDL_DLOPEN=ON \
+ -DARTS=OFF \
+ -DESD=OFF \
+ -DNAS=OFF \
+ -DALSA=ON \
+ -DPULSEAUDIO_SHARED=ON \
+ -DVIDEO_WAYLAND=ON \
+ -DRPATH=OFF \
+ -DCLOCK_GETTIME=ON \
+ -DJACK_SHARED=ON
+ make -C build
+}
+
+package() {
+
+ make DESTDIR="${pkgdir}" -C build install
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+
+ sed -i "s/libSDL2\.a/libSDL2main.a/g" "$pkgdir"/usr/lib32/cmake/SDL2/SDL2Targets-noconfig.cmake
+
+ install -dm 755 "${pkgdir}"/usr/share/licenses
+ ln -s sdl2 "${pkgdir}"/usr/share/licenses/lib32-sdl2
+
+ ln -s /usr/lib32/libSDL2-2.0.so ${pkgdir}/usr/lib32/libSDL2-2.0.so.0
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/cmake-include-paths.patch b/cmake-include-paths.patch
new file mode 100644
index 000000000000..952c6a64b74b
--- /dev/null
+++ b/cmake-include-paths.patch
@@ -0,0 +1,45 @@
+# HG changeset patch
+# User Bastien Bouclet <bastien.bouclet@gmail.com>
+# Date 1523420183 -7200
+# Wed Apr 11 06:16:23 2018 +0200
+# Branch cmake-include-path
+# Node ID 52f0351c30b25ec2bb5b0bced247ba858991bec2
+# Parent fbfacc66c65c3b38ca065ecee1f69fcbc643c14a
+Fix the include path in the installed CMake target import file
+
+Previously the include path was {INSTALL_PREFIX}/include,
+it is now {INSTALL_PREFIX}/include/SDL2 to be consistent with
+the other build and package configuration systems.
+
+Fixes #4128.
+
+diff -r fbfacc66c65c -r 52f0351c30b2 CMakeLists.txt
+--- a/CMakeLists.txt Mon Mar 26 12:38:29 2018 -0700
++++ b/CMakeLists.txt Wed Apr 11 06:16:23 2018 +0200
+@@ -1695,7 +1695,7 @@
+
+ # Always build SDLmain
+ add_library(SDL2main STATIC ${SDLMAIN_SOURCES})
+-target_include_directories(SDL2main PUBLIC $<INSTALL_INTERFACE:include>)
++target_include_directories(SDL2main PUBLIC $<INSTALL_INTERFACE:include/SDL2>)
+ set(_INSTALL_LIBS "SDL2main")
+ if (NOT ANDROID)
+ set_target_properties(SDL2main PROPERTIES DEBUG_POSTFIX ${SDL_CMAKE_DEBUG_POSTFIX})
+@@ -1724,7 +1724,7 @@
+ endif()
+ set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS})
+ target_link_libraries(SDL2 ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
+- target_include_directories(SDL2 PUBLIC $<INSTALL_INTERFACE:include>)
++ target_include_directories(SDL2 PUBLIC $<INSTALL_INTERFACE:include/SDL2>)
+ if (NOT ANDROID)
+ set_target_properties(SDL2 PROPERTIES DEBUG_POSTFIX ${SDL_CMAKE_DEBUG_POSTFIX})
+ endif()
+@@ -1750,7 +1750,7 @@
+ # libraries - do we need to consider this?
+ set(_INSTALL_LIBS "SDL2-static" ${_INSTALL_LIBS})
+ target_link_libraries(SDL2-static ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
+- target_include_directories(SDL2-static PUBLIC $<INSTALL_INTERFACE:include>)
++ target_include_directories(SDL2-static PUBLIC $<INSTALL_INTERFACE:include/SDL2>)
+ if (NOT ANDROID)
+ set_target_properties(SDL2-static PROPERTIES DEBUG_POSTFIX ${SDL_CMAKE_DEBUG_POSTFIX})
+ endif()
diff --git a/dynapi.patch b/dynapi.patch
new file mode 100644
index 000000000000..f8aac364186c
--- /dev/null
+++ b/dynapi.patch
@@ -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. */
+ }
+ }
+