From time to time a routine upgrade on Arch Linux ends up causing me a bit of
grief. Fortunately, I do like a bit of chaos from time to time and the
opportunity to solve problems is why I got into software engineering to begin
with.
This particular issue was a new one for me, running my usual yay -Syu
upgrade
ran smoothly through the official packages, but borked when upgrading the
packages from the Arch User Repository (AUR), specifically the
ttf-google-fonts-opinionated-git
package.
I tend to not run any packages with the -git
suffix, because I do prefer to
run official releases if possible. Honestly, I’m not even sure why I had this
package installed other than it was something I had added while trying to figure
out how to get emoji support across all of my applications.
It’s the little things, folks.
So this package, it was stubborn. I couldn’t upgrade it, even with a clean
build, which usually solves a lot of my upgrade issues. The errors included
referenced some other packages:
error: failed to commit transaction (conflicting files)
ttf-sil-padauk: /usr/share/fonts/TTF/Padauk-Bold.ttf exists in filesystem (owned by ttf-google-fonts-opinionated-git)
ttf-sil-padauk: /usr/share/fonts/TTF/Padauk-Regular.ttf exists in filesystem (owned by ttf-google-fonts-opinionated-git)
Errors occurred, no packages were upgraded.
I tracked down some packages that seemed related to the “Padauk” font and tried
to install / remove / re-install that to no avail.
The real kicker was that I couldn’t even remove the
ttf-google-fonts-opinionated-git
without getting a whole new error related to
yet another package:
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing ttf-google-fonts-opinionated-git breaks dependency 'adobe-source-code-pro-fonts' required by gsettings-desktop-schemas
Ugh. gsettings-
anything seemed important, so I didn’t want to try removing
that to see if that would resolve things.
Fortunately, that particular error referenced a package that I didn’t have
installed, adobe-source-code-pro-fonts
, so I thought, “let’s try installing
that and see what happens!”
And install it, I did, which prompted me to remove
ttf-google-fonts-opinionated-git
. Here’s to hoping:
% yay -S adobe-source-code-pro-fonts
resolving dependencies...
looking for conflicting packages...
:: adobe-source-code-pro-fonts and ttf-google-fonts-opinionated-git are in conflict. Remove ttf-google-fonts-opinionated-git? [y/N]
Sure enough, that actually worked and as it turned out, it seems the
ttf-google-fonts-opinionated-git
package had been deprecated in favor of
ttf-google-fonts-git
.
yay -S ttf-google-fonts-git
With the offending package removed, I proceeded to install this new package,
which actually prompted me to pick between ttf-google-fonts-git
and
ttf-google-fonts-opinionated-git
. I opted for the former, since the latter had
given me such grief.
This also prompted me to pick between ttf-merriweather
and
ttf-google-fonts-typewolf
. Even though typewolf
sounds totally bad ass, I
opted for the first choice here as well.
Nearly smooth sailing at this point, after things were downloaded, I was
prompted about yet another package conflict:
==> Found git repo: github.com/google/fonts.git
loading packages...
resolving dependencies...
looking for conflicting packages...
:: ttf-google-fonts-git and adobe-source-code-pro-fonts are in conflict. Remove adobe-source-code-pro-fonts? [y/N]
Which made total sense, since I had installed the adobe-source-code-pro-fonts
package as a way to coerce the opinionated Google fonts into removing itself.
I opted to remove it and was back in business once again!