diff options
author | Vincent Grande | 2021-02-14 01:28:26 -0500 |
---|---|---|
committer | Vincent Grande | 2021-02-14 01:28:26 -0500 |
commit | 6ce2c5513cf2fa1c392d6168ffdb260c46dfef70 (patch) | |
tree | 33509beffa8c9a90e6aa8667b0b5100e92c388ce | |
download | aur-6ce2c5513cf2fa1c392d6168ffdb260c46dfef70.tar.gz |
initial upload
-rw-r--r-- | .SRCINFO | 39 | ||||
-rwxr-xr-x | PKGBUILD | 100 | ||||
-rw-r--r-- | cmake-include-paths.patch | 45 | ||||
-rw-r--r-- | dynapi.patch | 84 |
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. */ + } + } + |