Closed thomwiggers closed 4 months ago
Thanks for the report @thomwiggers.
@Homebrew/core We've seen this issue before: https://github.com/Homebrew/homebrew-core/issues/121738. Any ideas on how we can deal with this? Do we need to start versioning?
If versioning means adding a separate biber@2.19
that works for the latest texlive
(while keeping the unversioned biber
): users can still do brew install biber
without knowing its existence.
I propose that we have two versioned formulae -- one for the latest stable biber
, and one for latest biber
that's compatible with our texlive
. Then we make biber
an alias of the latter. This is similar to how we handle python
and should work for the intuitive brew install biber
use case. I would like to note that not all of the criteria for versioned formulae are met (e.g., no release branch for minor versions) so we'd need to consider this as an exception.
Alternatively we can downgrade biber
to the latest version that works with texlive
. In that case we avoid updating it until texlive
is updated.
Alternatively we can downgrade biber to the latest version that works with texlive. In that case we avoid updating it until texlive is updated.
At the very least we should probably add a test for this specific case. Maybe we can patch texlive to work with a newer version?
I wanted to mention that creating versioned biber
formulae may be complicated by the need for Linux bottles. The biber
formula includes a workaround for a linking issue on Linux:
However, this workaround doesn’t seem to work when biber
is keg-only (which will probably be the case if biber
is versioned). This was an issue with https://github.com/Homebrew/homebrew-core/pull/123295 (unsuccessful attempt to add a biber@2.17
formula) and will probably be an issue for a biber@2.19
formula (link is to my tap).
TeXLive can also be set up to include biber directly; then this package could be deleted (or made so that it is not linked if texlive is present or something like that). Then all headaches are avoided in one stroke.
TeXLive can also be set up to include biber directly
This is what I came in here thinking, too.
I’m pretty sure that TeX Live can include biber in the sense that some TeX Live distributions (like MacTeX) bundle biber with TeX Live, but, as far as I’m aware, the TeX Live installer doesn’t include a setting to install biber. I believe what projects like MacTeX do is build biber separately and then just include the binaries (this is described at https://tug.org/texlive/build.html#biber).
I’d be happy to attempt a pull request to add biber 2.19 to the texlive
formula, but here’s what that would entail (from https://github.com/Homebrew/homebrew-core/issues/121738#issuecomment-1408821500):
…the
biber
formula includes 122 resources, all Perl packages. Thetexlive
formula currently depends on 45 Perl packages; addingbiber
totexlive
would maketexlive
depend on 139 Perl packages (biber
andtexlive
have 28 Perl resources in common), which seems like a pretty steep increase. In addition, ifbiber
then becomes keg-only, there would effectively be two independent, resource-heavy versions ofbiber
in homebrew-core.
(The last part about biber
being keg-only becomes moot if the biber
formula is deleted.)
texlive
is already a gigantic formula and regularly fails dependent testing because the runners run out of storage space. I'd rather split it into separate pieces (where sensible) instead of making it bigger.
I'd prefer an update to biber
's test
block that makes sure it works with texlive
.
I'd rather split it into separate pieces (where sensible) instead of making it bigger.
Given the above: yes, I agree.
I'd prefer an update to
biber
'stest
block that makes sure it works withtexlive
.
This seems like a good idea.
@carlocab I’m wondering what is the best way to add a test in this case.
Adding a test to the current biber
formula won’t work, because biber 2.20 is incompatible with what’s installed with the texlive
formula (so the test is sure to fail).
The most straightforward possibility is probably to rollback the biber
formula to 2.19, but I believe this would require adding version_scheme 1
in the biber
formula, like this—
class Biber < Formula
desc "Backend processor for BibLaTeX"
homepage "https://sourceforge.net/projects/biblatex-biber/"
url "https://github.com/plk/biber/archive/refs/tags/v2.19.tar.gz"
sha256 "1c1266bc8adb1637c4c59e23c47d919c5a38da4e53544a3c22c21de4a68fc9fe"
license "Artistic-2.0"
version_scheme 1
—and I’m not sure using version_scheme
when the version scheme hasn’t really changed (or, for that matter, rolling back biber
) would be acceptable for homebrew-core.
Another possibility is to add a biber@2.19
formula that includes a texlive
test (and then delete biber@2.19
when TeX Live 2025 is released). However, I’m nearly certain that a biber@2.19
formula could not be keg-only because of an issue with bottling keg-only biber
on Linux.
Another possibility is to wait for TeX Live 2025 and add a test then, although that would mean having an incompatible biber
in homebrew-core until next March.
Adding a test to the current biber formula won’t work, because biber 2.20 is incompatible with what’s installed with the texlive formula (so the test is sure to fail).
That sounds good, and from there we can work towards a solution
I feel like the biber formula should roll back to 2.19, then patch the test suite to track texlive compatibility.
Is there a workaround to use biber + texlive installed with homebrew in the meantime?
@brabalan If you’re on a Mac, you can install biber v2.19 from here:
brew install nwhetsell/biber/biber@2.19
Note: This is my own tap, not an official Homebrew tap.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This will be fixed by https://github.com/Homebrew/homebrew-core/pull/173159. I'm monitoring the PR to ensure we get it merged ASAP.
brew gist-logs <formula>
link ORbrew config
ANDbrew doctor
outputVerification
brew doctor
output saysYour system is ready to brew.
and am still able to reproduce my issue.brew update
and am still able to reproduce my issue.brew doctor
and that did not fix my problem.What were you trying to do (and why)?
Biber is a LaTeX bibliography tool, and heavily relies on compatibility with the biblatex LaTeX package. biblatex is packaged as part of TeXlive and thus only updated once a year. The update to Biber 2.20 (#166841) that was merged recently is incompatible with biblatex that is part of TeXlive 2024, thus made biber inoperable.
This issue was previously reported in #121738 and #95856 but those issues are stale and were closed.
What happened (include all command output)?
What did you expect to happen?
My bibliography to compile
Step-by-step reproduction instructions (by running
brew
commands)