On 04/06/2016 12:20 PM, Alexis Ballier wrote: > On Wednesday, April 6, 2016 6:06:35 PM CEST, Richard Yao wrote: > >> That is unless you put per-system state in /usr/local, do symlinks to it >> in / and mount /usr/local as part of system boot, which is the other way >> of doing this. I have seen a variant of this done in asuswrt-merlin on >> routers. > > This doesnt seem to have anything to do with what I was describing. > > Another option I'm using a lot is nfsroot. This doesn't have the same > level of flexibility: running multiple hosts with nfsroot and thus > shared /etc/fstab tends to be annoying. > >>> See https://fedoraproject.org/wiki/Features/UsrMove for a more complete >>> discussion. >> >> That does not address the problems of supporting this configuration in a >> rolling release. >> >> Formats in /etc can fall out of sync with software in /usr. If boot >> options change, the stuff in /etc/init.d is not updated. If you add >> software, the update to /etc/init.d is omitted. If you have a baselayout >> change, it is not propagated. > > Ever heard of CONFIG_PROTECT ? :) What you describe is already what > happens and what most people want.
Leveraging the /usr merge to enable easier updating of multiple systems means that you are updating a Gentoo system image on a build server, snapshotting /usr both before/after the update and then distributing the delta on /usr to other systems without any of the changes that occurred outside of /usr. A proper update requires finding all of those changes and then applying them manually. That really is not the same thing that RHEL and Solaris have, where the necessity of propagating changes outside of /usr is minimized by having none to propagate. I do not understand how CONFIG_PROTECT is relevant here. Whatever CONFIG_PROTECT did was done on the build system. The systems receiving the updates via ZFS send/recv or some similar mechanism are not going to have CONFIG_PROTECT evaluated. Even if it were somehow evaluated, all of the paths in CONFIG_PROTECT should be outside of /usr anyway.