OpenMandrivaAssociation / distribution

OpenMandriva Lx is an exciting free Desktop Operating System that aims to cater to and interest first time and advanced users alike. It has the breadth and depth of an advanced system but is designed to be simple and straightforward in use.
https://openmandriva.org
7 stars 2 forks source link

package lib64icu-devel requires lib64icudata >= 74.2-1, but none of the providers can be installed #2951

Closed jonaski closed 6 months ago

jonaski commented 6 months ago

OpenMandriva version: Cooker

Describe the bug:

Run dnf install -y glibc gcc-c++ git gnutar make cmake glib gettext lsb-release rpmdevtools rpm-build rsync glibc-devel boost-devel dbus-devel protobuf-devel protobuf-compiler sqlite-devel libasound-devel pulseaudio-devel lib64GL-devel libgst-plugins-base1.0-devel taglib-devel chromaprint-devel libebur128-devel fftw-devel icu-devel libcdio-devel libgpod-devel libmtp-devel lib64Qt6Core-devel lib64Qt6Concurrent-devel lib64Qt6Network-devel lib64Qt6Sql-devel lib64Qt6DBus-devel lib64Qt6Gui-devel lib64Qt6Widgets-devel lib64Qt6Test-devel qt6-cmake qt6-qtbase-tools qt6-qttools-linguist desktop-file-utils appstream appstream-util hicolor-icon-theme
Last metadata expiration check: 0:00:31 ago on Tue Jan  2 13:[4](https://github.com/strawberrymusicplayer/strawberry/actions/runs/7375599025/job/20093232690#step:5:5)7:14 2024.
Package glibc-6:2.38-[5](https://github.com/strawberrymusicplayer/strawberry/actions/runs/7375599025/job/20093232690#step:5:6).x8[6](https://github.com/strawberrymusicplayer/strawberry/actions/runs/7375599025/job/20093232690#step:5:7)_64 is already installed.
Package lsb-release-3.3-3.noarch is already installed.
Error: 
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)
 Problem: conflicting requests
  - package lib64icu-devel-[7](https://github.com/strawberrymusicplayer/strawberry/actions/runs/7375599025/job/20093232690#step:5:8)4.2-1.x[8](https://github.com/strawberrymusicplayer/strawberry/actions/runs/7375599025/job/20093232690#step:5:9)6_64 from cooker-x86_64 requires lib64icudata >= 74.2-1, but none of the providers can be installed
  - package lib64icu-devel-74.2-1.x86_64 from openmandriva-x86_64 requires lib64icudata >= 74.2-1, but none of the providers can be installed
  - package lib64icudata-74.2-1.x86_64 from cooker-x86_64 requires icu-data = 74.2-1, but none of the providers can be installed
  - package lib64icudata-74.2-1.x86_64 from openmandriva-x86_64 requires icu-data = 74.2-1, but none of the providers can be installed
  - cannot install both icu-data-74.2-1.x86_64 from cooker-x86_64 and icu-data-1:72.1-2.x86_64 from @System
  - cannot install both icu-data-74.2-1.x86_64 from openmandriva-x86_64 and icu-data-1:72.1-2.x86_64 from @System
  - package lib64icudata72-1:72.1-2.x86_64 from @System requires icu-data = 1:72.1-2, but none of the providers can be installed
  - problem with installed package lib64icudata72-1:72.1-2.x86_64
Error: Process completed with exit code 1.

Steps to reproduce:

dnf install -y glibc gcc-c++ git gnutar make cmake glib gettext lsb-release rpmdevtools rpm-build rsync glibc-devel boost-devel dbus-devel protobuf-devel protobuf-compiler sqlite-devel libasound-devel pulseaudio-devel lib64GL-devel libgst-plugins-base1.0-devel taglib-devel chromaprint-devel libebur128-devel fftw-devel icu-devel libcdio-devel libgpod-devel libmtp-devel lib64Qt6Core-devel lib64Qt6Concurrent-devel lib64Qt6Network-devel lib64Qt6Sql-devel lib64Qt6DBus-devel lib64Qt6Gui-devel lib64Qt6Widgets-devel lib64Qt6Test-devel qt6-cmake qt6-qtbase-tools qt6-qttools-linguist desktop-file-utils appstream appstream-util hicolor-icon-theme

Observed behavior:

Expected behavior:

Additional comment:

I use docker image openmandriva/cooker in GH actions and for the past few days I've run into this. Is there are workaround for forcing installing icu-data, or is this a temporary issue on cooker?

Logs and screenshots if relevant

benbullard79 commented 6 months ago

What are you trying to do? What is your starting point?

I have updated cooker systems in last few days and did not see any problem with this and the icu-data* packages were upgraded.

What I am seeing that I do not understand is:

package lib64icudata-74.2-1.x86_64 from cooker-x86_64
package lib64icudata-74.2-1.x86_64 from openmandriva-x86_64

It looks like you have conflicting repositories. cooker-x86_64 and openmandriva-x86_64 The output of dnf repolist will tell us what is going on with that. I am confused becasue I do not know of any openmandriva repos. The names I am familiar with are cooker, release, rock, and rolling.

Advice: Run dnf clean all before running transaction.

Note: I am not an OM developer. I believe --allowerasing is the workaround. dnf has to remove lib64icudata72-1:72.1-2 before it will install lib64icudata-74.2-1 and associated packages. As I understand things the alternative is to manually remove lib64icudata72-1:72.1-2 then run your transaction. I doubt your system will want you to manually remove that package.

benbullard79 commented 6 months ago

I partially ran your transaction on a Cooker x86_64 system and got this (no errors):

cooker_transaction.txt

AngryPenguinPL commented 6 months ago

Hi. Thanks for report. I believe this pr https://github.com/strawberrymusicplayer/strawberry-buildbot/pull/1 should solve the problem.

jonaski commented 6 months ago

Thanks @AngryPenguinPL, but buildbot isn't currently in use and has not been in use for almost a year. The error is from GitHub Actions: https://github.com/strawberrymusicplayer/strawberry/actions/runs/7391322115/job/20107909773

But I'm getting the exact same error using docker locally, and still the same error after switching to dnf distro-sync --assumeyes.:

jonas@jonas:~/Projects/strawberry/strawberry-buildbot/worker-openmandriva-cooker> cat Dockerfile 
FROM openmandriva/cooker

RUN dnf distro-sync --assumeyes

RUN dnf install --assumeyes \
    glibc gcc-c++ git gnutar make cmake glib gettext lsb-release rpmdevtools rpm-build \
    glibc-devel boost-devel dbus-devel protobuf-devel protobuf-compiler sqlite-devel libasound-devel pulseaudio-devel gnutls-devel lib64GL-devel \
    libgst-plugins-base1.0-devel taglib-devel chromaprint-devel fftw-devel libcdio-devel libgpod-devel libmtp-devel icu-devel \
    lib64Qt6Core-devel lib64Qt6Concurrent-devel lib64Qt6Network-devel lib64Qt6Sql-devel lib64Qt6DBus-devel lib64Qt6Gui-devel lib64Qt6Widgets-devel lib64Qt6Test-devel qt6-cmake qt6-qtbase-tools qt6-qttools \
    desktop-file-utils appstream appstream-util hicolor-icon-theme \
    python3 python3-devel python3-pip

RUN cp /usr/bin/gtar /bin/tar

RUN pip3 install --upgrade pip
RUN pip3 install buildbot_worker==3.8.0

RUN echo "openmandriva-cooker" > /worker-name
RUN useradd -r -m -s /bin/false buildbot

RUN mkdir -p /home/buildbot/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
RUN chown buildbot /home/buildbot/rpmbuild/{,BUILD,RPMS,SOURCES,SPECS,SRPMS}

CMD ["/usr/bin/python3", "/config/worker/start.py"]
jonas@jonas:~/Projects/strawberry/strawberry-buildbot/worker-openmandriva-cooker> sudo docker build .
[+] Building 27.2s (5/13)                                                                                                                                                                                                                                       docker:default
 => [internal] load .dockerignore                                                                                                                                                                                                                                         0.0s
 => => transferring context: 2B                                                                                                                                                                                                                                           0.0s
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                      0.0s
 => => transferring dockerfile: 1.20kB                                                                                                                                                                                                                                    0.0s
 => [internal] load metadata for docker.io/openmandriva/cooker:latest                                                                                                                                                                                                     2.0s
 => [ 1/10] FROM docker.io/openmandriva/cooker@sha256:4c99ce2092b9b6b86fd348c9b700dfb0598ac05361717a2d86785298886c9ddc                                                                                                                                                    6.2s
 => => resolve docker.io/openmandriva/cooker@sha256:4c99ce2092b9b6b86fd348c9b700dfb0598ac05361717a2d86785298886c9ddc                                                                                                                                                      0.0s
 => => sha256:72e190a45a2331ba8c8c2cfc5f0e08f144b2353d509d46d847bee2875b655eea 153.41MB / 153.41MB                                                                                                                                                                        3.9s
 => => sha256:4c99ce2092b9b6b86fd348c9b700dfb0598ac05361717a2d86785298886c9ddc 741B / 741B                                                                                                                                                                                0.0s
 => => sha256:a6e0a0fe547b3227ba52619aca925bdb6b2ea04c8e5a8ff1808be42e735b5935 530B / 530B                                                                                                                                                                                0.0s
 => => sha256:3fb1ed2696251b3e231900f668a0da6d4c60900be1e81d1a5f4b935b423aea5d 1.68kB / 1.68kB                                                                                                                                                                            0.0s
 => => extracting sha256:72e190a45a2331ba8c8c2cfc5f0e08f144b2353d509d46d847bee2875b655eea                                                                                                                                                                                 2.2s
 => ERROR [ 2/10] RUN dnf distro-sync --assumeyes                                                                                                                                                                                                                        19.0s
------                                                                                                                                                                                                                                                                         
 > [ 2/10] RUN dnf distro-sync --assumeyes:                                                                                                                                                                                                                                    
4.495 OpenMandriva Cooker - x86_64                    5.0 MB/s |  20 MB     00:04                                                                                                                                                                                              
12.00 OpenMandriva cooker - x86_64                    6.8 MB/s |  20 MB     00:02                                                                                                                                                                                              
17.19 OpenMandriva cooker - x86_64 - Updates          476  B/s | 364  B     00:00                                                                                                                                                                                              
17.27 Last metadata expiration check: 0:00:01 ago on Tue Jan  2 23:50:26 2024.                                                                                                                                                                                                 
18.16 Error: 
18.16  Problem: package lib64icudata72-1:72.1-2.x86_64 requires icu-data = 1:72.1-2, but none of the providers can be installed
18.16   - icu-data-1:72.1-2.x86_64 does not belong to a distupgrade repository
18.16   - problem with installed package lib64icudata72-1:72.1-2.x86_64
18.16 (try to add '--skip-broken' to skip uninstallable packages)
------
Dockerfile:3
--------------------
   1 |     FROM openmandriva/cooker
   2 |     
   3 | >>> RUN dnf distro-sync --assumeyes
   4 |     
   5 |     RUN dnf install --assumeyes \
--------------------
ERROR: failed to solve: process "/bin/sh -c dnf distro-sync --assumeyes" did not complete successfully: exit code: 1
AngryPenguinPL commented 6 months ago

ok, looks like library name was changed few months ago https://github.com/OpenMandrivaAssociation/icu/commit/60145db9c26b6923b7601e80ca429bbab7637535#diff-938d575193bfd357eb30ccacf19bcd39262d3d38838a44e5760981ed797167baR9 but still distro-sync should deal with that.

Maybe you can try add --allowerasing to "distro sync" dnf distro-sync --allowerasing

berolinux commented 6 months ago

Looks to me like the main issue is that the docker container seems to contain a very old version of icu even though it has been rebuilt 13 days ago. The cooker container should definitely have current icu. Investigating...

berolinux commented 6 months ago

The problem is definitely with the openmandriva/cooker:latest tag in dockerhub (which is supposed to redirect to openmandriva/cooker:x86_64 or openmandriva/cooker:aarch64 depending on host architecture).

For some reason, even though the "latest" tag seems to be created correctly by doing

docker manifest create openmandriva/cooker:latest --amend openmandriva/cooker:x86_64 --amend openmandriva/cooker:aarch64
docker manifest annotate openmandriva/cooker:latest openmandriva/cooker:x86_64 --os linux --arch amd64
docker manifest annotate openmandriva/cooker:latest openmandriva/cooker:aarch64 --os linux --arch arm64
docker manifest push openmandriva/cooker:latest

after the creation of a new openmandriva/cooker:x86_64 or openmandriva/cooker:aarch64 image, openmandriva/cooker:latest still delivers an old build.

This needs further debugging, possibly on dockerhub's side. Workaround in the mean time: If you know what architecture something runs on, specify it (openmandriva/cooker:x86_64 or openmandriva/cooker:aarch64) instead of using openmandriva/cooker without giving a tag (FWIW this is what we do on our builders.)

berolinux commented 6 months ago

I think I understand what's going on now... On updates, the :latest manifest was always amended instead of being overwritten, and when there are multiple matching entries, docker picks the first, not the latest.

The openmandriva/cooker container without architecture tag should work properly now (and in all future versions).

https://github.com/OpenMandrivaSoftware/docker-builder/commit/58d41f81ce5267977b26f73a1885af535cc41b5f

Please confirm.

berolinux commented 6 months ago

(FWIW it's still a good idea to use distro-sync instead of update/upgrade, because in cooker we sometimes clean up epochs etc.)

jonaski commented 6 months ago

Working now. Thanks @berolinux