Would changing the installer to untar site*.tgz right before finish_up in install.sh be amenable? This would complicate the logic for install_files, but hopefully provide the least amount of surprises for all and allow for adding new files in the base install.
-Matthew Martin ________________________________________ From: Theo de Raadt [dera...@cvs.openbsd.org] Sent: Monday, March 31, 2014 18:42 To: Martin, Matthew Cc: tech@openbsd.org Subject: Re: Installer overwrites configuration from siteXX That is a very dangerous direction. Inevitably, site*.tgz will need refactoring or replacement in the coming years. What you submitted will surprise people, just like you were surprised the files are replaced. I think this will cause further damage. For instance, if we start shipping these files in the base install, suddenly the install script will break. Complex semantic.. > Diff below changes behavior in the install script to not overwrite etc > files that are already present. This comes up when during install an > interface is configured with dhcp and siteXX configures it statically or > mygate is configured manually during installation and is different in > siteXX. The alternative is to untar siteXX sets specially after the > installer has copied over its config which is quite a bit messier. > > This may introduce problems with boot.conf, myname, and sysctl.conf as > they exist in the etc set. Perhaps these files should be handled > separately. > > Index: distrib/miniroot/install.sh > =================================================================== > RCS file: /cvs/src/distrib/miniroot/install.sh,v > retrieving revision 1.246 > diff -p -u -r1.246 install.sh > --- distrib/miniroot/install.sh 20 Mar 2014 20:01:28 -0000 1.246 > +++ distrib/miniroot/install.sh 31 Mar 2014 08:26:46 -0000 > @@ -267,7 +267,7 @@ _f=dhclient.conf > # myname ttys boot.conf resolv.conf sysctl.conf resolv.conf.tail > # Save only non-empty (-s) regular (-f) files. > (cd /tmp; for _f in fstab hostname* kbdtype my* ttys *.conf *.tail; do > - [[ -f $_f && -s $_f ]] && mv $_f /mnt/etc/. > + [[ -f $_f && -s $_f ]] && { echo n | mv -i $_f /mnt/etc/. 2>/dev/null } > done) > > apply