fedora-llvm-team / llvm-snapshots

Everything to build LLVM snapshots
https://copr.fedorainfracloud.org/coprs/g/fedora-llvm-team/llvm-snapshots/
14 stars 8 forks source link

Provide (potentially empty) RHEL compat repo #515

Closed kwk closed 1 month ago

kwk commented 1 month ago

Current behaviour

Now that #513 is fixed and we can indeed enable the RHEL snapshot repo in testing-farm we're facing another error (see tmt-run.log):

Errors during downloading metadata for repository 'coprdep:https_download_copr_fedorainfracloud_org_results_40fedora_llvm_team_llvm_compat_packages_fedora_releasever_basearch':
          - Status code: 404 for https://download.copr.fedorainfracloud.org/results/%40fedora-llvm-team/llvm-compat-packages/fedora-9-x86_64/repodata/repomd.xml (IP: 108.138.85.27)
        Error: Failed to download metadata for repo 'coprdep:https_download_copr_fedorainfracloud_org_results_40fedora_llvm_team_llvm_compat_packages_fedora_releasever_basearch': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
        Ignoring repositories: coprdep:https_download_copr_fedorainfracloud_org_results_40fedora_llvm_team_llvm_compat_packages_fedora_releasever_basearch
        Error: 
         Problem 1: package lldb-17.0.6-1.el9.x86_64 from rhel-AppStream requires libclang-cpp.so.17()(64bit), but none of the providers can be installed
          - cannot install both clang-libs-17.0.6-5.el9.x86_64 from rhel-AppStream and clang-libs-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527
          - cannot install the best candidate for the job
         Problem 2: cannot install both llvm-libs-17.0.6-5.el9.x86_64 from rhel-AppStream and llvm-libs-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527
          - package rust-1.77.2-3.el9.x86_64 from rhel-AppStream requires libLLVM-17.so()(64bit), but none of the providers can be installed
          - package rust-1.77.2-3.el9.x86_64 from rhel-AppStream requires libLLVM-17.so(LLVM_17)(64bit), but none of the providers can be installed
          - cannot install the best candidate for the job
          - conflicting requests
         Problem 3: cannot install both llvm-libs-17.0.6-5.el9.x86_64 from rhel-AppStream and llvm-libs-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527
          - package rust-1.77.2-3.el9.x86_64 from rhel-AppStream requires libLLVM-17.so()(64bit), but none of the providers can be installed
          - package rust-1.77.2-3.el9.x86_64 from rhel-AppStream requires libLLVM-17.so(LLVM_17)(64bit), but none of the providers can be installed
          - package llvm-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527 requires llvm-libs(x86-64) = 19.0.0~pre20240527.g686600b521aa3c-1.el9, but none of the providers can be installed
          - package cargo-1.77.2-3.el9.x86_64 from rhel-AppStream requires rust, but none of the providers can be installed
          - cannot install the best candidate for the job
          - conflicting requests
         Problem 4: cannot install both llvm-libs-17.0.6-5.el9.x86_64 from rhel-AppStream and llvm-libs-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527
          - package annobin-12.31-2.el9.x86_64 from rhel-AppStream requires libLLVM-17.so()(64bit), but none of the providers can be installed
          - package annobin-12.31-2.el9.x86_64 from rhel-AppStream requires libLLVM-17.so(LLVM_17)(64bit), but none of the providers can be installed
          - package llvm-devel-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527 requires llvm-libs(x86-64) = 19.0.0~pre20240527.g686600b521aa3c-1.el9, but none of the providers can be installed
          - package redhat-rpm-config-207-1.el9.noarch from rhel-AppStream requires (annobin if (gcc or clang)), but none of the providers can be installed
          - cannot install the best candidate for the job
          - conflicting requests
         Problem 5: cannot install both llvm-libs-17.0.6-5.el9.x86_64 from rhel-AppStream and llvm-libs-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527
          - package annobin-12.31-2.el9.x86_64 from rhel-AppStream requires libLLVM-17.so()(64bit), but none of the providers can be installed
          - package annobin-12.31-2.el9.x86_64 from rhel-AppStream requires libLLVM-17.so(LLVM_17)(64bit), but none of the providers can be installed
          - package llvm-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527 requires llvm-libs(x86-64) = 19.0.0~pre20240527.g686600b521aa3c-1.el9, but none of the providers can be installed
          - package redhat-rpm-config-207-1.el9.noarch from rhel-AppStream requires (annobin if (gcc or clang)), but none of the providers can be installed
          - package libomp-devel-19.0.0~pre20240527.g686600b521aa3c-1.el9.x86_64 from copr:copr.fedorainfracloud.org:group_fedora-llvm-team:llvm-snapshots-big-merge-20240527 requires llvm = 19.0.0~pre20240527.g686600b521aa3c-1.el9, but none of the providers can be installed
          - package rpm-build-4.16.1.3-29.el9.x86_64 from rhel-AppStream requires system-rpm-config, but none of the providers can be installed
          - cannot install the best candidate for the job
          - conflicting requests
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Analysis

The URL

https://download.copr.fedorainfracloud.org/results/%40fedora-llvm-team/llvm-compat-packages/fedora-9-x86_64/repodata/repomd.xml

suggests we're assuming that we're only building for fedora and not RHEL. Here is the proof for this assumption:

          copr create \
            --instructions "`cat project-instructions.md`" \
            --description  "`cat project-description.md`" \
            --unlisted-on-hp on \
            --enable-net on \
            --runtime-repo-dependency "https://download.copr.fedorainfracloud.org/results/%40fedora-llvm-team/llvm-compat-packages/fedora-\$releasever-\$basearch" \
            --multilib on \
            --appstream off \
            --delete-after-days 32 \
            $chroot_opts "${{ env.project_today }}"

The fedora in fedora-9-x86_64 should be replace with rhel and even then the URL points to a non existing location. That is because https://copr.fedorainfracloud.org/coprs/g/fedora-llvm-team/llvm-compat-packages/monitor/ shows only fedora compat packages.

Options

Let's circle back to why we have this situation with compat packages in the first place. On Fedora, there can be applications that link to the LLVM that we ship with the Fedora version. Once we install a newer version of LLVM, namely the snapshots, we need to fill the gap and provide a replacement of the LLVM library that the application demands. This is where the compatibility packages come into play.

Originally the compatibility (or compat) packages of LLVM are shipped because we need to give developers enough time to adapt to a new LLVM version.

If and how we ship or build compat packages for RHEL is a different topic.

kwk commented 1 month ago

@tuliom jumped in an created the chroots for RHEL in the @fedora-llvm-team/llvm-compat-packages copr repo. I changed the fedora- prefix to $distname- as documented in copr.

NOTE: We don't have compat packages for RHEL, just an empty repo.