Bug 2048536 - Upgrade biblatex to 3.17 in Rawhide and depend on bcfversion = 3.8 to ensure compatibility with biber-2.17
Summary: Upgrade biblatex to 3.17 in Rawhide and depend on bcfversion = 3.8 to ensure ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: texlive
Version: 36
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Tom "spot" Callaway
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-01-31 13:10 UTC by Petr Pisar
Modified: 2022-03-26 15:25 UTC (History)
4 users (show)

Fixed In Version: texlive-2021-54.fc36 texlive-2021-55.fc36
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-03-26 15:25:36 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Petr Pisar 2022-01-31 13:10:27 UTC
I've just updated biber from 2.16 to 2.17 in Fedora 36 and 35. All tests passed an now I got a report that the new biber is incompatible with current biblatex:

INFO - This is Biber 2.17
[...]
ERROR - Error: Found biblatex control file version 3.7, expected version 3.8.
This means that your biber (2.17) and biblatex (3.16) versions are incompatible.
See compat matrix in biblatex or biber PDF documentation.

It seems that biber insist on a specific version of a biblatex control file (BCF). From biber sources:

  # Version of biblatex control file which this release expects. Matched against version
  # passed in control file. Used when checking the .bcf
  our $BCF_VERSION = '3.8';
  # Format version of the .bbl. Used when writing the .bbl
  our $BBL_VERSION = '3.2';
  [...]
  my $buf = slurp_switchr($ctrl_file_path)->$*;
  [...]
  my $bcfxml = XML::LibXML::Simple::XMLin($buf,
  [...]
  my $controlversion = $bcfxml->{version};
  my $bltxversion = $bcfxml->{bltxversion};
  Biber::Config->setblxoption(undef, 'controlversion', $controlversion);
  unless ($controlversion eq $BCF_VERSION) {
    biber_error("Error: Found biblatex control file version $controlversion, expected version $BCF_VERSION.\nThis means that your biber ($Biber::Config::VERSION) and biblatex ($bltxversion) versions are incompatible.\nSee compat matrix in biblatex or biber PDF documentation.");
  }

In this case biber-2.17 changed the required BCF version from 3.7 to 3.8 and that caused the error messages.

Biber documentation only provides a table of biber-biblatex versions that work together, ignoring the BCF version as a real cause:

 \biber\ version & \biblatex\ version\\
 2.17 & 3.17\\
 2.16 & 3.16\\
 2.15 & 3.15\\
 2.14 & 3.14\\
 [...]

I searched textlive-biblatex code, and there is only /usr/share/texlive/texmf-dist/tex/latex/biblatex/biblatex.sty which defines version of the produced BCF XML documents:

% This is not updated by build script as the control file version
% does not necessarily change with the package version.
% This is used when writing the .bcf
\def\blx@bcfversion{3.7}
[...]
\edef\blx@ver@bcf{%
  \detokenize{<bcf:controlfile version="}\blx@bcfversion
  \detokenize{" bltxversion="}\abx@version
  \detokenize{" xmlns:bcf="https://sourceforge.net/projects/biblatex">}}

To prevent from similar bugs in the future, I'd like both textlive-biblatex and biber to agree on a versioned RPM symbol and use it as a common RPM dependency to assure compatibility.

textlive-biblatex now "Requires: biber >= 2.14". This is not future-proof. I propose biber-2.16 to "Provide: bcfversion = 3.7" and textlive-biblatex to "Requires: bcfversion = 3.7". This will work until one of them diverges and the dependency new dependency will catch it.

Alternatively, textlive-biblatex would "Provide biblatex = 3.16" and biber would "Conflicts: biblatex < 3.16" and "biblatex > 3.16".

Comment 1 Petr Pisar 2022-01-31 13:22:15 UTC
And yet another thing. I will need to revert the upgrade of biber because current textlive-biblatex does not support bcf 3.8. That means raising an epoch. And that means that your "Requires: biber >= 2.14" dependency will become meaningless.

Comment 2 Petr Pisar 2022-01-31 13:26:54 UTC
(In reply to Petr Pisar from comment #1)
> And yet another thing. I will need to revert the upgrade of biber because
> current textlive-biblatex does not support bcf 3.8. That means raising an
> epoch. And that means that your "Requires: biber >= 2.14" dependency will
> become meaningless.

Or you should upgrade biblatex to 3.17 in Rawhide <https://github.com/plk/biblatex/tags>.

Comment 3 Petr Pisar 2022-01-31 14:15:37 UTC
I pushed biber-2.17-2.fc36 and biber-2.16-5.fc35 which provide bcfversion symbol.
I will keep biber-2.17 in Rawhide with the prospect that you upgrade biblatex to 3.17 soon.

Comment 4 Tom "spot" Callaway 2022-01-31 14:33:34 UTC
Petr, thanks for the info. Normally, the biber maintainer and I closely coordinate updates here so that this is avoided, not sure if you're the new maintainer or what. That said, I think the bcfversion symbol is fine. I'm a little concerned that the 3.17 biblatex is not in CTAN yet, but I'll manually update rawhide and hope that nothing breaks in texlive (famous last words).

Comment 6 Petr Pisar 2022-01-31 16:05:55 UTC
Great. A small nitpick: In Rawhide there is new biber-2.17 with bcfversion = 3.8. So you should depend on 3.8, not 3.7 in Rawhide. (I probably made the instructions not enough obvious.).

And yes, I'm the new maintainer.

Comment 7 Ben Cotton 2022-02-08 20:23:59 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle.
Changing version to 36.

Comment 8 Ankur Sinha (FranciscoD) 2022-03-14 11:56:05 UTC
Hi folks,

I just updated two machines to F36 to test the upgrade path etc. I'm seeing the biber/biblatex issue there too now:

ERROR - Error: Found biblatex control file version 3.7, expected version 3.8.

$ rpm -q biber texlive-bibtex texlive-biblatex
biber-2.17-2.fc36.noarch
texlive-bibtex-20210325-47.fc36.x86_64
texlive-biblatex-svn57272-48.fc36.noarch


I wonder if the biblatex update in the commit mentioned in comment 5 also needs to be pushed to F36?

Thanks for all your work on maintaining texlive and associated packages in Fedora, by the way. :)

Cheers,

Comment 9 Ankur Sinha (FranciscoD) 2022-03-14 15:39:04 UTC
Workaround in the meantime for anyone else that may have jumped to F36 and runs into this is to downgrade biber back to 2.16:

sudo dnf install https://kojipkgs.fedoraproject.org//packages/biber/2.16/5.fc36/noarch/biber-2.16-5.fc36.noarch.rpm
sudo dnf versionlock biber

Comment 10 Petr Pisar 2022-03-14 17:02:26 UTC
Yes. The fix was completed in texlive-9:2021-52 and spot tried to build it <https://koji.fedoraproject.org/koji/packageinfo?packageID=5402> twice, but the build failed due a flaw in the Koji build system. Twice.

I will try it again <https://koji.fedoraproject.org/koji/taskinfo?taskID=84172553>. If it succeeds, we will repeat it in F36.

Comment 11 Tom "spot" Callaway 2022-03-14 18:31:36 UTC
Thanks Petr.

Comment 12 Petr Pisar 2022-03-15 10:13:57 UTC
The build passed. Building it for F36 now to fix the dependencies. However, using biblatex does work for me in F37 (bug #2064201).

Comment 13 Fedora Update System 2022-03-15 15:09:49 UTC
FEDORA-2022-052be0dda9 has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-052be0dda9

Comment 14 Fedora Update System 2022-03-16 14:56:32 UTC
FEDORA-2022-052be0dda9 has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2022-052be0dda9`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-052be0dda9

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 15 Fedora Update System 2022-03-19 19:27:24 UTC
FEDORA-2022-b8ed0655d1 has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2022-b8ed0655d1`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-b8ed0655d1

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 16 Fedora Update System 2022-03-26 15:25:36 UTC
FEDORA-2022-b8ed0655d1 has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.