Help with etcupdate when using alternate source and destination.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 03 Nov 2023 20:20:25 UTC
Can anybody point me to a howto, when using etcupdate with alternate source and destinations. I have been using ZFS with snapshots mounted to alternate paths to do my updates from source since I believe around 9.2 release. Mergemaster has been working for me, but I am trying to switch my process to etcupdate instead and I am failing spectacularly. I have a /etc/src-env.conf file containing. WITH_META_MODE=yes MAKEOBJDIRPREFIX?=/usr/obj DESTDIR=/jails/devel/ROOT __MAKE_CONF=/jails/devel/ROOT/etc/make.conf SRCCONF=/jails/devel/ROOT/etc/src.conf SRC_ENV_CONF=/jails/devel/ROOT/etc/src-env.conf This is my old process. I mount my snapshot to /jails/devel/ROOT run the following mount -t nullfs -o ro /usr/src /jails/devel/ROOT/usr/src cd /jails/devel/ROOT/usr/src make buildworld && make buildkernel make installkernel && make installworld mergemaster -Ui -m /jails/devel/ROOT/usr/src -D /jails/devel/ROOT make -DBATCH_DELETE_OLD_FILES delete-old && make -DBATCH_DELETE_OLD_FILES delete-old-libs I would then start a jail from this, update any packages check configurations and then stop jail and switch main system over. I use same system for patch level updates, but would build a VM from fresh install for new major versions and ship snapshots over to it, build and then back to primary system for reboot. First attempt at new process. mount my snapshot to /jails/devel/ROOT mount -t nullfs -o ro /usr/src /jails/devel/ROOT/usr/src cd /jails/devel/ROOT/usr/src etcupdate extract -s /usr/src_13.2-RELEASE-p4 -D /jails/devel/ROOT etcupdate diff -s /usr/src_13.2-RELEASE-p4 -D /jails/devel/ROOT # Diff looks as expected make buildworld && make buildkernel && make installkernel etcupdate -p -s /jails/devel/ROOT/usr/src -D /jails/devel/ROOT # PANIC: merge failed with status 127 #Logs end with: Building tree at /jails/devel/ROOT/var/db/etcupdate/etcupdate-YyFRXe8 with make -DNO_FILEMON /usr/sbin/etcupdate: diff3: not found # Get past this by running etcupdate extract -s /jails/devel/ROOT/usr/src -D /jails/devel/ROOT etcupdate diff -s /jails/devel/ROOT/usr/src -D /jails/devel/ROOT # Output looks as expected etcupdate -p -s /jails/devel/ROOT/usr/src -D /jails/devel/ROOT # returns with no errors make installworld etcupdate -B -s /jails/devel/ROOT/usr/src -D /jails/devel/ROOT # Returns with no errors, however nothing in system is updated I have trying added etcupdate resolve after the -p & -B runs, just returns no errors, doesn't show any conflicts to resolve. I have been able to get system running on new version by falling back to running mergemaster command, but I have to edit some files manually as there are a few changes that don't get merged correctly in the 13.2-RELEASE-p4 to upgrade 14.0-RC.