On 11/21/2013 05:57, Martin Bähr wrote:
On Thu, Nov 21, 2013 at 11:23:02AM +0100, Mark Trompell wrote:
I'll try to keep this discussion going, will you be able to minimally
help out and explain what you did (how and why),
Actually I would like to have things rebuild from ground but let's
face it until we don't have more people fluent in that lowlevel stuff
We should just go for binary or srpm import of a sane fedora base and
keep options open to go to more independance step by step if we want
and more devs pop in (if that happens at all)
We need to quickly line out a way to get to f3 and then having people
comitting time in doing the tasks.

so what are the next steps?
where are the holdups?

can we temporarily fork conary to get the patches needed to import
fedora? are those patches enough, or are there more issues?

does that import then produce a runnable system?

what else is needed to be able to migrate from fl:2?

is that an issue only with supporting updateall and
shouldn't "conary migrate" work in any case?

or is even "conary migrate" problematic?

Migrate can't do anything updateall can't do, it's just choosing which troves should be installed. After that it's the same install code no matter what mode it's in.

There are two solutions that can address the problem at build time:

1) Don't allow packages to install into /bin, /sbin, or any other usrmerge symlink. I like this one, because it produces the best packages. But it might not be expedient because a custom policy might be needed to fix it. The policy would be useful for both the distro import as well as for new packages built later.

2) Automatically add a requirement on the filesystem trove to any file installed into the usermerge symlinks and let the dep solver order things correctly. Unfortunately it will not guarantee that such troves will be installed strictly after the filesystem trove: it might happen in the same job. I don't know what will happen in that case. This option is easy to do, just add some Requires lines to the distro policy.

Neither of these will enable the use of previously-built packages. I don't think there's really a good answer to that, but it should probably be addressed. However if the distro itself is sane then most people will never run into problems, they only come up when packages installing into a symlink are in the same install job as the symlink itself, and "extra" packages typically aren't a problem because they get installed later.

There is an option available for rmake to force a particular trove to be installed first, called "bootstrapTroves", that was added for SLES. But it is inelegant and doesn't help migrations.

Coincidentally, I attempted to do a "yum upgrade" from F16 to F19 just this past week and it exploded for the same reason -- stuff in the way of the usrmerge symlinks. There are still a good number of packages that are installing into /bin, most annoyingly including rpm itself. Regardless of whether it's RPM or Conary, installing managed files into a symlink is really not a good idea.

Joke option #3: use bind-mounts instead of symlinks. Confusing but effective!

_______________________________________________
Foresight-devel mailing list
[email protected]
https://lists.foresightlinux.org/mailman/listinfo/foresight-devel

Reply via email to