Bug 520148

Summary: offer an individual/safe upgrade option
Product: [openSUSE] openSUSE 11.2 Reporter: Elmar Stellnberger <estellnb>
Component: libzyppAssignee: E-mail List <zypp-maintainers>
Status: RESOLVED WORKSFORME QA Contact: E-mail List <qa-bugs>
Severity: Enhancement    
Priority: P5 - None    
Version: Factory   
Target Milestone: ---   
Hardware: All   
OS: openSUSE 11.1   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: zypper log

Description Elmar Stellnberger 2009-07-08 11:20:31 UTC
User-Agent:       Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.10 (like Gecko) SUSE

  External repos like packman or libdvdcss distribute full packages of newer version rather than patches. At the moment the only way to get the newer version is a 'zypper dup' which is a rather brutal sledgehammer doing all possible upgrades (with dup --from: at least all possible upgrades from a singleton repository) even changing the current repo a package is drawn from.
This request is about allowing upgrades of singleton packages or in a more advanced fashion about a safe-upgrade option that will only upgrade a package if it has previously been drawn from the same repo the upgrade is now available from.

Reproducible: Always
Comment 1 Jan Kupec 2009-07-08 11:24:37 UTC
doesn't 'zypper up' do what you want?
Comment 2 Elmar Stellnberger 2009-07-08 17:30:09 UTC
  Hmm, absolutely right; basically zypper up would be supposed to do the job; nonetheless there seem to exist problems with certain packages:
installed: kaffeine-lang-0.8.7-2.pm.2
said to be available by YaST: kaffeine-lang 0.8.7-1.95 !!
by browsing http://ftp.skynet.be/pub/packman/suse/11.1/ manually I can find the following: kaffeine-lang-0.8.8-0.pm.1

Perhaps this is just an inconsistency of the Packman repo since zypper refresh could not resolve this (perhaps we should ask the repo providers to keep their repo in sync.).
Comment 3 Elmar Stellnberger 2009-07-08 17:39:53 UTC
Created attachment 303849 [details]
zypper log
Comment 4 Elmar Stellnberger 2009-07-08 17:49:21 UTC
repodata/primary.xml shows the right entry:
<rpm:entry name="kaffeine-lang" flags="EQ" epoch="0" ver="0.8.8"/>
....
<package type="rpm"><name>kaffeine-lang</name><arch>ppc</arch><version epoch="0" ver="0.8.8" rel="0.pm.1"/>
Comment 5 Elmar Stellnberger 2009-07-08 18:01:51 UTC
Can I be sure that 'zypper up' will not switch the repo (i.e. that the package will not be drawn from the packman-opensuse11.0 repo if the opensuse11.1 repo has higher priority.)?
Comment 6 Elmar Stellnberger 2009-07-08 18:08:09 UTC
even removing and adding the packman repo again did not help.
Comment 7 Elmar Stellnberger 2009-07-09 08:57:25 UTC
Hello; this is important to me since tools like checkroot (http://wwwu.edu.uni-klu.ac.at/estellnb/checkroot/) will rely on a properly updated system.
Comment 8 Jan Kupec 2009-07-29 14:40:58 UTC
(In reply to comment #5)
> Can I be sure that 'zypper up' will not switch the repo (i.e. that the package
> will not be drawn from the packman-opensuse11.0 repo if the opensuse11.1 repo
> has higher priority.)?

Yes. The vendor change won't happen automatically without your consent (unless the vendor is trusted - written in /etc/zypp/vendors.d) even if the other vendor's repo had the same or higher priority.

The vendor change is also why 'zypper up/lu' did not tell you about the newer package in c#2 ('zypper lu --all' would show an available update). YaST shows such package as available (shows the version from repo with highest priority), but when you try to install it, you'll get a resolver dialog with 'allow a vendor change' option as one of the solutions.

So i guess we can close this, right?
Comment 9 Elmar Stellnberger 2009-08-04 10:19:14 UTC
  Sounds great. Although I am still in doubt that updating works as it should. The checkroot-tool has recently found 40 updates for my system but strictly sticks to the same repo a package has been installed from:
"if usedpkg.verrel != verrel and (usedpkg.repono==reponr or usedpkg.repono==None) and samearch:" - while only two pkgs have repono None (fpc, novell-zenworks-mono) .
  Please have a look whether you can reproduce this. Unfortunately I have now opened up a new bug (Bug 527903) for this since I have not found the old one.