openSUSE / obs-build

OBS build script, can be used with OBS or stand alone
GNU General Public License v2.0
133 stars 185 forks source link

pbuild fails to pull in the correct dependencies on SLE 15 SP3 #886

Closed dcermak closed 2 years ago

dcermak commented 2 years ago

I have started to build the BCI images for SLE 15 SP3 with pbuild and ran into the weird issue that pbuild resolves bogus dependencies, causing the kiwi build to fail with unsatisfied dependencies. E.g. for the ruby-2.5 image:

[   60s] [ DEBUG   ]: 13:57:41 | EXEC: [chroot /usr/src/packages/KIWI-docker/build/image-root zypper --non-interactive --gpg-auto-import-keys --pkg-cache-dir /var/cache/kiwi/packages --reposd-dir /var/cache/kiwi/zypper/repos --solv-cache-dir /var/cache/kiwi/zypper/solv --cache-dir /var/cache/kiwi/zypper --raw-cache-dir /var/cache/kiwi/zypper/raw --config
/kiwi_7n82a7t1 install --download in-advance --auto-agree-with-licenses --no-recommends -- awk curl distribution-release gcc-c++ git-core make ruby2.5 ruby2.5-devel ruby2.5-rubygem-bundler sqlite3-devel timezone util-linux]
[   61s] [ INFO    ]: Processing: [                                        ] 0%[ DEBUG   ]: 13:57:42 | system: Refreshing service 'container-suseconnect-zypp'.
[   61s] [ DEBUG   ]: 13:57:42 | system: Warning: Skipping service 'container-suseconnect-zypp' because of the above error.
[   61s] [ DEBUG   ]: 13:57:42 | system: Retrieving repository '215390dde73a29176148b0360c9c9ea8' metadata [.done]
[   61s] [ DEBUG   ]: 13:57:42 | system: Building repository '215390dde73a29176148b0360c9c9ea8' cache [....done]
[   61s] [ DEBUG   ]: 13:57:42 | system: Loading repository data...
[   61s] [ DEBUG   ]: 13:57:42 | system: Reading installed packages...
[   61s] [ DEBUG   ]: 13:57:42 | system: 'util-linux' is already installed.
[   61s] [ DEBUG   ]: 13:57:42 | system: No update candidate for 'util-linux-2.36.2-150300.4.23.1.x86_64'. The highest available version is already installed.
[   61s] [ DEBUG   ]: 13:57:42 | system: 'curl' is already installed.
[   61s] [ DEBUG   ]: 13:57:42 | system: No update candidate for 'curl-7.66.0-150200.4.39.1.x86_64'. The highest available version is already installed.
[   61s] [ DEBUG   ]: 13:57:42 | system: 'distribution-release' not found in package names. Trying capabilities.
[   61s] [ DEBUG   ]: 13:57:42 | system: 'sles-release' providing 'distribution-release' is already installed.
[   61s] [ DEBUG   ]: 13:57:42 | system: 'timezone' is already installed.
[   61s] [ DEBUG   ]: 13:57:42 | system: No update candidate for 'timezone-2022a-150000.75.10.1.x86_64'. The highest available version is already installed.
[   61s] [ DEBUG   ]: 13:57:42 | system: 'awk' not found in package names. Trying capabilities.
[   61s] [ DEBUG   ]: 13:57:42 | system: Resolving package dependencies...
[   61s] [ DEBUG   ]: 13:57:42 | system: Problem: the to be installed git-core-2.35.3-150300.10.15.1.x86_64 requires 'openssh-clients', but this requirement cannot be provided
[   61s] [ DEBUG   ]: 13:57:42 | system:   not installable providers: openssh-clients-8.4p1-3.9.1.x86_64[215390dde73a29176148b0360c9c9ea8]
[   61s] [ DEBUG   ]: 13:57:42 | system:  Solution 1: deinstallation of patterns-base-fips-20200124-10.5.1.x86_64
[   61s] [ DEBUG   ]: 13:57:42 | system:  Solution 2: do not install git-core-2.35.3-150300.10.15.1.x86_64
[   61s] [ DEBUG   ]: 13:57:42 | system:  Solution 3: break git-core-2.35.3-150300.10.15.1.x86_64 by ignoring some of its dependencies
[   61s] [ DEBUG   ]: 13:57:42 | system: Choose from above solutions by number or cancel [1/2/3/c/d/?] (c): c
[   61s] [ INFO    ]: Processing: [########################################] 100%

Reproducer:

$ git clone https://github.com/SUSE/BCI-dockerfile-generator
$ git checkout pbuild-build-checks
$ poetry install
$ poetry run ./write-build-files.py --os-version 3 /var/tmp/test-sp3
$ cd /var/tmp/test-sp3
$ pbuild --buildjobs 8 --preset sle15.4 --vm-disk-size 8192

and observe how most images fail to build due to unsatisfied dependencies.

dcermak commented 2 years ago

this has been resolved by adding more Substitute: and prefer: