-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Biblatex fails due to version mismatch #893
Comments
My guess is that the best fix will be to upgrade to the soon-to-be-released next version of Tectonic that will bump us up to TeXLive 2021.3! I will try to get it done today. |
Hm I tried now with version 0.9.0 of tectonic and the newer bundle, and it seems that suffers from a different but essentially the same issue:
biblatex is now slightly newer, but the error still happens. Biber I guess is from my MikTex install, which should be up-to-date. |
I'm running into the same issue as well. A workaround to this problem is to downgrade biber to version 2.16. |
OK, well, the upgrade to TeXLive 2022.0 should happen much faster since the diffs are comparatively small and lots of good infrastructure is now in place, and maybe that will make biber 2.17 happy ... |
I'm still experiencing this issue now, with |
@doronbehar My work around is to build the current tldr:
|
Downgrading biber to 2.16 worked for me (with tectonic 0.9.0) |
As of currently, tectonic |
For people who don't need to use TeX Live alongside tectonic, dropping the first and installing biber separately is easier than juggling the the two installs in the same system. Under macOS brew's biber version is currently brew install tectonic
brew install biber To get a working tectonic/biblatex setup. |
Previously tlextras-2021.3r1.tar as bundle fixed it for me, so I wonder is there a newer bundle that we can try to work around this by any chance? (turns out it is incredibly difficult to find bundles) Edit oops |
@MTRNord Do you mean that there is an even newer version of biber that requires a newer version of the biblatex package? I don't anticipate upgrading Tectonic's built-in biblatex until TeXLive 2022.1 comes out, but if there's an incompatibility it will probably be worth taking extra steps. (It would be nice if biber/biblatex didn't keep breaking compatibility, though!) I'm sorry that the bundle infrastructure has not been well-documented. For what it's worth, with the current setup, this file should start accumulating a helpful list of bundle URLs going forward ... |
@pkgw I confirm: there's an even newer version of biber: |
Thanks for confirming @mnrvwl . I'm not familiar with biber/biblatex (as is probably quite clear by now). Does anyone know what the maintainers of those tools generally recommend that people do in order to keep things compatible? Unless I'm missing something, the latest release of TeXLive is 2022.0 has the older biblatex that will be incompatible with this new release. It seems like that would be a problem for a potentially large number of users. Do they tell people not to upgrade |
@pkgw You make great questions! TeX Live 2022 has Both are developed together, so there shouldn't be issues updating before the next release comes out. This makes me very inclined to the idea of Below are some ideas better suited for Discussions. Packages and updatesI personally do update TeX Live on a weekly basis, I work with a fixed set of ≈100 packages. I also know some people who just stick to $LASTYEAR or different versions that publishing $PLATFORM mandates, for reproducibility. If you live on the edge like me, you'll notice a couple things. In the first weeks after a release, one sees that around ≈ I amusingly call this As of ScenariosAs of today, few are presented to users:
To deal with the situation, one can either:
A future possibility comes to mind:
SummaryThe problem mostly lies with how we distribute Whenever the installed |
@pkg Additional info can be found under the documentation search for the "compatibility matrix" table.
The suggestion to have the version numbers be normalised in sync was also made here: plk/biber#427. |
Thanks for the detailed rundown! I guess my initial feeling is that we should at least make sure that people have a straightforward recipe to set themselves up with an updated |
Some broader commentary: the issue here is a subset of the quip that "all software evolves to eventually include a package manager". While I would like Tectonic to avoid external dependencies as much as possible, there's a limit to how far you can take that — people have real-life workflows that depend on I'd really like to make it so that if people are going to use these tools, we have a nice clean way for them to get a setup that "just works" with tested version combinations that work in any environment. But, I really don't want to implement a half-assed package manager in Tectonic! I've been interested in software packaging for decades at this point and one thing that I've learned is that it's a lot harder than some people think it is. For instance, to package In that context, I think the way to get something reliable would be to build on an existing package manager, perhaps through some kind of specialized "Tectonic Environment" tool/product. Conda comes to mind, since it's (relatively) cross-platform, doesn't require admin permissions, and can demonstrably handle deep Perl and Python stacks. (I'm also a core member of the conda-forge project and maintain many many packages in that system.) There are a lot of things about it that I wish were better, but it meets a lot of the criteria I'd be looking for. A wrinkle is that I foresee that Tectonic will need to integrate well with at least one other package management system: the NPM/Yarn ecosystem. In my work on tt-weave, it became clear to me that to deliver nice HTML output you need to leverage the whole web development ecosystem, which means using NPM or Yarn to install a deep dependency tree and create an output bundle. We're not going to be providing (I have had the devious idea that maybe we can (ab)use the NPM system as a TeX package manager to fulfill the longstanding need for a way for people to update packages between bundle releases. When HTML output is better supported we will need to distribute code with synchronized TeX, HTML, CSS, and JS content, and it feels easier to add TeX to an NPM bundle than to integrate tlmgr into NPM/Yarn web bundler frameworks.) |
Hello there Folks, appreciate all the proposed solutions, but I coudn't make it work complete for my scenario, seems like I have to choose in between using tectonic or other compilation methods. it seems that when I compile with tectonic, it uses version I manually overritten the biber executable to the version |
@Rafael-Conde This is not at all a scalable solution, but previous source code releases of biblatex seem to be here on GitHub. One could in principle unpack them and copy their files into your document source tree to try to update the TeX side of things. But besides being a pain, it feels more tractable to figure out a way to get VS Code to run the version of biblatex that you want. Unfortunately I don't know anything about how that setup works :-/ |
I think that the mismatching of biber/biblatex version is still an issue. The simplest solution is to downgrade to a compatible biber version. Here is how can be done if you use
If you found this solution useful, please leave a 👍 so that other people can easily find it. |
Can I bump this, having the same issue with newer version number.
I'd suggest that my other issue might address this issue? I can work around this by downgrading my system biber to 2.17, but this is far from ideal... |
I just spent a few hours debugging this error, so I thought I'd post an issue, and since this is already here, I'll add my thoughts and suggestions. First, the error I started with:
For me the first hurdle was figuring out what the problem was at all, and why compiling my doc with tectonic failed, while compiling it with latexmk (I use the TinyTeX distribution) worked fine. It finally dawned on me that the problem is the version mismatch between Once I figured this out, I had to find the correct version of biber to use. This was not easy! The compatibility matrix indicates compatibility between minor versions of biber/biblatex (at least for recent releases), but as can be seen in the message, the "biblatex control file version" does not match the "biblatex version", so I had to do a bit of binary search downloading old versions of biber to see which one worked. Finally, I found that for the current release of tectonic 0.12.0, we need biber 2.17. Based on the above, I have a few ideas, at least until (if) Suggestion 1: at the very least, please document which version of biber is needed for each version of tectonic. I could not find this in the documentation. It would be nice to find this in the release notes and/or somewhere in the book. Suggestion 2: even better - it would be nice if tectonic would catch the above error and interpret it for the user, describing what the problem is and including a link to the correct biber version to use. Suggestion 3: now that I installed biber 2.17 and it's in my default path, my TinyTeX builds fail :) It would be nice to be able to tell tectonic the path to the Thanks for all your work on Tectonic! |
Quoted from #988:
My suggestion: We already have someone who ensures |
With the usage of Given that your system package manager provided
It will successfully compile. |
Thanks for the links, I am aware of the workarounds, and fortunately, I had success with the biber downgrade, as opposed to @viperML's |
My problem is that the nixpkgs wrapper would insert a different biber in PATH before mine. I believe this was already fixed on june. |
Correct, it was fixed in NixOS/nixpkgs@0889989 . |
@fperez Side note, here's a solution that doesn't rely on wildcard expansion: biblatex=$(kpsewhich biblatex.sty) biblatex=${biblatex%/*}
tectonic -Z search-path="$biblatex" main.tex |
Could you explain @Neved4 how does it work? Other users may prefer a more compact command: tectonic -Z search-path="${$(kpsewhich biblatex.sty)%/*}" main.tex |
@doronbehar First, we extract the location of
Second, we get it's home directory —think
Lastly, we pass it to Note that while Footnotes |
error: the external tool exited with an error code; its stdout was:
===============================================================================
INFO - This is Biber 2.19
INFO - Logfile is 'xxx.blg'
INFO - Reading 'xxx.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 Still broken. I don't have anything else installed besides tectonic. |
That error reads like you've definitely got biber installed on your machine mate... Run |
Here is the output of fish: Unknown command: biber Output of Tectonic 0.13.1 |
Huh... That is weird... Well it's definitely picking biber up from somewhere |
Please discuss this somewhere else. I want to stay fully subscribed to this issue in case someone offers a real solution, I don't want to be subscribed to a support thread. |
For your reference, this issue exists with a potential, albeit unimplemented, solution #1010 |
Does anyone use homebrew on mac? I would like to downgrade biber to 2.17 but a formula doesn't seem to exist for that version. I tried this but it fails with
|
Had the same issue, it's fixable by simply running Lucklily I was able to fix the formula by updating two libraries to their latest version, and I uploaded the fix on my hombrew tap. brew install dgfl-gh/taps/[email protected] It should then compile biber, which takes about 1m30s on my machine, and you should be good to go :) |
Worked like a charm, thank you! |
All of the solutions in the comments seem to be based on macos, but i am running fedora linux. Can someone help to fix it in (fedora) linux? |
Not a Fedora user, but in general for every OS, I'd web search something like: " how to downgrade a package". For Fedora I'd try https://unix.stackexchange.com/questions/266888/can-i-force-dnf-to-install-an-old-version-of-a-package . |
AFAICT is only the latest version available in the fedora mirrors:
I tried to uninstall the current biber version (and with it all other texlive packages)
and then I downloaded the biber 2.17 package(s, I tried many...) from kogi and installed it
But it didn't work, because the biber version was not compatible with the current Perl version,. I then tried to manually install the correct perl version, like with biber, but that also threw an incompatibility error. |
You use openssl@1, which is now unmaintained and uninstallable with homebrew. To install, just use
Hope it helps :) |
This fixed my issue. It undermines the reproducibility aspect of tectonic, but I can live with that. Hope it will be fixed soon, e.g. by including biber in the downloaded dependencies. |
@mobergmann I'm using Arch and solved this by installing Even better, you could just install the Tectonic package, it wraps this dependency. |
I now that the nix package works. I have NixOS installed on my main machine and no problems with tectonic there. But I don't feel like installing an extra package manager to get tectonic working. I would much prefer, e.g. the solutions proposed in #1010: biber being also included in the tectonic internal package manager. Then we wouldn't have a version incompatibility. |
tectonic fails to build with the 2020.0r0 bundle and biblatex:
any ideas how I can fix that?
The text was updated successfully, but these errors were encountered: