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...
Mark Johnston
markj at FreeBSD.org
Mon Apr 30 15:56:01 UTC 2018
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 ***
More information about the svn-src-user
mailing list