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>