Cc bentley because of games/vacuum

On Wed, 29 Jan 2020 23:57:34 -0500
George Koehler <kern...@gmail.com> wrote:

> On Mon, 27 Jan 2020 00:37:46 +0100
> Charlene Wendling <juliana...@posteo.jp> wrote:
> 
> > It does not run on x86 due to a BROKEN p5-SDL on these 2 archs, and
> > updating p5-SDL does not solve this specific issue.
> 
> MetaCPAN shows an SDL-2.548 from a different author (FROGGS)....

SDL-2.548 is still broken.  I found a problem with boot_SDL() and
reported it: https://github.com/PerlGameDev/SDL/issues/294

Instead of updating to 2.548 (which might be incompatible with our
games), I propose to patch out the bug in 2.1.3.  With this diff, I can
now install devel/p5-SDL and play games/vacuum on amd64.  I also tried
games/frozen-bubble with cwen's fixes, but it needs COMPILER=ports-gcc.
In a moment, I will try to patch frozen-bubble for clang.

This diff for devel/p5-SDL also
 - removes HOMEPAGE; looks like a parked domain.
 - adds c to WANTLIB, because 'make port-lib-depends-check'.
 - removes BROKEN-i386, but I didn't test i386.
   (I would need to setup my i386 virtual machine again.)

'make test' passes on amd64.  I don't try macppc (because my iMac is
busy trying to build devel/llvm), would like to hear from cwen or
someone who has frozen-bubble or vacuum on macppc.

Is this diff for devel/p5-SDL ok to commit?
It is ok gkoehler@ if cwen@ commits it.

--George

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/p5-SDL/Makefile,v
retrieving revision 1.19
diff -u -p -r1.19 Makefile
--- Makefile    17 Jul 2019 14:49:21 -0000      1.19
+++ Makefile    1 Feb 2020 22:56:27 -0000
@@ -1,23 +1,19 @@
 # $OpenBSD: Makefile,v 1.19 2019/07/17 14:49:21 danj Exp $
 
-BROKEN-amd64 =         perl -e 'use SDL' segfaults
-BROKEN-i386 =          dependent ports (frozen-bubble, vacuum) fail: loadable 
library and perl binaries are mismatched (got handshake key 0x2b, needed 
0xXXXXXX)
-
 COMMENT =              Simple DirectMedia Layer for Perl
-HOMEPAGE =             http://sdlperl.org/
 
 MODULES =              cpan
 VER =                  2.1.3
 DISTNAME =             SDL_Perl-${VER}
 PKGNAME =              p5-SDL-${VER}
-REVISION =             7
+REVISION =             8
 CATEGORIES =           devel graphics
 CPAN_AUTHOR =          DGOEHRIG
 
 # GPLv2
 PERMIT_PACKAGE =               Yes
 
-WANTLIB +=             GL GLU SDL jpeg perl png pthread
+WANTLIB +=             GL GLU SDL c jpeg perl png pthread
 
 RUN_DEPENDS =          devel/p5-YAML
 BUILD_DEPENDS =                ${RUN_DEPENDS}
Index: patches/patch-Build_PL
===================================================================
RCS file: /cvs/ports/devel/p5-SDL/patches/patch-Build_PL,v
retrieving revision 1.2
diff -u -p -r1.2 patch-Build_PL
--- patches/patch-Build_PL      3 Nov 2013 07:52:02 -0000       1.2
+++ patches/patch-Build_PL      1 Feb 2020 22:56:27 -0000
@@ -1,7 +1,8 @@
 $OpenBSD: patch-Build_PL,v 1.2 2013/11/03 07:52:02 ajacoutot Exp $
---- Build.PL.orig      Wed Oct  5 02:25:49 2005
-+++ Build.PL   Mon May 25 14:22:30 2009
-@@ -35,7 +36,7 @@ my %subsystems =
+Index: Build.PL
+--- Build.PL.orig
++++ Build.PL
+@@ -35,7 +35,7 @@ my %subsystems =
        SDL => {
                file      => {
                        from  => 'src/SDL.xs',
@@ -10,7 +11,7 @@ $OpenBSD: patch-Build_PL,v 1.2 2013/11/0
                },
                libraries => [qw( SDL SDL_image SDL_mixer SDL_net SDL_ttf 
SDL_gfx
                                  png jpeg smpeg )],
-@@ -43,14 +44,14 @@ my %subsystems =
+@@ -43,14 +43,14 @@ my %subsystems =
        OpenGL => {
                file      => {
                        from => 'src/OpenGL.xs',
@@ -27,7 +28,7 @@ $OpenBSD: patch-Build_PL,v 1.2 2013/11/0
                },
                libraries => [qw( SDL SDL_image )],
        },      
-@@ -123,6 +124,7 @@ my %xs = map { $subsystems{$_}{file}{from} => $subsyst
+@@ -123,6 +123,7 @@ my %xs = map { $subsystems{$_}{file}{from} => $subsyst
             keys %subsystems;
  
  my $build   = SDL::Build->new(
Index: patches/patch-src_SDL_xs
===================================================================
RCS file: /cvs/ports/devel/p5-SDL/patches/patch-src_SDL_xs,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-src_SDL_xs
--- patches/patch-src_SDL_xs    2 Jun 2009 21:57:38 -0000       1.1.1.1
+++ patches/patch-src_SDL_xs    1 Feb 2020 22:56:27 -0000
@@ -1,6 +1,12 @@
 $OpenBSD: patch-src_SDL_xs,v 1.1.1.1 2009/06/02 21:57:38 sthen Exp $
---- src/SDL.xs.orig    Wed Oct  5 02:25:49 2005
-+++ src/SDL.xs Thu May 28 14:54:55 2009
+
+Add missing arguments to boot_SDL(); this fixes a crash or failure in
+Perl_xs_handshake() on some arches.  This patch does pass the CV of
+the wrong function, but the handshake accepts it.
+
+Index: src/SDL.xs
+--- src/SDL.xs.orig
++++ src/SDL.xs
 @@ -69,7 +69,7 @@ static int sdl_perl_use_smpeg_audio = 0;
  #define HAVE_TLS_CONTEXT
  #endif
@@ -10,6 +16,22 @@ $OpenBSD: patch-src_SDL_xs,v 1.1.1.1 200
  
  Uint32 
  sdl_perl_timer_callback ( Uint32 interval, void* param )
+@@ -189,13 +189,13 @@ sdl_perl_atexit (void)
+ #endif
+ }
+ 
+-void boot_SDL();
++void boot_SDL(pTHX_ CV *);
+ void boot_SDL__OpenGL();
+ 
+ XS(boot_SDL_perl)
+ {
+       GET_TLS_CONTEXT
+-      boot_SDL();
++      boot_SDL(aTHX_ cv);
+ }
+ 
+ MODULE = SDL_perl     PACKAGE = SDL
 @@ -3911,7 +3911,7 @@ GFXFilledpieColor ( dst, x, y, rad, start, end, color 
      Sint16 end;
      Uint32 color;

Reply via email to