http://bugzilla.opensuse.org/show_bug.cgi?id=1177262
Bug ID: 1177262 Summary: Zypper does not honor locked kernel packages Classification: openSUSE Product: openSUSE Distribution Version: Leap 15.2 Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: libzypp Assignee: zypp-maintainers@suse.de Reporter: arcasinky@gmail.com QA Contact: qa-bugs@suse.de Found By: --- Blocker: ---
Machine in question uses Kernel:stable repository for kernels. I am attempting to configure zypper to not also install kernels from the normal Leap 15.2 update repository.
Presently, the 15.2 update repo provides 5.3.x kernels. The Kernel:stable repo provides 5.8.x kernels.
Currently-installed kernel packages: # rpm -qa | grep kernel-default-5 kernel-default-5.8.11-1.1.gf4bb27a.x86_64 kernel-default-5.8.12-1.1.g79e03c2.x86_64 kernel-default-5.8.13-1.1.gea492d4.x86_64
Test #1: create a package lock for 5.3.* kernels:
# zypper al kernel-default-5.3* kernel-default-devel-5.3* kernel-devel-5.3* kernel-source-5.3* kernel-syms-5.3* Specified locks have been successfully added.
# zypper ll
# | Name | Type | Repository --+---------------------------+---------+----------- 1 | kernel-default-5.3* | package | (any) 2 | kernel-default-devel-5.3* | package | (any) 3 | kernel-devel-5.3* | package | (any) 4 | kernel-source-5.3* | package | (any) 5 | kernel-syms-5.3* | package | (any)
# zypper update <stuff> The following 11 NEW packages are going to be installed: kernel-default-5.3.18-lp152.44.1 kernel-default-5.8.13-2.1.g08db7a3 kernel-default-devel-5.3.18-lp152.44.1 kernel-default-devel-5.8.13-2.1.g08db7a3 kernel-devel-5.3.18-lp152.44.1 kernel-devel-5.8.13-2.1.g08db7a3 kernel-preempt-devel kernel-source-5.3.18-lp152.44.1 kernel-source-5.8.13-2.1.g08db7a3 kernel-syms-5.3.18-lp152.44.1 kernel-syms-5.8.13-2.1.g08db7a3 <stuff>
RESULTS: zypper ignores the package lock and wants to install 5.3.18 kernel.
Test #2: Remove all package locks and create repository locks to prevent kernels from being installed from the 15.2 updates repository:
# zypper al -r "openSUSE-Leap-15.2-Update" kernel-default* kernel-default-devel* kernel-syms* kernel-source* kernel-macros* kernel-devel* Specified locks have been successfully added.
# zypper ll
# | Name | Type | Repository --+-----------------------+---------+------------ 1 | kernel-default* | package | repo-update 2 | kernel-default-devel* | package | repo-update 3 | kernel-devel* | package | repo-update 4 | kernel-macros* | package | repo-update 5 | kernel-source* | package | repo-update 6 | kernel-syms* | package | repo-update
# zypper update <stuff> The following 11 NEW packages are going to be installed: kernel-default-5.3.18-lp152.19.2 kernel-default-5.8.13-2.1.g08db7a3 kernel-default-devel-5.3.18-lp152.19.2 kernel-default-devel-5.8.13-2.1.g08db7a3 kernel-devel-5.3.18-lp152.19.2 kernel-devel-5.8.13-2.1.g08db7a3 kernel-preempt-devel kernel-source-5.3.18-lp152.19.2 kernel-source-5.8.13-2.1.g08db7a3 kernel-syms-5.3.18-lp152.19.2 kernel-syms-5.8.13-2.1.g08db7a3 <stuff>
RESULTS: No change. The repository locks are ignored. zypper continues to want to install 5.3.18.
Test #3: Remove those locks, create repository locks for Kernel:stable.
# zypper al -r "Kernel:stable" kernel-default* kernel-default-devel* kernel-syms* kernel-source* kernel-macros* kernel-devel* Specified locks have been successfully added.
# zypper ll
# | Name | Type | Repository --+-----------------------+---------+-------------- 1 | kernel-default* | package | Kernel:stable 2 | kernel-default-devel* | package | Kernel:stable 3 | kernel-devel* | package | Kernel:stable 4 | kernel-macros* | package | Kernel:stable 5 | kernel-source* | package | Kernel:stable 6 | kernel-syms* | package | Kernel:stable
# zypper update <stuff> The following 6 NEW packages are going to be installed: kernel-default-5.3.18-lp152.44.1 kernel-default-devel-5.3.18-lp152.44.1 kernel-devel-5.3.18-lp152.44.1 kernel-preempt-devel kernel-source-5.3.18-lp152.44.1 kernel-syms-5.3.18-lp152.44.1 <stuff>
RESULTS: The locks for Kernel:stable are honored. The 5.8.13 kernels are no longer marked for installation.
Final test: Remove the Kernel:stable locks and create repository locks for "@System":
# zypper al -r "@System" kernel-default* kernel-default-devel* kernel-syms* kernel-source* kernel-macros* kernel-devel* Specified locks have been successfully added.
# zypper ll
# | Name | Type | Repository --+-----------------------+---------+----------- 1 | kernel-default* | package | (any) 2 | kernel-default-devel* | package | (any) 3 | kernel-devel* | package | (any) 4 | kernel-macros* | package | (any) 5 | kernel-source* | package | (any) 6 | kernel-syms* | package | (any)
# zypper update <stuff> The following 31 items are locked and will not be changed by any action: Available: kernel-default-base kernel-default-base-rebuild kernel-default-debuginfo kernel-default-debugsource kernel-default-devel-debuginfo kernel-default-livepatch-devel kernel-devel-rt kernel-source-rt kernel-source-vanilla kernel-syms-rt <stuff> The following 9 package updates will NOT be installed: kernel-default-5.8.13-2.1.g08db7a3 kernel-default-devel-5.8.13-2.1.g08db7a3 kernel-devel-5.8.13-2.1.g08db7a3 kernel-macros kernel-source-5.8.13-2.1.g08db7a3 kernel-syms-5.8.13-2.1.g08db7a3 libseccomp-devel ... <stuff>
RESULTS: That also seems to work. No kernels are marked for installation now. ----------
So, I can create a repository lock to prevent kernels from being installed from Kernel:stable. I can create a global @System lock to prevent all kernels from being installed. But I seem to be unable to create a lock to specifically prevent 5.3.18 kernels from being installed from the 15.2 updates repo while still allowing kernels to be installed from Kernel:stable.