Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Jan 2016 21:12:50 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r293225 - in projects/release-pkg: . include lib/libc/gen libexec/rtld-elf release release/amd64 release/i386 release/pc98 release/powerpc release/scripts release/sparc64 share/man/man4...
Message-ID:  <201601052112.u05LCoWC074532@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Tue Jan  5 21:12:49 2016
New Revision: 293225
URL: https://svnweb.freebsd.org/changeset/base/293225

Log:
  MFH
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/release-pkg/Makefile.inc1
  projects/release-pkg/include/paths.h
  projects/release-pkg/lib/libc/gen/exec.3
  projects/release-pkg/lib/libc/gen/posix_spawn.3
  projects/release-pkg/libexec/rtld-elf/rtld.c
  projects/release-pkg/libexec/rtld-elf/rtld.h
  projects/release-pkg/release/Makefile
  projects/release-pkg/release/amd64/mkisoimages.sh
  projects/release-pkg/release/i386/mkisoimages.sh
  projects/release-pkg/release/pc98/mkisoimages.sh
  projects/release-pkg/release/powerpc/mkisoimages.sh
  projects/release-pkg/release/scripts/make-manifest.sh
  projects/release-pkg/release/sparc64/mkisoimages.sh
  projects/release-pkg/share/man/man4/ioat.4
  projects/release-pkg/sys/dev/ioat/ioat.c
  projects/release-pkg/sys/dev/ioat/ioat.h
  projects/release-pkg/sys/dev/iwm/if_iwm.c
  projects/release-pkg/sys/kern/vfs_default.c
  projects/release-pkg/sys/kern/vfs_subr.c
  projects/release-pkg/usr.sbin/bsdinstall/scripts/auto
  projects/release-pkg/usr.sbin/cron/crontab/crontab.5
Directory Properties:
  projects/release-pkg/   (props changed)
  projects/release-pkg/include/   (props changed)
  projects/release-pkg/lib/libc/   (props changed)
  projects/release-pkg/share/   (props changed)
  projects/release-pkg/share/man/man4/   (props changed)
  projects/release-pkg/sys/   (props changed)

Modified: projects/release-pkg/Makefile.inc1
==============================================================================
--- projects/release-pkg/Makefile.inc1	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/Makefile.inc1	Tue Jan  5 21:12:49 2016	(r293225)
@@ -1317,27 +1317,43 @@ packagekernel:
 .if defined(NO_ROOT)
 .if !defined(NO_INSTALLKERNEL)
 	cd ${DESTDIR}/${DISTDIR}/kernel; \
-	    tar cvf - @${DESTDIR}/${DISTDIR}/kernel.meta | \
+	    tar cvf - --exclude '*.debug' \
+	    @${DESTDIR}/${DISTDIR}/kernel.meta | \
 	    ${XZ_CMD} > ${PACKAGEDIR}/kernel.txz
 .endif
+	cd ${DESTDIR}/${DISTDIR}/kernel; \
+	    tar cvf - --include '*/*/*.debug' \
+	    @${DESTDIR}/${DISTDIR}/kernel.meta | \
+	    ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel-dbg.txz
 .if ${BUILDKERNELS:[#]} > 1
 .for _kernel in ${BUILDKERNELS:[2..-1]}
 	cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
-	    tar cvf - @${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta | \
+	    tar cvf - --exclude '*.debug' \
+	    @${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta | \
 	    ${XZ_CMD} > ${PACKAGEDIR}/kernel.${_kernel}.txz
+	cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
+	    tar cvf - --include '*/*/*.debug' \
+	    @${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta | \
+	    ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}-dbg.txz
 .endfor
 .endif
 .else
 .if !defined(NO_INSTALLKERNEL)
 	cd ${DESTDIR}/${DISTDIR}/kernel; \
-	    tar cvf - . | \
+	    tar cvf - --exclude '*.debug' . | \
 	    ${XZ_CMD} > ${PACKAGEDIR}/kernel.txz
 .endif
+	cd ${DESTDIR}/${DISTDIR}/kernel; \
+	    tar cvf - --include '*/*/*.debug' $$(eval find .) | \
+	    ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel-dbg.txz
 .if ${BUILDKERNELS:[#]} > 1
 .for _kernel in ${BUILDKERNELS:[2..-1]}
 	cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
-	    tar cvf - . | \
+	    tar cvf - --exclude '*.debug' . | \
 	    ${XZ_CMD} > ${PACKAGEDIR}/kernel.${_kernel}.txz
+	cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
+	    tar cvf - --include '*/*/*.debug' $$(eval find .) | \
+	    ${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}-dbg.txz
 .endfor
 .endif
 .endif

Modified: projects/release-pkg/include/paths.h
==============================================================================
--- projects/release-pkg/include/paths.h	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/include/paths.h	Tue Jan  5 21:12:49 2016	(r293225)
@@ -36,7 +36,7 @@
 #include <sys/cdefs.h>
 
 /* Default search path. */
-#define	_PATH_DEFPATH	"/usr/bin:/bin"
+#define	_PATH_DEFPATH	"/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
 /* All standard utilities path. */
 #define	_PATH_STDPATH	"/usr/bin:/bin:/usr/sbin:/sbin"
 /* Locate system binaries. */
@@ -108,7 +108,7 @@ __END_DECLS
 
 #ifdef RESCUE
 #undef	_PATH_DEFPATH
-#define	_PATH_DEFPATH	"/rescue:/usr/bin:/bin"
+#define	_PATH_DEFPATH	"/rescue:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
 #undef	_PATH_STDPATH
 #define	_PATH_STDPATH	"/rescue:/usr/bin:/bin:/usr/sbin:/sbin"
 #undef	_PATH_SYSPATH

Modified: projects/release-pkg/lib/libc/gen/exec.3
==============================================================================
--- projects/release-pkg/lib/libc/gen/exec.3	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/lib/libc/gen/exec.3	Tue Jan  5 21:12:49 2016	(r293225)
@@ -28,7 +28,7 @@
 .\"     @(#)exec.3	8.3 (Berkeley) 1/24/94
 .\" $FreeBSD$
 .\"
-.Dd December 12, 2015
+.Dd January 5, 2016
 .Dt EXEC 3
 .Os
 .Sh NAME
@@ -161,7 +161,7 @@ the default path is set according to the
 definition in
 .In paths.h ,
 which is set to
-.Dq Ev /usr/bin:/bin .
+.Dq Ev /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin .
 For
 .Fn execvP ,
 the search path is specified as an argument to the function.

Modified: projects/release-pkg/lib/libc/gen/posix_spawn.3
==============================================================================
--- projects/release-pkg/lib/libc/gen/posix_spawn.3	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/lib/libc/gen/posix_spawn.3	Tue Jan  5 21:12:49 2016	(r293225)
@@ -34,7 +34,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd June 17, 2011
+.Dd January 5, 2016
 .Dt POSIX_SPAWN 3
 .Os
 .Sh NAME
@@ -126,7 +126,7 @@ the default path is set according to the
 definition in
 .In paths.h ,
 which is set to
-.Dq Ev /usr/bin:/bin .
+.Dq Ev /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin .
 .Pp
 If
 .Fa file_actions

Modified: projects/release-pkg/libexec/rtld-elf/rtld.c
==============================================================================
--- projects/release-pkg/libexec/rtld-elf/rtld.c	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/libexec/rtld-elf/rtld.c	Tue Jan  5 21:12:49 2016	(r293225)
@@ -1144,13 +1144,13 @@ digest_dynamic1(Obj_Entry *obj, int earl
 	 * is mapped read-only. DT_MIPS_RLD_MAP is used instead.
 	 */
 
-#ifndef __mips__
 	case DT_DEBUG:
+	    if (!obj->writable_dynamic)
+		break;
 	    if (!early)
 		dbg("Filling in DT_DEBUG entry");
 	    ((Elf_Dyn*)dynp)->d_un.d_ptr = (Elf_Addr) &r_debug;
 	    break;
-#endif
 
 	case DT_FLAGS:
 		if (dynp->d_un.d_val & DF_ORIGIN)
@@ -1331,6 +1331,8 @@ digest_phdr(const Elf_Phdr *phdr, int ph
 	    break;
 
 	case PT_DYNAMIC:
+	    if (ph->p_flags & PROT_WRITE)
+		obj->writable_dynamic = true;
 	    obj->dynamic = (const Elf_Dyn *)(ph->p_vaddr + obj->relocbase);
 	    break;
 

Modified: projects/release-pkg/libexec/rtld-elf/rtld.h
==============================================================================
--- projects/release-pkg/libexec/rtld-elf/rtld.h	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/libexec/rtld-elf/rtld.h	Tue Jan  5 21:12:49 2016	(r293225)
@@ -264,6 +264,7 @@ typedef struct Struct_Obj_Entry {
     bool valid_hash_sysv : 1;	/* A valid System V hash hash tag is available */
     bool valid_hash_gnu : 1;	/* A valid GNU hash tag is available */
     bool dlopened : 1;		/* dlopen()-ed (vs. load statically) */
+    bool writable_dynamic : 1;	/* PT_DYNAMIC is writable */
 
     struct link_map linkmap;	/* For GDB and dlinfo() */
     Objlist dldags;		/* Object belongs to these dlopened DAGs (%) */

Modified: projects/release-pkg/release/Makefile
==============================================================================
--- projects/release-pkg/release/Makefile	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/release/Makefile	Tue Jan  5 21:12:49 2016	(r293225)
@@ -176,7 +176,7 @@ disc1: packagesystem
 		MK_DEBUG_FILES=no
 # Copy distfiles
 	mkdir -p ${.TARGET}/usr/freebsd-dist
-	for dist in MANIFEST $$(ls *.txz | grep -v -- '-dbg'); \
+	for dist in MANIFEST $$(ls *.txz | grep -vE -- '(base|lib32)-dbg'); \
 	    do cp $${dist} ${.TARGET}/usr/freebsd-dist; \
 	done
 # Copy documentation, if generated
@@ -225,7 +225,7 @@ dvd: packagesystem
 		MK_TESTS=no MK_DEBUG_FILES=no
 # Copy distfiles
 	mkdir -p ${.TARGET}/usr/freebsd-dist
-	for dist in MANIFEST $$(ls *.txz | grep -v -- '-dbg'); \
+	for dist in MANIFEST $$(ls *.txz | grep -v -- '(base|lib32)-dbg'); \
 	    do cp $${dist} ${.TARGET}/usr/freebsd-dist; \
 	done
 # Copy documentation, if generated

Modified: projects/release-pkg/release/amd64/mkisoimages.sh
==============================================================================
--- projects/release-pkg/release/amd64/mkisoimages.sh	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/release/amd64/mkisoimages.sh	Tue Jan  5 21:12:49 2016	(r293225)
@@ -56,5 +56,5 @@ NAME="$1"; shift
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
 echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
 makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
-rm "$1/etc/fstab"
+rm -f "$1/etc/fstab"
 rm -f efiboot.img

Modified: projects/release-pkg/release/i386/mkisoimages.sh
==============================================================================
--- projects/release-pkg/release/i386/mkisoimages.sh	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/release/i386/mkisoimages.sh	Tue Jan  5 21:12:49 2016	(r293225)
@@ -42,4 +42,4 @@ NAME="$1"; shift
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
 echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
 makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
-rm "$1/etc/fstab"
+rm -f "$1/etc/fstab"

Modified: projects/release-pkg/release/pc98/mkisoimages.sh
==============================================================================
--- projects/release-pkg/release/pc98/mkisoimages.sh	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/release/pc98/mkisoimages.sh	Tue Jan  5 21:12:49 2016	(r293225)
@@ -42,4 +42,4 @@ NAME="$1"; shift
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
 echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
 makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
-rm "$1/etc/fstab"
+rm -f "$1/etc/fstab"

Modified: projects/release-pkg/release/powerpc/mkisoimages.sh
==============================================================================
--- projects/release-pkg/release/powerpc/mkisoimages.sh	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/release/powerpc/mkisoimages.sh	Tue Jan  5 21:12:49 2016	(r293225)
@@ -64,6 +64,6 @@ NAME="$1"; shift
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
 echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
 makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
-rm "$1/etc/fstab"
-rm /tmp/hfs-boot-block
+rm -f "$1/etc/fstab"
+rm -f /tmp/hfs-boot-block
 rm -rf "$1/ppc"

Modified: projects/release-pkg/release/scripts/make-manifest.sh
==============================================================================
--- projects/release-pkg/release/scripts/make-manifest.sh	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/release/scripts/make-manifest.sh	Tue Jan  5 21:12:49 2016	(r293225)
@@ -9,18 +9,64 @@
 #
 # $FreeBSD$
 
-desc_base="Base system (MANDATORY)"
-desc_kernel="Kernel (MANDATORY)"
-desc_doc="Additional documentation"
-doc_default=off
-desc_lib32="32-bit compatibility libraries"
-desc_ports="Ports tree"
-desc_src="System source code"
-desc_tests="Test suite"
-src_default=off
-tests_default=off
+base="Base system"
+doc="Additional Documentation"
+kernel="Kernel"
+ports="Ports tree"
+src="System source tree"
+lib32="32-bit compatibility libraries"
+tests="Test suite"
 
-for i in $*; do
-	echo "`basename $i`	`sha256 -q $i`	`tar tvf $i | wc -l | tr -d ' '`	`basename $i .txz`	\"`eval echo \\\$desc_$(basename $i .txz)`\"	`eval echo \\\${$(basename $i .txz)_default:-on}`"
+desc_base="${base} (MANDATORY)"
+desc_base_dbg="${base} (Debugging)"
+desc_doc="${doc}"
+desc_kernel="${kernel} (MANDATORY)"
+desc_kernel_dbg="${kernel} (Debugging)"
+desc_kernel_alt="Alternate ${kernel}"
+desc_kernel_alt_dbg="Alternate ${kernel} (Debugging)"
+desc_lib32="${lib32}"
+desc_lib32_dbg="${lib32} (Debugging)"
+desc_ports="${ports}"
+desc_src="${src}"
+desc_tests="${tests}"
+
+default_doc=off
+default_src=off
+default_tests=off
+default_base_dbg=off
+default_lib32_dbg=off
+default_kernel_alt=off
+default_kernel_dbg=on
+default_kernel_alt_dbg=off
+
+for i in ${*}; do
+	dist="${i}"
+	distname="${i%%.txz}"
+	distname="$(echo ${distname} | tr '-' '_')"
+	distname="$(echo ${distname} | tr 'kernel.' 'kernel_')"
+	hash="$(sha256 -q ${i})"
+	nfiles="$(tar tvf ${i} | wc -l | tr -d ' ')"
+	default="$(eval echo \${default_${distname}:-on})"
+	desc="$(eval echo \"\${desc_${distname}}\")"
+
+	case ${i} in
+		kernel-dbg.txz)
+			desc="${desc_kernel_dbg}"
+			;;
+		kernel.*-dbg.txz)
+			desc="$(eval echo \"${desc_kernel_alt_dbg}\")"
+			desc="${desc}: $(eval echo ${i%%-dbg.txz} | cut -f 2 -d '.')"
+			default="$(eval echo \"${default_kernel_alt_dbg}\")"
+			;;
+		kernel.*.txz)
+			desc="$(eval echo \"${desc_kernel_alt}\")"
+			desc="${desc}: $(eval echo ${i%%.txz} | cut -f 2 -d '.')"
+			default="$(eval echo \"${default_kernel_alt}\")"
+			;;
+		*)
+			;;
+	esac
+
+	printf "${dist}\t${hash}\t${nfiles}\t${distname}\t\"${desc}\"\t${default}\n"
 done
 

Modified: projects/release-pkg/release/sparc64/mkisoimages.sh
==============================================================================
--- projects/release-pkg/release/sparc64/mkisoimages.sh	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/release/sparc64/mkisoimages.sh	Tue Jan  5 21:12:49 2016	(r293225)
@@ -38,7 +38,7 @@ BASEBITSDIR="$1"
 publisher="The FreeBSD Project.  http://www.FreeBSD.org/"
 echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$BASEBITSDIR/etc/fstab"
 makefs -t cd9660 -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME.tmp" "$@"
-rm "$BASEBITSDIR/etc/fstab"
+rm -f "$BASEBITSDIR/etc/fstab"
 
 if [ "x$BOPT" != "x-b" ]; then
 	mv "$NAME.tmp" "$NAME"

Modified: projects/release-pkg/share/man/man4/ioat.4
==============================================================================
--- projects/release-pkg/share/man/man4/ioat.4	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/share/man/man4/ioat.4	Tue Jan  5 21:12:49 2016	(r293225)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 17, 2015
+.Dd January 5, 2016
 .Dt IOAT 4
 .Os
 .Sh NAME
@@ -65,6 +65,8 @@ In
 .Fn ioat_put_dmaengine "bus_dmaengine_t dmaengine"
 .Ft int
 .Fn ioat_get_hwversion "bus_dmaengine_t dmaengine"
+.Ft size_t
+.Fn ioat_get_max_io_size "bus_dmaengine_t dmaengine"
 .Ft int
 .Fn ioat_set_interrupt_coalesce "bus_dmaengine_t dmaengine" "uint16_t delay"
 .Ft uint16_t

Modified: projects/release-pkg/sys/dev/ioat/ioat.c
==============================================================================
--- projects/release-pkg/sys/dev/ioat/ioat.c	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/sys/dev/ioat/ioat.c	Tue Jan  5 21:12:49 2016	(r293225)
@@ -744,6 +744,15 @@ ioat_get_hwversion(bus_dmaengine_t dmaen
 	return (ioat->version);
 }
 
+size_t
+ioat_get_max_io_size(bus_dmaengine_t dmaengine)
+{
+	struct ioat_softc *ioat;
+
+	ioat = to_ioat_softc(dmaengine);
+	return (ioat->max_xfer_size);
+}
+
 int
 ioat_set_interrupt_coalesce(bus_dmaengine_t dmaengine, uint16_t delay)
 {

Modified: projects/release-pkg/sys/dev/ioat/ioat.h
==============================================================================
--- projects/release-pkg/sys/dev/ioat/ioat.h	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/sys/dev/ioat/ioat.h	Tue Jan  5 21:12:49 2016	(r293225)
@@ -70,6 +70,7 @@ void ioat_put_dmaengine(bus_dmaengine_t 
 
 /* Check the DMA engine's HW version */
 int ioat_get_hwversion(bus_dmaengine_t dmaengine);
+size_t ioat_get_max_io_size(bus_dmaengine_t dmaengine);
 
 /*
  * Set interrupt coalescing on a DMA channel.

Modified: projects/release-pkg/sys/dev/iwm/if_iwm.c
==============================================================================
--- projects/release-pkg/sys/dev/iwm/if_iwm.c	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/sys/dev/iwm/if_iwm.c	Tue Jan  5 21:12:49 2016	(r293225)
@@ -2041,7 +2041,6 @@ iwm_mvm_load_ucode_wait_alive(struct iwm
 
 	sc->sc_uc_current = ucode_type;
 	error = iwm_start_fw(sc, ucode_type);
-	iwm_fw_info_free(&sc->sc_fw);
 	if (error) {
 		sc->sc_uc_current = old_type;
 		return error;
@@ -4937,6 +4936,7 @@ iwm_suspend(device_t dev)
 static int
 iwm_detach_local(struct iwm_softc *sc, int do_net80211)
 {
+	struct iwm_fw_info *fw = &sc->sc_fw;
 	device_t dev = sc->sc_dev;
 	int i;
 
@@ -4953,6 +4953,10 @@ iwm_detach_local(struct iwm_softc *sc, i
 	for (i = 0; i < nitems(sc->txq); i++)
 		iwm_free_tx_ring(sc, &sc->txq[i]);
 
+	/* Free firmware */
+	if (fw->fw_fp != NULL)
+		iwm_fw_info_free(fw);
+
 	/* Free scheduler */
 	iwm_free_sched(sc);
 	if (sc->ict_dma.vaddr != NULL)

Modified: projects/release-pkg/sys/kern/vfs_default.c
==============================================================================
--- projects/release-pkg/sys/kern/vfs_default.c	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/sys/kern/vfs_default.c	Tue Jan  5 21:12:49 2016	(r293225)
@@ -1080,15 +1080,9 @@ vop_stdadvise(struct vop_advise_args *ap
 		bsize = vp->v_bufobj.bo_bsize;
 		startn = ap->a_start / bsize;
 		endn = ap->a_end / bsize;
-		for (;;) {
-			error = bnoreuselist(&bo->bo_clean, bo, startn, endn);
-			if (error == EAGAIN)
-				continue;
+		error = bnoreuselist(&bo->bo_clean, bo, startn, endn);
+		if (error == 0)
 			error = bnoreuselist(&bo->bo_dirty, bo, startn, endn);
-			if (error == EAGAIN)
-				continue;
-			break;
-		}
 		BO_RUNLOCK(bo);
 		VOP_UNLOCK(vp, 0);
 		break;

Modified: projects/release-pkg/sys/kern/vfs_subr.c
==============================================================================
--- projects/release-pkg/sys/kern/vfs_subr.c	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/sys/kern/vfs_subr.c	Tue Jan  5 21:12:49 2016	(r293225)
@@ -1669,7 +1669,8 @@ bnoreuselist(struct bufv *bufv, struct b
 
 	ASSERT_BO_LOCKED(bo);
 
-	for (lblkno = startn;; lblkno++) {
+	for (lblkno = startn;;) {
+again:
 		bp = BUF_PCTRIE_LOOKUP_GE(&bufv->bv_root, lblkno);
 		if (bp == NULL || bp->b_lblkno >= endn)
 			break;
@@ -1677,11 +1678,14 @@ bnoreuselist(struct bufv *bufv, struct b
 		    LK_INTERLOCK, BO_LOCKPTR(bo), "brlsfl", 0, 0);
 		if (error != 0) {
 			BO_RLOCK(bo);
-			return (error != ENOLCK ? error : EAGAIN);
+			if (error == ENOLCK)
+				goto again;
+			return (error);
 		}
 		KASSERT(bp->b_bufobj == bo,
 		    ("bp %p wrong b_bufobj %p should be %p",
 		    bp, bp->b_bufobj, bo));
+		lblkno = bp->b_lblkno + 1;
 		if ((bp->b_flags & B_MANAGED) == 0)
 			bremfree(bp);
 		bp->b_flags |= B_RELBUF;

Modified: projects/release-pkg/usr.sbin/bsdinstall/scripts/auto
==============================================================================
--- projects/release-pkg/usr.sbin/bsdinstall/scripts/auto	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/usr.sbin/bsdinstall/scripts/auto	Tue Jan  5 21:12:49 2016	(r293225)
@@ -115,7 +115,8 @@ bsdinstall hostname || error "Set hostna
 
 export DISTRIBUTIONS="base.txz kernel.txz"
 if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then
-	DISTMENU=`awk -F'\t' '!/^(kernel|base)/{print $4,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST`
+	DISTMENU=`awk -F'\t' '!/^(kernel\.txz|base\.txz)/{print $1,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST`
+	DISTMENU="$(echo ${DISTMENU} | sed -E 's/\.txz//g')"
 
 	exec 3>&1
 	EXTRA_DISTS=$( eval dialog \
@@ -129,16 +130,20 @@ if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; 
 	done
 fi
 
+LOCAL_DISTRIBUTIONS="MANIFEST"
 FETCH_DISTRIBUTIONS=""
 for dist in $DISTRIBUTIONS; do
 	if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then
 		FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist"
+	else
+		LOCAL_DISTRIBUTIONS="$LOCAL_DISTRIBUTIONS $dist"
 	fi
 done
+LOCAL_DISTRIBUTIONS=`echo $LOCAL_DISTRIBUTIONS`	# Trim white space
 FETCH_DISTRIBUTIONS=`echo $FETCH_DISTRIBUTIONS`	# Trim white space
 
 if [ -n "$FETCH_DISTRIBUTIONS" -a -n "$BSDINSTALL_CONFIGCURRENT" ]; then
-	dialog --backtitle "FreeBSD Installer" --title "Network Installation" --msgbox "No installation files were found on the boot volume. The next few screens will allow you to configure networking so that they can be downloaded from the Internet." 0 0
+	dialog --backtitle "FreeBSD Installer" --title "Network Installation" --msgbox "Some installation files were not found on the boot volume. The next few screens will allow you to configure networking so that they can be downloaded from the Internet." 0 0
 	bsdinstall netconfig || error
 	NETCONFIG_DONE=yes
 fi
@@ -299,6 +304,7 @@ esac
 
 if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
 	ALL_DISTRIBUTIONS="$DISTRIBUTIONS"
+	WANT_DEBUG=
 
 	# Download to a directory in the new system as scratch space
 	BSDINSTALL_FETCHDEST="$BSDINSTALL_CHROOT/usr/freebsd-dist"
@@ -310,15 +316,65 @@ if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
 		DISTDIR_IS_UNIONFS=1
 		mount_nullfs -o union "$BSDINSTALL_FETCHDEST" "$BSDINSTALL_DISTDIR"
 	else
-		export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
+		export DISTRIBUTIONS="$FETCH_DISTRIBUTIONS"
 		export BSDINSTALL_DISTDIR="$BSDINSTALL_FETCHDEST"
 	fi
 		
 	export FTP_PASSIVE_MODE=YES
-	bsdinstall distfetch || error "Failed to fetch distribution"
+	# Iterate through the distribution list and set a flag if debugging
+	# distributions have been selected.
+	for _DISTRIBUTION in $DISTRIBUTIONS; do
+		case $_DISTRIBUTION in
+			*-dbg.*)
+				[ -e $BSDINSTALL_DISTDIR/$_DISTRIBUTION ] \
+					&& continue
+				WANT_DEBUG=1
+				DEBUG_LIST="\n$DEBUG_LIST\n$_DISTRIBUTION"
+				;;
+			*)
+				;;
+		esac
+	done
+
+	# Fetch the distributions.
+	bsdinstall distfetch
+	rc=$?
+
+	if [ $rc -ne 0 ]; then
+		# If unable to fetch the remote distributions, recommend
+		# deselecting the debugging distributions, and retrying the
+		# installation, since failure to fetch *-dbg.txz should not
+		# be considered a fatal installation error.
+		msg="Failed to fetch remote distribution"
+		if [ ! -z "$WANT_DEBUG" ]; then
+			# Trim leading and trailing newlines.
+			DEBUG_LIST="${DEBUG_LIST%%\n}"
+			DEBUG_LIST="${DEBUG_LIST##\n}"
+			msg="$msg\n\nPlease deselect the following distributions"
+			msg="$msg and retry the installation:"
+			msg="$msg\n$DEBUG_LIST"
+		fi
+		error "$msg"
+	fi
 	export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
 fi
 
+if [ ! -z "$LOCAL_DISTRIBUTIONS" ]; then
+	# Download to a directory in the new system as scratch space
+	BSDINSTALL_FETCHDEST="$BSDINSTALL_CHROOT/usr/freebsd-dist"
+	mkdir -p "$BSDINSTALL_FETCHDEST" || error "Could not create directory $BSDINSTALL_FETCHDEST"
+	# Try to use any existing distfiles
+	if [ -d $BSDINSTALL_DISTDIR ]; then
+		DISTDIR_IS_UNIONFS=1
+		mount_nullfs -o union "$BSDINSTALL_FETCHDEST" "$BSDINSTALL_DISTDIR"
+		export BSDINSTALL_DISTDIR="$BSDINSTALL_FETCHDEST"
+	fi
+	env DISTRIBUTIONS="$LOCAL_DISTRIBUTIONS" \
+		BSDINSTALL_DISTSITE="file:///usr/freebsd-dist" \
+		bsdinstall distfetch || \
+		error "Failed to fetch distribution from local media"
+fi
+
 bsdinstall checksum || error "Distribution checksum failed"
 bsdinstall distextract || error "Distribution extract failed"
 bsdinstall rootpass || error "Could not set root password"

Modified: projects/release-pkg/usr.sbin/cron/crontab/crontab.5
==============================================================================
--- projects/release-pkg/usr.sbin/cron/crontab/crontab.5	Tue Jan  5 21:10:38 2016	(r293224)
+++ projects/release-pkg/usr.sbin/cron/crontab/crontab.5	Tue Jan  5 21:12:49 2016	(r293225)
@@ -17,7 +17,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 28, 2012
+.Dd January 5, 2016
 .Dt CRONTAB 5
 .Os
 .Sh NAME
@@ -74,7 +74,7 @@ is set to
 .Pa /bin/sh ,
 .Ev PATH
 is set to
-.Pa /usr/bin:/bin ,
+.Pa /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin ,
 and
 .Ev LOGNAME
 and



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601052112.u05LCoWC074532>