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

Reply via email to