From 308a79daabcd191d1f1ba562c091facfc9b33f79 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Sat, 17 May 2025 11:46:19 +0200 Subject: [PATCH] perl540Packages.SDL: fix build --- .../perl-modules/sdl-compat-bit-depth.patch | 16 ++++++++++++++++ pkgs/top-level/perl-packages.nix | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 pkgs/development/perl-modules/sdl-compat-bit-depth.patch diff --git a/pkgs/development/perl-modules/sdl-compat-bit-depth.patch b/pkgs/development/perl-modules/sdl-compat-bit-depth.patch new file mode 100644 index 000000000000..8077828f4224 --- /dev/null +++ b/pkgs/development/perl-modules/sdl-compat-bit-depth.patch @@ -0,0 +1,16 @@ +diff --git a/t/core_surface.t b/t/core_surface.t +index 897536b6..03efa859 100644 +--- a/t/core_surface.t ++++ b/t/core_surface.t +@@ -51,7 +51,10 @@ is( $image->h, 32, 'image has height' ); + + my $pixel_format = $image->format; + isa_ok( $pixel_format, 'SDL::PixelFormat' ); +-is( $pixel_format->BitsPerPixel, 8, ' BitsPerPixel' ); ++# the bitmap has a bitdepth of 4 ++# SDL_classic could not allocate less than full bytes per pixel ++# sdl12-compat returns the actual bit depth of the image here ++is( $pixel_format->BitsPerPixel, 4, ' BitsPerPixel' ); + is( $pixel_format->BytesPerPixel, 1, ' BytesPerPixel' ); + is( $pixel_format->Rloss, 8, ' Rloss' ); + is( $pixel_format->Gloss, 8, ' Gloss' ); diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index d0b49254e8ec..97119f7d3416 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -30215,6 +30215,9 @@ with self; patches = [ # https://github.com/PerlGameDev/SDL/pull/304 ../development/perl-modules/sdl-modern-perl.patch + # sdl-compat correctly reports the bit depth of the test image, + # while SDL_classic rounded to the next byte + ../development/perl-modules/sdl-compat-bit-depth.patch (fetchpatch { url = "https://aur.archlinux.org/cgit/aur.git/plain/surface-xs-declare-calc-offset-earlier.diff?h=perl-sdl&id=d4b6da86d33046cde0e84fa2cd6eaccff1667cab"; hash = "sha256-dQ2O4dO18diSAilSZrZj6II+mBuKKI3cx9fR1SJqUvo=";