On 3/1/22 06:02, lejeczek via CentOS wrote:
> 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.
>
https://koji.mbox.centos.org/pkgs/packages/libmpc/1.1.0/9.1.el8/data/logs/aarch64/root.log
libmpc.aarch64 is installed in the 'minimal' buildroot for all packages
built in mock. So you will have to build a newer first. (The minimum
build root contains the files starting with:
DEBUG util.py:439: bash aarch64 4.4.19-12.el8
build 1.5 M
and going to
DEBUG util.py:439: xz aarch64 5.2.4-3.el8
build 151 k
in the below file .. it pulls in all the deps listed below that .. so from:
DEBUG util.py:439: annobin aarch64 9.35-1.el8
build 103 k
to
DEBUG util.py:439: zstd aarch64 1.4.4-1.el8
build 302 k
One of those "Install 175 Packages" in the minimal build root is
libmpc.aarch64.
Compounding your problem .. when you build a new libmpc, it requires
mpfr-devel. You have a chicken / egg problem. Minimal buildroot
requires libmpc .. you will have to figure out how to build and replace
the libmpc with the newer version before you can do anything else.