[CentOS] mock gimmicks - experts?

Mon Feb 28 21:48:43 UTC 2022
Johnny Hughes <johnny at centos.org>

On 2/28/22 08:49, lejeczek via CentOS wrote:
> Hi guys.
> 
> I'm trying something I believe is trivial, on centOS 9 with mock version 
> 2.16
> 
> -> $ mock -r centos-stream-8-x86_64 --rootdir=~/mock 
> --localrepo=/00.STORAGE/1/var/www/repos --continue --chain 
> ./mpfr-4.1.0-7.el9.src.rpm ./libmpc-1.2.1-4.el9.src.rpm
> 
> ...
> 
> CentOS Stream 8 - PowerTools 14 kB/s | 4.4 kB     00:00
> Error:
>   Problem: cannot install the best update candidate for package 
> libmpc-1.1.0-9.1.el8.x86_64
>    - problem with installed package libmpc-1.1.0-9.1.el8.x86_64
>    - package libmpc-1.1.0-9.1.el8.x86_64 requires libmpfr.so.4()(64bit), 
> but none of the providers can be installed
>    - cannot install the best update candidate for package 
> mpfr-3.1.6-1.el8.x86_64
>    - cannot install both mpfr-4.1.0-7.el8.x86_64 and 
> mpfr-3.1.6-1.el8.x86_64
>    - cannot install both mpfr-3.1.6-1.el8.x86_64 and 
> mpfr-4.1.0-7.el8.x86_64
> (try to add '--skip-broken' to skip uninstallable packages or '--nobest' 
> to use not only best candidate packages)
> ERROR: Exception(./libmpc-1.2.1-4.el9.src.rpm) 
> Config(centos-stream-8-x86_64) 0 minutes 6 seconds
> INFO: Results and/or logs in: 
> /00.STORAGE/1/var/www/repos/results/centos-stream-8-x86_64/libmpc-1.2.1-4.el9 
> 
> ERROR: Command failed:
> 
> ...
> 
> Why would it end up asking for 'mpfr-3.1.6' if 'libmpc-1.2.1' requires 
> ver. >4.x and..
> 
> why would 'ibmpc-1.1.0-9.1' even show up there I cannot wrap my head 
> around it.
> 
> I've only started using 'mock' but this weird stuff have not seen until 
> now.
> 

Rather than passing in both SRPMS .. I would try with just one at a time.

You are first trying to build mpfr and after that, you are trying to 
build libmpc.

If I am correct, the newer version of libmpc is required for mpfr.  So, 
first try building libmpc .. and look at what is necessary to build 
that.  Once you have that built, put it in your local repo and rebuild 
tehmetadata and thentry to build mpfr by itself.

All '--chain' does is retry all failed builds if something actually builds.

As to why the older version of libmpc or mpfr is trying to load .. look 
at your root.log and it will tell you.