Merge pull request #256402 from puckipedia/fix-frozen-bubble
perlPackages.SDL: fix on perl >= 5.38.0
This commit is contained in:
commit
c9a667043f
64
pkgs/development/perl-modules/sdl-modern-perl.patch
Normal file
64
pkgs/development/perl-modules/sdl-modern-perl.patch
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
From d734d03862d7dcc776bd2fa3ba662cdd5879b32e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||||
|
Date: Wed, 12 Jul 2023 17:55:27 +0200
|
||||||
|
Subject: [PATCH] Adapt to perl 5.37.1
|
||||||
|
|
||||||
|
Perl 5.37.1 removed a deprecated sv_nv() macro and SDL fails to build
|
||||||
|
with Perl 5.38.0:
|
||||||
|
|
||||||
|
lib/SDLx/Controller/Interface.xs:60:26: error: implicit declaration of function 'sv_nv'
|
||||||
|
60 | out->dv_x = sv_nv(temp);
|
||||||
|
| ^~~~~
|
||||||
|
|
||||||
|
Users are advised to use SvNVx() macro instead. SvNVx() seems to have been
|
||||||
|
available all the time (it predates a commit from 1993-10-07).
|
||||||
|
|
||||||
|
This patch does that.
|
||||||
|
|
||||||
|
https://github.com/PerlGameDev/SDL/issues/303
|
||||||
|
---
|
||||||
|
src/SDLx/Controller/Interface.xs | 12 ++++++------
|
||||||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/SDLx/Controller/Interface.xs b/src/SDLx/Controller/Interface.xs
|
||||||
|
index 3dc202b7..d326c885 100644
|
||||||
|
--- a/src/SDLx/Controller/Interface.xs
|
||||||
|
+++ b/src/SDLx/Controller/Interface.xs
|
||||||
|
@@ -57,15 +57,15 @@ void evaluate(SDLx_Interface *obj, SDLx_Derivative *out, SDLx_State *initial, fl
|
||||||
|
|
||||||
|
SV *temp;
|
||||||
|
temp = av_pop(accel);
|
||||||
|
- out->dv_x = sv_nv(temp);
|
||||||
|
+ out->dv_x = SvNVx(temp);
|
||||||
|
SvREFCNT_dec(temp);
|
||||||
|
|
||||||
|
temp = av_pop(accel);
|
||||||
|
- out->dv_y = sv_nv(temp);
|
||||||
|
+ out->dv_y = SvNVx(temp);
|
||||||
|
SvREFCNT_dec(temp);
|
||||||
|
|
||||||
|
temp = av_pop(accel);
|
||||||
|
- out->dang_v = sv_nv(temp);
|
||||||
|
+ out->dang_v = SvNVx(temp);
|
||||||
|
SvREFCNT_dec(temp);
|
||||||
|
|
||||||
|
SvREFCNT_dec((SV *)accel);
|
||||||
|
@@ -90,15 +90,15 @@ void evaluate_dt(SDLx_Interface *obj, SDLx_Derivative *out, SDLx_State *initial,
|
||||||
|
|
||||||
|
SV *temp;
|
||||||
|
temp = av_pop(accel);
|
||||||
|
- out->dv_x = sv_nv(temp);
|
||||||
|
+ out->dv_x = SvNVx(temp);
|
||||||
|
SvREFCNT_dec(temp);
|
||||||
|
|
||||||
|
temp = av_pop(accel);
|
||||||
|
- out->dv_y = sv_nv(temp);
|
||||||
|
+ out->dv_y = SvNVx(temp);
|
||||||
|
SvREFCNT_dec(temp);
|
||||||
|
|
||||||
|
temp = av_pop(accel);
|
||||||
|
- out->dang_v = sv_nv(temp);
|
||||||
|
+ out->dang_v = SvNVx(temp);
|
||||||
|
SvREFCNT_dec(temp);
|
||||||
|
|
||||||
|
SvREFCNT_dec((SV *)accel);
|
|
@ -21501,6 +21501,10 @@ with self; {
|
||||||
url = "mirror://cpan/authors/id/F/FR/FROGGS/SDL-2.548.tar.gz";
|
url = "mirror://cpan/authors/id/F/FR/FROGGS/SDL-2.548.tar.gz";
|
||||||
hash = "sha256-JSoZK/qcIHCkiDcH0TnDpF2cRRjM1moeaZtbeVm9T7U=";
|
hash = "sha256-JSoZK/qcIHCkiDcH0TnDpF2cRRjM1moeaZtbeVm9T7U=";
|
||||||
};
|
};
|
||||||
|
patches = [
|
||||||
|
# https://github.com/PerlGameDev/SDL/pull/304
|
||||||
|
../development/perl-modules/sdl-modern-perl.patch
|
||||||
|
];
|
||||||
perlPreHook = "export LD=$CC";
|
perlPreHook = "export LD=$CC";
|
||||||
preCheck = "rm t/core_audiospec.t";
|
preCheck = "rm t/core_audiospec.t";
|
||||||
buildInputs = [ pkgs.SDL pkgs.SDL_gfx pkgs.SDL_mixer pkgs.SDL_image pkgs.SDL_ttf pkgs.SDL_Pango pkgs.SDL_net AlienSDL CaptureTiny TestDeep TestDifferences TestException TestMost TestWarn ];
|
buildInputs = [ pkgs.SDL pkgs.SDL_gfx pkgs.SDL_mixer pkgs.SDL_image pkgs.SDL_ttf pkgs.SDL_Pango pkgs.SDL_net AlienSDL CaptureTiny TestDeep TestDifferences TestException TestMost TestWarn ];
|
||||||
|
|
Loading…
Reference in a new issue