[Debian-med-packaging] Bug#1112626: libfreecontact-perl: FTBFS with Perl 5.42: Could not find a typemap for C type 'ali_t&'
Niko Tyni
ntyni at debian.org
Sun Aug 31 13:26:21 BST 2025
Source: libfreecontact-perl
Version: 0.08-10
Severity: important
Tags: ftbfs forky sid patch upstream
User: debian-perl at lists.debian.org
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/libfreecontact-perl_0.08-10/libfreecontact-perl_0.08-10+b1_amd64-2025-08-20T07:27:17Z.build
dh_auto_build -a
make -j2
make[1]: Entering directory '/build/libfreecontact-perl-WzTMqo/libfreecontact-perl-0.08'
Running Mkbootstrap for FreeContact ()
chmod 644 "FreeContact.bs"
"/usr/bin/perl" "/usr/share/perl/5.42/ExtUtils/xsubpp" -C++ -hiertype -noprototypes -typemap '/usr/share/perl/5.42/ExtUtils/typemap' -typemap '/build/libfreecontact-perl-WzTMqo/libfreecontact-perl-0.08/perlobject.map' -typemap '/build/libfreecontact-perl-WzTMqo/libfreecontact-perl-0.08/typemap' -typemap '/build/libfreecontact-perl-WzTMqo/libfreecontact-perl-0.08/typemap' FreeContact.xs > FreeContact.xsc
cp lib/FreeContact.pm blib/lib/FreeContact.pm
AutoSplitting blib/lib/FreeContact.pm (blib/lib/auto/FreeContact)
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- FreeContact.bs blib/arch/auto/FreeContact/FreeContact.bs 644
Could not find a typemap for C type 'ali_t&'.
The following C types are mapped by the current typemap:
'AV *', 'Boolean', 'CV *', 'FILE *', 'FileHandle', 'HV *', 'I16', 'I32', 'I8', 'IV', 'InOutStream', 'InputStream', 'NV', 'OutputStream', 'PerlIO *', 'Result', 'STRLEN', 'SV *', 'SVREF', 'SysRet', 'SysRetLong', 'Time_t *', 'U16', 'U32', 'U8', 'UV', 'ali_t', 'bool', 'bool_t', 'caddr_t', 'char', 'char *', 'char **', 'const char *', 'cont_res_t', 'double', 'double *', 'float', 'freq_vec_t', 'freq_vec_t *', 'int', 'long', 'predictor *', 'short', 'size_t', 'ssize_t', 'time_res_t *', 'time_t', 'unsigned', 'unsigned char', 'unsigned char *', 'unsigned int', 'unsigned long', 'unsigned long *', 'unsigned short', 'void *', 'wchar_t', 'wchar_t *'
in /usr/bin/perl -MExtUtils::XSpp::Cmd -e xspp -- --typemap=typemap.xsp FreeContact.xsp, line 71
[...]
make[1]: *** [Makefile:367: FreeContact.c] Error 1
make[1]: Leaving directory '/build/libfreecontact-perl-WzTMqo/libfreecontact-perl-0.08'
dh_auto_build: error: make -j2 returned exit code 2
There have been significant changes in the ExtUtils::ParseXS module
since Perl 5.40, making it more robust against invalid syntax and
the like.
It looks like this module has been relying on ExtUtils::ParseXS ignoring
invalid XS syntax with the C++ references. While there's apparently some
support for those in ExtUtils::XSpp, the problematic parts are passed
straight through to plain XS with the %{ .. %} markers.
A fix/workaround is to just remove the ampersands from the XS code.
That's how ExtUtils::ParseXS has been parsing them until now anyway.
The attached patch does this. I verified that the generated C code stays
identical on Perl 5.40 with this, and has no significant differences on
5.42 either.
I'm not fully certain this is correct, but at least it's not any worse
than it has been until now. And the FreeContact module seems to be dead
upstream, at least its home page and FTP site are gone.
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 ntyni at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Remove-C-reference-markers-from-XS-code.patch
Type: text/x-diff
Size: 2429 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-med-packaging/attachments/20250831/6ad0a9f8/attachment.patch>
More information about the Debian-med-packaging
mailing list