Bug 36862 - rpm -e suggests an id with epoch, but rpm -q/-e doesn't understand this format
Summary: rpm -e suggests an id with epoch, but rpm -q/-e doesn't understand this format
Status: CLOSED FIXED
Alias: None
Product: Branch p8
Classification: Distributions
Component: rpm (show other bugs)
Version: не указана
Hardware: all Linux
: P3 normal
Assignee: Vladimir D. Seleznev
QA Contact: qa-p8@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-06-05 03:12 MSK by Ivan Zakharyaschev
Modified: 2019-06-11 10:41 MSK (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Zakharyaschev 2019-06-05 03:12:36 MSK
4.0.4-alt101.M80P.5.3

Could you please implement the parser for Epoch, too. (This will be useful for a unified update-kernel in Sisyphus and p8.)

Please base your commit on my 28ca455c3974c5f84f4e692b37ed74a829d090cf and add an analoguous Provides: RPMQ(EPOCH). (I'll require this feature by this name where needed: update-kernel, apt.)

Demonstration:

[root@prodesk ~]# rpm -e kernel-image-std-def
error: "kernel-image-std-def" specifies multiple packages:
  kernel-image-std-def-1:4.4.14-alt0.M80P.1@1466909237
  kernel-image-std-def-1:4.4.23-alt0.M80P.1@1475255009
  kernel-image-std-def-1:4.9.178-alt0.M80P.1:p8+229830.100.2.1
[root@prodesk ~]# rpm -e kernel-image-std-def-1:4.4.14-alt0.M80P.1@1466909237 --test
error: package kernel-image-std-def-1:4.4.14-alt0.M80P.1@1466909237 is not installed
[root@prodesk ~]# rpm -e kernel-image-std-def-1:4.4.14-alt0.M80P.1 --test
error: package kernel-image-std-def-1:4.4.14-alt0.M80P.1 is not installed
[root@prodesk ~]# rpm -e kernel-image-std-def-4.4.14-alt0.M80P.1@1466909237 --test
error: removing these packages would break dependencies:
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-v4l-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-v4l-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-virtualbox-std-def-5.0.20-alt1.263182.0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-staging-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-staging-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-virtualbox-addition-std-def-5.0.20-alt1.263182.0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-nvidia-std-def-361.45.11-alt2.263182.0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-kvm-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-kvm-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-nouveau-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-nouveau-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-radeon-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-radeon-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-bcmwl-std-def-6.30.223.248-alt10.263182.0.M80P.1
[root@prodesk ~]# rpm -e kernel-image-std-def-4.4.14-alt0.M80P.1 --test
error: removing these packages would break dependencies:
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-v4l-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-v4l-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-virtualbox-std-def-5.0.20-alt1.263182.0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-staging-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-staging-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-virtualbox-addition-std-def-5.0.20-alt1.263182.0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-nvidia-std-def-361.45.11-alt2.263182.0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-kvm-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-kvm-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-nouveau-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-nouveau-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-radeon-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-drm-radeon-std-def-4.4.14-alt0.M80P.1
	kernel-image-std-def = 1:4.4.14-alt0.M80P.1 is needed by kernel-modules-bcmwl-std-def-6.30.223.248-alt10.263182.0.M80P.1
[root@prodesk ~]# rpm -q rpm --lastchange
* Ср май 29 2019 Vladimir D. Seleznev <vseleznv@altlinux.org> 4.0.4-alt101.M80P.5.3
- rpmdb: rpmdbInitIterator() handles BuildTime and DistTag.
- lib: rpmErase() prints EVR(D|T) when multiple packages matched.
[root@prodesk ~]# 


This works in Sisyphus:

[root@prodesk ~]# chroot /mnt/lx_/
[root@prodesk /]# rpm -e kernel-image-std-def
error: "kernel-image-std-def" specifies multiple packages:
  kernel-image-std-def-1:4.19.46-alt1:sisyphus+230621.100.1.2.x86_64
  kernel-image-std-def-1:4.14.84-alt1:sisyphus.216982.100.x86_64
  kernel-image-std-def-1:4.19.45-alt1:sisyphus+229814.100.1.2.x86_64
[root@prodesk /]# rpm -e kernel-image-std-def-1:4.14.84-alt1:sisyphus.216982.100.x86_64 --test
error: Failed dependencies:
	.sisyphus.216982.100.2.1-kernel-image-std-def-1:4.14.84-alt1 is needed by (installed) kernel-modules-drm-radeon-std-def-1:4.14.84-alt1.x86_64
	.sisyphus.216982.100.2.1-kernel-image-std-def-1:4.14.84-alt1 is needed by (installed) kernel-modules-kvm-std-def-1:4.14.84-alt1.x86_64
	.sisyphus.216982.100.2.1-kernel-image-std-def-1:4.14.84-alt1 is needed by (installed) kernel-modules-staging-std-def-1:4.14.84-alt1.x86_64
	.sisyphus.216982.100.2.1-kernel-image-std-def-1:4.14.84-alt1 is needed by (installed) kernel-modules-drm-nouveau-std-def-1:4.14.84-alt1.x86_64
	.sisyphus.216982.100.2.1-kernel-image-std-def-1:4.14.84-alt1 is needed by (installed) kernel-modules-v4l-std-def-1:4.14.84-alt1.x86_64
	.sisyphus.216982.100.2.1-kernel-image-std-def-1:4.14.84-alt1 is needed by (installed) kernel-modules-drm-std-def-1:4.14.84-alt1.x86_64
	kernel-image-std-def = 1:4.14.84-alt1 is needed by (installed) kernel-modules-virtualbox-addition-std-def-5.2.20-alt1.265812.1.x86_64
	kernel-image-std-def = 1:4.14.84-alt1 is needed by (installed) kernel-modules-drm-radeon-std-def-1:4.14.84-alt1.x86_64
	kernel-image-std-def = 1:4.14.84-alt1 is needed by (installed) kernel-modules-bcmwl-std-def-6.30.223.248-alt15.k.265812.1.x86_64
	kernel-image-std-def = 1:4.14.84-alt1 is needed by (installed) kernel-modules-kvm-std-def-1:4.14.84-alt1.x86_64
	kernel-image-std-def = 1:4.14.84-alt1 is needed by (installed) kernel-modules-staging-std-def-1:4.14.84-alt1.x86_64
	kernel-image-std-def = 1:4.14.84-alt1 is needed by (installed) kernel-modules-drm-nouveau-std-def-1:4.14.84-alt1.x86_64
	kernel-image-std-def = 1:4.14.84-alt1 is needed by (installed) kernel-modules-v4l-std-def-1:4.14.84-alt1.x86_64
	kernel-image-std-def = 1:4.14.84-alt1 is needed by (installed) kernel-modules-drm-std-def-1:4.14.84-alt1.x86_64
[root@prodesk /]#
Comment 1 Repository Robot 2019-06-11 10:41:51 MSK
rpm-4.0.4-alt101.M80P.6.M80C.2 -> c8.1:

Wed Jun 05 2019 Ivan Zakharyaschev <imz@altlinux> 4.0.4-alt101.M80P.6.M80C.2
- Make rpm -q/-e accept package specification in [E:]V[-R[:D]][@T] format
  (with Epoch! As in rpm-4.13. Thx Vladimir D. Seleznev vseleznv@.) (ALT#36862)
- Provides: RPMQ(EPOCH) RPMQ(BUILDTIME) RPMQ(DISTTAG)
  (to be required by APT and other tools such as update-kernel, which need
  to query the RPM db by specifying Epoch, Buildtime, and Disttag).