[BACK]Return to fw_install.sh CVS log [TXT][DIR] Up to [local] / openbsd / fw_update

Diff for /openbsd/fw_update/fw_install.sh between version 1.148 and 1.149

version 1.148, 2022/01/11 02:48:11 version 1.149, 2022/01/14 04:25:46
Line 55 
Line 55 
 tmpdir() {  tmpdir() {
         local _i=1 _dir          local _i=1 _dir
   
         # If we're not in the installer,          # The installer lacks mktemp(1), do it by hand
         # we have mktemp and a more hostile environment.  
         if [ -x /usr/bin/mktemp ]; then          if [ -x /usr/bin/mktemp ]; then
                 _dir=$( mktemp -d "${1}-XXXXXXXXX" )                  _dir=$( mktemp -d "${1}-XXXXXXXXX" )
         else          else
Line 71 
Line 70 
 fetch() {  fetch() {
         local _src="${FWURL}/${1##*/}" _dst=$1 _user=_file _exit _error=''          local _src="${FWURL}/${1##*/}" _dst=$1 _user=_file _exit _error=''
   
         # If we're not in the installer,          # The installer uses a limited doas(1) as a tiny su(1)
         # we have su(1) and doas(1) is unlikely to be configured.  
         set -o monitor # make sure ftp gets its own process group          set -o monitor # make sure ftp gets its own process group
         (          (
         _flags=-vm          _flags=-vm
Line 141 
Line 139 
   
 verify() {  verify() {
         [ -e "$CFILE" ] || fetch_cfile || return 1          [ -e "$CFILE" ] || fetch_cfile || return 1
         # On the installer we don't get sha256 -C, so fake it.          # The installer sha256 lacks -C, do it by hand
         if ! fgrep -qx "SHA256 (${1##*/}) = $( /bin/sha256 -qb "$1" )" "$CFILE"; then          if ! fgrep -qx "SHA256 (${1##*/}) = $( /bin/sha256 -qb "$1" )" "$CFILE"; then
                 echo "Checksum test for ${1##*/} failed." >&2                  echo "Checksum test for ${1##*/} failed." >&2
                 return 1                  return 1
Line 153 
Line 151 
 firmware_in_dmesg() {  firmware_in_dmesg() {
         local _d _m _line _dmesgtail _last='' _nl=$( echo )          local _d _m _line _dmesgtail _last='' _nl=$( echo )
   
         # When we're not in the installer, the dmesg.boot can          # The dmesg can contain multiple boots, only look in the last one
         # contain multiple boots, so only look in the last one  
         _dmesgtail="$( echo ; sed -n 'H;/^OpenBSD/h;${g;p;}' /var/run/dmesg.boot )"          _dmesgtail="$( echo ; sed -n 'H;/^OpenBSD/h;${g;p;}' /var/run/dmesg.boot )"
   
         grep -v '^[[:space:]]*#' "$FWPATTERNS" |          grep -v '^[[:space:]]*#' "$FWPATTERNS" |
Line 241 
Line 238 
                 return 1                  return 1
         fi          fi
   
         # TODO: Should we mark these so real fw_update can -Drepair?  
         ed -s "${FWPKGTMP}/+CONTENTS" <<EOL          ed -s "${FWPKGTMP}/+CONTENTS" <<EOL
 /^@comment pkgpath/ -1a  /^@comment pkgpath/ -1a
 @option manual-installation  @option manual-installation
Line 282 
Line 278 
                 esac                  esac
         done < "${_pkgdir}/${_pkg}/+CONTENTS"          done < "${_pkgdir}/${_pkg}/+CONTENTS"
   
         # We specifically rm -f here because not removing files/dirs          # Use rm -f, not removing files/dirs is probably not worth failing over
         # is probably not worth failing over.  
         for _r in "${_remove[@]}" ; do          for _r in "${_remove[@]}" ; do
                 if [ -d "$_r" ]; then                  if [ -d "$_r" ]; then
                         # Try hard not to actually remove recursively                          # The installer lacks rmdir,
                         # without rmdir on the install media.                          # but we only want to remove empty directories.
                         set +o noglob                          set +o noglob
                         [ "$_r/*" = "$( echo "$_r"/* )" ] && rm -rf "$_r"                          [ "$_r/*" = "$( echo "$_r"/* )" ] && rm -rf "$_r"
                         set -o noglob                          set -o noglob
Line 447 
Line 442 
                 echo "Cannot download local file $f" >&2                  echo "Cannot download local file $f" >&2
                 exit 2                  exit 2
         else          else
                 # If someone specified a filename on the command-line                  # Don't verify files specified on the command-line
                 # we don't want to verify it.  
                 verify_existing=false                  verify_existing=false
         fi          fi
   

Legend:
Removed from v.1.148  
changed lines
  Added in v.1.149

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>