Source: libmediascan
Version: 0~20220401.git.34fc2d-7
Severity: important
Tags: ftbfs forky sid patch upstream
User: [email protected]
Usertags: perl-5.42-transition

This package fails to build with Perl 5.42 (currently in experimental.)

  
https://perl.debian.net/rebuild-logs/perl-5.42/libmediascan_0~20220401.git.34fc2d-7/libmediascan_0~20220401.git.34fc2d-7+b1_amd64-2025-08-22T05:57:37Z.build

   dh_auto_build 
--sourcedir=/build/libmediascan-sQcix3/libmediascan-0~20220401.git.34fc2d/bindings/perl
        cd bindings/perl && make -j2
   make[2]: Entering directory 
'/build/libmediascan-sQcix3/libmediascan-0~20220401.git.34fc2d/bindings/perl'
   Running Mkbootstrap for Scan ()
   chmod 644 "Scan.bs"
   "/usr/bin/perl" "/usr/share/perl/5.42/ExtUtils/xsubpp"  -typemap 
'/usr/share/perl/5.42/ExtUtils/typemap' -typemap 
'/build/libmediascan-sQcix3/libmediascan-0~20220401.git.34fc2d/bindings/perl/typemap'
  Scan.xs > Scan.xsc
   cp lib/Media/Scan.pm blib/lib/Media/Scan.pm
   cp lib/Media/Scan/Result.pm blib/lib/Media/Scan/Result.pm
   cp lib/Media/Scan/Error.pm blib/lib/Media/Scan/Error.pm
   cp lib/Media/Scan/Audio.pm blib/lib/Media/Scan/Audio.pm
   cp lib/Media/Scan/Image.pm blib/lib/Media/Scan/Image.pm
   cp lib/Media/Scan/Video.pm blib/lib/Media/Scan/Video.pm
   cp lib/Media/Scan/Progress.pm blib/lib/Media/Scan/Progress.pm
   "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Scan.bs 
blib/arch/auto/Media/Scan/Scan.bs 644
   Unparseable XSUB parameter: 'MediaScan *' in Scan.xs, line 273
   make[2]: *** [Makefile:380: Scan.c] Error 1

This is because of changes in ExtUtils-ParseXS, which
now properly detects invalid XS syntax in this module. See
https://rt.cpan.org/Public/Bug/Display.html?id=162293 for a similar issue
in Crypt-SMIME. The attached patch adopts the technique suggested there
by Dave Mitchell: give the ignored first parameter a name but no type.
This works for on both Perl 5.40 and 5.42.

If you want to test changes against Perl 5.42 in experimental and run
into uninstallability problems, there is a test repository of rebuilt
Debian sid packages for amd64 available at <https://perl.debian.net/>.

Thanks for your work on Debian,
-- 
Niko Tyni   [email protected]
>From 76d6b57e4025ebf5f331378ccf3c8cb5bddb83e0 Mon Sep 17 00:00:00 2001
From: Niko Tyni <[email protected]>
Date: Sun, 24 Aug 2025 17:26:13 +0100
Subject: [PATCH] Fix invalid XS syntax that breaks the build with Perl 5.42

Older versions of ExtUtils::ParseXS used to silently ignore parameter
declarations that it could not parse. Newer ones (starting around Perl
5.42) issue a syntax error ("Unparseable XSUB parameter") instead.

See https://rt.cpan.org/Public/Bug/Display.html?id=162293 for a similar
issue in another module (Crypt-SMIME), where Dave Mitchell recommends
giving the ignored parameter a name but no type.
---
 bindings/perl/Scan.xs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bindings/perl/Scan.xs b/bindings/perl/Scan.xs
index e778e98..c1376a5 100644
--- a/bindings/perl/Scan.xs
+++ b/bindings/perl/Scan.xs
@@ -270,7 +270,7 @@ CODE:
 }
 
 void
-set_log_level(MediaScan *, int level)
+set_log_level(class, int level)
 CODE:
 {
   ms_set_log_level(level);
-- 
2.49.0

Reply via email to