From owner-svn-src-head@freebsd.org Wed Jan 15 00:45:07 2020 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 676CB1FA129; Wed, 15 Jan 2020 00:45:07 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47y7rz29plz3LDp; Wed, 15 Jan 2020 00:45:07 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 41AEE2638D; Wed, 15 Jan 2020 00:45:07 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F0j7K4019619; Wed, 15 Jan 2020 00:45:07 GMT (envelope-from bcran@FreeBSD.org) Received: (from bcran@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F0j5qG019610; Wed, 15 Jan 2020 00:45:05 GMT (envelope-from bcran@FreeBSD.org) Message-Id: <202001150045.00F0j5qG019610@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcran set sender to bcran@FreeBSD.org using -f From: Rebecca Cran Date: Wed, 15 Jan 2020 00:45:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356740 - in head/usr.sbin/bsdinstall: . partedit scripts X-SVN-Group: head X-SVN-Commit-Author: bcran X-SVN-Commit-Paths: in head/usr.sbin/bsdinstall: . partedit scripts X-SVN-Commit-Revision: 356740 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jan 2020 00:45:07 -0000 Author: bcran Date: Wed Jan 15 00:45:05 2020 New Revision: 356740 URL: https://svnweb.freebsd.org/changeset/base/356740 Log: bsdinstall: Use TMPDIR if set Submitted by: Ryan Moeller Reviewed by: bcran, Nick Wolff Differential Revision: https://reviews.freebsd.org/D22979/ Modified: head/usr.sbin/bsdinstall/bsdinstall head/usr.sbin/bsdinstall/bsdinstall.8 head/usr.sbin/bsdinstall/partedit/gpart_ops.c head/usr.sbin/bsdinstall/partedit/partedit.c head/usr.sbin/bsdinstall/partedit/partedit.h head/usr.sbin/bsdinstall/scripts/bootconfig head/usr.sbin/bsdinstall/scripts/mount head/usr.sbin/bsdinstall/scripts/script head/usr.sbin/bsdinstall/scripts/umount head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/bsdinstall ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/bsdinstall Wed Jan 15 00:45:05 2020 (r356740) @@ -40,13 +40,15 @@ BSDCFG_SHARE="/usr/share/bsdconfig" ############################################################ GLOBALS -: ${BSDINSTALL_TMPETC="/tmp/bsdinstall_etc"}; export BSDINSTALL_TMPETC -: ${BSDINSTALL_TMPBOOT="/tmp/bsdinstall_boot"}; export BSDINSTALL_TMPBOOT +: ${TMPDIR:="/tmp"}; export TMPDIR + +: ${BSDINSTALL_TMPETC="${TMPDIR}/bsdinstall_etc"}; export BSDINSTALL_TMPETC +: ${BSDINSTALL_TMPBOOT="${TMPDIR}/bsdinstall_boot"}; export BSDINSTALL_TMPBOOT : ${PATH_FSTAB="$BSDINSTALL_TMPETC/fstab"}; export PATH_FSTAB : ${BSDINSTALL_DISTDIR="/usr/freebsd-dist"}; export BSDINSTALL_DISTDIR : ${BSDINSTALL_CHROOT="/mnt"}; export BSDINSTALL_CHROOT -export debugFile="${debugFile-${BSDINSTALL_LOG-/tmp/bsdinstall_log}}" +export debugFile="${debugFile-${BSDINSTALL_LOG-${TMPDIR}/bsdinstall_log}}" ############################################################ MAIN Modified: head/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall.8 Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 15 00:45:05 2020 (r356740) @@ -259,6 +259,10 @@ for most installation scenarios. Others are set by various interactive user prompts, and can be usefully overridden when making scripted or customized installers. .Bl -tag -width ".Ev BSDINSTALL_DISTSITE" +.It Ev TMPDIR +The directory to use for temporary files. +Default: +.Dq Pa /tmp .It Ev DISTRIBUTIONS The set of distributions to install, e.g., "base.txz kernel.txz ports.txz". Default: unset @@ -291,7 +295,7 @@ Default: .It Ev BSDINSTALL_LOG Path to a log file for the installation. Default: -.Dq Pa /tmp/bsdinstall_log +.Dq Pa $TMPDIR/bsdinstall_log .It Ev BSDINSTALL_TMPETC Directory where files destined for the new system's .Pa /etc @@ -300,7 +304,7 @@ will be stored until the target is executed. If this directory does not already exist, it will be created. Default: -.Dq Pa /tmp/bsdinstall_etc +.Dq Pa $TMPDIR/bsdinstall_etc .It Ev BSDINSTALL_TMPBOOT Directory where files destined for the new system's .Pa /boot @@ -309,7 +313,7 @@ will be stored until the target is executed. If this directory does not already exist, it will be created. Default: -.Dq Pa /tmp/bsdinstall_boot +.Dq Pa $TMPDIR/bsdinstall_boot .It Ev ZFSBOOT_POOL_NAME Name for the pool containing the base system. Default: Modified: head/usr.sbin/bsdinstall/partedit/gpart_ops.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/gpart_ops.c Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/partedit/gpart_ops.c Wed Jan 15 00:45:05 2020 (r356740) @@ -711,10 +711,11 @@ set_default_part_metadata(const char *name, const char if (strcmp(type, bootpart_type(scheme, &default_bootmount)) == 0) { if (default_bootmount == NULL) { - int fd = open("/tmp/bsdinstall-esps", O_CREAT | O_WRONLY | O_APPEND, - 0600); + int fd = openat(tmpdfd, "bsdinstall-esps", + O_CREAT | O_WRONLY | O_APPEND, 0600); if (fd > 0) { write(fd, md->name, strlen(md->name)); + write(fd, "\n", 1); close(fd); } Modified: head/usr.sbin/bsdinstall/partedit/partedit.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/partedit.c Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/partedit/partedit.c Wed Jan 15 00:45:05 2020 (r356740) @@ -32,17 +32,20 @@ #include #include +#include #include #include #include #include #include #include +#include #include "diskeditor.h" #include "partedit.h" struct pmetadata_head part_metadata; +int tmpdfd; static int sade_mode = 0; static int apply_changes(struct gmesh *mesh); @@ -66,6 +69,8 @@ sigint_handler(int sig) end_dialog(); + close(tmpdfd); + exit(1); } @@ -73,7 +78,7 @@ int main(int argc, const char **argv) { struct partition_metadata *md; - const char *progname, *prompt; + const char *progname, *prompt, *tmpdir; struct partedit_item *items = NULL; struct gmesh mesh; int i, op, nitems, nscroll; @@ -85,6 +90,14 @@ main(int argc, const char **argv) TAILQ_INIT(&part_metadata); + tmpdir = getenv("TMPDIR"); + if (tmpdir == NULL) + tmpdir = "/tmp"; + tmpdfd = open(tmpdir, O_RDWR | O_DIRECTORY); + if (tmpdfd < 0) + err(EX_OSERR, "%s", tmpdir); + unlinkat(tmpdfd, "bsdinstall-esps", 0); + init_fstab_metadata(); init_dialog(stdin, stdout); @@ -220,6 +233,7 @@ main(int argc, const char **argv) geom_deletetree(&mesh); free(items); end_dialog(); + close(tmpdfd); return (error); } Modified: head/usr.sbin/bsdinstall/partedit/partedit.h ============================================================================== --- head/usr.sbin/bsdinstall/partedit/partedit.h Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/partedit/partedit.h Wed Jan 15 00:45:05 2020 (r356740) @@ -39,6 +39,8 @@ struct gprovider; struct gmesh; struct ggeom; +extern int tmpdfd; + TAILQ_HEAD(pmetadata_head, partition_metadata); extern struct pmetadata_head part_metadata; Modified: head/usr.sbin/bsdinstall/scripts/bootconfig ============================================================================== --- head/usr.sbin/bsdinstall/scripts/bootconfig Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/bootconfig Wed Jan 15 00:45:05 2020 (r356740) @@ -30,6 +30,8 @@ BSDCFG_SHARE="/usr/share/bsdconfig" . $BSDCFG_SHARE/common.subr || exit 1 +: ${TMPDIR:="/tmp"} + die() { echo $* exit 1 @@ -50,8 +52,8 @@ if [ "$(uname -m)" = "amd64" ] || [ "$(uname -m)" = "i fi if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" = "UEFI" ]; then - UFSBOOT_ESPS=$(cat /tmp/bsdinstall-esps 2>/dev/null) - ZFSBOOT_DISKS=$(cat /tmp/bsdinstall-zfsboot 2>/dev/null) + UFSBOOT_ESPS=$(cat $TMPDIR/bsdinstall-esps 2>/dev/null) + ZFSBOOT_DISKS=$(cat $TMPDIR/bsdinstall-zfsboot 2>/dev/null) num_esps=0 if [ -n "$ZFSBOOT_DISKS" ]; then @@ -99,7 +101,7 @@ if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" continue fi - mntpt=$(mktemp -d /tmp/stand-test.XXXXXX) + mntpt=$(mktemp -d $TMPDIR/stand-test.XXXXXX) if [ -e "/dev/${geom}p${index}" ]; then dev=${geom}p${index} elif [ -e "/dev/${geom}s${index}" ]; then @@ -129,7 +131,7 @@ if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" die "Failed to format ESP $esp as FAT32" fi - mntpt=$(mktemp -d /tmp/stand-test.XXXXXX) + mntpt=$(mktemp -d $TMPDIR/stand-test.XXXXXX) f_dprintf "Mounting ESP /dev/${esp}" mount -t msdosfs "/dev/${esp}" "${mntpt}" if [ $? -ne 0 ]; then Modified: head/usr.sbin/bsdinstall/scripts/mount ============================================================================== --- head/usr.sbin/bsdinstall/scripts/mount Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/mount Wed Jan 15 00:45:05 2020 (r356740) @@ -26,7 +26,7 @@ # # $FreeBSD$ -TMP_FSTAB=/tmp/bsdinstall-tmp-fstab +TMP_FSTAB=${TMPDIR:-"/tmp"}/bsdinstall-tmp-fstab cat $PATH_FSTAB | awk -v BSDINSTALL_CHROOT=$BSDINSTALL_CHROOT '{ if ($2 ~ "^/.*") { Modified: head/usr.sbin/bsdinstall/scripts/script ============================================================================== --- head/usr.sbin/bsdinstall/scripts/script Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/script Wed Jan 15 00:45:05 2020 (r356740) @@ -49,6 +49,8 @@ f_include $BSDCFG_SHARE/variable.subr ############################################################ GLOBALS +: ${TMPDIR:="/tmp"} + # # Strings that should be moved to an i18n file and loaded with f_include_lang() # @@ -88,9 +90,9 @@ f_dprintf "Began Installation at %s" "$( date )" rm -rf $BSDINSTALL_TMPETC mkdir $BSDINSTALL_TMPETC -split -a 2 -p '^#!.*' "$SCRIPT" /tmp/bsdinstall-installscript- +split -a 2 -p '^#!.*' "$SCRIPT" $TMPDIR/bsdinstall-installscript- -. /tmp/bsdinstall-installscript-aa +. $TMPDIR/bsdinstall-installscript-aa : ${DISTRIBUTIONS="kernel.txz base.txz"}; export DISTRIBUTIONS export BSDINSTALL_DISTDIR @@ -135,8 +137,8 @@ if [ ! -f $BSDINSTALL_CHROOT/etc/resolv.conf -a -f /et fi # Run post-install script -if [ -f /tmp/bsdinstall-installscript-ab ]; then - cp /tmp/bsdinstall-installscript-ab $BSDINSTALL_CHROOT/tmp/installscript +if [ -f $TMPDIR/bsdinstall-installscript-ab ]; then + cp $TMPDIR/bsdinstall-installscript-ab $BSDINSTALL_CHROOT/tmp/installscript chmod a+x $BSDINSTALL_CHROOT/tmp/installscript mount -t devfs devfs "$BSDINSTALL_CHROOT/dev" chroot $BSDINSTALL_CHROOT /tmp/installscript $@ 2>&1 Modified: head/usr.sbin/bsdinstall/scripts/umount ============================================================================== --- head/usr.sbin/bsdinstall/scripts/umount Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/umount Wed Jan 15 00:45:05 2020 (r356740) @@ -26,7 +26,7 @@ # # $FreeBSD$ -TMP_FSTAB=/tmp/bsdinstall-tmp-fstab +TMP_FSTAB=${TMPDIR:-"/tmp"}/bsdinstall-tmp-fstab cat $PATH_FSTAB | awk -v BSDINSTALL_CHROOT=$BSDINSTALL_CHROOT '{ if ($2 ~ "^/.*") { Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Wed Jan 15 00:45:05 2020 (r356740) @@ -1171,7 +1171,7 @@ zfs_create_boot() f_dprintf "$funcname: For encrypted root disk..." # Create parent directory for boot pool - f_eval_catch -d $funcname umount "$UMOUNT" /mnt + f_eval_catch -d $funcname umount "$UMOUNT" "$BSDINSTALL_CHROOT" f_eval_catch $funcname mount "$MOUNT_TYPE" tmpfs none \ $BSDINSTALL_CHROOT || return $FAILURE @@ -1273,7 +1273,8 @@ zfs_create_boot() # Clean up f_eval_catch $funcname zfs "$ZFS_UNMOUNT" "$bootpool_name" || return $FAILURE - f_eval_catch -d $funcname umount "$UMOUNT" /mnt # tmpfs + # tmpfs + f_eval_catch -d $funcname umount "$UMOUNT" "$BSDINSTALL_CHROOT" fi # @@ -1657,7 +1658,7 @@ while :; do "$vdev_type" $ZFSBOOT_DISKS || continue # To be reused by bootconfig - echo "$ZFSBOOT_DISKS" > /tmp/bsdinstall-zfsboot + echo "$ZFSBOOT_DISKS" > ${TMPDIR:-"/tmp"}/bsdinstall-zfsboot break # to success ;;