On Thu, Aug 10, 2017 at 11:05:06PM +0000, Ben Woods wrote: > On Thu, 10 Aug 2017 at 11:35 pm, Matthew Seaman <[email protected]> wrote: > > > On 10/08/2017 16:21, Glen Barber wrote: > > >> * Since we have no mechanism of properly merging changes to /etc > > >> we simply copy files as needed with pc-updatemanager, and it is > > >> difficult to maintain what should be updated, merged, or removed. > > >> > > > This is another long-standing item in the list of things to fix, indeed. > > > > The idea floated at BSDCam was to have a package that would install a > > pristine copy of the /etc files under /var/db/etcupdate and prompt the > > user to then use that tool to update or install their configs. That > > should provide a nice compromise between having the files available from > > pkgs and not enforcing a specific mechanism (tools, not policy) to > > update /etc. > > > I haven't attended either of the conferences, and I'm sure this would have > been discussed, but for those of us who weren't there: > > Pkgng has 3-way merge capability (copied from fossil-scm in pkg 1.4.0). Why > are we considering using it? Not having ever seen this functionality used, > I would have thought the only things to do would be agree on where the > pristine old copy would be stored (.sample files in /etc?) and perhaps > improve pkgng if the user experience isn't satisfactory. >
The problem isn't with pkg(8) ability to do a 3-way merge, but the way the relevant files are handled and installed by the installworld and distribute targets. Last I messed with etc/Makefile, for example, everyone using a packaged base that upgraded during a 12-hour timeframe (give or take) ended up with their /etc/master.passwd being overridden. This is the kind of fallout I do not want to experience again. I have been wanting to refactor etc/Makefile for some time, but I am not confident that rewriting it to meet packaged base needs is sufficient. I think we should instead use the tools that exist to do what they are written to do, regardless of an etc/Makefile rewrite. Hopefully this clarifies it a bit more. Glen
signature.asc
Description: PGP signature
