version 1.57, 2013/12/31 18:42:31 |
version 1.64, 2014/02/01 16:31:51 |
|
|
#!/bin/sh |
#!/bin/sh |
# $AFresh1: update_openbsd,v 1.56 2013/12/28 02:58:37 andrew Exp $ |
# $AFresh1: update_openbsd,v 1.63 2014/01/23 03:17:06 andrew Exp $ |
# |
# |
# Copyright (c) 2012 Andrew Fresh <andrew@afresh1.com> |
# Copyright (c) 2012 Andrew Fresh <andrew@afresh1.com> |
# |
# |
|
|
|
|
installed_sets() { |
installed_sets() { |
local misc=/usr/share/doc/README |
local misc=/usr/share/doc/README |
local man=/usr/share/man/cat1/intro.0 |
local man=/usr/share/man/man1/intro.1 |
local comp=/usr/bin/cc |
local comp=/usr/bin/cc |
local game=/usr/games/ |
local game=/usr/games/ |
local xbase=/usr/X11R6/ |
local xbase=/usr/X11R6/ |
|
|
fi |
fi |
|
|
if [ X"" == X"${_v}" ]; then |
if [ X"" == X"${_v}" ]; then |
echo ERROR: Unable to determine file version! >&2 |
if [ X"" == X"${MIRROR}" ]; then |
|
echo ERROR: No sets, and no MIRROR, unable to continue. >&2 |
|
else |
|
echo ERROR: Unable to determine FILE_VER, check your MIRROR. >&2 |
|
fi |
return 1 |
return 1 |
fi |
fi |
|
|
|
|
fi |
fi |
|
|
local _nv=`echo $NEW_VER | sed -e 's/\.//'` |
local _nv=`echo $NEW_VER | sed -e 's/\.//'` |
|
local _signify=`which signify 2>/dev/null` |
|
local _keyfile=/etc/signify/${_nv}base.pub |
|
local _b _s |
|
|
( |
( |
for k in $INSTALL_KERNELS; do echo "($k)" ; done |
for _b in $INSTALL_KERNELS; do echo "($_b)" ; done |
for f in $INSTALLED_SETS; do echo "($f$_nv.tgz)"; done |
for _s in $INSTALLED_SETS; do echo "($_s$_nv.tgz)"; done |
) > index |
) > index |
grep -f index $_type | sum -c |
|
|
|
|
if [ -n "$_signify" -a "$_type" != "${_type%.sig}" ]; then |
|
echo "===> Checking signature"; |
|
if [ ! -e $_keyfile ]; then |
|
echo "key [$_keyfile] does not exist, cannot check $_type" >&2 |
|
return 2 |
|
fi |
|
signify -V -e -p $_keyfile -x $_type -m - | grep -f index | sum -c - |
|
else |
|
grep -f index $_type | sum -c |
|
fi |
|
|
if [ $? -ne 0 ]; then |
if [ $? -ne 0 ]; then |
echo ERROR: $_type does not match! >&2 |
echo ERROR: $_type does not match! >&2 |
return 1 |
return 1 |
|
|
local _type |
local _type |
for _type in $CHECKSUM_TYPES; do |
for _type in $CHECKSUM_TYPES; do |
if [ -e $_type ]; then |
if [ -e $_type ]; then |
check_sum $_type |
check_sum $_type && break |
[ $? -ne 0 -a -z "$IGNORE_CHECKSUM_ERROR" ] && exit 1 |
[ -z "$IGNORE_CHECKSUM_ERROR" ] && exit 1 |
fi |
fi |
done |
done |
|
|
|
return 0 |
} |
} |
|
|
|
|
|
|
local _v=$FILE_VER |
local _v=$FILE_VER |
local _args="" |
local _args="" |
if [ -e etc${_v}.tgz ]; then |
if [ -e etc${_v}.tgz ]; then |
_args="$_args -s etc${_v}.tgz" |
_args="$_args -s ${RELEASEDIR}/etc${_v}.tgz" |
fi |
fi |
if [ -e xetc${_v}.tgz ]; then |
if [ -e xetc${_v}.tgz ]; then |
_args="$_args -x xetc${_v}.tgz" |
_args="$_args -x ${RELEASEDIR}/xetc${_v}.tgz" |
fi |
fi |
if [ X"" == X"$_args" ]; then |
if [ X"" == X"$_args" ]; then |
echo ERROR: No upgrade sets found! >&2 |
echo ERROR: No upgrade sets found! >&2 |
|
|
|
|
INSTALLED_SETS=${INSTALLED_SETS:=`installed_sets`} |
INSTALLED_SETS=${INSTALLED_SETS:=`installed_sets`} |
|
|
CHECKSUM_TYPES=${CHECKSUM_TYPES:=SHA256 MD5} |
CHECKSUM_TYPES=${CHECKSUM_TYPES:=SHA256.sig SHA256} |
|
|
set_version |
set_version |
local _error=$? |
local _error=$? |