Very interesting, thanks. I will have to educate myself a little bit more about this issue. Doug Jeremie Le Hen wrote: > Hi Doug, > > In the chapter 15.6.1 of the handbook, "Service jails", the last part > explains how to upgrade jails. The last step is to run mergmaster(8) in > each jail. > > The problem is that in service jails /etc is a symlink to /s/etc, /s > being the readable/writable filesystem. mtree(8) stumbles on /etc being a > symlink instead of a directory and doesn't proceed futher down into /etc to > check files. Consequently, ${CHANGED} is empty and all customized > configuration are overwritten with their default version. > > I've fixed mergemaster(8) with the following patch: > > % Index: mergemaster.sh > % =================================================================== > % RCS file: /mnt/space/cvsroot/src/usr.sbin/mergemaster/mergemaster.sh,v > % retrieving revision 1.69 > % diff -u -r1.69 mergemaster.sh > % --- mergemaster.sh 23 Mar 2009 14:42:41 -0000 1.69 > % +++ mergemaster.sh 10 May 2009 11:05:32 -0000 > % _at__at_ -461,7 +461,7 _at__at_ > % # > % CHANGED= > % if [ -n "${AUTO_UPGRADE}" -a -f "${DESTDIR}${MTREEFILE}" ]; then > % - for file in `mtree -eq -f ${DESTDIR}${MTREEFILE} -p ${DESTDIR}/ \ > % + for file in `mtree -eqL -f ${DESTDIR}${MTREEFILE} -p ${DESTDIR}/ \ > % 2>/dev/null | awk '($2 == "changed") {print $1}'`; do > % if [ -f "${DESTDIR}/$file" ]; then > % CHANGED="${CHANGED} ${DESTDIR}/$file" > > Regards,Received on Mon May 11 2009 - 02:50:04 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:47 UTC