OBS-built packages have other dependencies than installed distributions provide
Hello everybody! Every now and then we have the problem that packages that we are building in our Science:EtherLab repository [1] are built against newer libraries, that are not available on a live system (or in the current Docker image) and the packages are not installable. This problem recently appeared again (see two examples below). That leads us to the general question: Which paths must be configured for the repositories in OBS so that the same packages are available that are also available in a live installation or in a current Docker image? We keep stumbling across the fact that our packages built in the Science:EtherLab project cannot be installed because dependencies cannot be fulfilled. [1] https://build.opensuse.org/repositories/science:EtherLab # Example 1 (Container) Repository: Leap 15.4 (x86_64) Repository paths: - openSUSE:Leap:15.4:Update/standard Package: Data Logging Service (DLS) https://build.opensuse.org/package/show/science:EtherLab/DLS During the build process the build system pulls the library libprotobuf25 and creates a dependency to libprotobuf.so.25.1.0()(64bit) later on: [ 9s] [213/389] cumulate libprotobuf25_1_0-25.1-150400.9.3.1 https://build.opensuse.org/projects/science:EtherLab/packages/DLS/repositori... However, only the libprotobuf20 version is offered in the current container image, so the DLS package cannot be installed. $ docker pull opensuse/leap:15.4 $ docker run --rm -it opensuse/leap:15.4 e5757d974480:/ # zypper sh zypper> se -s protobuf2 ... S | Name | Type | Version | Arch | Repository --+---------------------+---------+---------------------+--------+------------------------------------------------------------- | libprotobuf20 | package | 3.9.2-150200.4.21.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15 zypper> ar https://download.opensuse.org/repositories/science:/EtherLab/15.4 EtherLab zypper> ref ... zypper> in dls Resolving package dependencies... Problem: nothing provides 'libprotobuf.so.25.1.0()(64bit)' needed by the to be installed dls-1.6.1.g54c82b7-lp154.268.1.x86_64 The question: From where does it get the libprotobuf in version 25 instead of 20 when building and which additional path would we have to include? # Example 2 (Live system) Repository: Leap 15.3 (x86_64) Repository paths: - openSUSE:Leap:15.3:Update/standard Package: EtherCAT Master (ethercat) https://build.opensuse.org/package/show/science:EtherLab/ethercat During the build, the build system pulls a real-time kernel in version k5.3.18_8.13 and builds a KMP ethercat-kmp-rt-1.5.2.429.g3079ece_k5.3.18_8.13-lp153.385.3.x86_64.rpm https://build.opensuse.org/projects/science:EtherLab/packages/ethercat/repos... On a live system with Leap 15.3, this kernel 5.3.18_8.13 is not offered at all, only a 5.3.18-8.3.1: zypper> lr -u # | Alias | Name | Enabled | GPG Check | Refresh | URI ---+-------------------------------+---------------------------+-----------+-----------------+----------------+------------------------------------------------------------------------------- 1 | etherlab | etherlab | Ja | (r ) Ja | Ja | http://download.opensuse.org/repositories/science:/EtherLab/openSUSE_Leap_15... 2 | openSUSE-Leap-${releasever}-1 | openSUSE-Leap-15.3-1 | Nein | ---- | ---- | ftp://nas/opensuse/distribution/leap/15.3/repo/oss 3 | repo-backports-debug-update | Update repository with -> | Nein | ---- | ---- | http://download.opensuse.org/update/leap/15.3/backports_debug/ 4 | repo-backports-update | Update repository of op-> | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/15.3/backports/ 5 | repo-debug | Debug Repository | Nein | ---- | ---- | http://download.opensuse.org/debug/distribution/leap/15.3/repo/oss/ 6 | repo-debug-non-oss | Debug Repository (Non-O-> | Nein | ---- | ---- | http://download.opensuse.org/debug/distribution/leap/15.3/repo/non-oss/ 7 | repo-debug-update | Update Repository (Debug) | Nein | ---- | ---- | http://download.opensuse.org/debug/update/leap/15.3/oss/ 8 | repo-debug-update-non-oss | Update Repository (Debu-> | Nein | ---- | ---- | http://download.opensuse.org/debug/update/leap/15.3/non-oss/ 9 | repo-non-oss | Non-OSS Repository | Ja | (r ) Ja | Ja | http://download.opensuse.org/distribution/leap/15.3/repo/non-oss/ 10 | repo-oss | Main Repository | Ja | (r ) Ja | Ja | http://download.opensuse.org/distribution/leap/15.3/repo/oss/ 11 | repo-sle-debug-update | Update repository with -> | Nein | ---- | ---- | http://download.opensuse.org/debug/update/leap/15.3/sle/ 12 | repo-sle-update | Update repository with -> | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/15.3/sle/ 13 | repo-source | Source Repository | Nein | ---- | ---- | http://download.opensuse.org/source/distribution/leap/15.3/repo/oss/ 14 | repo-source-non-oss | Source Repository (Non--> | Nein | ---- | ---- | http://download.opensuse.org/source/distribution/leap/15.3/repo/non-oss/ 15 | repo-update | Main Update Repository | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/15.3/oss/ 16 | repo-update-non-oss | Update Repository (Non--> | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/15.3/non-oss/ zypper> se -s kernel-rt S | Name | Type | Version | Arch | Repository ---+-----------------------+------------+---------------------+--------+------------------------------------------------------------- i+ | kernel-rt | Paket | 5.3.18-150300.112.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15 i+ | kernel-rt | Paket | 5.3.18-8.3.1 | x86_64 | Main Repository | kernel-rt | Quellpaket | 5.3.18-150300.112.1 | noarch | Update repository with updates from SUSE Linux Enterprise 15 | kernel-rt-devel | Paket | 5.3.18-150300.112.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15 | kernel-rt-devel | Paket | 5.3.18-8.3.1 | x86_64 | Main Repository | kernel-rt-extra | Paket | 5.3.18-8.3.1 | x86_64 | Main Repository | kernel-rt_debug | Paket | 5.3.18-8.3.1 | x86_64 | Main Repository | kernel-rt_debug | Quellpaket | 5.3.18-150300.112.1 | noarch | Update repository with updates from SUSE Linux Enterprise 15 | kernel-rt_debug-devel | Paket | 5.3.18-150300.112.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15 | kernel-rt_debug-devel | Paket | 5.3.18-8.3.1 | x86_64 | Main Repository | kernel-rt_debug-extra | Paket | 5.3.18-8.3.1 | x86_64 | Main Repository zypper> se -s ethercat-kmp-rt S | Name | Type | Version | Arch | Repository ---+---------------------------+-------+---------------------------------------------+--------+----------- i+ | ethercat-kmp-rt | Paket | 1.5.2.429.g3079ece_k5.3.18_8.13-lp153.385.3 | x86_64 | etherlab | ethercat-kmp-rt-debuginfo | Paket | 1.5.2.429.g3079ece_k5.3.18_8.13-lp153.385.3 | x86_64 | etherlab We are aware that the past repository path is resolved recursively and thus should pull other paths (like the SLE paths) automatically. But we don't get, where the build containers pull the different kernel versions / library versions from. Can anyone help? Thanks a lot, Florian
participants (1)
-
Florian Pose