Bug 29601

Summary: lib64mesagl1-devel installation is declined -Potential version mismatch with mesa
Product: Mageia Reporter: christian barranco <chb0>
Component: RPM PackagesAssignee: Mageia Bug Squad <bugsquad>
Status: RESOLVED INVALID QA Contact:
Severity: major    
Priority: Normal CC: arusanu
Version: 8   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Source RPM: mesa-21.2.4-2.mga8.src.rpm CVE:
Status comment:

Description christian barranco 2021-10-28 16:23:17 CEST
Description of problem:
Installation of lib64mesagl1-devel is declined with the message it depends on  an older version than the one installed.
After analysis, it looks like there is a mismatch between mesa package provides which has the version 21.2.4
Version 20.3.4 is still proposed for lib64mesagl1-devel
Potentially, same issue with other libraries like:
lib64mesaegl1-devel
lib64mesaglesv1_1-devel
lib64mesaglesv2_2-devel


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


How reproducible: always with urpmi, however, someone on MLO IRC told me she succeeded to install it with dnf. I haven't tried myself.


Steps to Reproduce:
1.urpmi lib64mesagl1-devel
Comment 1 Aurelian R 2021-10-28 17:31:10 CEST
  It looks like, starting with mesa versions > 20.3.4, the development package for "mesagl1" is "lib64mesagl-devel", without an "1", while the other mesa's devel packages names haven't changed. Most likely you need to use "urpmi lib64mesagl-devel" if your installed mesa version is not 20.3.4( the version Mageia 8 have been released with).
 Not a developer, so I have no idea why this change. While it is not a major issue, it does brake a naming scheme imo.
Regards.

CC: (none) => arusanu

Comment 2 christian barranco 2021-10-28 17:58:19 CEST
I understand better now. 
lib64mesagl-devel is already installed.
However, I just packaged llvm 13.0.0. and lib64mesagl1-devel is called during its installation and an error is sent (might just a warning though if I decide to proceed with the installation ?).
Looking at our MGA llvm spec, I don't see lib64mesagl1-devel stated as Requires.
So, it might be over system links behind calling it.
Comment 3 christian barranco 2021-10-28 18:37:22 CEST
If I try to keep proceeding with the installation of llvm13.0.0 after the alert on lib64mesagl1-devel, things get worse. It looks like something is broken in the chain. Or?

Sorry for the french below. Hopefully, you will recognize standart urpmi messages.
```
Le paquetage suivant ne peut pas être installé, car il dépend
de paquetage qui sont plus anciens que la version installée :
lib64mesagl1-devel-20.3.4-2.mga8
Désirez-vous tout de même continuer ? (O/n) 
Certains paquetages demandés ne peuvent pas être installés :
lib64dri-drivers-21.2.3-1.mga8.x86_64 (afin de garder lib64dri-drivers-21.2.4-2.mga8.x86_64)
lib64xatracker2-21.2.3-1.mga8.x86_64 (afin de garder lib64xatracker2-21.2.4-2.mga8.x86_64)
rust-1.49.0-1.mga8.x86_64 (afin de garder rust-1.52.1-1.mga8.x86_64)
Désirez-vous tout de même continuer ? (O/n) 
Afin de poursuivre la mise à jour, les paquetages suivants doivent être désinstallés :
clang-11.0.1-4.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit),
  en raison du manque de libclang-cpp.so.11()(64bit),
  car lib64clang11.0 == 11.0.1-4.mga8 est non satisfait)
clang-tools-extra-11.0.1-4.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit),
  en raison du manque de libclang.so.11(LLVM_11)(64bit),
  en raison du manque de libclang.so.11()(64bit),
  car lib64clang11.0(x86-64) == 11.0.1 est non satisfait,
  en raison du manque de libclang-cpp.so.11()(64bit))
lib64clang-devel-11.0.1-4.mga8.x86_64
 (en raison du manque de devel(libLLVM-11(64bit)))
lib64clang11.0-11.0.1-4.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit))
lib64dri-drivers-21.2.4-2.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit),
  car mesa == 21.2.4 est non satisfait)
lib64lld7-11.0.1-3.2.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit))
lib64llvm11.0-11.0.1-4.2.1.mga8.x86_64
 (en raison de conflit avec llvm-plugins-13.0.0-1.squidf.mlo8.x86_64)
lib64mesagl-devel-21.2.4-2.mga8.x86_64
 (car lib64mesagl1 == 21.2.4-2.mga8 est non satisfait)
lib64mesagl1-21.2.4-2.mga8.x86_64
 (car lib64dri-drivers >= 21.2.4-2.mga8 est non satisfait)
lib64mesaopencl-devel-21.2.4-2.mga8.x86_64
 (car lib64mesaopencl1(x86-64) == 21.2.4-2.mga8 est non satisfait)
lib64mesaopencl1-21.2.4-2.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit),
  en raison du manque de libclang-cpp.so.11()(64bit))
lib64mesavulkan-devel-21.2.4-2.mga8.x86_64
 (car lib64mesavulkan-drivers == 21.2.4-2.mga8 est non satisfait)
lib64mesavulkan-drivers-21.2.4-2.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit))
lib64osmesa-devel-21.2.4-2.mga8.x86_64
 (car lib64osmesa8 == 21.2.4-2.mga8 est non satisfait)
lib64osmesa8-21.2.4-2.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit))
lib64xatracker2-21.2.4-2.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit))
lld-11.0.1-3.2.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit),
  en raison du manque de liblldMinGW.so.11()(64bit),
  en raison du manque de liblldDriver.so.11()(64bit),
  en raison du manque de liblldELF.so.11()(64bit),
  en raison du manque de liblldMachO2.so.11()(64bit),
  en raison du manque de liblldCOFF.so.11()(64bit),
  en raison du manque de liblldCommon.so.11()(64bit),
  en raison du manque de liblldWasm.so.11()(64bit),
  car lib64lld7 == 11.0.1-3.2.mga8 est non satisfait)
llvm-doc-11.0.1-4.2.1.mga8.noarch
 (car llvm == 11.0.1-4.2.1.mga8 est non satisfait)
mesa-21.2.4-2.mga8.x86_64
 (car lib64mesavulkan-drivers == 21.2.4-2.mga8 est non satisfait,
  car lib64mesagl1 == 21.2.4-2.mga8 est non satisfait)
qttools5-5.15.2-2.mga8.x86_64
 (en raison du manque de libclang.so.11(LLVM_11)(64bit),
  en raison du manque de libclang.so.11()(64bit))
rust-1.52.1-1.mga8.x86_64
 (en raison du manque de libLLVM-11.so()(64bit),
  en raison du manque de libLLVM-11.so(LLVM_11)(64bit)) (o/N) 
```
Comment 4 christian barranco 2021-10-28 18:40:08 CEST
I can understand the conflict with clang but it impacts as well mesa-21.2.4-2.mga8.x86_64 and I wonder why?
Comment 5 Aurelian R 2021-10-28 19:17:32 CEST
 Try to clean urpmi or rebuild rpm database(urpmi --clean; rpm --rebuilddb) if you are using your daily system, or better use a clean VM to build such a package as llvm. Btw, llvm is already build on Cauldron so maybe you can port that back to Mageia 8.

(In reply to christian barranco from comment #4)
> I can understand the conflict with clang but it impacts as well
> mesa-21.2.4-2.mga8.x86_64 and I wonder why?

Somehow it tries to install an older mesa lib version that gets all the dependencies messed up. So you need to sort out that old mesa requirement that doesn't make sense.
Comment 6 Thomas Backlund 2021-10-28 19:27:46 CEST
we dont have llvm 13 in Mageia 8, so this is not a bug for us.

And FYI, the mesa dep is because it has hard deps on the llvm it's built against.

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

Comment 7 Aurelian R 2021-10-28 20:07:36 CEST
Thanks Thomas for clearing that out, the things you learn :).
Comment 8 christian barranco 2021-10-28 21:14:34 CEST
(In reply to Aurelian R from comment #5)
> Btw, llvm is already build on Cauldron so maybe you can
> port that back to Mageia 8.
> 
It is exactly what I am trying to do.
I am using Cauldron spec. Or is there another way to backport?

I understand your comment that clang 13 doesn't exist for MGA8. However, is it still normal that a package you build on MGA8 and which doesn't explicitly require 
lib64mesagl1-devel, still requests it?
Comment 9 Aurelian R 2021-10-28 22:26:10 CEST
 As Thomas said, mesa, which is a major package, has a hard dependence on llvm as maybe some other packages already installed on your system. If you really insist on doing it (a clean VM is the safest way), the first thing to try is to uninstall all the devel pkgs you may have installed and depend on llvm(ex:lib64mesaopencl-devel,lib64clang-devel picked from your list) then see if you can install your llvm packages, use urpmi with --test option first. Sometimes this helps with out of tree installations.

BTW, This is at the beginning of llvm spec file:

#
# Packaging notes: when you update the version of this package, please update
# to the same version also the following packages of the same suite:
#
# libclc
# libomp
# lld
# clang
# compiler-rt
# lldb
# polly
# mlir
# flang
#

which seems to be a daunting task.
Regards.
Comment 10 christian barranco 2021-10-29 08:45:31 CEST
Thanks for the tips Aurelian!
I'll follow your guidance.
Take care!