zypper installs conflicting package without complaint

I created an rpm that attempts to install the file /etc/rsyslog.conf (which on my system is already installed and owned by the rsyslog package).

When I install this through rpm, I get the appropriate error. However, when I install the rpm through zypper, I get no complaints, and in the end two packages end up owning the file.

Is this the expected behavior? Does zypper force install rpms despite errors?
I looked through all the config files, but couldn’t find any setting dealing with this case. Is this something that is controlled by a config somewhere?

Hopefully the code below helps explain the situation.
Thanks in advance for any help clearing this up.
I’m running openSUSE 11.2-0

linux:/usr/src/packages/RPMS/x86_64 # rpm -i testfile-2.0.1-0.x86_64.rpm 
	file /etc/rsyslog.conf from install of testfile-2.0.1-0.x86_64 conflicts with file from package rsyslog-4.4.1-3.1.x86_64
linux:/usr/src/packages/RPMS/x86_64 # zypper in testfile-2.0.1-0.x86_64.rpm 
Loading repository data...
Warning: Repository 'http-' appears to outdated. Consider using a different mirror or server.
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:

1 new package to install.
Overall download size: 1.0 MiB. After the operation, additional 1.0 MiB will be 
Continue? [y/n/?] (y): y
Retrieving package testfile-2.0.1-0.x86_64 (1/1), 1.0 MiB (1.0 MiB unpacked)
Installing: testfile-2.0.1-0 [done]
Additional rpm output:
warning: /etc/rsyslog.conf saved as /etc/rsyslog.conf.rpmsave

linux:/usr/src/packages/RPMS/x86_64 # rpm -qf /etc/rsyslog.conf


Does the same if zypper is configured to first download all the RPMs (DownloadInAdvance in /etc/zypp/zypp.conf)? If so you could add a comment in that bug.

Thanks RedDwarf. That explains the behavior.
The rpm I’m trying to install is local on my machine, so zypper could actually check the files if it wanted to. I can see why it wouldn’t during installs from a repository.
I’ll put the rpm in my repo and try the DownloadInAdvance option, just to see what happens. Once I have some more info, I’ll make a comment on the bug.
Thanks again.

If anyone will indulge a possibly misguided question:

As I understand it, zypper is simply a wrapper for rpm. If rpm normally complains when I try to install the conflicting file, what arguments does zypper feed rpm to ensure the file installs? Does it just use --force, or is it a little gentler than that? It makes sense that zypper itself can’t check for conflicts, but I would expect the actual install of the rpm to fail.

In one of my other tests, I saw that zypper installed a signed package without having the appropriate key, and I’m wondering if this could be an artifact of force installing the rpms.

Just run top while installing packages with zypper and you will see.


Make that “ps aux |grep rpm” instead of top, most like called by “watch”.

Have a look yourself. I don’t want to spoil you the surprise.