Change package dependency requirements to prevent getting removed during update

Hi fellow Linux users,
I wanted to perform an update (last time updated a month ago) on my Manjaro GNOME. I usually do it with this one-liner, ran as root:

now=$(date --iso-8601=minutes | sed 's/:/-/g' ;); pamac update | tee Hefty-update-$now.log

Everything goes as usual except for one package which I want to keep. In the terminal I see:

To remove (1):
  yuzu                                         1706-1

So I denied the update.

At first I thought it’s because the package was taken down from AUR (you can’t find it on https://aur.archlinux.org/ anymore) because of the infamous recent takedown by Nintendo.

I tried ignoring the yuzu update after consulting man pamac like so:

pamac update --ignore yuzu

Here’s the full log after running this on pastebin if you want to have a look:

However, it still wants to remove the yuzu:

To remove (1):
  yuzu                                         1706-1

Upon closer inspection of the log attached above, I see the actual issue is with the package dependencies being dissatisfied by the ffmpeg update:

Warning: installing ffmpeg (2:7.0.1-2) breaks dependency 'libavcodec.so=60-64' required by yuzu
Add yuzu to remove
Warning: installing ffmpeg (2:7.0.1-2) breaks dependency 'libavutil.so=58-64' required by yuzu
Add yuzu to remove
Warning: installing ffmpeg (2:7.0.1-2) breaks dependency 'libswscale.so=7-64' required by yuzu
Add yuzu to remove

I see the so libraries versions are hard-coded in case compatiblity gets broken in future ffmpeg releases, however I’d like to risk running yuzu with newer ffmpeg since it should still be backwards-compatible for some time. If it breaks, that’s on me.

So the question is:
How do I alter the dependency requirements of an already-installed AUR package?
or if easier, where to find (by default) the .tar.xz Arch package compiled when installing the package via pamac and how to change it?

I’d like to change the dependency requirements to accept just newer library versions than the bottom ones defined in yuzu AUR package. The easiest would probably be to just alter the PKGBUILD file before installing, however I don’t know if I still have it (where to check for local cache?) and you can’t find it on AUR anymore. Hence asking how to do it for an installed package.

You uninstall the old one. You try to rebuild, if it works good, if not uninstall. Then either you write the aur maintainer to update, or you edit the pkgbuild yourserf and rebuild.

The pkgbuilds get cached by pamac, if you have not deleted it it is somewhere in /var/cache/pamac , cannot check right now since i am on a phone.

1 Like

First of all, do not run pamac as root. It will prompt for privilege escalation when needed.

Temporarily remove yuzu, update then rebuild it on the newer ffmpeg library:

sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yuzu.git
cd yuzu
makepkg -srif
1 Like

It appears that torzu has replaced yuzu in AUR on unstable.

Suyu is a Nintendo Switch emulator (based on Yuzu)… The most exciting thing about that for you is that binary suyu-bin package is currently available from the AUR:

First, completely remove yuzu from your system, perform a system update (if needed), and install suyu-bin from the AUR instead:

pamac build suyu-bin

This has the extra added benefit of using a package that is still actively maintained (on AUR).


I notice that an .appImage package is available from the Suyu site, if that may be an alternative option for you.

I hope this helps.

Cheers.

/var/tmp/pamac-build-USER/

1 Like

The appimage is available from AUR suyu-appimage

But the project has good build documentation for other AUR packages - Building for Linux - git.suyu.dev

and information on Migrating from yuzu

rename the folders ~/.local/share/yuzu and ~/.config/yuzu to suyu

1 Like

Please not that piracy is illegal and the mentioned emulator was shutdown due to piracy.

This makes it reasonable to apply the forum rules on Legality - wiki.manjaro.org

3 Likes

You don’t, you need to rebuild the package

This is for preventing users to keep non-working packages installed

1 Like

Good point. However, I’ll let that slide this time since the subject was more about learning about rebuilding AUR packages on newer libraries than the actual software itself.

2 Likes