From owner-svn-src-user@FreeBSD.ORG  Sun May 20 21:05:54 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 88675106564A;
	Sun, 20 May 2012 21:05:54 +0000 (UTC) (envelope-from hrs@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6C3088FC16;
	Sun, 20 May 2012 21:05:54 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4KL5sQS016269;
	Sun, 20 May 2012 21:05:54 GMT (envelope-from hrs@svn.freebsd.org)
Received: (from hrs@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4KL5sf8016250;
	Sun, 20 May 2012 21:05:54 GMT (envelope-from hrs@svn.freebsd.org)
Message-Id: <201205202105.q4KL5sf8016250@svn.freebsd.org>
From: Hiroki Sato <hrs@FreeBSD.org>
Date: Sun, 20 May 2012 21:05:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235699 - in user/hrs/ipv6: . bin/ed bin/expr bin/kenv
	bin/ls bin/rcp bin/sh bin/test
	cddl/compat/opensolaris/include cddl/contrib/dtracetoolkit
	cddl/contrib/dtracetoolkit/Apps cddl/con...
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 20 May 2012 21:05:54 -0000

Author: hrs
Date: Sun May 20 21:05:51 2012
New Revision: 235699
URL: http://svn.freebsd.org/changeset/base/235699

Log:
  Merge from HEAD as of r235693.

Added:
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Apps/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Apps/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Bin/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Bin/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Code/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Code/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Cpu/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Cpu/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Disk/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Disk/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Docs/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Docs/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Examples/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Examples/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/FS/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/FS/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Guide
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/Guide
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Include/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Include/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Java/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Java/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/JavaScript/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/JavaScript/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Kernel/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Kernel/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/License
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/License
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Locks/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Locks/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Man/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Man/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Mem/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Mem/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Misc/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Misc/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Net/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Net/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Notes/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Notes/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Perl/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Perl/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Php/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Php/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Proc/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Proc/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Python/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Python/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/README
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/README
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Ruby/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Ruby/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Shell/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Shell/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Snippits/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Snippits/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/System/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/System/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Tcl/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Tcl/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/User/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/User/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Version
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/Version
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/Zones/
     - copied from r235693, head/cddl/contrib/dtracetoolkit/Zones/
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/dexplorer
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/dexplorer
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/dvmstat
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/dvmstat
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/errinfo
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/errinfo
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/execsnoop
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/execsnoop
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/hotkernel
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/hotkernel
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/hotuser
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/hotuser
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/install
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/install
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/iopattern
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/iopattern
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/iosnoop
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/iosnoop
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/iotop
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/iotop
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/opensnoop
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/opensnoop
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/procsystime
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/procsystime
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/rwsnoop
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/rwsnoop
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/rwtop
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/rwtop
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/statsnoop
     - copied unchanged from r235693, head/cddl/contrib/dtracetoolkit/statsnoop
  user/hrs/ipv6/contrib/file/Magdir/assembler
     - copied unchanged from r235693, head/contrib/file/Magdir/assembler
  user/hrs/ipv6/contrib/file/Magdir/blcr
     - copied unchanged from r235693, head/contrib/file/Magdir/blcr
  user/hrs/ipv6/contrib/file/Magdir/bsi
     - copied unchanged from r235693, head/contrib/file/Magdir/bsi
  user/hrs/ipv6/contrib/file/Magdir/cups
     - copied unchanged from r235693, head/contrib/file/Magdir/cups
  user/hrs/ipv6/contrib/file/Magdir/ebml
     - copied unchanged from r235693, head/contrib/file/Magdir/ebml
  user/hrs/ipv6/contrib/file/Magdir/fusecompress
     - copied unchanged from r235693, head/contrib/file/Magdir/fusecompress
  user/hrs/ipv6/contrib/file/Magdir/geo
     - copied unchanged from r235693, head/contrib/file/Magdir/geo
  user/hrs/ipv6/contrib/file/Magdir/guile
     - copied unchanged from r235693, head/contrib/file/Magdir/guile
  user/hrs/ipv6/contrib/file/Magdir/isz
     - copied unchanged from r235693, head/contrib/file/Magdir/isz
  user/hrs/ipv6/contrib/file/Magdir/m4
     - copied unchanged from r235693, head/contrib/file/Magdir/m4
  user/hrs/ipv6/contrib/file/Magdir/make
     - copied unchanged from r235693, head/contrib/file/Magdir/make
  user/hrs/ipv6/contrib/file/Magdir/marc21
     - copied unchanged from r235693, head/contrib/file/Magdir/marc21
  user/hrs/ipv6/contrib/file/Magdir/metastore
     - copied unchanged from r235693, head/contrib/file/Magdir/metastore
  user/hrs/ipv6/contrib/file/Magdir/msooxml
     - copied unchanged from r235693, head/contrib/file/Magdir/msooxml
  user/hrs/ipv6/contrib/file/Magdir/music
     - copied unchanged from r235693, head/contrib/file/Magdir/music
  user/hrs/ipv6/contrib/file/Magdir/oasis
     - copied unchanged from r235693, head/contrib/file/Magdir/oasis
  user/hrs/ipv6/contrib/file/Magdir/parrot
     - copied unchanged from r235693, head/contrib/file/Magdir/parrot
  user/hrs/ipv6/contrib/file/Magdir/pascal
     - copied unchanged from r235693, head/contrib/file/Magdir/pascal
  user/hrs/ipv6/contrib/file/Magdir/rinex
     - copied unchanged from r235693, head/contrib/file/Magdir/rinex
  user/hrs/ipv6/contrib/file/Magdir/selinux
     - copied unchanged from r235693, head/contrib/file/Magdir/selinux
  user/hrs/ipv6/contrib/file/Magdir/sisu
     - copied unchanged from r235693, head/contrib/file/Magdir/sisu
  user/hrs/ipv6/contrib/file/Magdir/smile
     - copied unchanged from r235693, head/contrib/file/Magdir/smile
  user/hrs/ipv6/contrib/file/Magdir/ssh
     - copied unchanged from r235693, head/contrib/file/Magdir/ssh
  user/hrs/ipv6/contrib/file/Magdir/ssl
     - copied unchanged from r235693, head/contrib/file/Magdir/ssl
  user/hrs/ipv6/contrib/file/Magdir/tcl
     - copied unchanged from r235693, head/contrib/file/Magdir/tcl
  user/hrs/ipv6/contrib/file/Magdir/virtual
     - copied unchanged from r235693, head/contrib/file/Magdir/virtual
  user/hrs/ipv6/contrib/file/Magdir/wsdl
     - copied unchanged from r235693, head/contrib/file/Magdir/wsdl
  user/hrs/ipv6/contrib/file/Magdir/zfs
     - copied unchanged from r235693, head/contrib/file/Magdir/zfs
  user/hrs/ipv6/contrib/file/getline.c
     - copied unchanged from r235693, head/contrib/file/getline.c
  user/hrs/ipv6/contrib/libpcap/pcap-netfilter-linux.c
     - copied unchanged from r235693, head/contrib/libpcap/pcap-netfilter-linux.c
  user/hrs/ipv6/contrib/libpcap/pcap-netfilter-linux.h
     - copied unchanged from r235693, head/contrib/libpcap/pcap-netfilter-linux.h
  user/hrs/ipv6/contrib/libpcap/pcap-tstamp.manmisc
     - copied unchanged from r235693, head/contrib/libpcap/pcap-tstamp.manmisc
  user/hrs/ipv6/contrib/libpcap/pcap-tstamp.manmisc.in
     - copied unchanged from r235693, head/contrib/libpcap/pcap-tstamp.manmisc.in
  user/hrs/ipv6/contrib/libpcap/pcap_list_tstamp_types.3pcap
     - copied unchanged from r235693, head/contrib/libpcap/pcap_list_tstamp_types.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_list_tstamp_types.3pcap.in
     - copied unchanged from r235693, head/contrib/libpcap/pcap_list_tstamp_types.3pcap.in
  user/hrs/ipv6/contrib/libpcap/pcap_set_tstamp_type.3pcap
     - copied unchanged from r235693, head/contrib/libpcap/pcap_set_tstamp_type.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_set_tstamp_type.3pcap.in
     - copied unchanged from r235693, head/contrib/libpcap/pcap_set_tstamp_type.3pcap.in
  user/hrs/ipv6/contrib/libpcap/pcap_tstamp_type_name_to_val.3pcap
     - copied unchanged from r235693, head/contrib/libpcap/pcap_tstamp_type_name_to_val.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_tstamp_type_val_to_name.3pcap
     - copied unchanged from r235693, head/contrib/libpcap/pcap_tstamp_type_val_to_name.3pcap
  user/hrs/ipv6/contrib/libpcap/test/
     - copied from r235693, head/contrib/libpcap/test/
  user/hrs/ipv6/contrib/llvm/include/llvm/Support/Locale.h
     - copied unchanged from r235693, head/contrib/llvm/include/llvm/Support/Locale.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Support/MDBuilder.h
     - copied unchanged from r235693, head/contrib/llvm/include/llvm/Support/MDBuilder.h
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp
     - copied unchanged from r235693, head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITRegistrar.h
     - copied unchanged from r235693, head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITRegistrar.h
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/ObjectImage.h
     - copied unchanged from r235693, head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/ObjectImage.h
  user/hrs/ipv6/contrib/llvm/lib/Support/Locale.cpp
     - copied unchanged from r235693, head/contrib/llvm/lib/Support/Locale.cpp
  user/hrs/ipv6/contrib/llvm/lib/Support/LocaleGeneric.inc
     - copied unchanged from r235693, head/contrib/llvm/lib/Support/LocaleGeneric.inc
  user/hrs/ipv6/contrib/llvm/lib/Support/LocaleWindows.inc
     - copied unchanged from r235693, head/contrib/llvm/lib/Support/LocaleWindows.inc
  user/hrs/ipv6/contrib/llvm/lib/Support/LocaleXlocale.inc
     - copied unchanged from r235693, head/contrib/llvm/lib/Support/LocaleXlocale.inc
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/Disassembler/
     - copied from r235693, head/contrib/llvm/lib/Target/Mips/Disassembler/
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp
     - copied unchanged from r235693, head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp
  user/hrs/ipv6/contrib/tcpdump/in_cksum.c
     - copied unchanged from r235693, head/contrib/tcpdump/in_cksum.c
  user/hrs/ipv6/contrib/tcpdump/ppi.h
     - copied unchanged from r235693, head/contrib/tcpdump/ppi.h
  user/hrs/ipv6/contrib/tcpdump/print-802_15_4.c
     - copied unchanged from r235693, head/contrib/tcpdump/print-802_15_4.c
  user/hrs/ipv6/contrib/tcpdump/print-babel.c
     - copied unchanged from r235693, head/contrib/tcpdump/print-babel.c
  user/hrs/ipv6/contrib/tcpdump/print-carp.c
     - copied unchanged from r235693, head/contrib/tcpdump/print-carp.c
  user/hrs/ipv6/contrib/tcpdump/print-ppi.c
     - copied unchanged from r235693, head/contrib/tcpdump/print-ppi.c
  user/hrs/ipv6/contrib/tcpdump/print-rpki-rtr.c
     - copied unchanged from r235693, head/contrib/tcpdump/print-rpki-rtr.c
  user/hrs/ipv6/lib/libc/gen/dirfd.c
     - copied unchanged from r235693, head/lib/libc/gen/dirfd.c
  user/hrs/ipv6/lib/libc/gen/gen-private.h
     - copied unchanged from r235693, head/lib/libc/gen/gen-private.h
  user/hrs/ipv6/lib/libedit/edit/readline/tilde.h
     - copied unchanged from r235693, head/lib/libedit/edit/readline/tilde.h
  user/hrs/ipv6/lib/libnandfs/
     - copied from r235693, head/lib/libnandfs/
  user/hrs/ipv6/lib/libstand/nandfs.c
     - copied unchanged from r235693, head/lib/libstand/nandfs.c
  user/hrs/ipv6/lib/libstdbuf/
     - copied from r235693, head/lib/libstdbuf/
  user/hrs/ipv6/sbin/etherswitchcfg/
     - copied from r235693, head/sbin/etherswitchcfg/
  user/hrs/ipv6/sbin/nandfs/
     - copied from r235693, head/sbin/nandfs/
  user/hrs/ipv6/sbin/newfs_nandfs/
     - copied from r235693, head/sbin/newfs_nandfs/
  user/hrs/ipv6/share/dtrace/
     - copied from r235693, head/share/dtrace/
  user/hrs/ipv6/share/man/man4/nand.4
     - copied unchanged from r235693, head/share/man/man4/nand.4
  user/hrs/ipv6/share/man/man4/nandsim.4
     - copied unchanged from r235693, head/share/man/man4/nandsim.4
  user/hrs/ipv6/share/man/man5/nandfs.5
     - copied unchanged from r235693, head/share/man/man5/nandfs.5
  user/hrs/ipv6/share/syscons/keymaps/spanish.dvorak.kbd
     - copied unchanged from r235693, head/share/syscons/keymaps/spanish.dvorak.kbd
  user/hrs/ipv6/sys/arm/at91/board_ethernut5.c
     - copied unchanged from r235693, head/sys/arm/at91/board_ethernut5.c
  user/hrs/ipv6/sys/arm/at91/std.ethernut5
     - copied unchanged from r235693, head/sys/arm/at91/std.ethernut5
  user/hrs/ipv6/sys/arm/conf/ETHERNUT5
     - copied unchanged from r235693, head/sys/arm/conf/ETHERNUT5
  user/hrs/ipv6/sys/arm/conf/ETHERNUT5.hints
     - copied unchanged from r235693, head/sys/arm/conf/ETHERNUT5.hints
  user/hrs/ipv6/sys/arm/conf/genboardid.awk
     - copied unchanged from r235693, head/sys/arm/conf/genboardid.awk
  user/hrs/ipv6/sys/arm/conf/mach-types
     - copied unchanged from r235693, head/sys/arm/conf/mach-types
  user/hrs/ipv6/sys/arm/mv/mv_localbus.c
     - copied unchanged from r235693, head/sys/arm/mv/mv_localbus.c
  user/hrs/ipv6/sys/boot/fdt/dts/bindings-localbus.txt
     - copied unchanged from r235693, head/sys/boot/fdt/dts/bindings-localbus.txt
  user/hrs/ipv6/sys/boot/i386/btx/lib/btxcsu.S
     - copied unchanged from r235693, head/sys/boot/i386/btx/lib/btxcsu.S
  user/hrs/ipv6/sys/boot/i386/cdboot/cdboot.S
     - copied unchanged from r235693, head/sys/boot/i386/cdboot/cdboot.S
  user/hrs/ipv6/sys/boot/i386/common/bootargs.h
     - copied unchanged from r235693, head/sys/boot/i386/common/bootargs.h
  user/hrs/ipv6/sys/boot/pc98/btx/lib/btxcsu.S
     - copied unchanged from r235693, head/sys/boot/pc98/btx/lib/btxcsu.S
  user/hrs/ipv6/sys/boot/pc98/cdboot/cdboot.S
     - copied unchanged from r235693, head/sys/boot/pc98/cdboot/cdboot.S
  user/hrs/ipv6/sys/boot/sparc64/zfsboot/
     - copied from r235693, head/sys/boot/sparc64/zfsboot/
  user/hrs/ipv6/sys/boot/sparc64/zfsloader/
     - copied from r235693, head/sys/boot/sparc64/zfsloader/
  user/hrs/ipv6/sys/boot/zfs/devicename_stubs.c
     - copied unchanged from r235693, head/sys/boot/zfs/devicename_stubs.c
  user/hrs/ipv6/sys/boot/zfs/libzfs.h
     - copied unchanged from r235693, head/sys/boot/zfs/libzfs.h
  user/hrs/ipv6/sys/compat/linux/check_error.d
     - copied unchanged from r235693, head/sys/compat/linux/check_error.d
  user/hrs/ipv6/sys/compat/linux/check_internal_locks.d
     - copied unchanged from r235693, head/sys/compat/linux/check_internal_locks.d
  user/hrs/ipv6/sys/compat/linux/linux_dtrace.h
     - copied unchanged from r235693, head/sys/compat/linux/linux_dtrace.h
  user/hrs/ipv6/sys/compat/linux/stats_timing.d
     - copied unchanged from r235693, head/sys/compat/linux/stats_timing.d
  user/hrs/ipv6/sys/compat/linux/trace_futexes.d
     - copied unchanged from r235693, head/sys/compat/linux/trace_futexes.d
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslsupport.l
     - copied unchanged from r235693, head/sys/contrib/dev/acpica/compiler/aslsupport.l
  user/hrs/ipv6/sys/dev/ath/if_ath_beacon.c
     - copied unchanged from r235693, head/sys/dev/ath/if_ath_beacon.c
  user/hrs/ipv6/sys/dev/ath/if_ath_beacon.h
     - copied unchanged from r235693, head/sys/dev/ath/if_ath_beacon.h
  user/hrs/ipv6/sys/dev/ath/if_ath_rx.c
     - copied unchanged from r235693, head/sys/dev/ath/if_ath_rx.c
  user/hrs/ipv6/sys/dev/ath/if_ath_rx.h
     - copied unchanged from r235693, head/sys/dev/ath/if_ath_rx.h
  user/hrs/ipv6/sys/dev/ath/if_ath_tdma.c
     - copied unchanged from r235693, head/sys/dev/ath/if_ath_tdma.c
  user/hrs/ipv6/sys/dev/ath/if_ath_tdma.h
     - copied unchanged from r235693, head/sys/dev/ath/if_ath_tdma.h
  user/hrs/ipv6/sys/dev/ath/if_ath_tsf.h
     - copied unchanged from r235693, head/sys/dev/ath/if_ath_tsf.h
  user/hrs/ipv6/sys/dev/etherswitch/
     - copied from r235693, head/sys/dev/etherswitch/
  user/hrs/ipv6/sys/dev/gxemul/
     - copied from r235693, head/sys/dev/gxemul/
  user/hrs/ipv6/sys/dev/nand/
     - copied from r235693, head/sys/dev/nand/
  user/hrs/ipv6/sys/dev/ral/rt2860.c
     - copied unchanged from r235693, head/sys/dev/ral/rt2860.c
  user/hrs/ipv6/sys/dev/ral/rt2860reg.h
     - copied unchanged from r235693, head/sys/dev/ral/rt2860reg.h
  user/hrs/ipv6/sys/dev/ral/rt2860var.h
     - copied unchanged from r235693, head/sys/dev/ral/rt2860var.h
  user/hrs/ipv6/sys/fs/nandfs/
     - copied from r235693, head/sys/fs/nandfs/
  user/hrs/ipv6/sys/geom/raid/md_ddf.c
     - copied unchanged from r235693, head/sys/geom/raid/md_ddf.c
  user/hrs/ipv6/sys/geom/raid/md_ddf.h
     - copied unchanged from r235693, head/sys/geom/raid/md_ddf.h
  user/hrs/ipv6/sys/geom/raid/tr_raid5.c
     - copied unchanged from r235693, head/sys/geom/raid/tr_raid5.c
  user/hrs/ipv6/sys/mips/atheros/ar71xx_fixup.c
     - copied unchanged from r235693, head/sys/mips/atheros/ar71xx_fixup.c
  user/hrs/ipv6/sys/mips/atheros/ar71xx_fixup.h
     - copied unchanged from r235693, head/sys/mips/atheros/ar71xx_fixup.h
  user/hrs/ipv6/sys/mips/conf/AP93
     - copied unchanged from r235693, head/sys/mips/conf/AP93
  user/hrs/ipv6/sys/mips/conf/AP93.hints
     - copied unchanged from r235693, head/sys/mips/conf/AP93.hints
  user/hrs/ipv6/sys/mips/conf/GXEMUL
     - copied unchanged from r235693, head/sys/mips/conf/GXEMUL
  user/hrs/ipv6/sys/mips/conf/GXEMUL.hints
     - copied unchanged from r235693, head/sys/mips/conf/GXEMUL.hints
  user/hrs/ipv6/sys/mips/gxemul/
     - copied from r235693, head/sys/mips/gxemul/
  user/hrs/ipv6/sys/modules/nandfs/
     - copied from r235693, head/sys/modules/nandfs/
  user/hrs/ipv6/sys/modules/nandsim/
     - copied from r235693, head/sys/modules/nandsim/
  user/hrs/ipv6/tools/build/options/WITHOUT_ED_CRYPTO
     - copied unchanged from r235693, head/tools/build/options/WITHOUT_ED_CRYPTO
  user/hrs/ipv6/tools/build/options/WITHOUT_LS_COLORS
     - copied unchanged from r235693, head/tools/build/options/WITHOUT_LS_COLORS
  user/hrs/ipv6/tools/build/options/WITHOUT_NAND
     - copied unchanged from r235693, head/tools/build/options/WITHOUT_NAND
  user/hrs/ipv6/tools/build/options/WITH_BSD_SORT
     - copied unchanged from r235693, head/tools/build/options/WITH_BSD_SORT
  user/hrs/ipv6/tools/build/options/WITH_NAND
     - copied unchanged from r235693, head/tools/build/options/WITH_NAND
  user/hrs/ipv6/tools/build/options/WITH_SHARED_TOOLCHAIN
     - copied unchanged from r235693, head/tools/build/options/WITH_SHARED_TOOLCHAIN
  user/hrs/ipv6/tools/regression/usr.bin/m4/args.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/args.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/args2.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/args2.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/comments.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/comments.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/esyscmd.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/esyscmd.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/eval.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/eval.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/ff_after_dnl.m4.uu
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/ff_after_dnl.m4.uu
  user/hrs/ipv6/tools/regression/usr.bin/m4/gnueval.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/gnueval.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/gnuformat.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/gnuformat.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/gnupatterns.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/gnupatterns.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/gnupatterns2.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/gnupatterns2.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/gnuprefix.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/gnuprefix.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/gnusofterror.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/gnusofterror.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/includes.aux
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/includes.aux
  user/hrs/ipv6/tools/regression/usr.bin/m4/includes.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/includes.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/m4wrap3.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/m4wrap3.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/patterns.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/patterns.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/quotes.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/quotes.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/redef.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/redef.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.args.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.args.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.args2.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.args2.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.comments.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.comments.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.esyscmd.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.esyscmd.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.eval.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.eval.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.ff_after_dnl.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.ff_after_dnl.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.gnueval.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.gnueval.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.gnuformat.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.gnuformat.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.gnupatterns.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.gnupatterns.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.gnupatterns2.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.gnupatterns2.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.gnuprefix.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.gnuprefix.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.gnusofterror.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.gnusofterror.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.gnutranslit2.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.gnutranslit2.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.includes.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.includes.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.m4wrap3.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.m4wrap3.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.patterns.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.patterns.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.quotes.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.quotes.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.redef.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.redef.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.strangequotes.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.strangequotes.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.translit.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.translit.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.translit2.out
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/regress.translit2.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/strangequotes.m4.uu
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/strangequotes.m4.uu
  user/hrs/ipv6/tools/regression/usr.bin/m4/translit.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/translit.m4
  user/hrs/ipv6/tools/regression/usr.bin/m4/translit2.m4
     - copied unchanged from r235693, head/tools/regression/usr.bin/m4/translit2.m4
  user/hrs/ipv6/tools/test/sort/
     - copied from r235693, head/tools/test/sort/
  user/hrs/ipv6/tools/tools/ath/athsurvey/
     - copied from r235693, head/tools/tools/ath/athsurvey/
  user/hrs/ipv6/usr.bin/sort/
     - copied from r235693, head/usr.bin/sort/
  user/hrs/ipv6/usr.bin/stdbuf/
     - copied from r235693, head/usr.bin/stdbuf/
  user/hrs/ipv6/usr.sbin/jail/command.c
     - copied unchanged from r235693, head/usr.sbin/jail/command.c
  user/hrs/ipv6/usr.sbin/jail/config.c
     - copied unchanged from r235693, head/usr.sbin/jail/config.c
  user/hrs/ipv6/usr.sbin/jail/jail.conf.5
     - copied unchanged from r235693, head/usr.sbin/jail/jail.conf.5
  user/hrs/ipv6/usr.sbin/jail/jaillex.l
     - copied unchanged from r235693, head/usr.sbin/jail/jaillex.l
  user/hrs/ipv6/usr.sbin/jail/jailp.h
     - copied unchanged from r235693, head/usr.sbin/jail/jailp.h
  user/hrs/ipv6/usr.sbin/jail/jailparse.y
     - copied unchanged from r235693, head/usr.sbin/jail/jailparse.y
  user/hrs/ipv6/usr.sbin/jail/state.c
     - copied unchanged from r235693, head/usr.sbin/jail/state.c
  user/hrs/ipv6/usr.sbin/nandsim/
     - copied from r235693, head/usr.sbin/nandsim/
  user/hrs/ipv6/usr.sbin/nandtool/
     - copied from r235693, head/usr.sbin/nandtool/
  user/hrs/ipv6/usr.sbin/wpa/Makefile.crypto
     - copied unchanged from r235693, head/usr.sbin/wpa/Makefile.crypto
Deleted:
  user/hrs/ipv6/contrib/file/Magdir/alpha
  user/hrs/ipv6/contrib/file/Magdir/psion
  user/hrs/ipv6/contrib/file/patchlevel.h
  user/hrs/ipv6/contrib/libpcap/filtertest.c
  user/hrs/ipv6/contrib/libpcap/findalldevstest.c
  user/hrs/ipv6/contrib/libpcap/opentest.c
  user/hrs/ipv6/contrib/libpcap/pcap_free_datalinks.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_freealldevs.3pcap
  user/hrs/ipv6/contrib/libpcap/selpolltest.c
  user/hrs/ipv6/contrib/llvm/include/llvm/Support/JSONParser.h
  user/hrs/ipv6/contrib/llvm/lib/Support/JSONParser.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonMCInst.h
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/DelayedCleanupPool.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Index/
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Index/
  user/hrs/ipv6/contrib/tcpdump/missing/addrsize.h
  user/hrs/ipv6/contrib/tcpdump/missing/bittypes.h
  user/hrs/ipv6/contrib/tcpdump/missing/resolv6.h
  user/hrs/ipv6/contrib/tcpdump/missing/resolv_ext.h
  user/hrs/ipv6/contrib/tcpdump/tests/
  user/hrs/ipv6/lib/clang/libclangindex/
  user/hrs/ipv6/lib/libmd/md2.copyright
  user/hrs/ipv6/lib/libmd/md2.h
  user/hrs/ipv6/lib/libmd/md2c.c
  user/hrs/ipv6/sys/boot/i386/btx/lib/btxcsu.s
  user/hrs/ipv6/sys/boot/i386/cdboot/cdboot.s
  user/hrs/ipv6/sys/boot/pc98/btx/lib/btxcsu.s
  user/hrs/ipv6/sys/boot/pc98/cdboot/cdboot.s
  user/hrs/ipv6/sys/dev/netmap/head.diff
  user/hrs/ipv6/sys/powerpc/powerpc/atomic.S
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.changecom.in
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.changecom.out
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.gchangecom.out
Modified:
  user/hrs/ipv6/Makefile.inc1
  user/hrs/ipv6/ObsoleteFiles.inc
  user/hrs/ipv6/bin/ed/Makefile
  user/hrs/ipv6/bin/expr/expr.1
  user/hrs/ipv6/bin/kenv/kenv.1
  user/hrs/ipv6/bin/kenv/kenv.c
  user/hrs/ipv6/bin/ls/Makefile
  user/hrs/ipv6/bin/rcp/rcp.c
  user/hrs/ipv6/bin/sh/miscbltin.c
  user/hrs/ipv6/bin/sh/sh.1
  user/hrs/ipv6/bin/test/test.1
  user/hrs/ipv6/cddl/compat/opensolaris/include/stdlib.h
  user/hrs/ipv6/cddl/contrib/dtracetoolkit/dtruss
  user/hrs/ipv6/cddl/contrib/opensolaris/cmd/zdb/zdb.8
  user/hrs/ipv6/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  user/hrs/ipv6/cddl/contrib/opensolaris/cmd/zfs/zfs.8
  user/hrs/ipv6/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
  user/hrs/ipv6/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  user/hrs/ipv6/cddl/contrib/opensolaris/cmd/zstreamdump/zstreamdump.1
  user/hrs/ipv6/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
  user/hrs/ipv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  user/hrs/ipv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
  user/hrs/ipv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
  user/hrs/ipv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
  user/hrs/ipv6/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
  user/hrs/ipv6/contrib/binutils/ld/emultempl/ppc32elf.em
  user/hrs/ipv6/contrib/bsnmp/snmp_usm/snmp_usm.3
  user/hrs/ipv6/contrib/bsnmp/snmp_vacm/snmp_vacm.3
  user/hrs/ipv6/contrib/compiler-rt/lib/sparc64/divmod.m4
  user/hrs/ipv6/contrib/compiler-rt/lib/sparc64/divsi3.S
  user/hrs/ipv6/contrib/compiler-rt/lib/sparc64/modsi3.S
  user/hrs/ipv6/contrib/file/ChangeLog
  user/hrs/ipv6/contrib/file/Header
  user/hrs/ipv6/contrib/file/INSTALL
  user/hrs/ipv6/contrib/file/Magdir/acorn
  user/hrs/ipv6/contrib/file/Magdir/adi
  user/hrs/ipv6/contrib/file/Magdir/adventure
  user/hrs/ipv6/contrib/file/Magdir/allegro
  user/hrs/ipv6/contrib/file/Magdir/alliant
  user/hrs/ipv6/contrib/file/Magdir/amanda
  user/hrs/ipv6/contrib/file/Magdir/amigaos
  user/hrs/ipv6/contrib/file/Magdir/animation
  user/hrs/ipv6/contrib/file/Magdir/apl
  user/hrs/ipv6/contrib/file/Magdir/apple
  user/hrs/ipv6/contrib/file/Magdir/applix
  user/hrs/ipv6/contrib/file/Magdir/archive
  user/hrs/ipv6/contrib/file/Magdir/asterix
  user/hrs/ipv6/contrib/file/Magdir/att3b
  user/hrs/ipv6/contrib/file/Magdir/audio
  user/hrs/ipv6/contrib/file/Magdir/basis
  user/hrs/ipv6/contrib/file/Magdir/bflt
  user/hrs/ipv6/contrib/file/Magdir/blender
  user/hrs/ipv6/contrib/file/Magdir/blit
  user/hrs/ipv6/contrib/file/Magdir/bout
  user/hrs/ipv6/contrib/file/Magdir/bsdi
  user/hrs/ipv6/contrib/file/Magdir/btsnoop
  user/hrs/ipv6/contrib/file/Magdir/c-lang
  user/hrs/ipv6/contrib/file/Magdir/c64
  user/hrs/ipv6/contrib/file/Magdir/cad
  user/hrs/ipv6/contrib/file/Magdir/cafebabe
  user/hrs/ipv6/contrib/file/Magdir/cddb
  user/hrs/ipv6/contrib/file/Magdir/chord
  user/hrs/ipv6/contrib/file/Magdir/cisco
  user/hrs/ipv6/contrib/file/Magdir/citrus
  user/hrs/ipv6/contrib/file/Magdir/clarion
  user/hrs/ipv6/contrib/file/Magdir/claris
  user/hrs/ipv6/contrib/file/Magdir/clipper
  user/hrs/ipv6/contrib/file/Magdir/commands
  user/hrs/ipv6/contrib/file/Magdir/communications
  user/hrs/ipv6/contrib/file/Magdir/compress
  user/hrs/ipv6/contrib/file/Magdir/console
  user/hrs/ipv6/contrib/file/Magdir/convex
  user/hrs/ipv6/contrib/file/Magdir/cracklib
  user/hrs/ipv6/contrib/file/Magdir/ctags
  user/hrs/ipv6/contrib/file/Magdir/dact
  user/hrs/ipv6/contrib/file/Magdir/database
  user/hrs/ipv6/contrib/file/Magdir/diamond
  user/hrs/ipv6/contrib/file/Magdir/diff
  user/hrs/ipv6/contrib/file/Magdir/digital
  user/hrs/ipv6/contrib/file/Magdir/dolby
  user/hrs/ipv6/contrib/file/Magdir/dump
  user/hrs/ipv6/contrib/file/Magdir/dyadic
  user/hrs/ipv6/contrib/file/Magdir/editors
  user/hrs/ipv6/contrib/file/Magdir/efi
  user/hrs/ipv6/contrib/file/Magdir/elf
  user/hrs/ipv6/contrib/file/Magdir/encore
  user/hrs/ipv6/contrib/file/Magdir/epoc
  user/hrs/ipv6/contrib/file/Magdir/erlang
  user/hrs/ipv6/contrib/file/Magdir/esri
  user/hrs/ipv6/contrib/file/Magdir/fcs
  user/hrs/ipv6/contrib/file/Magdir/filesystems
  user/hrs/ipv6/contrib/file/Magdir/flash
  user/hrs/ipv6/contrib/file/Magdir/fonts
  user/hrs/ipv6/contrib/file/Magdir/fortran
  user/hrs/ipv6/contrib/file/Magdir/frame
  user/hrs/ipv6/contrib/file/Magdir/freebsd
  user/hrs/ipv6/contrib/file/Magdir/fsav
  user/hrs/ipv6/contrib/file/Magdir/games
  user/hrs/ipv6/contrib/file/Magdir/gcc
  user/hrs/ipv6/contrib/file/Magdir/geos
  user/hrs/ipv6/contrib/file/Magdir/gimp
  user/hrs/ipv6/contrib/file/Magdir/gnome-keyring
  user/hrs/ipv6/contrib/file/Magdir/gnu
  user/hrs/ipv6/contrib/file/Magdir/gnumeric
  user/hrs/ipv6/contrib/file/Magdir/grace
  user/hrs/ipv6/contrib/file/Magdir/graphviz
  user/hrs/ipv6/contrib/file/Magdir/gringotts
  user/hrs/ipv6/contrib/file/Magdir/hitachi-sh
  user/hrs/ipv6/contrib/file/Magdir/hp
  user/hrs/ipv6/contrib/file/Magdir/human68k
  user/hrs/ipv6/contrib/file/Magdir/ibm370
  user/hrs/ipv6/contrib/file/Magdir/ibm6000
  user/hrs/ipv6/contrib/file/Magdir/iff
  user/hrs/ipv6/contrib/file/Magdir/images
  user/hrs/ipv6/contrib/file/Magdir/inform
  user/hrs/ipv6/contrib/file/Magdir/intel
  user/hrs/ipv6/contrib/file/Magdir/interleaf
  user/hrs/ipv6/contrib/file/Magdir/island
  user/hrs/ipv6/contrib/file/Magdir/ispell
  user/hrs/ipv6/contrib/file/Magdir/java
  user/hrs/ipv6/contrib/file/Magdir/jpeg
  user/hrs/ipv6/contrib/file/Magdir/karma
  user/hrs/ipv6/contrib/file/Magdir/kde
  user/hrs/ipv6/contrib/file/Magdir/kml
  user/hrs/ipv6/contrib/file/Magdir/lecter
  user/hrs/ipv6/contrib/file/Magdir/lex
  user/hrs/ipv6/contrib/file/Magdir/lif
  user/hrs/ipv6/contrib/file/Magdir/linux
  user/hrs/ipv6/contrib/file/Magdir/lisp
  user/hrs/ipv6/contrib/file/Magdir/llvm
  user/hrs/ipv6/contrib/file/Magdir/lua
  user/hrs/ipv6/contrib/file/Magdir/luks
  user/hrs/ipv6/contrib/file/Magdir/mach
  user/hrs/ipv6/contrib/file/Magdir/macintosh
  user/hrs/ipv6/contrib/file/Magdir/magic
  user/hrs/ipv6/contrib/file/Magdir/mail.news
  user/hrs/ipv6/contrib/file/Magdir/maple
  user/hrs/ipv6/contrib/file/Magdir/mathcad
  user/hrs/ipv6/contrib/file/Magdir/mathematica
  user/hrs/ipv6/contrib/file/Magdir/matroska
  user/hrs/ipv6/contrib/file/Magdir/mcrypt
  user/hrs/ipv6/contrib/file/Magdir/mercurial
  user/hrs/ipv6/contrib/file/Magdir/mime
  user/hrs/ipv6/contrib/file/Magdir/mips
  user/hrs/ipv6/contrib/file/Magdir/mirage
  user/hrs/ipv6/contrib/file/Magdir/misctools
  user/hrs/ipv6/contrib/file/Magdir/mkid
  user/hrs/ipv6/contrib/file/Magdir/mlssa
  user/hrs/ipv6/contrib/file/Magdir/mmdf
  user/hrs/ipv6/contrib/file/Magdir/modem
  user/hrs/ipv6/contrib/file/Magdir/motorola
  user/hrs/ipv6/contrib/file/Magdir/mozilla
  user/hrs/ipv6/contrib/file/Magdir/msdos
  user/hrs/ipv6/contrib/file/Magdir/msvc
  user/hrs/ipv6/contrib/file/Magdir/mup
  user/hrs/ipv6/contrib/file/Magdir/natinst
  user/hrs/ipv6/contrib/file/Magdir/ncr
  user/hrs/ipv6/contrib/file/Magdir/netbsd
  user/hrs/ipv6/contrib/file/Magdir/netscape
  user/hrs/ipv6/contrib/file/Magdir/netware
  user/hrs/ipv6/contrib/file/Magdir/news
  user/hrs/ipv6/contrib/file/Magdir/nitpicker
  user/hrs/ipv6/contrib/file/Magdir/ocaml
  user/hrs/ipv6/contrib/file/Magdir/octave
  user/hrs/ipv6/contrib/file/Magdir/ole2compounddocs
  user/hrs/ipv6/contrib/file/Magdir/olf
  user/hrs/ipv6/contrib/file/Magdir/os2
  user/hrs/ipv6/contrib/file/Magdir/os400
  user/hrs/ipv6/contrib/file/Magdir/os9
  user/hrs/ipv6/contrib/file/Magdir/osf1
  user/hrs/ipv6/contrib/file/Magdir/palm
  user/hrs/ipv6/contrib/file/Magdir/parix
  user/hrs/ipv6/contrib/file/Magdir/pbm
  user/hrs/ipv6/contrib/file/Magdir/pdf
  user/hrs/ipv6/contrib/file/Magdir/pdp
  user/hrs/ipv6/contrib/file/Magdir/perl
  user/hrs/ipv6/contrib/file/Magdir/pgp
  user/hrs/ipv6/contrib/file/Magdir/pkgadd
  user/hrs/ipv6/contrib/file/Magdir/plan9
  user/hrs/ipv6/contrib/file/Magdir/plus5
  user/hrs/ipv6/contrib/file/Magdir/printer
  user/hrs/ipv6/contrib/file/Magdir/project
  user/hrs/ipv6/contrib/file/Magdir/psdbms
  user/hrs/ipv6/contrib/file/Magdir/pulsar
  user/hrs/ipv6/contrib/file/Magdir/pyramid
  user/hrs/ipv6/contrib/file/Magdir/python
  user/hrs/ipv6/contrib/file/Magdir/revision
  user/hrs/ipv6/contrib/file/Magdir/riff
  user/hrs/ipv6/contrib/file/Magdir/rpm
  user/hrs/ipv6/contrib/file/Magdir/rtf
  user/hrs/ipv6/contrib/file/Magdir/ruby
  user/hrs/ipv6/contrib/file/Magdir/sc
  user/hrs/ipv6/contrib/file/Magdir/sccs
  user/hrs/ipv6/contrib/file/Magdir/scientific
  user/hrs/ipv6/contrib/file/Magdir/securitycerts
  user/hrs/ipv6/contrib/file/Magdir/sendmail
  user/hrs/ipv6/contrib/file/Magdir/sequent
  user/hrs/ipv6/contrib/file/Magdir/sgi
  user/hrs/ipv6/contrib/file/Magdir/sgml
  user/hrs/ipv6/contrib/file/Magdir/sharc
  user/hrs/ipv6/contrib/file/Magdir/sinclair
  user/hrs/ipv6/contrib/file/Magdir/sketch
  user/hrs/ipv6/contrib/file/Magdir/smalltalk
  user/hrs/ipv6/contrib/file/Magdir/sniffer
  user/hrs/ipv6/contrib/file/Magdir/softquad
  user/hrs/ipv6/contrib/file/Magdir/spec
  user/hrs/ipv6/contrib/file/Magdir/spectrum
  user/hrs/ipv6/contrib/file/Magdir/sql
  user/hrs/ipv6/contrib/file/Magdir/sun
  user/hrs/ipv6/contrib/file/Magdir/sysex
  user/hrs/ipv6/contrib/file/Magdir/teapot
  user/hrs/ipv6/contrib/file/Magdir/terminfo
  user/hrs/ipv6/contrib/file/Magdir/tex
  user/hrs/ipv6/contrib/file/Magdir/tgif
  user/hrs/ipv6/contrib/file/Magdir/ti-8x
  user/hrs/ipv6/contrib/file/Magdir/timezone
  user/hrs/ipv6/contrib/file/Magdir/troff
  user/hrs/ipv6/contrib/file/Magdir/tuxedo
  user/hrs/ipv6/contrib/file/Magdir/typeset
  user/hrs/ipv6/contrib/file/Magdir/unicode
  user/hrs/ipv6/contrib/file/Magdir/unknown
  user/hrs/ipv6/contrib/file/Magdir/uuencode
  user/hrs/ipv6/contrib/file/Magdir/varied.out
  user/hrs/ipv6/contrib/file/Magdir/varied.script
  user/hrs/ipv6/contrib/file/Magdir/vax
  user/hrs/ipv6/contrib/file/Magdir/vicar
  user/hrs/ipv6/contrib/file/Magdir/virtutech
  user/hrs/ipv6/contrib/file/Magdir/visx
  user/hrs/ipv6/contrib/file/Magdir/vms
  user/hrs/ipv6/contrib/file/Magdir/vmware
  user/hrs/ipv6/contrib/file/Magdir/vorbis
  user/hrs/ipv6/contrib/file/Magdir/vxl
  user/hrs/ipv6/contrib/file/Magdir/warc
  user/hrs/ipv6/contrib/file/Magdir/weak
  user/hrs/ipv6/contrib/file/Magdir/windows
  user/hrs/ipv6/contrib/file/Magdir/wireless
  user/hrs/ipv6/contrib/file/Magdir/wordprocessors
  user/hrs/ipv6/contrib/file/Magdir/xdelta
  user/hrs/ipv6/contrib/file/Magdir/xenix
  user/hrs/ipv6/contrib/file/Magdir/xilinx
  user/hrs/ipv6/contrib/file/Magdir/xo65
  user/hrs/ipv6/contrib/file/Magdir/xwindows
  user/hrs/ipv6/contrib/file/Magdir/zilog
  user/hrs/ipv6/contrib/file/Magdir/zyxel
  user/hrs/ipv6/contrib/file/Makefile.am
  user/hrs/ipv6/contrib/file/Makefile.am-src
  user/hrs/ipv6/contrib/file/Makefile.in
  user/hrs/ipv6/contrib/file/README
  user/hrs/ipv6/contrib/file/TODO
  user/hrs/ipv6/contrib/file/acinclude.m4
  user/hrs/ipv6/contrib/file/aclocal.m4
  user/hrs/ipv6/contrib/file/apprentice.c
  user/hrs/ipv6/contrib/file/apptype.c
  user/hrs/ipv6/contrib/file/ascmagic.c
  user/hrs/ipv6/contrib/file/asprintf.c
  user/hrs/ipv6/contrib/file/cdf.c
  user/hrs/ipv6/contrib/file/cdf.h
  user/hrs/ipv6/contrib/file/cdf_time.c
  user/hrs/ipv6/contrib/file/compile
  user/hrs/ipv6/contrib/file/compress.c
  user/hrs/ipv6/contrib/file/config.h.in
  user/hrs/ipv6/contrib/file/configure
  user/hrs/ipv6/contrib/file/configure.ac
  user/hrs/ipv6/contrib/file/elfclass.h
  user/hrs/ipv6/contrib/file/encoding.c
  user/hrs/ipv6/contrib/file/file.c
  user/hrs/ipv6/contrib/file/file.h
  user/hrs/ipv6/contrib/file/file.man
  user/hrs/ipv6/contrib/file/file_opts.h
  user/hrs/ipv6/contrib/file/fsmagic.c
  user/hrs/ipv6/contrib/file/funcs.c
  user/hrs/ipv6/contrib/file/install-sh
  user/hrs/ipv6/contrib/file/is_tar.c
  user/hrs/ipv6/contrib/file/libmagic.man
  user/hrs/ipv6/contrib/file/magic.c
  user/hrs/ipv6/contrib/file/magic.h
  user/hrs/ipv6/contrib/file/magic.man
  user/hrs/ipv6/contrib/file/print.c
  user/hrs/ipv6/contrib/file/readcdf.c
  user/hrs/ipv6/contrib/file/readelf.c
  user/hrs/ipv6/contrib/file/readelf.h
  user/hrs/ipv6/contrib/file/softmagic.c
  user/hrs/ipv6/contrib/file/tar.h
  user/hrs/ipv6/contrib/file/tests/Makefile.am
  user/hrs/ipv6/contrib/file/tests/Makefile.in
  user/hrs/ipv6/contrib/file/vasprintf.c
  user/hrs/ipv6/contrib/gcc/config/mips/mips.c
  user/hrs/ipv6/contrib/gcc/config/rs6000/rs6000.md
  user/hrs/ipv6/contrib/gcc/config/sparc/sparc.md
  user/hrs/ipv6/contrib/gcc/cse.c
  user/hrs/ipv6/contrib/gcc/expr.c
  user/hrs/ipv6/contrib/gcc/fold-const.c
  user/hrs/ipv6/contrib/gcc/ipa-pure-const.c
  user/hrs/ipv6/contrib/gcc/ipa-utils.c
  user/hrs/ipv6/contrib/gcc/rtl.h
  user/hrs/ipv6/contrib/gcc/var-tracking.c
  user/hrs/ipv6/contrib/gcc/varasm.c
  user/hrs/ipv6/contrib/jemalloc/ChangeLog
  user/hrs/ipv6/contrib/jemalloc/FREEBSD-Xlist
  user/hrs/ipv6/contrib/jemalloc/FREEBSD-diffs
  user/hrs/ipv6/contrib/jemalloc/FREEBSD-upgrade
  user/hrs/ipv6/contrib/jemalloc/VERSION
  user/hrs/ipv6/contrib/jemalloc/doc/jemalloc.3
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/arena.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/atomic.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/chunk.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/chunk_mmap.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/ctl.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/mutex.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/private_namespace.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/prof.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/tcache.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/tsd.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/internal/util.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/jemalloc.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
  user/hrs/ipv6/contrib/jemalloc/include/jemalloc/jemalloc_defs.h
  user/hrs/ipv6/contrib/jemalloc/src/arena.c
  user/hrs/ipv6/contrib/jemalloc/src/chunk.c
  user/hrs/ipv6/contrib/jemalloc/src/chunk_dss.c
  user/hrs/ipv6/contrib/jemalloc/src/chunk_mmap.c
  user/hrs/ipv6/contrib/jemalloc/src/ctl.c
  user/hrs/ipv6/contrib/jemalloc/src/huge.c
  user/hrs/ipv6/contrib/jemalloc/src/jemalloc.c
  user/hrs/ipv6/contrib/jemalloc/src/mutex.c
  user/hrs/ipv6/contrib/jemalloc/src/prof.c
  user/hrs/ipv6/contrib/jemalloc/src/quarantine.c
  user/hrs/ipv6/contrib/jemalloc/src/stats.c
  user/hrs/ipv6/contrib/jemalloc/src/tcache.c
  user/hrs/ipv6/contrib/jemalloc/src/tsd.c
  user/hrs/ipv6/contrib/jemalloc/src/util.c
  user/hrs/ipv6/contrib/libc++/include/__config
  user/hrs/ipv6/contrib/libc++/include/__tuple
  user/hrs/ipv6/contrib/libc++/include/algorithm
  user/hrs/ipv6/contrib/libc++/include/atomic
  user/hrs/ipv6/contrib/libc++/include/cmath
  user/hrs/ipv6/contrib/libc++/include/limits
  user/hrs/ipv6/contrib/libc++/include/memory
  user/hrs/ipv6/contrib/libc++/include/random
  user/hrs/ipv6/contrib/libc++/include/system_error
  user/hrs/ipv6/contrib/libc++/include/tuple
  user/hrs/ipv6/contrib/libc++/include/type_traits
  user/hrs/ipv6/contrib/libc++/include/utility
  user/hrs/ipv6/contrib/libc++/src/iostream.cpp
  user/hrs/ipv6/contrib/libc++/src/stdexcept.cpp
  user/hrs/ipv6/contrib/libc++/src/utility.cpp
  user/hrs/ipv6/contrib/libpcap/CHANGES
  user/hrs/ipv6/contrib/libpcap/CREDITS
  user/hrs/ipv6/contrib/libpcap/Makefile.in
  user/hrs/ipv6/contrib/libpcap/README
  user/hrs/ipv6/contrib/libpcap/VERSION
  user/hrs/ipv6/contrib/libpcap/bpf/net/bpf_filter.c
  user/hrs/ipv6/contrib/libpcap/config.h.in
  user/hrs/ipv6/contrib/libpcap/configure
  user/hrs/ipv6/contrib/libpcap/configure.in
  user/hrs/ipv6/contrib/libpcap/ethertype.h
  user/hrs/ipv6/contrib/libpcap/fad-getad.c
  user/hrs/ipv6/contrib/libpcap/gencode.c
  user/hrs/ipv6/contrib/libpcap/gencode.h
  user/hrs/ipv6/contrib/libpcap/grammar.y
  user/hrs/ipv6/contrib/libpcap/inet.c
  user/hrs/ipv6/contrib/libpcap/packaging/pcap.spec.in
  user/hrs/ipv6/contrib/libpcap/pcap-bpf.c
  user/hrs/ipv6/contrib/libpcap/pcap-bt-linux.c
  user/hrs/ipv6/contrib/libpcap/pcap-common.c
  user/hrs/ipv6/contrib/libpcap/pcap-config.in
  user/hrs/ipv6/contrib/libpcap/pcap-dag.c
  user/hrs/ipv6/contrib/libpcap/pcap-dlpi.c
  user/hrs/ipv6/contrib/libpcap/pcap-filter.manmisc
  user/hrs/ipv6/contrib/libpcap/pcap-filter.manmisc.in
  user/hrs/ipv6/contrib/libpcap/pcap-int.h
  user/hrs/ipv6/contrib/libpcap/pcap-libdlpi.c
  user/hrs/ipv6/contrib/libpcap/pcap-linktype.manmisc
  user/hrs/ipv6/contrib/libpcap/pcap-linktype.manmisc.in
  user/hrs/ipv6/contrib/libpcap/pcap-linux.c
  user/hrs/ipv6/contrib/libpcap/pcap-savefile.manfile
  user/hrs/ipv6/contrib/libpcap/pcap-stdinc.h
  user/hrs/ipv6/contrib/libpcap/pcap-usb-linux.c
  user/hrs/ipv6/contrib/libpcap/pcap-win32.c
  user/hrs/ipv6/contrib/libpcap/pcap.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap.3pcap.in
  user/hrs/ipv6/contrib/libpcap/pcap.c
  user/hrs/ipv6/contrib/libpcap/pcap/bpf.h
  user/hrs/ipv6/contrib/libpcap/pcap/pcap.h
  user/hrs/ipv6/contrib/libpcap/pcap_activate.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_can_set_rfmon.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_compile.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_compile.3pcap.in
  user/hrs/ipv6/contrib/libpcap/pcap_datalink.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_datalink.3pcap.in
  user/hrs/ipv6/contrib/libpcap/pcap_datalink_name_to_val.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_datalink_val_to_name.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_dump_open.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_fileno.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_findalldevs.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_get_selectable_fd.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_list_datalinks.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_list_datalinks.3pcap.in
  user/hrs/ipv6/contrib/libpcap/pcap_loop.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_major_version.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_next_ex.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_open_dead.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_open_live.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_open_offline.3pcap
  user/hrs/ipv6/contrib/libpcap/pcap_set_datalink.3pcap
  user/hrs/ipv6/contrib/libpcap/savefile.c
  user/hrs/ipv6/contrib/libpcap/scanner.l
  user/hrs/ipv6/contrib/libpcap/sf-pcap-ng.c
  user/hrs/ipv6/contrib/libpcap/sf-pcap.c
  user/hrs/ipv6/contrib/llvm/include/llvm-c/lto.h
  user/hrs/ipv6/contrib/llvm/include/llvm/ADT/SmallPtrSet.h
  user/hrs/ipv6/contrib/llvm/include/llvm/ADT/StringMap.h
  user/hrs/ipv6/contrib/llvm/include/llvm/CodeGen/DFAPacketizer.h
  user/hrs/ipv6/contrib/llvm/include/llvm/CodeGen/Passes.h
  user/hrs/ipv6/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
  user/hrs/ipv6/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h
  user/hrs/ipv6/contrib/llvm/include/llvm/IntrinsicsX86.td
  user/hrs/ipv6/contrib/llvm/include/llvm/LLVMContext.h
  user/hrs/ipv6/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h
  user/hrs/ipv6/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Object/ELF.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Operator.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Support/IRBuilder.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Support/Process.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Support/SourceMgr.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Support/YAMLParser.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Support/raw_ostream.h
  user/hrs/ipv6/contrib/llvm/include/llvm/TableGen/Error.h
  user/hrs/ipv6/contrib/llvm/include/llvm/TableGen/Record.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Target/TargetLibraryInfo.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
  user/hrs/ipv6/contrib/llvm/include/llvm/Transforms/Vectorize.h
  user/hrs/ipv6/contrib/llvm/lib/Analysis/ConstantFolding.cpp
  user/hrs/ipv6/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
  user/hrs/ipv6/contrib/llvm/lib/Analysis/ValueTracking.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/Passes.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  user/hrs/ipv6/contrib/llvm/lib/CodeGen/SlotIndexes.cpp
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
  user/hrs/ipv6/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
  user/hrs/ipv6/contrib/llvm/lib/MC/MCParser/AsmParser.cpp
  user/hrs/ipv6/contrib/llvm/lib/Object/ELFObjectFile.cpp
  user/hrs/ipv6/contrib/llvm/lib/Support/SmallPtrSet.cpp
  user/hrs/ipv6/contrib/llvm/lib/Support/SourceMgr.cpp
  user/hrs/ipv6/contrib/llvm/lib/Support/Unix/Process.inc
  user/hrs/ipv6/contrib/llvm/lib/Support/Windows/Process.inc
  user/hrs/ipv6/contrib/llvm/lib/Support/YAMLParser.cpp
  user/hrs/ipv6/contrib/llvm/lib/Support/raw_ostream.cpp
  user/hrs/ipv6/contrib/llvm/lib/TableGen/Error.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/ARM/ARMCallingConv.td
  user/hrs/ipv6/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td
  user/hrs/ipv6/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td
  user/hrs/ipv6/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td
  user/hrs/ipv6/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/CellSPU/SPUCallingConv.td
  user/hrs/ipv6/contrib/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/Hexagon.h
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV4.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfoV3.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfoV4.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV4.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/InstPrinter/HexagonInstPrinter.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/InstPrinter/HexagonInstPrinter.h
  user/hrs/ipv6/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h
  user/hrs/ipv6/contrib/llvm/lib/Target/MBlaze/MBlazeCallingConv.td
  user/hrs/ipv6/contrib/llvm/lib/Target/MBlaze/MBlazeTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MipsCondMov.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td
  user/hrs/ipv6/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/PTX/PTXTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td
  user/hrs/ipv6/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/TargetLibraryInfo.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/X86/X86ISelLowering.h
  user/hrs/ipv6/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
  user/hrs/ipv6/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/X86/X86InstrSSE.td
  user/hrs/ipv6/contrib/llvm/lib/Target/X86/X86Subtarget.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/IPO/Internalize.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/Scalar/ObjCARC.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
  user/hrs/ipv6/contrib/llvm/lib/Transforms/Vectorize/BBVectorize.cpp
  user/hrs/ipv6/contrib/llvm/lib/VMCore/AutoUpgrade.cpp
  user/hrs/ipv6/contrib/llvm/lib/VMCore/Instructions.cpp
  user/hrs/ipv6/contrib/llvm/lib/VMCore/LLVMContext.cpp
  user/hrs/ipv6/contrib/llvm/lib/VMCore/Module.cpp
  user/hrs/ipv6/contrib/llvm/lib/VMCore/Verifier.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/Decl.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/DeclLookups.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/Expr.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/Stmt.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/Type.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/ConvertUTF.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/ExceptionSpecificationType.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/OnDiskHashTable.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Parse/Parser.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Sema/Scope.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Serialization/Module.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  user/hrs/ipv6/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/Decl.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/Expr.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/Stmt.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/Type.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Basic/Version.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Headers/avxintrin.h
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Parse/Parser.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Rewrite/RewriteModernObjC.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/Sema.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Serialization/Module.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
  user/hrs/ipv6/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp
  user/hrs/ipv6/contrib/llvm/tools/llc/llc.cpp
  user/hrs/ipv6/contrib/llvm/tools/lli/lli.cpp
  user/hrs/ipv6/contrib/llvm/tools/llvm-mc/Disassembler.cpp
  user/hrs/ipv6/contrib/llvm/tools/llvm-mc/Disassembler.h
  user/hrs/ipv6/contrib/llvm/tools/llvm-mc/llvm-mc.cpp
  user/hrs/ipv6/contrib/llvm/tools/llvm-stress/llvm-stress.cpp
  user/hrs/ipv6/contrib/llvm/tools/opt/opt.cpp
  user/hrs/ipv6/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp
  user/hrs/ipv6/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp
  user/hrs/ipv6/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
  user/hrs/ipv6/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp
  user/hrs/ipv6/contrib/llvm/utils/TableGen/EDEmitter.cpp
  user/hrs/ipv6/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp
  user/hrs/ipv6/contrib/netcat/FREEBSD-vendor
  user/hrs/ipv6/contrib/netcat/nc.1
  user/hrs/ipv6/contrib/netcat/netcat.c
  user/hrs/ipv6/contrib/openpam/lib/openpam_configure.c
  user/hrs/ipv6/contrib/tcpdump/CHANGES
  user/hrs/ipv6/contrib/tcpdump/CREDITS
  user/hrs/ipv6/contrib/tcpdump/Makefile.in
  user/hrs/ipv6/contrib/tcpdump/VERSION
  user/hrs/ipv6/contrib/tcpdump/acconfig.h
  user/hrs/ipv6/contrib/tcpdump/addrtoname.c
  user/hrs/ipv6/contrib/tcpdump/addrtoname.h
  user/hrs/ipv6/contrib/tcpdump/bootp.h
  user/hrs/ipv6/contrib/tcpdump/config.h.in
  user/hrs/ipv6/contrib/tcpdump/configure
  user/hrs/ipv6/contrib/tcpdump/configure.in
  user/hrs/ipv6/contrib/tcpdump/cpack.c
  user/hrs/ipv6/contrib/tcpdump/cpack.h
  user/hrs/ipv6/contrib/tcpdump/ethertype.h
  user/hrs/ipv6/contrib/tcpdump/forces.h
  user/hrs/ipv6/contrib/tcpdump/ieee802_11_radio.h
  user/hrs/ipv6/contrib/tcpdump/interface.h
  user/hrs/ipv6/contrib/tcpdump/ip.h
  user/hrs/ipv6/contrib/tcpdump/ip6.h
  user/hrs/ipv6/contrib/tcpdump/ipproto.c
  user/hrs/ipv6/contrib/tcpdump/ipproto.h
  user/hrs/ipv6/contrib/tcpdump/netdissect.h
  user/hrs/ipv6/contrib/tcpdump/ospf.h
  user/hrs/ipv6/contrib/tcpdump/oui.c
  user/hrs/ipv6/contrib/tcpdump/oui.h
  user/hrs/ipv6/contrib/tcpdump/print-802_11.c
  user/hrs/ipv6/contrib/tcpdump/print-ap1394.c
  user/hrs/ipv6/contrib/tcpdump/print-arcnet.c
  user/hrs/ipv6/contrib/tcpdump/print-arp.c
  user/hrs/ipv6/contrib/tcpdump/print-atalk.c
  user/hrs/ipv6/contrib/tcpdump/print-atm.c
  user/hrs/ipv6/contrib/tcpdump/print-bgp.c
  user/hrs/ipv6/contrib/tcpdump/print-cdp.c
  user/hrs/ipv6/contrib/tcpdump/print-chdlc.c
  user/hrs/ipv6/contrib/tcpdump/print-dccp.c
  user/hrs/ipv6/contrib/tcpdump/print-dhcp6.c
  user/hrs/ipv6/contrib/tcpdump/print-enc.c
  user/hrs/ipv6/contrib/tcpdump/print-ether.c
  user/hrs/ipv6/contrib/tcpdump/print-forces.c
  user/hrs/ipv6/contrib/tcpdump/print-fr.c
  user/hrs/ipv6/contrib/tcpdump/print-gre.c
  user/hrs/ipv6/contrib/tcpdump/print-icmp.c
  user/hrs/ipv6/contrib/tcpdump/print-icmp6.c
  user/hrs/ipv6/contrib/tcpdump/print-igmp.c
  user/hrs/ipv6/contrib/tcpdump/print-ip.c
  user/hrs/ipv6/contrib/tcpdump/print-ip6.c
  user/hrs/ipv6/contrib/tcpdump/print-ipnet.c
  user/hrs/ipv6/contrib/tcpdump/print-ipx.c
  user/hrs/ipv6/contrib/tcpdump/print-isoclns.c
  user/hrs/ipv6/contrib/tcpdump/print-juniper.c
  user/hrs/ipv6/contrib/tcpdump/print-lane.c
  user/hrs/ipv6/contrib/tcpdump/print-llc.c
  user/hrs/ipv6/contrib/tcpdump/print-lldp.c
  user/hrs/ipv6/contrib/tcpdump/print-mobile.c
  user/hrs/ipv6/contrib/tcpdump/print-mpls.c
  user/hrs/ipv6/contrib/tcpdump/print-null.c
  user/hrs/ipv6/contrib/tcpdump/print-ospf.c
  user/hrs/ipv6/contrib/tcpdump/print-pflog.c
  user/hrs/ipv6/contrib/tcpdump/print-pgm.c
  user/hrs/ipv6/contrib/tcpdump/print-pim.c
  user/hrs/ipv6/contrib/tcpdump/print-ppp.c
  user/hrs/ipv6/contrib/tcpdump/print-rrcp.c
  user/hrs/ipv6/contrib/tcpdump/print-sctp.c
  user/hrs/ipv6/contrib/tcpdump/print-sflow.c
  user/hrs/ipv6/contrib/tcpdump/print-sl.c
  user/hrs/ipv6/contrib/tcpdump/print-sll.c
  user/hrs/ipv6/contrib/tcpdump/print-sunrpc.c
  user/hrs/ipv6/contrib/tcpdump/print-symantec.c
  user/hrs/ipv6/contrib/tcpdump/print-tcp.c
  user/hrs/ipv6/contrib/tcpdump/print-tftp.c
  user/hrs/ipv6/contrib/tcpdump/print-udp.c
  user/hrs/ipv6/contrib/tcpdump/print-vrrp.c
  user/hrs/ipv6/contrib/tcpdump/tcp.h
  user/hrs/ipv6/contrib/tcpdump/tcpdump-stdinc.h
  user/hrs/ipv6/contrib/tcpdump/tcpdump.1.in
  user/hrs/ipv6/contrib/tcpdump/tcpdump.c
  user/hrs/ipv6/contrib/tcpdump/udp.h
  user/hrs/ipv6/contrib/traceroute/traceroute.c
  user/hrs/ipv6/crypto/openssl/crypto/asn1/a_d2i_fp.c
  user/hrs/ipv6/crypto/openssl/crypto/buffer/buffer.c
  user/hrs/ipv6/crypto/openssl/crypto/mem.c
  user/hrs/ipv6/crypto/openssl/crypto/pkcs7/pk7_doit.c
  user/hrs/ipv6/crypto/openssl/crypto/x509v3/pcy_map.c
  user/hrs/ipv6/crypto/openssl/crypto/x509v3/pcy_tree.c
  user/hrs/ipv6/crypto/openssl/ssl/s3_enc.c
  user/hrs/ipv6/crypto/openssl/ssl/s3_srvr.c
  user/hrs/ipv6/crypto/openssl/ssl/ssl.h
  user/hrs/ipv6/crypto/openssl/ssl/ssl3.h
  user/hrs/ipv6/crypto/openssl/ssl/ssl_err.c
  user/hrs/ipv6/etc/defaults/rc.conf
  user/hrs/ipv6/etc/mtree/BSD.include.dist
  user/hrs/ipv6/etc/mtree/BSD.usr.dist
  user/hrs/ipv6/etc/periodic/daily/420.status-network
  user/hrs/ipv6/etc/rc.d/accounting
  user/hrs/ipv6/etc/rc.d/kfd
  user/hrs/ipv6/games/fortune/datfiles/freebsd-tips
  user/hrs/ipv6/gnu/lib/csu/Makefile
  user/hrs/ipv6/gnu/lib/libgcc/Makefile
  user/hrs/ipv6/gnu/usr.bin/binutils/addr2line/addr2line.1
  user/hrs/ipv6/gnu/usr.bin/binutils/ar/Makefile
  user/hrs/ipv6/gnu/usr.bin/binutils/as/Makefile
  user/hrs/ipv6/gnu/usr.bin/binutils/ld/Makefile
  user/hrs/ipv6/gnu/usr.bin/binutils/ranlib/Makefile
  user/hrs/ipv6/gnu/usr.bin/binutils/ranlib/ranlib.1
  user/hrs/ipv6/gnu/usr.bin/binutils/size/size.1
  user/hrs/ipv6/gnu/usr.bin/binutils/strip/strip.1
  user/hrs/ipv6/gnu/usr.bin/cc/cc/Makefile
  user/hrs/ipv6/gnu/usr.bin/cc/cc1/Makefile
  user/hrs/ipv6/gnu/usr.bin/cc/cc1plus/Makefile
  user/hrs/ipv6/gnu/usr.bin/gdb/gdb/gdb.1
  user/hrs/ipv6/gnu/usr.bin/gdb/kgdb/trgt_powerpc.c
  user/hrs/ipv6/gnu/usr.bin/sort/Makefile
  user/hrs/ipv6/include/Makefile
  user/hrs/ipv6/include/dirent.h
  user/hrs/ipv6/include/protocols/dumprestore.h
  user/hrs/ipv6/include/setjmp.h
  user/hrs/ipv6/include/stdatomic.h
  user/hrs/ipv6/include/unistd.h
  user/hrs/ipv6/include/xlocale/_ctype.h
  user/hrs/ipv6/lib/Makefile
  user/hrs/ipv6/lib/clang/Makefile
  user/hrs/ipv6/lib/clang/clang.build.mk
  user/hrs/ipv6/lib/clang/include/Makefile
  user/hrs/ipv6/lib/clang/include/clang/Basic/Version.inc
  user/hrs/ipv6/lib/clang/include/clang/Config/config.h
  user/hrs/ipv6/lib/clang/include/llvm/Config/config.h
  user/hrs/ipv6/lib/clang/libclangsema/Makefile
  user/hrs/ipv6/lib/clang/libllvmruntimedyld/Makefile
  user/hrs/ipv6/lib/clang/libllvmsupport/Makefile
  user/hrs/ipv6/lib/csu/amd64/Makefile
  user/hrs/ipv6/lib/csu/arm/Makefile
  user/hrs/ipv6/lib/csu/i386-elf/Makefile
  user/hrs/ipv6/lib/csu/ia64/Makefile
  user/hrs/ipv6/lib/csu/mips/Makefile
  user/hrs/ipv6/lib/csu/powerpc/Makefile
  user/hrs/ipv6/lib/csu/powerpc64/Makefile
  user/hrs/ipv6/lib/libbluetooth/bluetooth.3
  user/hrs/ipv6/lib/libc/Makefile
  user/hrs/ipv6/lib/libc/compat-43/sigpause.2
  user/hrs/ipv6/lib/libc/gen/Makefile.inc
  user/hrs/ipv6/lib/libc/gen/Symbol.map
  user/hrs/ipv6/lib/libc/gen/closedir.c
  user/hrs/ipv6/lib/libc/gen/err.3
  user/hrs/ipv6/lib/libc/gen/fts-compat.c
  user/hrs/ipv6/lib/libc/gen/fts.c
  user/hrs/ipv6/lib/libc/gen/getcwd.c
  user/hrs/ipv6/lib/libc/gen/opendir.c
  user/hrs/ipv6/lib/libc/gen/readdir.c
  user/hrs/ipv6/lib/libc/gen/rewinddir.c
  user/hrs/ipv6/lib/libc/gen/seekdir.c
  user/hrs/ipv6/lib/libc/gen/telldir.c
  user/hrs/ipv6/lib/libc/gen/tls.c
  user/hrs/ipv6/lib/libc/gmon/gmon.c
  user/hrs/ipv6/lib/libc/gmon/moncontrol.3
  user/hrs/ipv6/lib/libc/include/libc_private.h
  user/hrs/ipv6/lib/libc/locale/Symbol.map
  user/hrs/ipv6/lib/libc/locale/duplocale.3
  user/hrs/ipv6/lib/libc/locale/freelocale.3
  user/hrs/ipv6/lib/libc/locale/newlocale.3
  user/hrs/ipv6/lib/libc/locale/querylocale.3
  user/hrs/ipv6/lib/libc/locale/toupper.c
  user/hrs/ipv6/lib/libc/locale/uselocale.3
  user/hrs/ipv6/lib/libc/locale/xlocale.3
  user/hrs/ipv6/lib/libc/net/Symbol.map
  user/hrs/ipv6/lib/libc/net/if_indextoname.c
  user/hrs/ipv6/lib/libc/net/if_nameindex.c
  user/hrs/ipv6/lib/libc/net/if_nametoindex.c
  user/hrs/ipv6/lib/libc/net/nsdispatch.3
  user/hrs/ipv6/lib/libc/net/sctp_connectx.3
  user/hrs/ipv6/lib/libc/net/sctp_recvmsg.3
  user/hrs/ipv6/lib/libc/net/sctp_sys_calls.c
  user/hrs/ipv6/lib/libc/net/sourcefilter.3
  user/hrs/ipv6/lib/libc/net/sourcefilter.c
  user/hrs/ipv6/lib/libc/posix1e/acl_delete_entry.3
  user/hrs/ipv6/lib/libc/posix1e/mac_prepare.3
  user/hrs/ipv6/lib/libc/rpc/auth_unix.c
  user/hrs/ipv6/lib/libc/rpc/publickey.3
  user/hrs/ipv6/lib/libc/rpc/svc.c
  user/hrs/ipv6/lib/libc/rpc/svc_raw.c
  user/hrs/ipv6/lib/libc/stdio/fclose.c
  user/hrs/ipv6/lib/libc/stdio/fgets.3
  user/hrs/ipv6/lib/libc/stdio/fgetwc.c
  user/hrs/ipv6/lib/libc/stdio/findfp.c
  user/hrs/ipv6/lib/libc/stdio/fputws.c
  user/hrs/ipv6/lib/libc/stdio/local.h
  user/hrs/ipv6/lib/libc/stdio/printf.3
  user/hrs/ipv6/lib/libc/stdio/scanf.3
  user/hrs/ipv6/lib/libc/stdio/setbuf.3
  user/hrs/ipv6/lib/libc/stdio/snprintf.c
  user/hrs/ipv6/lib/libc/stdio/vfprintf.c
  user/hrs/ipv6/lib/libc/stdio/vfscanf.c
  user/hrs/ipv6/lib/libc/stdio/vfwprintf.c
  user/hrs/ipv6/lib/libc/stdio/vfwscanf.c
  user/hrs/ipv6/lib/libc/stdio/vsnprintf.c
  user/hrs/ipv6/lib/libc/stdio/vswprintf.c
  user/hrs/ipv6/lib/libc/stdio/wscanf.3
  user/hrs/ipv6/lib/libc/stdlib/getenv.3
  user/hrs/ipv6/lib/libc/stdlib/realpath.3
  user/hrs/ipv6/lib/libc/stdlib/realpath.c
  user/hrs/ipv6/lib/libc/stdlib/strfmon.3
  user/hrs/ipv6/lib/libc/string/strlcpy.3
  user/hrs/ipv6/lib/libc/sys/ffclock.2
  user/hrs/ipv6/lib/libc/sys/jail.2
  user/hrs/ipv6/lib/libc/sys/ktrace.2
  user/hrs/ipv6/lib/libc/sys/msgsnd.2
  user/hrs/ipv6/lib/libc/sys/pathconf.2
  user/hrs/ipv6/lib/libc/sys/pdfork.2
  user/hrs/ipv6/lib/libc/sys/read.2
  user/hrs/ipv6/lib/libc/sys/rtprio.2
  user/hrs/ipv6/lib/libc/sys/setfib.2
  user/hrs/ipv6/lib/libc/sys/shm_open.2
  user/hrs/ipv6/lib/libc/sys/sigqueue.2
  user/hrs/ipv6/lib/libc/sys/timer_create.2
  user/hrs/ipv6/lib/libc/sys/timer_delete.2
  user/hrs/ipv6/lib/libc/sys/timer_settime.2
  user/hrs/ipv6/lib/libc/sys/unlink.2
  user/hrs/ipv6/lib/libcompiler_rt/Makefile
  user/hrs/ipv6/lib/libedit/edit/readline/Makefile
  user/hrs/ipv6/lib/libelf/elf_getdata.3
  user/hrs/ipv6/lib/libelf/elf_strptr.3
  user/hrs/ipv6/lib/libelf/gelf_getphdr.3
  user/hrs/ipv6/lib/libelf/gelf_newehdr.3
  user/hrs/ipv6/lib/libfetch/common.c
  user/hrs/ipv6/lib/libfetch/http.c
  user/hrs/ipv6/lib/libgpib/gpib.3
  user/hrs/ipv6/lib/libjail/jail.c
  user/hrs/ipv6/lib/libkvm/kvm_getpcpu.3
  user/hrs/ipv6/lib/libmagic/Makefile
  user/hrs/ipv6/lib/libmagic/config.h
  user/hrs/ipv6/lib/libmd/Makefile
  user/hrs/ipv6/lib/libmd/mdX.3
  user/hrs/ipv6/lib/libpcap/Makefile
  user/hrs/ipv6/lib/libpcap/config.h
  user/hrs/ipv6/lib/libprocstat/cd9660.c
  user/hrs/ipv6/lib/libprocstat/common_kvm.c
  user/hrs/ipv6/lib/libprocstat/libprocstat.3
  user/hrs/ipv6/lib/libradius/libradius.3
  user/hrs/ipv6/lib/libstand/Makefile
  user/hrs/ipv6/lib/libstand/stand.h
  user/hrs/ipv6/lib/libtacplus/libtacplus.3
  user/hrs/ipv6/lib/libthr/thread/thr_init.c
  user/hrs/ipv6/lib/libthr/thread/thr_private.h
  user/hrs/ipv6/lib/libthr/thread/thr_sleepq.c
  user/hrs/ipv6/lib/libulog/ulog_login.c
  user/hrs/ipv6/lib/libusb/Makefile
  user/hrs/ipv6/lib/libusb/libusb.3
  user/hrs/ipv6/lib/libusb/libusb.h
  user/hrs/ipv6/lib/libusb/libusb10.c
  user/hrs/ipv6/lib/libusb/libusb10_desc.c
  user/hrs/ipv6/lib/libusb/libusb10_io.c
  user/hrs/ipv6/lib/libusb/libusb20.3
  user/hrs/ipv6/lib/libusb/libusb20.c
  user/hrs/ipv6/lib/libusb/libusb20_desc.c
  user/hrs/ipv6/lib/libusb/libusb20_ugen20.c
  user/hrs/ipv6/lib/libusbhid/parse.c
  user/hrs/ipv6/lib/libutil/login.conf.5
  user/hrs/ipv6/lib/msun/man/cexp.3
  user/hrs/ipv6/lib/msun/man/complex.3
  user/hrs/ipv6/lib/msun/src/s_fabsl.c
  user/hrs/ipv6/libexec/rtld-elf/amd64/reloc.c
  user/hrs/ipv6/libexec/rtld-elf/arm/reloc.c
  user/hrs/ipv6/libexec/rtld-elf/i386/reloc.c
  user/hrs/ipv6/libexec/rtld-elf/ia64/reloc.c
  user/hrs/ipv6/libexec/rtld-elf/libmap.c
  user/hrs/ipv6/libexec/rtld-elf/powerpc/reloc.c
  user/hrs/ipv6/libexec/rtld-elf/powerpc64/reloc.c
  user/hrs/ipv6/libexec/rtld-elf/rtld.c
  user/hrs/ipv6/libexec/rtld-elf/rtld.h
  user/hrs/ipv6/libexec/rtld-elf/sparc64/reloc.c
  user/hrs/ipv6/libexec/tftpd/Makefile
  user/hrs/ipv6/libexec/ulog-helper/ulog-helper.c
  user/hrs/ipv6/release/picobsd/build/picobsd
  user/hrs/ipv6/sbin/Makefile
  user/hrs/ipv6/sbin/geom/class/eli/geli.8
  user/hrs/ipv6/sbin/geom/class/part/geom_part.c
  user/hrs/ipv6/sbin/geom/class/raid/geom_raid.c
  user/hrs/ipv6/sbin/geom/class/raid/graid.8
  user/hrs/ipv6/sbin/growfs/Makefile
  user/hrs/ipv6/sbin/growfs/growfs.8
  user/hrs/ipv6/sbin/growfs/growfs.c
  user/hrs/ipv6/sbin/hastd/hast.conf.5
  user/hrs/ipv6/sbin/ifconfig/af_nd6.c
  user/hrs/ipv6/sbin/ifconfig/ifconfig.8
  user/hrs/ipv6/sbin/ifconfig/ifconfig.c
  user/hrs/ipv6/sbin/ifconfig/ifieee80211.c
  user/hrs/ipv6/sbin/ipfw/ipfw.8
  user/hrs/ipv6/sbin/iscontrol/Makefile
  user/hrs/ipv6/sbin/iscontrol/iscontrol.c
  user/hrs/ipv6/sbin/iscontrol/iscsi.conf.5
  user/hrs/ipv6/sbin/md5/md5.1
  user/hrs/ipv6/sbin/md5/md5.c
  user/hrs/ipv6/sbin/mdconfig/mdconfig.8
  user/hrs/ipv6/sbin/setkey/setkey.8
  user/hrs/ipv6/share/Makefile
  user/hrs/ipv6/share/examples/csh/dot.cshrc
  user/hrs/ipv6/share/man/man3/ATOMIC_VAR_INIT.3
  user/hrs/ipv6/share/man/man3/pthread.3
  user/hrs/ipv6/share/man/man3/pthread_condattr.3
  user/hrs/ipv6/share/man/man4/Makefile
  user/hrs/ipv6/share/man/man4/acpi.4
  user/hrs/ipv6/share/man/man4/acpi_hp.4
  user/hrs/ipv6/share/man/man4/acpi_wmi.4
  user/hrs/ipv6/share/man/man4/ahci.4
  user/hrs/ipv6/share/man/man4/ath.4
  user/hrs/ipv6/share/man/man4/atp.4
  user/hrs/ipv6/share/man/man4/bpf.4
  user/hrs/ipv6/share/man/man4/bridge.4
  user/hrs/ipv6/share/man/man4/capsicum.4
  user/hrs/ipv6/share/man/man4/carp.4
  user/hrs/ipv6/share/man/man4/ch.4
  user/hrs/ipv6/share/man/man4/cpuctl.4
  user/hrs/ipv6/share/man/man4/cxgbe.4
  user/hrs/ipv6/share/man/man4/dcons.4
  user/hrs/ipv6/share/man/man4/ddb.4
  user/hrs/ipv6/share/man/man4/divert.4
  user/hrs/ipv6/share/man/man4/epair.4
  user/hrs/ipv6/share/man/man4/fdt.4
  user/hrs/ipv6/share/man/man4/fdtbus.4
  user/hrs/ipv6/share/man/man4/firewire.4
  user/hrs/ipv6/share/man/man4/gdb.4
  user/hrs/ipv6/share/man/man4/gre.4
  user/hrs/ipv6/share/man/man4/igb.4
  user/hrs/ipv6/share/man/man4/ip.4
  user/hrs/ipv6/share/man/man4/ipfirewall.4
  user/hrs/ipv6/share/man/man4/ipmi.4
  user/hrs/ipv6/share/man/man4/ipw.4
  user/hrs/ipv6/share/man/man4/isci.4
  user/hrs/ipv6/share/man/man4/iscsi_initiator.4
  user/hrs/ipv6/share/man/man4/isp.4
  user/hrs/ipv6/share/man/man4/iwn.4
  user/hrs/ipv6/share/man/man4/mac_none.4
  user/hrs/ipv6/share/man/man4/mac_stub.4
  user/hrs/ipv6/share/man/man4/mk48txx.4
  user/hrs/ipv6/share/man/man4/mps.4
  user/hrs/ipv6/share/man/man4/mwl.4
  user/hrs/ipv6/share/man/man4/net80211.4
  user/hrs/ipv6/share/man/man4/netmap.4
  user/hrs/ipv6/share/man/man4/ng_etf.4
  user/hrs/ipv6/share/man/man4/ng_nat.4
  user/hrs/ipv6/share/man/man4/ng_netflow.4
  user/hrs/ipv6/share/man/man4/ng_patch.4
  user/hrs/ipv6/share/man/man4/ng_socket.4
  user/hrs/ipv6/share/man/man4/pcm.4
  user/hrs/ipv6/share/man/man4/pcn.4
  user/hrs/ipv6/share/man/man4/psm.4
  user/hrs/ipv6/share/man/man4/ral.4
  user/hrs/ipv6/share/man/man4/rl.4
  user/hrs/ipv6/share/man/man4/run.4
  user/hrs/ipv6/share/man/man4/send.4
  user/hrs/ipv6/share/man/man4/ses.4
  user/hrs/ipv6/share/man/man4/siftr.4
  user/hrs/ipv6/share/man/man4/simplebus.4
  user/hrs/ipv6/share/man/man4/sis.4
  user/hrs/ipv6/share/man/man4/sk.4
  user/hrs/ipv6/share/man/man4/snd_hda.4
  user/hrs/ipv6/share/man/man4/snd_hdspe.4
  user/hrs/ipv6/share/man/man4/splash.4
  user/hrs/ipv6/share/man/man4/ste.4
  user/hrs/ipv6/share/man/man4/termios.4
  user/hrs/ipv6/share/man/man4/ti.4
  user/hrs/ipv6/share/man/man4/tl.4
  user/hrs/ipv6/share/man/man4/tws.4
  user/hrs/ipv6/share/man/man4/uhso.4
  user/hrs/ipv6/share/man/man4/ulpt.4
  user/hrs/ipv6/share/man/man4/umcs.4
  user/hrs/ipv6/share/man/man4/uslcom.4
  user/hrs/ipv6/share/man/man4/vge.4
  user/hrs/ipv6/share/man/man4/vr.4
  user/hrs/ipv6/share/man/man4/watchdog.4
  user/hrs/ipv6/share/man/man4/wb.4
  user/hrs/ipv6/share/man/man4/wpi.4
  user/hrs/ipv6/share/man/man4/xl.4
  user/hrs/ipv6/share/man/man4/xnb.4
  user/hrs/ipv6/share/man/man5/Makefile
  user/hrs/ipv6/share/man/man5/device.hints.5
  user/hrs/ipv6/share/man/man5/libmap.conf.5
  user/hrs/ipv6/share/man/man5/make.conf.5
  user/hrs/ipv6/share/man/man5/nsmb.conf.5
  user/hrs/ipv6/share/man/man5/portsnap.conf.5
  user/hrs/ipv6/share/man/man5/rc.conf.5
  user/hrs/ipv6/share/man/man5/src.conf.5
  user/hrs/ipv6/share/man/man5/tmpfs.5
  user/hrs/ipv6/share/man/man7/c99.7
  user/hrs/ipv6/share/man/man7/development.7
  user/hrs/ipv6/share/man/man7/release.7
  user/hrs/ipv6/share/man/man7/tuning.7
  user/hrs/ipv6/share/man/man8/rc.8
  user/hrs/ipv6/share/man/man9/BUF_ISLOCKED.9
  user/hrs/ipv6/share/man/man9/DB_COMMAND.9
  user/hrs/ipv6/share/man/man9/DECLARE_GEOM_CLASS.9
  user/hrs/ipv6/share/man/man9/Makefile
  user/hrs/ipv6/share/man/man9/VOP_GETACL.9
  user/hrs/ipv6/share/man/man9/VOP_GETEXTATTR.9
  user/hrs/ipv6/share/man/man9/VOP_GETPAGES.9
  user/hrs/ipv6/share/man/man9/VOP_GETVOBJECT.9
  user/hrs/ipv6/share/man/man9/VOP_SETACL.9
  user/hrs/ipv6/share/man/man9/VOP_SETEXTATTR.9
  user/hrs/ipv6/share/man/man9/acl.9
  user/hrs/ipv6/share/man/man9/bus_generic_print_child.9
  user/hrs/ipv6/share/man/man9/bus_release_resource.9
  user/hrs/ipv6/share/man/man9/bus_space.9
  user/hrs/ipv6/share/man/man9/byteorder.9
  user/hrs/ipv6/share/man/man9/devclass_get_maxunit.9
  user/hrs/ipv6/share/man/man9/device_find_child.9
  user/hrs/ipv6/share/man/man9/eventtimers.9
  user/hrs/ipv6/share/man/man9/fail.9
  user/hrs/ipv6/share/man/man9/firmware.9
  user/hrs/ipv6/share/man/man9/hashinit.9
  user/hrs/ipv6/share/man/man9/ieee80211_proto.9
  user/hrs/ipv6/share/man/man9/ifnet.9
  user/hrs/ipv6/share/man/man9/kqueue.9
  user/hrs/ipv6/share/man/man9/lock.9
  user/hrs/ipv6/share/man/man9/locking.9
  user/hrs/ipv6/share/man/man9/mbuf.9
  user/hrs/ipv6/share/man/man9/namei.9
  user/hrs/ipv6/share/man/man9/netisr.9
  user/hrs/ipv6/share/man/man9/pci.9
  user/hrs/ipv6/share/man/man9/spl.9
  user/hrs/ipv6/share/man/man9/store.9
  user/hrs/ipv6/share/man/man9/swi.9
  user/hrs/ipv6/share/man/man9/sysctl.9
  user/hrs/ipv6/share/man/man9/taskqueue.9
  user/hrs/ipv6/share/man/man9/usbdi.9
  user/hrs/ipv6/share/man/man9/vm_page_aflag.9
  user/hrs/ipv6/share/misc/bsd-family-tree
  user/hrs/ipv6/share/misc/committers-doc.dot
  user/hrs/ipv6/share/misc/committers-src.dot
  user/hrs/ipv6/share/mk/bsd.README
  user/hrs/ipv6/share/mk/bsd.lib.mk
  user/hrs/ipv6/share/mk/bsd.libnames.mk
  user/hrs/ipv6/share/mk/bsd.own.mk
  user/hrs/ipv6/share/mk/sys.mk
  user/hrs/ipv6/share/skel/dot.cshrc
  user/hrs/ipv6/share/syscons/keymaps/Makefile
  user/hrs/ipv6/share/termcap/termcap.5
  user/hrs/ipv6/sys/amd64/acpica/acpi_machdep.c
  user/hrs/ipv6/sys/amd64/amd64/fpu.c
  user/hrs/ipv6/sys/amd64/amd64/machdep.c
  user/hrs/ipv6/sys/amd64/amd64/pmap.c
  user/hrs/ipv6/sys/amd64/conf/GENERIC
  user/hrs/ipv6/sys/amd64/include/intr_machdep.h
  user/hrs/ipv6/sys/amd64/include/pcb.h
  user/hrs/ipv6/sys/amd64/include/pmap.h
  user/hrs/ipv6/sys/amd64/include/vmparam.h
  user/hrs/ipv6/sys/amd64/linux32/linux.h
  user/hrs/ipv6/sys/amd64/linux32/linux32_dummy.c
  user/hrs/ipv6/sys/arm/arm/busdma_machdep.c
  user/hrs/ipv6/sys/arm/arm/elf_trampoline.c
  user/hrs/ipv6/sys/arm/arm/identcpu.c
  user/hrs/ipv6/sys/arm/arm/locore.S
  user/hrs/ipv6/sys/arm/at91/at91_mci.c
  user/hrs/ipv6/sys/arm/at91/at91_mcireg.h
  user/hrs/ipv6/sys/arm/at91/at91_pioreg.h
  user/hrs/ipv6/sys/arm/at91/at91sam9g20reg.h
  user/hrs/ipv6/sys/arm/at91/board_sam9g20ek.c
  user/hrs/ipv6/sys/arm/at91/files.at91sam9
  user/hrs/ipv6/sys/arm/at91/uart_dev_at91usart.c
  user/hrs/ipv6/sys/arm/conf/DB-78XXX
  user/hrs/ipv6/sys/arm/conf/DB-88F6XXX
  user/hrs/ipv6/sys/arm/conf/SHEEVAPLUG
  user/hrs/ipv6/sys/arm/include/fdt.h
  user/hrs/ipv6/sys/arm/include/param.h
  user/hrs/ipv6/sys/arm/include/pcb.h
  user/hrs/ipv6/sys/arm/mv/discovery/discovery.c
  user/hrs/ipv6/sys/arm/mv/files.mv
  user/hrs/ipv6/sys/arm/mv/mv_machdep.c
  user/hrs/ipv6/sys/arm/mv/mvwin.h
  user/hrs/ipv6/sys/arm/xscale/ixp425/std.ixp425
  user/hrs/ipv6/sys/arm/xscale/ixp425/std.ixp435
  user/hrs/ipv6/sys/boot/Makefile.sparc64
  user/hrs/ipv6/sys/boot/arm/at91/boot2/boot2.c
  user/hrs/ipv6/sys/boot/arm/at91/libat91/at91rm9200.h
  user/hrs/ipv6/sys/boot/arm/uboot/Makefile
  user/hrs/ipv6/sys/boot/arm/uboot/conf.c
  user/hrs/ipv6/sys/boot/arm/uboot/start.S
  user/hrs/ipv6/sys/boot/arm/uboot/version
  user/hrs/ipv6/sys/boot/common/boot.c
  user/hrs/ipv6/sys/boot/common/bootstrap.h
  user/hrs/ipv6/sys/boot/efi/Makefile.inc
  user/hrs/ipv6/sys/boot/fdt/dts/db78100.dts
  user/hrs/ipv6/sys/boot/fdt/dts/db88f6281.dts
  user/hrs/ipv6/sys/boot/fdt/dts/sheevaplug.dts
  user/hrs/ipv6/sys/boot/fdt/fdt_loader_cmd.c
  user/hrs/ipv6/sys/boot/forth/beastie.4th
  user/hrs/ipv6/sys/boot/forth/beastie.4th.8
  user/hrs/ipv6/sys/boot/forth/brand.4th
  user/hrs/ipv6/sys/boot/forth/brand.4th.8
  user/hrs/ipv6/sys/boot/forth/check-password.4th
  user/hrs/ipv6/sys/boot/forth/check-password.4th.8
  user/hrs/ipv6/sys/boot/forth/color.4th
  user/hrs/ipv6/sys/boot/forth/color.4th.8
  user/hrs/ipv6/sys/boot/forth/delay.4th
  user/hrs/ipv6/sys/boot/forth/delay.4th.8
  user/hrs/ipv6/sys/boot/forth/menu-commands.4th
  user/hrs/ipv6/sys/boot/forth/menu.4th
  user/hrs/ipv6/sys/boot/forth/menu.4th.8
  user/hrs/ipv6/sys/boot/forth/shortcuts.4th
  user/hrs/ipv6/sys/boot/forth/version.4th
  user/hrs/ipv6/sys/boot/forth/version.4th.8
  user/hrs/ipv6/sys/boot/i386/btx/btx/Makefile
  user/hrs/ipv6/sys/boot/i386/btx/btx/btx.S
  user/hrs/ipv6/sys/boot/i386/btx/btxldr/Makefile
  user/hrs/ipv6/sys/boot/i386/btx/btxldr/btxldr.S
  user/hrs/ipv6/sys/boot/i386/btx/lib/Makefile
  user/hrs/ipv6/sys/boot/i386/cdboot/Makefile
  user/hrs/ipv6/sys/boot/i386/efi/Makefile
  user/hrs/ipv6/sys/boot/i386/efi/reloc.c
  user/hrs/ipv6/sys/boot/i386/libi386/Makefile
  user/hrs/ipv6/sys/boot/i386/libi386/biosdisk.c
  user/hrs/ipv6/sys/boot/i386/libi386/devicename.c
  user/hrs/ipv6/sys/boot/i386/libi386/libi386.h
  user/hrs/ipv6/sys/boot/i386/loader/Makefile
  user/hrs/ipv6/sys/boot/i386/loader/conf.c
  user/hrs/ipv6/sys/boot/i386/loader/main.c
  user/hrs/ipv6/sys/boot/i386/pxeldr/Makefile
  user/hrs/ipv6/sys/boot/i386/pxeldr/pxeldr.S
  user/hrs/ipv6/sys/boot/i386/zfsboot/zfsboot.c
  user/hrs/ipv6/sys/boot/ofw/libofw/Makefile
  user/hrs/ipv6/sys/boot/ofw/libofw/devicename.c
  user/hrs/ipv6/sys/boot/ofw/libofw/libofw.h
  user/hrs/ipv6/sys/boot/pc98/btx/btx/Makefile
  user/hrs/ipv6/sys/boot/pc98/btx/btx/btx.S
  user/hrs/ipv6/sys/boot/pc98/btx/btxldr/Makefile
  user/hrs/ipv6/sys/boot/pc98/btx/btxldr/btxldr.S
  user/hrs/ipv6/sys/boot/pc98/btx/lib/Makefile
  user/hrs/ipv6/sys/boot/pc98/cdboot/Makefile
  user/hrs/ipv6/sys/boot/pc98/libpc98/Makefile
  user/hrs/ipv6/sys/boot/pc98/libpc98/biosdisk.c
  user/hrs/ipv6/sys/boot/pc98/loader/main.c
  user/hrs/ipv6/sys/boot/sparc64/Makefile
  user/hrs/ipv6/sys/boot/sparc64/boot1/Makefile
  user/hrs/ipv6/sys/boot/sparc64/boot1/boot1.c
  user/hrs/ipv6/sys/boot/sparc64/loader/Makefile
  user/hrs/ipv6/sys/boot/sparc64/loader/main.c
  user/hrs/ipv6/sys/boot/uboot/common/metadata.c
  user/hrs/ipv6/sys/boot/uboot/lib/api_public.h
  user/hrs/ipv6/sys/boot/uboot/lib/devicename.c
  user/hrs/ipv6/sys/boot/uboot/lib/disk.c
  user/hrs/ipv6/sys/boot/uboot/lib/glue.c
  user/hrs/ipv6/sys/boot/uboot/lib/libuboot.h
  user/hrs/ipv6/sys/boot/zfs/zfs.c
  user/hrs/ipv6/sys/boot/zfs/zfsimpl.c
  user/hrs/ipv6/sys/cam/cam_sim.h
  user/hrs/ipv6/sys/cam/cam_xpt.c
  user/hrs/ipv6/sys/cam/cam_xpt_sim.h
  user/hrs/ipv6/sys/cam/scsi/scsi_da.c
  user/hrs/ipv6/sys/cddl/boot/zfs/zfsimpl.h
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  user/hrs/ipv6/sys/compat/linux/linux_emul.c
  user/hrs/ipv6/sys/compat/linux/linux_emul.h
  user/hrs/ipv6/sys/compat/linux/linux_fork.c
  user/hrs/ipv6/sys/compat/linux/linux_futex.c
  user/hrs/ipv6/sys/compat/linux/linux_mib.c
  user/hrs/ipv6/sys/compat/linux/linux_misc.c
  user/hrs/ipv6/sys/compat/linux/linux_sysctl.c
  user/hrs/ipv6/sys/compat/linux/linux_time.c
  user/hrs/ipv6/sys/compat/linux/linux_uid16.c
  user/hrs/ipv6/sys/compat/linux/linux_util.c
  user/hrs/ipv6/sys/compat/linux/linux_util.h
  user/hrs/ipv6/sys/conf/files
  user/hrs/ipv6/sys/conf/files.arm
  user/hrs/ipv6/sys/conf/files.powerpc
  user/hrs/ipv6/sys/conf/kmod.mk
  user/hrs/ipv6/sys/conf/options
  user/hrs/ipv6/sys/conf/options.mips
  user/hrs/ipv6/sys/contrib/dev/acpica/acpica_prep.sh
  user/hrs/ipv6/sys/contrib/dev/acpica/changes.txt   (contents, props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslcompile.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslcompiler.h
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslcompiler.l
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslcompiler.y
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslerror.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslfiles.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslglobal.h
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslmain.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslmap.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslrestype1.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/aslstartup.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/dtio.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/preprocess.h
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/prscan.c
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/prutils.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/debugger/dbcmds.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/debugger/dbdisply.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/debugger/dbstats.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/debugger/dbutils.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/events/evmisc.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/events/evxface.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/executer/exdump.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/hardware/hwesleep.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/utilities/utdelete.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/utilities/utglobal.c
  user/hrs/ipv6/sys/contrib/dev/acpica/components/utilities/uttrack.c
  user/hrs/ipv6/sys/contrib/dev/acpica/include/acglobal.h
  user/hrs/ipv6/sys/contrib/dev/acpica/include/aclocal.h
  user/hrs/ipv6/sys/contrib/dev/acpica/include/acobject.h
  user/hrs/ipv6/sys/contrib/dev/acpica/include/acpixf.h
  user/hrs/ipv6/sys/contrib/dev/acpica/include/actypes.h
  user/hrs/ipv6/sys/contrib/rdma/rdma_cma.c
  user/hrs/ipv6/sys/dev/acpica/acpi.c
  user/hrs/ipv6/sys/dev/acpica/acpi_ec.c
  user/hrs/ipv6/sys/dev/acpica/acpi_smbat.c
  user/hrs/ipv6/sys/dev/acpica/acpivar.h
  user/hrs/ipv6/sys/dev/ahci/ahci.c
  user/hrs/ipv6/sys/dev/amr/amr.c
  user/hrs/ipv6/sys/dev/asr/asr.c
  user/hrs/ipv6/sys/dev/ata/ata-all.c
  user/hrs/ipv6/sys/dev/ath/ah_osdep.c
  user/hrs/ipv6/sys/dev/ath/ah_osdep.h
  user/hrs/ipv6/sys/dev/ath/ath_hal/ah.h
  user/hrs/ipv6/sys/dev/ath/ath_hal/ah_eeprom_v4k.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5210/ar5210.h
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5211/ar5211.h
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5212/ar5212.h
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5416/ar5416.h
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5416/ar5416_recv.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5416/ar5416phy.h
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
  user/hrs/ipv6/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c
  user/hrs/ipv6/sys/dev/ath/if_ath.c
  user/hrs/ipv6/sys/dev/ath/if_ath_debug.c
  user/hrs/ipv6/sys/dev/ath/if_ath_debug.h
  user/hrs/ipv6/sys/dev/ath/if_ath_misc.h
  user/hrs/ipv6/sys/dev/ath/if_ath_sysctl.c
  user/hrs/ipv6/sys/dev/ath/if_ath_tx.c
  user/hrs/ipv6/sys/dev/ath/if_athvar.h
  user/hrs/ipv6/sys/dev/bce/if_bce.c
  user/hrs/ipv6/sys/dev/bce/if_bcereg.h
  user/hrs/ipv6/sys/dev/bwi/bwimac.c
  user/hrs/ipv6/sys/dev/bwi/bwiphy.c
  user/hrs/ipv6/sys/dev/bwi/bwirf.c
  user/hrs/ipv6/sys/dev/bwi/if_bwi.c
  user/hrs/ipv6/sys/dev/bwi/if_bwi_pci.c
  user/hrs/ipv6/sys/dev/cxgbe/t4_main.c
  user/hrs/ipv6/sys/dev/cxgbe/t4_sge.c
  user/hrs/ipv6/sys/dev/dc/if_dc.c
  user/hrs/ipv6/sys/dev/dpt/dpt.h
  user/hrs/ipv6/sys/dev/e1000/if_em.c
  user/hrs/ipv6/sys/dev/e1000/if_igb.c
  user/hrs/ipv6/sys/dev/e1000/if_igb.h
  user/hrs/ipv6/sys/dev/fxp/if_fxp.c
  user/hrs/ipv6/sys/dev/hwpmc/hwpmc_core.c
  user/hrs/ipv6/sys/dev/hwpmc/hwpmc_intel.c
  user/hrs/ipv6/sys/dev/hwpmc/hwpmc_mips.c
  user/hrs/ipv6/sys/dev/hwpmc/hwpmc_powerpc.c
  user/hrs/ipv6/sys/dev/iicbus/ds1374.c
  user/hrs/ipv6/sys/dev/isci/scil/sati_inquiry.c
  user/hrs/ipv6/sys/dev/iwn/if_iwn.c
  user/hrs/ipv6/sys/dev/ixgbe/ixgbe.c
  user/hrs/ipv6/sys/dev/ixgbe/ixgbe.h
  user/hrs/ipv6/sys/dev/mfi/mfi.c
  user/hrs/ipv6/sys/dev/mfi/mfi_cam.c
  user/hrs/ipv6/sys/dev/mfi/mfi_debug.c
  user/hrs/ipv6/sys/dev/mfi/mfi_disk.c
  user/hrs/ipv6/sys/dev/mfi/mfi_tbolt.c
  user/hrs/ipv6/sys/dev/mfi/mfireg.h
  user/hrs/ipv6/sys/dev/mfi/mfivar.h
  user/hrs/ipv6/sys/dev/mmc/mmc.c
  user/hrs/ipv6/sys/dev/mmc/mmcbrvar.h
  user/hrs/ipv6/sys/dev/mmc/mmcreg.h
  user/hrs/ipv6/sys/dev/mmc/mmcsd.c
  user/hrs/ipv6/sys/dev/mmc/mmcvar.h
  user/hrs/ipv6/sys/dev/msk/if_msk.c
  user/hrs/ipv6/sys/dev/mvs/mvs.c
  user/hrs/ipv6/sys/dev/netmap/netmap.c
  user/hrs/ipv6/sys/dev/nxge/if_nxge.c
  user/hrs/ipv6/sys/dev/powermac_nvram/powermac_nvram.c
  user/hrs/ipv6/sys/dev/qlxgb/qla_os.c
  user/hrs/ipv6/sys/dev/ral/if_ral_pci.c
  user/hrs/ipv6/sys/dev/re/if_re.c
  user/hrs/ipv6/sys/dev/sf/if_sf.c
  user/hrs/ipv6/sys/dev/siis/siis.c
  user/hrs/ipv6/sys/dev/sound/pcm/sndstat.c
  user/hrs/ipv6/sys/dev/tsec/if_tsec.c
  user/hrs/ipv6/sys/dev/usb/controller/ehci.c
  user/hrs/ipv6/sys/dev/usb/controller/xhci.c
  user/hrs/ipv6/sys/dev/usb/input/uhid.c
  user/hrs/ipv6/sys/dev/usb/input/ums.c
  user/hrs/ipv6/sys/dev/usb/net/if_rue.c
  user/hrs/ipv6/sys/dev/usb/serial/u3g.c
  user/hrs/ipv6/sys/dev/usb/usb_controller.h
  user/hrs/ipv6/sys/dev/usb/usb_hid.c
  user/hrs/ipv6/sys/dev/usb/usb_hub.c
  user/hrs/ipv6/sys/dev/usb/usb_hub.h
  user/hrs/ipv6/sys/dev/usb/usb_transfer.c
  user/hrs/ipv6/sys/dev/usb/usbdevs
  user/hrs/ipv6/sys/dev/vr/if_vr.c
  user/hrs/ipv6/sys/dev/vr/if_vrreg.h
  user/hrs/ipv6/sys/dev/xl/if_xl.c
  user/hrs/ipv6/sys/fs/cd9660/cd9660_node.c
  user/hrs/ipv6/sys/fs/ext2fs/ext2_inode.c
  user/hrs/ipv6/sys/fs/ext2fs/ext2_lookup.c
  user/hrs/ipv6/sys/fs/ext2fs/ext2_vfsops.c
  user/hrs/ipv6/sys/fs/ext2fs/ext2_vnops.c
  user/hrs/ipv6/sys/fs/hpfs/hpfs_vnops.c
  user/hrs/ipv6/sys/fs/msdosfs/denode.h
  user/hrs/ipv6/sys/fs/msdosfs/msdosfs_denode.c
  user/hrs/ipv6/sys/fs/msdosfs/msdosfs_lookup.c
  user/hrs/ipv6/sys/fs/msdosfs/msdosfs_vfsops.c
  user/hrs/ipv6/sys/fs/msdosfs/msdosfs_vnops.c
  user/hrs/ipv6/sys/fs/nfs/nfs_commonacl.c
  user/hrs/ipv6/sys/fs/nfsclient/nfs_clbio.c
  user/hrs/ipv6/sys/fs/nfsclient/nfs_clnode.c
  user/hrs/ipv6/sys/fs/nfsclient/nfs_clvnops.c
  user/hrs/ipv6/sys/fs/nfsclient/nfsnode.h
  user/hrs/ipv6/sys/fs/nfsserver/nfs_nfsdport.c
  user/hrs/ipv6/sys/fs/nfsserver/nfs_nfsdstate.c
  user/hrs/ipv6/sys/fs/nullfs/null_vnops.c
  user/hrs/ipv6/sys/fs/smbfs/smbfs_node.c
  user/hrs/ipv6/sys/fs/tmpfs/tmpfs_vnops.c
  user/hrs/ipv6/sys/fs/unionfs/union_subr.c
  user/hrs/ipv6/sys/fs/unionfs/union_vfsops.c
  user/hrs/ipv6/sys/fs/unionfs/union_vnops.c
  user/hrs/ipv6/sys/geom/eli/g_eli_integrity.c
  user/hrs/ipv6/sys/geom/mirror/g_mirror.c
  user/hrs/ipv6/sys/geom/mirror/g_mirror.h
  user/hrs/ipv6/sys/geom/mirror/g_mirror_ctl.c
  user/hrs/ipv6/sys/geom/multipath/g_multipath.c
  user/hrs/ipv6/sys/geom/raid/g_raid.c
  user/hrs/ipv6/sys/geom/raid/g_raid.h
  user/hrs/ipv6/sys/geom/raid/g_raid_ctl.c
  user/hrs/ipv6/sys/geom/raid/g_raid_md_if.m
  user/hrs/ipv6/sys/geom/raid/md_intel.c
  user/hrs/ipv6/sys/geom/raid/md_jmicron.c
  user/hrs/ipv6/sys/geom/raid/md_nvidia.c
  user/hrs/ipv6/sys/geom/raid/md_promise.c
  user/hrs/ipv6/sys/geom/raid/md_sii.c
  user/hrs/ipv6/sys/geom/raid/tr_raid1.c
  user/hrs/ipv6/sys/geom/raid/tr_raid1e.c
  user/hrs/ipv6/sys/gnu/fs/reiserfs/reiserfs_inode.c
  user/hrs/ipv6/sys/i386/acpica/acpi_machdep.c
  user/hrs/ipv6/sys/i386/acpica/acpi_wakecode.S
  user/hrs/ipv6/sys/i386/acpica/acpi_wakeup.c
  user/hrs/ipv6/sys/i386/conf/GENERIC
  user/hrs/ipv6/sys/i386/i386/apic_vector.s
  user/hrs/ipv6/sys/i386/i386/genassym.c
  user/hrs/ipv6/sys/i386/i386/initcpu.c
  user/hrs/ipv6/sys/i386/i386/machdep.c
  user/hrs/ipv6/sys/i386/i386/mp_machdep.c
  user/hrs/ipv6/sys/i386/i386/swtch.s
  user/hrs/ipv6/sys/i386/include/apicvar.h
  user/hrs/ipv6/sys/i386/include/bootinfo.h
  user/hrs/ipv6/sys/i386/include/intr_machdep.h
  user/hrs/ipv6/sys/i386/include/md_var.h
  user/hrs/ipv6/sys/i386/include/pcb.h
  user/hrs/ipv6/sys/i386/include/smp.h
  user/hrs/ipv6/sys/i386/linux/linux.h
  user/hrs/ipv6/sys/i386/linux/linux_dummy.c
  user/hrs/ipv6/sys/ia64/ia64/nexus.c
  user/hrs/ipv6/sys/ia64/include/pcb.h
  user/hrs/ipv6/sys/kern/kern_acct.c
  user/hrs/ipv6/sys/kern/kern_clock.c
  user/hrs/ipv6/sys/kern/kern_condvar.c
  user/hrs/ipv6/sys/kern/kern_ktrace.c
  user/hrs/ipv6/sys/kern/kern_proc.c
  user/hrs/ipv6/sys/kern/kern_synch.c
  user/hrs/ipv6/sys/kern/kern_thread.c
  user/hrs/ipv6/sys/kern/kern_timeout.c
  user/hrs/ipv6/sys/kern/sched_4bsd.c
  user/hrs/ipv6/sys/kern/sched_ule.c
  user/hrs/ipv6/sys/kern/subr_sleepqueue.c
  user/hrs/ipv6/sys/kern/subr_smp.c
  user/hrs/ipv6/sys/kern/subr_trap.c
  user/hrs/ipv6/sys/kern/subr_turnstile.c
  user/hrs/ipv6/sys/kern/uipc_mqueue.c
  user/hrs/ipv6/sys/kern/vfs_bio.c
  user/hrs/ipv6/sys/kern/vfs_default.c
  user/hrs/ipv6/sys/kern/vfs_mount.c
  user/hrs/ipv6/sys/kern/vfs_subr.c
  user/hrs/ipv6/sys/kern/vfs_syscalls.c
  user/hrs/ipv6/sys/mips/atheros/ar71xx_chip.c
  user/hrs/ipv6/sys/mips/atheros/ar71xx_chip.h
  user/hrs/ipv6/sys/mips/atheros/ar71xx_cpudef.h
  user/hrs/ipv6/sys/mips/atheros/ar71xx_gpio.c
  user/hrs/ipv6/sys/mips/atheros/ar71xx_pci.c
  user/hrs/ipv6/sys/mips/atheros/ar71xxreg.h
  user/hrs/ipv6/sys/mips/atheros/ar724x_chip.c
  user/hrs/ipv6/sys/mips/atheros/ar724x_pci.c
  user/hrs/ipv6/sys/mips/atheros/ar91xx_chip.c
  user/hrs/ipv6/sys/mips/atheros/files.ar71xx
  user/hrs/ipv6/sys/mips/atheros/if_arge.c
  user/hrs/ipv6/sys/mips/atheros/if_argevar.h
  user/hrs/ipv6/sys/mips/conf/AP96
  user/hrs/ipv6/sys/mips/conf/AP96.hints
  user/hrs/ipv6/sys/mips/conf/RSPRO
  user/hrs/ipv6/sys/mips/conf/RSPRO.hints
  user/hrs/ipv6/sys/mips/conf/TP-WN1043ND
  user/hrs/ipv6/sys/mips/conf/TP-WN1043ND.hints
  user/hrs/ipv6/sys/mips/include/pcb.h
  user/hrs/ipv6/sys/mips/mips/bus_space_generic.c
  user/hrs/ipv6/sys/mips/mips/nexus.c
  user/hrs/ipv6/sys/modules/Makefile
  user/hrs/ipv6/sys/modules/ath/Makefile
  user/hrs/ipv6/sys/modules/geom/geom_raid/Makefile
  user/hrs/ipv6/sys/modules/iscsi/initiator/Makefile
  user/hrs/ipv6/sys/modules/linux/Makefile
  user/hrs/ipv6/sys/modules/mmcsd/Makefile
  user/hrs/ipv6/sys/modules/mwl/Makefile
  user/hrs/ipv6/sys/modules/ral/Makefile
  user/hrs/ipv6/sys/modules/uart/Makefile
  user/hrs/ipv6/sys/net/bpf.h
  user/hrs/ipv6/sys/net/bridgestp.c
  user/hrs/ipv6/sys/net/bridgestp.h
  user/hrs/ipv6/sys/net/if.c
  user/hrs/ipv6/sys/net/if_bridge.c
  user/hrs/ipv6/sys/net/if_dl.h
  user/hrs/ipv6/sys/net/if_lagg.c
  user/hrs/ipv6/sys/net/rtsock.c
  user/hrs/ipv6/sys/net80211/ieee80211.h
  user/hrs/ipv6/sys/net80211/ieee80211_action.c
  user/hrs/ipv6/sys/net80211/ieee80211_ddb.c
  user/hrs/ipv6/sys/net80211/ieee80211_hwmp.c
  user/hrs/ipv6/sys/net80211/ieee80211_input.c
  user/hrs/ipv6/sys/net80211/ieee80211_ioctl.h
  user/hrs/ipv6/sys/net80211/ieee80211_mesh.c
  user/hrs/ipv6/sys/net80211/ieee80211_mesh.h
  user/hrs/ipv6/sys/net80211/ieee80211_output.c
  user/hrs/ipv6/sys/netgraph/ng_patch.c
  user/hrs/ipv6/sys/netinet/ip.h
  user/hrs/ipv6/sys/netinet/libalias/alias_sctp.h
  user/hrs/ipv6/sys/netinet/libalias/libalias.3
  user/hrs/ipv6/sys/netinet/sctp.h
  user/hrs/ipv6/sys/netinet/sctp_asconf.c
  user/hrs/ipv6/sys/netinet/sctp_auth.c
  user/hrs/ipv6/sys/netinet/sctp_bsd_addr.c
  user/hrs/ipv6/sys/netinet/sctp_cc_functions.c
  user/hrs/ipv6/sys/netinet/sctp_constants.h
  user/hrs/ipv6/sys/netinet/sctp_crc32.c
  user/hrs/ipv6/sys/netinet/sctp_header.h
  user/hrs/ipv6/sys/netinet/sctp_indata.c
  user/hrs/ipv6/sys/netinet/sctp_input.c
  user/hrs/ipv6/sys/netinet/sctp_os_bsd.h
  user/hrs/ipv6/sys/netinet/sctp_output.c
  user/hrs/ipv6/sys/netinet/sctp_pcb.c
  user/hrs/ipv6/sys/netinet/sctp_sysctl.h
  user/hrs/ipv6/sys/netinet/sctp_timer.c
  user/hrs/ipv6/sys/netinet/sctp_uio.h
  user/hrs/ipv6/sys/netinet/sctp_usrreq.c
  user/hrs/ipv6/sys/netinet/sctp_var.h
  user/hrs/ipv6/sys/netinet/sctputil.c
  user/hrs/ipv6/sys/netinet/sctputil.h
  user/hrs/ipv6/sys/netinet/tcp_lro.c
  user/hrs/ipv6/sys/netinet/tcp_lro.h
  user/hrs/ipv6/sys/netinet6/nd6.c
  user/hrs/ipv6/sys/netinet6/sctp6_usrreq.c
  user/hrs/ipv6/sys/nfsclient/nfs_bio.c
  user/hrs/ipv6/sys/nfsclient/nfs_node.c
  user/hrs/ipv6/sys/nfsclient/nfs_subs.c
  user/hrs/ipv6/sys/nfsclient/nfs_vfsops.c
  user/hrs/ipv6/sys/nfsclient/nfs_vnops.c
  user/hrs/ipv6/sys/nfsclient/nfsnode.h
  user/hrs/ipv6/sys/ofed/drivers/net/mlx4/en_netdev.c
  user/hrs/ipv6/sys/pc98/pc98/machdep.c
  user/hrs/ipv6/sys/powerpc/aim/mmu_oea.c
  user/hrs/ipv6/sys/powerpc/aim/mmu_oea64.c
  user/hrs/ipv6/sys/powerpc/aim/moea64_native.c
  user/hrs/ipv6/sys/powerpc/aim/slb.c
  user/hrs/ipv6/sys/powerpc/aim/swtch32.S
  user/hrs/ipv6/sys/powerpc/aim/swtch64.S
  user/hrs/ipv6/sys/powerpc/include/atomic.h
  user/hrs/ipv6/sys/powerpc/include/cpu.h
  user/hrs/ipv6/sys/powerpc/include/cpufunc.h
  user/hrs/ipv6/sys/powerpc/include/pio.h
  user/hrs/ipv6/sys/powerpc/include/pmap.h
  user/hrs/ipv6/sys/powerpc/include/profile.h
  user/hrs/ipv6/sys/powerpc/include/ucontext.h
  user/hrs/ipv6/sys/powerpc/mpc85xx/mpc85xx.c
  user/hrs/ipv6/sys/powerpc/powerpc/bus_machdep.c
  user/hrs/ipv6/sys/powerpc/powerpc/pmap_dispatch.c
  user/hrs/ipv6/sys/security/mac_mls/mac_mls.c
  user/hrs/ipv6/sys/sparc64/include/intr_machdep.h
  user/hrs/ipv6/sys/sparc64/include/pcb.h
  user/hrs/ipv6/sys/sparc64/sparc64/intr_machdep.c
  user/hrs/ipv6/sys/sparc64/sparc64/machdep.c
  user/hrs/ipv6/sys/sys/callout.h
  user/hrs/ipv6/sys/sys/cdefs.h
  user/hrs/ipv6/sys/sys/elf_common.h
  user/hrs/ipv6/sys/sys/ktrace.h
  user/hrs/ipv6/sys/sys/mount.h
  user/hrs/ipv6/sys/sys/param.h
  user/hrs/ipv6/sys/sys/proc.h
  user/hrs/ipv6/sys/sys/sdt.h
  user/hrs/ipv6/sys/sys/smp.h
  user/hrs/ipv6/sys/sys/systm.h
  user/hrs/ipv6/sys/sys/ucontext.h
  user/hrs/ipv6/sys/sys/vnode.h
  user/hrs/ipv6/sys/ufs/ffs/ffs_extern.h
  user/hrs/ipv6/sys/ufs/ffs/ffs_inode.c
  user/hrs/ipv6/sys/ufs/ffs/ffs_snapshot.c
  user/hrs/ipv6/sys/ufs/ffs/ffs_softdep.c
  user/hrs/ipv6/sys/ufs/ffs/ffs_vfsops.c
  user/hrs/ipv6/sys/ufs/ffs/ffs_vnops.c
  user/hrs/ipv6/sys/ufs/ufs/quota.h
  user/hrs/ipv6/sys/ufs/ufs/ufs_extattr.c
  user/hrs/ipv6/sys/ufs/ufs/ufs_inode.c
  user/hrs/ipv6/sys/ufs/ufs/ufs_lookup.c
  user/hrs/ipv6/sys/ufs/ufs/ufs_quota.c
  user/hrs/ipv6/sys/ufs/ufs/ufs_vnops.c
  user/hrs/ipv6/sys/ufs/ufs/ufsmount.h
  user/hrs/ipv6/sys/vm/device_pager.c
  user/hrs/ipv6/sys/vm/vm.h
  user/hrs/ipv6/sys/vm/vm_fault.c
  user/hrs/ipv6/sys/vm/vm_map.c
  user/hrs/ipv6/sys/vm/vm_map.h
  user/hrs/ipv6/sys/vm/vm_mmap.c
  user/hrs/ipv6/sys/vm/vm_page.c
  user/hrs/ipv6/sys/vm/vm_page.h
  user/hrs/ipv6/sys/vm/vm_pageout.c
  user/hrs/ipv6/sys/vm/vm_pager.c
  user/hrs/ipv6/sys/vm/vm_pager.h
  user/hrs/ipv6/sys/vm/vm_phys.c
  user/hrs/ipv6/sys/vm/vm_phys.h
  user/hrs/ipv6/sys/x86/include/ptrace.h
  user/hrs/ipv6/sys/x86/x86/intr_machdep.c
  user/hrs/ipv6/tools/build/mk/OptionalObsoleteFiles.inc
  user/hrs/ipv6/tools/build/options/WITHOUT_BINUTILS
  user/hrs/ipv6/tools/build/options/WITHOUT_ZONEINFO
  user/hrs/ipv6/tools/build/options/WITH_CLANG_IS_CC
  user/hrs/ipv6/tools/regression/usr.bin/m4/Makefile
  user/hrs/ipv6/tools/regression/usr.bin/m4/regress.sh
  user/hrs/ipv6/tools/tools/ath/Makefile
  user/hrs/ipv6/tools/tools/netmap/README
  user/hrs/ipv6/tools/tools/netmap/pcap.c
  user/hrs/ipv6/tools/tools/netmap/pkt-gen.c
  user/hrs/ipv6/tools/tools/netrate/netsend/netsend.c
  user/hrs/ipv6/tools/tools/zfsboottest/zfsboottest.c
  user/hrs/ipv6/tools/tools/zfsboottest/zfsboottest.sh
  user/hrs/ipv6/usr.bin/Makefile
  user/hrs/ipv6/usr.bin/ar/Makefile
  user/hrs/ipv6/usr.bin/calendar/calendar.1
  user/hrs/ipv6/usr.bin/calendar/calendars/calendar.freebsd
  user/hrs/ipv6/usr.bin/clang/clang/Makefile
  user/hrs/ipv6/usr.bin/clang/clang/clang.1
  user/hrs/ipv6/usr.bin/clang/tblgen/tblgen.1
  user/hrs/ipv6/usr.bin/csup/csup.1
  user/hrs/ipv6/usr.bin/dc/dc.1
  user/hrs/ipv6/usr.bin/fetch/fetch.1
  user/hrs/ipv6/usr.bin/file/Makefile
  user/hrs/ipv6/usr.bin/fstat/Makefile
  user/hrs/ipv6/usr.bin/fstat/fstat.c
  user/hrs/ipv6/usr.bin/gprof/gprof.1
  user/hrs/ipv6/usr.bin/ipcrm/ipcrm.1
  user/hrs/ipv6/usr.bin/kdump/kdump.1
  user/hrs/ipv6/usr.bin/kdump/kdump.c
  user/hrs/ipv6/usr.bin/lastcomm/lastcomm.1
  user/hrs/ipv6/usr.bin/lastcomm/lastcomm.c
  user/hrs/ipv6/usr.bin/limits/limits.1
  user/hrs/ipv6/usr.bin/m4/parser.y
  user/hrs/ipv6/usr.bin/make/Makefile
  user/hrs/ipv6/usr.bin/make/make.1
  user/hrs/ipv6/usr.bin/mklocale/mklocale.1
  user/hrs/ipv6/usr.bin/ncplogin/ncplogout.1
  user/hrs/ipv6/usr.bin/procstat/Makefile
  user/hrs/ipv6/usr.bin/rctl/rctl.8
  user/hrs/ipv6/usr.bin/stat/stat.1
  user/hrs/ipv6/usr.bin/tftp/tftp.1
  user/hrs/ipv6/usr.bin/unzip/unzip.1
  user/hrs/ipv6/usr.bin/usbhidctl/usbhid.c
  user/hrs/ipv6/usr.bin/usbhidctl/usbhidctl.1
  user/hrs/ipv6/usr.bin/who/who.1
  user/hrs/ipv6/usr.bin/whois/whois.1
  user/hrs/ipv6/usr.sbin/Makefile
  user/hrs/ipv6/usr.sbin/acpi/iasl/Makefile
  user/hrs/ipv6/usr.sbin/bsdinstall/scripts/mirrorselect
  user/hrs/ipv6/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3
  user/hrs/ipv6/usr.sbin/bsnmpd/modules/snmp_wlan/snmp_wlan.3
  user/hrs/ipv6/usr.sbin/cpucontrol/cpucontrol.c
  user/hrs/ipv6/usr.sbin/cron/crontab/crontab.5
  user/hrs/ipv6/usr.sbin/jail/Makefile
  user/hrs/ipv6/usr.sbin/jail/jail.8
  user/hrs/ipv6/usr.sbin/jail/jail.c
  user/hrs/ipv6/usr.sbin/lpr/common_source/common.c
  user/hrs/ipv6/usr.sbin/lpr/lpc/cmds.c
  user/hrs/ipv6/usr.sbin/mfiutil/mfi_show.c
  user/hrs/ipv6/usr.sbin/newsyslog/newsyslog.c
  user/hrs/ipv6/usr.sbin/nfsd/nfsv4.4
  user/hrs/ipv6/usr.sbin/ntp/doc/ntp.conf.5
  user/hrs/ipv6/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh
  user/hrs/ipv6/usr.sbin/pc-sysinstall/backend/functions-disk.sh
  user/hrs/ipv6/usr.sbin/pc-sysinstall/backend/functions-networking.sh
  user/hrs/ipv6/usr.sbin/pc-sysinstall/backend/functions-newfs.sh
  user/hrs/ipv6/usr.sbin/pc-sysinstall/backend/functions-parse.sh
  user/hrs/ipv6/usr.sbin/pc-sysinstall/backend/functions.sh
  user/hrs/ipv6/usr.sbin/pkg/pkg.c
  user/hrs/ipv6/usr.sbin/pkg_install/lib/plist.c
  user/hrs/ipv6/usr.sbin/pkg_install/updating/pkg_updating.1
  user/hrs/ipv6/usr.sbin/portsnap/portsnap/portsnap.sh
  user/hrs/ipv6/usr.sbin/rtprio/rtprio.c
  user/hrs/ipv6/usr.sbin/tcpdump/tcpdump/Makefile
  user/hrs/ipv6/usr.sbin/tcpdump/tcpdump/config.h
  user/hrs/ipv6/usr.sbin/tcpdump/tcpdump/tcpdump.1
  user/hrs/ipv6/usr.sbin/traceroute6/traceroute6.c
  user/hrs/ipv6/usr.sbin/usbdump/usbdump.8
  user/hrs/ipv6/usr.sbin/usbdump/usbdump.c
  user/hrs/ipv6/usr.sbin/wpa/Makefile.inc
  user/hrs/ipv6/usr.sbin/wpa/hostapd/Makefile
  user/hrs/ipv6/usr.sbin/wpa/hostapd/hostapd.conf.5
  user/hrs/ipv6/usr.sbin/wpa/wpa_supplicant/Makefile
  user/hrs/ipv6/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5
Directory Properties:
  user/hrs/ipv6/   (props changed)
  user/hrs/ipv6/cddl/contrib/opensolaris/   (props changed)
  user/hrs/ipv6/contrib/binutils/   (props changed)
  user/hrs/ipv6/contrib/compiler-rt/   (props changed)
  user/hrs/ipv6/contrib/file/   (props changed)
  user/hrs/ipv6/contrib/gcc/   (props changed)
  user/hrs/ipv6/contrib/libc++/   (props changed)
  user/hrs/ipv6/contrib/libpcap/   (props changed)
  user/hrs/ipv6/contrib/llvm/   (props changed)
  user/hrs/ipv6/contrib/llvm/tools/clang/   (props changed)
  user/hrs/ipv6/contrib/netcat/   (props changed)
  user/hrs/ipv6/contrib/openpam/   (props changed)
  user/hrs/ipv6/contrib/tcpdump/   (props changed)
  user/hrs/ipv6/crypto/openssl/   (props changed)
  user/hrs/ipv6/gnu/lib/   (props changed)
  user/hrs/ipv6/gnu/usr.bin/binutils/   (props changed)
  user/hrs/ipv6/gnu/usr.bin/gdb/   (props changed)
  user/hrs/ipv6/lib/libc/   (props changed)
  user/hrs/ipv6/lib/libutil/   (props changed)
  user/hrs/ipv6/sbin/   (props changed)
  user/hrs/ipv6/sbin/ipfw/   (props changed)
  user/hrs/ipv6/share/man/man4/   (props changed)
  user/hrs/ipv6/sys/   (props changed)
  user/hrs/ipv6/sys/boot/   (props changed)
  user/hrs/ipv6/sys/boot/i386/efi/   (props changed)
  user/hrs/ipv6/sys/cddl/contrib/opensolaris/   (props changed)
  user/hrs/ipv6/sys/conf/   (props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/   (props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/compiler/   (props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/components/debugger/   (props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/components/events/   (props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/components/executer/   (props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/components/hardware/   (props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/components/utilities/   (props changed)
  user/hrs/ipv6/sys/contrib/dev/acpica/include/   (props changed)
  user/hrs/ipv6/sys/contrib/pf/   (props changed)
  user/hrs/ipv6/usr.bin/calendar/   (props changed)
  user/hrs/ipv6/usr.bin/csup/   (props changed)
  user/hrs/ipv6/usr.bin/procstat/   (props changed)
  user/hrs/ipv6/usr.sbin/jail/   (props changed)

Modified: user/hrs/ipv6/Makefile.inc1
==============================================================================
--- user/hrs/ipv6/Makefile.inc1	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/Makefile.inc1	Sun May 20 21:05:51 2012	(r235699)
@@ -223,9 +223,6 @@ CROSSENV=	MAKEOBJDIRPREFIX=${OBJTREE} \
 		MACHINE_ARCH=${TARGET_ARCH} \
 		MACHINE=${TARGET} \
 		CPUTYPE=${TARGET_CPUTYPE}
-.if ${OSRELDATE} < 700044
-CROSSENV+=	AR=gnu-ar RANLIB=gnu-ranlib
-.endif
 .if ${MK_GROFF} != "no"
 CROSSENV+=	GROFF_BIN_PATH=${WORLDTMP}/legacy/usr/bin \
 		GROFF_FONT_PATH=${WORLDTMP}/legacy/usr/share/groff_font \
@@ -265,6 +262,7 @@ XMAKE=		TOOLS_PREFIX=${WORLDTMP} ${BMAKE
 # world stage
 WMAKEENV=	${CROSSENV} \
 		_SHLIBDIRPREFIX=${WORLDTMP} \
+		_LDSCRIPTROOT= \
 		VERSION="${VERSION}" \
 		INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		PATH=${TMPPATH}
@@ -307,6 +305,7 @@ LIB32FLAGS=	-m32 ${LIB32CPUFLAGS} -DCOMP
 # Yes, the flags are redundant.
 LIB32WMAKEENV+=	MAKEOBJDIRPREFIX=${OBJTREE}/lib32 \
 		_SHLIBDIRPREFIX=${LIB32TMP} \
+		_LDSCRIPTROOT=${LIB32TMP} \
 		VERSION="${VERSION}" \
 		INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		PATH=${TMPPATH} \
@@ -319,11 +318,11 @@ LIB32WMAKE=	${LIB32WMAKEENV} ${MAKE} -DN
 		-DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO \
 		-DWITHOUT_HTML -DNO_CTF -DNO_LINT -ECC -ECXX -EAS -ELD \
 		DESTDIR=${LIB32TMP}
-LIB32IMAKE=	${LIB32WMAKE:NINSTALL=*:NDESTDIR=*} -DNO_INCS
+LIB32IMAKE=	${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS
 .endif
 
 # install stage
-IMAKEENV=	${CROSSENV}
+IMAKEENV=	${CROSSENV:N_LDSCRIPTROOT=*}
 IMAKE=		${IMAKEENV} ${MAKE} -f Makefile.inc1
 .if empty(.MAKEFLAGS:M-n)
 IMAKEENV+=	PATH=${STRICTTMPPATH}:${INSTALLTMP} \
@@ -979,8 +978,8 @@ update:
 # legacy: Build compatibility shims for the next three targets
 #
 legacy:
-.if ${BOOTSTRAPPING} < 600034 && ${BOOTSTRAPPING} != 0
-	@echo "ERROR: Source upgrades from versions prior to 6.0 not supported."; \
+.if ${BOOTSTRAPPING} < 700055 && ${BOOTSTRAPPING} != 0
+	@echo "ERROR: Source upgrades from versions prior to 7.0 not supported."; \
 	false
 .endif
 .for _tool in tools/build
@@ -1008,7 +1007,7 @@ _gperf=		gnu/usr.bin/gperf
 _groff=		gnu/usr.bin/groff
 .endif
 
-.if ${BOOTSTRAPPING} >= 700044 && ${BOOTSTRAPPING} < 800022
+.if ${BOOTSTRAPPING} < 800022
 _ar=		usr.bin/ar
 .endif
 
@@ -1029,16 +1028,10 @@ _yacc=		usr.bin/yacc
 _awk=		usr.bin/awk
 .endif
 
-.if ${MK_BSNMP} != "no" && \
-    (${BOOTSTRAPPING} < 700018 || !exists(/usr/sbin/gensnmptree))
+.if ${MK_BSNMP} != "no" && !exists(/usr/sbin/gensnmptree)
 _gensnmptree=	usr.sbin/bsnmpd/gensnmptree
 .endif
 
-.if ${MK_RESCUE} != "no" && \
-    ${BOOTSTRAPPING} < 700026
-_crunchgen=	usr.sbin/crunch/crunchgen
-.endif
-
 .if ${MK_CLANG} != "no"
 _clang_tblgen= \
 	lib/clang/libllvmsupport \
@@ -1092,8 +1085,7 @@ bootstrap-tools:
     ${_yacc} \
     usr.bin/xinstall \
     ${_gensnmptree} \
-    usr.sbin/config \
-    ${_crunchgen}
+    usr.sbin/config
 	${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
 		cd ${.CURDIR}/${_tool}; \
 		${MAKE} DIRPRFX=${_tool}/ obj; \
@@ -1649,8 +1641,8 @@ _xi-mtree:
 	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
 	    -p ${XDDESTDIR}/usr/include >/dev/null
 
-.ORDER: _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _xi-links
-xdev-install: _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _xi-links
+.ORDER: xdev-build _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _xi-links
+xdev-install: xdev-build _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _xi-links
 
 _xi-cross-tools:
 	@echo "_xi-cross-tools"

Modified: user/hrs/ipv6/ObsoleteFiles.inc
==============================================================================
--- user/hrs/ipv6/ObsoleteFiles.inc	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/ObsoleteFiles.inc	Sun May 20 21:05:51 2012	(r235699)
@@ -38,6 +38,22 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20120505: new clang import installed a redundant internal header
+OLD_FILES+=usr/include/clang/3.1/stdalign.h
+# 20120428: MD2 removed from libmd
+OLD_FILES+=usr/include/md2.h
+OLD_FILES+=usr/share/man/man3/MD2Data.3.gz
+OLD_FILES+=usr/share/man/man3/MD2End.3.gz
+OLD_FILES+=usr/share/man/man3/MD2File.3.gz
+OLD_FILES+=usr/share/man/man3/MD2FileChunk.3.gz
+OLD_FILES+=usr/share/man/man3/MD2Final.3.gz
+OLD_FILES+=usr/share/man/man3/MD2Init.3.gz
+OLD_FILES+=usr/share/man/man3/MD2Update.3.gz
+OLD_FILES+=usr/share/man/man3/md2.3.gz
+# 20120425: libusb version bump (r234684)
+OLD_LIBS+=usr/lib/libusb.so.2
+OLD_LIBS+=usr/lib32/libusb.so.2
+OLD_FILES+=usr/share/man/man3/libsub_get_active_config_descriptor.3.gz
 # 20120415: new clang import which bumps version from 3.0 to 3.1
 OLD_FILES+=usr/include/clang/3.0/altivec.h
 OLD_FILES+=usr/include/clang/3.0/avxintrin.h
@@ -54,6 +70,17 @@ OLD_FILES+=usr/include/clang/3.0/wmmintr
 OLD_FILES+=usr/include/clang/3.0/x86intrin.h
 OLD_FILES+=usr/include/clang/3.0/xmmintrin.h
 OLD_DIRS+=usr/include/clang/3.0
+# 20120412: BIND 9.8.1 release notes removed
+OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.pdf
+OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.txt
+OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.html
+OLD_FILES+=usr/share/doc/bind9/release-notes.css
+# 20120330: legacy(4) moved to x86
+OLD_FILES+=usr/include/machine/legacyvar.h
+# 20120324: MPI headers updated
+OLD_FILES+=usr/include/dev/mpt/mpilib/mpi_inb.h
+# 20120322: hwpmc_mips24k.h removed
+OLD_FILES+=usr/include/dev/hwpmc/hwpmc_mips24k.h
 # 20120322: Update heimdal to 1.5.1.
 OLD_FILES+=usr/include/krb5-v4compat.h \
 	usr/include/krb_err.h \
@@ -98,6 +125,8 @@ OLD_LIBS+=usr/lib/libasn1.so.10 \
 # 20120309: Remove fifofs header files.
 OLD_FILES+=usr/include/fs/fifofs/fifo.h
 OLD_DIRS+=usr/include/fs/fifofs
+# 20120304: xlocale cleanup
+OLD_FILES+=usr/include/_xlocale_ctype.h
 # 20120225: libarchive 3.0.3
 OLD_FILES+=usr/share/man/man3/archive_read_data_into_buffer.3.gz \
 	usr/share/man/man3/archive_read_support_compression_all.3.gz \
@@ -459,7 +488,7 @@ OLD_FILES+=usr/share/man/man5/lastlog.5.
 OLD_FILES+=usr/share/man/man5/utmp.5.gz
 OLD_FILES+=usr/share/man/man5/wtmp.5.gz
 OLD_LIBS+=lib/libutil.so.8
-OLB_LIBS+=usr/lib32/libutil.so.8
+OLD_LIBS+=usr/lib32/libutil.so.8
 # 20100105: new userland semaphore implementation
 OLD_FILES+=usr/include/sys/semaphore.h
 # 20100103: ntptrace(8) removed
@@ -579,6 +608,7 @@ OLD_LIBS+=lib/libipx.so.4
 OLD_LIBS+=lib/libkiconv.so.3
 OLD_LIBS+=lib/libkvm.so.4
 OLD_LIBS+=lib/libmd.so.4
+OLD_LIBS+=lib/libmd.so.5
 OLD_LIBS+=lib/libncurses.so.7
 OLD_LIBS+=lib/libncursesw.so.7
 OLD_LIBS+=lib/libnvpair.so.1

Modified: user/hrs/ipv6/bin/ed/Makefile
==============================================================================
--- user/hrs/ipv6/bin/ed/Makefile	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/ed/Makefile	Sun May 20 21:05:51 2012	(r235699)
@@ -7,12 +7,12 @@ SRCS=	buf.c cbc.c glbl.c io.c main.c re.
 LINKS=	${BINDIR}/ed ${BINDIR}/red
 MLINKS=	ed.1 red.1
 
-.if !defined(RELEASE_CRUNCH)
-.if ${MK_OPENSSL} != "no"
+.if !defined(RELEASE_CRUNCH) && \
+	${MK_OPENSSL} != "no" && \
+	${MK_ED_CRYPTO} != "no"
 CFLAGS+=-DDES
 DPADD=	${LIBCRYPTO}
 LDADD=	-lcrypto
 .endif
-.endif
 
 .include <bsd.prog.mk>

Modified: user/hrs/ipv6/bin/expr/expr.1
==============================================================================
--- user/hrs/ipv6/bin/expr/expr.1	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/expr/expr.1	Sun May 20 21:05:51 2012	(r235699)
@@ -77,7 +77,7 @@ Operators with equal precedence are grou
 and
 .Ql } .
 .Bl -tag -width indent
-.It Ar expr1 Li | Ar expr2
+.It Ar expr1 Li \&| Ar expr2
 Return the evaluation of
 .Ar expr1
 if it is neither an empty string nor zero;

Modified: user/hrs/ipv6/bin/kenv/kenv.1
==============================================================================
--- user/hrs/ipv6/bin/kenv/kenv.1	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/kenv/kenv.1	Sun May 20 21:05:51 2012	(r235699)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 13, 2009
+.Dd May 11, 2012
 .Dt KENV 1
 .Os
 .Sh NAME
@@ -32,9 +32,9 @@
 .Nd dump or modify the kernel environment
 .Sh SYNOPSIS
 .Nm
-.Op Fl hq
+.Op Fl hNq
 .Nm
-.Op Fl q
+.Op Fl qv
 .Ar variable Ns Op = Ns Ar value
 .Nm
 .Op Fl q
@@ -54,6 +54,11 @@ name is specified,
 .Nm
 will only report that value.
 If the
+.Fl N
+option is specified,
+.Nm
+will only display variable names and not their values.
+If the
 .Fl u
 option is specified,
 .Nm
@@ -68,6 +73,13 @@ If the
 option is set, warnings normally printed as a result of being unable to
 perform the requested operation will be suppressed.
 .Pp
+If the
+.Fl v
+option is set, the variable name will be printed out for the
+environment variable in addition to the value when
+.Nm
+is executed with a variable name.
+.Pp
 Variables can be added to the kernel environment using the
 .Pa /boot/loader.conf
 file, or also statically compiled into the kernel using the statement

Modified: user/hrs/ipv6/bin/kenv/kenv.c
==============================================================================
--- user/hrs/ipv6/bin/kenv/kenv.c	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/kenv/kenv.c	Sun May 20 21:05:51 2012	(r235699)
@@ -42,15 +42,17 @@ static int	ksetenv(char *, char *);
 static int	kunsetenv(char *);
 
 static int hflag = 0;
+static int Nflag = 0;
 static int qflag = 0;
 static int uflag = 0;
+static int vflag = 0;
 
 static void
 usage(void)
 {
 	(void)fprintf(stderr, "%s\n%s\n%s\n",
-	    "usage: kenv [-hq]",
-	    "       kenv [-q] variable[=value]",
+	    "usage: kenv [-hNq]",
+	    "       kenv [-qv] variable[=value]",
 	    "       kenv [-q] -u variable");
 	exit(1);
 }
@@ -64,17 +66,23 @@ main(int argc, char **argv)
 	error = 0;
 	val = NULL;
 	env = NULL;
-	while ((ch = getopt(argc, argv, "hqu")) != -1) {
+	while ((ch = getopt(argc, argv, "hNquv")) != -1) {
 		switch (ch) {
 		case 'h':
 			hflag++;
 			break;
+		case 'N':
+			Nflag++;
+			break;
 		case 'q':
 			qflag++;
 			break;
 		case 'u':
 			uflag++;
 			break;
+		case 'v':
+			vflag++;
+			break;
 		default:
 			usage();
 		}
@@ -91,9 +99,9 @@ main(int argc, char **argv)
 		argv++;
 		argc--;
 	}
-	if (hflag && (env != NULL))
+	if ((hflag || Nflag) && env != NULL)
 		usage();
-	if ((argc > 0) || (uflag && (env == NULL)))
+	if (argc > 0 || ((uflag || vflag) && env == NULL))
 		usage();
 	if (env == NULL) {
 		error = kdumpenv();
@@ -152,7 +160,10 @@ kdumpenv(void)
 		if (cp == NULL)
 			continue;
 		*cp++ = '\0';
-		printf("%s=\"%s\"\n", buf, cp);
+		if (Nflag)
+			printf("%s\n", buf);
+		else
+			printf("%s=\"%s\"\n", buf, cp);
 		buf = cp;
 	}
 	return (0);
@@ -167,7 +178,10 @@ kgetenv(char *env)
 	ret = kenv(KENV_GET, env, buf, sizeof(buf));
 	if (ret == -1)
 		return (ret);
-	printf("%s\n", buf);
+	if (vflag)
+		printf("%s=\"%s\"\n", env, buf);
+	else
+		printf("%s\n", buf);
 	return (0);
 }
 

Modified: user/hrs/ipv6/bin/ls/Makefile
==============================================================================
--- user/hrs/ipv6/bin/ls/Makefile	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/ls/Makefile	Sun May 20 21:05:51 2012	(r235699)
@@ -1,12 +1,15 @@
 #	@(#)Makefile	8.1 (Berkeley) 6/2/93
 # $FreeBSD$
 
+.include <bsd.own.mk>
+
 PROG=	ls
 SRCS=	cmp.c ls.c print.c util.c
 DPADD=	${LIBUTIL}
 LDADD=	-lutil
 
-.if !defined(RELEASE_CRUNCH)
+.if !defined(RELEASE_CRUNCH) && \
+	${MK_LS_COLORS} != no
 CFLAGS+= -DCOLORLS
 DPADD+=	${LIBTERMCAP}
 LDADD+=	-ltermcap

Modified: user/hrs/ipv6/bin/rcp/rcp.c
==============================================================================
--- user/hrs/ipv6/bin/rcp/rcp.c	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/rcp/rcp.c	Sun May 20 21:05:51 2012	(r235699)
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <libutil.h>
 #include <limits.h>
 #include <netdb.h>
 #include <paths.h>

Modified: user/hrs/ipv6/bin/sh/miscbltin.c
==============================================================================
--- user/hrs/ipv6/bin/sh/miscbltin.c	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/sh/miscbltin.c	Sun May 20 21:05:51 2012	(r235699)
@@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$");
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <termios.h>
 
 #include "shell.h"
 #include "options.h"

Modified: user/hrs/ipv6/bin/sh/sh.1
==============================================================================
--- user/hrs/ipv6/bin/sh/sh.1	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/sh/sh.1	Sun May 20 21:05:51 2012	(r235699)
@@ -375,8 +375,8 @@ The following is a list of valid operato
 .Bl -tag -width indent
 .It Control operators:
 .Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact
-.It Li & Ta Li && Ta Li ( Ta Li ) Ta Li \en
-.It Li ;; Ta Li ;& Ta Li ; Ta Li | Ta Li ||
+.It Li & Ta Li && Ta Li \&( Ta Li \&) Ta Li \en
+.It Li ;; Ta Li ;& Ta Li \&; Ta Li \&| Ta Li ||
 .El
 .It Redirection operators:
 .Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact

Modified: user/hrs/ipv6/bin/test/test.1
==============================================================================
--- user/hrs/ipv6/bin/test/test.1	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/bin/test/test.1	Sun May 20 21:05:51 2012	(r235699)
@@ -43,7 +43,7 @@
 .Nm
 .Ar expression
 .Nm \&[
-.Ar expression Cm ]
+.Ar expression Cm \&]
 .Sh DESCRIPTION
 The
 .Nm

Modified: user/hrs/ipv6/cddl/compat/opensolaris/include/stdlib.h
==============================================================================
--- user/hrs/ipv6/cddl/compat/opensolaris/include/stdlib.h	Sun May 20 20:50:40 2012	(r235698)
+++ user/hrs/ipv6/cddl/compat/opensolaris/include/stdlib.h	Sun May 20 21:05:51 2012	(r235699)
@@ -27,11 +27,11 @@
  *
  */
 
+#include_next <stdlib.h>
+
 #ifndef _COMPAT_OPENSOLARIS_STDLIB_H_
 #define _COMPAT_OPENSOLARIS_STDLIB_H_
 
-#include_next <stdlib.h>
-
 #define getexecname	getprogname
 
 #endif

Copied: user/hrs/ipv6/cddl/contrib/dtracetoolkit/Guide (from r235693, head/cddl/contrib/dtracetoolkit/Guide)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/hrs/ipv6/cddl/contrib/dtracetoolkit/Guide	Sun May 20 21:05:51 2012	(r235699, copy of r235693, head/cddl/contrib/dtracetoolkit/Guide)
@@ -0,0 +1,91 @@
+Guide - Guide to the DTraceToolkit
+
+    How to get started, and a table of contents.
+
+QuickStart
+
+	1. The top most useful scripts are in this directory.
+	2. Try running them with "-h". Eg, "./execsnoop -h".
+	3. Read Docs/Contents for a full list of scripts.
+
+QuickStart-by-Screenshot
+
+	1. Look through the examples in the Examples directory until
+	   you see an output you like
+	2. Find the script and run it
+	3. Look for its man page in Man
+
+Not-so-QuickStart
+	
+	1. Welcome!
+	2. Check the Table of Contents below to become famaliar with the
+	   directory structure of the DTraceToolkit.
+	3. See Docs/Faq for any initial questions.
+	4. Read Docs/Contents for a list of scripts.
+	5. Read Docs/Readme to see where scripts are documented.
+	6. Check Docs/Links for further DTrace.
+	7. Once famaliar with the toolkit, the following may be useful to
+	   add to your shell initialisation file,
+		PATH=$PATH:/opt/DTT/Bin
+		MANPATH=$MANPATH:/opt/DTT/Man
+	   in this case assuming the toolkit was installed in /opt/DTT.
+
+Installation
+
+	1. Run ./install
+	   This will replace any existing version of the DTraceToolkit
+	   with this one. It will prompt. Final install location is
+	   printed by this install script.
+
+Table of Contents
+
+   DTraceToolkit-X.XX/
+	Bin/			Symlinks to all the scripts
+	Apps/			Application specific scripts
+	Cpu/			Scripts for CPU analysis
+	Code/			Example code to practise on
+	Disk/			Scripts for disk I/O analysis
+	Docs/			Documentation
+	   Contents		Command list for the Toolkit
+	   Faq			Frequently asked questions
+	   Links		Further DTrace links
+	   Readme		Readme for using the docs
+	Examples/		Examples of command usage
+	Guide			This file!
+	Include/		DTrace include files
+	Java/			Scripts for tracing Java
+	JavaScript/		Scripts for tracing JavaScript
+	Kernel/			Scripts for kernel analysis
+	License			The CDDL license
+	Locks/			Scripts for lock analysis
+	Man/			Man pages
+	   man1m/		Man pages for the Toolkit commands
+	Mem/			Scripts for memory analysis
+	Misc/			Misc scripts
+	Net/			Scripts for network analysis
+	Notes/			Notes on Toolkit commands
+	Perl/			Scripts for tracing Perl
+	Php/			Scripts for tracing Php
+	Proc/			Scripts for process analysis
+	Python/			Scripts for tracing Python
+	Ruby/			Scripts for tracing Ruby
+	Shell/			Scripts for tracing Shell languages
+	Snippits/		Snippits of D scripting
+	System/			Scripts for system analysis
+	Tcl/			Scripts for tracing Tcl
+	User/			Scripts for user based activity analysis
+	Zones/			Scripts for analysis by zone
+	Version			DTraceToolkit version
+	install			Install script, use for installs only
+
+When you type ls in the DTraceToolkit, you will be looking at the top ten 
+or so most useful scripts plus the top level directories. Other scripts have
+been placed in meaningful subdirectories, such as Disk, Kernel, Proc, etc.
+
+An optional Bin directory has been provided that links to all the scripts.
+
+The DTraceToolkit is released under the CDDL license. It's the same open
+source license that OpenSolaris has been released under.
+
+Thank you for using the DTraceToolkit!
+

Copied: user/hrs/ipv6/cddl/contrib/dtracetoolkit/License (from r235693, head/cddl/contrib/dtracetoolkit/License)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/hrs/ipv6/cddl/contrib/dtracetoolkit/License	Sun May 20 21:05:51 2012	(r235699, copy of r235693, head/cddl/contrib/dtracetoolkit/License)
@@ -0,0 +1 @@
+link Docs/cddl1.txt
\ No newline at end of file

Copied: user/hrs/ipv6/cddl/contrib/dtracetoolkit/README (from r235693, head/cddl/contrib/dtracetoolkit/README)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/hrs/ipv6/cddl/contrib/dtracetoolkit/README	Sun May 20 21:05:51 2012	(r235699, copy of r235693, head/cddl/contrib/dtracetoolkit/README)
@@ -0,0 +1 @@
+link Guide
\ No newline at end of file

Copied: user/hrs/ipv6/cddl/contrib/dtracetoolkit/Version (from r235693, head/cddl/contrib/dtracetoolkit/Version)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/hrs/ipv6/cddl/contrib/dtracetoolkit/Version	Sun May 20 21:05:51 2012	(r235699, copy of r235693, head/cddl/contrib/dtracetoolkit/Version)
@@ -0,0 +1 @@
+DTraceToolkit version 0.99, 30-Sep-2007

Copied: user/hrs/ipv6/cddl/contrib/dtracetoolkit/dexplorer (from r235693, head/cddl/contrib/dtracetoolkit/dexplorer)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/hrs/ipv6/cddl/contrib/dtracetoolkit/dexplorer	Sun May 20 21:05:51 2012	(r235699, copy of r235693, head/cddl/contrib/dtracetoolkit/dexplorer)
@@ -0,0 +1,547 @@
+#!/usr/bin/ksh
+#
+# dexplorer - DTrace system explorer, runs a collection of scripts.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This program automatically runs a collection of DTrace scripts to examine
+# many areas of the system, and places the output in a meaningful directory
+# structure that is tar'd and gzip'd.
+#
+# $Id: dexplorer 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	dexplorer [-yDT] [-d outputdir] [-i interval]
+#
+#                  -q              # quiet mode
+#                  -y              # "yes", don't prompt for confirmation
+#                  -D              # don't delete output dir
+#                  -T              # don't create output tar.gz
+#                  -d outputdir    # output directory
+#                  -i interval     # interval for each sample
+#    eg,
+#               dexplorer          # default is 5 second samples
+#               dexplorer -y -i30  # no prompting, with 30 second samples
+#
+# SEE ALSO:	DTraceToolkit
+#
+# THANKS: David Visser, et all. for the idea and encouragement.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# CODE:
+#
+#  This is currently a monolithic script, and while it contains only
+#  a few dozen straigftforward DTrace scripts I think it's desirable to
+#  keep it that way. The scripts themselves have designed to be very
+#  generic (eg, switching on all sdt:::), and are aggregations to keep a 
+#  limit on the size of the output.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 23-Jun-2005	Brendan Gregg	Created this.
+# 28-Jun-2005	   "      "	Last update.
+
+#
+#  Default variables
+#
+interval=5				# time of each sample
+verbose=1				# print screen output
+prompt=1				# prompt before run
+tar=1					# create tar file
+delete=1				# delete output dirs
+dtrace=/usr/sbin/dtrace			# path to dtrace
+root=.					# default output dir
+PATH=/usr/bin:/usr/sbin			# safe path
+dir=de_`uname -n`_`date +%Y%m%d%H%M`	# OUTPUT FILENAME
+samples=20				# max number of tests
+current=0				# current sample
+
+#
+#  Process options
+#
+while getopts d:hi:qyDT name
+do
+	case $name in
+	d)      root=$OPTARG ;;
+	i)      interval=$OPTARG ;;
+	q)      verbose=0 ;;
+	y)      prompt=0 ;;
+	D)      delete=0 ;;
+	T)      tar=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: dexplorer [-qyDT] [-d outputdir] [-i interval]
+		 
+		        -q               # quiet mode
+		        -y               # "yes", don't prompt for confirmation
+		        -D               # don't delete output dir
+		        -T               # don't create output tar.gz
+		        -d outputdir     # output directory
+		        -i interval      # interval for each sample
+		   eg,
+		       dexplorer         # default is 5 second samples
+		       dexplorer -y -i30 # no prompting, with 30 second samples
+		END
+		exit 1
+	esac
+done
+shift $(( OPTIND - 1 ))
+
+#
+#  Confirm path
+#
+if [[ "$prompt" == "1" ]] ; then
+	if [[ "$root" == "." ]]; then
+		print "Output dir will be the current dir ($PWD)."
+	else
+		print "Output dir will be $root"
+	fi
+	print -n "Hit enter for yes, or type path: "
+	read ans junk
+	if [[ "$ans" == [yY] || "$ans" == [yY]es ]]; then
+		print "WARNING: I didn't ask for \"$ans\"!"
+		print "\tI was asking for the path or just enter."
+		print "\tignoring \"$ans\"..."
+	fi
+	if [[ "$ans" != "" ]]; then
+		root=$ans
+		print "Output is now $root."
+	fi
+fi
+
+#
+#  Sanity checks
+#
+if [[ "$interval" == *[a-zA-Z]* ]]; then
+	print "ERROR2: Invalid interval $interval.\n"
+	print "Please use a number of seconds."
+	exit 2
+fi
+if (( ${#interval} < 1 )); then
+	print "ERROR3: Length of interval $interval too short.\n"
+	print "Minimum 1 second."
+	exit 3
+fi
+if [[ ! -d "$root" ]]; then
+	print "ERROR4: Output directory \"$root\" does not exist.\n"
+	print "Perhaps try a mkdir first?"
+	print "or use an existing dir, eg \"/tmp\""
+	exit 4
+fi
+if [[ ! -w "$root" ]]; then
+	print "ERROR5: Can't write to output directory \"$root\".\n"
+	print "Are you logged in as root?"
+	print "Perhaps try another directory, eg \"/tmp\""
+	exit 5
+fi
+if [[ `$dtrace -b1k -qn 'BEGIN { trace(pid); exit(0); }'` == "" ]]; then
+	print "ERROR6: Unable to run dtrace!\n"
+	print "Perhaps this is a permission problem? Try running as root."
+	exit 6
+fi
+
+# calculate total time
+(( total = interval * samples ))
+if (( total > 180 )); then
+	(( total = total / 60 ))
+	total="$total minutes"
+else
+	total="$total seconds"
+fi
+
+#
+#  Common Functions
+#
+function decho {
+	if (( verbose )); then print "$*"; fi
+}
+clean="sed /^\$/d"
+header='dtrace:::BEGIN {
+		printf("%Y, ", walltimestamp);
+		printf("%s %s %s %s %s, ", `utsname.sysname, `utsname.nodename,
+		    `utsname.release, `utsname.version, `utsname.machine);
+		printf("%d secs\n",'$interval');
+	}
+	profile:::tick-'$interval'sec { exit(0); }
+	'
+function dstatus {
+	if (( verbose )); then 
+		(( percent = current * 100 / samples ))
+		printf "%3d%% $*\n" $percent
+		(( current = current + 1 ))
+	fi
+}
+
+########################################
+#  START                               #
+########################################
+
+#
+#  Make dirs
+#
+err=0
+cd $root
+(( err = err + $? ))
+mkdir $dir
+(( err = err + $? ))
+cd $dir
+(( err = err + $? ))
+base1=${PWD##*/}
+base2=${dir##*/}
+if [[ "$base1" != "$base2" || "$err" != "0" ]]; then
+	print "ERROR7: tried to mkdir $dir from $root, but something failed.\n"
+	print "Check directories before rerunning."
+	exit 7
+fi
+mkdir Cpu
+mkdir Disk
+mkdir Mem
+mkdir Net
+mkdir Proc
+mkdir Info
+
+#
+#  Create Log
+#
+decho "Starting dexplorer ver 0.76."
+decho "Sample interval is $interval seconds. Total run is > $total."
+( print "dexplorer ver 0.76\n------------------"
+print -n "System: "
+uname -a
+print -n "Start:  "
+date ) > log
+
+#
+#  Capture Standard Info
+#
+args='pid,ppid,uid,gid,projid,zoneid,pset,pri,nice,'
+args=$args'class,vsz,rss,time,pcpu,pmem,args'
+uname -a > Info/uname-a		# System
+psrinfo -v > Info/psrinfo-v	# CPU
+prtconf > Info/prtconf		# Memory (+ devices)
+df -k > Info/df-k		# Disk
+ifconfig -a > Info/ifconfig-a	# Network
+ps -eo $args > Info/ps-o	# Processes
+uptime > Info/uptime		# Load
+
+#
+#  Cpu Tests, DTrace
+#
+
+dstatus "Interrupts by CPU..."
+$dtrace -qn "$header"'
+	sdt:::interrupt-start { @num[cpu] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-16s %16s\n", "CPU", "INTERRUPTS");
+		printa("%-16d %@16d\n", @num);
+	}
+' | $clean > Cpu/interrupt_by_cpu
+
+dstatus "Interrupt times..."
+$dtrace -qn "$header"'
+	sdt:::interrupt-start { self->ts = vtimestamp; }
+	sdt:::interrupt-complete
+	/self->ts && arg0 != 0/
+	{
+		this->devi = (struct dev_info *)arg0;
+		self->name = this->devi != 0 ?
+		    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+		this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+		@num[self->name, this->inst] = sum(vtimestamp - self->ts);
+		self->name = 0;
+	}
+	sdt:::interrupt-complete { self->ts = 0; }
+	dtrace:::END
+	{ 
+		printf("%11s    %16s\n", "DEVICE", "TIME (ns)");
+		printa("%10s%-3d %@16d\n", @num);
+	}
+' | $clean > Cpu/interrupt_time
+
+dstatus "Dispatcher queue length by CPU..."
+$dtrace -qn "$header"'
+	profile:::profile-1000
+	{
+		this->num = curthread->t_cpu->cpu_disp->disp_nrunnable;
+		@length[cpu] = lquantize(this->num, 0, 100, 1);
+	}
+	dtrace:::END { printa(" CPU %d%@d\n", @length); }
+' | $clean > Cpu/dispqlen_by_cpu
+
+dstatus "Sdt counts..."
+$dtrace -qn "$header"'
+	sdt:::{ @num[probefunc, probename] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-32s %-32s %10s\n", "FUNC", "NAME", "COUNT");
+		printa("%-32s %-32s %@10d\n", @num);
+	}
+' | $clean > Cpu/sdt_count
+
+#
+#  Disk Tests, DTrace
+#
+
+dstatus "Pages paged in by process..."
+$dtrace -qn "$header"'
+	vminfo:::pgpgin { @pg[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "PAGES");
+		printa("%6d %-16s %@16d\n", @pg);
+	}
+' | $clean > Disk/pgpgin_by_process
+
+dstatus "Files opened successfully count..."
+$dtrace -qn "$header"'
+	syscall::open*:entry { self->file = copyinstr(arg0); self->ok = 1; }
+	syscall::open*:return /self->ok && arg0 != -1/ 
+	{ 
+		@num[self->file] = count();
+	}
+	syscall::open*:return /self->ok/ { self->file = 0; self->ok = 0; }
+	dtrace:::END
+	{ 
+		printf("%-64s %8s\n", "FILE", "COUNT");
+		printa("%-64s %@8d\n", @num);
+	}
+' | $clean > Disk/fileopen_count
+
+dstatus "Disk I/O size distribution by process..."
+$dtrace -qn "$header"'
+	io:::start { @size[pid, execname] = quantize(args[0]->b_bcount); }
+' | $clean > Disk/sizedist_by_process
+
+#
+#  Mem Tests, DTrace
+#
+
+dstatus "Minor faults by process..."
+$dtrace -qn "$header"'
+	vminfo:::as_fault { @mem[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "MINFAULTS");
+		printa("%6d %-16s %@16d\n", @mem);
+	}
+' | $clean > Mem/minf_by_process
+
+
+dstatus "Vminfo data by process..."
+$dtrace -qn "$header"'
+	vminfo::: { @data[pid, execname, probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-16s %16s\n",
+		    "PID", "CMD", "STATISTIC", "VALUE");
+		printa("%6d %-16s %-16s %@16d\n", @data);
+	}
+' | $clean > Mem/vminfo_by_process
+
+#
+#  Net Tests, DTrace
+#
+
+dstatus "Mib data by mib statistic..."
+$dtrace -qn "$header"'
+	mib::: { @data[probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%-32s %16s\n", "STATISTIC", "VALUE");
+		printa("%-32s %@16d\n", @data);
+	}
+' | $clean > Net/mib_data
+
+dstatus "TCP write bytes by process..."
+$dtrace -qn "$header"'
+	fbt:ip:tcp_output:entry
+	{
+		this->size = msgdsize(args[1]);
+		@size[pid, execname] = sum(this->size);
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %12s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@12d\n", @size);
+	}
+' | $clean > Net/tcpw_by_process
+
+#
+#  Proc Tests, DTrace
+#
+
+dstatus "Sample process @ 1000 Hz..."
+$dtrace -qn "$header"'
+	profile:::profile-1000
+	{
+		@num[pid, curpsinfo->pr_psargs] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %12s %s\n", "PID", "SAMPLES", "ARGS");
+		printa("%6d %@12d %S\n", @num);
+	}
+' | $clean > Proc/sample_process
+
+dstatus "Syscall count by process..."
+$dtrace -qn "$header"'
+	syscall:::entry { @num[pid, execname, probefunc] = count(); }
+	dtrace:::END
+	{ 
+		printf("%6s %-24s %-24s %8s\n",
+		    "PID", "CMD", "SYSCALL", "COUNT");
+		printa("%6d %-24s %-24s %@8d\n", @num);
+	}
+' | $clean > Proc/syscall_by_process
+
+dstatus "Syscall count by syscall..."
+$dtrace -qn "$header"'
+	syscall:::entry { @num[probefunc] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-32s %16s\n", "SYSCALL", "COUNT");
+		printa("%-32s %@16d\n", @num);
+	}
+' | $clean > Proc/syscall_count
+
+dstatus "Read bytes by process..."
+$dtrace -qn "$header"'
+	sysinfo:::readch { @bytes[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@16d\n", @bytes);
+	}
+' | $clean > Proc/readb_by_process
+
+dstatus "Write bytes by process..."
+$dtrace -qn "$header"'
+	sysinfo:::writech { @bytes[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@16d\n", @bytes);
+	}
+' | $clean > Proc/writeb_by_process
+
+dstatus "Sysinfo counts by process..."
+$dtrace -qn "$header"'
+	sysinfo::: { @num[pid, execname, probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-16s %16s\n", 
+		    "PID", "CMD", "STATISTIC", "COUNT");
+		printa("%6d %-16s %-16s %@16d\n", @num);
+	}
+' | $clean > Proc/sysinfo_by_process
+
+dstatus "New process counts with arguments..."
+$dtrace -qn "$header"'
+	proc:::exec-success
+	{
+		@num[pid, ppid, curpsinfo->pr_psargs] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %6s %8s %s\n", "PID", "PPID", "COUNT", "ARGS");
+		printa("%6d %6d %@8d %S\n", @num);
+	}
+' | $clean > Proc/newprocess_count
+
+dstatus "Signal counts..."
+$dtrace -qn "$header"'
+	proc:::signal-send { 
+		@num[execname,args[2],stringof(args[1]->pr_fname)] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%-16s %-8s %-16s %8s\n",
+		    "FROM", "SIG", "TO", "COUNT");
+		printa("%-16s %-8d %-16s %@8d\n", @num);
+	}
+' | $clean > Proc/signal_count
+
+dstatus "Syscall error counts..."
+$dtrace -qn "$header"'
+	syscall:::return /(int)arg0 == -1/

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

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 18:28:10 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 7E428106564A;
	Mon, 21 May 2012 18:28:10 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 65AE88FC08;
	Mon, 21 May 2012 18:28:10 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LISAo9068142;
	Mon, 21 May 2012 18:28:10 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LISAsb068123;
	Mon, 21 May 2012 18:28:10 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211828.q4LISAsb068123@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 18:28:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235729 - in user/des/fbce: . db lib lib/FBCE
	lib/FBCE/Controller lib/FBCE/Model lib/FBCE/Schema
	lib/FBCE/Schema/Result lib/FBCE/Script lib/FBCE/View root
	root/admin root/lib root/resul...
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 18:28:10 -0000

Author: des
Date: Mon May 21 18:28:09 2012
New Revision: 235729
URL: http://svn.freebsd.org/changeset/base/235729

Log:
  Dump the election server code, as promised two years ago :)

Added:
  user/des/fbce/
  user/des/fbce/Changes
  user/des/fbce/Makefile.PL
  user/des/fbce/README
  user/des/fbce/db/
  user/des/fbce/db/fbce.sql
  user/des/fbce/db/notes
  user/des/fbce/db/update.sh   (contents, props changed)
  user/des/fbce/fbce.conf
  user/des/fbce/lib/
  user/des/fbce/lib/FBCE/
  user/des/fbce/lib/FBCE.pm
  user/des/fbce/lib/FBCE/Controller/
  user/des/fbce/lib/FBCE/Controller.pm
  user/des/fbce/lib/FBCE/Controller/Admin.pm
  user/des/fbce/lib/FBCE/Controller/Result.pm
  user/des/fbce/lib/FBCE/Controller/Root.pm
  user/des/fbce/lib/FBCE/Controller/Run.pm
  user/des/fbce/lib/FBCE/Controller/See.pm
  user/des/fbce/lib/FBCE/Controller/Vote.pm
  user/des/fbce/lib/FBCE/Model/
  user/des/fbce/lib/FBCE/Model/FBCE.pm
  user/des/fbce/lib/FBCE/Model/Schedule.pm
  user/des/fbce/lib/FBCE/Schema/
  user/des/fbce/lib/FBCE/Schema.pm
  user/des/fbce/lib/FBCE/Schema/Result/
  user/des/fbce/lib/FBCE/Schema/Result/Person.pm
  user/des/fbce/lib/FBCE/Schema/Result/Result.pm
  user/des/fbce/lib/FBCE/Schema/Result/Statement.pm
  user/des/fbce/lib/FBCE/Schema/Result/Vote.pm
  user/des/fbce/lib/FBCE/Script/
  user/des/fbce/lib/FBCE/Script/User.pm
  user/des/fbce/lib/FBCE/View/
  user/des/fbce/lib/FBCE/View/HTML.pm
  user/des/fbce/root/
  user/des/fbce/root/admin/
  user/des/fbce/root/admin/index.tt
  user/des/fbce/root/bylaws.tt
  user/des/fbce/root/favicon.ico   (contents, props changed)
  user/des/fbce/root/index.tt
  user/des/fbce/root/lib/
  user/des/fbce/root/lib/bylaws
  user/des/fbce/root/lib/date
  user/des/fbce/root/lib/datetime
  user/des/fbce/root/lib/footer
  user/des/fbce/root/lib/header
  user/des/fbce/root/lib/html_bottom
  user/des/fbce/root/lib/html_top
  user/des/fbce/root/lib/loginout
  user/des/fbce/root/lib/main
  user/des/fbce/root/lib/navigation
  user/des/fbce/root/lib/schedule
  user/des/fbce/root/lib/time
  user/des/fbce/root/login.tt
  user/des/fbce/root/mission.tt
  user/des/fbce/root/result/
  user/des/fbce/root/result/index.tt
  user/des/fbce/root/run/
  user/des/fbce/root/run/closed.tt
  user/des/fbce/root/run/edit.tt
  user/des/fbce/root/run/index.tt
  user/des/fbce/root/run/register.tt
  user/des/fbce/root/run/when
  user/des/fbce/root/run/withdraw.tt
  user/des/fbce/root/see/
  user/des/fbce/root/see/candidate.tt
  user/des/fbce/root/see/index.tt
  user/des/fbce/root/static/
  user/des/fbce/root/static/2010/
  user/des/fbce/root/static/2010/fbce.css
  user/des/fbce/root/static/2010/index.html
  user/des/fbce/root/static/fbce.css
  user/des/fbce/root/static/images/
  user/des/fbce/root/static/images/btn_120x50_built.png   (contents, props changed)
  user/des/fbce/root/static/images/btn_120x50_built_shadow.png   (contents, props changed)
  user/des/fbce/root/static/images/btn_120x50_powered.png   (contents, props changed)
  user/des/fbce/root/static/images/btn_120x50_powered_shadow.png   (contents, props changed)
  user/des/fbce/root/static/images/btn_88x31_built.png   (contents, props changed)
  user/des/fbce/root/static/images/btn_88x31_built_shadow.png   (contents, props changed)
  user/des/fbce/root/static/images/btn_88x31_powered.png   (contents, props changed)
  user/des/fbce/root/static/images/btn_88x31_powered_shadow.png   (contents, props changed)
  user/des/fbce/root/static/images/catalyst_logo.png   (contents, props changed)
  user/des/fbce/root/static/images/lquotes.png   (contents, props changed)
  user/des/fbce/root/static/images/rquotes.png   (contents, props changed)
  user/des/fbce/root/vote/
  user/des/fbce/root/vote/index.tt
  user/des/fbce/root/vote/when
  user/des/fbce/root/x
  user/des/fbce/script/
  user/des/fbce/script/fbce_cgi.pl   (contents, props changed)
  user/des/fbce/script/fbce_create.pl   (contents, props changed)
  user/des/fbce/script/fbce_fastcgi.pl   (contents, props changed)
  user/des/fbce/script/fbce_server.pl   (contents, props changed)
  user/des/fbce/script/fbce_test.pl   (contents, props changed)
  user/des/fbce/script/fbce_user.pl   (contents, props changed)
  user/des/fbce/t/
  user/des/fbce/t/01app.t
  user/des/fbce/t/02pod.t
  user/des/fbce/t/03podcoverage.t
  user/des/fbce/t/controller_Admin.t
  user/des/fbce/t/controller_Result.t
  user/des/fbce/t/controller_Run.t
  user/des/fbce/t/controller_See.t
  user/des/fbce/t/controller_Vote.t
  user/des/fbce/t/model_FBCE.t
  user/des/fbce/t/view_HTML.t

Added: user/des/fbce/Changes
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/Changes	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,4 @@
+This file documents the revision history for Perl extension FBCE.
+
+0.01  2010-06-09 23:31:03
+        - initial revision, generated by Catalyst

Added: user/des/fbce/Makefile.PL
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/Makefile.PL	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,25 @@
+#!/usr/bin/env perl
+# IMPORTANT: if you delete this file your app will not work as
+# expected.  You have been warned.
+use inc::Module::Install;
+use Module::Install::Catalyst; # Complain loudly if you don't have
+                               # Catalyst::Devel installed or haven't said
+                               # 'make dist' to create a standalone tarball.
+
+name 'FBCE';
+all_from 'lib/FBCE.pm';
+
+requires 'Catalyst::Runtime' => '5.80024';
+requires 'Catalyst::Plugin::ConfigLoader';
+requires 'Catalyst::Plugin::Static::Simple';
+requires 'Catalyst::Action::RenderView';
+requires 'Moose';
+requires 'namespace::autoclean';
+requires 'Config::General'; # This should reflect the config file format you've chosen
+                 # See Catalyst::Plugin::ConfigLoader for supported formats
+test_requires 'Test::More' => '0.88';
+catalyst;
+
+install_script glob('script/*.pl');
+auto_install;
+WriteAll;

Added: user/des/fbce/README
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/README	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1 @@
+Run script/fbce_server.pl to test the application.

Added: user/des/fbce/db/fbce.sql
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/db/fbce.sql	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,54 @@
+-- drop table if exists config cascade;
+-- create table config (
+--         key varchar not null primary key,
+--         value varchar not null,
+--         unique(key)
+-- );
+-- insert into config values('reg_open', '2010-06-09T00:00:00');
+-- insert into config values('reg_close', '2010-06-16T00:00:00');
+-- insert into config values('vote_open', '2010-06-17T00:00:00');
+-- insert into config values('vote_close', '2010-07-14T00:00:00');
+
+drop table if exists persons cascade;
+create table persons (
+        id serial primary key,
+        login varchar not null,
+        realname varchar null,
+        password varchar not null,
+        admin boolean not null default false,
+	active boolean not null default false,
+        incumbent boolean not null default false,
+	voted boolean not null default false,
+        votes integer not null default 0,
+        unique(login)
+);
+insert into persons(login, realname, password, admin)
+    values('des', 'Dag-Erling Smørgrav', '*', true);
+
+drop table if exists statements cascade;
+create table statements (
+        id serial primary key,
+        person integer not null,
+        short varchar(64) not null,
+        long text not null,
+        unique(person),
+        foreign key(person) references persons(id) on delete cascade on update cascade
+);
+
+drop table if exists votes cascade;
+create table votes (
+        id serial primary key,
+        voter integer not null,
+        candidate integer not null,
+        unique(voter, candidate),
+        foreign key(voter) references persons(id) on delete cascade on update cascade,
+        foreign key(candidate) references persons(id) on delete cascade on update cascade
+);
+
+drop view if exists results;
+create view results as
+    select persons.id, persons.login as login, persons.realname as realname, persons.incumbent, count(votes.*) as votes
+    from persons join votes on persons.id = votes.candidate
+    group by persons.id, persons.login, persons.realname, persons.incumbent;
+
+-- select * from results order by votes limit 9;

Added: user/des/fbce/db/notes
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/db/notes	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,7 @@
+% sudo /usr/local/etc/rc.d/postgresql initdb
+% sudo /usr/local/etc/rc.d/postgresql start
+% sudo -u pgsql createuser -s des
+% createuser -S -D -R fbce
+% createdb -E utf8 -O fbce fbce
+% psql -f db/fbce.sql fbce fbce 
+% ./db/update.sh

Added: user/des/fbce/db/update.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/db/update.sh	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+cd $(dirname $(realpath $0))
+
+../script/fbce_create.pl model \
+    FBCE DBIC::Schema FBCE::Schema \
+    create=static \
+    "dbi:Pg:dbname=fbce" fbce

Added: user/des/fbce/fbce.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/fbce.conf	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,19 @@
+title = 2012 FreeBSD Core Team Election
+
+<Model::Schedule>
+  nominating_starts = 2012-05-23 00:00:00 UTC
+  nominating_ends = 2012-05-30 00:00:00 UTC
+  voting_starts = 2012-05-30 00:00:00 UTC
+  voting_ends = 2012-06-27 00:00:00 UTC
+  announcement = 2012-06-27 18:00:00 UTC
+  investiture = 2012-07-04
+  # XXX does not belong here
+  max_votes = 9
+</Model::Schedule>
+
+<Session>
+  expires = 1800
+  cookie_expires = 0
+  # cookie_secure = true
+  cache_size = 8m
+</Session>

Added: user/des/fbce/lib/FBCE.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,80 @@
+package FBCE;
+use Moose;
+use MooseX::Types::Common::Numeric qw(PositiveInt);
+use namespace::autoclean;
+
+use Catalyst::Runtime 5.80;
+
+use Catalyst qw/
+    ConfigLoader
+    Authentication
+    Authentication::Credential::Password
+    Session
+    Session::State::Cookie
+    Session::Store::FastMmap
+    Static::Simple
+    Unicode
+/;
+
+extends 'Catalyst';
+
+our $VERSION = '0.01';
+$VERSION = eval $VERSION;
+
+# Configure the application.
+
+__PACKAGE__->config(
+    name => 'FBCE',
+    view => 'HTML',
+    'Plugin::Static::Simple' => {
+	dirs => [ 'static' ],
+    },
+    'Plugin::Authentication' => {
+	default_realm => 'fbce',
+	fbce => {
+	    credential => {
+		class => 'Password',
+		password_field => 'password',
+		password_type  => 'salted_hash',
+	    },
+	    store => {
+		class => 'DBIx::Class',
+		user_model => 'FBCE::Person',
+	    },
+	},
+    },
+    # Disable deprecated behavior needed by old applications
+    disable_component_resolution_regex_fallback => 1,
+);
+
+# Start the application
+__PACKAGE__->setup();
+
+=head1 NAME
+
+FBCE - Catalyst based application
+
+=head1 SYNOPSIS
+
+    script/fbce_server.pl
+
+=head1 DESCRIPTION
+
+[enter your description here]
+
+=head1 SEE ALSO
+
+L<FBCE::Controller::Root>, L<Catalyst>
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;

Added: user/des/fbce/lib/FBCE/Controller.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Controller.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,57 @@
+package FBCE::Controller;
+use Moose;
+use DateTime;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Controller' }
+
+=head1 NAME
+
+FBCE::Controller - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=head1 METHODS
+
+=cut
+
+=head2 auto
+
+=cut
+
+sub auto :Private {
+    my ($self, $c) = @_;
+
+    $c->stash(title => FBCE->config->{'title'});
+    my $now = DateTime->now();
+    $c->stash(now => $now);
+    my $schedule = $c->comp('FBCE::Model::Schedule');
+    foreach my $phase ("nominating", "voting") {
+       foreach my $endpoint ("${phase}_starts", "${phase}_ends") {
+	   $c->stash($endpoint => $schedule->{$endpoint});
+       }
+    }
+    $c->stash('announcement' => $schedule->{'announcement'});
+    $c->stash('investiture' => $schedule->{'investiture'});
+    $c->stash(nominating => $schedule->nominating($now));
+    $c->stash(voting => $schedule->voting($now));
+    # XXX does not really belong in FBCE::Schedule
+    $c->stash(max_votes => $schedule->{'max_votes'});
+}
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;

Added: user/des/fbce/lib/FBCE/Controller/Admin.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Controller/Admin.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,62 @@
+package FBCE::Controller::Admin;
+use Moose;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Controller' }
+
+=head1 NAME
+
+FBCE::Controller::Admin - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=head1 METHODS
+
+=cut
+
+
+=head2 index
+
+=cut
+
+sub index :Path :Args(0) {
+    my ( $self, $c ) = @_;
+
+    my $user = $c->user->get_object();
+    if (!$user->admin) {
+	$c->res->redirect($c->uri_for('/'));
+	$c->detach();
+    }
+    my $voters = $c->model('FBCE::Person')->
+	search(undef, { order_by => 'login' });
+    my $candidates = $c->model('FBCE::Statement')->
+	search_related('person', {}, { order_by => 'login' });
+    my $voted = $c->model('FBCE::Vote')->
+	search_related('voter', {}, { distinct => 1 });
+    my $votes = $c->model('FBCE::Vote');
+    my $results = $c->model('FBCE::Result')->
+	search(undef, { order_by => { -desc => 'votes' } });
+    $c->stash(voters => $voters);
+    $c->stash(candidates => $candidates);
+    $c->stash(voted => $voted);
+    $c->stash(votes => $votes);
+    $c->stash(results => $results);
+}
+
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;

Added: user/des/fbce/lib/FBCE/Controller/Result.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Controller/Result.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,56 @@
+package FBCE::Controller::Result;
+use Moose;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Controller' }
+
+=head1 NAME
+
+FBCE::Controller::Result - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=head1 METHODS
+
+=cut
+
+
+=head2 index
+
+=cut
+
+sub index :Path :Args(0) {
+    my ($self, $c) = @_;
+
+    $c->stash(voters => $c->model('FBCE::Person')->
+	      search_rs(undef, { order_by => 'login' }));
+    $c->stash(candidates => $c->model('FBCE::Statement')->
+	      search_related('person', {}, { order_by => 'login' }));
+    if ($c->stash->{'announced'}) {
+	$c->stash(voted => $c->model('FBCE::Vote')->
+		  search_related('voter', {}, { distinct => 1 })->count);
+	$c->stash(votes => $c->model('FBCE::Vote')->count);
+	$c->stash(results => $c->model('FBCE::Result')->
+		  search_rs(undef, { order_by => { -desc => 'votes' } }));
+    } else {
+	$c->stash(voted => 0, votes => 0, results => undef);
+    }
+}
+
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;

Added: user/des/fbce/lib/FBCE/Controller/Root.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Controller/Root.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,143 @@
+package FBCE::Controller::Root;
+use Moose;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Controller' }
+
+#
+# Sets the actions in this controller to be registered with no prefix
+# so they function identically to actions created in MyApp.pm
+#
+__PACKAGE__->config(namespace => '');
+
+=head1 NAME
+
+FBCE::Controller::Root - Root Controller for FBCE
+
+=head1 DESCRIPTION
+
+[enter your description here]
+
+=head1 METHODS
+
+=head2 index
+
+The root page (/)
+
+=cut
+
+sub auto :Private {
+    my ($self, $c) = @_;
+
+    # Stash schedule information etc.
+    $c->stash(title => FBCE->config->{'title'});
+    my $now = DateTime->now();
+    $c->stash(now => $now);
+    my $schedule = $c->comp('FBCE::Model::Schedule');
+    foreach my $phase ("nominating", "voting") {
+	foreach my $endpoint ("${phase}_starts", "${phase}_ends") {
+	    $c->stash($endpoint => $schedule->{$endpoint});
+	}
+    }
+    $c->stash(announcement => $schedule->{'announcement'});
+    $c->stash(investiture => $schedule->{'investiture'});
+    $c->stash(nominating => $schedule->nominating($now));
+    $c->stash(voting => $schedule->voting($now));
+    $c->stash(announced => $schedule->announced($now));
+    # XXX does not really belong in FBCE::Schedule
+    $c->stash(max_votes => $schedule->{'max_votes'});
+
+    # Authentication
+    if ($c->request->path !~ m/^(login|logout|bylaws|mission|static\/.*)?$/) {
+	if (!$c->user_exists) {
+	    $c->stash(action => $c->uri_for());
+	    $c->stash(template => 'login.tt');
+	    return 0;
+	}
+    }
+    if ($c->user) {
+	$c->stash(user => $c->user->get_object());
+    }
+
+    return 1;
+}
+
+sub login :Local :Args(0) {
+    my ($self, $c) = @_;
+
+    my ($login, $password, $action) =
+	@{$c->request->params}{'login', 'password', 'action'};
+    if ($login && $password) {
+	$c->authenticate({
+	    login => $c->request->params->{'login'},
+	    password => $c->request->params->{'password'}
+	});
+    }
+    if ($c->user_exists) {
+	if ($action) {
+	    $c->response->redirect($action);
+	} else {
+	    $c->response->redirect($c->uri_for('/'));
+	}
+	return;
+    }
+    $c->stash(action => $action);
+}
+
+sub logout :Local :Args(0) {
+    my ($self, $c) = @_;
+
+    $c->logout();
+    $c->response->redirect($c->uri_for('/'));
+}
+
+sub index :Path :Args(0) {
+    my ($self, $c) = @_;
+
+}
+
+sub bylaws :Local :Args(0) {
+    my ($self, $c) = @_;
+
+}
+
+sub mission :Local :Args(0) {
+    my ($self, $c) = @_;
+
+}
+
+=head2 default
+
+Standard 404 error page
+
+=cut
+
+sub default :Path {
+    my ($self, $c) = @_;
+
+    $c->response->body('Page not found');
+    $c->response->status(404);
+}
+
+=head2 end
+
+Attempt to render a view, if needed.
+
+=cut
+
+sub end : ActionClass('RenderView') {}
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;

Added: user/des/fbce/lib/FBCE/Controller/Run.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Controller/Run.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,133 @@
+package FBCE::Controller::Run;
+use Moose;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Controller' }
+
+=head1 NAME
+
+FBCE::Controller::Run - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=head1 METHODS
+
+=cut
+
+=head2 index
+
+=cut
+
+sub index :Path :Args(0) {
+    my ($self, $c) = @_;
+
+#    $c->authenticate();
+    my $user = $c->user->get_object();
+    $c->stash(user => $user);
+}
+
+sub register :Local :Args(0) {
+    my ($self, $c) = @_;
+
+#    $c->authenticate();
+    my $user = $c->user->get_object();
+    if ($c->stash->{'nominating'} != 0) {
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    $c->stash(user => $user);
+    if ($user->statement) {
+	$c->res->redirect($c->uri_for('/run/edit'));
+	$c->detach();
+    }
+    my $p = $c->req->params;
+    if ($p->{cancel}) {
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    if ($p->{submit}) {
+	my $stmt = $c->model('FBCE::Statement')->
+	    new({ person => $user, short => $p->{short}, long => $p->{long} });
+	$stmt->insert()
+	    or die("failed to register");
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    $c->stash(short => $p->{short});
+    $c->stash(long => $p->{long});
+}
+
+sub edit :Local :Args(0) {
+    my ($self, $c) = @_;
+
+#    $c->authenticate();
+    my $user = $c->user->get_object();
+    if ($c->stash->{'nominating'} != 0) {
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    $c->stash(user => $user);
+    if (!$user->statement) {
+	$c->res->redirect($c->uri_for('/run/register'));
+	$c->detach();
+    }
+    my $p = $c->req->params;
+    if ($p->{cancel}) {
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    my $statement = $user->statement;
+    if ($p->{submit}) {
+	$statement->update({ short => $p->{short}, long => $p->{long} })
+	    or die("failed to update");
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    $c->stash(short => $p->{short} // $statement->short);
+    $c->stash(long => $p->{long} // $statement->long);
+}
+
+sub withdraw :Local :Args(0) {
+    my ($self, $c) = @_;
+
+#    $c->authenticate();
+    my $user = $c->user->get_object();
+    if ($c->stash->{'nominating'} != 0) {
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    $c->stash(user => $user);
+    if (!$user->statement) {
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    my $p = $c->req->params;
+    if ($p->{cancel}) {
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+    my $statement = $user->statement;
+    if ($p->{submit}) {
+	$statement->delete()
+	    or die("failed to delete");
+	$c->res->redirect($c->uri_for('/run'));
+	$c->detach();
+    }
+}
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;

Added: user/des/fbce/lib/FBCE/Controller/See.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Controller/See.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,60 @@
+package FBCE::Controller::See;
+use Moose;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Controller' }
+
+=head1 NAME
+
+FBCE::Controller::See - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=head1 METHODS
+
+=cut
+
+
+=head2 index
+
+=cut
+
+sub index :Path :Args(0) {
+    my ($self, $c) = @_;
+
+    my $user = $c->user->get_object();
+    $c->stash(user => $user);
+    my $candidates = $c->model('FBCE::Statement')->
+	search_related('person', {}, { order_by => 'login' });
+    $c->stash(candidates => $candidates);
+}
+
+sub candidate :Local :Args(1) {
+    my ($self, $c, $name) = @_;
+
+    my $user = $c->user->get_object();
+    $c->stash(user => $user);
+    my $candidate = $c->model('FBCE::Person')->find({ login => $name });
+    if (!$candidate || !$candidate->statement) {
+	$c->res->redirect($c->uri_for('/see'));
+	$c->detach();
+    }
+    $c->stash(candidate => $candidate);
+}
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;

Added: user/des/fbce/lib/FBCE/Controller/Vote.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Controller/Vote.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,114 @@
+package FBCE::Controller::Vote;
+use Moose;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Controller' }
+
+=head1 NAME
+
+FBCE::Controller::Vote - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=head1 METHODS
+
+=cut
+
+=head2 index
+
+=cut
+
+sub index :Path :Args(0) {
+    my ($self, $c) = @_;
+
+    my $user = $c->user->get_object();
+    $c->stash(user => $user);
+    if ($c->stash->{'phase'} != 0) {
+	return;
+    }
+    my $p = $c->req->params;
+    if ($p->{cancel}) {
+	$c->res->redirect($c->uri_for('/'));
+	$c->detach();
+    }
+    my $candidates = $c->model('FBCE::Statement')->
+	search_related('person', {}, { order_by => 'login' });
+    my %voted_for;
+    my $error;
+    if ($p->{vote}) {
+	my %vote_for;
+	while (my $candidate = $candidates->next) {
+	    if (exists $p->{"vote_for_" . $candidate->login}) {
+		$vote_for{$candidate->login} = $candidate;
+		$voted_for{$candidate->login} = 1;
+	    }
+	}
+	$candidates->reset;
+	if (scalar keys %vote_for > $c->stash->{'max_votes'}) {
+	    $error = "You can only vote for $c->stash->{'max_votes'} candidates.";
+	} else {
+	    my $schema = $user->result_source->schema;
+	    $schema->txn_do(sub {
+		$user->votes_voters->delete();
+		while (my ($login, $candidate) = each %vote_for) {
+		    $user->votes_voters->create({ candidate => $candidate });
+		}
+	    });
+	    if ($@) {
+		$error = "Database error!";
+	    } else {
+		$c->stash(vote_ok => 1);
+	    }
+	}
+    } else {
+	my $votes = $user->votes_voters;
+	while (my $vote = $votes->next) {
+	    $voted_for{$vote->candidate->login} = 1;
+	}
+    }
+    $c->stash(error => $error);
+    $c->stash(candidates => $candidates);
+    $c->stash(max_votes => $c->stash->{'max_votes'});
+    $c->stash(voted_for => \%voted_for);
+}
+
+# sub commit :Local :Args(0) {
+#     my ($self, $c) = @_;
+
+#     $c->authenticate();
+#     my $user = $c->user->get_object();
+#     if ($c->stash->{'phase'} != 0) {
+# 	$c->res->redirect($c->uri_for('/vote'));
+# 	$c->detach();
+#     }
+#     my $p = $c->req->params;
+#     if ($p->{cancel}) {
+# 	$c->res->redirect($c->uri_for('/vote'));
+# 	$c->detach();
+#     }
+#     if ($p->{commit}) {
+# 	$user->commit()
+# 	    or die("failed to commit");
+# 	$c->res->redirect($c->uri_for('/vote'));
+# 	$c->detach();
+#     }
+#     $c->stash(user => $user);
+# }
+
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;

Added: user/des/fbce/lib/FBCE/Model/FBCE.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Model/FBCE.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,43 @@
+package FBCE::Model::FBCE;
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+    schema_class => 'FBCE::Schema',
+    
+    connect_info => {
+        dsn => 'dbi:Pg:dbname=fbce',
+        user => 'fbce',
+        password => '',
+    }
+);
+
+=head1 NAME
+
+FBCE::Model::FBCE - Catalyst DBIC Schema Model
+
+=head1 SYNOPSIS
+
+See L<FBCE>
+
+=head1 DESCRIPTION
+
+L<Catalyst::Model::DBIC::Schema> Model using schema L<FBCE::Schema>
+
+=head1 GENERATED BY
+
+Catalyst::Helper::Model::DBIC::Schema - 0.59
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;

Added: user/des/fbce/lib/FBCE/Model/Schedule.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Model/Schedule.pm	Mon May 21 18:28:09 2012	(r235729)
@@ -0,0 +1,115 @@
+package FBCE::Model::Schedule;
+use Moose;
+use MooseX::Types::Common::Numeric qw(PositiveInt);
+use MooseX::Types::DateTime::MoreCoercions qw(DateTime);
+use DateTime;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Component' }
+
+=head1 NAME
+
+FBCE::Controller - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=cut
+
+has nominating_starts => (
+    isa => DateTime,
+    coerce => 1,
+    is => 'ro',
+    required => 1
+);
+
+has nominating_ends => (
+    isa => DateTime,
+    coerce => 1,
+    is => 'ro',
+    required => 1
+);
+
+has voting_starts => (
+    isa => DateTime,
+    coerce => 1,
+    is => 'ro',
+    required => 1
+);
+
+has voting_ends => (
+    isa => DateTime,
+    coerce => 1,
+    is => 'ro',
+    required => 1
+);
+
+has announcement => (
+    isa => DateTime,
+    coerce => 1,
+    is => 'ro',
+    required => 1
+);
+
+has investiture => (
+    isa => DateTime,
+    coerce => 1,
+    is => 'ro',
+    required => 1
+);
+
+# XXX does not belong here
+has max_votes => (
+    isa => PositiveInt,
+    is => 'ro',
+    required => 1
+);
+
+sub _phase($$$) {
+    my ($self, $phase, $now) = @_;
+
+    $now //= main::DateTime->now();
+    my ($starts, $ends) = ("${phase}_starts", "${phase}_ends");
+    my ($st, $et) = ($self->{$starts}, $self->{$ends});
+    if (main::DateTime->compare($now, $st) < 0) {
+	return -1;
+    } elsif (main::DateTime->compare($now, $et) < 0) {
+	return 0;
+    } else {
+	return 1;
+    }
+}
+

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

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 18:39:50 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 43529106567C;
	Mon, 21 May 2012 18:39:50 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2EBDA8FC15;
	Mon, 21 May 2012 18:39:50 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LIdnVO068468;
	Mon, 21 May 2012 18:39:49 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LIdnjB068466;
	Mon, 21 May 2012 18:39:49 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211839.q4LIdnjB068466@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 18:39:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235730 - user/des/fbce/db
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 18:39:50 -0000

Author: des
Date: Mon May 21 18:39:49 2012
New Revision: 235730
URL: http://svn.freebsd.org/changeset/base/235730

Log:
  Remove chaff, add RCS tag

Modified:
  user/des/fbce/db/fbce.sql   (contents, props changed)

Modified: user/des/fbce/db/fbce.sql
==============================================================================
--- user/des/fbce/db/fbce.sql	Mon May 21 18:28:09 2012	(r235729)
+++ user/des/fbce/db/fbce.sql	Mon May 21 18:39:49 2012	(r235730)
@@ -1,13 +1,6 @@
--- drop table if exists config cascade;
--- create table config (
---         key varchar not null primary key,
---         value varchar not null,
---         unique(key)
--- );
--- insert into config values('reg_open', '2010-06-09T00:00:00');
--- insert into config values('reg_close', '2010-06-16T00:00:00');
--- insert into config values('vote_open', '2010-06-17T00:00:00');
--- insert into config values('vote_close', '2010-07-14T00:00:00');
+--
+-- $FreeBSD$
+--
 
 drop table if exists persons cascade;
 create table persons (
@@ -50,5 +43,3 @@ create view results as
     select persons.id, persons.login as login, persons.realname as realname, persons.incumbent, count(votes.*) as votes
     from persons join votes on persons.id = votes.candidate
     group by persons.id, persons.login, persons.realname, persons.incumbent;
-
--- select * from results order by votes limit 9;

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 18:40:47 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F1006106564A;
	Mon, 21 May 2012 18:40:47 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DD1ED8FC18;
	Mon, 21 May 2012 18:40:47 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LIelnx068538;
	Mon, 21 May 2012 18:40:47 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LIelF7068536;
	Mon, 21 May 2012 18:40:47 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211840.q4LIelF7068536@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 18:40:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235731 - user/des/fbce/db
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 18:40:48 -0000

Author: des
Date: Mon May 21 18:40:47 2012
New Revision: 235731
URL: http://svn.freebsd.org/changeset/base/235731

Log:
  Create an account for my trusted friend, Kenneth (36).

Modified:
  user/des/fbce/db/fbce.sql

Modified: user/des/fbce/db/fbce.sql
==============================================================================
--- user/des/fbce/db/fbce.sql	Mon May 21 18:39:49 2012	(r235730)
+++ user/des/fbce/db/fbce.sql	Mon May 21 18:40:47 2012	(r235731)
@@ -15,8 +15,10 @@ create table persons (
         votes integer not null default 0,
         unique(login)
 );
-insert into persons(login, realname, password, admin)
-    values('des', 'Dag-Erling Smørgrav', '*', true);
+insert into persons(login, realname, password, active, admin)
+    values('des', 'Dag-Erling Smørgrav', '*', true, true);
+insert into persons(login, realname, password, active, admin)
+    values('kenneth36', 'Kenneth (36)', '*', true, false);
 
 drop table if exists statements cascade;
 create table statements (

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 18:46:52 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 16956106566B;
	Mon, 21 May 2012 18:46:52 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DDB838FC1B;
	Mon, 21 May 2012 18:46:51 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LIkpI5068751;
	Mon, 21 May 2012 18:46:51 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LIkp6o068749;
	Mon, 21 May 2012 18:46:51 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211846.q4LIkp6o068749@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 18:46:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235732 - user/des/fbce/db
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 18:46:52 -0000

Author: des
Date: Mon May 21 18:46:51 2012
New Revision: 235732
URL: http://svn.freebsd.org/changeset/base/235732

Log:
  Add RCS id

Modified:
  user/des/fbce/db/notes   (contents, props changed)

Modified: user/des/fbce/db/notes
==============================================================================
--- user/des/fbce/db/notes	Mon May 21 18:40:47 2012	(r235731)
+++ user/des/fbce/db/notes	Mon May 21 18:46:51 2012	(r235732)
@@ -1,3 +1,5 @@
+# $FreeBSD$
+
 % sudo /usr/local/etc/rc.d/postgresql initdb
 % sudo /usr/local/etc/rc.d/postgresql start
 % sudo -u pgsql createuser -s des

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 18:47:07 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id ED3D91065698;
	Mon, 21 May 2012 18:47:07 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BFD648FC0A;
	Mon, 21 May 2012 18:47:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LIl7O4068796;
	Mon, 21 May 2012 18:47:07 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LIl7KD068794;
	Mon, 21 May 2012 18:47:07 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211847.q4LIl7KD068794@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 18:47:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235733 - user/des/fbce/db
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 18:47:08 -0000

Author: des
Date: Mon May 21 18:47:07 2012
New Revision: 235733
URL: http://svn.freebsd.org/changeset/base/235733

Log:
  Add one-liner for setting a user's password

Modified:
  user/des/fbce/db/notes

Modified: user/des/fbce/db/notes
==============================================================================
--- user/des/fbce/db/notes	Mon May 21 18:46:51 2012	(r235732)
+++ user/des/fbce/db/notes	Mon May 21 18:47:07 2012	(r235733)
@@ -7,3 +7,4 @@
 % createdb -E utf8 -O fbce fbce
 % psql -f db/fbce.sql fbce fbce 
 % ./db/update.sh
+% perl -Ilib -MFBCE -e 'FBCE->model("FBCE::Person")->find({ login => "kenneth36" })->set_password("altinn")'

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 19:04:57 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C892F1065670;
	Mon, 21 May 2012 19:04:57 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A8D248FC0C;
	Mon, 21 May 2012 19:04:57 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LJ4vUk069283;
	Mon, 21 May 2012 19:04:57 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LJ4vQL069270;
	Mon, 21 May 2012 19:04:57 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211904.q4LJ4vQL069270@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 19:04:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235734 - in user/des/fbce: lib lib/FBCE
	lib/FBCE/Controller lib/FBCE/Model lib/FBCE/Schema/Result
	lib/FBCE/View script
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 19:04:57 -0000

Author: des
Date: Mon May 21 19:04:56 2012
New Revision: 235734
URL: http://svn.freebsd.org/changeset/base/235734

Log:
  Add RCS ids

Modified:
  user/des/fbce/lib/FBCE.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Controller/Admin.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Controller/Root.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Controller/See.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Model/FBCE.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Schema.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Schema/Result/Person.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Schema/Result/Result.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Schema/Result/Statement.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Schema/Result/Vote.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/View/HTML.pm   (contents, props changed)
  user/des/fbce/script/fbce_user.pl   (contents, props changed)

Modified: user/des/fbce/lib/FBCE.pm
==============================================================================
--- user/des/fbce/lib/FBCE.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -78,3 +78,5 @@ it under the same terms as Perl itself.
 =cut
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Controller/Admin.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Controller/Admin.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Controller/Admin.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -60,3 +60,5 @@ it under the same terms as Perl itself.
 __PACKAGE__->meta->make_immutable;
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Controller/Root.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Controller/Root.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Controller/Root.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -141,3 +141,5 @@ it under the same terms as Perl itself.
 __PACKAGE__->meta->make_immutable;
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Controller/See.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Controller/See.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Controller/See.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -58,3 +58,5 @@ it under the same terms as Perl itself.
 __PACKAGE__->meta->make_immutable;
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Model/FBCE.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Model/FBCE.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Model/FBCE.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -41,3 +41,5 @@ it under the same terms as Perl itself.
 =cut
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Schema.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Schema.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -18,3 +18,5 @@ __PACKAGE__->load_namespaces;
 
 # You can replace this text with custom content, and it will be preserved on regeneration
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Schema/Result/Person.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -268,3 +268,5 @@ sub gravatar($) {
 }
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Schema/Result/Result.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Result.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Schema/Result/Result.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -89,6 +89,6 @@ __PACKAGE__->add_columns(
 # Created by DBIx::Class::Schema::Loader v0.07022 @ 2012-05-02 18:58:53
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:DoGyNz+8Hk6gsoM9TPLzHw
 
-
-# You can replace this text with custom content, and it will be preserved on regeneration
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Schema/Result/Statement.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Statement.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Schema/Result/Statement.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -133,3 +133,5 @@ sub long_html($) {
 }
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Schema/Result/Vote.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Vote.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/Schema/Result/Vote.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -134,6 +134,6 @@ __PACKAGE__->belongs_to(
 # Created by DBIx::Class::Schema::Loader v0.07022 @ 2012-05-02 18:58:53
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:gBIEgDR5kVbXd4B6h3LRQg
 
-
-# You can replace this text with custom content, and it will be preserved on regeneration
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/View/HTML.pm
==============================================================================
--- user/des/fbce/lib/FBCE/View/HTML.pm	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/lib/FBCE/View/HTML.pm	Mon May 21 19:04:56 2012	(r235734)
@@ -34,3 +34,5 @@ it under the same terms as Perl itself.
 =cut
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/script/fbce_user.pl
==============================================================================
--- user/des/fbce/script/fbce_user.pl	Mon May 21 18:47:07 2012	(r235733)
+++ user/des/fbce/script/fbce_user.pl	Mon May 21 19:04:56 2012	(r235734)
@@ -4,3 +4,5 @@ use Catalyst::ScriptRunner;
 Catalyst::ScriptRunner->run('FBCE', 'User');
 
 1;
+
+# $FreeBSD$

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 19:28:14 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 952D41065794;
	Mon, 21 May 2012 19:28:14 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 67C468FC16;
	Mon, 21 May 2012 19:28:14 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LJSENT069904;
	Mon, 21 May 2012 19:28:14 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LJSDdn069900;
	Mon, 21 May 2012 19:28:13 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211928.q4LJSDdn069900@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 19:28:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235735 - in user/des/fbce: . db lib/FBCE/Model
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 19:28:14 -0000

Author: des
Date: Mon May 21 19:28:13 2012
New Revision: 235735
URL: http://svn.freebsd.org/changeset/base/235735

Log:
  Move the database connection information to the configuration file.
  Remove RCS id from lib/FBCE/Model/FBCE.pm, which should hereafter never
  change except to reflect changes in Catalyst itself.

Modified:
  user/des/fbce/db/update.sh   (contents, props changed)
  user/des/fbce/fbce.conf   (contents, props changed)
  user/des/fbce/lib/FBCE/Model/FBCE.pm   (contents, props changed)

Modified: user/des/fbce/db/update.sh
==============================================================================
--- user/des/fbce/db/update.sh	Mon May 21 19:04:56 2012	(r235734)
+++ user/des/fbce/db/update.sh	Mon May 21 19:28:13 2012	(r235735)
@@ -1,8 +1,8 @@
 #!/bin/sh
+#
+# $FreeBSD$
+#
 
 cd $(dirname $(realpath $0))
 
-../script/fbce_create.pl model \
-    FBCE DBIC::Schema FBCE::Schema \
-    create=static \
-    "dbi:Pg:dbname=fbce" fbce
+../script/fbce_create.pl model FBCE DBIC::Schema FBCE::Schema

Modified: user/des/fbce/fbce.conf
==============================================================================
--- user/des/fbce/fbce.conf	Mon May 21 19:04:56 2012	(r235734)
+++ user/des/fbce/fbce.conf	Mon May 21 19:28:13 2012	(r235735)
@@ -1,5 +1,15 @@
+# $FreeBSD$
+
 title = 2012 FreeBSD Core Team Election
 
+<Model::FBCE>
+  <connect_info>
+    dsn = "dbi:Pg:dbname=dbname"
+    user = "user"
+    password = "password"
+  </connect_info>
+</Model::FBCE>
+
 <Model::Schedule>
   nominating_starts = 2012-05-23 00:00:00 UTC
   nominating_ends = 2012-05-30 00:00:00 UTC

Modified: user/des/fbce/lib/FBCE/Model/FBCE.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Model/FBCE.pm	Mon May 21 19:04:56 2012	(r235734)
+++ user/des/fbce/lib/FBCE/Model/FBCE.pm	Mon May 21 19:28:13 2012	(r235735)
@@ -5,12 +5,6 @@ use base 'Catalyst::Model::DBIC::Schema'
 
 __PACKAGE__->config(
     schema_class => 'FBCE::Schema',
-    
-    connect_info => {
-        dsn => 'dbi:Pg:dbname=fbce',
-        user => 'fbce',
-        password => '',
-    }
 );
 
 =head1 NAME

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 19:28:59 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E91361065674;
	Mon, 21 May 2012 19:28:59 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D4FEE8FC1E;
	Mon, 21 May 2012 19:28:59 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LJSxO8069954;
	Mon, 21 May 2012 19:28:59 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LJSxmf069952;
	Mon, 21 May 2012 19:28:59 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211928.q4LJSxmf069952@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 19:28:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235736 - user/des/fbce/lib/FBCE/Model
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 19:29:00 -0000

Author: des
Date: Mon May 21 19:28:59 2012
New Revision: 235736
URL: http://svn.freebsd.org/changeset/base/235736

Log:
  Forgot to commit the (re)generated version.

Modified:
  user/des/fbce/lib/FBCE/Model/FBCE.pm

Modified: user/des/fbce/lib/FBCE/Model/FBCE.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Model/FBCE.pm	Mon May 21 19:28:13 2012	(r235735)
+++ user/des/fbce/lib/FBCE/Model/FBCE.pm	Mon May 21 19:28:59 2012	(r235736)
@@ -5,6 +5,8 @@ use base 'Catalyst::Model::DBIC::Schema'
 
 __PACKAGE__->config(
     schema_class => 'FBCE::Schema',
+    
+    
 );
 
 =head1 NAME
@@ -35,5 +37,3 @@ it under the same terms as Perl itself.
 =cut
 
 1;
-
-# $FreeBSD$

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 19:53:23 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E83E2106566C;
	Mon, 21 May 2012 19:53:23 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 979C08FC08;
	Mon, 21 May 2012 19:53:23 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LJrNlI070660;
	Mon, 21 May 2012 19:53:23 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LJrNGi070658;
	Mon, 21 May 2012 19:53:23 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205211953.q4LJrNGi070658@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 19:53:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235737 - user/des/fbce/lib/FBCE/Schema/Result
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 19:53:24 -0000

Author: des
Date: Mon May 21 19:53:22 2012
New Revision: 235737
URL: http://svn.freebsd.org/changeset/base/235737

Log:
  Replace MD5 with SHA-1

Modified:
  user/des/fbce/lib/FBCE/Schema/Result/Person.pm

Modified: user/des/fbce/lib/FBCE/Schema/Result/Person.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Mon May 21 19:28:59 2012	(r235736)
+++ user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Mon May 21 19:53:22 2012	(r235737)
@@ -216,7 +216,7 @@ use Digest::MD5 qw(md5_hex);
 sub set_password($$) {
     my ($self, $password) = @_;
 
-    my $csh = new Crypt::SaltedHash(algorithm => 'MD5');
+    my $csh = new Crypt::SaltedHash(algorithm => 'SHA-1');
     $csh->add($password);
     $self->set_column(password => $csh->generate());
     $self->update()

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:38:40 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 17660106566C;
	Mon, 21 May 2012 23:38:40 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BB7898FC0C;
	Mon, 21 May 2012 23:38:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNcd13078286;
	Mon, 21 May 2012 23:38:39 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNcdj2078284;
	Mon, 21 May 2012 23:38:39 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212338.q4LNcdj2078284@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:38:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235752 - user/des/fbce/lib/FBCE/Schema/Result
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:38:40 -0000

Author: des
Date: Mon May 21 23:38:38 2012
New Revision: 235752
URL: http://svn.freebsd.org/changeset/base/235752

Log:
  Add support for https gravatars.

Modified:
  user/des/fbce/lib/FBCE/Schema/Result/Person.pm

Modified: user/des/fbce/lib/FBCE/Schema/Result/Person.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Mon May 21 22:54:33 2012	(r235751)
+++ user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Mon May 21 23:38:38 2012	(r235752)
@@ -260,11 +260,15 @@ sub commit($) {
 #
 # Gravatar URL
 #
-sub gravatar($) {
-    my ($self) = @_;
+sub gravatar($;$) {
+    my ($self, $scheme) = @_;
 
     my $md5 = md5_hex($self->login . "\@freebsd.org");
-    return "http://www.gravatar.com/avatar/$md5";
+    if ($scheme eq 'https') {
+	return "https://secure.gravatar.com/avatar/$md5";
+    } else {
+	return "http://www.gravatar.com/avatar/$md5";
+    }
 }
 
 1;

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:41:40 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 42C361065670;
	Mon, 21 May 2012 23:41:40 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CD4088FC08;
	Mon, 21 May 2012 23:41:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNfduN078382;
	Mon, 21 May 2012 23:41:39 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNfdZT078379;
	Mon, 21 May 2012 23:41:39 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212341.q4LNfdZT078379@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:41:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235753 - user/des/fbce/lib/FBCE/Controller
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:41:40 -0000

Author: des
Date: Mon May 21 23:41:39 2012
New Revision: 235753
URL: http://svn.freebsd.org/changeset/base/235753

Log:
  Verify that the user is an active committer.

Modified:
  user/des/fbce/lib/FBCE/Controller/Run.pm
  user/des/fbce/lib/FBCE/Controller/Vote.pm

Modified: user/des/fbce/lib/FBCE/Controller/Run.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Controller/Run.pm	Mon May 21 23:38:38 2012	(r235752)
+++ user/des/fbce/lib/FBCE/Controller/Run.pm	Mon May 21 23:41:39 2012	(r235753)
@@ -33,7 +33,7 @@ sub register :Local :Args(0) {
 
 #    $c->authenticate();
     my $user = $c->user->get_object();
-    if ($c->stash->{'nominating'} != 0) {
+    if ($c->stash->{'nominating'} != 0 || !$user->active) {
 	$c->res->redirect($c->uri_for('/run'));
 	$c->detach();
     }
@@ -64,7 +64,7 @@ sub edit :Local :Args(0) {
 
 #    $c->authenticate();
     my $user = $c->user->get_object();
-    if ($c->stash->{'nominating'} != 0) {
+    if ($c->stash->{'nominating'} != 0 || !$user->active) {
 	$c->res->redirect($c->uri_for('/run'));
 	$c->detach();
     }
@@ -94,7 +94,7 @@ sub withdraw :Local :Args(0) {
 
 #    $c->authenticate();
     my $user = $c->user->get_object();
-    if ($c->stash->{'nominating'} != 0) {
+    if ($c->stash->{'nominating'} != 0 || !$user->active) {
 	$c->res->redirect($c->uri_for('/run'));
 	$c->detach();
     }

Modified: user/des/fbce/lib/FBCE/Controller/Vote.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Controller/Vote.pm	Mon May 21 23:38:38 2012	(r235752)
+++ user/des/fbce/lib/FBCE/Controller/Vote.pm	Mon May 21 23:41:39 2012	(r235753)
@@ -25,8 +25,8 @@ sub index :Path :Args(0) {
 
     my $user = $c->user->get_object();
     $c->stash(user => $user);
-    if ($c->stash->{'phase'} != 0) {
-	return;
+    if ($c->stash->{'voting'} != 0 || !$user->active) {
+	$c->detach();
     }
     my $p = $c->req->params;
     if ($p->{cancel}) {
@@ -79,7 +79,7 @@ sub index :Path :Args(0) {
 
 #     $c->authenticate();
 #     my $user = $c->user->get_object();
-#     if ($c->stash->{'phase'} != 0) {
+#     if ($c->stash->{'voting'} != 0 || !$user->active) {
 # 	$c->res->redirect($c->uri_for('/vote'));
 # 	$c->detach();
 #     }

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:42:39 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 897411065673;
	Mon, 21 May 2012 23:42:39 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 750BF8FC0A;
	Mon, 21 May 2012 23:42:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNgd4w078447;
	Mon, 21 May 2012 23:42:39 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNgd82078444;
	Mon, 21 May 2012 23:42:39 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212342.q4LNgd82078444@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:42:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235754 - in user/des/fbce/root: see static
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:42:39 -0000

Author: des
Date: Mon May 21 23:42:38 2012
New Revision: 235754
URL: http://svn.freebsd.org/changeset/base/235754

Log:
  Use a smaller gravatar.  Add a margin around it.  Use https if required.

Modified:
  user/des/fbce/root/see/candidate.tt
  user/des/fbce/root/static/fbce.css

Modified: user/des/fbce/root/see/candidate.tt
==============================================================================
--- user/des/fbce/root/see/candidate.tt	Mon May 21 23:41:39 2012	(r235753)
+++ user/des/fbce/root/see/candidate.tt	Mon May 21 23:42:38 2012	(r235754)
@@ -2,7 +2,7 @@
 [% PROCESS lib/header %]
 [% WRAPPER lib/main %]
 
-<img class="candidate-portrait" src="[% candidate.gravatar | html %]"/>
+<img class="candidate-portrait" src="[% candidate.gravatar(c.request.secure ? 'https' : 'http') | html %]?s=64&d=mm"/>
 <h2 class="candidate-name">[% candidate.name | html %] ([% candidate.login %])</h2>
 <div class="statement">
   <h3 class="statement-title">[% candidate.statement.short | html %]</h3>

Modified: user/des/fbce/root/static/fbce.css
==============================================================================
--- user/des/fbce/root/static/fbce.css	Mon May 21 23:41:39 2012	(r235753)
+++ user/des/fbce/root/static/fbce.css	Mon May 21 23:42:38 2012	(r235754)
@@ -163,6 +163,7 @@ th {
  */
 .candidate-portrait {
     float: left;
+    margin: 8px;
 }
 
 .candidate-name {

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:45:44 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 76B1E106566C;
	Mon, 21 May 2012 23:45:44 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 628988FC15;
	Mon, 21 May 2012 23:45:44 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNjirj078584;
	Mon, 21 May 2012 23:45:44 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNjhr0078581;
	Mon, 21 May 2012 23:45:43 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212345.q4LNjhr0078581@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:45:43 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235755 - in user/des/fbce: lib/FBCE/Controller root
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:45:44 -0000

Author: des
Date: Mon May 21 23:45:43 2012
New Revision: 235755
URL: http://svn.freebsd.org/changeset/base/235755

Log:
  Remove the *very* dated "what does core do" page.
  Add a help page.

Added:
  user/des/fbce/root/help.tt
Deleted:
  user/des/fbce/root/mission.tt
Modified:
  user/des/fbce/lib/FBCE/Controller/Root.pm

Modified: user/des/fbce/lib/FBCE/Controller/Root.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Controller/Root.pm	Mon May 21 23:42:38 2012	(r235754)
+++ user/des/fbce/lib/FBCE/Controller/Root.pm	Mon May 21 23:45:43 2012	(r235755)
@@ -48,7 +48,7 @@ sub auto :Private {
     $c->stash(max_votes => $schedule->{'max_votes'});
 
     # Authentication
-    if ($c->request->path !~ m/^(login|logout|bylaws|mission|static\/.*)?$/) {
+    if ($c->request->path !~ m/^(login|logout|bylaws|help|static\/.*)?$/) {
 	if (!$c->user_exists) {
 	    $c->stash(action => $c->uri_for());
 	    $c->stash(template => 'login.tt');
@@ -101,7 +101,7 @@ sub bylaws :Local :Args(0) {
 
 }
 
-sub mission :Local :Args(0) {
+sub help :Local :Args(0) {
     my ($self, $c) = @_;
 
 }

Added: user/des/fbce/root/help.tt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/root/help.tt	Mon May 21 23:45:43 2012	(r235755)
@@ -0,0 +1,11 @@
+[% PROCESS lib/html_top %]
+[% PROCESS lib/header %]
+[% WRAPPER lib/main %]
+
+<a name="help"></a>
+<h2>Help</h2>
+[% PROCESS lib/help %]
+
+[% END %]
+[% PROCESS lib/footer %]
+[% PROCESS lib/html_bottom %]

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:46:40 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 17F51106564A;
	Mon, 21 May 2012 23:46:40 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DF8528FC16;
	Mon, 21 May 2012 23:46:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNkdY5078638;
	Mon, 21 May 2012 23:46:39 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNkdi8078636;
	Mon, 21 May 2012 23:46:39 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212346.q4LNkdi8078636@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:46:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235756 - user/des/fbce/root/lib
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:46:40 -0000

Author: des
Date: Mon May 21 23:46:39 2012
New Revision: 235756
URL: http://svn.freebsd.org/changeset/base/235756

Log:
  Link to the help page.

Modified:
  user/des/fbce/root/lib/navigation

Modified: user/des/fbce/root/lib/navigation
==============================================================================
--- user/des/fbce/root/lib/navigation	Mon May 21 23:45:43 2012	(r235755)
+++ user/des/fbce/root/lib/navigation	Mon May 21 23:46:39 2012	(r235756)
@@ -8,5 +8,6 @@
     [% IF user.admin %]
     <li><a href="[% c.uri_for('/admin') | html %]">Admin</a></li>
     [% END %]
+    <li><a href="[% c.uri_for('/help') | html %]">Help</a></li>
   </ul>
 </div>

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:47:33 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 076751065673;
	Mon, 21 May 2012 23:47:33 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AC10F8FC12;
	Mon, 21 May 2012 23:47:32 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNlWPT078695;
	Mon, 21 May 2012 23:47:32 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNlWQL078693;
	Mon, 21 May 2012 23:47:32 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212347.q4LNlWQL078693@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:47:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235757 - user/des/fbce/root/lib
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:47:33 -0000

Author: des
Date: Mon May 21 23:47:31 2012
New Revision: 235757
URL: http://svn.freebsd.org/changeset/base/235757

Log:
  Show the user's status (active / inactive).
  Add an action parameter to the login link.

Modified:
  user/des/fbce/root/lib/loginout

Modified: user/des/fbce/root/lib/loginout
==============================================================================
--- user/des/fbce/root/lib/loginout	Mon May 21 23:46:39 2012	(r235756)
+++ user/des/fbce/root/lib/loginout	Mon May 21 23:47:31 2012	(r235757)
@@ -1,8 +1,8 @@
 <div class="loginout">
   <div class="datetime">[% PROCESS lib/datetime dt=now %]</div>
   [% IF user %]
-  Logged in as [% user.name | html %] &ndash; <a href="[% c.uri_for('/logout') | html %]">Log out</a>
+  Logged in as [% user.name | html %] ([% IF user.active %]active[% ELSE %]inactive[% END %]) &ndash; <a href="[% c.uri_for('/logout') | html %]">Log out</a>
   [% ELSE %]
-  <a href="[% c.uri_for('/login') | html %]">Log in</a>
+  <a href="[% c.uri_for('/login', { action => c.req.uri }) | html %]">Log in</a>
   [% END %]
 </div>

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:48:10 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 9989F1065677;
	Mon, 21 May 2012 23:48:10 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6B5CC8FC12;
	Mon, 21 May 2012 23:48:10 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNmAZX078753;
	Mon, 21 May 2012 23:48:10 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNmAR6078751;
	Mon, 21 May 2012 23:48:10 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212348.q4LNmAR6078751@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:48:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235758 - user/des/fbce/root/lib
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:48:10 -0000

Author: des
Date: Mon May 21 23:48:09 2012
New Revision: 235758
URL: http://svn.freebsd.org/changeset/base/235758

Log:
  Remove the enclosing div element.

Modified:
  user/des/fbce/root/lib/bylaws

Modified: user/des/fbce/root/lib/bylaws
==============================================================================
--- user/des/fbce/root/lib/bylaws	Mon May 21 23:47:31 2012	(r235757)
+++ user/des/fbce/root/lib/bylaws	Mon May 21 23:48:09 2012	(r235758)
@@ -1,22 +1,20 @@
-<div class="bylaws">
-  <ul>
-    <li>Active committers have made a commit to the tree in the last 12 months.</li>
-    <li>Core consists of 9 elected active committers.</li>
-    <li>Core elections are held every 2 years, first time September 2000.</li>
-    <li>Core members and committers may be ejected by a 2/3 vote of core.</li>
-    <li>If the size of core falls below 7, an early election is held.</li>
-    <li>A petition of 1/3 of active committers can trigger an early election.</li>
-    <li>All elections will be run as follows:
-      <ul>
-	<li>Core appoints and announces someone to run the election.</li>
-	<li>1 week to tally active committers wishing to run for core.</li>
-	<li>4 weeks for the actual vote.</li>
-	<li>1 week to tally and post the results.</li>
-	<li>Each active committer may vote once in support of up to nine nominees.</li>
-	<li>New core team becomes effective 1 week after the results are posted.</li>
-	<li>Voting ties decided by unambiguously elected new core members.</li>
-      </ul>
-    </li>
-    <li>These rules can be changed by a 2/3 majority of committers if at least 50% of active committers cast their vote.</li>
-  </ul>
-</div>
+<ul>
+  <li>Active committers have made a commit to the tree in the last 12 months.</li>
+  <li>Core consists of 9 elected active committers.</li>
+  <li>Core elections are held every 2 years, first time September 2000.</li>
+  <li>Core members and committers may be ejected by a 2/3 vote of core.</li>
+  <li>If the size of core falls below 7, an early election is held.</li>
+  <li>A petition of 1/3 of active committers can trigger an early election.</li>
+  <li>All elections will be run as follows:
+    <ul>
+      <li>Core appoints and announces someone to run the election.</li>
+      <li>1 week to tally active committers wishing to run for core.</li>
+      <li>4 weeks for the actual vote.</li>
+      <li>1 week to tally and post the results.</li>
+      <li>Each active committer may vote once in support of up to nine nominees.</li>
+      <li>New core team becomes effective 1 week after the results are posted.</li>
+      <li>Voting ties decided by unambiguously elected new core members.</li>
+    </ul>
+  </li>
+  <li>These rules can be changed by a 2/3 majority of committers if at least 50% of active committers cast their vote.</li>
+</ul>

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:48:28 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 059C2106566B;
	Mon, 21 May 2012 23:48:28 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E41A28FC14;
	Mon, 21 May 2012 23:48:27 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNmR4l078802;
	Mon, 21 May 2012 23:48:27 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNmR1m078796;
	Mon, 21 May 2012 23:48:27 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212348.q4LNmR1m078796@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:48:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235759 - in user/des/fbce/root: run vote
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:48:28 -0000

Author: des
Date: Mon May 21 23:48:27 2012
New Revision: 235759
URL: http://svn.freebsd.org/changeset/base/235759

Log:
  Add checks for active / inactive users.

Modified:
  user/des/fbce/root/run/edit.tt
  user/des/fbce/root/run/index.tt
  user/des/fbce/root/run/register.tt
  user/des/fbce/root/run/withdraw.tt
  user/des/fbce/root/vote/index.tt

Modified: user/des/fbce/root/run/edit.tt
==============================================================================
--- user/des/fbce/root/run/edit.tt	Mon May 21 23:48:09 2012	(r235758)
+++ user/des/fbce/root/run/edit.tt	Mon May 21 23:48:27 2012	(r235759)
@@ -4,18 +4,16 @@
 
 [% PROCESS run/when %]
 
-[% IF nominating == 0 %]
+[% IF !user.active %]
+<p>You are not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
+[% ELSIF nominating == 0 %]
 <form method="post" action="">
-  <fieldset>
-    <legend>Slogan</legend>
-    <input name="short" size="80" maxlength="64" value="[% short | html %]"/>
-  </fieldset>
-  <fieldset>
-    <legend>Statement</legend>
-    <textarea name="long" cols="80" rows="24">[% long | html %]</textarea>
+  <p>Slogan</p>
+  <input name="short" size="80" maxlength="64" value="[% short | html %]"/>
+  <p>Statement (<a href="http://search.cpan.org/~chromatic/Text-WikiFormat-0.79/lib/Text/WikiFormat.pm#Wiki_Format">WikiFormat</a>)</p> 
+  <textarea name="long" cols="80" rows="24">[% long | html %]</textarea>
   </fieldset>
   <div>
-    <span class="help"><a href="http://search.cpan.org/~chromatic/Text-WikiFormat-0.79/lib/Text/WikiFormat.pm#Wiki_Format">WikiFormat syntax</a></span>
     <input type="submit" name="submit" value="Update my statement!"/>
     <input type="submit" name="cancel" value="No, I'm fine."/>
     <input type="reset" value="Undo"/>

Modified: user/des/fbce/root/run/index.tt
==============================================================================
--- user/des/fbce/root/run/index.tt	Mon May 21 23:48:09 2012	(r235758)
+++ user/des/fbce/root/run/index.tt	Mon May 21 23:48:27 2012	(r235759)
@@ -4,7 +4,9 @@
 
 [% PROCESS run/when %]
 
-[% IF user.statement.defined %]
+[% IF !user.active %]
+<p>You are not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
+[% ELSIF user.statement.defined %]
 <p>You have registered as a candidate in the 2010 FreeBSD Core Team election.  You have provided the following statement:</p>
 
 <div class="statement"> 
@@ -13,14 +15,11 @@
     [% user.statement.long_html %]
   </div>
 </div>
-[% END %]
-
-[% IF nominating == 0 %]
-  [% IF user.statement.defined %]
+  [% IF nominating == 0 %]
 <p>You can <a href="[% c.uri_for('/run/edit') | html %]">edit your statement</a> or <a href="[% c.uri_for('/run/withdraw') | html %]">withdraw your candidacy</a>.</p>
-  [% ELSE %]
-<p>You can <a href="[% c.uri_for('/run/register') | html %]">register your candidacy</a> in the 2010 FreeBSD Core Team election.</p>
   [% END %]
+[% ELSIF nominating == 0 %]
+<p>You can <a href="[% c.uri_for('/run/register') | html %]">register your candidacy</a> in the election.</p>
 [% END %]
 
 [% END %]

Modified: user/des/fbce/root/run/register.tt
==============================================================================
--- user/des/fbce/root/run/register.tt	Mon May 21 23:48:09 2012	(r235758)
+++ user/des/fbce/root/run/register.tt	Mon May 21 23:48:27 2012	(r235759)
@@ -4,12 +4,15 @@
 
 [% PROCESS run/when %]
 
-[% IF nominating == 0 %]
+[% IF !user.active %]
+<p>You are not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
+[% ELSIF nominating == 0 %]
 <p>To register as a candidate in the election, enter the following information:</p>
 <ul>
   <li>A short slogan which will appear next to your name on the list of candidates and at the top of your candidate page;</li>
   <li>A longer statement about your background, why you are running and what you intend to do if elected.</li>
 </ul>
+<p>If you have a <a href="http://en.gravatar.com/">Gravatar</a>, it will appear next to your statement.</p>
 <form method="post" action="">
   <p>Slogan</p>
   <input name="short" size="80" maxlength="64" value="[% short | html %]"/>

Modified: user/des/fbce/root/run/withdraw.tt
==============================================================================
--- user/des/fbce/root/run/withdraw.tt	Mon May 21 23:48:09 2012	(r235758)
+++ user/des/fbce/root/run/withdraw.tt	Mon May 21 23:48:27 2012	(r235759)
@@ -2,12 +2,18 @@
 [% PROCESS lib/header %]
 [% WRAPPER lib/main %]
 
+[% IF !user.active %]
+<p>You are not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
+[% ELSIF !user.statement.defined %]
+<p>You have not registered as a candidate.</p>
+[% ELSE %]
 <p>Are you sure you want to withdraw your candidacy?  Note that your statement will be permanently deleted from the database; if you change your mind, you will have to start over.</p>
 
 <form method="post" action="">
   <input type="submit" name="submit" value="I'm outta here!"/>
   <input type="submit" name="cancel" value="No, I'll stay."/>
 </form>
+[% END %]
 
 [% END %]
 [% PROCESS lib/footer %]

Modified: user/des/fbce/root/vote/index.tt
==============================================================================
--- user/des/fbce/root/vote/index.tt	Mon May 21 23:48:09 2012	(r235758)
+++ user/des/fbce/root/vote/index.tt	Mon May 21 23:48:27 2012	(r235759)
@@ -29,7 +29,10 @@
 [% WRAPPER lib/main %]
 
 [% PROCESS vote/when %]
-[% IF voting == 0 %]
+
+[% IF !user.active %]
+<p>You are not qualified to vote in the election.  If you believe this is incorrect, please contact the election administrator.</p>
+[% ELSIF voting == 0 %]
   [% IF candidates.count == 0 %]
   <p>There are no candidates to vote for.</p>
   [% ELSE %]
@@ -54,7 +57,7 @@
       [% login = candidate.login %]
       <tr>
 	<td><input type="checkbox" name="vote_for_[% login %]" id="vote_for_[% login %]"[% IF voted_for.$login %] checked="checked"[% END %] onclick="updateTotal()"/></td>
-	<td><label for="vote_for_[% login %]">[% candidate.name | html %]</label></td>
+	<td><label for="vote_for_[% login %]">[% candidate.name | html %]:</label></td>
 	<td><a href="[% c.uri_for('/see/candidate', login) | html %]">[% candidate.statement.short | html %]</a></td>
       </tr>
       [% END %]

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:49:15 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8E873106567C;
	Mon, 21 May 2012 23:49:15 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2E6888FC0C;
	Mon, 21 May 2012 23:49:15 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNnEFc078855;
	Mon, 21 May 2012 23:49:14 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNnEnQ078852;
	Mon, 21 May 2012 23:49:14 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212349.q4LNnEnQ078852@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:49:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235760 - in user/des/fbce: . lib/FBCE/Model
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:49:15 -0000

Author: des
Date: Mon May 21 23:49:14 2012
New Revision: 235760
URL: http://svn.freebsd.org/changeset/base/235760

Log:
  Add a configuration setting for the cutoff period.

Modified:
  user/des/fbce/fbce.conf
  user/des/fbce/lib/FBCE/Model/Schedule.pm

Modified: user/des/fbce/fbce.conf
==============================================================================
--- user/des/fbce/fbce.conf	Mon May 21 23:48:27 2012	(r235759)
+++ user/des/fbce/fbce.conf	Mon May 21 23:49:14 2012	(r235760)
@@ -19,6 +19,7 @@ title = 2012 FreeBSD Core Team Election
   investiture = 2012-07-04
   # XXX does not belong here
   max_votes = 9
+  cutoff = 1 year
 </Model::Schedule>
 
 <Session>

Modified: user/des/fbce/lib/FBCE/Model/Schedule.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Model/Schedule.pm	Mon May 21 23:48:27 2012	(r235759)
+++ user/des/fbce/lib/FBCE/Model/Schedule.pm	Mon May 21 23:49:14 2012	(r235760)
@@ -1,7 +1,7 @@
 package FBCE::Model::Schedule;
 use Moose;
 use MooseX::Types::Common::Numeric qw(PositiveInt);
-use MooseX::Types::DateTime::MoreCoercions qw(DateTime);
+use MooseX::Types::DateTime::MoreCoercions qw(DateTime Duration);
 use DateTime;
 use namespace::autoclean;
 
@@ -66,6 +66,14 @@ has max_votes => (
     required => 1
 );
 
+# XXX does not belong here
+has cutoff => (
+    isa => Duration,
+    coerce => 1,
+    is => 'ro',
+    required => 1,
+);
+
 sub _phase($$$) {
     my ($self, $phase, $now) = @_;
 

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:49:43 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 78D11106566C;
	Mon, 21 May 2012 23:49:43 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2A3908FC08;
	Mon, 21 May 2012 23:49:42 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNngqn078897;
	Mon, 21 May 2012 23:49:42 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNngsF078895;
	Mon, 21 May 2012 23:49:42 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212349.q4LNngsF078895@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:49:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235761 - user/des/fbce/db
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:49:43 -0000

Author: des
Date: Mon May 21 23:49:42 2012
New Revision: 235761
URL: http://svn.freebsd.org/changeset/base/235761

Log:
  Add a default value for the password column.

Modified:
  user/des/fbce/db/fbce.sql

Modified: user/des/fbce/db/fbce.sql
==============================================================================
--- user/des/fbce/db/fbce.sql	Mon May 21 23:49:14 2012	(r235760)
+++ user/des/fbce/db/fbce.sql	Mon May 21 23:49:42 2012	(r235761)
@@ -7,7 +7,7 @@ create table persons (
         id serial primary key,
         login varchar not null,
         realname varchar null,
-        password varchar not null,
+        password varchar not null default '*',
         admin boolean not null default false,
 	active boolean not null default false,
         incumbent boolean not null default false,

From owner-svn-src-user@FreeBSD.ORG  Mon May 21 23:50:20 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id DCB33106566C;
	Mon, 21 May 2012 23:50:20 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C90638FC15;
	Mon, 21 May 2012 23:50:20 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4LNoKsk078964;
	Mon, 21 May 2012 23:50:20 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4LNoKOg078962;
	Mon, 21 May 2012 23:50:20 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205212350.q4LNoKOg078962@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Mon, 21 May 2012 23:50:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235762 - user/des/fbce/lib/FBCE/Schema/Result
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2012 23:50:20 -0000

Author: des
Date: Mon May 21 23:50:20 2012
New Revision: 235762
URL: http://svn.freebsd.org/changeset/base/235762

Log:
  Regenerate

Modified:
  user/des/fbce/lib/FBCE/Schema/Result/Person.pm

Modified: user/des/fbce/lib/FBCE/Schema/Result/Person.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Mon May 21 23:49:42 2012	(r235761)
+++ user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Mon May 21 23:50:20 2012	(r235762)
@@ -57,6 +57,7 @@ __PACKAGE__->table("persons");
 =head2 password
 
   data_type: 'text'
+  default_value: '*'
   is_nullable: 0
   original: {data_type => "varchar"}
 
@@ -114,9 +115,10 @@ __PACKAGE__->add_columns(
   },
   "password",
   {
-    data_type   => "text",
-    is_nullable => 0,
-    original    => { data_type => "varchar" },
+    data_type     => "text",
+    default_value => "*",
+    is_nullable   => 0,
+    original      => { data_type => "varchar" },
   },
   "admin",
   { data_type => "boolean", default_value => \"false", is_nullable => 0 },
@@ -204,8 +206,8 @@ __PACKAGE__->has_many(
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.07022 @ 2012-05-07 16:18:46
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:C2SLY4P5C5iAf42VtNDqgQ
+# Created by DBIx::Class::Schema::Loader v0.07024 @ 2012-05-21 23:49:53
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QtgEo2NXwa8v6FRHUuQ/Lg
 
 use Crypt::SaltedHash;
 use Digest::MD5 qw(md5_hex);

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 00:24:17 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 76725106564A;
	Tue, 22 May 2012 00:24:17 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 574FB8FC08;
	Tue, 22 May 2012 00:24:17 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4M0OGPX079908;
	Tue, 22 May 2012 00:24:16 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4M0OG7O079906;
	Tue, 22 May 2012 00:24:16 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205220024.q4M0OG7O079906@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 00:24:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235765 - user/des/fbce/lib/FBCE/Script
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 00:24:17 -0000

Author: des
Date: Tue May 22 00:24:16 2012
New Revision: 235765
URL: http://svn.freebsd.org/changeset/base/235765

Log:
  Add smash (mark all users inactive) and pull (create / update users
  based on peter@'s lists).

Modified:
  user/des/fbce/lib/FBCE/Script/User.pm   (contents, props changed)

Modified: user/des/fbce/lib/FBCE/Script/User.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Script/User.pm	Tue May 22 00:00:17 2012	(r235764)
+++ user/des/fbce/lib/FBCE/Script/User.pm	Tue May 22 00:24:16 2012	(r235765)
@@ -16,30 +16,168 @@ has debug => (
     cmd_aliases   => 'd',
     isa           => Bool,
     is            => 'ro',
-    documentation => q{Force debug mode},
+    documentation => q{Debugging mode},
 );
 
+# XXX should be traits
+our %lwp_options = (
+    timeout => 10,
+    env_proxy => 1,
+    keep_alive => 1,
+);
+
+# Cutoff URLs for various repos
+sub cutoff_url($) { "http://people.freebsd.org/~peter/$_[0].cutoff.txt" }
+
+#
+# Download and parse Peter Wemm's cutoff list for a specific repo
+#
+sub retrieve_cutoff_data($$) {
+    my ($self, $repo) = @_;
+
+    # create new user agent unless one already exists
+    $self->{user_agent} //= LWP::UserAgent->new(%lwp_options);
+    my $url = cutoff_url($repo);
+    my $req = HTTP::Request->new(GET => $url);
+    warn("Retrieving $url...\n")
+	if $self->debug;
+    my $res = $self->{user_agent}->request($req);
+    if (!$res->is_success()) {
+	die("$url: " . $res->status_line() . "\n");
+    }
+    my $cutoff = $res->decoded_content();
+    foreach (split('\n', $cutoff)) {
+	#
+	# Each line looks like this:
+	#
+	# 20120430 ok         84    95 des
+	#
+	# The first column is the date of the last commit.  The second
+	# column is "ok" if this committer has a commit bit in this
+	# repo, "visitor" if they have a commit bit in a different
+	# repo or "-" if they are retired.  The third and fourth
+	# columns are not relevant to us.  The fifth is the freefall
+	# login.
+	#
+	next unless m/^(\d\d\d\d)(\d\d)(\d\d)\s+
+                       (?:ok|visitor)\s+
+                       (?:\d+)\s+
+                       (?:\d+)\s+
+                       (\w+)\s*$/x &&
+		       $1 > 0 && $2 > 0 && $3 > 0;
+	my $date = DateTime->new(year => $1, month => $2, day => $3,
+				 time_zone => 'UTC');
+	my $login = $4;
+	if (defined($self->{committers}->{$login}) &&
+	    DateTime->compare($date, $self->{committers}->{$login}) < 0) {
+	    warn(sprintf("skipping %s: %s < %s\n", $login, $date->ymd(),
+			 $self->{committers}->{$login}->ymd()))
+		if $self->debug;
+	} else {
+	    warn(sprintf("adding %s: %s (%s)\n", $login, $date->ymd(), $repo))
+		if $self->debug;
+	    $self->{committers}->{$login} = $date;
+	}
+    }
+}
+
+#
+# List existing users
+#
 sub cmd_list(@) {
     my ($self) = @_;
 
     die("too many arguments")
 	if @{$self->ARGV};
-    my $rs = FBCE->model('FBCE::Person');
-    foreach my $person ($rs->all()) {
-	print $person->login, "\n";
+    my $persons = FBCE->model('FBCE::Person')->
+	search({}, { order_by => 'login' });
+    printf("%-16s%-8s%-8s%s\n",
+	   'login',
+	   'active',
+	   'admin',
+	   'name');
+    foreach my $person ($persons->all()) {
+	printf("%-16s%-8s%-8s%s\n",
+	       $person->login(),
+	       $person->active() ? 'yes' : 'no',
+	       $person->admin() ? 'yes' : 'no',
+	       $person->name());
     }
 }
 
+#
+# Mark all users inactive
+#
+sub cmd_smash(@) {
+    my ($self) = @_;
+
+    my $persons = FBCE->model('FBCE::Person')->search();
+    my $schema = $persons->result_source()->schema();
+    $schema->txn_do(sub {
+	while (my $person = $persons->next) {
+	    $person->update({ active => 0 });
+	}
+    });
+}
+
+#
+# Pull the list of active committers; create users for committers that
+# don't already have one, and set the active bit.
+#
+sub cmd_pull(@) {
+    my ($self) = @_;
+
+    # cutoff duration from config
+    my $cutoff_duration = FBCE->model('Schedule')->cutoff;
+
+    # cutoff date: start out with current time (UTC)
+    my $cutoff_date = DateTime->now(time_zone => 'UTC');
+    # round down to midnight
+    $cutoff_date->set(hour => 0, minute => 0, second => 0);
+    # subtract the cutoff duration
+    $cutoff_date->subtract_duration($cutoff_duration);
+    warn(sprintf("Setting cutoff date to %sT%sZ\n",
+		 $cutoff_date->ymd(), $cutoff_date->hms()))
+	if $self->debug;
+
+    # pull "last commit" data for src, ports and doc / www repos
+    foreach my $repo (qw(src ports docwww)) {
+	$self->retrieve_cutoff_data($repo);
+    }
+
+    # insert it into the database
+    my $persons = FBCE->model('FBCE::Person');
+    my $schema = $persons->result_source()->schema();
+    $schema->txn_do(sub {
+	while (my ($login, $last_commit) = each(%{$self->{committers}})) {
+	    my $person = $persons->find_or_new({ login => $login });
+	    my $active =
+		DateTime->compare($last_commit, $cutoff_date) >= 0 ? 1 : 0;
+	    warn(sprintf("%s %s (%s)\n",
+			 $person->in_storage() ? 'updating' : 'inserting',
+			 $person->login(),
+			 $active ? 'active' : 'inactive'))
+		if $self->debug;
+	    $person->set_column(active => $active);
+	    $person->update_or_insert();
+	}
+    });
+}
+
 sub run($) {
     my ($self) = @_;
 
     local $ENV{CATALYST_DEBUG} = 1
         if $self->debug;
 
-    my $command = shift(@{$self->ARGV})
+    my $command = shift(@{$self->extra_argv})
 	or die("command required\n");
-    if ($command eq 'list') {	
-	$self->cmd_list();
+    if ($command eq 'list') {
+	$self->cmd_list(@{$self->extra_argv});
+    } elsif ($command eq 'smash') {
+	$self->cmd_smash(@{$self->extra_argv});
+    } elsif ($command eq 'pull') {
+	$self->cmd_pull(@{$self->extra_argv});
     } else {
 	die("unrecognized command.\n");
     }
@@ -48,3 +186,5 @@ sub run($) {
 __PACKAGE__->meta->make_immutable;
 
 1;
+
+# $FreeBSD$

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 00:32:31 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 75E99106564A;
	Tue, 22 May 2012 00:32:31 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 60E108FC12;
	Tue, 22 May 2012 00:32:31 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4M0WVh4080124;
	Tue, 22 May 2012 00:32:31 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4M0WU1S080122;
	Tue, 22 May 2012 00:32:30 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205220032.q4M0WU1S080122@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 00:32:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235766 - user/des/fbce/lib/FBCE/Schema/Result
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 00:32:31 -0000

Author: des
Date: Tue May 22 00:32:30 2012
New Revision: 235766
URL: http://svn.freebsd.org/changeset/base/235766

Log:
  Add a method that returns the person's email address.

Modified:
  user/des/fbce/lib/FBCE/Schema/Result/Person.pm

Modified: user/des/fbce/lib/FBCE/Schema/Result/Person.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Tue May 22 00:24:16 2012	(r235765)
+++ user/des/fbce/lib/FBCE/Schema/Result/Person.pm	Tue May 22 00:32:30 2012	(r235766)
@@ -260,12 +260,21 @@ sub commit($) {
 }
 
 #
+# Email address
+#
+sub email($) {
+    my ($self) = @_;
+
+    return $self->login . "\@freebsd.org";
+}
+
+#
 # Gravatar URL
 #
 sub gravatar($;$) {
     my ($self, $scheme) = @_;
 
-    my $md5 = md5_hex($self->login . "\@freebsd.org");
+    my $md5 = md5_hex($self->email);
     if ($scheme eq 'https') {
 	return "https://secure.gravatar.com/avatar/$md5";
     } else {

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 16:39:39 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 7CA61106566C;
	Tue, 22 May 2012 16:39:39 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 68CC58FC0C;
	Tue, 22 May 2012 16:39:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4MGddO5013501;
	Tue, 22 May 2012 16:39:39 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4MGddvM013499;
	Tue, 22 May 2012 16:39:39 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205221639.q4MGddvM013499@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 16:39:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235790 - user/des/fbce/root/admin
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 16:39:39 -0000

Author: des
Date: Tue May 22 16:39:38 2012
New Revision: 235790
URL: http://svn.freebsd.org/changeset/base/235790

Log:
  Link to the candidate's statement rather than their email address.

Modified:
  user/des/fbce/root/admin/index.tt

Modified: user/des/fbce/root/admin/index.tt
==============================================================================
--- user/des/fbce/root/admin/index.tt	Tue May 22 16:33:10 2012	(r235789)
+++ user/des/fbce/root/admin/index.tt	Tue May 22 16:39:38 2012	(r235790)
@@ -32,7 +32,8 @@
     <td class="num">[% i %]</td>
     <td class="num">[% candidate.votes %]</td>
     <td class="num">[% candidate.votes / voted.count * 100 | format('%.1f') %]%</td>
-    <td><a href="mailto:[% candidate.login | html %]@freebsd.org %]">[% candidate.realname | html %] ([% candidate.login %])</a></td>
+    <!--td><a href="mailto:[% candidate.email | html %]">[% candidate.realname | html %] ([% candidate.login %])</a></td-->
+    <td><a href="[% c.uri_for('/see/candidate', candidate.login) %]">[% candidate.realname | html %] ([% candidate.login %])</a></td>
   </tr>
   [% END %]
 </table>

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 16:40:21 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 7FE4A1065674;
	Tue, 22 May 2012 16:40:21 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 615608FC08;
	Tue, 22 May 2012 16:40:21 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4MGeL9w013586;
	Tue, 22 May 2012 16:40:21 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4MGeLvj013584;
	Tue, 22 May 2012 16:40:21 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205221640.q4MGeLvj013584@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 16:40:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235791 - user/des/fbce/lib/FBCE/Script
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 16:40:21 -0000

Author: des
Date: Tue May 22 16:40:20 2012
New Revision: 235791
URL: http://svn.freebsd.org/changeset/base/235791

Log:
  Add commands to set users' names and generate passwords.

Modified:
  user/des/fbce/lib/FBCE/Script/User.pm

Modified: user/des/fbce/lib/FBCE/Script/User.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Script/User.pm	Tue May 22 16:39:38 2012	(r235790)
+++ user/des/fbce/lib/FBCE/Script/User.pm	Tue May 22 16:40:20 2012	(r235791)
@@ -4,6 +4,7 @@ use Moose;
 use MooseX::Types::Common::Numeric qw/PositiveInt/;
 use MooseX::Types::Moose qw/Str Bool Int/;
 use FBCE;
+use Archive::Tar;
 use LWP::UserAgent;
 use namespace::autoclean;
 
@@ -29,6 +30,9 @@ our %lwp_options = (
 # Cutoff URLs for various repos
 sub cutoff_url($) { "http://people.freebsd.org/~peter/$_[0].cutoff.txt" }
 
+# Name of password tarball
+our $pwtar = 'fbce-passwords.tgz';
+
 #
 # Download and parse Peter Wemm's cutoff list for a specific repo
 #
@@ -98,10 +102,10 @@ sub cmd_list(@) {
 	   'name');
     foreach my $person ($persons->all()) {
 	printf("%-16s%-8s%-8s%s\n",
-	       $person->login(),
-	       $person->active() ? 'yes' : 'no',
-	       $person->admin() ? 'yes' : 'no',
-	       $person->name());
+	       $person->login,
+	       $person->active ? 'yes' : 'no',
+	       $person->admin ? 'yes' : 'no',
+	       $person->name);
     }
 }
 
@@ -114,6 +118,7 @@ sub cmd_smash(@) {
     my $persons = FBCE->model('FBCE::Person')->search();
     my $schema = $persons->result_source()->schema();
     $schema->txn_do(sub {
+	$persons->reset();
 	while (my $person = $persons->next) {
 	    $person->update({ active => 0 });
 	}
@@ -164,6 +169,143 @@ sub cmd_pull(@) {
     });
 }
 
+#
+# Set each user's realname column based on their gecos
+#
+sub cmd_gecos(@) {
+    my ($self, $pwfn) = @_;
+
+    my %gecos;
+
+    # read passwd file
+    $pwfn //= "/etc/passwd";
+    open(my $pwfh, '<', $pwfn)
+	or die("$pwfn: $!\n");
+    warn("reading names from $pwfn\n")
+	if $self->debug;
+    while (<$pwfh>) {
+	chomp($_);
+	my @pwent = split(':', $_);
+	next unless @pwent == 7;
+	next unless $pwent[4] =~ m/^([^,]+)/;
+	$gecos{$pwent[0]} = $1;
+    }
+    close($pwfh);
+
+    # update the database
+    my $persons = FBCE->model('FBCE::Person')->
+	search({}, { order_by => 'login' });
+    my $schema = $persons->result_source()->schema();
+    my $n;
+    $schema->txn_do(sub {
+	warn("setting names in the database\n")
+	    if $self->debug;
+	$n = 0;
+	$persons->reset();
+	while (my $person = $persons->next) {
+	    my $login = $person->login;
+	    my $gecos = $gecos{$login};
+	    next unless $gecos;
+	    next if $person->realname;
+	    $person->update({ realname => $gecos });
+	    ++$n;
+	}
+	warn("$n record(s) updated\n")
+	    if $self->debug;
+    });
+}
+
+#
+# Use sysutils/pwgen2 to generate random passwords
+#
+sub pwgen($$;$) {
+    my ($self, $n, $len) = @_;
+
+    $len ||= 12;
+    warn("generating $n $len-character passwords\n")
+	if $self->debug;
+
+    # Set up a pipe and fork a child
+    my $pid = open(my $pipe, '-|');
+    if (!defined($pid)) {
+	# fork failed
+	die("fork(): $!\n");
+    } elsif ($pid == 0) {
+	# child process - run pwgen
+	# ugh hardcoded...
+        exec('/usr/local/bin/pwgen', '-can', $len, $n);
+        die("child: exec(): $!\n");
+    }
+
+    # read output from child
+    my @passwords;
+    while (<$pipe>) {
+	m/^([0-9A-Za-z]{$len})$/
+	    or die("invalid output from pwgen\n");
+	push(@passwords, $1);
+    }
+
+    # check exit status
+    if (waitpid($pid, 0) != $pid) {
+        if ($? & 0xff) {
+            die(sprintf("pwgen caught signal %d\n", $? & 0x7f));
+        } elsif ($? >> 8) {
+            die(sprintf("pwgen exited with code %d\n", $? >> 8));
+        } else {
+            die("waitpid(): $!\n");
+        }
+    }
+    close($pipe);
+
+    # sanity check and we're done
+    die(sprintf("expected %d passwords, got %d\n", $n, @passwords))
+	unless @passwords == $n;
+    warn("got $n passwords as expected\n")
+	if $self->debug;
+    return @passwords;
+}
+
+#
+# Generate passwords for all users.  Use with caution!
+#
+sub cmd_pwgen(@) {
+    my ($self, @users) = @_;
+
+    # please don't overwrite an existing password tarball...
+    die("$pwtar exists, delete or move and try again\n")
+	if -e $pwtar;
+
+    # generate enough passwords for everybody
+    my $persons = FBCE->model('FBCE::Person')->
+	search({ password => '*' }, { order_by => 'login' });
+    my $n = $persons->count();
+    my @passwords = $self->pwgen($n);
+
+    # create the archive
+    my $tar = Archive::Tar->new();
+
+    # update the database and the archive
+    my $schema = $persons->result_source()->schema();
+    $schema->txn_do(sub {
+	warn("setting the passwords in the database\n")
+	    if $self->debug;
+	$persons->reset();
+	while (my $person = $persons->next) {
+	    my ($login, $password) = ($person->login, shift(@passwords));
+	    # printf("%s\t%s\n", $person->login, $password);
+	    warn("setting password for $login\n")
+		if $self->debug;
+	    $person->set_password($password);
+	    $tar->add_data("$login/election-password", "$password\n",
+			   { uname => $login, gname => $login });
+	}
+	warn("writing the tar file\n")
+	    if $self->debug;
+	$tar->write($pwtar, COMPRESS_GZIP)
+	    or die($tar->error());
+    });
+}
+
 sub run($) {
     my ($self) = @_;
 
@@ -178,6 +320,10 @@ sub run($) {
 	$self->cmd_smash(@{$self->extra_argv});
     } elsif ($command eq 'pull') {
 	$self->cmd_pull(@{$self->extra_argv});
+    } elsif ($command eq 'gecos') {
+	$self->cmd_gecos(@{$self->extra_argv});
+    } elsif ($command eq 'pwgen') {
+	$self->cmd_pwgen(@{$self->extra_argv});
     } else {
 	die("unrecognized command.\n");
     }

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 16:44:07 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AE3BF1065670;
	Tue, 22 May 2012 16:44:07 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 99F318FC12;
	Tue, 22 May 2012 16:44:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4MGi7st013819;
	Tue, 22 May 2012 16:44:07 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4MGi7aN013817;
	Tue, 22 May 2012 16:44:07 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205221644.q4MGi7aN013817@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 16:44:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235792 - user/des/fbce/db
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 16:44:07 -0000

Author: des
Date: Tue May 22 16:44:07 2012
New Revision: 235792
URL: http://svn.freebsd.org/changeset/base/235792

Log:
  Add command lines used to populate the user table
  Add comments

Modified:
  user/des/fbce/db/notes

Modified: user/des/fbce/db/notes
==============================================================================
--- user/des/fbce/db/notes	Tue May 22 16:40:20 2012	(r235791)
+++ user/des/fbce/db/notes	Tue May 22 16:44:07 2012	(r235792)
@@ -1,10 +1,31 @@
 # $FreeBSD$
 
-% sudo /usr/local/etc/rc.d/postgresql initdb
-% sudo /usr/local/etc/rc.d/postgresql start
-% sudo -u pgsql createuser -s des
-% createuser -S -D -R fbce
-% createdb -E utf8 -O fbce fbce
-% psql -f db/fbce.sql fbce fbce 
-% ./db/update.sh
-% perl -Ilib -MFBCE -e 'FBCE->model("FBCE::Person")->find({ login => "kenneth36" })->set_password("altinn")'
+# Initialize PostgreSQL
+sudo /usr/local/etc/rc.d/postgresql initdb
+sudo /usr/local/etc/rc.d/postgresql start
+
+# Create a superuser for myself
+sudo -u pgsql createuser -s des
+
+# Create a regular user and database for FBCE
+createuser -S -D -R fbce
+createdb -E utf8 -O fbce fbce
+
+# Create the schema
+psql -f db/fbce.sql fbce fbce 
+
+# Regenerate the DBIC schema
+./db/update.sh
+
+# One-liner to set a user's password
+perl -Ilib -MFBCE -e 'FBCE->model("FBCE::Person")->find({ login => "kenneth36" })->set_password("altinn")'
+
+# Pull users from peter@'s cutoff list
+./script/fbce_user.pl pull
+
+# Get a copy of freefall's passwd map and load people's names from it
+ssh freefall ypcat passwd | iconv -f iso8859-1 -t utf-8 >freefall-nis-passwd-utf8
+./script/fbce_user.pl gecos freefall-nis-passwd-utf8
+
+# Generate new passwords for everybody that doesn't already have one
+./script/fbce_user.pl pwgen

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 18:31:56 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id BF170106566C;
	Tue, 22 May 2012 18:31:56 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AAE4A8FC18;
	Tue, 22 May 2012 18:31:56 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4MIVu5V020380;
	Tue, 22 May 2012 18:31:56 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4MIVutZ020378;
	Tue, 22 May 2012 18:31:56 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205221831.q4MIVutZ020378@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 18:31:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235800 - user/des/fbce/lib/FBCE/Script
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 18:31:56 -0000

Author: des
Date: Tue May 22 18:31:56 2012
New Revision: 235800
URL: http://svn.freebsd.org/changeset/base/235800

Log:
  passwords should not be world-readable

Modified:
  user/des/fbce/lib/FBCE/Script/User.pm

Modified: user/des/fbce/lib/FBCE/Script/User.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Script/User.pm	Tue May 22 18:30:32 2012	(r235799)
+++ user/des/fbce/lib/FBCE/Script/User.pm	Tue May 22 18:31:56 2012	(r235800)
@@ -297,7 +297,7 @@ sub cmd_pwgen(@) {
 		if $self->debug;
 	    $person->set_password($password);
 	    $tar->add_data("$login/election-password", "$password\n",
-			   { uname => $login, gname => $login });
+			   { uname => $login, gname => $login, mode => 0400 });
 	}
 	warn("writing the tar file\n")
 	    if $self->debug;

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 21:42:01 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 712FF106566C;
	Tue, 22 May 2012 21:42:01 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5C9388FC14;
	Tue, 22 May 2012 21:42:01 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4MLg1hj029234;
	Tue, 22 May 2012 21:42:01 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4MLg13O029232;
	Tue, 22 May 2012 21:42:01 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205222142.q4MLg13O029232@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 21:42:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235811 - user/des/fbce
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 21:42:01 -0000

Author: des
Date: Tue May 22 21:42:00 2012
New Revision: 235811
URL: http://svn.freebsd.org/changeset/base/235811

Log:
  Fix session config

Modified:
  user/des/fbce/fbce.conf

Modified: user/des/fbce/fbce.conf
==============================================================================
--- user/des/fbce/fbce.conf	Tue May 22 21:37:29 2012	(r235810)
+++ user/des/fbce/fbce.conf	Tue May 22 21:42:00 2012	(r235811)
@@ -22,9 +22,10 @@ title = 2012 FreeBSD Core Team Election
   cutoff = 1 year
 </Model::Schedule>
 
-<Session>
+<Plugin::Session>
   expires = 1800
   cookie_expires = 0
   # cookie_secure = true
+  # storage = /var/run/fbce.cache
   cache_size = 8m
-</Session>
+</Plugin::Session>

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 22:15:40 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 5E91B1065678;
	Tue, 22 May 2012 22:15:40 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4A0F78FC08;
	Tue, 22 May 2012 22:15:40 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4MMFeSp030776;
	Tue, 22 May 2012 22:15:40 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4MMFe20030775;
	Tue, 22 May 2012 22:15:40 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205222215.q4MMFe20030775@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 22:15:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235812 - user/des/fbce/root/lib
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 22:15:40 -0000

Author: des
Date: Tue May 22 22:15:39 2012
New Revision: 235812
URL: http://svn.freebsd.org/changeset/base/235812

Log:
  Forgot to commit the meat of the help page

Added:
  user/des/fbce/root/lib/help

Added: user/des/fbce/root/lib/help
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/root/lib/help	Tue May 22 22:15:39 2012	(r235812)
@@ -0,0 +1,66 @@
+<h3>What is this?</h3>
+
+<p>This is the website for the 2012 FreeBSD core team elections.  See the <a href="[% c.uri_for('/bylaws') | html %]">bylaws</a> and the schedule posted on the front page for additional information on the election rules.</p>
+
+<h3>Who has access?</h3>
+
+<p>Anyone with a valid commit bit in at least one of FreeBSD's repositories (src, doc, ports) can log in with their FreeBSD user name.  However, only active committers, i.e. those who have made at least one commit in the twelve months preceding the election, are allowed to run or vote in the election.  Inactive committers can only observe.</p>
+
+[% IF user %]
+  [% IF user.active %]
+<p>You are registered as an active committer, and are qualified to run and vote in the election.</p>
+  [% ELSE %]
+<p>You are not registered as an active committer, and are therefore not qualified to run or vote in the election.  If you believe this is incorrect, please contact the election administrator.</p>
+  [% END %]
+[% ELSE %]
+<p>When you are logged in, your status (active or inactive) will be visible next to your name in the top right corner.</p>
+[% END %]
+
+<h3>How do I log in?</h3>
+
+[% IF user %]
+<p>You're already logged in, you big dummy.</p>
+[% ELSE %]
+<p>Click the <a href="[% c.uri_for('/login') | html %]">Log in</a> link below the navigation bar.  Or the one right here.</p>
+[% IF nominating >= 0 || voting >= 0 %]
+<p>If you have a valid FreeBSD commit bit but you haven't received a password, please contact the election administrator.</p>
+[% END %]
+[% END %]
+
+<h3>How do I run?</h3>
+
+[% PROCESS run/when %]
+
+[% IF nominating == 0 %]
+  [% IF !user %]
+<p>You must be logged in to run for election.</p>
+  [% ELSIF !user.active %]
+<p>You are not registered as an active committer, and are therefore not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
+  [% ELSE %]
+<p>Click the <a href="[% c.uri_for('/run') | html %]">Run</a> link in the navigation bar (or the one right here).  You will be asked to enter a slogan and a statement of intent.</p>
+  [% END %]
+[% END %]
+
+<h3>How do I see who's running?</h3>
+
+[% IF nominating < 0 %]
+<p>The application period hasn't started yet.</p>
+[% ELSIF !user %]
+<p>You must be logged in to see the list of candidates.</p>
+[% ELSE %]
+<p>Click the <a href="[% c.uri_for('/see') | html %]">Candidates</a> link in the navigation bar (or the one right here).</p>
+[% END %]
+
+<h3>How do I vote?</h3>
+
+[% PROCESS vote/when %]
+
+[% IF voting == 0 %]
+  [% IF !user %]
+<p>You must be logged in to vote.</p>
+  [% ELSIF !user.active %]
+<p>You are not registered as an active committer, and are therefore not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
+  [% ELSE %]
+<p>Click the <a href="[% c.uri_for('/vote') | html %]">Vote</a> link in the navigation bar (or the one right here) and select up to [% max_votes %] candidates.  You can change your vote at any time until the election ends.</p>
+  [% END %]
+[% END %]

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 23:09:53 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 55ACA1065673;
	Tue, 22 May 2012 23:09:53 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 277728FC08;
	Tue, 22 May 2012 23:09:53 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4MN9rQq034048;
	Tue, 22 May 2012 23:09:53 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4MN9qIE034046;
	Tue, 22 May 2012 23:09:52 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205222309.q4MN9qIE034046@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 23:09:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235813 - user/des/fbce/root/lib
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 23:09:53 -0000

Author: des
Date: Tue May 22 23:09:52 2012
New Revision: 235813
URL: http://svn.freebsd.org/changeset/base/235813

Log:
  Simplify the logic and improve the text in the "how do I" sections.

Modified:
  user/des/fbce/root/lib/help

Modified: user/des/fbce/root/lib/help
==============================================================================
--- user/des/fbce/root/lib/help	Tue May 22 22:15:39 2012	(r235812)
+++ user/des/fbce/root/lib/help	Tue May 22 23:09:52 2012	(r235813)
@@ -29,16 +29,16 @@
 
 <h3>How do I run?</h3>
 
-[% PROCESS run/when %]
-
-[% IF nominating == 0 %]
-  [% IF !user %]
+[% IF nominating < 0 %]
+<p>Come back when the application period starts, on [% INCLUDE lib/datetime dt=nominating_starts %].</p>
+[% ELSIF nominating > 0 %]
+<p>The application period ended on [% INCLUDE lib/datetime dt=nominating_ends %].</p>
+[% ELSIF !user %]
 <p>You must be logged in to run for election.</p>
-  [% ELSIF !user.active %]
+[% ELSIF !user.active %]
 <p>You are not registered as an active committer, and are therefore not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
-  [% ELSE %]
+[% ELSE %]
 <p>Click the <a href="[% c.uri_for('/run') | html %]">Run</a> link in the navigation bar (or the one right here).  You will be asked to enter a slogan and a statement of intent.</p>
-  [% END %]
 [% END %]
 
 <h3>How do I see who's running?</h3>
@@ -53,14 +53,14 @@
 
 <h3>How do I vote?</h3>
 
-[% PROCESS vote/when %]
-
-[% IF voting == 0 %]
-  [% IF !user %]
+[% IF voting < 0 %]
+<p>Come back when the voting period starts, on [% INCLUDE lib/datetime dt=voting_starts %].</p>
+[% ELSIF voting > 0 %]
+<p>The voting period ended on [% INCLUDE lib/datetime dt=voting_ends %].</p>
+[% ELSIF !user %]
 <p>You must be logged in to vote.</p>
-  [% ELSIF !user.active %]
+[% ELSIF !user.active %]
 <p>You are not registered as an active committer, and are therefore not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
-  [% ELSE %]
+[% ELSE %]
 <p>Click the <a href="[% c.uri_for('/vote') | html %]">Vote</a> link in the navigation bar (or the one right here) and select up to [% max_votes %] candidates.  You can change your vote at any time until the election ends.</p>
-  [% END %]
 [% END %]

From owner-svn-src-user@FreeBSD.ORG  Tue May 22 23:14:01 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id A78CD106564A;
	Tue, 22 May 2012 23:14:01 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 93ADB8FC08;
	Tue, 22 May 2012 23:14:01 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4MNE1Rf034269;
	Tue, 22 May 2012 23:14:01 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4MNE1TZ034267;
	Tue, 22 May 2012 23:14:01 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205222314.q4MNE1TZ034267@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Tue, 22 May 2012 23:14:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235814 - user/des/fbce/root/lib
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 22 May 2012 23:14:01 -0000

Author: des
Date: Tue May 22 23:14:01 2012
New Revision: 235814
URL: http://svn.freebsd.org/changeset/base/235814

Log:
  Only show the "run" and "vote" links to active committers.

Modified:
  user/des/fbce/root/lib/navigation

Modified: user/des/fbce/root/lib/navigation
==============================================================================
--- user/des/fbce/root/lib/navigation	Tue May 22 23:09:52 2012	(r235813)
+++ user/des/fbce/root/lib/navigation	Tue May 22 23:14:01 2012	(r235814)
@@ -1,9 +1,9 @@
 <div class="navigation">
   <ul>
     <li><a href="[% c.uri_for('/') | html %]">Home</a></li>
-    [% IF nominating == 0 %]<li><a href="[% c.uri_for('/run') | html %]">Run</a></li>[% END %]
+    [% IF user.defined && user.active && nominating == 0 %]<li><a href="[% c.uri_for('/run') | html %]">Run</a></li>[% END %]
     [% IF nominating >= 0 %]<li><a href="[% c.uri_for('/see') | html %]">Candidates</a></li>[% END %]
-    [% IF voting == 0 %]<li><a href="[% c.uri_for('/vote') | html %]">Vote</a></li>[% END %]
+    [% IF user.defined && user.active && voting == 0 %]<li><a href="[% c.uri_for('/vote') | html %]">Vote</a></li>[% END %]
     [% IF announced %]<li><a href="[% c.uri_for('/result') | html %]">Result</a></li>[% END %]
     [% IF user.admin %]
     <li><a href="[% c.uri_for('/admin') | html %]">Admin</a></li>

From owner-svn-src-user@FreeBSD.ORG  Wed May 23 00:46:20 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 26B57106566B;
	Wed, 23 May 2012 00:46:20 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 127E28FC08;
	Wed, 23 May 2012 00:46:20 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4N0kJVp038340;
	Wed, 23 May 2012 00:46:19 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4N0kJ9M038338;
	Wed, 23 May 2012 00:46:19 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205230046.q4N0kJ9M038338@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Wed, 23 May 2012 00:46:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235815 - user/des/fbce/root/lib
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 23 May 2012 00:46:20 -0000

Author: des
Date: Wed May 23 00:46:19 2012
New Revision: 235815
URL: http://svn.freebsd.org/changeset/base/235815

Log:
  Only logged-in users should see the "candidates" link.

Modified:
  user/des/fbce/root/lib/navigation

Modified: user/des/fbce/root/lib/navigation
==============================================================================
--- user/des/fbce/root/lib/navigation	Tue May 22 23:14:01 2012	(r235814)
+++ user/des/fbce/root/lib/navigation	Wed May 23 00:46:19 2012	(r235815)
@@ -2,7 +2,7 @@
   <ul>
     <li><a href="[% c.uri_for('/') | html %]">Home</a></li>
     [% IF user.defined && user.active && nominating == 0 %]<li><a href="[% c.uri_for('/run') | html %]">Run</a></li>[% END %]
-    [% IF nominating >= 0 %]<li><a href="[% c.uri_for('/see') | html %]">Candidates</a></li>[% END %]
+    [% IF user.defined && nominating >= 0 %]<li><a href="[% c.uri_for('/see') | html %]">Candidates</a></li>[% END %]
     [% IF user.defined && user.active && voting == 0 %]<li><a href="[% c.uri_for('/vote') | html %]">Vote</a></li>[% END %]
     [% IF announced %]<li><a href="[% c.uri_for('/result') | html %]">Result</a></li>[% END %]
     [% IF user.admin %]

From owner-svn-src-user@FreeBSD.ORG  Wed May 23 01:49:51 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 7C6C8106566B;
	Wed, 23 May 2012 01:49:51 +0000 (UTC) (envelope-from yar@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4DE618FC0C;
	Wed, 23 May 2012 01:49:51 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4N1npaL041256;
	Wed, 23 May 2012 01:49:51 GMT (envelope-from yar@svn.freebsd.org)
Received: (from yar@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4N1npaf041255;
	Wed, 23 May 2012 01:49:51 GMT (envelope-from yar@svn.freebsd.org)
Message-Id: <201205230149.q4N1npaf041255@svn.freebsd.org>
From: Yar Tikhiy <yar@FreeBSD.org>
Date: Wed, 23 May 2012 01:49:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235817 - user/yar
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 23 May 2012 01:49:51 -0000

Author: yar
Date: Wed May 23 01:49:50 2012
New Revision: 235817
URL: http://svn.freebsd.org/changeset/base/235817

Log:
  This way of keeping daemons running gained no support by rc.d experts.

Deleted:
  user/yar/

From owner-svn-src-user@FreeBSD.ORG  Wed May 23 07:21:17 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 28EAB106564A;
	Wed, 23 May 2012 07:21:17 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 141958FC14;
	Wed, 23 May 2012 07:21:17 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4N7LGVu055174;
	Wed, 23 May 2012 07:21:16 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4N7LGVm055172;
	Wed, 23 May 2012 07:21:16 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205230721.q4N7LGVm055172@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Wed, 23 May 2012 07:21:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235823 - user/des/fbce/lib/FBCE/Script
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 23 May 2012 07:21:17 -0000

Author: des
Date: Wed May 23 07:21:16 2012
New Revision: 235823
URL: http://svn.freebsd.org/changeset/base/235823

Log:
  Use the *.total.txt instead of *.cutoff.txt, since we have our own
  cutoff logic.  Also, don't change a user's active bit if it's already
  correct, and reduce the amount of logging so it's easier to see what
  changes.

Modified:
  user/des/fbce/lib/FBCE/Script/User.pm

Modified: user/des/fbce/lib/FBCE/Script/User.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Script/User.pm	Wed May 23 06:49:50 2012	(r235822)
+++ user/des/fbce/lib/FBCE/Script/User.pm	Wed May 23 07:21:16 2012	(r235823)
@@ -27,21 +27,21 @@ our %lwp_options = (
     keep_alive => 1,
 );
 
-# Cutoff URLs for various repos
-sub cutoff_url($) { "http://people.freebsd.org/~peter/$_[0].cutoff.txt" }
+# Survey URLs for various repos
+sub survey_url($) { "http://people.freebsd.org/~peter/$_[0].total.txt" }
 
 # Name of password tarball
 our $pwtar = 'fbce-passwords.tgz';
 
 #
-# Download and parse Peter Wemm's cutoff list for a specific repo
+# Download and parse Peter Wemm's survey for a specific repo
 #
-sub retrieve_cutoff_data($$) {
+sub retrieve_commit_data($$) {
     my ($self, $repo) = @_;
 
     # create new user agent unless one already exists
     $self->{user_agent} //= LWP::UserAgent->new(%lwp_options);
-    my $url = cutoff_url($repo);
+    my $url = survey_url($repo);
     my $req = HTTP::Request->new(GET => $url);
     warn("Retrieving $url...\n")
 	if $self->debug;
@@ -49,8 +49,8 @@ sub retrieve_cutoff_data($$) {
     if (!$res->is_success()) {
 	die("$url: " . $res->status_line() . "\n");
     }
-    my $cutoff = $res->decoded_content();
-    foreach (split('\n', $cutoff)) {
+    my $survey = $res->decoded_content();
+    foreach (split('\n', $survey)) {
 	#
 	# Each line looks like this:
 	#
@@ -64,7 +64,7 @@ sub retrieve_cutoff_data($$) {
 	# login.
 	#
 	next unless m/^(\d\d\d\d)(\d\d)(\d\d)\s+
-                       (?:ok|visitor)\s+
+                       (?:\w+)\s+
                        (?:\d+)\s+
                        (?:\d+)\s+
                        (\w+)\s*$/x &&
@@ -74,12 +74,12 @@ sub retrieve_cutoff_data($$) {
 	my $login = $4;
 	if (defined($self->{committers}->{$login}) &&
 	    DateTime->compare($date, $self->{committers}->{$login}) < 0) {
-	    warn(sprintf("skipping %s: %s < %s\n", $login, $date->ymd(),
-			 $self->{committers}->{$login}->ymd()))
-		if $self->debug;
+#	    warn(sprintf("skipping %s: %s < %s\n", $login, $date->ymd(),
+#			 $self->{committers}->{$login}->ymd()))
+#		if $self->debug;
 	} else {
-	    warn(sprintf("adding %s: %s (%s)\n", $login, $date->ymd(), $repo))
-		if $self->debug;
+#	    warn(sprintf("adding %s: %s (%s)\n", $login, $date->ymd(), $repo))
+#		if $self->debug;
 	    $self->{committers}->{$login} = $date;
 	}
     }
@@ -147,7 +147,7 @@ sub cmd_pull(@) {
 
     # pull "last commit" data for src, ports and doc / www repos
     foreach my $repo (qw(src ports docwww)) {
-	$self->retrieve_cutoff_data($repo);
+	$self->retrieve_commit_data($repo);
     }
 
     # insert it into the database
@@ -158,13 +158,19 @@ sub cmd_pull(@) {
 	    my $person = $persons->find_or_new({ login => $login });
 	    my $active =
 		DateTime->compare($last_commit, $cutoff_date) >= 0 ? 1 : 0;
-	    warn(sprintf("%s %s (%s)\n",
-			 $person->in_storage() ? 'updating' : 'inserting',
-			 $person->login(),
-			 $active ? 'active' : 'inactive'))
-		if $self->debug;
-	    $person->set_column(active => $active);
-	    $person->update_or_insert();
+	    if ($person->in_storage()) {
+		if ($active != $person->active) {
+		    warn(sprintf("updating %s: %s -> %s\n",
+				 $person->login,
+				 $person->active ? 'active' : 'inactive',
+				 $active ? 'active' : 'inactive'))
+			if $self->debug;
+		    $person->update({ active => $active });
+		}
+	    } else {
+		$person->set_column(active => $active);
+		$person->insert();
+	    }
 	}
     });
 }

From owner-svn-src-user@FreeBSD.ORG  Wed May 23 07:50:23 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id DF4491065670;
	Wed, 23 May 2012 07:50:23 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CB2C88FC1A;
	Wed, 23 May 2012 07:50:23 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4N7oN4l056388;
	Wed, 23 May 2012 07:50:23 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4N7oNAJ056386;
	Wed, 23 May 2012 07:50:23 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205230750.q4N7oNAJ056386@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Wed, 23 May 2012 07:50:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235824 - user/des/fbce/lib/FBCE/Script
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 23 May 2012 07:50:24 -0000

Author: des
Date: Wed May 23 07:50:23 2012
New Revision: 235824
URL: http://svn.freebsd.org/changeset/base/235824

Log:
  The previous commit also changed the logic a bit to account for doc
  committers in src, which are marked with "doc" instead of "visitor".
  Document this.

Modified:
  user/des/fbce/lib/FBCE/Script/User.pm

Modified: user/des/fbce/lib/FBCE/Script/User.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Script/User.pm	Wed May 23 07:21:16 2012	(r235823)
+++ user/des/fbce/lib/FBCE/Script/User.pm	Wed May 23 07:50:23 2012	(r235824)
@@ -58,10 +58,10 @@ sub retrieve_commit_data($$) {
 	#
 	# The first column is the date of the last commit.  The second
 	# column is "ok" if this committer has a commit bit in this
-	# repo, "visitor" if they have a commit bit in a different
-	# repo or "-" if they are retired.  The third and fourth
-	# columns are not relevant to us.  The fifth is the freefall
-	# login.
+	# repo, "doc" or "visitor" if they have a commit bit in a
+	# different repo or "-" if they are retired.  The third and
+	# fourth columns are not relevant to us.  The fifth is the
+	# freefall login.
 	#
 	next unless m/^(\d\d\d\d)(\d\d)(\d\d)\s+
                        (?:\w+)\s+

From owner-svn-src-user@FreeBSD.ORG  Wed May 23 13:39:47 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 6F01E1065675;
	Wed, 23 May 2012 13:39:47 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5B2258FC0C;
	Wed, 23 May 2012 13:39:47 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4NDdl2p075549;
	Wed, 23 May 2012 13:39:47 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4NDdl3c075547;
	Wed, 23 May 2012 13:39:47 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205231339.q4NDdl3c075547@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Wed, 23 May 2012 13:39:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235832 - user/des/fbce/lib/FBCE/Schema/Result
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 23 May 2012 13:39:47 -0000

Author: des
Date: Wed May 23 13:39:46 2012
New Revision: 235832
URL: http://svn.freebsd.org/changeset/base/235832

Log:
  Disable implicit links (CamelCase) in wiki text.

Modified:
  user/des/fbce/lib/FBCE/Schema/Result/Statement.pm

Modified: user/des/fbce/lib/FBCE/Schema/Result/Statement.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Schema/Result/Statement.pm	Wed May 23 13:23:40 2012	(r235831)
+++ user/des/fbce/lib/FBCE/Schema/Result/Statement.pm	Wed May 23 13:39:46 2012	(r235832)
@@ -129,7 +129,7 @@ use Text::WikiFormat;
 sub long_html($) {
     my ($self) = @_;
 
-    return Text::WikiFormat::format($self->long);
+    return Text::WikiFormat::format($self->long, {}, { implicit_links => 0 });
 }
 
 1;

From owner-svn-src-user@FreeBSD.ORG  Wed May 23 15:10:41 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id CA69B1065673;
	Wed, 23 May 2012 15:10:41 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B19E68FC14;
	Wed, 23 May 2012 15:10:41 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4NFAfnS079709;
	Wed, 23 May 2012 15:10:41 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4NFAfTX079706;
	Wed, 23 May 2012 15:10:41 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205231510.q4NFAfTX079706@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Wed, 23 May 2012 15:10:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235838 - in user/des/fbce: . lib
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 23 May 2012 15:10:41 -0000

Author: des
Date: Wed May 23 15:10:41 2012
New Revision: 235838
URL: http://svn.freebsd.org/changeset/base/235838

Log:
  Use per-user session caches.  This makes it possible to run scripts such
  as fbce_test.pl or fbce_user.pl as yourself while the system is running
  as www:www, since the session cache is created at startup rather than at
  first use.
  
  Note that per-process session caches are not a good idea unless some sort
  of session affinity is in place.

Modified:
  user/des/fbce/fbce.conf
  user/des/fbce/lib/FBCE.pm

Modified: user/des/fbce/fbce.conf
==============================================================================
--- user/des/fbce/fbce.conf	Wed May 23 15:06:13 2012	(r235837)
+++ user/des/fbce/fbce.conf	Wed May 23 15:10:41 2012	(r235838)
@@ -26,6 +26,6 @@ title = 2012 FreeBSD Core Team Election
   expires = 1800
   cookie_expires = 0
   # cookie_secure = true
-  # storage = /var/run/fbce.cache
+  storage = /tmp/fbce.__UID__/session-cache
   cache_size = 8m
 </Plugin::Session>

Modified: user/des/fbce/lib/FBCE.pm
==============================================================================
--- user/des/fbce/lib/FBCE.pm	Wed May 23 15:06:13 2012	(r235837)
+++ user/des/fbce/lib/FBCE.pm	Wed May 23 15:10:41 2012	(r235838)
@@ -26,6 +26,12 @@ $VERSION = eval $VERSION;
 __PACKAGE__->config(
     name => 'FBCE',
     view => 'HTML',
+    'Plugin::ConfigLoader' => {
+	substitutions => {
+	    UID => sub { $< },
+	    PID => sub { $$ },
+	},
+    },
     'Plugin::Static::Simple' => {
 	dirs => [ 'static' ],
     },

From owner-svn-src-user@FreeBSD.ORG  Thu May 24 10:30:14 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 95A06106566C;
	Thu, 24 May 2012 10:30:14 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 802A38FC0A;
	Thu, 24 May 2012 10:30:14 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4OAUEua032366;
	Thu, 24 May 2012 10:30:14 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4OAUECG032364;
	Thu, 24 May 2012 10:30:14 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205241030.q4OAUECG032364@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Thu, 24 May 2012 10:30:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235892 - user/des/fbce/root/run
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 24 May 2012 10:30:14 -0000

Author: des
Date: Thu May 24 10:30:13 2012
New Revision: 235892
URL: http://svn.freebsd.org/changeset/base/235892

Log:
  Use the configured title instead of hardcoded text that I forgot to
  update from last time.
  
  Noticed by:	mdf@

Modified:
  user/des/fbce/root/run/index.tt

Modified: user/des/fbce/root/run/index.tt
==============================================================================
--- user/des/fbce/root/run/index.tt	Thu May 24 10:20:23 2012	(r235891)
+++ user/des/fbce/root/run/index.tt	Thu May 24 10:30:13 2012	(r235892)
@@ -7,7 +7,7 @@
 [% IF !user.active %]
 <p>You are not qualified to run in the election.  If you believe this is incorrect, please contact the election administrator.</p>
 [% ELSIF user.statement.defined %]
-<p>You have registered as a candidate in the 2010 FreeBSD Core Team election.  You have provided the following statement:</p>
+<p>You have registered as a candidate in the [% title %].  You have provided the following statement:</p>
 
 <div class="statement"> 
   <h3 class="statement-title">[% user.statement.short | html %]</h3>

From owner-svn-src-user@FreeBSD.ORG  Thu May 24 10:51:38 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4856E106566B;
	Thu, 24 May 2012 10:51:38 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2836F8FC17;
	Thu, 24 May 2012 10:51:38 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4OApcc4033497;
	Thu, 24 May 2012 10:51:38 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4OApbcb033491;
	Thu, 24 May 2012 10:51:37 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205241051.q4OApbcb033491@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Thu, 24 May 2012 10:51:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235894 - in user/des/fbce: . lib/FBCE/Model
	lib/FBCE/Script
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 24 May 2012 10:51:38 -0000

Author: des
Date: Thu May 24 10:51:37 2012
New Revision: 235894
URL: http://svn.freebsd.org/changeset/base/235894

Log:
  Add FBCE::Model::Rules and place max_votes and cutoff there, along with a
  method that calculates the cutoff date based on the election start date
  and the cutoff duration.
  
  Update FBCE::Script::User.pm accordingly; also fix argv validation, which
  was broken for the list command and non-existent for the others.

Added:
  user/des/fbce/lib/FBCE/Model/Rules.pm   (contents, props changed)
Modified:
  user/des/fbce/fbce.conf
  user/des/fbce/lib/FBCE/Model/Schedule.pm   (contents, props changed)
  user/des/fbce/lib/FBCE/Script/User.pm

Modified: user/des/fbce/fbce.conf
==============================================================================
--- user/des/fbce/fbce.conf	Thu May 24 10:31:17 2012	(r235893)
+++ user/des/fbce/fbce.conf	Thu May 24 10:51:37 2012	(r235894)
@@ -1,6 +1,7 @@
 # $FreeBSD$
 
 title = 2012 FreeBSD Core Team Election
+descr = 2012 FreeBSD core team election
 
 <Model::FBCE>
   <connect_info>
@@ -17,10 +18,12 @@ title = 2012 FreeBSD Core Team Election
   voting_ends = 2012-06-27 00:00:00 UTC
   announcement = 2012-06-27 18:00:00 UTC
   investiture = 2012-07-04
-  # XXX does not belong here
+</Model::Schedule>
+
+<Model::Rules>
   max_votes = 9
   cutoff = 1 year
-</Model::Schedule>
+</Model::Rules>
 
 <Plugin::Session>
   expires = 1800

Added: user/des/fbce/lib/FBCE/Model/Rules.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/des/fbce/lib/FBCE/Model/Rules.pm	Thu May 24 10:51:37 2012	(r235894)
@@ -0,0 +1,62 @@
+package FBCE::Model::Rules;
+use Moose;
+use MooseX::Types::Common::Numeric qw(PositiveInt);
+use MooseX::Types::DateTime::MoreCoercions qw(Duration);
+use DateTime;
+use namespace::autoclean;
+
+BEGIN { extends 'Catalyst::Component' }
+
+=head1 NAME
+
+FBCE::Controller - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=cut
+
+has max_votes => (
+    isa => PositiveInt,
+    is => 'ro',
+    required => 1
+);
+
+has cutoff => (
+    isa => Duration,
+    coerce => 1,
+    is => 'ro',
+    required => 1,
+);
+
+our $cutoff_date;
+
+sub cutoff_date($) {
+    my ($self) = @_;
+
+    if (!defined($cutoff_date)) {
+	$cutoff_date =
+	    FBCE->model('Schedule')->nominating_starts - $self->cutoff;
+	$cutoff_date->set(hour => 0, minute => 0, second => 0);
+	print STDERR $cutoff_date->ymd();
+    }
+    return $cutoff_date;
+}
+
+=head1 AUTHOR
+
+Dag-Erling Smørgrav
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Model/Schedule.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Model/Schedule.pm	Thu May 24 10:31:17 2012	(r235893)
+++ user/des/fbce/lib/FBCE/Model/Schedule.pm	Thu May 24 10:51:37 2012	(r235894)
@@ -59,21 +59,6 @@ has investiture => (
     required => 1
 );
 
-# XXX does not belong here
-has max_votes => (
-    isa => PositiveInt,
-    is => 'ro',
-    required => 1
-);
-
-# XXX does not belong here
-has cutoff => (
-    isa => Duration,
-    coerce => 1,
-    is => 'ro',
-    required => 1,
-);
-
 sub _phase($$$) {
     my ($self, $phase, $now) = @_;
 
@@ -121,3 +106,5 @@ it under the same terms as Perl itself.
 __PACKAGE__->meta->make_immutable;
 
 1;
+
+# $FreeBSD$

Modified: user/des/fbce/lib/FBCE/Script/User.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Script/User.pm	Thu May 24 10:31:17 2012	(r235893)
+++ user/des/fbce/lib/FBCE/Script/User.pm	Thu May 24 10:51:37 2012	(r235894)
@@ -89,10 +89,10 @@ sub retrieve_commit_data($$) {
 # List existing users
 #
 sub cmd_list(@) {
-    my ($self) = @_;
+    my ($self, @argv) = @_;
 
     die("too many arguments")
-	if @{$self->ARGV};
+	if @argv;
     my $persons = FBCE->model('FBCE::Person')->
 	search({}, { order_by => 'login' });
     printf("%-16s%-8s%-8s%s\n",
@@ -113,8 +113,10 @@ sub cmd_list(@) {
 # Mark all users inactive
 #
 sub cmd_smash(@) {
-    my ($self) = @_;
+    my ($self, @argv) = @_;
 
+    die("too many arguments")
+	if @argv;
     my $persons = FBCE->model('FBCE::Person')->search();
     my $schema = $persons->result_source()->schema();
     $schema->txn_do(sub {
@@ -130,17 +132,13 @@ sub cmd_smash(@) {
 # don't already have one, and set the active bit.
 #
 sub cmd_pull(@) {
-    my ($self) = @_;
+    my ($self, @argv) = @_;
 
-    # cutoff duration from config
-    my $cutoff_duration = FBCE->model('Schedule')->cutoff;
+    die("too many arguments")
+	if @argv;
 
-    # cutoff date: start out with current time (UTC)
-    my $cutoff_date = DateTime->now(time_zone => 'UTC');
-    # round down to midnight
-    $cutoff_date->set(hour => 0, minute => 0, second => 0);
-    # subtract the cutoff duration
-    $cutoff_date->subtract_duration($cutoff_duration);
+    # retrieve cutoff date
+    my $cutoff_date = FBCE->model('Rules')->cutoff_date;
     warn(sprintf("Setting cutoff date to %sT%sZ\n",
 		 $cutoff_date->ymd(), $cutoff_date->hms()))
 	if $self->debug;
@@ -179,10 +177,13 @@ sub cmd_pull(@) {
 # Set each user's realname column based on their gecos
 #
 sub cmd_gecos(@) {
-    my ($self, $pwfn) = @_;
+    my ($self, $pwfn, @argv) = @_;
 
     my %gecos;
 
+    die("too many arguments")
+	if @argv;
+
     # read passwd file
     $pwfn //= "/etc/passwd";
     open(my $pwfh, '<', $pwfn)
@@ -275,7 +276,10 @@ sub pwgen($$;$) {
 # Generate passwords for all users.  Use with caution!
 #
 sub cmd_pwgen(@) {
-    my ($self, @users) = @_;
+    my ($self, @argv) = @_;
+
+    die("too many arguments")
+	if @argv;
 
     # please don't overwrite an existing password tarball...
     die("$pwtar exists, delete or move and try again\n")

From owner-svn-src-user@FreeBSD.ORG  Thu May 24 10:59:48 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id D2F9D1065673;
	Thu, 24 May 2012 10:59:48 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BDDCA8FC0C;
	Thu, 24 May 2012 10:59:48 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4OAxmwL033853;
	Thu, 24 May 2012 10:59:48 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4OAxmYr033851;
	Thu, 24 May 2012 10:59:48 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205241059.q4OAxmYr033851@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Thu, 24 May 2012 10:59:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235895 - user/des/fbce/lib/FBCE/Model
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 24 May 2012 10:59:48 -0000

Author: des
Date: Thu May 24 10:59:48 2012
New Revision: 235895
URL: http://svn.freebsd.org/changeset/base/235895

Log:
  Remove debugging printout

Modified:
  user/des/fbce/lib/FBCE/Model/Rules.pm

Modified: user/des/fbce/lib/FBCE/Model/Rules.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Model/Rules.pm	Thu May 24 10:51:37 2012	(r235894)
+++ user/des/fbce/lib/FBCE/Model/Rules.pm	Thu May 24 10:59:48 2012	(r235895)
@@ -39,7 +39,6 @@ sub cutoff_date($) {
 	$cutoff_date =
 	    FBCE->model('Schedule')->nominating_starts - $self->cutoff;
 	$cutoff_date->set(hour => 0, minute => 0, second => 0);
-	print STDERR $cutoff_date->ymd();
     }
     return $cutoff_date;
 }

From owner-svn-src-user@FreeBSD.ORG  Thu May 24 11:03:03 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id A65EC1065680;
	Thu, 24 May 2012 11:03:03 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 91AC08FC08;
	Thu, 24 May 2012 11:03:03 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4OB33lX034057;
	Thu, 24 May 2012 11:03:03 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4OB33D7034055;
	Thu, 24 May 2012 11:03:03 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <201205241103.q4OB33D7034055@svn.freebsd.org>
From: Dag-Erling Smorgrav <des@FreeBSD.org>
Date: Thu, 24 May 2012 11:03:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r235896 - user/des/fbce/lib/FBCE/Script
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 24 May 2012 11:03:03 -0000

Author: des
Date: Thu May 24 11:03:03 2012
New Revision: 235896
URL: http://svn.freebsd.org/changeset/base/235896

Log:
  Implement --dryrun

Modified:
  user/des/fbce/lib/FBCE/Script/User.pm

Modified: user/des/fbce/lib/FBCE/Script/User.pm
==============================================================================
--- user/des/fbce/lib/FBCE/Script/User.pm	Thu May 24 10:59:48 2012	(r235895)
+++ user/des/fbce/lib/FBCE/Script/User.pm	Thu May 24 11:03:03 2012	(r235896)
@@ -20,6 +20,14 @@ has debug => (
     documentation => q{Debugging mode},
 );
 
+has dryrun => (
+    traits        => [qw(Getopt)],
+    cmd_aliases   => 'n',
+    isa           => Bool,
+    is            => 'ro',
+    documentation => q{Dry run},
+);
+
 # XXX should be traits
 our %lwp_options = (
     timeout => 10,
@@ -124,6 +132,8 @@ sub cmd_smash(@) {
 	while (my $person = $persons->next) {
 	    $person->update({ active => 0 });
 	}
+	$schema->txn_rollback()
+	    if $self->dryrun;
     });
 }
 
@@ -170,6 +180,8 @@ sub cmd_pull(@) {
 		$person->insert();
 	    }
 	}
+	$schema->txn_rollback()
+	    if $self->dryrun;
     });
 }
 
@@ -219,6 +231,8 @@ sub cmd_gecos(@) {
 	}
 	warn("$n record(s) updated\n")
 	    if $self->debug;
+	$schema->txn_rollback()
+	    if $self->dryrun;
     });
 }
 
@@ -313,6 +327,8 @@ sub cmd_pwgen(@) {
 	    if $self->debug;
 	$tar->write($pwtar, COMPRESS_GZIP)
 	    or die($tar->error());
+	$schema->txn_rollback()
+	    if $self->dryrun;
     });
 }
 

From owner-svn-src-user@FreeBSD.ORG  Sat May 26 00:57:18 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 41C3C106566B;
	Sat, 26 May 2012 00:57:18 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2DA6B8FC15;
	Sat, 26 May 2012 00:57:18 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4Q0vI1E043069;
	Sat, 26 May 2012 00:57:18 GMT (envelope-from np@svn.freebsd.org)
Received: (from np@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4Q0vHp1043067;
	Sat, 26 May 2012 00:57:17 GMT (envelope-from np@svn.freebsd.org)
Message-Id: <201205260057.q4Q0vHp1043067@svn.freebsd.org>
From: Navdeep Parhar <np@FreeBSD.org>
Date: Sat, 26 May 2012 00:57:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r236032 - user/np/toe_iwarp/sys/conf
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 26 May 2012 00:57:18 -0000

Author: np
Date: Sat May 26 00:57:17 2012
New Revision: 236032
URL: http://svn.freebsd.org/changeset/base/236032

Log:
  Remove entry for a deleted file.

Modified:
  user/np/toe_iwarp/sys/conf/files

Modified: user/np/toe_iwarp/sys/conf/files
==============================================================================
--- user/np/toe_iwarp/sys/conf/files	Fri May 25 23:41:22 2012	(r236031)
+++ user/np/toe_iwarp/sys/conf/files	Sat May 26 00:57:17 2012	(r236032)
@@ -1030,8 +1030,6 @@ dev/cs/if_cs_isa.c		optional cs isa
 dev/cs/if_cs_pccard.c		optional cs pccard
 dev/cxgb/cxgb_main.c		optional cxgb pci \
 	compile-with "${NORMAL_C} -I$S/dev/cxgb"
-dev/cxgb/cxgb_offload.c		optional cxgb pci \
-	compile-with "${NORMAL_C} -I$S/dev/cxgb"
 dev/cxgb/cxgb_sge.c		optional cxgb pci \
 	compile-with "${NORMAL_C} -I$S/dev/cxgb"
 dev/cxgb/common/cxgb_mc5.c	optional cxgb pci \

From owner-svn-src-user@FreeBSD.ORG  Sat May 26 00:59:44 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 960761065744;
	Sat, 26 May 2012 00:59:44 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 795888FC0A;
	Sat, 26 May 2012 00:59:44 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4Q0xiWa043199;
	Sat, 26 May 2012 00:59:44 GMT (envelope-from np@svn.freebsd.org)
Received: (from np@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4Q0xiL1043197;
	Sat, 26 May 2012 00:59:44 GMT (envelope-from np@svn.freebsd.org)
Message-Id: <201205260059.q4Q0xiL1043197@svn.freebsd.org>
From: Navdeep Parhar <np@FreeBSD.org>
Date: Sat, 26 May 2012 00:59:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r236033 - user/np/toe_iwarp/sys/i386/conf
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 26 May 2012 00:59:44 -0000

Author: np
Date: Sat May 26 00:59:43 2012
New Revision: 236033
URL: http://svn.freebsd.org/changeset/base/236033

Log:
  Add TCP_OFFLOAD to i386's GENERIC too.

Modified:
  user/np/toe_iwarp/sys/i386/conf/GENERIC

Modified: user/np/toe_iwarp/sys/i386/conf/GENERIC
==============================================================================
--- user/np/toe_iwarp/sys/i386/conf/GENERIC	Sat May 26 00:57:17 2012	(r236032)
+++ user/np/toe_iwarp/sys/i386/conf/GENERIC	Sat May 26 00:59:43 2012	(r236033)
@@ -29,6 +29,7 @@ options 	SCHED_ULE		# ULE scheduler
 options 	PREEMPTION		# Enable kernel thread preemption
 options 	INET			# InterNETworking
 options 	INET6			# IPv6 communications protocols
+options 	TCP_OFFLOAD		# TCP offload
 options 	SCTP			# Stream Control Transmission Protocol
 options 	FFS			# Berkeley Fast Filesystem
 options 	SOFTUPDATES		# Enable FFS soft updates support

From owner-svn-src-user@FreeBSD.ORG  Sat May 26 01:24:39 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BDB0D106566C;
	Sat, 26 May 2012 01:24:39 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9D1288FC0A;
	Sat, 26 May 2012 01:24:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4Q1OdKE044234;
	Sat, 26 May 2012 01:24:39 GMT (envelope-from np@svn.freebsd.org)
Received: (from np@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4Q1Odc0044230;
	Sat, 26 May 2012 01:24:39 GMT (envelope-from np@svn.freebsd.org)
Message-Id: <201205260124.q4Q1Odc0044230@svn.freebsd.org>
From: Navdeep Parhar <np@FreeBSD.org>
Date: Sat, 26 May 2012 01:24:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r236034 - user/np/toe_iwarp/sys/netinet
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 26 May 2012 01:24:39 -0000

Author: np
Date: Sat May 26 01:24:39 2012
New Revision: 236034
URL: http://svn.freebsd.org/changeset/base/236034

Log:
  Provide an opportunity to a TOE driver to install its hooks when
  expanding a syncache entry into a full socket.
  
  A couple of functions in toecore:
  * toe_connect_failed: to be called when an active open using a TOE
    device fails.
  * toe_4tuple_check: to check whether a 4-tuple is currently in use, and
    maybe release it if it's in TIME_WAIT and we have an incoming SYN for
    the 4-tuple.

Modified:
  user/np/toe_iwarp/sys/netinet/tcp_syncache.c
  user/np/toe_iwarp/sys/netinet/toecore.c
  user/np/toe_iwarp/sys/netinet/toecore.h

Modified: user/np/toe_iwarp/sys/netinet/tcp_syncache.c
==============================================================================
--- user/np/toe_iwarp/sys/netinet/tcp_syncache.c	Sat May 26 00:59:43 2012	(r236033)
+++ user/np/toe_iwarp/sys/netinet/tcp_syncache.c	Sat May 26 01:24:39 2012	(r236034)
@@ -858,6 +858,18 @@ syncache_socket(struct syncache *sc, str
 	if (sc->sc_rxmits > 1)
 		tp->snd_cwnd = tp->t_maxseg;
 
+#ifdef TCP_OFFLOAD
+	/*
+	 * Allow a TOE driver to install its hooks.  Note that we hold the
+	 * pcbinfo lock too and that prevents tcp_usr_accept from accepting a
+	 * new connection before the TOE driver has done its thing.
+	 */
+	if (ADDED_BY_TOE(sc)) {
+		struct toedev *tod = sc->sc_tod;
+
+		tod->tod_offload_socket(tod, sc->sc_todctx, so);
+	}
+#endif
 	/*
 	 * Copy and activate timers.
 	 */

Modified: user/np/toe_iwarp/sys/netinet/toecore.c
==============================================================================
--- user/np/toe_iwarp/sys/netinet/toecore.c	Sat May 26 00:59:43 2012	(r236033)
+++ user/np/toe_iwarp/sys/netinet/toecore.c	Sat May 26 01:24:39 2012	(r236034)
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$");
 #define TCPSTATES
 #include <netinet/tcp.h>
 #include <netinet/tcp_fsm.h>
+#include <netinet/tcp_timer.h>
 #include <netinet/tcp_var.h>
 #include <netinet/tcp_syncache.h>
 #include <netinet/tcp_offload.h>
@@ -154,6 +155,14 @@ toedev_syncache_respond(struct toedev *t
 }
 
 static void
+toedev_offload_socket(struct toedev *tod __unused, void *ctx __unused,
+    struct socket *so __unused)
+{
+
+	return;
+}
+
+static void
 toedev_ctloutput(struct toedev *tod __unused, struct tcpcb *tp __unused,
     int sopt_dir __unused, int sopt_name __unused)
 {
@@ -247,6 +256,7 @@ init_toedev(struct toedev *tod)
 	tod->tod_syncache_added = toedev_syncache_added;
 	tod->tod_syncache_removed = toedev_syncache_removed;
 	tod->tod_syncache_respond = toedev_syncache_respond;
+	tod->tod_offload_socket = toedev_offload_socket;
 	tod->tod_ctloutput = toedev_ctloutput;
 }
 
@@ -324,6 +334,41 @@ toe_syncache_expand(struct in_conninfo *
 	return (syncache_expand(inc, to, th, lsop, NULL));
 }
 
+/*
+ * General purpose check to see if a 4-tuple is in use by the kernel.  If a TCP
+ * header (presumably for an incoming SYN) is also provided, an existing 4-tuple
+ * in TIME_WAIT may be assassinated freeing it up for re-use.
+ *
+ * Note that the TCP header must have been run through tcp_fields_to_host() or
+ * equivalent.
+ */
+int
+toe_4tuple_check(struct in_conninfo *inc, struct tcphdr *th, struct ifnet *ifp)
+{
+	struct inpcb *inp;
+
+	if (inc->inc_flags & INC_ISIPV6)
+		return (ENOSYS);	/* XXX: implement */
+
+	inp = in_pcblookup(&V_tcbinfo, inc->inc_faddr, inc->inc_fport,
+	    inc->inc_laddr, inc->inc_lport, INPLOOKUP_WLOCKPCB, ifp);
+	if (inp != NULL) {
+		INP_WLOCK_ASSERT(inp);
+
+		if ((inp->inp_flags & INP_TIMEWAIT) && th != NULL) {
+
+			INP_INFO_WLOCK_ASSERT(&V_tcbinfo); /* for twcheck */
+			if (!tcp_twcheck(inp, NULL, th, NULL, 0))
+				return (EADDRINUSE);
+		} else {
+			INP_WUNLOCK(inp);
+			return (EADDRINUSE);
+		}
+	}
+
+	return (0);
+}
+
 static void
 toe_lle_event(void *arg __unused, struct llentry *lle, int evt)
 {
@@ -417,6 +462,41 @@ toe_l2_resolve(struct toedev *tod, struc
 	return (rc);
 }
 
+void
+toe_connect_failed(struct toedev *tod, struct tcpcb *tp, int err)
+{
+	struct inpcb *inp = tp->t_inpcb;
+
+	INP_WLOCK_ASSERT(inp);
+	KASSERT(tp->t_flags & TF_TOE,
+	    ("%s: tp %p not offloaded.", __func__, tp));
+
+	if (!(inp->inp_flags & INP_DROPPED)) {
+		if (err == EAGAIN) {
+
+			/*
+			 * Temporary failure during offload, take this PCB back.
+			 * Detach from the TOE driver and do the rest of what
+			 * TCP's pru_connect would have done if the connection
+			 * wasn't offloaded.
+			 */
+
+			tod->tod_pcb_detach(tod, tp);
+			KASSERT(!(tp->t_flags & TF_TOE),
+			    ("%s: tp %p still offloaded.", __func__, tp));
+			tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp));
+			(void) tcp_output(tp);
+		} else {
+
+			INP_INFO_WLOCK_ASSERT(&V_tcbinfo);
+			tp = tcp_drop(tp, err);
+			if (tp == NULL)
+				INP_WLOCK(inp);	/* re-acquire */
+		}
+	}
+	INP_WLOCK_ASSERT(inp);
+}
+
 static int
 toecore_load(void)
 {

Modified: user/np/toe_iwarp/sys/netinet/toecore.h
==============================================================================
--- user/np/toe_iwarp/sys/netinet/toecore.h	Sat May 26 00:59:43 2012	(r236033)
+++ user/np/toe_iwarp/sys/netinet/toecore.h	Sat May 26 01:24:39 2012	(r236034)
@@ -80,6 +80,7 @@ struct toedev {
 	void (*tod_syncache_added)(struct toedev *, void *);
 	void (*tod_syncache_removed)(struct toedev *, void *);
 	int (*tod_syncache_respond)(struct toedev *, void *, struct mbuf *);
+	void (*tod_offload_socket)(struct toedev *, void *, struct socket *);
 
 	/* TCP socket option */
 	void (*tod_ctloutput)(struct toedev *, struct tcpcb *, int, int);
@@ -105,8 +106,12 @@ int  unregister_toedev(struct toedev *);
 int toe_l2_resolve(struct toedev *, struct ifnet *, struct sockaddr *,
     uint8_t *, uint16_t *);
 
+void toe_connect_failed(struct toedev *, struct tcpcb *, int);
+
 void toe_syncache_add(struct in_conninfo *, struct tcpopt *, struct tcphdr *,
     struct inpcb *, void *, void *);
 int  toe_syncache_expand(struct in_conninfo *, struct tcpopt *, struct tcphdr *,
     struct socket **);
+
+int toe_4tuple_check(struct in_conninfo *, struct tcphdr *, struct ifnet *);
 #endif

From owner-svn-src-user@FreeBSD.ORG  Sat May 26 01:33:08 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AAFC91065670;
	Sat, 26 May 2012 01:33:08 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 93F518FC0A;
	Sat, 26 May 2012 01:33:08 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4Q1X8cX044622;
	Sat, 26 May 2012 01:33:08 GMT (envelope-from np@svn.freebsd.org)
Received: (from np@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4Q1X8VJ044612;
	Sat, 26 May 2012 01:33:08 GMT (envelope-from np@svn.freebsd.org)
Message-Id: <201205260133.q4Q1X8VJ044612@svn.freebsd.org>
From: Navdeep Parhar <np@FreeBSD.org>
Date: Sat, 26 May 2012 01:33:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r236035 - in user/np/toe_iwarp/sys: contrib/rdma/krping
	dev/cxgb dev/cxgb/ulp/iw_cxgb dev/cxgb/ulp/tom
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 26 May 2012 01:33:08 -0000

Author: np
Date: Sat May 26 01:33:07 2012
New Revision: 236035
URL: http://svn.freebsd.org/changeset/base/236035

Log:
  Some bugfixes and cleanup of cxgb TOE and iWARP drivers.
  Enable TOE multiq.

Modified:
  user/np/toe_iwarp/sys/contrib/rdma/krping/krping.c
  user/np/toe_iwarp/sys/dev/cxgb/cxgb_offload.h
  user/np/toe_iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c
  user/np/toe_iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h
  user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c
  user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_listen.c
  user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h
  user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_tom.c
  user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_tom.h

Modified: user/np/toe_iwarp/sys/contrib/rdma/krping/krping.c
==============================================================================
--- user/np/toe_iwarp/sys/contrib/rdma/krping/krping.c	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/contrib/rdma/krping/krping.c	Sat May 26 01:33:07 2012	(r236035)
@@ -1737,8 +1737,8 @@ int krping_doit(char *cmd)
 		case 'm':
                         cb->memlimit = optint;
                         if (cb->memlimit < 1) {
-                                log(LOG_ERR, "Invalid memory limit %lu\n"
-                                       ,cb->memlimit);
+                                log(LOG_ERR, "Invalid memory limit %ju\n",
+				    cb->memlimit);
                                 ret = EINVAL;
                         } else
                                 DEBUG_LOG(PFX "memory limit %d\n", (int)optint);

Modified: user/np/toe_iwarp/sys/dev/cxgb/cxgb_offload.h
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgb/cxgb_offload.h	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/dev/cxgb/cxgb_offload.h	Sat May 26 01:33:07 2012	(r236035)
@@ -58,12 +58,6 @@ struct tom_tunables {
 enum {
 	CPL_PRIORITY_DATA = 0,     /* data messages */
 	CPL_PRIORITY_CONTROL = 1   /* offload control messages */
-#ifdef notyet
-	CPL_PRIORITY_SETUP = 1,	   /* connection setup messages */
-	CPL_PRIORITY_TEARDOWN = 0, /* connection teardown messages */
-	CPL_PRIORITY_LISTEN = 1,   /* listen start/stop messages */
-	CPL_PRIORITY_ACK = 1,      /* RX ACK messages */
-#endif
 };
 
 #define S_HDR_NDESC	0

Modified: user/np/toe_iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c	Sat May 26 01:33:07 2012	(r236035)
@@ -1033,10 +1033,9 @@ process_close_complete(struct iwch_ep *e
 					     IWCH_QP_ATTR_NEXT_STATE,
 					     &attrs, 1);
 		}
-		if (ep->parent_ep) {
-			((struct iwch_listen_ep *)ep->parent_ep)->child_ep = NULL;
+		if (ep->parent_ep)
 			close_socket(&ep->com, 1);
-		} else
+		else
 			close_socket(&ep->com, 0);
 		close_complete_upcall(ep);
 		__state_set(&ep->com, DEAD);
@@ -1072,11 +1071,11 @@ terminate(struct sge_qset *qs, struct rs
 {
 	struct adapter *sc = qs->adap;
 	struct tom_data *td = sc->tom_softc;
-        struct cpl_rdma_ec_status *rep = (void *)r;
-        unsigned int tid = GET_TID(rep);
-        struct toepcb *toep = lookup_tid(&td->tid_maps, tid);
+	uint32_t hash = *((uint32_t *)r + 1);
+	unsigned int tid = ntohl(hash) >> 8 & 0xfffff;
+	struct toepcb *toep = lookup_tid(&td->tid_maps, tid);
 	struct socket *so = toep->tp_inp->inp_socket;
-        struct iwch_ep *ep = so->so_rcv.sb_upcallarg;
+	struct iwch_ep *ep = so->so_rcv.sb_upcallarg;
 
 	if (state_read(&ep->com) != FPDU_MODE)
 		goto done;
@@ -1418,11 +1417,6 @@ iwch_destroy_listen(struct iw_cm_id *cm_
 
 	CTR2(KTR_IW_CXGB, "%s ep %p", __FUNCTION__, ep);
 
-	/* lets clean any connected child if there are */
-	if (ep->child_ep) {
-		if (ep->child_ep->com.so->so_state & SS_ISCONNECTED)
-			close_socket(&ep->child_ep->com, 1);
-	}
 	state_set(&ep->com, DEAD);
 	close_socket(&ep->com, 0);
 	cm_id->rem_ref(cm_id);
@@ -1607,8 +1601,6 @@ process_newconn(struct iwch_ep *parent_e
 	child_ep->com.cm_id = NULL;
 	child_ep->com.thread = parent_ep->com.thread;
 	child_ep->parent_ep = parent_ep;
-	/* Save child reference in parent_ep which could be used for cleanup */
-	((struct iwch_listen_ep *)parent_ep)->child_ep = child_ep;
 
 	free(remote, M_SONAME);
 	get_ep(&parent_ep->com);

Modified: user/np/toe_iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h	Sat May 26 01:33:07 2012	(r236035)
@@ -165,7 +165,6 @@ struct iwch_listen_ep {
 	struct iwch_ep_common com;
 	unsigned int stid;
 	int backlog;
-	struct iwch_ep *child_ep;
 };
 
 struct iwch_ep {

Modified: user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c	Sat May 26 01:33:07 2012	(r236035)
@@ -175,27 +175,9 @@ toepcb_detach(struct inpcb *inp)
 	    toep, inp, tp);
 
 	tp->t_toe = NULL;
+	tp->t_flags &= ~TF_TOE;
 	toep->tp_flags &= ~TP_ATTACHED;
 
-	/*
-	 * Verify that the tcpcb really is going away.  tcp_input shouldn't be
-	 * able to find this inp, or should see it in TIME_WAIT.  Otherwise
-	 * there's a risk of tod_input with no way for the TOE driver to reach
-	 * its toepcb (we just cleared it).
-	 *
-	 * The inp should be DROPPED already or about to go to TIME_WAIT (it
-	 * can't be in TIME_WAIT already).  There is no way to be certain that
-	 * code that runs after this routine will actually call twstart as it
-	 * should (while holding the inp's lock throughout), so we do the best
-	 * we can by asserting that the current TCP state is something from
-	 * which we can transition to TIME_WAIT.
-	 */
-	KASSERT(inp->inp_flags & INP_DROPPED ||	/* dropped already */
-	    (!(inp->inp_flags & INP_TIMEWAIT) &&	/* not in TIME_WAIT */
-	    (tp->t_state == TCPS_FIN_WAIT_1 || tp->t_state == TCPS_FIN_WAIT_2 ||
-	    tp->t_state == TCPS_CLOSING)),
-	    ("%s: inp %p detached too early?", __func__, inp));
-
 	if (toep->tp_flags & TP_CPL_DONE)
 		t3_release_offload_resources(toep);
 }
@@ -341,6 +323,28 @@ t3_process_tid_release_list(void *data, 
 	mtx_unlock(&td->tid_release_lock);
 }
 
+static void
+close_conn(struct adapter *sc, struct toepcb *toep)
+{
+	struct mbuf *m;
+	struct cpl_close_con_req *req;
+
+	if (toep->tp_flags & TP_FIN_SENT)
+		return;
+
+	m = M_GETHDR_OFLD(toep->tp_qset, CPL_PRIORITY_DATA, req);
+	if (m == NULL)
+		CXGB_UNIMPLEMENTED();
+
+	req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_CLOSE_CON));
+	req->wr.wrh_lo = htonl(V_WR_TID(toep->tp_tid));
+	OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_CON_REQ, toep->tp_tid));
+	req->rsvd = 0;
+
+	toep->tp_flags |= TP_FIN_SENT;
+	t3_offload_tx(sc, m);
+}
+
 static inline void
 make_tx_data_wr(struct socket *so, struct tx_data_wr *req, int len,
     struct mbuf *tail)
@@ -432,11 +436,6 @@ t3_push_frames(struct socket *so, int re
 
 	inp_lock_assert(tp->t_inpcb);
 
-	/* TCP state or socket state not suitable for sending data */
-	if (tp->t_state == TCPS_SYN_SENT || tp->t_state == TCPS_CLOSED ||
-	    (so_state_get(so) & (SS_ISDISCONNECTING | SS_ISDISCONNECTED)))
-		return (0);
-
 	snd = so_sockbuf_snd(so);
 	SOCKBUF_LOCK(snd);
 
@@ -557,16 +556,18 @@ t3_push_frames(struct socket *so, int re
 	}
 out:
 	SOCKBUF_UNLOCK(snd);
+
+	if (sndptr == NULL && (toep->tp_flags & TP_SEND_FIN))
+		close_conn(sc, toep);
+
 	return (total_bytes);
 }
 
 static int
-send_rx_credits(struct toepcb *toep, int credits)
+send_rx_credits(struct adapter *sc, struct toepcb *toep, int credits)
 {
 	struct mbuf *m;
 	struct cpl_rx_data_ack *req;
-	struct toedev *tod = toep->tp_tod;
-	struct adapter *sc = tod->tod_softc;
 	uint32_t dack = F_RX_DACK_CHANGE | V_RX_DACK_MODE(1);
 
 	m = M_GETHDR_OFLD(toep->tp_qset, CPL_PRIORITY_CONTROL, req);
@@ -584,6 +585,7 @@ send_rx_credits(struct toepcb *toep, int
 void
 t3_rcvd(struct toedev *tod, struct tcpcb *tp)
 {
+	struct adapter *sc = tod->tod_softc;
 	struct inpcb *inp = tp->t_inpcb;
 	struct socket *so = inp->inp_socket;
 	struct sockbuf *so_rcv = &so->so_rcv;
@@ -603,7 +605,7 @@ t3_rcvd(struct toedev *tod, struct tcpcb
 	if (must_send || toep->tp_rx_credits >= 15 * 1024) {
 		int credits;
 
-		credits = send_rx_credits(toep, toep->tp_rx_credits);
+		credits = send_rx_credits(sc, toep, toep->tp_rx_credits);
 		toep->tp_rx_credits -= credits;
 		tp->rcv_wnd += credits;
 		tp->rcv_adv += credits;
@@ -628,13 +630,12 @@ do_rx_urg_notify(struct sge_qset *qs, st
 int
 t3_send_fin(struct toedev *tod, struct tcpcb *tp)
 {
-	struct mbuf *m;
 	struct toepcb *toep = tp->t_toe;
-	struct adapter *sc = tod->tod_softc;
-	struct cpl_close_con_req *req;
 	struct inpcb *inp = tp->t_inpcb;
 	struct socket *so = inp_inpcbtosocket(inp);
+#if defined(KTR)
 	unsigned int tid = toep->tp_tid;
+#endif
 
 	INP_INFO_WLOCK_ASSERT(&V_tcbinfo);
 	INP_WLOCK_ASSERT(inp);
@@ -642,23 +643,8 @@ t3_send_fin(struct toedev *tod, struct t
 	CTR4(KTR_CXGB, "%s: tid %d, toep %p, flags %x", __func__, tid, toep,
 	    toep->tp_flags);
 
-	if (tp->t_state != TCPS_SYN_SENT)
-		t3_push_frames(so, 1);
-
-	if (toep->tp_flags & TP_FIN_SENT)
-		return (0);
-
-	m = M_GETHDR_OFLD(toep->tp_qset, CPL_PRIORITY_DATA, req);
-	if (m == NULL)
-		CXGB_UNIMPLEMENTED();
-
-	req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_CLOSE_CON));
-	req->wr.wrh_lo = htonl(V_WR_TID(tid));
-	OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_CON_REQ, tid));
-	req->rsvd = 0;
-
-	toep->tp_flags |= TP_FIN_SENT;
-	t3_offload_tx(sc, m);
+	toep->tp_flags |= TP_SEND_FIN;
+	t3_push_frames(so, 1);
 
 	return (0);
 }
@@ -787,8 +773,12 @@ offload_socket(struct socket *so, struct
 	INP_WLOCK_ASSERT(inp);
 
 	/* Update socket */
+	SOCKBUF_LOCK(&so->so_snd);
 	so_sockbuf_snd(so)->sb_flags |= SB_NOCOALESCE;
+	SOCKBUF_UNLOCK(&so->so_snd);
+	SOCKBUF_LOCK(&so->so_rcv);
 	so_sockbuf_rcv(so)->sb_flags |= SB_NOCOALESCE;
+	SOCKBUF_UNLOCK(&so->so_rcv);
 
 	/* Update TCP PCB */
 	tp->tod = toep->tp_tod;
@@ -921,26 +911,28 @@ do_act_open_rpl(struct sge_qset *qs, str
 	unsigned int atid = G_TID(ntohl(rpl->atid));
 	struct toepcb *toep = lookup_atid(&td->tid_maps, atid);
 	struct inpcb *inp = toep->tp_inp;
-	struct tcpcb *tp;
+	struct tcpcb *tp = intotcpcb(inp);
+	int s = rpl->status;
 
-	CTR3(KTR_CXGB, "%s: atid %u, status %u ", __func__, atid, rpl->status);
+	CTR3(KTR_CXGB, "%s: atid %u, status %u ", __func__, atid, s);
 
 	free_atid(&td->tid_maps, atid);
 	toep->tp_tid = -1;
 
-	if (act_open_has_tid(rpl->status))
+	if (act_open_has_tid(s))
 		queue_tid_release(tod, GET_TID(rpl));
 
-	INP_INFO_WLOCK(&V_tcbinfo);	/* for tcp_drop */
-	INP_WLOCK(inp);
-	if (!(inp->inp_flags & INP_DROPPED)) {
-		tp = intotcpcb(inp);
-		tp = tcp_drop(tp, act_open_rpl_status_to_errno(rpl->status));
-		if (tp == NULL)
-			INP_WLOCK(inp);	/* re-acquire */
+	if (s == CPL_ERR_TCAM_FULL || s == CPL_ERR_CONN_EXIST) {
+		INP_WLOCK(inp);
+		toe_connect_failed(tod, tp, EAGAIN);
+		toepcb_release(toep);	/* unlocks inp */
+	} else {
+		INP_INFO_WLOCK(&V_tcbinfo);
+		INP_WLOCK(inp);
+		toe_connect_failed(tod, tp, act_open_rpl_status_to_errno(s));
+		toepcb_release(toep);	/* unlocks inp */
+		INP_INFO_WUNLOCK(&V_tcbinfo);
 	}
-	toepcb_release(toep);
-	INP_INFO_WUNLOCK(&V_tcbinfo);
 
 	m_freem(m);
 	return (0);
@@ -983,11 +975,7 @@ t3_connect(struct toedev *tod, struct so
 	if (atid < 0)
 		goto failed;
 
-#ifdef notyet
 	qset = pi->first_qset + (arc4random() % pi->nqsets);
-#else
-	qset = 0;
-#endif
 
 	m = M_GETHDR_OFLD(qset, CPL_PRIORITY_CONTROL, cpl);
 	if (m == NULL)
@@ -1241,7 +1229,7 @@ do_peer_close(struct sge_qset *qs, struc
 	tp = intotcpcb(inp);
 
 	CTR5(KTR_CXGB, "%s: tid %u (%s), toep_flags 0x%x, inp %p", __func__,
-	    tid, tcpstates[tp->t_state], toep->tp_flags, toep->tp_inp);
+	    tid, tp ? tcpstates[tp->t_state] : "no tp" , toep->tp_flags, inp);
 
 	if (toep->tp_flags & TP_ABORT_RPL_PENDING)
 		goto done;
@@ -1303,16 +1291,15 @@ do_close_con_rpl(struct sge_qset *qs, st
 	INP_WLOCK(inp);
 	tp = intotcpcb(inp);
 
-	so = inp_inpcbtosocket(tp->t_inpcb);	
-
 	CTR4(KTR_CXGB, "%s: tid %u (%s), toep_flags 0x%x", __func__, tid,
-	    tcpstates[tp->t_state], toep->tp_flags);
-
-	tp->snd_una = ntohl(rpl->snd_nxt) - 1;  /* exclude FIN */
+	    tp ? tcpstates[tp->t_state] : "no tp", toep->tp_flags);
 
 	if ((toep->tp_flags & TP_ABORT_RPL_PENDING))
 		goto done;
 
+	so = inp_inpcbtosocket(inp);
+	tp->snd_una = ntohl(rpl->snd_nxt) - 1;  /* exclude FIN */
+
 	switch (tp->t_state) {
 	case TCPS_CLOSING:
 		tcp_twstart(tp);
@@ -1331,16 +1318,9 @@ release:
 		goto release;
 
 	case TCPS_FIN_WAIT_1:
+		if (so->so_rcv.sb_state & SBS_CANTRCVMORE)
+			soisdisconnected(so);
 		tp->t_state = TCPS_FIN_WAIT_2;
-		if ((so_options_get(so) & SO_LINGER) &&
-		    so_linger_get(so) == 0) {
-
-			if (tcp_close(tp))
-				inp_wunlock(tp->t_inpcb);
-			INP_INFO_WUNLOCK(&V_tcbinfo);
-			m_freem(m);
-			return (0);
-		}
 		break;
 	default:
 		log(LOG_ERR,

Modified: user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_listen.c
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_listen.c	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_listen.c	Sat May 26 01:33:07 2012	(r236035)
@@ -413,6 +413,21 @@ pass_accept_req_to_protohdrs(const struc
 		to->to_flags |= TOF_SACKPERM;
 }
 
+static inline void
+hold_synqe(struct synq_entry *synqe)
+{
+
+	refcount_acquire(&synqe->refcnt);
+}
+
+static inline void
+release_synqe(struct synq_entry *synqe)
+{
+
+	if (refcount_release(&synqe->refcnt))
+		m_freem(synqe->m);
+}
+
 /*
  * Use the trailing space in the mbuf in which the PASS_ACCEPT_REQ arrived to
  * store some state temporarily.  There will be enough room in the mbuf's
@@ -428,7 +443,7 @@ mbuf_to_synq_entry(struct mbuf *m)
 	int buflen;
 
 	if (__predict_false(M_TRAILINGSPACE(m) < len)) {
-	    panic("%s: no room for synq_entry (%ld, %d)\n", __func__,
+	    panic("%s: no room for synq_entry (%td, %d)\n", __func__,
 	    M_TRAILINGSPACE(m), len);
 	}
 
@@ -538,47 +553,26 @@ do_pass_accept_req(struct sge_qset *qs, 
 
 	INP_INFO_WLOCK(&V_tcbinfo);
 
-	/* Check if the 4-tuple is already in use by the host stack. */
-	inp = in_pcblookup(&V_tcbinfo, inc.inc_faddr, inc.inc_fport,
-	    inc.inc_laddr, inc.inc_lport, INPLOOKUP_WLOCKPCB, ifp);
-	if (inp) {
-		INP_WLOCK_ASSERT(inp);
-		if ((inp->inp_flags & INP_TIMEWAIT) == 0) {
-			INP_WUNLOCK(inp);
-			INP_INFO_WUNLOCK(&V_tcbinfo);
-			REJECT_PASS_ACCEPT();
-		}
-
-		/*
-		 * In TIME_WAIT, try to reuse the 4-tuple if possible.
-		 * tcp_twcheck always unlocks the inp.
-		 */
-		if (!tcp_twcheck(inp, &to, &th, NULL, 0)) {
-			INP_UNLOCK_ASSERT(inp);
-			INP_INFO_WUNLOCK(&V_tcbinfo);
-			REJECT_PASS_ACCEPT();	/* let the kernel deal with it. */
-		}
-
-		INP_UNLOCK_ASSERT(inp);
-		INP_INFO_WLOCK_ASSERT(&V_tcbinfo);
+	/* Don't offload if the 4-tuple is already in use */
+	if (toe_4tuple_check(&inc, &th, ifp) != 0) {
+		INP_INFO_WUNLOCK(&V_tcbinfo);
+		REJECT_PASS_ACCEPT();
 	}
 
 	inp = lctx->inp;	/* listening socket (not owned by the TOE) */
 	INP_WLOCK(inp);
-	if (inp->inp_flags & INP_DROPPED) {
+	if (__predict_false(inp->inp_flags & INP_DROPPED)) {
 		/*
 		 * The listening socket has closed.  The reply from the TOE to
 		 * our CPL_CLOSE_LISTSRV_REQ will ultimately release all
 		 * resources tied to this listen context.
 		 */
 		INP_WUNLOCK(inp);
+		INP_INFO_WUNLOCK(&V_tcbinfo);
 		REJECT_PASS_ACCEPT();
 	}
 	so = inp->inp_socket;
 
-	/* Will tell the hardware to respond with a SYN/ACK */
-	CTR3(KTR_CXGB, "%s: stid %u, tid %u, OK", __func__, stid, tid);
-
 	/* Reuse the mbuf that delivered the CPL to us */
 	synqe = mbuf_to_synq_entry(m);
 	synqe->flags = TP_IS_A_SYNQ_ENTRY;
@@ -587,17 +581,18 @@ do_pass_accept_req(struct sge_qset *qs, 
 	synqe->tid = tid;
 	synqe->e = e;
 	synqe->opt0h = calc_opt0h(so, 0, 0, e);
-#ifdef notyet
 	synqe->qset = pi->first_qset + (arc4random() % pi->nqsets);
-#else
-	synqe->qset = 0;
-#endif
 	SOCKBUF_LOCK(&so->so_rcv);
 	synqe->rx_credits = min(select_rcv_wnd(so) >> 10, M_RCV_BUFSIZ);
 	SOCKBUF_UNLOCK(&so->so_rcv);
 	refcount_init(&synqe->refcnt, 1);
 	atomic_store_rel_int(&synqe->reply, RPL_OK);
 
+	insert_tid(td, synqe, tid);
+	TAILQ_INSERT_TAIL(&lctx->synq, synqe, link);
+	hold_synqe(synqe);
+	hold_lctx(lctx);
+
 	/* syncache_add releases both pcbinfo and pcb locks */
 	toe_syncache_add(&inc, &to, &th, inp, tod, synqe);
 	INP_UNLOCK_ASSERT(inp);
@@ -610,28 +605,52 @@ do_pass_accept_req(struct sge_qset *qs, 
 	 * The kernel is free to retry syncache_respond but we'll ignore it due
 	 * to RPL_DONT.
 	 */
-	if (atomic_cmpset_int(&synqe->reply, RPL_OK, RPL_DONT))
+	if (atomic_cmpset_int(&synqe->reply, RPL_OK, RPL_DONT)) {
+
+		INP_WLOCK(inp);
+		if (__predict_false(inp->inp_flags & INP_DROPPED)) {
+			/* listener closed.  synqe must have been aborted. */
+			KASSERT(synqe->flags & TP_ABORT_SHUTDOWN,
+			    ("%s: listener %p closed but synqe %p not aborted",
+			    __func__, inp, synqe));
+
+			CTR5(KTR_CXGB,
+			    "%s: stid %u, tid %u, lctx %p, synqe %p, ABORTED",
+			    __func__, stid, tid, lctx, synqe);
+			INP_WUNLOCK(inp);
+			release_synqe(synqe);
+			return (__LINE__);
+		}
+
+		KASSERT(!(synqe->flags & TP_ABORT_SHUTDOWN),
+		    ("%s: synqe %p aborted, but listener %p not dropped.",
+		    __func__, synqe, inp));
+
+		TAILQ_REMOVE(&lctx->synq, synqe, link);
+		release_synqe(synqe);	/* removed from synq list */
+		inp = release_lctx(td, lctx);
+		if (inp)
+			INP_WUNLOCK(inp);
+
+		release_synqe(synqe);	/* about to exit function */
 		REJECT_PASS_ACCEPT();
+	}
 
 	KASSERT(synqe->reply == RPL_DONE,
 	    ("%s: reply %d", __func__, synqe->reply));
 
-	TAILQ_INSERT_HEAD(&lctx->synq, synqe, link);
-	hold_lctx(lctx);	/* Each synq entry has a ref on its lctx */
-	insert_tid(td, synqe, tid);
-
+	CTR3(KTR_CXGB, "%s: stid %u, tid %u, OK", __func__, stid, tid);
+	release_synqe(synqe);
 	return (0);
 
 reject:
 	CTR4(KTR_CXGB, "%s: stid %u, tid %u, REJECT (%d)", __func__, stid, tid,
 	    reject_reason);
 
-	if (synqe == NULL || refcount_release(&synqe->refcnt))
+	if (synqe == NULL)
 		m_freem(m);
-
 	if (e)
 		l2t_release(td->l2t, e);
-
 	queue_tid_release(tod, tid);
 
 	return (0);
@@ -688,10 +707,13 @@ do_pass_establish(struct sge_qset *qs, s
 	CTR5(KTR_CXGB, "%s: stid %u, tid %u, lctx %p, inp_flags 0x%x",
 	    __func__, stid, tid, lctx, inp->inp_flags);
 
+	KASSERT(qs->idx == synqe->qset,
+	    ("%s qset mismatch %d %d", __func__, qs->idx, synqe->qset));
+
 	INP_INFO_WLOCK(&V_tcbinfo);	/* for syncache_expand */
 	INP_WLOCK(inp);
 
-	if (inp->inp_flags & INP_DROPPED) {
+	if (__predict_false(inp->inp_flags & INP_DROPPED)) {
 		/*
 		 * The listening socket has closed.  The TOM must have aborted
 		 * all the embryonic connections (including this one) that were
@@ -713,8 +735,8 @@ do_pass_establish(struct sge_qset *qs, s
 	to.to_tsecr = synqe->ts;
 	th.th_ack = synqe->iss + 1;
 
-	so = inp->inp_socket;
-	if (!toe_syncache_expand(&inc, &to, &th, &so) || so == NULL) {
+	toep = toepcb_alloc(tod);
+	if (toep == NULL) {
 reset:
 		t3_send_reset_synqe(tod, synqe);
 		INP_WUNLOCK(inp);
@@ -722,36 +744,28 @@ reset:
 		m_freem(m);
 		return (0);
 	}
+	toep->tp_qset = qs->idx;
+	toep->tp_l2t = synqe->e;
+	toep->tp_tid = tid;
+	toep->tp_rx_credits = synqe->rx_credits;
 
-	toep = toepcb_alloc(tod);
-	if (toep == NULL)
+	synqe->toep = toep;
+	synqe->cpl = cpl;
+
+	so = inp->inp_socket;
+	if (!toe_syncache_expand(&inc, &to, &th, &so) || so == NULL) {
+		toepcb_free(toep);
 		goto reset;
+	}
 
 	/* Remove the synq entry and release its reference on the lctx */
 	TAILQ_REMOVE(&lctx->synq, synqe, link);
 	inp = release_lctx(td, lctx);
 	if (inp)
 		INP_WUNLOCK(inp);
-
-	KASSERT(qs->idx == synqe->qset,
-	    ("%s qset mismatch %d %d", __func__, qs->idx, synqe->qset));
-
-	toep->tp_qset = qs->idx;
-	toep->tp_l2t = synqe->e;
-	toep->tp_tid = tid;
-	toep->tp_rx_credits = synqe->rx_credits;
-	update_tid(td, toep, tid);
-
-	inp = sotoinpcb(so);	/* Brand new socket, not the listening socket */
-	INP_WLOCK(inp);
-
-	offload_socket(so, toep);
-	make_established(so, cpl->snd_isn, cpl->rcv_isn, cpl->tcp_opt);
-
-	INP_WUNLOCK(inp);
 	INP_INFO_WUNLOCK(&V_tcbinfo);
+	release_synqe(synqe);
 
-	m_freem(synqe->m);
 	m_freem(m);
 	return (0);
 }
@@ -821,11 +835,7 @@ t3_listen_start(struct toedev *tod, stru
 	if (listen_hash_find(td, inp) != NULL)
 		goto done;	/* already setup */
 
-#ifdef notyet
 	lctx = alloc_lctx(td, inp, pi->first_qset);
-#else
-	lctx = alloc_lctx(td, inp, 0);
-#endif
 	if (lctx == NULL) {
 		log(LOG_ERR,
 		    "%s: listen request ignored, %s couldn't allocate lctx\n",
@@ -905,7 +915,7 @@ t3_syncache_added(struct toedev *tod __u
 {
 	struct synq_entry *synqe = arg;
 
-	refcount_acquire(&synqe->refcnt);
+	hold_synqe(synqe);
 }
 
 void
@@ -913,8 +923,7 @@ t3_syncache_removed(struct toedev *tod _
 {
 	struct synq_entry *synqe = arg;
 
-	if (refcount_release(&synqe->refcnt))
-		m_freem(synqe->m);
+	release_synqe(synqe);
 }
 
 /* XXX */
@@ -1025,7 +1034,7 @@ do_abort_req_synqe(struct sge_qset *qs, 
 			INP_WUNLOCK(inp);
 		release_tid(tod, tid, qs->idx);
 		l2t_release(td->l2t, synqe->e);
-		m_freem(synqe->m);
+		release_synqe(synqe);
 	}
 
 	send_abort_rpl(tod, tid, qs->idx);
@@ -1064,7 +1073,7 @@ do_abort_rpl_synqe(struct sge_qset *qs, 
 				INP_WUNLOCK(inp);
 			release_tid(tod, tid, qs->idx);
 			l2t_release(td->l2t, synqe->e);
-			m_freem(synqe->m);
+			release_synqe(synqe);
 		}
 	}
 
@@ -1084,7 +1093,6 @@ t3_send_reset_synqe(struct toedev *tod, 
 	struct inpcb *inp = lctx->inp;
 #endif
 
-	INP_INFO_WLOCK_ASSERT(&V_tcbinfo);
 	INP_WLOCK_ASSERT(inp);
 
 	CTR4(KTR_CXGB, "%s: tid %d, synqe %p (%x)", __func__, tid, synqe,
@@ -1108,3 +1116,23 @@ t3_send_reset_synqe(struct toedev *tod, 
 
 	l2t_send(sc, m, synqe->e);
 }
+
+void
+t3_offload_socket(struct toedev *tod, void *arg, struct socket *so)
+{
+	struct adapter *sc = tod->tod_softc;
+	struct tom_data *td = sc->tom_softc;
+	struct synq_entry *synqe = arg;
+#ifdef INVARIANTS
+	struct inpcb *inp = sotoinpcb(so);
+#endif
+	struct cpl_pass_establish *cpl = synqe->cpl;
+	struct toepcb *toep = synqe->toep;
+
+	INP_INFO_LOCK_ASSERT(&V_tcbinfo); /* prevents bad race with accept() */
+	INP_WLOCK_ASSERT(inp);
+
+	offload_socket(so, toep);
+	make_established(so, cpl->snd_isn, cpl->rcv_isn, cpl->tcp_opt);
+	update_tid(td, toep, synqe->tid);
+}

Modified: user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h	Sat May 26 01:33:07 2012	(r236035)
@@ -43,6 +43,7 @@
 #define TP_CPL_DONE		(1 << 8)
 #define TP_IS_A_SYNQ_ENTRY	(1 << 9)
 #define TP_ABORT_RPL_SENT	(1 << 10)
+#define TP_SEND_FIN          	(1 << 11)
 
 struct toepcb {
 	TAILQ_ENTRY(toepcb) link; /* toep_list */

Modified: user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_tom.c
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_tom.c	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_tom.c	Sat May 26 01:33:07 2012	(r236035)
@@ -260,6 +260,7 @@ t3_tom_activate(struct adapter *sc)
 	tod->tod_syncache_added = t3_syncache_added;
 	tod->tod_syncache_removed = t3_syncache_removed;
 	tod->tod_syncache_respond = t3_syncache_respond;
+	tod->tod_offload_socket = t3_offload_socket;
 
 	/* port MTUs */
 	mtus = sc->port[0].ifp->if_mtu;

Modified: user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_tom.h
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_tom.h	Sat May 26 01:24:39 2012	(r236034)
+++ user/np/toe_iwarp/sys/dev/cxgb/ulp/tom/cxgb_tom.h	Sat May 26 01:33:07 2012	(r236035)
@@ -109,6 +109,8 @@ struct synq_entry {
 	int tid;
 	struct mbuf *m;			/* backpointer to containing mbuf */
 	struct listen_ctx *lctx;	/* backpointer to listen ctx */
+	struct cpl_pass_establish *cpl;
+	struct toepcb *toep;
 	struct l2t_entry *e;
 	uint32_t iss;
 	uint32_t ts;
@@ -273,4 +275,5 @@ void t3_syncache_removed(struct toedev *
 int t3_syncache_respond(struct toedev *, void *, struct mbuf *);
 int do_abort_req_synqe(struct sge_qset *, struct rsp_desc *, struct mbuf *);
 int do_abort_rpl_synqe(struct sge_qset *, struct rsp_desc *, struct mbuf *);
+void t3_offload_socket(struct toedev *, void *, struct socket *);
 #endif

From owner-svn-src-user@FreeBSD.ORG  Sat May 26 01:35:10 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 96E40106564A;
	Sat, 26 May 2012 01:35:10 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 80D468FC0C;
	Sat, 26 May 2012 01:35:10 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4Q1ZAxL044778;
	Sat, 26 May 2012 01:35:10 GMT (envelope-from np@svn.freebsd.org)
Received: (from np@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4Q1ZAGa044776;
	Sat, 26 May 2012 01:35:10 GMT (envelope-from np@svn.freebsd.org)
Message-Id: <201205260135.q4Q1ZAGa044776@svn.freebsd.org>
From: Navdeep Parhar <np@FreeBSD.org>
Date: Sat, 26 May 2012 01:35:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r236037 - user/np/toe_iwarp/sys/modules/cxgb
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 26 May 2012 01:35:10 -0000

Author: np
Date: Sat May 26 01:35:09 2012
New Revision: 236037
URL: http://svn.freebsd.org/changeset/base/236037

Log:
  Limit the cxgb TOE and iWARP drivers to amd64 and i386 for now.

Modified:
  user/np/toe_iwarp/sys/modules/cxgb/Makefile

Modified: user/np/toe_iwarp/sys/modules/cxgb/Makefile
==============================================================================
--- user/np/toe_iwarp/sys/modules/cxgb/Makefile	Sat May 26 01:34:36 2012	(r236036)
+++ user/np/toe_iwarp/sys/modules/cxgb/Makefile	Sat May 26 01:35:09 2012	(r236037)
@@ -1,7 +1,12 @@
 # $FreeBSD$
 SUBDIR= cxgb
 SUBDIR+= cxgb_t3fw
-SUBDIR+= tom
-SUBDIR+= iw_cxgb
+SUBDIR+= ${_tom}
+SUBDIR+= ${_iw_cxgb}
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
+_tom=		tom
+_iw_cxgb=	iw_cxgb
+.endif
 
 .include <bsd.subdir.mk>

From owner-svn-src-user@FreeBSD.ORG  Sat May 26 01:45:53 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id EBCA8106566B;
	Sat, 26 May 2012 01:45:53 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D57B78FC17;
	Sat, 26 May 2012 01:45:53 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4Q1jrXt045307;
	Sat, 26 May 2012 01:45:53 GMT (envelope-from np@svn.freebsd.org)
Received: (from np@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4Q1jrak045301;
	Sat, 26 May 2012 01:45:53 GMT (envelope-from np@svn.freebsd.org)
Message-Id: <201205260145.q4Q1jrak045301@svn.freebsd.org>
From: Navdeep Parhar <np@FreeBSD.org>
Date: Sat, 26 May 2012 01:45:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r236040 - in user/np/toe_iwarp/sys: dev/cxgbe
	dev/cxgbe/tom modules/cxgbe modules/cxgbe/tom
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 26 May 2012 01:45:54 -0000

Author: np
Date: Sat May 26 01:45:53 2012
New Revision: 236040
URL: http://svn.freebsd.org/changeset/base/236040

Log:
  Full stateful TCP offload driver for the Terminator 4 ASIC.

Added:
  user/np/toe_iwarp/sys/dev/cxgbe/tom/
  user/np/toe_iwarp/sys/dev/cxgbe/tom/t4_connect.c   (contents, props changed)
  user/np/toe_iwarp/sys/dev/cxgbe/tom/t4_cpl_io.c   (contents, props changed)
  user/np/toe_iwarp/sys/dev/cxgbe/tom/t4_listen.c   (contents, props changed)
  user/np/toe_iwarp/sys/dev/cxgbe/tom/t4_tom.c   (contents, props changed)
  user/np/toe_iwarp/sys/dev/cxgbe/tom/t4_tom.h   (contents, props changed)
  user/np/toe_iwarp/sys/dev/cxgbe/tom/t4_tom_l2t.c   (contents, props changed)
  user/np/toe_iwarp/sys/dev/cxgbe/tom/t4_tom_l2t.h   (contents, props changed)
  user/np/toe_iwarp/sys/modules/cxgbe/tom/
  user/np/toe_iwarp/sys/modules/cxgbe/tom/Makefile   (contents, props changed)
Modified:
  user/np/toe_iwarp/sys/dev/cxgbe/adapter.h
  user/np/toe_iwarp/sys/dev/cxgbe/offload.h
  user/np/toe_iwarp/sys/dev/cxgbe/t4_l2t.c
  user/np/toe_iwarp/sys/dev/cxgbe/t4_l2t.h
  user/np/toe_iwarp/sys/dev/cxgbe/t4_main.c
  user/np/toe_iwarp/sys/dev/cxgbe/t4_sge.c
  user/np/toe_iwarp/sys/modules/cxgbe/Makefile

Modified: user/np/toe_iwarp/sys/dev/cxgbe/adapter.h
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgbe/adapter.h	Sat May 26 01:36:25 2012	(r236039)
+++ user/np/toe_iwarp/sys/dev/cxgbe/adapter.h	Sat May 26 01:45:53 2012	(r236040)
@@ -156,6 +156,7 @@ enum {
 	INTR_DIRECT	= (1 << 2),	/* direct interrupts for everything */
 	MASTER_PF	= (1 << 3),
 	ADAP_SYSCTL_CTX	= (1 << 4),
+	TOM_INIT_DONE	= (1 << 5),
 
 	CXGBE_BUSY	= (1 << 9),
 
@@ -198,7 +199,7 @@ struct port_info {
 	int first_txq;	/* index of first tx queue */
 	int nrxq;	/* # of rx queues */
 	int first_rxq;	/* index of first rx queue */
-#ifndef TCP_OFFLOAD_DISABLE
+#ifdef TCP_OFFLOAD
 	int nofldtxq;		/* # of offload tx queues */
 	int first_ofld_txq;	/* index of first offload tx queue */
 	int nofldrxq;		/* # of offload rx queues */
@@ -295,7 +296,7 @@ struct sge_iq {
 enum {
 	EQ_CTRL		= 1,
 	EQ_ETH		= 2,
-#ifndef TCP_OFFLOAD_DISABLE
+#ifdef TCP_OFFLOAD
 	EQ_OFLD		= 3,
 #endif
 
@@ -421,14 +422,36 @@ struct sge_rxq {
 
 } __aligned(CACHE_LINE_SIZE);
 
-#ifndef TCP_OFFLOAD_DISABLE
+static inline struct sge_rxq *
+iq_to_rxq(struct sge_iq *iq)
+{
+
+	return (member2struct(sge_rxq, iq, iq));
+}
+
+
+#ifdef TCP_OFFLOAD
 /* ofld_rxq: SGE ingress queue + SGE free list + miscellaneous items */
 struct sge_ofld_rxq {
 	struct sge_iq iq;	/* MUST be first */
 	struct sge_fl fl;	/* MUST follow iq */
 } __aligned(CACHE_LINE_SIZE);
+
+static inline struct sge_ofld_rxq *
+iq_to_ofld_rxq(struct sge_iq *iq)
+{
+
+	return (member2struct(sge_ofld_rxq, iq, iq));
+}
 #endif
 
+struct wrqe {
+	STAILQ_ENTRY(wrqe) link;
+	struct sge_wrq *wrq;
+	int wr_len;
+	uint64_t wr[] __aligned(16);
+};
+
 /*
  * wrq: SGE egress queue that is given prebuilt work requests.  Both the control
  * and offload tx queues are of this type.
@@ -437,8 +460,9 @@ struct sge_wrq {
 	struct sge_eq eq;	/* MUST be first */
 
 	struct adapter *adapter;
-	struct mbuf *head;	/* held up due to lack of descriptors */
-	struct mbuf *tail;	/* valid only if head is valid */
+
+	/* List of WRs held up due to lack of tx descriptors */
+	STAILQ_HEAD(, wrqe) wr_list;
 
 	/* stats for common events first */
 
@@ -456,7 +480,7 @@ struct sge {
 
 	int nrxq;	/* total # of Ethernet rx queues */
 	int ntxq;	/* total # of Ethernet tx tx queues */
-#ifndef TCP_OFFLOAD_DISABLE
+#ifdef TCP_OFFLOAD
 	int nofldrxq;	/* total # of TOE rx queues */
 	int nofldtxq;	/* total # of TOE tx queues */
 #endif
@@ -468,7 +492,7 @@ struct sge {
 	struct sge_wrq *ctrlq;	/* Control queues */
 	struct sge_txq *txq;	/* NIC tx queues */
 	struct sge_rxq *rxq;	/* NIC rx queues */
-#ifndef TCP_OFFLOAD_DISABLE
+#ifdef TCP_OFFLOAD
 	struct sge_wrq *ofld_txq;	/* TOE tx queues */
 	struct sge_ofld_rxq *ofld_rxq;	/* TOE rx queues */
 #endif
@@ -518,15 +542,15 @@ struct adapter {
 	uint8_t chan_map[NCHAN];
 	uint32_t filter_mode;
 
-#ifndef TCP_OFFLOAD_DISABLE
-	struct uld_softc tom;
+#ifdef TCP_OFFLOAD
+	void *tom_softc;	/* (struct tom_data *) */
 	struct tom_tunables tt;
 #endif
 	struct l2t_data *l2t;	/* L2 table */
 	struct tid_info tids;
 
 	int open_device_map;
-#ifndef TCP_OFFLOAD_DISABLE
+#ifdef TCP_OFFLOAD
 	int offload_map;
 #endif
 	int flags;
@@ -608,82 +632,96 @@ struct adapter {
 static inline uint32_t
 t4_read_reg(struct adapter *sc, uint32_t reg)
 {
+
 	return bus_space_read_4(sc->bt, sc->bh, reg);
 }
 
 static inline void
 t4_write_reg(struct adapter *sc, uint32_t reg, uint32_t val)
 {
+
 	bus_space_write_4(sc->bt, sc->bh, reg, val);
 }
 
 static inline uint64_t
 t4_read_reg64(struct adapter *sc, uint32_t reg)
 {
+
 	return t4_bus_space_read_8(sc->bt, sc->bh, reg);
 }
 
 static inline void
 t4_write_reg64(struct adapter *sc, uint32_t reg, uint64_t val)
 {
+
 	t4_bus_space_write_8(sc->bt, sc->bh, reg, val);
 }
 
 static inline void
 t4_os_pci_read_cfg1(struct adapter *sc, int reg, uint8_t *val)
 {
+
 	*val = pci_read_config(sc->dev, reg, 1);
 }
 
 static inline void
 t4_os_pci_write_cfg1(struct adapter *sc, int reg, uint8_t val)
 {
+
 	pci_write_config(sc->dev, reg, val, 1);
 }
 
 static inline void
 t4_os_pci_read_cfg2(struct adapter *sc, int reg, uint16_t *val)
 {
+
 	*val = pci_read_config(sc->dev, reg, 2);
 }
 
 static inline void
 t4_os_pci_write_cfg2(struct adapter *sc, int reg, uint16_t val)
 {
+
 	pci_write_config(sc->dev, reg, val, 2);
 }
 
 static inline void
 t4_os_pci_read_cfg4(struct adapter *sc, int reg, uint32_t *val)
 {
+
 	*val = pci_read_config(sc->dev, reg, 4);
 }
 
 static inline void
 t4_os_pci_write_cfg4(struct adapter *sc, int reg, uint32_t val)
 {
+
 	pci_write_config(sc->dev, reg, val, 4);
 }
 
 static inline struct port_info *
 adap2pinfo(struct adapter *sc, int idx)
 {
+
 	return (sc->port[idx]);
 }
 
 static inline void
 t4_os_set_hw_addr(struct adapter *sc, int idx, uint8_t hw_addr[])
 {
+
 	bcopy(hw_addr, sc->port[idx]->hw_addr, ETHER_ADDR_LEN);
 }
 
 static inline bool is_10G_port(const struct port_info *pi)
 {
+
 	return ((pi->link_cfg.supported & FW_PORT_CAP_SPEED_10G) != 0);
 }
 
 static inline int tx_resume_threshold(struct sge_eq *eq)
 {
+
 	return (eq->qsize / 4);
 }
 
@@ -713,21 +751,45 @@ void t4_intr_all(void *);
 void t4_intr(void *);
 void t4_intr_err(void *);
 void t4_intr_evt(void *);
-int t4_mgmt_tx(struct adapter *, struct mbuf *);
-int t4_wrq_tx_locked(struct adapter *, struct sge_wrq *, struct mbuf *);
+void t4_wrq_tx_locked(struct adapter *, struct sge_wrq *, struct wrqe *);
 int t4_eth_tx(struct ifnet *, struct sge_txq *, struct mbuf *);
 void t4_update_fl_bufsize(struct ifnet *);
 int can_resume_tx(struct sge_eq *);
 
-static inline int t4_wrq_tx(struct adapter *sc, struct sge_wrq *wrq, struct mbuf *m)
+static inline struct wrqe *
+alloc_wrqe(int wr_len, struct sge_wrq *wrq)
 {
-	int rc;
+	int len = offsetof(struct wrqe, wr) + wr_len;
+	struct wrqe *wr;
+
+	wr = malloc(len, M_CXGBE, M_NOWAIT);
+	if (__predict_false(wr == NULL))
+		return (NULL);
+	wr->wr_len = wr_len;
+	wr->wrq = wrq;
+	return (wr);
+}
+
+static inline void *
+wrtod(struct wrqe *wr)
+{
+	return (&wr->wr[0]);
+}
+
+static inline void
+free_wrqe(struct wrqe *wr)
+{
+	free(wr, M_CXGBE);
+}
+
+static inline void
+t4_wrq_tx(struct adapter *sc, struct wrqe *wr)
+{
+	struct sge_wrq *wrq = wr->wrq;
 
 	TXQ_LOCK(wrq);
-	rc = t4_wrq_tx_locked(sc, wrq, m);
+	t4_wrq_tx_locked(sc, wrq, wr);
 	TXQ_UNLOCK(wrq);
-	return (rc);
 }
 
-
 #endif

Modified: user/np/toe_iwarp/sys/dev/cxgbe/offload.h
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgbe/offload.h	Sat May 26 01:36:25 2012	(r236039)
+++ user/np/toe_iwarp/sys/dev/cxgbe/offload.h	Sat May 26 01:45:53 2012	(r236040)
@@ -31,12 +31,6 @@
 #ifndef __T4_OFFLOAD_H__
 #define __T4_OFFLOAD_H__
 
-/* XXX: flagrant misuse of mbuf fields (during tx by TOM) */
-#define MBUF_EQ(m)		(*((void **)(&(m)->m_pkthdr.rcvif)))
-/* These have to work for !M_PKTHDR so we use a field from m_hdr. */
-#define MBUF_TX_CREDITS(m)	((m)->m_hdr.pad[0])
-#define MBUF_DMA_MAPPED(m)	((m)->m_hdr.pad[1])
-
 #define INIT_ULPTX_WR(w, wrlen, atomic, tid) do { \
 	(w)->wr.wr_hi = htonl(V_FW_WR_OP(FW_ULPTX_WR) | V_FW_WR_ATOMIC(atomic)); \
 	(w)->wr.wr_mid = htonl(V_FW_WR_LEN16(DIV_ROUND_UP(wrlen, 16)) | \
@@ -119,7 +113,7 @@ struct t4_virt_res {                    
 	struct t4_range ocq;
 };
 
-#ifndef TCP_OFFLOAD_DISABLE
+#ifdef TCP_OFFLOAD
 enum {
 	ULD_TOM = 1,
 };
@@ -130,13 +124,8 @@ struct uld_info {
 	SLIST_ENTRY(uld_info) link;
 	int refcount;
 	int uld_id;
-	int (*attach)(struct adapter *, void **);
-	int (*detach)(void *);
-};
-
-struct uld_softc {
-	struct uld_info *uld;
-	void *softc;
+	int (*activate)(struct adapter *);
+	int (*deactivate)(struct adapter *);
 };
 
 struct tom_tunables {
@@ -148,6 +137,8 @@ struct tom_tunables {
 
 int t4_register_uld(struct uld_info *);
 int t4_unregister_uld(struct uld_info *);
+int t4_activate_uld(struct adapter *, int);
+int t4_deactivate_uld(struct adapter *, int);
 #endif
 
 #endif

Modified: user/np/toe_iwarp/sys/dev/cxgbe/t4_l2t.c
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgbe/t4_l2t.c	Sat May 26 01:36:25 2012	(r236039)
+++ user/np/toe_iwarp/sys/dev/cxgbe/t4_l2t.c	Sat May 26 01:45:53 2012	(r236040)
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2011 Chelsio Communications, Inc.
+ * Copyright (c) 2012 Chelsio Communications, Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -38,16 +38,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/rwlock.h>
 #include <sys/socket.h>
 #include <sys/sbuf.h>
-#include <net/if.h>
-#include <net/if_types.h>
-#include <net/ethernet.h>
-#include <net/if_vlan_var.h>
-#include <net/if_dl.h>
-#include <net/if_llatbl.h>
-#include <net/route.h>
 #include <netinet/in.h>
-#include <netinet/in_var.h>
-#include <netinet/if_ether.h>
 
 #include "common/common.h"
 #include "common/jhash.h"
@@ -72,42 +63,11 @@ __FBSDID("$FreeBSD$");
  * lifetime of an L2T entry is fully contained in the lifetime of the TOE.
  */
 
-/* identifies sync vs async L2T_WRITE_REQs */
-#define S_SYNC_WR    12
-#define V_SYNC_WR(x) ((x) << S_SYNC_WR)
-#define F_SYNC_WR    V_SYNC_WR(1)
-
-enum {
-	L2T_STATE_VALID,	/* entry is up to date */
-	L2T_STATE_STALE,	/* entry may be used but needs revalidation */
-	L2T_STATE_RESOLVING,	/* entry needs address resolution */
-	L2T_STATE_SYNC_WRITE,	/* synchronous write of entry underway */
-
-	/* when state is one of the below the entry is not hashed */
-	L2T_STATE_SWITCHING,	/* entry is being used by a switching filter */
-	L2T_STATE_UNUSED	/* entry not in use */
-};
-
-struct l2t_data {
-	struct rwlock lock;
-	volatile int nfree;	/* number of free entries */
-	struct l2t_entry *rover;/* starting point for next allocation */
-	struct l2t_entry l2tab[L2T_SIZE];
-};
-
-static int do_l2t_write_rpl(struct sge_iq *, const struct rss_header *,
-    struct mbuf *);
-
-#define VLAN_NONE	0xfff
-#define SA(x)           ((struct sockaddr *)(x))
-#define SIN(x)          ((struct sockaddr_in *)(x))
-#define SINADDR(x)      (SIN(x)->sin_addr.s_addr)
-
 /*
  * Allocate a free L2T entry.  Must be called with l2t_data.lock held.
  */
-static struct l2t_entry *
-alloc_l2e(struct l2t_data *d)
+struct l2t_entry *
+t4_alloc_l2e(struct l2t_data *d)
 {
 	struct l2t_entry *end, *e, **p;
 
@@ -121,7 +81,8 @@ alloc_l2e(struct l2t_data *d)
 		if (atomic_load_acq_int(&e->refcnt) == 0)
 			goto found;
 
-	for (e = d->l2tab; atomic_load_acq_int(&e->refcnt); ++e) ;
+	for (e = d->l2tab; atomic_load_acq_int(&e->refcnt); ++e)
+		continue;
 found:
 	d->rover = e + 1;
 	atomic_subtract_int(&d->nfree, 1);
@@ -148,19 +109,18 @@ found:
  * Write an L2T entry.  Must be called with the entry locked.
  * The write may be synchronous or asynchronous.
  */
-static int
-write_l2e(struct adapter *sc, struct l2t_entry *e, int sync)
+int
+t4_write_l2e(struct adapter *sc, struct l2t_entry *e, int sync)
 {
-	struct mbuf *m;
+	struct wrqe *wr;
 	struct cpl_l2t_write_req *req;
 
 	mtx_assert(&e->lock, MA_OWNED);
 
-	if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL)
+	wr = alloc_wrqe(sizeof(*req), &sc->sge.mgmtq);
+	if (wr == NULL)
 		return (ENOMEM);
-
-	req = mtod(m, struct cpl_l2t_write_req *);
-	m->m_pkthdr.len = m->m_len = sizeof(*req);
+	req = wrtod(wr);
 
 	INIT_TP_WR(req, 0);
 	OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_L2T_WRITE_REQ, e->idx |
@@ -170,7 +130,7 @@ write_l2e(struct adapter *sc, struct l2t
 	req->vlan = htons(e->vlan);
 	memcpy(req->dst_mac, e->dmac, sizeof(req->dst_mac));
 
-	t4_mgmt_tx(sc, m);
+	t4_wrq_tx(sc, wr);
 
 	if (sync && e->state != L2T_STATE_SWITCHING)
 		e->state = L2T_STATE_SYNC_WRITE;
@@ -189,7 +149,7 @@ t4_l2t_alloc_switching(struct l2t_data *
 	struct l2t_entry *e;
 
 	rw_rlock(&d->lock);
-	e = alloc_l2e(d);
+	e = t4_alloc_l2e(d);
 	if (e) {
 		mtx_lock(&e->lock);          /* avoid race with t4_l2t_free */
 		e->state = L2T_STATE_SWITCHING;
@@ -214,7 +174,7 @@ t4_l2t_set_switching(struct adapter *sc,
 	e->lport = port;
 	memcpy(e->dmac, eth_addr, ETHER_ADDR_LEN);
 	mtx_lock(&e->lock);
-	rc = write_l2e(sc, e, 0);
+	rc = t4_write_l2e(sc, e, 0);
 	mtx_unlock(&e->lock);
 	return (rc);
 }
@@ -234,10 +194,13 @@ t4_init_l2t(struct adapter *sc, int flag
 	rw_init(&d->lock, "L2T");
 
 	for (i = 0; i < L2T_SIZE; i++) {
-		d->l2tab[i].idx = i;
-		d->l2tab[i].state = L2T_STATE_UNUSED;
-		mtx_init(&d->l2tab[i].lock, "L2T_E", NULL, MTX_DEF);
-		atomic_store_rel_int(&d->l2tab[i].refcnt, 0);
+		struct l2t_entry *e = &d->l2tab[i];
+
+		e->idx = i;
+		e->state = L2T_STATE_UNUSED;
+		mtx_init(&e->lock, "L2T_E", NULL, MTX_DEF);
+		STAILQ_INIT(&e->wr_list);
+		atomic_store_rel_int(&e->refcnt, 0);
 	}
 
 	sc->l2t = d;
@@ -259,6 +222,24 @@ t4_free_l2t(struct l2t_data *d)
 	return (0);
 }
 
+int
+do_l2t_write_rpl(struct sge_iq *iq, const struct rss_header *rss,
+    struct mbuf *m)
+{
+	const struct cpl_l2t_write_rpl *rpl = (const void *)(rss + 1);
+	unsigned int tid = GET_TID(rpl);
+	unsigned int idx = tid & (L2T_SIZE - 1);
+
+	if (__predict_false(rpl->status != CPL_ERR_NONE)) {
+		log(LOG_ERR,
+		    "Unexpected L2T_WRITE_RPL status %u for entry %u\n",
+		    rpl->status, idx);
+		return (EINVAL);
+	}
+
+	return (0);
+}
+
 #ifdef SBUF_DRAIN
 static inline unsigned int
 vlan_prio(const struct l2t_entry *e)
@@ -273,7 +254,7 @@ l2e_state(const struct l2t_entry *e)
 	case L2T_STATE_VALID: return 'V';  /* valid, fast-path entry */
 	case L2T_STATE_STALE: return 'S';  /* needs revalidation, but usable */
 	case L2T_STATE_SYNC_WRITE: return 'W';
-	case L2T_STATE_RESOLVING: return e->arpq_head ? 'A' : 'R';
+	case L2T_STATE_RESOLVING: return STAILQ_EMPTY(&e->wr_list) ? 'R' : 'A';
 	case L2T_STATE_SWITCHING: return 'X';
 	default: return 'U';
 	}
@@ -311,20 +292,20 @@ sysctl_l2t(SYSCTL_HANDLER_ARGS)
 			    "Ethernet address  VLAN/P LP State Users Port");
 			header = 1;
 		}
-		if (e->state == L2T_STATE_SWITCHING || e->v6)
+		if (e->state == L2T_STATE_SWITCHING)
 			ip[0] = 0;
 		else
 			snprintf(ip, sizeof(ip), "%s",
-			    inet_ntoa(*(struct in_addr *)&e->addr[0]));
+			    inet_ntoa(*(struct in_addr *)&e->addr));
 
-		/* XXX: accessing lle probably not safe? */
+		/* XXX: e->ifp may not be around */
 		sbuf_printf(sb, "\n%4u %-15s %02x:%02x:%02x:%02x:%02x:%02x %4d"
 			   " %u %2u   %c   %5u %s",
 			   e->idx, ip, e->dmac[0], e->dmac[1], e->dmac[2],
 			   e->dmac[3], e->dmac[4], e->dmac[5],
 			   e->vlan & 0xfff, vlan_prio(e), e->lport,
 			   l2e_state(e), atomic_load_acq_int(&e->refcnt),
-			   e->lle ? e->lle->lle_tbl->llt_ifp->if_xname : "");
+			   e->ifp->if_xname);
 skip:
 		mtx_unlock(&e->lock);
 	}
@@ -335,459 +316,3 @@ skip:
 	return (rc);
 }
 #endif
-
-#ifndef TCP_OFFLOAD_DISABLE
-static inline void
-l2t_hold(struct l2t_data *d, struct l2t_entry *e)
-{
-	if (atomic_fetchadd_int(&e->refcnt, 1) == 0)  /* 0 -> 1 transition */
-		atomic_subtract_int(&d->nfree, 1);
-}
-
-/*
- * To avoid having to check address families we do not allow v4 and v6
- * neighbors to be on the same hash chain.  We keep v4 entries in the first
- * half of available hash buckets and v6 in the second.
- */
-enum {
-	L2T_SZ_HALF = L2T_SIZE / 2,
-	L2T_HASH_MASK = L2T_SZ_HALF - 1
-};
-
-static inline unsigned int
-arp_hash(const uint32_t *key, int ifindex)
-{
-	return jhash_2words(*key, ifindex, 0) & L2T_HASH_MASK;
-}
-
-static inline unsigned int
-ipv6_hash(const uint32_t *key, int ifindex)
-{
-	uint32_t xor = key[0] ^ key[1] ^ key[2] ^ key[3];
-
-	return L2T_SZ_HALF + (jhash_2words(xor, ifindex, 0) & L2T_HASH_MASK);
-}
-
-static inline unsigned int
-addr_hash(const uint32_t *addr, int addr_len, int ifindex)
-{
-	return addr_len == 4 ? arp_hash(addr, ifindex) :
-			       ipv6_hash(addr, ifindex);
-}
-
-/*
- * Checks if an L2T entry is for the given IP/IPv6 address.  It does not check
- * whether the L2T entry and the address are of the same address family.
- * Callers ensure an address is only checked against L2T entries of the same
- * family, something made trivial by the separation of IP and IPv6 hash chains
- * mentioned above.  Returns 0 if there's a match,
- */
-static inline int
-addreq(const struct l2t_entry *e, const uint32_t *addr)
-{
-	if (e->v6)
-		return (e->addr[0] ^ addr[0]) | (e->addr[1] ^ addr[1]) |
-		       (e->addr[2] ^ addr[2]) | (e->addr[3] ^ addr[3]);
-	return e->addr[0] ^ addr[0];
-}
-
-/*
- * Add a packet to an L2T entry's queue of packets awaiting resolution.
- * Must be called with the entry's lock held.
- */
-static inline void
-arpq_enqueue(struct l2t_entry *e, struct mbuf *m)
-{
-	mtx_assert(&e->lock, MA_OWNED);
-
-	KASSERT(m->m_nextpkt == NULL, ("%s: m_nextpkt not NULL", __func__));
-	if (e->arpq_head)
-		e->arpq_tail->m_nextpkt = m;
-	else
-		e->arpq_head = m;
-	e->arpq_tail = m;
-}
-
-static inline void
-send_pending(struct adapter *sc, struct l2t_entry *e)
-{
-	struct mbuf *m, *next;
-
-	mtx_assert(&e->lock, MA_OWNED);
-
-	for (m = e->arpq_head; m; m = next) {
-		next = m->m_nextpkt;
-		m->m_nextpkt = NULL;
-		t4_wrq_tx(sc, MBUF_EQ(m), m);
-	}
-	e->arpq_head = e->arpq_tail = NULL;
-}
-
-#ifdef INET
-/*
- * Looks up and fills up an l2t_entry's lle.  We grab all the locks that we need
- * ourself, and update e->state at the end if e->lle was successfully filled.
- *
- * The lle passed in comes from arpresolve and is ignored as it does not appear
- * to be of much use.
- */
-static int
-l2t_fill_lle(struct adapter *sc, struct l2t_entry *e, struct llentry *unused)
-{
-        int rc = 0;
-        struct sockaddr_in sin;
-        struct ifnet *ifp = e->ifp;
-        struct llentry *lle;
-
-        bzero(&sin, sizeof(struct sockaddr_in));
-	if (e->v6)
-		panic("%s: IPv6 L2 resolution not supported yet.", __func__);
-
-	sin.sin_family = AF_INET;
-	sin.sin_len = sizeof(struct sockaddr_in);
-	memcpy(&sin.sin_addr, e->addr, sizeof(struct sockaddr_in));
-
-        mtx_assert(&e->lock, MA_NOTOWNED);
-        KASSERT(e->addr && ifp, ("%s: bad prep before call", __func__));
-
-        IF_AFDATA_LOCK(ifp);
-        lle = lla_lookup(LLTABLE(ifp), LLE_EXCLUSIVE, SA(&sin));
-        IF_AFDATA_UNLOCK(ifp);
-        if (!LLE_IS_VALID(lle))
-                return (ENOMEM);
-        if (!(lle->la_flags & LLE_VALID)) {
-                rc = EINVAL;
-                goto done;
-        }
-
-        LLE_ADDREF(lle);
-
-        mtx_lock(&e->lock);
-        if (e->state == L2T_STATE_RESOLVING) {
-                KASSERT(e->lle == NULL, ("%s: lle already valid", __func__));
-                e->lle = lle;
-                memcpy(e->dmac, &lle->ll_addr, ETHER_ADDR_LEN);
-		write_l2e(sc, e, 1);
-        } else {
-                KASSERT(e->lle == lle, ("%s: lle changed", __func__));
-                LLE_REMREF(lle);
-        }
-        mtx_unlock(&e->lock);
-done:
-        LLE_WUNLOCK(lle);
-        return (rc);
-}
-#endif
-
-int
-t4_l2t_send(struct adapter *sc, struct mbuf *m, struct l2t_entry *e)
-{
-#ifndef INET
-	return (EINVAL);
-#else
-	struct llentry *lle = NULL;
-	struct sockaddr_in sin;
-	struct ifnet *ifp = e->ifp;
-
-	if (e->v6)
-		panic("%s: IPv6 L2 resolution not supported yet.", __func__);
-
-        bzero(&sin, sizeof(struct sockaddr_in));
-	sin.sin_family = AF_INET;
-	sin.sin_len = sizeof(struct sockaddr_in);
-	memcpy(&sin.sin_addr, e->addr, sizeof(struct sockaddr_in));
-
-again:
-	switch (e->state) {
-	case L2T_STATE_STALE:     /* entry is stale, kick off revalidation */
-		if (arpresolve(ifp, NULL, NULL, SA(&sin), e->dmac, &lle) == 0)
-			l2t_fill_lle(sc, e, lle);
-
-		/* Fall through */
-
-	case L2T_STATE_VALID:     /* fast-path, send the packet on */
-		return t4_wrq_tx(sc, MBUF_EQ(m), m);
-
-	case L2T_STATE_RESOLVING:
-	case L2T_STATE_SYNC_WRITE:
-		mtx_lock(&e->lock);
-		if (e->state != L2T_STATE_SYNC_WRITE &&
-		    e->state != L2T_STATE_RESOLVING) {
-			/* state changed by the time we got here */
-			mtx_unlock(&e->lock);
-			goto again;
-		}
-		arpq_enqueue(e, m);
-		mtx_unlock(&e->lock);
-
-		if (e->state == L2T_STATE_RESOLVING &&
-		    arpresolve(ifp, NULL, NULL, SA(&sin), e->dmac, &lle) == 0)
-			l2t_fill_lle(sc, e, lle);
-	}
-
-	return (0);
-#endif
-}
-
-/*
- * Called when an L2T entry has no more users.  The entry is left in the hash
- * table since it is likely to be reused but we also bump nfree to indicate
- * that the entry can be reallocated for a different neighbor.  We also drop
- * the existing neighbor reference in case the neighbor is going away and is
- * waiting on our reference.
- *
- * Because entries can be reallocated to other neighbors once their ref count
- * drops to 0 we need to take the entry's lock to avoid races with a new
- * incarnation.
- */
-static void
-t4_l2e_free(struct l2t_entry *e)
-{
-	struct llentry *lle = NULL;
-	struct l2t_data *d;
-
-	mtx_lock(&e->lock);
-	if (atomic_load_acq_int(&e->refcnt) == 0) {  /* hasn't been recycled */
-		lle = e->lle;
-		e->lle = NULL;
-		/*
-		 * Don't need to worry about the arpq, an L2T entry can't be
-		 * released if any packets are waiting for resolution as we
-		 * need to be able to communicate with the device to close a
-		 * connection.
-		 */
-	}
-	mtx_unlock(&e->lock);
-
-	d = container_of(e, struct l2t_data, l2tab[e->idx]);
-	atomic_add_int(&d->nfree, 1);
-
-	if (lle)
-		LLE_FREE(lle);
-}
-
-void
-t4_l2t_release(struct l2t_entry *e)
-{
-	if (atomic_fetchadd_int(&e->refcnt, -1) == 1)
-		t4_l2e_free(e);
-}
-
-static int
-do_l2t_write_rpl(struct sge_iq *iq, const struct rss_header *rss,
-    struct mbuf *m)
-{
-	struct adapter *sc = iq->adapter;
-	const struct cpl_l2t_write_rpl *rpl = (const void *)(rss + 1);
-	unsigned int tid = GET_TID(rpl);
-	unsigned int idx = tid & (L2T_SIZE - 1);
-
-	if (__predict_false(rpl->status != CPL_ERR_NONE)) {
-		log(LOG_ERR,
-		    "Unexpected L2T_WRITE_RPL status %u for entry %u\n",
-		    rpl->status, idx);
-		return (EINVAL);
-	}
-
-	if (tid & F_SYNC_WR) {
-		struct l2t_entry *e = &sc->l2t->l2tab[idx];
-
-		mtx_lock(&e->lock);
-		if (e->state != L2T_STATE_SWITCHING) {
-			send_pending(sc, e);
-			e->state = L2T_STATE_VALID;
-		}
-		mtx_unlock(&e->lock);
-	}
-
-	return (0);
-}
-
-/*
- * Reuse an L2T entry that was previously used for the same next hop.
- */
-static void
-reuse_entry(struct l2t_entry *e)
-{
-	struct llentry *lle;
-
-	mtx_lock(&e->lock);                /* avoid race with t4_l2t_free */
-	lle = e->lle;
-	if (lle) {
-		KASSERT(lle->la_flags & LLE_VALID,
-			("%s: invalid lle stored in l2t_entry", __func__));
-
-		if (lle->la_expire >= time_uptime)
-			e->state = L2T_STATE_STALE;
-		else
-			e->state = L2T_STATE_VALID;
-	} else
-		e->state = L2T_STATE_RESOLVING;
-	mtx_unlock(&e->lock);
-}
-
-/*
- * The TOE wants an L2 table entry that it can use to reach the next hop over
- * the specified port.  Produce such an entry - create one if needed.
- *
- * Note that the ifnet could be a pseudo-device like if_vlan, if_lagg, etc. on
- * top of the real cxgbe interface.
- */
-struct l2t_entry *
-t4_l2t_get(struct port_info *pi, struct ifnet *ifp, struct sockaddr *sa)
-{
-	struct l2t_entry *e;
-	struct l2t_data *d = pi->adapter->l2t;
-	int addr_len;
-	uint32_t *addr;
-	int hash;
-	struct sockaddr_in6 *sin6;
-	unsigned int smt_idx = pi->port_id;
-
-	if (sa->sa_family == AF_INET) {
-		addr = (uint32_t *)&SINADDR(sa);
-		addr_len = sizeof(SINADDR(sa));
-	} else if (sa->sa_family == AF_INET6) {
-		sin6 = (struct sockaddr_in6 *)sa;
-		addr = (uint32_t *)&sin6->sin6_addr.s6_addr;
-		addr_len = sizeof(sin6->sin6_addr.s6_addr);
-	} else
-		return (NULL);
-
-#ifndef VLAN_TAG
-	if (ifp->if_type == IFT_L2VLAN)
-		return (NULL);
-#endif
-
-	hash = addr_hash(addr, addr_len, ifp->if_index);
-
-	rw_wlock(&d->lock);
-	for (e = d->l2tab[hash].first; e; e = e->next) {
-		if (!addreq(e, addr) && e->ifp == ifp && e->smt_idx == smt_idx){
-			l2t_hold(d, e);
-			if (atomic_load_acq_int(&e->refcnt) == 1)
-				reuse_entry(e);
-			goto done;
-		}
-	}
-
-	/* Need to allocate a new entry */
-	e = alloc_l2e(d);
-	if (e) {
-		mtx_lock(&e->lock);          /* avoid race with t4_l2t_free */
-		e->state = L2T_STATE_RESOLVING;
-		memcpy(e->addr, addr, addr_len);
-		e->ifindex = ifp->if_index;
-		e->smt_idx = smt_idx;
-		e->ifp = ifp;
-		e->hash = hash;
-		e->lport = pi->lport;
-		e->v6 = (addr_len == 16);
-		e->lle = NULL;
-		atomic_store_rel_int(&e->refcnt, 1);
-#ifdef VLAN_TAG
-		if (ifp->if_type == IFT_L2VLAN)
-			VLAN_TAG(ifp, &e->vlan);
-		else
-			e->vlan = VLAN_NONE;
-#endif
-		e->next = d->l2tab[hash].first;
-		d->l2tab[hash].first = e;
-		mtx_unlock(&e->lock);
-	}
-done:
-	rw_wunlock(&d->lock);
-	return e;
-}
-
-/*
- * Called when the host's neighbor layer makes a change to some entry that is
- * loaded into the HW L2 table.
- */
-void
-t4_l2t_update(struct adapter *sc, struct llentry *lle)
-{
-	struct l2t_entry *e;
-	struct l2t_data *d = sc->l2t;
-	struct sockaddr *sa = L3_ADDR(lle);
-	struct llentry *old_lle = NULL;
-	uint32_t *addr = (uint32_t *)&SINADDR(sa);
-	struct ifnet *ifp = lle->lle_tbl->llt_ifp;
-	int hash = addr_hash(addr, sizeof(*addr), ifp->if_index);
-
-	KASSERT(d != NULL, ("%s: no L2 table", __func__));
-	LLE_WLOCK_ASSERT(lle);
-	KASSERT(lle->la_flags & LLE_VALID || lle->la_flags & LLE_DELETED,
-	    ("%s: entry neither valid nor deleted.", __func__));
-
-	rw_rlock(&d->lock);
-	for (e = d->l2tab[hash].first; e; e = e->next) {
-		if (!addreq(e, addr) && e->ifp == ifp) {
-			mtx_lock(&e->lock);
-			if (atomic_load_acq_int(&e->refcnt))
-				goto found;
-			e->state = L2T_STATE_STALE;
-			mtx_unlock(&e->lock);
-			break;
-		}
-	}
-	rw_runlock(&d->lock);
-
-	/* The TOE has no interest in this LLE */
-	return;
-
- found:
-	rw_runlock(&d->lock);
-
-        if (atomic_load_acq_int(&e->refcnt)) {
-
-                /* Entry is referenced by at least 1 offloaded connection. */
-
-                /* Handle deletes first */
-                if (lle->la_flags & LLE_DELETED) {
-                        if (lle == e->lle) {
-                                e->lle = NULL;
-                                e->state = L2T_STATE_RESOLVING;
-                                LLE_REMREF(lle);
-                        }
-                        goto done;
-                }
-
-                if (lle != e->lle) {
-                        old_lle = e->lle;
-                        LLE_ADDREF(lle);
-                        e->lle = lle;
-                }
-
-                if (e->state == L2T_STATE_RESOLVING ||
-                    memcmp(e->dmac, &lle->ll_addr, ETHER_ADDR_LEN)) {
-
-                        /* unresolved -> resolved; or dmac changed */
-
-                        memcpy(e->dmac, &lle->ll_addr, ETHER_ADDR_LEN);
-			write_l2e(sc, e, 1);
-                } else {
-
-                        /* +ve reinforcement of a valid or stale entry */
-
-                }
-
-                e->state = L2T_STATE_VALID;
-
-        } else {
-                /*
-                 * Entry was used previously but is unreferenced right now.
-                 * e->lle has been released and NULL'd out by t4_l2t_free, or
-                 * l2t_release is about to call t4_l2t_free and do that.
-                 *
-                 * Either way this is of no interest to us.
-                 */
-        }
-
-done:
-        mtx_unlock(&e->lock);
-        if (old_lle)
-                LLE_FREE(old_lle);
-}
-
-#endif

Modified: user/np/toe_iwarp/sys/dev/cxgbe/t4_l2t.h
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgbe/t4_l2t.h	Sat May 26 01:36:25 2012	(r236039)
+++ user/np/toe_iwarp/sys/dev/cxgbe/t4_l2t.h	Sat May 26 01:45:53 2012	(r236040)
@@ -30,8 +30,25 @@
 #ifndef __T4_L2T_H
 #define __T4_L2T_H
 
+/* identifies sync vs async L2T_WRITE_REQs */
+#define S_SYNC_WR    12
+#define V_SYNC_WR(x) ((x) << S_SYNC_WR)
+#define F_SYNC_WR    V_SYNC_WR(1)
+
 enum { L2T_SIZE = 4096 };     /* # of L2T entries */
 
+enum {
+	L2T_STATE_VALID,	/* entry is up to date */

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

From owner-svn-src-user@FreeBSD.ORG  Sat May 26 01:55:51 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id D9A34106564A;
	Sat, 26 May 2012 01:55:51 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C513F8FC08;
	Sat, 26 May 2012 01:55:51 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4Q1tpgf045727;
	Sat, 26 May 2012 01:55:51 GMT (envelope-from np@svn.freebsd.org)
Received: (from np@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4Q1tpiY045725;
	Sat, 26 May 2012 01:55:51 GMT (envelope-from np@svn.freebsd.org)
Message-Id: <201205260155.q4Q1tpiY045725@svn.freebsd.org>
From: Navdeep Parhar <np@FreeBSD.org>
Date: Sat, 26 May 2012 01:55:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r236041 - user/np/toe_iwarp/sys/netinet
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 26 May 2012 01:55:51 -0000

Author: np
Date: Sat May 26 01:55:51 2012
New Revision: 236041
URL: http://svn.freebsd.org/changeset/base/236041

Log:
  Try not to change the size of the syncache structure.
  
  The knob to control TCP offload used to require explicit opt-out.  It has
  been replaced with one that requires explicit opt-in, and is enabled only
  in x86 GENERIC kernels for now.

Modified:
  user/np/toe_iwarp/sys/netinet/tcp_syncache.h

Modified: user/np/toe_iwarp/sys/netinet/tcp_syncache.h
==============================================================================
--- user/np/toe_iwarp/sys/netinet/tcp_syncache.h	Sat May 26 01:45:53 2012	(r236040)
+++ user/np/toe_iwarp/sys/netinet/tcp_syncache.h	Sat May 26 01:55:51 2012	(r236041)
@@ -68,7 +68,7 @@ struct syncache {
 	u_int8_t	sc_requested_s_scale:4,
 			sc_requested_r_scale:4;
 	u_int16_t	sc_flags;
-#ifdef TCP_OFFLOAD
+#if defined(TCP_OFFLOAD) || !defined(TCP_OFFLOAD_DISABLE)
 	struct toedev	*sc_tod;		/* entry added by this TOE */
 	void		*sc_todctx;		/* TOE driver context */
 #endif

From owner-svn-src-user@FreeBSD.ORG  Sat May 26 17:07:34 2012
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E43B71065679;
	Sat, 26 May 2012 17:07:34 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D0C258FC16;
	Sat, 26 May 2012 17:07:34 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q4QH7YOW093660;
	Sat, 26 May 2012 17:07:34 GMT (envelope-from np@svn.freebsd.org)
Received: (from np@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q4QH7YrS093656;
	Sat, 26 May 2012 17:07:34 GMT (envelope-from np@svn.freebsd.org)
Message-Id: <201205261707.q4QH7YrS093656@svn.freebsd.org>
From: Navdeep Parhar <np@FreeBSD.org>
Date: Sat, 26 May 2012 17:07:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r236107 - user/np/toe_iwarp/sys/dev/cxgbe/common
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 26 May 2012 17:07:35 -0000

Author: np
Date: Sat May 26 17:07:34 2012
New Revision: 236107
URL: http://svn.freebsd.org/changeset/base/236107

Log:
  Pick up inet options from the proper header.

Modified:
  user/np/toe_iwarp/sys/dev/cxgbe/common/t4_hw.c

Modified: user/np/toe_iwarp/sys/dev/cxgbe/common/t4_hw.c
==============================================================================
--- user/np/toe_iwarp/sys/dev/cxgbe/common/t4_hw.c	Sat May 26 17:03:45 2012	(r236106)
+++ user/np/toe_iwarp/sys/dev/cxgbe/common/t4_hw.c	Sat May 26 17:07:34 2012	(r236107)
@@ -27,6 +27,8 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include "opt_inet.h"
+
 #include "common.h"
 #include "t4_regs.h"
 #include "t4_regs_values.h"