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:/sbin
ARCH=$(uname -m)
-SETSDIR=/home/_sysupgrade
ug_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/_sysupgrade
  RELEASE=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} && > keep
cat <<__EOT >/auto_upgrade.conf
  Location 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
  fi

I 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?

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to