On Sun, Oct 02, 2005 at 03:07:54AM +0200, Christoph Wickert wrote:
Just an example what happens while playing with different
config packages:
$ ls -l atrpms*
insgesamt 40
-rw-r--r-- 1 root root 553 21. Aug 11:13 atrpms.list
$ rpm -i
--replacefiles
/var/cache/yum/atrpms/packages/medley-package-config-102-1.rhfc4.at.i386.rpm
Warnung: /etc/apt/sources.list.d/atrpms.list created
as /etc/apt/sources.list.d/atrpms.list.rpmnew
Warnung: /etc/apt/sources.list.d/livna.list created
as /etc/apt/sources.list.d/livna.list.rpmnew
Warnung: /etc/apt/sources.list.d/nrpms.list created
as /etc/apt/sources.list.d/nrpms.list.rpmnew
Warnung: /etc/sysconfig/rhn/sources created
as /etc/sysconfig/rhn/sources.rpmnew
Warnung: /etc/yum.repos.d/freshrpms.repo created
as /etc/yum.repos.d/freshrpms.repo.rpmnew
Warnung: /etc/yum.repos.d/livna.repo created
as /etc/yum.repos.d/livna.repo.rpmnew
Warnung: /etc/yum.repos.d/nrpms.repo created
as /etc/yum.repos.d/nrpms.repo.rpmnew
$ ls -l atrpms*
insgesamt 156
-rw-r--r-- 1 root root 553 21. Aug 11:13 atrpms.list
-rw-r--r-- 1 root root 553 21. Aug 11:13 atrpms.list.rpmnew
$ rpm -e --nodeps medley-package-config
$ sources.list.d]# ls -l atrpms*
insgesamt 48
-rw-r--r-- 1 root root 553 21. Aug 11:13 atrpms.list.rpmnew
As you can see my old customized atrpms file is gone, so are the others.
Isn't that what you asked rpm to do with --replacefiles? From rpm's
man page:
--replacefiles
Install the packages even if they replace files from other, already
installed, packages.
I never use it, so I don't know what it *actually* does. I would
expect it to still honour %config(noreplace) tags in the specfile, but
it looks like it ignores them.
But that is not a problem/bug of the package's content then, but a bug
in rpm --replacefiles, either in code or in its description on the man
page.
> They are as a set of packages (and that's how any repo
should be
> considered IMHO), you need to make a full upgrade.
IMHO a repo is a source for packages but one shouldn't be forced to
upgrade against any repo if one doesn't want to.
In general I agree, but what about package subsets that are
intertwined like foo and foo-devel? Or more fine-grained packages, or
- as in this case - cooperating packages (e.g. packages coming from a
different srpm, but still depending on each other's structure).
So a repo is not just a sum of independent packages, there are various
levels of dependencies (explicit package dependencies, files
dependencies, implicit assumptions about other packages etc.) between
subsets of the repo, and if you break them, you get a buggy situation.
This is why setting priorities and weights or temporily enabling repos
is a bad thing, and why ATrpms doesn't enforce any such policy in
meldey-package-config anymore. It did some ages and a day ago, but it
was withdrawn due to politics (ATrpms wants to be friendly towards any
repo), and the above mentioned technical issues.
> > (since it is part of a core install, maybe livna-release,
too) or
> > smart/apt from your repo should not depend on them.
>
> They don't, try rpm -qR smart/apt, there is no trace of any
> *-package-config.
but smart depends on files provided by *-package-config
$ rpm -qf `rpm -qR smart | grep distro`
medley-package-config-102-1.rhfc4.at
No, smart depends on its config files, that can be provided by any
other package. ATrpms is offering two packages, one for using ATrpms'
mirrors for FC and ATrpms, and one for using all known repos. But you
can create your own tailored package, and so can any rpm repository
maintainer. The smart package itself is thus completely unaware what
repo has soldered it, it just asks for its config file(s).
Ok, now I got it. I didn't realize that packages are sorted by
their
srpms. IMHO the name 3rd-party-package-config is misleading:
A package named 3rd-party-* should not include config files for core and
extras, for they are not 3rd party be definition.
Well, give me a better name :)
What's the use of an empty 3rd-party-package-config.rpm - no
files
inside, no requires, nothing to provide? It might be better to remove it
from your repo if possible?!
Yes, the issue is here more with the buildsystem, that examines with
rpm --specfile what packages should be generated, and I think
3rd-party-package-config is always returned, whether it has a %file
section or not.
P.S.: Pls don't get me wrong: I really honor your work for the
fedora
community, although some of above statemenents might not sound that way.
Oh, no, I don't get you wrong, I like constructive critism. :)
As I said, this is not the perfect solution, and I wouldn't mind to
improve it. It is a good *working* solution and it works not only for
FC4, but for FC3 to FC1, RH9 to RH7.3 and RHEL4 and RHEL3 including
some clones like scientific linux.
Supporting all these distros and their different config mechanisms
(sometimes bundled with the depsolver, sometimes with *-release files
etc., sometimes there is no depsolver at all) is difficult, and any
change in deployment needs to take care not to introduce any
regression.
--
Axel.Thimm at
ATrpms.net