Closed jonaski closed 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.
I partially ran your transaction on a Cooker x86_64 system and got this (no errors):
Hi. Thanks for report. I believe this pr https://github.com/strawberrymusicplayer/strawberry-buildbot/pull/1 should solve the problem.
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
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
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...
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.)
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).
Please confirm.
(FWIW it's still a good idea to use distro-sync instead of update/upgrade, because in cooker we sometimes clean up epochs etc.)
Working now. Thanks @berolinux
OpenMandriva version: Cooker
Describe the bug:
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