Tony Nelson wrote:
At 8:14 AM +0100 8/12/05, Paul Howarth wrote:
On Thu, 2005-08-11 at 17:29 -0400, Tony Nelson wrote:
...
But why was [vimrc.rpmnew] created anyway? I'd have thought that there
would be at least minimal merge logic which would not make .rpmnew files
when the file would be identical with the original.
My understanding of the logic for configuration files in package updates
is:
if old-rpm-config-file is identical to new-rpm-config-file
then
leave the installed-config-file unchanged
elsif installed-config-file is identical to old-rpm-config-file
then
install new-rpm-config-file
elsif config file marked (noreplace) in rpm package
then
install new-rpm-config-file as new-rpm-config-file.rpmnew
else
rename installed-config-file installed-config-file.rpmsave
install new-rpm-config-file
endif
Given that vimrc has not changed over many releases, one might expect
that vimrc.rpmnew files shouldn't get created, but they always do. I
believe that the reason for this is that /etc/vimrc is included in both
the vim-minimal and vim-common; there's no conflict between these two
packages because the vimrc file is the same in both packages, but rpm
seems to create the .rpmnew file anyway.
Thanks, Paul. I see the (noreplace) in the spec file. I don't think I
quite understand subpackages yet.
All a subpackage is is a separate binary package built from the same
source/spec at the same time. So for instance there's zlib and
zlib-devel, both built from the zlib src.rpm. The -devel package
contains various things that not all users of zlib will need, so it's
broken out into a subpackage so that those bits don't need to be
installed unless you actually need them. As far as RPM itself is
concerned, once the subpackages are built, they're entirely separate
packages with no relationship between them (though it's usually the case
that the packager will specify in the spec file that one depends on the
other, e.g. you can only install zlib-devel if you have zlib installed).
Paul.