Source: libaudio-scan-perl Version: 1.01-2 Severity: important Tags: ftbfs forky sid patch upstream Forwarded: https://rt.cpan.org/Public/Bug/Display.html?id=167903 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/libaudio-scan-perl_1.01-2/libaudio-scan-perl_1.01-2+b5_amd64-2025-08-20T07:17:49Z.build "/usr/bin/perl" "/usr/share/perl/5.42/ExtUtils/xsubpp" -typemap '/usr/share/perl/5.42/ExtUtils/typemap' Scan.xs > Scan.xsc cp lib/Audio/Scan.pm blib/lib/Audio/Scan.pm "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Scan.bs blib/arch/auto/Audio/Scan/Scan.bs 644 Unparseable XSUB parameter: 'char *' in Scan.xs, line 217 Unparseable XSUB parameter: 'char *' in Scan.xs, line 269 Unparseable XSUB parameter: 'char *' in Scan.xs, line 285 Unparseable XSUB parameter: 'char *' in Scan.xs, line 309 Unparseable XSUB parameter: 'char *' in Scan.xs, line 325 Unparseable XSUB parameter: 'char *' in Scan.xs, line 363 Please specify prototyping behavior for Scan.xs (see perlxs manual) make[1]: *** [Makefile:363: 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 ced0f4272dc8f66ae6efa2e84246c00b65409c12 Mon Sep 17 00:00:00 2001 From: Niko Tyni <[email protected]> Date: Sun, 24 Aug 2025 17:10:44 +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. --- Scan.xs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Scan.xs b/Scan.xs index 96e4f19..b6bfd55 100644 --- a/Scan.xs +++ b/Scan.xs @@ -214,7 +214,7 @@ _generate_hash(const char *file) MODULE = Audio::Scan PACKAGE = Audio::Scan HV * -_scan( char *, char *suffix, PerlIO *infile, SV *path, int filter, int md5_size, int md5_offset ) +_scan( class, char *suffix, PerlIO *infile, SV *path, int filter, int md5_size, int md5_offset ) CODE: { taghandler *hdl; @@ -266,7 +266,7 @@ OUTPUT: RETVAL int -_find_frame( char *, char *suffix, PerlIO *infile, SV *path, int offset ) +_find_frame( class, char *suffix, PerlIO *infile, SV *path, int offset ) CODE: { taghandler *hdl; @@ -282,7 +282,7 @@ OUTPUT: RETVAL HV * -_find_frame_return_info( char *, char *suffix, PerlIO *infile, SV *path, int offset ) +_find_frame_return_info( class, char *suffix, PerlIO *infile, SV *path, int offset ) CODE: { taghandler *hdl = _get_taghandler(suffix); @@ -306,7 +306,7 @@ OUTPUT: RETVAL int -is_supported(char *, SV *path) +is_supported(class, SV *path) CODE: { char *suffix = strrchr( SvPVX(path), '.' ); @@ -322,7 +322,7 @@ OUTPUT: RETVAL SV * -type_for(char *, SV *suffix) +type_for(class, SV *suffix) CODE: { taghandler *hdl = NULL; @@ -360,7 +360,7 @@ OUTPUT: RETVAL AV * -extensions_for(char *, SV *type) +extensions_for(class, SV *type) CODE: { int i, j; -- 2.49.0

