user3661224
user3661224

Reputation: 31

yum update does not update dependency to required minimal version

We have two RPM packages, both developed in-house:

Package wm-billing-scrooge requires wm-log-shipper:

require: wm-log-shipper (in *wm-billing-scrooge* spec file)

Now we fixed a problem in wm-log-shipper and want to make sure that whenever we update wm-billing-scrooge on a machine we will also update wm-log-shipper to at least the required version. Therefore, we changed that require clause to

require: wm-log-shipper >= 4.50.0

Now, my expectation was that whenever I do a

yum update wm-billing-scrooge

on a machine with an old(er) version of wm-log-shipper installed yum will

Is this expectation correct?

Provided this expectation is correct, what could possibly be the reason why in our case yum fails to upgrade wm-log-shipper?

Here a shell session which hopefully illustrates the problem:

devwulf-smsplus-billing1:~# yum list installed wm-log-shipper
Loaded plugins: security
office-wm-software-development                                                                                                                                                           | 2.7 kB     00:00     
office-wm-software-development/primary_db                                                                                                                                                | 890 kB     00:00     
wm-software                                                                                                                                                                              | 2.7 kB     00:00     
wm-software/primary_db                                                                                                                                                                   | 890 kB     00:00     
Installed Packages
wm-log-shipper.x86_64                                                       4.46.0-INTEGRATION_S46_SNAPSHOT20140128084356                                                        @office-wm-software-development
devwulf-smsplus-billing1:~# repoquery --requires wm-billing-scrooge
/bin/sh
jpackage-utils
runtime-env-init-functions
wm-log-shipper >= 4.50.0
devwulf-smsplus-billing1:~# yum list installed wm-log-shipper
Loaded plugins: security
office-wm-software-development                                                                                                                                                           | 2.7 kB     00:00     
wm-software                                                                                                                                                                              | 2.7 kB     00:00     
Installed Packages
wm-log-shipper.x86_64                                                       4.46.0-INTEGRATION_S46_SNAPSHOT20140128084356                                                        @office-wm-software-development
devwulf-smsplus-billing1:~# rpmdev-vercmp 4.50.0 4.46.0-INTEGRATION_S46_SNAPSHOT20140128084356
0:4.50.0-None is newer
devwulf-smsplus-billing1:~# yum update -d 10 wm-billing-scrooge
Loading "security" plugin
Running "config" handler for "security" plugin
Config time: 0.037
Yum Version: 3.2.29
COMMAND: yum update -d 10 wm-billing-scrooge 
Installroot: /
Ext Commands:

   wm-billing-scrooge
Setting up Package Sacks
office-wm-software-development
wm-software                                                                                                                                                                              | 2.7 kB     00:00     
Running "exclude" handler for "security" plugin
pkgsack time: 0.340
Reading Local RPMDB
rpmdb time: 0.001
Setting up Update Process
Building updates object
up:Obs Init time: 0.263
putting perl-version in simple update
....
processing nss-util
up:simple updates time: 0.033
up:obs time: 0.005
up:condense time: 0.000
updates time: 0.632
Not Updating Package that is already updated: wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140519150818
Not Updating Package that is already updated: wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140519150818
Resolving Dependencies
Running "preresolve" handler for "security" plugin
--> Running transaction check
---> Package wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140519150818 will be updated
Checking deps for wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140519150818 - ud
---> Package wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140521105707 will be an update
Checking deps for wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140521105707 - u
looking for ('wm-log-shipper', 'GE', ('0', '4.50.0', None)) as a requirement of wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140521105707 - u
--> Finished Dependency Resolution
Dependency Process ending
Depsolve time: 0.815

Dependencies Resolved

================================================================================================================================================================================================================
 Package                                        Arch                               Version                                                     Repository                                                  Size
================================================================================================================================================================================================================
Updating:
 wm-billing-scrooge                             x86_64                             4.54.0-SNAPSHOT20140521105707                               office-wm-software-development                              21 M

Transaction Summary
================================================================================================================================================================================================================
Upgrade       1 Package(s)

Total download size: 21 M
Is this ok [y/N]: N
Exiting on user Command
devwulf-smsplus-billing1:~#

Any ideas?

Thx, Olaf

Upvotes: 3

Views: 1111

Answers (1)

Bruno9779
Bruno9779

Reputation: 1669

require: wm-log-shipper >= 4.50.0

is wrong.

It should read :

Requires: wm-log-shipper >= 4.50.0

Depending from the rpmbuild version you are running the following might be needed:

AutoReq:        no

Newer versions of rpmbuild calculate the requirements automatically. You should note what are the requirements of your rpm in the rpmbuild output, when running without the "Autoreq: no" flag. Then add them to the "Required: " flag by hand.

Upvotes: 1

Related Questions