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;