[CentOS] mock gimmicks - experts?

Tue Mar 1 12:02:40 UTC 2022
lejeczek <peljasz at yahoo.co.uk>

On 28/02/2022 21:48, Johnny Hughes wrote:
> 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.
>
That was how I started first, each separately.

-> $ mock -r centos-stream-8-x86_64 --rootdir=~/mock 
--resultdir=/00.STORAGE/1/var/www/repos/results/"{{root}}"/libmpc 
libmpc-1.2.1-4.el9.src.rpm

...

Package gcc-8.5.0-10.el8.x86_64 is already installed.
Package make-1:4.2.1-11.el8.x86_64 is already installed.
No matching package to install: 'mpfr-devel >= 4.1.0'
Not all dependencies satisfied

'--chain' I believed was some way to "loop" and if one pkg might depend 
on another it will (with perhaps of addition of '--continue') that would 
be better alternative to "solve" those dependencies, anyway.

Having 'mpfr' ver. 4.x built and in repo, following fails the same way:

-> $ mock -r centos-stream-8-x86_64 --rootdir=~/mock 
--resultdir=/00.STORAGE/1/var/www/repos/results/"{{root}}"/libmpc 
libmpc-1.2.1-4.el9.src.rpm 
--addrepo=http://10.3.1.100/centos-stream-8-x86_64
...

CentOS Stream 8 - PowerTools 113 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)

'root.log' does not reveal anything, certainly not an explanation or... 
I've gone blind.

My guess - because that would be such a "test" case where 'mock' fails 
to tell, to explain what/how so I must only guess - is that something 
else down the chain of dependencies, depends on those "older" versions 
of 'mpfr' and/or 'libmpc', but..

if that theorem is true then, again, how to...

I also fiddled with 'best=' but to no avail.

many thanks, L.