On 11/20/19 12:06 PM, Solene Rapenne wrote:
On Tue, Nov 12, 2019 at 07:02:56PM +0100, Renaud Allard wrote:On 12/11/2019 08:29, Theo de Raadt wrote:Renaud, please test it for me like this: sysupgrade -d / This interface is dangerously incorrect.What about this one?Index: sysupgrade.8 =================================================================== RCS file: /cvs/src/usr.sbin/sysupgrade/sysupgrade.8,v retrieving revision 1.10 diff -u -p -r1.10 sysupgrade.8 --- sysupgrade.8 3 Oct 2019 12:43:58 -0000 1.10 +++ sysupgrade.8 12 Nov 2019 18:01:04 -0000 @@ -24,6 +24,7 @@ .Nm .Op Fl fkn .Op Fl r | s +.Op Fl d Ar directory .Op Ar installurl .Sh DESCRIPTION .Nm @@ -48,6 +49,13 @@ triggering a one-shot upgrade using the .Pp The options are as follows: .Bl -tag -width Ds +.It Fl d Ar directory +Choose the prefix of the +.Ar directory +in which the sets will be downloaded. +_sysupgrade will be appended to that name. +Default is +.Pa /home . .It Fl f Force an already applied upgrade. The default is to upgrade to latest snapshot only if available. Index: sysupgrade.sh =================================================================== RCS file: /cvs/src/usr.sbin/sysupgrade/sysupgrade.sh,v retrieving revision 1.32 diff -u -p -r1.32 sysupgrade.sh --- sysupgrade.sh 11 Nov 2019 18:26:52 -0000 1.32 +++ sysupgrade.sh 12 Nov 2019 18:01:04 -0000 @@ -25,7 +25,6 @@ umask 0022 export PATH=/usr/bin:/bin:/usr/sbin:/sbinARCH=$(uname -m)-SETSDIR=/home/_sysupgradeug_err(){ @@ -34,7 +33,7 @@ ug_err()usage(){ - ug_err "usage: ${0##*/} [-fkn] [-r | -s] [installurl]" + ug_err "usage: ${0##*/} [-fkn] [-r | -s] [-d directory] [installurl]" }unpriv()@@ -73,14 +72,16 @@ rmel() { echo -n "$_c" }+SETSDIR=/home/_sysupgradeRELEASE=false SNAP=false FORCE=false KEEP=false REBOOT=true-while getopts fknrs arg; do+while getopts d:fknrs arg; do case ${arg} in + d) SETSDIR=${OPTARG}/_sysupgrade;; f) FORCE=true;; k) KEEP=true;; n) REBOOT=false;; @@ -195,7 +196,7 @@ ${KEEP} && > keepcat <<__EOT >/auto_upgrade.confLocation of sets = disk -Pathname to the sets = /home/_sysupgrade/ +Pathname to the sets = ${SETSDIR} Set name(s) = done Directory does not contain SHA256.sig. Continue without verification = yes __EOT @@ -203,7 +204,7 @@ __EOT if ! ${KEEP}; then CLEAN=$(echo SHA256 ${SETS} | sed -e 's/ /,/g') cat <<__EOT > /etc/rc.firsttime -rm -f /home/_sysupgrade/{${CLEAN}} +rm -f ${SETSDIR}/{${CLEAN}} __EOT fiI see no objection to this diff. Changes are minimal and it allows using another destination safely (_sysupgrade gets appended to the chosen base directory) ok solene@
Thank you solene@ Anyone else?
smime.p7s
Description: S/MIME Cryptographic Signature
