aboutsummaryrefslogtreecommitdiff
path: root/tools/build/beinstall.sh
Commit message (Collapse)AuthorAgeFilesLines
* beinstall: retire mergemaster supportEd Maste2024-05-011-14/+1
| | | | | | | | Mergemaster has been deprecated for some time, and will be retired. Reviewed by: kevans Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D41799
* Remove $FreeBSD$: one-line sh patternWarner Losh2023-08-161-1/+0
| | | | Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
* beinstall.sh: Check correct exit statusJoseph Mingrone2023-01-031-1/+1
| | | | | | | | | | When retrieving the timestamp of the last commit using git-show(1), do not pipe the output to head(1), otherwise the return value in $? will be for head(1) and not git-show(1). Approved by: bapt Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37742
* beinstall.sh: Use bectl instead of beadm by defaultMateusz Piotrowski2020-10-301-8/+13
| | | | | | | | | | | | | | | | This patch also introduces an environment variable BE_UTILITY, which can be used to specify the utility to use for managing ZFS boot environments (which can be either bectl or beadm). While here, fix some typos in the manual page and remove beadm from section "SEE ALSO". Reviewed by: bcr, kevans, rpokala Approved by: will Differential Revision: https://reviews.freebsd.org/D21111 Notes: svn path=/head/; revision=367159
* Mount devfs inside a beinstall(8) chrootMateusz Piotrowski2020-10-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that without /dev/null beinstall is not able to complete and instead exits with messages similar to these: -------------------------------------------------------------- >>> Installing kernel GENERIC completed on Sun Oct 25 17:47:37 CET 2020 -------------------------------------------------------------- /tmp/beinstall.JleGoP/mnt: Inspecting dirs /usr/src /usr/obj/usr/src/amd64.amd64 --- installworld --- make[1]: "/usr/obj/usr/src/amd64.amd64/toolchain-metadata.mk" line 1: Using cached toolchain metadata from build at t480 on Sun Oct 25 15:53:28 CET 2020 make[2]: "/dev/null" line 2: Need an operator make[2]: Fatal errors encountered -- cannot continuemake[1]: "/usr/src/Makefile.inc1" line 593: CPUTYPE global should be set with ?=. Cleaning up ... umount -f /tmp/beinstall.JleGoP/mnt/usr/src /tmp/beinstall.JleGoP/mnt/usr/obj/usr/src/amd64.amd64 /tmp/beinstall.JleGoP/mnt Destroyed successfully error: Installworld failed! Upon a bit of debugging, it turns out that /dev/null inside the chroot environment is full random bytes, which cause "make -f /dev/null" to misbehave. Mounting a proper devfs inside the chroot seems to be the most appropriate way to fix it. will@ also noted that this change requires that whatever is needed in devfs must exist in the old kernel. Approved by: will MFC after: 2 week Differential Revision: https://reviews.freebsd.org/D26944 Notes: svn path=/head/; revision=367072
* Update beinstall to use the mergemaster/etcupdate from the source tree insteadBrad Davis2019-05-181-11/+10
| | | | | | | | | | of the installed one. Approved by: will (mentor) Differential Revision: https://reviews.freebsd.org/D20291 Notes: svn path=/head/; revision=347958
* beinstall: try to save progress from pkg updates.Will Andrews2018-12-271-0/+12
| | | | | | | | | | | | This is primarily aimed at failed updates due to package conflicts, and affects treatment of failed updates. Whereas before potentially a large number of packages would need to be synced for each attempt, they can now be persisted. Requires rsync. There may be better ways to implement this, e.g. using secondary cache path that is only used on followup attempts and then wiped on success, which avoids polluting current cache. Notes: svn path=/head/; revision=342560
* beinstall: perform pre-installworld steps.Will Andrews2018-07-291-7/+93
| | | | | | | | | | | | | | | Since all post-installkernel steps are assumed to operate in the updated installation, it's necessary to chroot all of the followup steps in the new boot environment. Set up and mount the source and object directories at the same paths inside the BE root, and clean up to the extent changes were made. This commit fixes upgrading using beinstall past the new ntpd user change. Improve testability of changes to this script while I'm here. Reported by: rpokala (earlier patch) Notes: svn path=/head/; revision=336856
* tools/build/beinstall.sh: Use some slightly better shell syntax; reduce ↵Eitan Adler2018-07-281-11/+12
| | | | | | | | | | | | duplication This is is a first pass at improving the be installer. Reviewed By: will Differential Revision: https://reviews.freebsd.org/D16081 Notes: svn path=/head/; revision=336799
* beinstall: enable use with git worktrees.Will Andrews2018-07-011-1/+2
| | | | Notes: svn path=/head/; revision=335831
* Teach beinstall to use and prefer svnlite, with a fallback to svn.Brad Davis2017-10-181-1/+7
| | | | | | | Approved by: will Notes: svn path=/head/; revision=324723
* Add my beinstall script.Will Andrews2016-07-181-0/+153
This is meant to install a new BE (boot environment) given a fully built world/kernel. In addition to installing world and kernel in the new BE, it also automatically performs /etc updates (using etcupdate or mergemaster) and package updates (using pkg). Because this process is performed in a new BE, it reduces the need for a second reboot. It also means a reboot into a partially updated system (due to install or hardware failure) can't happen. Inspired by and similar in function to Solaris/illumos-style upgrades. Notes: svn path=/head/; revision=302977