Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Apr 2018 15:55:59 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r333118 - in user/markj/netdump: . bin/setfacl bin/sh bin/sh/tests/builtins cddl/contrib/opensolaris/cmd/zpool cddl/lib/libdtrace contrib/elftoolchain/ar contrib/elftoolchain/common con...
Message-ID:  <201804301555.w3UFtxwH072666@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Mon Apr 30 15:55:58 2018
New Revision: 333118
URL: https://svnweb.freebsd.org/changeset/base/333118

Log:
  MFH at r333117.

Added:
  user/markj/netdump/bin/sh/tests/builtins/case23.0
     - copied unchanged from r333117, head/bin/sh/tests/builtins/case23.0
  user/markj/netdump/share/man/man4/rk_gpio.4
     - copied unchanged from r333117, head/share/man/man4/rk_gpio.4
  user/markj/netdump/share/man/man4/rk_grf.4
     - copied unchanged from r333117, head/share/man/man4/rk_grf.4
  user/markj/netdump/share/man/man4/rk_pinctrl.4
     - copied unchanged from r333117, head/share/man/man4/rk_pinctrl.4
  user/markj/netdump/share/man/man4/smartpqi.4
     - copied unchanged from r333117, head/share/man/man4/smartpqi.4
  user/markj/netdump/sys/arm64/linux/
     - copied from r333117, head/sys/arm64/linux/
  user/markj/netdump/sys/arm64/rockchip/rk_gpio.c
     - copied unchanged from r333117, head/sys/arm64/rockchip/rk_gpio.c
  user/markj/netdump/sys/arm64/rockchip/rk_grf.c
     - copied unchanged from r333117, head/sys/arm64/rockchip/rk_grf.c
  user/markj/netdump/sys/arm64/rockchip/rk_pinctrl.c
     - copied unchanged from r333117, head/sys/arm64/rockchip/rk_pinctrl.c
  user/markj/netdump/sys/dev/smartpqi/
     - copied from r333117, head/sys/dev/smartpqi/
  user/markj/netdump/sys/modules/smartpqi/
     - copied from r333117, head/sys/modules/smartpqi/
  user/markj/netdump/usr.bin/grep/zgrep.1
     - copied unchanged from r333117, head/usr.bin/grep/zgrep.1
  user/markj/netdump/usr.bin/grep/zgrep.sh
     - copied unchanged from r333117, head/usr.bin/grep/zgrep.sh
  user/markj/netdump/usr.sbin/bluetooth/bthidd/btuinput.c
     - copied unchanged from r333117, head/usr.sbin/bluetooth/bthidd/btuinput.c
  user/markj/netdump/usr.sbin/bluetooth/bthidd/btuinput.h
     - copied unchanged from r333117, head/usr.sbin/bluetooth/bthidd/btuinput.h
Deleted:
  user/markj/netdump/sys/modules/dtb/overlays/
Modified:
  user/markj/netdump/Makefile.inc1
  user/markj/netdump/UPDATING
  user/markj/netdump/bin/setfacl/file.c
  user/markj/netdump/bin/setfacl/mask.c
  user/markj/netdump/bin/setfacl/merge.c
  user/markj/netdump/bin/setfacl/remove.c
  user/markj/netdump/bin/setfacl/setfacl.c
  user/markj/netdump/bin/setfacl/setfacl.h
  user/markj/netdump/bin/sh/expand.c
  user/markj/netdump/bin/sh/tests/builtins/Makefile
  user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool.8
  user/markj/netdump/cddl/lib/libdtrace/tcp.d
  user/markj/netdump/contrib/elftoolchain/ar/Makefile
  user/markj/netdump/contrib/elftoolchain/common/Makefile
  user/markj/netdump/contrib/elftoolchain/common/os.Linux.mk
  user/markj/netdump/contrib/elftoolchain/elfcopy/Makefile
  user/markj/netdump/contrib/elftoolchain/elfcopy/binary.c
  user/markj/netdump/contrib/elftoolchain/elfcopy/elfcopy.1
  user/markj/netdump/contrib/elftoolchain/elfcopy/main.c
  user/markj/netdump/contrib/elftoolchain/elfdump/elfdump.c
  user/markj/netdump/contrib/elftoolchain/libdwarf/Makefile
  user/markj/netdump/contrib/elftoolchain/libdwarf/libdwarf.h
  user/markj/netdump/contrib/elftoolchain/libdwarf/libdwarf_frame.c
  user/markj/netdump/contrib/elftoolchain/libdwarf/libdwarf_reloc.c
  user/markj/netdump/contrib/elftoolchain/libelf/Makefile
  user/markj/netdump/contrib/elftoolchain/libelf/_libelf_config.h
  user/markj/netdump/contrib/elftoolchain/libelf/gelf_phdr.c
  user/markj/netdump/contrib/elftoolchain/libelf/libelf_ehdr.c
  user/markj/netdump/contrib/elftoolchain/libelftc/Makefile
  user/markj/netdump/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c
  user/markj/netdump/contrib/elftoolchain/libpe/Makefile
  user/markj/netdump/contrib/elftoolchain/nm/nm.1
  user/markj/netdump/contrib/elftoolchain/readelf/readelf.c
  user/markj/netdump/contrib/elftoolchain/strings/strings.c
  user/markj/netdump/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp
  user/markj/netdump/contrib/ofed/libibumad/umad.c
  user/markj/netdump/etc/defaults/rc.conf
  user/markj/netdump/etc/rc.d/bthidd
  user/markj/netdump/gnu/usr.bin/grep/Makefile
  user/markj/netdump/lib/libbluetooth/bluetooth.3
  user/markj/netdump/lib/libbluetooth/bluetooth.h
  user/markj/netdump/lib/libbluetooth/hci.c
  user/markj/netdump/lib/libc/secure/stack_protector.c
  user/markj/netdump/lib/libelftc/elftc_version.c
  user/markj/netdump/lib/libsdp/sdp.3
  user/markj/netdump/lib/libsdp/sdp.h
  user/markj/netdump/lib/libsdp/session.c
  user/markj/netdump/lib/libsysdecode/errno.c
  user/markj/netdump/lib/libsysdecode/syscallnames.c
  user/markj/netdump/lib/libsysdecode/sysdecode.3
  user/markj/netdump/release/amd64/mkisoimages.sh
  user/markj/netdump/sbin/fsck_msdosfs/check.c
  user/markj/netdump/sbin/pfctl/pfctl.c
  user/markj/netdump/share/man/man3/siginfo.3
  user/markj/netdump/share/man/man4/Makefile
  user/markj/netdump/share/man/man4/cdce.4
  user/markj/netdump/share/man/man4/ehci.4
  user/markj/netdump/share/man/man4/lmc.4
  user/markj/netdump/share/man/man4/ohci.4
  user/markj/netdump/share/man/man4/ucom.4
  user/markj/netdump/share/man/man4/ugen.4
  user/markj/netdump/share/man/man4/uhci.4
  user/markj/netdump/share/man/man4/uhid.4
  user/markj/netdump/share/man/man4/ukbd.4
  user/markj/netdump/share/man/man4/umodem.4
  user/markj/netdump/share/man/man4/ums.4
  user/markj/netdump/share/man/man4/uplcom.4
  user/markj/netdump/share/man/man4/usb.4
  user/markj/netdump/share/man/man4/usb_template.4
  user/markj/netdump/share/man/man4/xhci.4
  user/markj/netdump/share/misc/committers-ports.dot
  user/markj/netdump/share/misc/committers-src.dot
  user/markj/netdump/share/misc/pci_vendors
  user/markj/netdump/stand/arm64/Makefile
  user/markj/netdump/stand/forth/efi.4th
  user/markj/netdump/sys/amd64/amd64/cpu_switch.S
  user/markj/netdump/sys/amd64/amd64/exception.S
  user/markj/netdump/sys/amd64/amd64/genassym.c
  user/markj/netdump/sys/amd64/amd64/machdep.c
  user/markj/netdump/sys/amd64/amd64/mp_machdep.c
  user/markj/netdump/sys/amd64/amd64/pmap.c
  user/markj/netdump/sys/amd64/amd64/trap.c
  user/markj/netdump/sys/amd64/conf/GENERIC
  user/markj/netdump/sys/amd64/conf/NOTES
  user/markj/netdump/sys/amd64/include/asmacros.h
  user/markj/netdump/sys/amd64/include/pcpu.h
  user/markj/netdump/sys/amd64/include/vmparam.h
  user/markj/netdump/sys/arm/allwinner/a10_ahci.c
  user/markj/netdump/sys/arm/allwinner/a10_ehci.c
  user/markj/netdump/sys/arm/allwinner/clkng/aw_clk.h
  user/markj/netdump/sys/arm/cavium/cns11xx/ehci_ebus.c
  user/markj/netdump/sys/arm/conf/ARMADA38X
  user/markj/netdump/sys/arm/conf/GENERIC
  user/markj/netdump/sys/arm/freescale/imx/imx6_ahci.c
  user/markj/netdump/sys/arm/freescale/vybrid/vf_ehci.c
  user/markj/netdump/sys/arm/mv/gpio.c
  user/markj/netdump/sys/arm/samsung/exynos/exynos5_ehci.c
  user/markj/netdump/sys/arm/ti/usb/omap_ehci.c
  user/markj/netdump/sys/arm/xilinx/zy7_ehci.c
  user/markj/netdump/sys/arm64/rockchip/clk/rk3328_cru.c
  user/markj/netdump/sys/cddl/dev/systrace/systrace.c
  user/markj/netdump/sys/compat/linuxkpi/common/include/linux/time.h
  user/markj/netdump/sys/conf/files.amd64
  user/markj/netdump/sys/conf/files.arm64
  user/markj/netdump/sys/dev/bxe/bxe.c
  user/markj/netdump/sys/dev/cxgbe/adapter.h
  user/markj/netdump/sys/dev/cxgbe/t4_main.c
  user/markj/netdump/sys/dev/cxgbe/t4_sge.c
  user/markj/netdump/sys/dev/cxgbe/tom/t4_connect.c
  user/markj/netdump/sys/dev/cxgbe/tom/t4_cpl_io.c
  user/markj/netdump/sys/dev/cxgbe/tom/t4_ddp.c
  user/markj/netdump/sys/dev/cxgbe/tom/t4_tls.c
  user/markj/netdump/sys/dev/cxgbe/tom/t4_tom.c
  user/markj/netdump/sys/dev/cxgbe/tom/t4_tom.h
  user/markj/netdump/sys/dev/evdev/uinput.c
  user/markj/netdump/sys/dev/evdev/uinput.h
  user/markj/netdump/sys/dev/extres/clk/clk.c
  user/markj/netdump/sys/dev/lmc/if_lmc.c
  user/markj/netdump/sys/dev/qlxgbe/ql_boot.c
  user/markj/netdump/sys/dev/qlxgbe/ql_fw.c
  user/markj/netdump/sys/dev/qlxgbe/ql_minidump.c
  user/markj/netdump/sys/dev/qlxgbe/ql_reset.c
  user/markj/netdump/sys/dev/qlxgbe/ql_ver.h
  user/markj/netdump/sys/dev/usb/controller/xhci.c
  user/markj/netdump/sys/dev/usb/controller/xhci.h
  user/markj/netdump/sys/dev/usb/controller/xhci_pci.c
  user/markj/netdump/sys/dev/usb/net/if_smsc.c
  user/markj/netdump/sys/dev/usb/serial/umodem.c
  user/markj/netdump/sys/dev/usb/serial/usb_serial.c
  user/markj/netdump/sys/dev/usb/serial/usb_serial.h
  user/markj/netdump/sys/dev/usb/serial/uslcom.c
  user/markj/netdump/sys/dts/arm/db78100.dts
  user/markj/netdump/sys/dts/arm/db88f5182.dts
  user/markj/netdump/sys/dts/arm/db88f5281.dts
  user/markj/netdump/sys/dts/arm/db88f6281.dts
  user/markj/netdump/sys/dts/arm/dockstar.dts
  user/markj/netdump/sys/dts/arm/sheevaplug.dts
  user/markj/netdump/sys/dts/bindings-gpio.txt
  user/markj/netdump/sys/i386/include/asmacros.h
  user/markj/netdump/sys/i386/include/pcpu.h
  user/markj/netdump/sys/kern/kern_dtrace.c
  user/markj/netdump/sys/kern/kern_lock.c
  user/markj/netdump/sys/kern/kern_mib.c
  user/markj/netdump/sys/kern/kern_shutdown.c
  user/markj/netdump/sys/kern/subr_syscall.c
  user/markj/netdump/sys/kern/subr_witness.c
  user/markj/netdump/sys/kern/uipc_debug.c
  user/markj/netdump/sys/kern/uipc_socket.c
  user/markj/netdump/sys/mips/include/proc.h
  user/markj/netdump/sys/mips/mips/pm_machdep.c
  user/markj/netdump/sys/mips/mips/trap.c
  user/markj/netdump/sys/modules/Makefile
  user/markj/netdump/sys/modules/dtb/allwinner/Makefile
  user/markj/netdump/sys/modules/ocs_fc/Makefile
  user/markj/netdump/sys/net/bpf.c
  user/markj/netdump/sys/net/if.c
  user/markj/netdump/sys/net/if_ethersubr.c
  user/markj/netdump/sys/net/if_var.h
  user/markj/netdump/sys/net/if_vlan.c
  user/markj/netdump/sys/netinet/in_pcb.c
  user/markj/netdump/sys/netinet/in_pcb.h
  user/markj/netdump/sys/netinet/ip_output.c
  user/markj/netdump/sys/netinet/tcp_subr.c
  user/markj/netdump/sys/netinet/tcp_var.h
  user/markj/netdump/sys/netinet/udp_usrreq.c
  user/markj/netdump/sys/netinet6/in6_pcb.c
  user/markj/netdump/sys/netinet6/in6_src.c
  user/markj/netdump/sys/netinet6/ip6_output.c
  user/markj/netdump/sys/netinet6/udp6_usrreq.c
  user/markj/netdump/sys/netipsec/ipsec_mbuf.c
  user/markj/netdump/sys/powerpc/ofw/ofw_machdep.c
  user/markj/netdump/sys/sys/elf_common.h
  user/markj/netdump/sys/sys/kern_prefetch.h
  user/markj/netdump/sys/sys/socket.h
  user/markj/netdump/sys/sys/socketvar.h
  user/markj/netdump/sys/sys/sysctl.h
  user/markj/netdump/sys/sys/sysent.h
  user/markj/netdump/sys/sys/vmmeter.h
  user/markj/netdump/sys/vm/uma_core.c
  user/markj/netdump/sys/vm/vm_fault.c
  user/markj/netdump/sys/vm/vm_meter.c
  user/markj/netdump/sys/vm/vm_object.c
  user/markj/netdump/sys/vm/vm_page.c
  user/markj/netdump/sys/vm/vm_page.h
  user/markj/netdump/sys/vm/vm_pageout.c
  user/markj/netdump/sys/vm/vm_pagequeue.h
  user/markj/netdump/sys/vm/vm_phys.c
  user/markj/netdump/sys/vm/vm_swapout.c
  user/markj/netdump/sys/x86/x86/cpu_machdep.c
  user/markj/netdump/sys/x86/x86/mca.c
  user/markj/netdump/sys/x86/x86/mp_x86.c
  user/markj/netdump/sys/x86/x86/tsc.c
  user/markj/netdump/tests/sys/kern/pdeathsig.c
  user/markj/netdump/tests/sys/kern/ptrace_test.c
  user/markj/netdump/tools/build/mk/OptionalObsoleteFiles.inc
  user/markj/netdump/usr.bin/etdump/etdump.1
  user/markj/netdump/usr.bin/grep/Makefile
  user/markj/netdump/usr.bin/grep/file.c
  user/markj/netdump/usr.bin/grep/grep.1
  user/markj/netdump/usr.bin/grep/grep.c
  user/markj/netdump/usr.bin/grep/grep.h
  user/markj/netdump/usr.bin/grep/nls/C.msg
  user/markj/netdump/usr.bin/grep/nls/es_ES.ISO8859-1.msg
  user/markj/netdump/usr.bin/grep/nls/gl_ES.ISO8859-1.msg
  user/markj/netdump/usr.bin/grep/nls/hu_HU.ISO8859-2.msg
  user/markj/netdump/usr.bin/grep/nls/ja_JP.SJIS.msg
  user/markj/netdump/usr.bin/grep/nls/ja_JP.UTF-8.msg
  user/markj/netdump/usr.bin/grep/nls/ja_JP.eucJP.msg
  user/markj/netdump/usr.bin/grep/nls/pt_BR.ISO8859-1.msg
  user/markj/netdump/usr.bin/grep/nls/ru_RU.KOI8-R.msg
  user/markj/netdump/usr.bin/grep/nls/uk_UA.UTF-8.msg
  user/markj/netdump/usr.bin/grep/nls/zh_CN.UTF-8.msg
  user/markj/netdump/usr.bin/kdump/kdump.c
  user/markj/netdump/usr.bin/man/man.1
  user/markj/netdump/usr.bin/tip/tip/tip.1
  user/markj/netdump/usr.bin/zstd/Makefile
  user/markj/netdump/usr.sbin/bluetooth/bthidcontrol/Makefile
  user/markj/netdump/usr.sbin/bluetooth/bthidcontrol/sdp.c
  user/markj/netdump/usr.sbin/bluetooth/bthidd/Makefile
  user/markj/netdump/usr.sbin/bluetooth/bthidd/bthid_config.h
  user/markj/netdump/usr.sbin/bluetooth/bthidd/bthidd.8
  user/markj/netdump/usr.sbin/bluetooth/bthidd/bthidd.c
  user/markj/netdump/usr.sbin/bluetooth/bthidd/bthidd.conf.sample
  user/markj/netdump/usr.sbin/bluetooth/bthidd/bthidd.h
  user/markj/netdump/usr.sbin/bluetooth/bthidd/client.c
  user/markj/netdump/usr.sbin/bluetooth/bthidd/hid.c
  user/markj/netdump/usr.sbin/bluetooth/bthidd/kbd.c
  user/markj/netdump/usr.sbin/bluetooth/bthidd/lexer.l
  user/markj/netdump/usr.sbin/bluetooth/bthidd/parser.y
  user/markj/netdump/usr.sbin/bluetooth/bthidd/server.c
  user/markj/netdump/usr.sbin/bluetooth/bthidd/session.c
  user/markj/netdump/usr.sbin/makefs/mtree.c
  user/markj/netdump/usr.sbin/usbconfig/usbconfig.8
Directory Properties:
  user/markj/netdump/   (props changed)
  user/markj/netdump/cddl/   (props changed)
  user/markj/netdump/cddl/contrib/opensolaris/   (props changed)
  user/markj/netdump/contrib/elftoolchain/   (props changed)
  user/markj/netdump/contrib/elftoolchain/ar/   (props changed)
  user/markj/netdump/contrib/elftoolchain/elfdump/   (props changed)
  user/markj/netdump/contrib/llvm/   (props changed)
  user/markj/netdump/contrib/llvm/tools/lldb/   (props changed)

Modified: user/markj/netdump/Makefile.inc1
==============================================================================
--- user/markj/netdump/Makefile.inc1	Mon Apr 30 15:54:48 2018	(r333117)
+++ user/markj/netdump/Makefile.inc1	Mon Apr 30 15:55:58 2018	(r333118)
@@ -524,9 +524,9 @@ PACKAGE=	kernel
 #
 
 BOOTSTRAPPING?=	0
-# Keep these in sync -- see below for special case exception
-MINIMUM_SUPPORTED_OSREL?= 900044
-MINIMUM_SUPPORTED_REL?= 9.1
+# Keep these in sync
+MINIMUM_SUPPORTED_OSREL?= 1002501
+MINIMUM_SUPPORTED_REL?= 10.3
 
 # Common environment for world related stages
 CROSSENV+=	\
@@ -1845,18 +1845,6 @@ _elftoolchain_libs= lib/libelf lib/libdwarf
 .endif
 
 legacy: .PHONY
-# Temporary special case for automatically detecting the clang compiler issue
-# Note: 9.x didn't have FreeBSD_version bumps often enough, so you may need to
-# set BOOTSTRAPPING to 0 if you're stable/9 tree post-dates r286035 but is before
-# the version bump in r296219 (from July 29, 2015 -> Feb 29, 2016).
-.if ${BOOTSTRAPPING} != 0 && \
-	${WANT_COMPILER_TYPE} == "clang" && ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 30601
-.if   ${BOOTSTRAPPING} > 10000000 && ${BOOTSTRAPPING} < 1002501
-	@echo "ERROR: Source upgrades from stable/10 prior to r286033 are not supported."; false
-.elif ${BOOTSTRAPPING} >  9000000 && ${BOOTSTRAPPING} <  903509
-	@echo "ERROR: Source upgrades from stable/9 prior to r286035 are not supported."; false
-.endif
-.endif
 .if ${BOOTSTRAPPING} < ${MINIMUM_SUPPORTED_OSREL} && ${BOOTSTRAPPING} != 0
 	@echo "ERROR: Source upgrades from versions prior to ${MINIMUM_SUPPORTED_REL} are not supported."; \
 	false

Modified: user/markj/netdump/UPDATING
==============================================================================
--- user/markj/netdump/UPDATING	Mon Apr 30 15:54:48 2018	(r333117)
+++ user/markj/netdump/UPDATING	Mon Apr 30 15:55:58 2018	(r333118)
@@ -1425,512 +1425,6 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
 	The stable/10 branch has been created in subversion from head
 	revision r256279.
 
-20131010:
-	The rc.d/jail script has been updated to support jail(8)
-	configuration file.  The "jail_<jname>_*" rc.conf(5) variables
-	for per-jail configuration are automatically converted to
-	/var/run/jail.<jname>.conf before the jail(8) utility is invoked.
-	This is transparently backward compatible.  See below about some
-	incompatibilities and rc.conf(5) manual page for more details.
-
-	These variables are now deprecated in favor of jail(8) configuration
-	file.  One can use "rc.d/jail config <jname>" command to generate
-	a jail(8) configuration file in /var/run/jail.<jname>.conf without
-	running the jail(8) utility.   The default pathname of the
-	configuration file is /etc/jail.conf and can be specified by
-	using $jail_conf or $jail_<jname>_conf variables.
-
-	Please note that jail_devfs_ruleset accepts an integer at
-	this moment.  Please consider to rewrite the ruleset name
-	with an integer.
-
-20130930:
-	BIND has been removed from the base system.  If all you need
-	is a local resolver, simply enable and start the local_unbound
-	service instead.  Otherwise, several versions of BIND are
-	available in the ports tree.   The dns/bind99 port is one example.
-
-	With this change, nslookup(1) and dig(1) are no longer in the base
-	system.  Users should instead use host(1) and drill(1) which are
-	in the base system.  Alternatively, nslookup and dig can
-	be obtained by installing the dns/bind-tools port.
-
-20130916:
-	With the addition of unbound(8), a new unbound user is now
-	required during installworld.  "mergemaster -p" can be used to
-	add the user prior to installworld, as documented in the handbook.
-
-20130911:
-	OpenSSH is now built with DNSSEC support, and will by default
-	silently trust signed SSHFP records.  This can be controlled with
-	the VerifyHostKeyDNS client configuration setting.  DNSSEC support
-	can be disabled entirely with the WITHOUT_LDNS option in src.conf.
-
-20130906:
-	The GNU Compiler Collection and C++ standard library (libstdc++)
-	are no longer built by default on platforms where clang is the system
-	compiler.  You can enable them with the WITH_GCC and WITH_GNUCXX
-	options in src.conf.
-
-20130905:
-	The PROCDESC kernel option is now part of the GENERIC kernel
-	configuration and is required for the rwhod(8) to work.
-	If you are using custom kernel configuration, you should include
-	'options PROCDESC'.
-
-20130905:
-	The API and ABI related to the Capsicum framework was modified
-	in backward incompatible way. The userland libraries and programs
-	have to be recompiled to work with the new kernel. This includes the
-	following libraries and programs, but the whole buildworld is
-	advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
-	kdump, procstat, rwho, rwhod, uniq.
-
-20130903:
-	AES-NI intrinsic support has been added to gcc.  The AES-NI module
-	has been updated to use this support.  A new gcc is required to build
-	the aesni module on both i386 and amd64.
-
-20130821:
-	The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
-	Thus "device padlock_rng" and "device rdrand_rng" should be
-	used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
-
-20130813:
-	WITH_ICONV has been split into two feature sets.  WITH_ICONV now
-	enables just the iconv* functionality and is now on by default.
-	WITH_LIBICONV_COMPAT enables the libiconv api and link time
-	compatibility.  Set WITHOUT_ICONV to build the old way.
-	If you have been using WITH_ICONV before, you will very likely
-	need to turn on WITH_LIBICONV_COMPAT.
-
-20130806:
-	INVARIANTS option now enables DEBUG for code with OpenSolaris and
-	Illumos origin, including ZFS.  If you have INVARIANTS in your
-	kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
-	explicitly.
-	DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
-	locks if WITNESS option was set.  Because that generated a lot of
-	witness(9) reports and all of them were believed to be false
-	positives, this is no longer done.  New option OPENSOLARIS_WITNESS
-	can be used to achieve the previous behavior.
-
-20130806:
-	Timer values in IPv6 data structures now use time_uptime instead
-	of time_second.  Although this is not a user-visible functional
-	change, userland utilities which directly use them---ndp(8),
-	rtadvd(8), and rtsold(8) in the base system---need to be updated
-	to r253970 or later.
-
-20130802:
-	find -delete can now delete the pathnames given as arguments,
-	instead of only files found below them or if the pathname did
-	not contain any slashes. Formerly, the following error message
-	would result:
-
-	find: -delete: <path>: relative path potentially not safe
-
-	Deleting the pathnames given as arguments can be prevented
-	without error messages using -mindepth 1 or by changing
-	directory and passing "." as argument to find. This works in the
-	old as well as the new version of find.
-
-20130726:
-	Behavior of devfs rules path matching has been changed.
-	Pattern is now always matched against fully qualified devfs
-	path and slash characters must be explicitly matched by
-	slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
-	subdirectories must be reviewed.
-
-20130716:
-	The default ARM ABI has changed to the ARM EABI. The old ABI is
-	incompatible with the ARM EABI and all programs and modules will
-	need to be rebuilt to work with a new kernel.
-
-	To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
-
-	NOTE: Support for the old ABI will be removed in the future and
-	users are advised to upgrade.
-
-20130709:
-	pkg_install has been disconnected from the build if you really need it
-	you should add WITH_PKGTOOLS in your src.conf(5).
-
-20130709:
-	Most of network statistics structures were changed to be able
-	keep 64-bits counters. Thus all tools, that work with networking
-	statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
-
-20130618:
-	Fix a bug that allowed a tracing process (e.g. gdb) to write
-	to a memory-mapped file in the traced process's address space
-	even if neither the traced process nor the tracing process had
-	write access to that file.
-
-20130615:
-	CVS has been removed from the base system.  An exact copy
-	of the code is available from the devel/cvs port.
-
-20130613:
-	Some people report the following error after the switch to bmake:
-
-		make: illegal option -- J
-		usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
-			...
-		*** [buildworld] Error code 2
-
-	this likely due to an old instance of make in
-	${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
-	which src/Makefile will use that blindly, if it exists, so if
-	you see the above error:
-
-		rm -rf `make -V MAKEPATH`
-
-	should resolve it.
-
-20130516:
-	Use bmake by default.
-	Whereas before one could choose to build with bmake via
-	-DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
-	make. The goal is to remove these knobs for 10-RELEASE.
-
-	It is worth noting that bmake (like gmake) treats the command
-	line as the unit of failure, rather than statements within the
-	command line.  Thus '(cd some/where && dosomething)' is safer
-	than 'cd some/where; dosomething'. The '()' allows consistent
-	behavior in parallel build.
-
-20130429:
-	Fix a bug that allows NFS clients to issue READDIR on files.
-
-20130426:
-	The WITHOUT_IDEA option has been removed because
-	the IDEA patent expired.
-
-20130426:
-	The sysctl which controls TRIM support under ZFS has been renamed
-	from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
-	enabled by default.
-
-20130425:
-	The mergemaster command now uses the default MAKEOBJDIRPREFIX
-	rather than creating it's own in the temporary directory in
-	order allow access to bootstrapped versions of tools such as
-	install and mtree.  When upgrading from version of FreeBSD where
-	the install command does not support -l, you will need to
-	install a new mergemaster command if mergemaster -p is required.
-	This can be accomplished with the command (cd src/usr.sbin/mergemaster
-	&& make install).
-
-20130404:
-	Legacy ATA stack, disabled and replaced by new CAM-based one since
-	FreeBSD 9.0, completely removed from the sources.  Kernel modules
-	atadisk and atapi*, user-level tools atacontrol and burncd are
-	removed.  Kernel option `options ATA_CAM` is now permanently enabled
-	and removed.
-
-20130319:
-	SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
-	and socketpair(2). Software, in particular Kerberos, may
-	automatically detect and use these during building. The resulting
-	binaries will not work on older kernels.
-
-20130308:
-	CTL_DISABLE has also been added to the sparc64 GENERIC (for further
-	information, see the respective 20130304 entry).
-
-20130304:
-	Recent commits to callout(9) changed the size of struct callout,
-	so the KBI is probably heavily disturbed. Also, some functions
-	in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
-	by macros. Every kernel module using it won't load, so rebuild
-	is requested.
-
-	The ctl device has been re-enabled in GENERIC for i386 and amd64,
-	but does not initialize by default (because of the new CTL_DISABLE
-	option) to save memory.  To re-enable it, remove the CTL_DISABLE
-	option from the kernel config file or set kern.cam.ctl.disable=0
-	in /boot/loader.conf.
-
-20130301:
-	The ctl device has been disabled in GENERIC for i386 and amd64.
-	This was done due to the extra memory being allocated at system
-	initialisation time by the ctl driver which was only used if
-	a CAM target device was created.  This makes a FreeBSD system
-	unusable on 128MB or less of RAM.
-
-20130208:
-	A new compression method (lz4) has been merged to -HEAD.  Please
-	refer to zpool-features(7) for more information.
-
-	Please refer to the "ZFS notes" section of this file for information
-	on upgrading boot ZFS pools.
-
-20130129:
-	A BSD-licensed patch(1) variant has been added and is installed
-	as bsdpatch, being the GNU version the default patch.
-	To inverse the logic and use the BSD-licensed one as default,
-	while having the GNU version installed as gnupatch, rebuild
-	and install world with the WITH_BSD_PATCH knob set.
-
-20130121:
-	Due to the use of the new -l option to install(1) during build
-	and install, you must take care not to directly set the INSTALL
-	make variable in your /etc/make.conf, /etc/src.conf, or on the
-	command line.  If you wish to use the -C flag for all installs
-	you may be able to add INSTALL+=-C to /etc/make.conf or
-	/etc/src.conf.
-
-20130118:
-	The install(1) option -M has changed meaning and now takes an
-	argument that is a file or path to append logs to.  In the
-	unlikely event that -M was the last option on the command line
-	and the command line contained at least two files and a target
-	directory the first file will have logs appended to it.  The -M
-	option served little practical purpose in the last decade so its
-	use is expected to be extremely rare.
-
-20121223:
-	After switching to Clang as the default compiler some users of ZFS
-	on i386 systems started to experience stack overflow kernel panics.
-	Please consider using 'options KSTACK_PAGES=4' in such configurations.
-
-20121222:
-	GEOM_LABEL now mangles label names read from file system metadata.
-	Mangling affect labels containing spaces, non-printable characters,
-	'%' or '"'. Device names in /etc/fstab and other places may need to
-	be updated.
-
-20121217:
-	By default, only the 10 most recent kernel dumps will be saved.  To
-	restore the previous behaviour (no limit on the number of kernel dumps
-	stored in the dump directory) add the following line to /etc/rc.conf:
-
-		savecore_flags=""
-
-20121201:
-	With the addition of auditdistd(8), a new auditdistd user is now
-	required during installworld.  "mergemaster -p" can be used to
-	add the user prior to installworld, as documented in the handbook.
-
-20121117:
-	The sin6_scope_id member variable in struct sockaddr_in6 is now
-	filled by the kernel before passing the structure to the userland via
-	sysctl or routing socket.  This means the KAME-specific embedded scope
-	id in sin6_addr.s6_addr[2] is always cleared in userland application.
-	This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
-	__FreeBSD_version is bumped to 1000025.
-
-20121105:
-	On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
-	This means that the world and kernel will be compiled with clang
-	and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
-	and /usr/bin/cpp.  To disable this behavior and revert to building
-	with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
-	of current may need to bootstrap WITHOUT_CLANG first if the clang
-	build fails (its compatibility window doesn't extend to the 9 stable
-	branch point).
-
-20121102:
-	The IPFIREWALL_FORWARD kernel option has been removed. Its
-	functionality now turned on by default.
-
-20121023:
-	The ZERO_COPY_SOCKET kernel option has been removed and
-	split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
-	NB: SOCKET_SEND_COW uses the VM page based copy-on-write
-	mechanism which is not safe and may result in kernel crashes.
-	NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
-	driver supports disposeable external page sized mbuf storage.
-	Proper replacements for both zero-copy mechanisms are under
-	consideration and will eventually lead to complete removal
-	of the two kernel options.
-
-20121023:
-	The IPv4 network stack has been converted to network byte
-	order. The following modules need to be recompiled together
-	with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
-	pf(4), ipfw(4), ng_ipfw(4), stf(4).
-
-20121022:
-	Support for non-MPSAFE filesystems was removed from VFS. The
-	VFS_VERSION was bumped, all filesystem modules shall be
-	recompiled.
-
-20121018:
-	All the non-MPSAFE filesystems have been disconnected from
-	the build. The full list includes: codafs, hpfs, ntfs, nwfs,
-	portalfs, smbfs, xfs.
-
-20121016:
-	The interface cloning API and ABI has changed. The following
-	modules need to be recompiled together with kernel:
-	ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
-	vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
-	faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
-
-20121015:
-	The sdhci driver was split in two parts: sdhci (generic SD Host
-	Controller logic) and sdhci_pci (actual hardware driver).
-	No kernel config modifications are required, but if you
-	load sdhc as a module you must switch to sdhci_pci instead.
-
-20121014:
-	Import the FUSE kernel and userland support into base system.
-
-20121013:
-	The GNU sort(1) program has been removed since the BSD-licensed
-	sort(1) has been the default for quite some time and no serious
-	problems have been reported.  The corresponding WITH_GNU_SORT
-	knob has also gone.
-
-20121006:
-	The pfil(9) API/ABI for AF_INET family has been changed. Packet
-	filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
-	with new kernel.
-
-20121001:
-	The net80211(4) ABI has been changed to allow for improved driver
-	PS-POLL and power-save support.  All wireless drivers need to be
-	recompiled to work with the new kernel.
-
-20120913:
-	The random(4) support for the VIA hardware random number
-	generator (`PADLOCK') is no longer enabled unconditionally.
-	Add the padlock_rng device in the custom kernel config if
-	needed.  The GENERIC kernels on i386 and amd64 do include the
-	device, so the change only affects the custom kernel
-	configurations.
-
-20120908:
-	The pf(4) packet filter ABI has been changed. pfctl(8) and
-	snmp_pf module need to be recompiled to work with new kernel.
-
-20120828:
-	A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
-	to -HEAD. Pools that have empty_bpobj in active state can not be
-	imported read-write with ZFS implementations that do not support
-	this feature. For more information read the zpool-features(5)
-	manual page.
-
-20120727:
-	The sparc64 ZFS loader has been changed to no longer try to auto-
-	detect ZFS providers based on diskN aliases but now requires these
-	to be explicitly listed in the OFW boot-device environment variable.
-
-20120712:
-	The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
-	libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
-	configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
-
-20120712:
-	The following sysctls and tunables have been renamed for consistency
-	with other variables:
-	  kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
-	  kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
-
-20120628:
-	The sort utility has been replaced with BSD sort.  For now, GNU sort
-	is also available as "gnusort" or the default can be set back to
-	GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
-	installed as "bsdsort".
-
-20120611:
-	A new version of ZFS (pool version 5000) has been merged to -HEAD.
-	Starting with this version the old system of ZFS pool versioning
-	is superseded by "feature flags". This concept enables forward
-	compatibility against certain future changes in functionality of ZFS
-	pools. The first read-only compatible "feature flag" for ZFS pools
-	is named "com.delphix:async_destroy". For more information
-	read the new zpool-features(5) manual page.
-	Please refer to the "ZFS notes" section of this file for information
-	on upgrading boot ZFS pools.
-
-20120417:
-	The malloc(3) implementation embedded in libc now uses sources imported
-	as contrib/jemalloc.  The most disruptive API change is to
-	/etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
-	delete it prior to installworld, and optionally re-create it using the
-	new format after rebooting.  See malloc.conf(5) for details
-	(specifically the TUNING section and the "opt.*" entries in the MALLCTL
-	NAMESPACE section).
-
-20120328:
-	Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
-	is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
-	now spelled mips.  This is to aid compatibility with third-party
-	software that expects this naming scheme in uname(3).  Little-endian
-	settings are unchanged. If you are updating a big-endian mips64 machine
-	from before this change, you may need to set MACHINE_ARCH=mips64 in
-	your environment before the new build system will recognize your machine.
-
-20120306:
-	Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
-	platforms.
-
-20120229:
-	Now unix domain sockets behave "as expected" on	nullfs(5). Previously
-	nullfs(5) did not pass through all behaviours to the underlying layer,
-	as a result if we bound to a socket on the lower layer we could connect
-	only to the lower path; if we bound to the upper layer we could connect
-	only to	the upper path. The new behavior is one can connect to both the
-	lower and the upper paths regardless what layer path one binds to.
-
-20120211:
-	The getifaddrs upgrade path broken with 20111215 has been restored.
-	If you have upgraded in between 20111215 and 20120209 you need to
-	recompile libc again with your kernel.  You still need to recompile
-	world to be able to configure CARP but this restriction already
-	comes from 20111215.
-
-20120114:
-	The set_rcvar() function has been removed from /etc/rc.subr.  All
-	base and ports rc.d scripts have been updated, so if you have a
-	port installed with a script in /usr/local/etc/rc.d you can either
-	hand-edit the rcvar= line, or reinstall the port.
-
-	An easy way to handle the mass-update of /etc/rc.d:
-	rm /etc/rc.d/* && mergemaster -i
-
-20120109:
-	panic(9) now stops other CPUs in the SMP systems, disables interrupts
-	on the current CPU and prevents other threads from running.
-	This behavior can be reverted using the kern.stop_scheduler_on_panic
-	tunable/sysctl.
-	The new behavior can be incompatible with kern.sync_on_panic.
-
-20111215:
-	The carp(4) facility has been changed significantly. Configuration
-	of the CARP protocol via ifconfig(8) has changed, as well as format
-	of CARP events submitted to devd(8) has changed. See manual pages
-	for more information. The arpbalance feature of carp(4) is currently
-	not supported anymore.
-
-	Size of struct in_aliasreq, struct in6_aliasreq has changed. User
-	utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
-	need to be recompiled.
-
-20111122:
-	The acpi_wmi(4) status device /dev/wmistat has been renamed to
-	/dev/wmistat0.
-
-20111108:
-	The option VFS_ALLOW_NONMPSAFE option has been added in order to
-	explicitely support non-MPSAFE filesystems.
-	It is on by default for all supported platform at this present
-	time.
-
-20111101:
-	The broken amd(4) driver has been replaced with esp(4) in the amd64,
-	i386 and pc98 GENERIC kernel configuration files.
-
-20110930:
-	sysinstall has been removed
-
-20110923:
-	The stable/9 branch created in subversion.  This corresponds to the
-	RELENG_9 branch in CVS.
-
 COMMON ITEMS:
 
 	General Notes

Modified: user/markj/netdump/bin/setfacl/file.c
==============================================================================
--- user/markj/netdump/bin/setfacl/file.c	Mon Apr 30 15:54:48 2018	(r333117)
+++ user/markj/netdump/bin/setfacl/file.c	Mon Apr 30 15:55:58 2018	(r333118)
@@ -50,10 +50,10 @@ get_acl_from_file(const char *filename)
 		err(1, "(null) filename in get_acl_from_file()");
 
 	if (strcmp(filename, "-") == 0) {
-		if (have_stdin != 0)
+		if (have_stdin)
 			err(1, "cannot specify more than one stdin");
 		file = stdin;
-		have_stdin = 1;
+		have_stdin = true;
 	} else {
 		file = fopen(filename, "r");
 		if (file == NULL)

Modified: user/markj/netdump/bin/setfacl/mask.c
==============================================================================
--- user/markj/netdump/bin/setfacl/mask.c	Mon Apr 30 15:54:48 2018	(r333117)
+++ user/markj/netdump/bin/setfacl/mask.c	Mon Apr 30 15:55:58 2018	(r333118)
@@ -61,7 +61,7 @@ set_acl_mask(acl_t *prev_acl, const char *filename)
 	if (acl == NULL)
 		err(1, "%s: acl_dup() failed", filename);
 
-	if (n_flag == 0) {
+	if (!n_flag) {
 		/*
 		 * If no mask entry is specified and the -n option is not
 		 * specified, then the permissions of the resulting ACL mask

Modified: user/markj/netdump/bin/setfacl/merge.c
==============================================================================
--- user/markj/netdump/bin/setfacl/merge.c	Mon Apr 30 15:54:48 2018	(r333117)
+++ user/markj/netdump/bin/setfacl/merge.c	Mon Apr 30 15:55:58 2018	(r333118)
@@ -123,7 +123,7 @@ merge_acl(acl_t acl, acl_t *prev_acl, const char *file
 			err(1, "%s: acl_get_tag_type() failed - "
 			    "invalid ACL entry", filename);
 		if (tag == ACL_MASK)
-			have_mask = 1;
+			have_mask = true;
 
 		/* check against the existing ACL entries */
 		entry_id_new = ACL_FIRST_ENTRY;

Modified: user/markj/netdump/bin/setfacl/remove.c
==============================================================================
--- user/markj/netdump/bin/setfacl/remove.c	Mon Apr 30 15:54:48 2018	(r333117)
+++ user/markj/netdump/bin/setfacl/remove.c	Mon Apr 30 15:55:58 2018	(r333118)
@@ -75,7 +75,7 @@ remove_acl(acl_t acl, acl_t *prev_acl, const char *fil
 		if (acl_get_tag_type(entry, &tag) == -1)
 			err(1, "%s: acl_get_tag_type() failed", filename);
 		if (tag == ACL_MASK)
-			have_mask++;
+			have_mask = true;
 		if (acl_delete_entry(acl_new, entry) == -1) {
 			carried_error++;
 			warnx("%s: cannot remove non-existent ACL entry",
@@ -124,7 +124,7 @@ remove_by_number(uint entry_number, acl_t *prev_acl, c
 		if (acl_get_tag_type(entry, &tag) == -1)
 			err(1, "%s: acl_get_tag_type() failed", filename);
 		if (tag == ACL_MASK)
-			have_mask++;
+			have_mask = true;
 	}
 
 	if (acl_delete_entry_np(acl_new, entry_number) == -1) {

Modified: user/markj/netdump/bin/setfacl/setfacl.c
==============================================================================
--- user/markj/netdump/bin/setfacl/setfacl.c	Mon Apr 30 15:54:48 2018	(r333117)
+++ user/markj/netdump/bin/setfacl/setfacl.c	Mon Apr 30 15:55:58 2018	(r333118)
@@ -62,11 +62,18 @@ struct sf_entry {
 };
 static TAILQ_HEAD(, sf_entry) entrylist;
 
-uint have_mask;
-uint need_mask;
-uint have_stdin;
-uint n_flag;
+bool have_mask;
+bool have_stdin;
+bool n_flag;
+static bool h_flag;
+static bool H_flag;
+static bool L_flag;
+static bool R_flag;
+static bool need_mask;
+static acl_type_t acl_type = ACL_TYPE_ACCESS;
 
+static int	handle_file(FTS *ftsp, FTSENT *file);
+static char	**stdin_files(void);
 static void	usage(void);
 
 static void
@@ -79,16 +86,215 @@ usage(void)
 	exit(1);
 }
 
-int
-main(int argc, char *argv[])
+static char **
+stdin_files(void)
 {
-	acl_t acl;
-	acl_type_t acl_type;
-	acl_entry_t unused_entry;
+	char **files_list;
 	char filename[PATH_MAX];
-	int local_error, carried_error, ch, entry_number, ret, fts_options;
-	bool h_flag, H_flag, L_flag, R_flag, follow_symlink;
 	size_t fl_count, i;
+
+	if (have_stdin)
+		err(1, "cannot have more than one stdin");
+
+	i = 0;
+	have_stdin = true;
+	bzero(&filename, sizeof(filename));
+	/* Start with an array size sufficient for basic cases. */
+	fl_count = 1024;
+	files_list = zmalloc(fl_count * sizeof(char *));
+	while (fgets(filename, (int)sizeof(filename), stdin)) {
+		/* remove the \n */
+		filename[strlen(filename) - 1] = '\0';
+		files_list[i] = strdup(filename);
+		if (files_list[i] == NULL)
+			err(1, "strdup() failed");
+		/* Grow array if necessary. */
+		if (++i == fl_count) {
+			fl_count <<= 1;
+			if (fl_count > SIZE_MAX / sizeof(char *))
+				errx(1, "Too many input files");
+			files_list = zrealloc(files_list,
+					fl_count * sizeof(char *));
+		}
+	}
+
+	/* fts_open() requires the last array element to be NULL. */
+	files_list[i] = NULL;
+
+	return (files_list);
+}
+
+static int
+handle_file(FTS *ftsp, FTSENT *file)
+{
+	acl_t acl;
+	acl_entry_t unused_entry;
+	int local_error, ret;
+	struct sf_entry *entry;
+	bool follow_symlink;
+
+	local_error = 0;
+	switch (file->fts_info) {
+	case FTS_D:
+		/* Do not recurse if -R not specified. */
+		if (!R_flag)
+			fts_set(ftsp, file, FTS_SKIP);
+		break;
+	case FTS_DP:
+		/* Skip the second visit to a directory. */
+		return (0);
+	case FTS_DNR:
+	case FTS_ERR:
+		warnx("%s: %s", file->fts_path, strerror(file->fts_errno));
+		return (0);
+	default:
+		break;
+	}
+
+	if (acl_type == ACL_TYPE_DEFAULT && file->fts_info != FTS_D) {
+		warnx("%s: default ACL may only be set on a directory",
+		    file->fts_path);
+		return (1);
+	}
+
+	follow_symlink = (!R_flag && !h_flag) || (R_flag && L_flag) ||
+	    (R_flag && H_flag && file->fts_level == FTS_ROOTLEVEL);
+
+	if (follow_symlink)
+		ret = pathconf(file->fts_accpath, _PC_ACL_NFS4);
+	else
+		ret = lpathconf(file->fts_accpath, _PC_ACL_NFS4);
+	if (ret > 0) {
+		if (acl_type == ACL_TYPE_DEFAULT) {
+			warnx("%s: there are no default entries in NFSv4 ACLs",
+			    file->fts_path);
+			return (1);
+		}
+		acl_type = ACL_TYPE_NFS4;
+	} else if (ret == 0) {
+		if (acl_type == ACL_TYPE_NFS4)
+			acl_type = ACL_TYPE_ACCESS;
+	} else if (ret < 0 && errno != EINVAL) {
+		warn("%s: pathconf(..., _PC_ACL_NFS4) failed",
+		    file->fts_path);
+	}
+
+	if (follow_symlink)
+		acl = acl_get_file(file->fts_accpath, acl_type);
+	else
+		acl = acl_get_link_np(file->fts_accpath, acl_type);
+	if (acl == NULL) {
+		if (follow_symlink)
+			warn("%s: acl_get_file() failed", file->fts_path);
+		else
+			warn("%s: acl_get_link_np() failed", file->fts_path);
+		return (1);
+	}
+
+	/* Cycle through each option. */
+	TAILQ_FOREACH(entry, &entrylist, next) {
+		if (local_error)
+			continue;
+
+		switch(entry->op) {
+		case OP_ADD_ACL:
+			local_error += add_acl(entry->acl, entry->entry_number,
+			    &acl, file->fts_path);
+			break;
+		case OP_MERGE_ACL:
+			local_error += merge_acl(entry->acl, &acl,
+			    file->fts_path);
+			need_mask = true;
+			break;
+		case OP_REMOVE_EXT:
+			/*
+			 * Don't try to call remove_ext() for empty
+			 * default ACL.
+			 */
+			if (acl_type == ACL_TYPE_DEFAULT &&
+			    acl_get_entry(acl, ACL_FIRST_ENTRY,
+			    &unused_entry) == 0) {
+				local_error += remove_default(&acl,
+				    file->fts_path);
+				break;
+			}
+			remove_ext(&acl, file->fts_path);
+			need_mask = false;
+			break;
+		case OP_REMOVE_DEF:
+			if (acl_type == ACL_TYPE_NFS4) {
+				warnx("%s: there are no default entries in "
+				    "NFSv4 ACLs; cannot remove",
+				    file->fts_path);
+				local_error++;
+				break;
+			}
+			if (acl_delete_def_file(file->fts_accpath) == -1) {
+				warn("%s: acl_delete_def_file() failed",
+				    file->fts_path);
+				local_error++;
+			}
+			if (acl_type == ACL_TYPE_DEFAULT)
+				local_error += remove_default(&acl,
+				    file->fts_path);
+			need_mask = false;
+			break;
+		case OP_REMOVE_ACL:
+			local_error += remove_acl(entry->acl, &acl,
+			    file->fts_path);
+			need_mask = true;
+			break;
+		case OP_REMOVE_BY_NUMBER:
+			local_error += remove_by_number(entry->entry_number,
+			    &acl, file->fts_path);
+			need_mask = true;
+			break;
+		}
+	}
+
+	/*
+	 * Don't try to set an empty default ACL; it will always fail.
+	 * Use acl_delete_def_file(3) instead.
+	 */
+	if (acl_type == ACL_TYPE_DEFAULT &&
+	    acl_get_entry(acl, ACL_FIRST_ENTRY, &unused_entry) == 0) {
+		if (acl_delete_def_file(file->fts_accpath) == -1) {
+			warn("%s: acl_delete_def_file() failed",
+			    file->fts_path);
+			return (1);
+		}
+		return (0);
+	}
+
+	/* Don't bother setting the ACL if something is broken. */
+	if (local_error) {
+		return (1);
+	}
+
+	if (acl_type != ACL_TYPE_NFS4 && need_mask &&
+	    set_acl_mask(&acl, file->fts_path) == -1) {
+		warnx("%s: failed to set ACL mask", file->fts_path);
+		return (1);
+	} else if (follow_symlink) {
+		if (acl_set_file(file->fts_accpath, acl_type, acl) == -1) {
+			warn("%s: acl_set_file() failed", file->fts_path);
+			return (1);
+		}
+	} else {
+		if (acl_set_link_np(file->fts_accpath, acl_type, acl) == -1) {
+			warn("%s: acl_set_link_np() failed", file->fts_path);
+			return (1);
+		}
+	}
+
+	acl_free(acl);
+	return (0);
+}
+
+int
+main(int argc, char *argv[])
+{
+	int carried_error, ch, entry_number, fts_options;
 	FTS *ftsp;
 	FTSENT *file;
 	char **files_list;
@@ -96,9 +302,8 @@ main(int argc, char *argv[])
 	char *end;
 
 	acl_type = ACL_TYPE_ACCESS;
-	carried_error = local_error = fts_options = 0;
-	have_mask = have_stdin = n_flag = need_mask = 0;
-	h_flag = H_flag = L_flag = R_flag = false;
+	carried_error = fts_options = 0;
+	have_mask = have_stdin = n_flag = false;
 
 	TAILQ_INIT(&entrylist);
 
@@ -116,7 +321,8 @@ main(int argc, char *argv[])
 			entry = zmalloc(sizeof(struct sf_entry));
 			entry->acl = get_acl_from_file(optarg);
 			if (entry->acl == NULL)
-				err(1, "%s: get_acl_from_file() failed", optarg);
+				err(1, "%s: get_acl_from_file() failed",
+				    optarg);
 			entry->op = OP_MERGE_ACL;
 			TAILQ_INSERT_TAIL(&entrylist, entry, next);
 			break;
@@ -139,7 +345,9 @@ main(int argc, char *argv[])
 			if (end - optarg != (int)strlen(optarg))
 				errx(1, "%s: invalid entry number", optarg);
 			if (entry_number < 0)
-				errx(1, "%s: entry number cannot be less than zero", optarg);
+				errx(1,
+				    "%s: entry number cannot be less than zero",
+				    optarg);
 			entry->entry_number = entry_number;
 
 			if (argv[optind] == NULL)
@@ -176,14 +384,16 @@ main(int argc, char *argv[])
 			TAILQ_INSERT_TAIL(&entrylist, entry, next);
 			break;
 		case 'n':
-			n_flag++;
+			n_flag = true;
 			break;
 		case 'x':
 			entry = zmalloc(sizeof(struct sf_entry));
 			entry_number = strtol(optarg, &end, 10);
 			if (end - optarg == (int)strlen(optarg)) {
 				if (entry_number < 0)
-					errx(1, "%s: entry number cannot be less than zero", optarg);
+					errx(1,
+					    "%s: entry number cannot be less than zero",
+					    optarg);
 				entry->entry_number = entry_number;
 				entry->op = OP_REMOVE_BY_NUMBER;
 			} else {
@@ -201,37 +411,12 @@ main(int argc, char *argv[])
 	argc -= optind;
 	argv += optind;
 
-	if (n_flag == 0 && TAILQ_EMPTY(&entrylist))
+	if (!n_flag && TAILQ_EMPTY(&entrylist))
 		usage();
 
-	/* take list of files from stdin */
+	/* Take list of files from stdin. */
 	if (argc == 0 || strcmp(argv[0], "-") == 0) {
-		if (have_stdin)
-			err(1, "cannot have more than one stdin");
-		have_stdin = 1;
-		bzero(&filename, sizeof(filename));
-		i = 0;
-		/* Start with an array size sufficient for basic cases. */
-		fl_count = 1024;
-		files_list = zmalloc(fl_count * sizeof(char *));
-		while (fgets(filename, (int)sizeof(filename), stdin)) {
-			/* remove the \n */
-			filename[strlen(filename) - 1] = '\0';
-			files_list[i] = strdup(filename);
-			if (files_list[i] == NULL)
-				err(1, "strdup() failed");
-			/* Grow array if necessary. */
-			if (++i == fl_count) {
-				fl_count <<= 1;
-				if (fl_count > SIZE_MAX / sizeof(char *))
-					errx(1, "Too many input files");
-				files_list = zrealloc(files_list,
-				    fl_count * sizeof(char *));
-			}
-		}
-
-		/* fts_open() requires the last array element to be NULL. */
-		files_list[i] = NULL;
+		files_list = stdin_files();
 	} else
 		files_list = argv;
 
@@ -257,176 +442,8 @@ main(int argc, char *argv[])
 	/* Open all files. */
 	if ((ftsp = fts_open(files_list, fts_options | FTS_NOSTAT, 0)) == NULL)
 		err(1, "fts_open");
-	while ((file = fts_read(ftsp)) != NULL) {
-		switch (file->fts_info) {
-		case FTS_D:
-			/* Do not recurse if -R not specified. */
-			if (!R_flag)
-				fts_set(ftsp, file, FTS_SKIP);
-			break;
-		case FTS_DP:
-			/* Skip the second visit to a directory. */
-			continue;
-		case FTS_DNR:
-		case FTS_ERR:
-			warnx("%s: %s", file->fts_path,
-			    strerror(file->fts_errno));
-			continue;
-		default:
-			break;
-		}
-
-		if (acl_type == ACL_TYPE_DEFAULT && file->fts_info != FTS_D) {
-			warnx("%s: default ACL may only be set on "
-			    "a directory", file->fts_path);
-			carried_error++;
-			continue;
-		}
-
-		local_error = 0;
-
-		follow_symlink = ((fts_options & FTS_LOGICAL) ||
-		    ((fts_options & FTS_COMFOLLOW) &&
-		    file->fts_level == FTS_ROOTLEVEL));
-
-		if (follow_symlink)
-			ret = pathconf(file->fts_accpath, _PC_ACL_NFS4);
-		else
-			ret = lpathconf(file->fts_accpath, _PC_ACL_NFS4);
-		if (ret > 0) {
-			if (acl_type == ACL_TYPE_DEFAULT) {
-				warnx("%s: there are no default entries "
-			           "in NFSv4 ACLs", file->fts_path);
-				carried_error++;
-				continue;
-			}
-			acl_type = ACL_TYPE_NFS4;
-		} else if (ret == 0) {
-			if (acl_type == ACL_TYPE_NFS4)
-				acl_type = ACL_TYPE_ACCESS;
-		} else if (ret < 0 && errno != EINVAL) {
-			warn("%s: pathconf(..., _PC_ACL_NFS4) failed",

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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