tectonic icon indicating copy to clipboard operation
tectonic copied to clipboard

biber (2.20) and biblatex (3.17) versions are incompatible

Open leanhdung1994 opened this issue 9 months ago • 10 comments

I have a simple tex file

\documentclass{article}
\usepackage{hyperref,biblatex}

\begin{document}

We have something.

\end{document} 

I try to compile this file with Tectonic on Windows 11 and get a compatibility error. Below is the output from cmd. Could you have a check on this issue?

Microsoft Windows [Version 10.0.26100.3476]
(c) Microsoft Corporation. All rights reserved.

C:\Users\Akira>dir /s /b /o:gn C:\Tectonic
C:\Tectonic\tectonic.exe
C:\Tectonic\test.tex

C:\Users\Akira>C:\Tectonic\tectonic -X compile --keep-intermediates "C:\Tectonic\test.tex"
note: "version 2" Tectonic command-line interface activated
Running TeX ...
Fontconfig error: Cannot load default config file: No such file: (null)
Running external tool biber ...
error: the external tool exited with an error code; its stdout was:

===============================================================================
INFO - This is Biber 2.20
INFO - Logfile is 'test.blg'
INFO - Reading 'test.bcf'
ERROR - Error: Found biblatex control file version 3.8, expected version 3.11.
This means that your biber (2.20) and biblatex (3.17) versions are incompatible.
See compat matrix in biblatex or biber PDF documentation.
INFO - ERRORS: 1
===============================================================================
error: its stderr was:

===============================================================================
===============================================================================
error: the external tool exited with error code 2

leanhdung1994 avatar Mar 14 '25 11:03 leanhdung1994

I encounter the same problem on Ubuntu 24.04.2 LTS:

akira@akira:~$ /home/akira/Tectonic/tectonic -X compile --keep-intermediates "/media/akira/Data1/For Ubuntu/tmp/test.tex"
note: "version 2" Tectonic command-line interface activated
Running TeX ...
Running external tool biber ...
error: the external tool exited with an error code; its stdout was:

===============================================================================
INFO - This is Biber 2.19
INFO - Logfile is 'test.blg'
INFO - Reading 'test.bcf'
ERROR - Error: Found biblatex control file version 3.8, expected version 3.10.
This means that your biber (2.19) and biblatex (3.17) versions are incompatible.
See compat matrix in biblatex or biber PDF documentation.
INFO - ERRORS: 1
===============================================================================
error: its stderr was:

===============================================================================
===============================================================================
error: the external tool exited with error code 2

leanhdung1994 avatar Mar 14 '25 12:03 leanhdung1994

I have the same issue on my Mac machine running Tectonic v0.15.0. I couldn't fix it (yet), but I upgraded my TeXLive to the 2025 version, and the issue seems to have turned into this:

note: "version 2" Tectonic command-line interface activated
Running TeX ...
Running external tool biber ...
Writing `my_file.log` (12.05 KiB)
error: No such file or directory (os error 2)

It seems that this issue has been fixed in #1149. Although the problem is over a year old, the latest release is even older than this fix. I tried to build Tectonic on my machine, but I couldn't because of Rust errors. Obtaining the new TexLive and a new release of Tectonic could alleviate this issue.

muratbolu avatar Mar 14 '25 19:03 muratbolu

Reading #1149 more carefully, I think my (new) issue is unrelated to that issue.

muratbolu avatar Mar 14 '25 19:03 muratbolu

I have the same issue on my Mac machine running Tectonic v0.15.0. I couldn't fix it (yet), but I upgraded my TeXLive to the 2025 version, and the issue seems to have turned into this:

note: "version 2" Tectonic command-line interface activated
Running TeX ...
Running external tool biber ...
Writing `my_file.log` (12.05 KiB)
error: No such file or directory (os error 2)

It seems that this issue has been fixed in #1149. Although the problem is over a year old, the latest release is even older than this fix. I tried to build Tectonic on my machine, but I couldn't because of Rust errors. Obtaining the new TexLive and a new release of Tectonic could alleviate this issue.

Tectonic is unrelated to TeXLive. I wonder how upgrade the latter solve problems of the former...

leanhdung1994 avatar Mar 14 '25 19:03 leanhdung1994

Tectonic is unrelated to TeXLive. I wonder how upgrade the latter solve problems of the former...

I have no idea what happened to my system and which of my tinkering efforts made me get a different error message.

The error This means that your biber (2.20) and biblatex (3.17) versions are incompatible. made me think that my TexLive packages were incompatible, which prompted me to upgrade. Since the error persisted after the upgrade, I am getting by with pdflatex at the moment.

muratbolu avatar Mar 14 '25 19:03 muratbolu

This is a known issue, related to e.g. #893 and #1010

there is a draft PR which should address it (#1166) but it seems stale since a few months

HealthyPear avatar Mar 20 '25 09:03 HealthyPear

I'm also getting this error, even though the main.bcf file shows the correct versions

Image

JayanAXHF avatar Mar 24 '25 10:03 JayanAXHF

Stemming from #1136, you can use

tectonic -Z search-path=$(dirname $(kpsewhich biblatex.sty)) main.tex

if you are willing to use the V1 interface.

JayanAXHF avatar Mar 24 '25 16:03 JayanAXHF

This work for me:

#!/usr/bin/env bash
if [ "$1" = "-X" ] && [ "$2" = "build" ]; then
    shift 2
    args=("$@")
    use_docker=false
    filtered_args=()

    for arg in "${args[@]}"; do
        if [ "$arg" = "biber" ]; then
            use_docker=true
        else
            filtered_args+=("$arg")
        fi
    done

    if [ "$use_docker" = true ]; then
        workdir="$PWD"
        dir="$PWD"
        for _ in 1 2 3; do
            if [ -f "$dir/Tectonic.toml" ]; then
                workdir="$dir"
                break
            fi
            dir="$(dirname "$dir")"
        done

        if [ ! -f "$workdir/Tectonic.toml" ]; then
            echo "❌ Tectonic.toml not found in the last 3 levels." >&2
            exit 1
        fi

        podman run --rm -it \
            -v "$HOME/.cache/tectonic:/root/.cache" \
            -v "$workdir:/data" \
            -w /data \
            dxjoke/tectonic-docker \
            tectonic -X build "${filtered_args[@]}"
    else
        /bin/tectonic -X build "${args[@]}"
    fi
else
    /bin/tectonic "$@"
fi

CRAG666 avatar Jul 15 '25 18:07 CRAG666

usage: tectonic -X build biber --keep-intermediates --keep-logs

CRAG666 avatar Jul 15 '25 18:07 CRAG666