diff options
author | ajacoutot <ajacoutot@openbsd.org> | 2015-08-24 10:42:08 +0000 |
---|---|---|
committer | ajacoutot <ajacoutot@openbsd.org> | 2015-08-24 10:42:08 +0000 |
commit | 4fa586b786fdd40fb29d10cc7aad66426670f219 (patch) | |
tree | 444f7956f5fc16eb982db3603f33c3e6f63d35b0 /usr.sbin/sysmerge | |
parent | /usr/share/sysmerge -> /var/sysmerge (diff) | |
download | wireguard-openbsd-4fa586b786fdd40fb29d10cc7aad66426670f219.tar.xz wireguard-openbsd-4fa586b786fdd40fb29d10cc7aad66426670f219.zip |
/usr/share/sysmerge -> /var/sysmerge
requested by several
discussed with deraadt@
Diffstat (limited to 'usr.sbin/sysmerge')
-rw-r--r-- | usr.sbin/sysmerge/sysmerge.8 | 14 | ||||
-rw-r--r-- | usr.sbin/sysmerge/sysmerge.sh | 65 |
2 files changed, 45 insertions, 34 deletions
diff --git a/usr.sbin/sysmerge/sysmerge.8 b/usr.sbin/sysmerge/sysmerge.8 index 54c45a54862..0836ff6cc8b 100644 --- a/usr.sbin/sysmerge/sysmerge.8 +++ b/usr.sbin/sysmerge/sysmerge.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sysmerge.8,v 1.69 2015/07/27 17:28:40 sobrado Exp $ +.\" $OpenBSD: sysmerge.8,v 1.70 2015/08/24 10:42:08 ajacoutot Exp $ .\" .\" Copyright (c) 2008 Antoine Jacoutot <ajacoutot@openbsd.org> .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: July 27 2015 $ +.Dd $Mdocdate: August 24 2015 $ .Dt SYSMERGE 8 .Os .Sh NAME @@ -121,9 +121,9 @@ The following files will always be skipped from direct comparison: .Pa /etc/passwd , .Pa /etc/pwd.db , .Pa /etc/spwd.db , -.Pa /usr/share/sysmerge/etcsum , -.Pa /usr/share/sysmerge/examplessum , -.Pa /usr/share/sysmerge/xetcsum , +.Pa /var/sysmerge/etcsum , +.Pa /var/sysmerge/examplessum , +.Pa /var/sysmerge/xetcsum , .Pa /var/db/locate.database , .Pa /var/mail/root . .Sh ENVIRONMENT @@ -162,10 +162,10 @@ and directories are created relative to this. .It Pa /etc/sysmerge.ignore Files and directories to ignore from comparison. -.It Pa /usr/share/sysmerge/etc.tgz +.It Pa /var/sysmerge/etc.tgz Base system set containing the reference files corresponding to the currently installed release. -.It Pa /usr/share/sysmerge/xetc.tgz +.It Pa /var/sysmerge/xetc.tgz .Xr X 7 set containing the reference files corresponding to the currently installed release. diff --git a/usr.sbin/sysmerge/sysmerge.sh b/usr.sbin/sysmerge/sysmerge.sh index 7086fcbb247..aa75bbb6c56 100644 --- a/usr.sbin/sysmerge/sysmerge.sh +++ b/usr.sbin/sysmerge/sysmerge.sh @@ -1,6 +1,6 @@ #!/bin/ksh - # -# $OpenBSD: sysmerge.sh,v 1.199 2015/08/19 09:28:48 ajacoutot Exp $ +# $OpenBSD: sysmerge.sh,v 1.200 2015/08/24 10:42:08 ajacoutot Exp $ # # Copyright (c) 2008-2014 Antoine Jacoutot <ajacoutot@openbsd.org> # Copyright (c) 1998-2003 Douglas Barton <DougB@FreeBSD.org> @@ -43,9 +43,9 @@ sm_error() { for _i in ${_WRKDIR}/{etcsum,xetcsum,examplessum,pkgsum}; do _j=$(basename ${_i}) if [[ -f ${_i} ]]; then - mv ${_i} /usr/share/sysmerge/${_j} - elif [[ -f /usr/share/sysmerge/${_j} ]]; then - rm /usr/share/sysmerge/${_j} + mv ${_i} /var/sysmerge/${_j} + elif [[ -f /var/sysmerge/${_j} ]]; then + rm /var/sysmerge/${_j} fi done @@ -65,15 +65,16 @@ sm_extract_sets() { ${PKGMODE} && return local _e _x _set - [[ -f /usr/share/sysmerge/etc.tgz ]] && _e=etc - [[ -f /usr/share/sysmerge/xetc.tgz ]] && _x=xetc + [[ -f /var/sysmerge/etc.tgz ]] && _e=etc + [[ -f /var/sysmerge/xetc.tgz ]] && _x=xetc + [[ -z ${_e}${_x} ]] && sm_error "cannot find sets to extract" for _set in ${_e} ${_x}; do - [[ -f /usr/share/sysmerge/${_set}sum ]] && \ - cp /usr/share/sysmerge/${_set}sum \ + [[ -f /var/sysmerge/${_set}sum ]] && \ + cp /var/sysmerge/${_set}sum \ ${_WRKDIR}/${_set}sum tar -xzphf \ - /usr/share/sysmerge/${_set}.tgz || \ + /var/sysmerge/${_set}.tgz || \ sm_error "failed to extract ${_set}.tgz" done } @@ -132,8 +133,8 @@ sm_cp_pkg_samples() { ! ${PKGMODE} && return local _install_args _i _ret=0 _sample - [[ -f /usr/share/sysmerge/pkgsum ]] && \ - cp /usr/share/sysmerge/pkgsum ${_WRKDIR}/pkgsum + [[ -f /var/sysmerge/pkgsum ]] && \ + cp /var/sysmerge/pkgsum ${_WRKDIR}/pkgsum # access to full base system hierarchy is implied in packages mtree -qdef /etc/mtree/4.4BSD.dist -U >/dev/null @@ -165,7 +166,7 @@ sm_cp_pkg_samples() { if [[ ${_ret} -eq 0 ]]; then find . -type f -exec sha256 '{}' + | sort \ - >./usr/share/sysmerge/pkgsum || _ret=1 + >./var/sysmerge/pkgsum || _ret=1 fi [[ ${_ret} -ne 0 ]] && \ sm_error "failed to populate packages @samples and create sum file" @@ -175,33 +176,40 @@ sm_init() { local _auto_upg _c _c1 _c2 _cursum _diff _i _k _j _cfdiff _cffiles local _ignorefiles _cvsid1 _cvsid2 _matchsum _mismatch + # XXX remove after OPENBSD_6_0 + # and remove /usr/share/sysmerge/* from _ignorefiles in sm_init() + if [[ -d /usr/share/sysmerge && -d /var/sysmerge/ ]]; then + mv -f /usr/share/sysmerge/*sum /var/sysmerge/ + rm -rf /usr/share/sysmerge + fi + sm_extract_sets sm_add_user_grp sm_check_an_eg sm_cp_pkg_samples for _i in etcsum xetcsum pkgsum; do - if [[ -f /usr/share/sysmerge/${_i} && \ - -f ./usr/share/sysmerge/${_i} ]] && \ + if [[ -f /var/sysmerge/${_i} && \ + -f ./var/sysmerge/${_i} ]] && \ ! ${DIFFMODE}; then # redirect stderr: file may not exist - _matchsum=$(sha256 -c /usr/share/sysmerge/${_i} 2>/dev/null | \ + _matchsum=$(sha256 -c /var/sysmerge/${_i} 2>/dev/null | \ sed -n 's/^(SHA256) \(.*\): OK$/\1/p') # delete file in temproot if it has not changed since # last release and is present in current installation for _j in ${_matchsum}; do # skip sum files - [[ ${_j} == ./usr/share/sysmerge/${_i} ]] && continue + [[ ${_j} == ./var/sysmerge/${_i} ]] && continue [[ -f ${_j#.} && -f ${_j} ]] && \ rm ${_j} done # set auto-upgradable files - _mismatch=$(diff -u ./usr/share/sysmerge/${_i} /usr/share/sysmerge/${_i} | \ + _mismatch=$(diff -u ./var/sysmerge/${_i} /var/sysmerge/${_i} | \ sed -n 's/^+SHA256 (\(.*\)).*/\1/p') for _k in ${_mismatch}; do # skip sum files - [[ ${_k} == ./usr/share/sysmerge/${_i} ]] && continue + [[ ${_k} == ./var/sysmerge/${_i} ]] && continue # compare CVS Id first so if the file hasn't been modified, # it will be deleted from temproot and ignored from comparison; # several files are generated from scripts so CVS ID is not a @@ -218,14 +226,14 @@ sm_init() { fi # redirect stderr: file may not exist _cursum=$(cd / && sha256 ${_k} 2>/dev/null) - grep -q "${_cursum}" /usr/share/sysmerge/${_i} && \ - ! grep -q "${_cursum}" ./usr/share/sysmerge/${_i} && \ + grep -q "${_cursum}" /var/sysmerge/${_i} && \ + ! grep -q "${_cursum}" ./var/sysmerge/${_i} && \ _auto_upg="${_auto_upg} ${_k}" done [[ -n ${_auto_upg} ]] && set -A AUTO_UPG -- ${_auto_upg} fi - [[ -f ./usr/share/sysmerge/${_i} ]] && \ - mv ./usr/share/sysmerge/${_i} /usr/share/sysmerge/${_i} + [[ -f ./var/sysmerge/${_i} ]] && \ + mv ./var/sysmerge/${_i} /var/sysmerge/${_i} done # files we don't want/need to deal with @@ -240,6 +248,9 @@ sm_init() { /usr/share/sysmerge/etcsum /usr/share/sysmerge/examplessum /usr/share/sysmerge/xetcsum + /var/sysmerge/etcsum + /var/sysmerge/examplessum + /var/sysmerge/xetcsum /var/db/locate.database /var/mail/root" [[ -f /etc/sysmerge.ignore ]] && \ @@ -559,10 +570,10 @@ sm_check_an_eg() { ${PKGMODE} && return local _egmods _i _managed - if [[ -f /usr/share/sysmerge/examplessum ]]; then - cp /usr/share/sysmerge/examplessum ${_WRKDIR}/examplessum + if [[ -f /var/sysmerge/examplessum ]]; then + cp /var/sysmerge/examplessum ${_WRKDIR}/examplessum _egmods=$(cd / && \ - sha256 -c /usr/share/sysmerge/examplessum 2>/dev/null | \ + sha256 -c /var/sysmerge/examplessum 2>/dev/null | \ sed -n 's/^(SHA256) \(.*\): FAILED$/\1/p') fi for _i in ${_egmods}; do @@ -572,8 +583,8 @@ sm_check_an_eg() { done # only warn for files we care about [[ -n ${_managed} ]] && sm_warn "example(s) changed for: ${_managed}" - mv ./usr/share/sysmerge/examplessum \ - /usr/share/sysmerge/examplessum + mv ./var/sysmerge/examplessum \ + /var/sysmerge/examplessum } sm_post() { |