termux-packages
termux-packages copied to clipboard
[Bug]: termux-install-biber fails
Problem description
termux-install-biber fails with:
==> Found dependencies: XML::LibXML ! Installing the dependencies failed: Module 'XML::LibXML' is not installed ! Bailing out the installation for XML-LibXSLT-2.002001. ! Installing the dependencies failed: Module 'XML::LibXML' is not installed, Module 'XML::LibXSLT' is not installed, Module 'XML::LibXML::Simple' is not installed ! Bailing out the installation for biblatex-biber-2.18.
Trying to install XML::LibXML fails, too. cpanm --force XML::LibXML or: cpan XML::LibXML
[...]
a/data/com.termux/files/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DVERSION=\"2.0208\" -DXS_VERSION=\"2.0208\" -fPIC -Wno-unused-function "-I/data/data/com.termux/files/usr/lib/perl5/5.36.1/aarch64-android/CORE" -DHAVE_UTF8 perl-libxml-mm.c perl-libxml-mm.c:142:18: error: incompatible function pointer types passing 'void (void *, void *, xmlChar *)' (aka 'void (void *, void *, unsigned char *)') to parameter of type 'xmlHashScanner' (aka 'void (*)(void *, void *, const unsigned char *)') [-Wincompatible-function-pointer-types] xmlHashScan(r, PmmRegistryDumpHashScanner, NULL); ^~~~~~~~~~~~~~~~~~~~~~~~~~ /data/data/com.termux/files/usr/include/libxml2/libxml/hash.h:213:22: note: passing argument to parameter 'f' here xmlHashScanner f, ^ perl-libxml-mm.c:234:44: error: incompatible function pointer types passing 'void (void *, xmlChar *)' (aka 'void (void *, unsigned char *)') to parameter of type 'xmlHashDeallocator' (aka 'void (*)(void *, const unsigned char *)') [-Wincompatible-function-pointer-types] if( xmlHashRemoveEntry(PmmREGISTRY, name, PmmRegistryHashDeallocator) ) ^~~~~~~~~~~~~~~~~~~~~~~~~~ /data/data/com.termux/files/usr/include/libxml2/libxml/hash.h:160:47: note: passing argument to parameter 'f' here xmlHashDeallocator f); ^ perl-libxml-mm.c:301:38: error: incompatible function pointer types passing 'void *(void *, xmlChar *)' (aka 'void *(void *, unsigned char *)') to parameter of type 'xmlHashCopier' (aka 'void *(*)(void *, const unsigned char *)') [-Wincompatible-function-pointer-types]
[...]
What steps will reproduce the bug?
termux-install-biber
What is the expected behavior?
biber has been installed properly.
System information
termux-info:
Termux Variables:
TERMUX_API_VERSION=0.50.1
TERMUX_APK_RELEASE=F_DROID
TERMUX_APP_PACKAGE_MANAGER=apt
TERMUX_APP_PID=16479
TERMUX_IS_DEBUGGABLE_BUILD=0
TERMUX_MAIN_PACKAGE_FORMAT=debian
TERMUX_VERSION=0.118.0
Packages CPU architecture:
aarch64
Subscribed repositories:
# sources.list
deb https://packages-cf.termux.org/apt/termux-main/ stable main
Updatable packages:
All packages up to date
termux-tools version:
1.38.1
Android version:
10
Kernel build information:
Linux localhost 4.14.116 #1 SMP PREEMPT Tue Feb 28 14:49:53 CST 2023 aarch64 Android
Device manufacturer:
HUAWEI
Device model:
MAR-LX1B
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so
Resources:
https://github.com/termux/termux-packages/issues/15852 https://bugs.gentoo.org/show_bug.cgi?id=883711 https://github.com/termux/termux-packages/commit/5379e838d564facfd89d0e58ab59c35c67da495f
cpan
does not seem to respect *FLAGS
. Then we have to patch the source of XML::LibXML
. Fortunately termux-install-biber
already patches some other modules and so hopefully that can be possible. @Grimler91 What do you think?
FYI, personally as a quick hack on the user side I would use a CC
wrapper:
#!/bin/sh
exec clang -Wno-error=incompatible-function-pointer-types "$@"
By the way, I compiled XML::LibXML
by changing the warning level in makefile
to -Wno-everything
.
Then termux-install-biber works as expected.
HOWEVER
It installs biber 2.18, which is incompatible with the latest biblatex
!
ERROR - Error: Found biblatex control file version 3.10, expected version 3.9. This means that your biber (2.18) and biblatex (3.19) versions are incompatible. See compat matrix in biblatex or biber PDF documentation. INFO - ERRORS: 1
Need to be fixed ASAP! @Grimler91
P.S. TeXLive
is installed with the latest texlive-installer
, which was just updated several days ago. See #16494
I am thinking biber should be moved to termux-user-repository in any case since it is just an installation script. I started looking at that some time ago, will have a look at that again and add another patch for this issue while I am at it.
Thanks for reporting the issue!
I am thinking biber should be moved to termux-user-repository in any case since it is just an installation script. I started looking at that some time ago, will have a look at that again and add another patch for this issue while I am at it.
Thanks for reporting the issue!
I build biber 2.19 from source, it works fine. (biber 2.20 won't work......)
So, updated biber installer package has been added to the termux-user-repository. To install new version, do:
pkg install tur-repo
pkg install biber-installer
termux-install-biber