You are not logged in.
Hi there,
The recent change in libffi seems to have broken my system...
Since installing the update cinnamon and terminator are not working anymore. Cinnamon is very obvious and directly errors out with:
cinnamon: error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directoryTerminator was a little bit more complicated but i narrowed it also down to the missing libffi dependancy:
You need to install the python bindings for gobject, gtk and pango to run Terminator.I had this the last time with the removal of libffi.so.6 if i remember correctly, so there seems to be something i'm doing wrong...
Anything i missed after the update? Reinstalling the packages from an up-to-date repo doesn't seem to be enough to fix these problems...
Offline
You probably have a custom version of libffi.so.7 or a dependant library somewhere that shadows the in repo version. What's the output of
lddtree $programfrom an affected binary? lddtree needs pax-utils installed. Did you replace any "lower" level libraries with AUR packages/-git versions?
Possible candidates a broken python environment due to misuse of pip/conda or invalid glib2 versions.
Last edited by V1del (2021-10-20 11:24:12)
Offline
Hello, this is the problem?
https://github.com/archlinux/svntogit-p … bffi/trunk
temporary fix;
sudo pacman -U https://archive.archlinux.org/packages/ … kg.tar.zst
Last edited by AyrSales (2021-10-20 14:41:06)
Offline
That's a partial update and will likely further break your system.
Offline
I have two machines with similar arch setups. Both use cinnamon. I updated one of these systems this morning and cinnamon fails looking for libffi.so.7 just as @Square252 describes.
I think @V1del is on to something with the mention of glib2 as a potential culprit.
Comparing the output of pacman -Q glib2 on both machines yields:
Busted machine:
glib2 2.70.0-2Working machine:
glib2 2.70.0-1Comparing the relevant output of lddtree /usr/bin/cinnamon yields:
Busted machine:
libcjs.so.0 => /usr/lib/libcjs.so.0
libffi.so.7 => None
--
libwayland-client.so.0 => /usr/lib/libwayland-client.so.0
libffi.so.8 => /usr/lib/libffi.so.8Working machine:
libcjs.so.0 => /usr/lib/libcjs.so.0
libffi.so.7 => /usr/lib/libffi.so.7I tried downgrading glib2 using the pacman cache, but:
$ sudo pacman -U /var/cache/pacman/pkg/glib2-2.70.0-1-x86_64.pkg.tar.zst
loading packages...
warning: downgrading package glib2 (2.70.0-2 => 2.70.0-1)
resolving dependencies...
warning: cannot resolve "libffi.so=7-64", a dependency of "glib2"
:: The following package cannot be upgraded due to unresolvable dependencies:
glib2
:: Do you want to skip the above package for thie upgrade? [y/N] ^CI'd love to learn the proper way to resolve this. I'm assuming it's not kosher to have two different versions of libffi installed. Any ideas?
Offline
Busted machine:
libcjs.so.0 => /usr/lib/libcjs.so.0 libffi.so.7 => None
So your problem is with libcjs. Pacman -F tells me that file is from the cjs package in community, which was already rebuilt. What version do you have installed? This sounds like a partial update.
Online
@Scimmia It appears both machines (working / busted) report the same cjs version:
$ pacman -Q cjs
cjs 5.0.1-1Offline
Which is an old version, and a partial update. There's no way that's the actual version on the working machine, that would be pkgrel 2, pkgrel 1 wouldn't have given you the lddtree output you posted earlier.
Online
Okay, so my issue turned out to be that the top mirror in my /etc/pacman.d/mirrorlist wasn't pulling in the latest community packages ![]()
For those interested, I disabled the following mirror:
http://arch.mirror.square-r00t.net/$repo/os/$archSwitching to another mirror started pulling in cjs 5.0.1-2 and things cleared right up. Thanks so much for everyone's help! I learned some valuable lessons.
Offline
https://archlinux.org/packages/community/any/reflector/
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Offline
If u want a quick work around u may try conda, which won't break ur system
conda install libffi==3.4.2 # or any version u need
Then
export LD_LIBRARY_PATH=lib_folder_of_your_conda_env:$LD_LIBRARY_PATH
Last edited by zzzc18 (2021-10-25 13:02:34)
Offline
If u want a quick work around u may try conda, which won't break ur system
conda install libffi==3.4.2 # or any version u need
Then
export LD_LIBRARY_PATH=lib_folder_of_your_conda_env:$LD_LIBRARY_PATH
Don't do that. Avoiding the issue instead of fixing it will just cause more problems later.
Online
WTF? This is such a bad piece of advice that I'm inclined to bin it.
Doing things like the above is the entire inherent reason for why you are in this situation in the first place, whatever you do, do not follow the above, that's just plain insanity.
Last edited by V1del (2021-10-25 13:10:05)
Offline
I use pyenv to manage my python versions and virtual envs. I ran into this issue and simply had to rebuild the python version in question (
pyenv install 3.7.4in my case) presumably because it was linking against and older version of libffi when it previously built. Hopefully saves someone with the same issue some time.
Offline
If u want a quick work around u may try conda, which won't break ur system
conda install libffi==3.4.2 # or any version u need
Then
export LD_LIBRARY_PATH=lib_folder_of_your_conda_env:$LD_LIBRARY_PATH
I mean this is a temporary work around, and is easy to undo when u want as conda's env can be easily removed or reinstalled.
The newest Manjaro (downloaded 2021/10/25) will face the issue of missing libffi.so.8 when building packages with yay (makepkg), and u can't simply reinstall or update libffi to solve it. From my point of view, this is something wrong caused by manjaro or my pacman source.
Hope this helps those who just want a quick solution.
Offline
Manjaro isn't supported here and bugs in this space wouldn't surprise me. The only way you can have this issue on Arch right now is if you have a logical inconsistency on your system that you should properly fix instead of throwing temporary "fixes" around that are all but guaranteed to break horribly somewhere down the line and you wouldn't know why something broke.
Offline
I mean this is a temporary work around
No, it's a dumb idea that you should scratch from your head as fast as possible.
just want a quick solution
Just like https://www.youtube.com/watch?v=XPpJcnEoijU
missing libffi.so.8 when building packages with yay (makepkg)
Only if a package *explicitly* links that *very* release of the library - what's rather rare.
=> Name an actual package.
Also the only way libffi.so.8 *missing* is if you don't have libffi 3.4.2 which is in the repos since July 17th - it's also the direct opposite of the topic of this thread.
If you've actual build or other issues on archlinux (and I mean "Arch-Archlinux", not "Manjaro-thatsnotarchlinux") open a new thread, and post the build errors.
Offline