Bug 31004

Summary: llvm10, llvm11.0, llvm12 libraries require libffi-devel
Product: Mageia Reporter: PC LX <mageia>
Component: RPM PackagesAssignee: Thierry Vignaud <thierry.vignaud>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: release_blocker CC: davidwhodgins, jani.valimaa
Version: Cauldron   
Target Milestone: Mageia 9   
Hardware: All   
OS: Linux   
Whiteboard:
Source RPM: llvm10-10.0.1-3.mga8.src.rpm, llvm11.0-11.0.1-7.mga9.src.rpm, llvm12-12.0.1-3.mga9.src.rpm CVE:
Status comment:

Description PC LX 2022-10-22 15:42:03 CEST
Description of problem:

Upgrading a Mageia 8 system to Mageia cauldron with both libffi7-3.3-2.mga8 and lib64ffi7-3.3-2.mga8 packages installed results in the following message:
"""
Installation failed: file /usr/include/ffi.h conflicts between attempted installs of libffi-devel-3.4.3-1.mga9.i586 and lib64ffi-devel-3.4.3-1.mga9.x86_64
"""

I have no idea why it is trying to upgrade the package libffi-devel-3.4.3-1.mga9.i586 when libffi-devel was not installed in the first place.


#### Before the upgrade ####
$ rpm -qa | grep -P 'lib(64)?ffi'
libffi7-3.3-2.mga8
lib64ffi7-3.3-2.mga8
lib64ffi-devel-3.3-2.mga8
$ urpmf --name 'lib(64)?ffi' | sort -u
lib64ffi7
lib64ffi-devel
libffi7
libffi-devel
mingw32-libffi
mingw32-libffi-static
mingw64-libffi
mingw64-libffi-static



Version-Release number of selected component (if applicable):

libffi7-3.3-2.mga8
lib64ffi7-3.3-2.mga8
lib64ffi-devel-3.3-2.mga8



How reproducible:

Always.



Steps to Reproduce:
1. Install the packages libffi7-3.3-2.mga8, lib64ffi7-3.3-2.mga8, and lib64ffi-devel-3.3-2.mga8 in a Mageia 8 system.
2. Change the repositories to cauldron repositories (urpmi.removemedia -a ; urpmi.addmedia --distrib URL).
3. Upgrade the system with urpmi --auto-update.
4. See the error.
Comment 1 PC LX 2022-10-22 15:51:09 CEST
Even after removing the package lib64ffi-devel, it still shows the same error message.

# urpme lib64ffi-devel libffi-devel
# rpm -qa | grep -P 'lib(64)?ffi'
libffi7-3.3-2.mga8
lib64ffi7-3.3-2.mga8
lib64ffi8-3.4.3-1.mga9
# LANGUAGE=C ionice -c 3 nice -n 19 urpmi --split-length 0 --auto-update --auto
<SNIP>
Installation failed:    file /usr/include/ffi.h conflicts between attempted installs of libffi-devel-3.4.3-1.mga9.i586 and lib64ffi-devel-3.4.3-1.mga9.x86_64
Comment 2 PC LX 2022-10-22 15:56:51 CEST
Removing the package libffi allows the upgrade to continue.

Seem that the package libffi is forcing the package libffi-devel to be installed and that causes the conflict.

Maybe there is an issue with the dependencies of libffi (and possibly also lib64ffi).
Comment 3 Lewis Smith 2022-10-22 20:30:26 CEST
Thank you for the report.

Summary: Installation failed: file /usr/include/ffi.h conflicts between attempted installs of libffi-devel-3.4.3-1.mga9.i586 and lib64ffi-devel-3.4.3-1.mga9.x86_64 => CONFLICT: Installation failed: file /usr/include/ffi.h conflicts between attempted installs of libffi-devel-3.4.3-1.mga9.i586 and lib64ffi-devel-3.4.3-1.mga9.x86_64
Assignee: bugsquad => pkg-bugs

Comment 4 David Walser 2022-10-24 18:30:05 CEST
Installation of the same i586 and x86_64 devel packages are not supported in Mageia.

Resolution: (none) => INVALID
Status: NEW => RESOLVED

Comment 5 David Walser 2022-10-24 18:31:09 CEST
Oops, helps if I read the whole report.

Resolution: INVALID => (none)
Status: RESOLVED => REOPENED
Summary: CONFLICT: Installation failed: file /usr/include/ffi.h conflicts between attempted installs of libffi-devel-3.4.3-1.mga9.i586 and lib64ffi-devel-3.4.3-1.mga9.x86_64 => Upgrading Mageia 8 to Mageia 9, libffi requires libffi-devel to be installed, causing a conflict

Comment 6 David Walser 2022-10-24 18:33:27 CEST
What does:
urpmi --requires lib64ffi8

on Mageia 9 give you?
Comment 7 David Walser 2022-10-24 18:33:43 CEST
Sorry, I meant:
urpmq --requires lib64ffi8
Comment 8 PC LX 2022-10-25 13:21:17 CEST
# LANGUAGE=C urpmq --requires lib64ffi8
--requires behaviour changed, use --requires-recursive to get the old behaviour
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.27)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)


# LANGUAGE=C urpmq --requires-recursive lib64ffi8
bash
bash-completion
dash-static
filesystem
glibc
grep
lib64ffi8
lib64ncurses6
lib64pcre2_0
lib64pkgconf3
lib64xcrypt1
pkgconf
pkgconf-m4
pkgconf-pkg-config
run-parts
setup
Comment 9 David Walser 2022-10-25 15:03:53 CEST
OK the issue may not be in libffi8.

Try:
urpmq --whatrequires lib64ffi-devel
Comment 10 PC LX 2022-10-25 16:11:58 CEST
# urpmq --whatrequires lib64ffi-devel
lib64cjs-devel
lib64ffi-devel
lib64girepository-devel
lib64gjs-devel
lib64glib2.0-devel
lib64gnustep-base-devel
lib64guile2.0-devel
lib64guile3.0-devel
lib64llvm-devel
lib64llvm10-devel
lib64llvm10.0
lib64llvm11.0
lib64llvm11.0-devel
lib64llvm12.0
lib64llvm12.0-devel
lib64llvm13.0-devel
lib64llvm14.0-devel
lib64p11-kit-devel
lib64wayland-devel
libomp-devel


# urpmq --whatrequires libffi-devel
libcjs-devel
libffi-devel
libgirepository-devel
libgjs-devel
libglib2.0-devel
libgnustep-base-devel
libguile2.0-devel
libguile3.0-devel
libllvm-devel
libllvm10-devel
libllvm10.0
libllvm11.0
libllvm11.0-devel
libllvm12.0
libllvm12.0-devel
libllvm13.0-devel
libllvm14.0-devel
libp11-kit-devel
libwayland-devel
Comment 11 Dave Hodgins 2022-10-25 17:01:26 CEST
libffi-devel and lib64ffi-devel both provide ...
ffi7-devel[== 3.3-2.mga8]
pkgconfig(libffi)[== 3.3]

so any package with a requires on either of those may pull in either the
32 or 64 bit version.

CC: (none) => davidwhodgins

Comment 12 David Walser 2022-10-26 19:19:28 CEST
Packaging error in llvm.

Summary: Upgrading Mageia 8 to Mageia 9, libffi requires libffi-devel to be installed, causing a conflict => llvm10, llvm11.0, llvm12 libraries require libffi-devel
CC: (none) => jani.valimaa
Source RPM: libffi-3.4.3-1.mga9.src.rpm => llvm10-10.0.1-3.mga8.src.rpm, llvm11.0-11.0.1-7.mga9.src.rpm, llvm12-12.0.1-3.mga9.src.rpm
Assignee: pkg-bugs => thierry.vignaud

David Walser 2022-10-30 17:50:34 CET

Target Milestone: --- => Mageia 9
Priority: Normal => release_blocker

Comment 13 Jani Välimaa 2022-10-30 17:57:31 CET
I have added llvm10, llvm11, and llvm12 to task-obsolete as old and unused.
Comment 14 PC LX 2022-11-12 10:58:53 CET
After retesting upgrading Mageia 8 to Mageia 9/cauldron this issue no longer appears so it seems to be fixed.
Will mark it as resolved for now and reopen it in the future if it reappears.

Status: REOPENED => RESOLVED
Resolution: (none) => FIXED