diff --git a/libexec/rc/rc.conf b/libexec/rc/rc.conf index bfa46bd343a6..0ef3012892dd 100644 --- a/libexec/rc/rc.conf +++ b/libexec/rc/rc.conf @@ -1,787 +1,791 @@ #!/bin/sh # This is rc.conf - a file full of useful variables that you can set # to change the default startup behavior of your system. You should # not edit this file! Put any overrides into one of the ${rc_conf_files} # instead and you will be able to update these defaults later without # spamming your local configuration information. # # The ${rc_conf_files} files should only contain values which override # values set in this file. This eases the upgrade path when defaults # are changed and new features are added. # # All arguments must be in double or single quotes. # # For a more detailed explanation of all the rc.conf variables, please # refer to the rc.conf(5) manual page. # ############################################################## ### Important initial Boot-time options #################### ############################################################## # Set default value of _localbase if not previously set : ${_localbase:="$(/sbin/sysctl -n user.localbase 2> /dev/null)"} : ${_localbase:="/usr/local"} # rc_debug can't be set here without interferring with rc.subr's setting it # when the kenv variable rc.debug is set. #rc_debug="NO" # Set to YES to enable debugging output from rc.d rc_info="NO" # Enables display of informational messages at boot. rc_startmsgs="YES" # Show "Starting foo:" messages at boot rcshutdown_timeout="90" # Seconds to wait before terminating rc.shutdown precious_machine="NO" # Set to YES to get some guards against mis-directed # shutdown(8) commands early_late_divider="FILESYSTEMS" # Script that separates early/late # stages of the boot process. Make sure you know # the ramifications if you change this. # See rc.conf(5) for more details. always_force_depends="NO" # Set to check that indicated dependencies are # running during boot (can increase boot time). apm_enable="NO" # Set to YES to enable APM BIOS functions (or NO). apmd_enable="NO" # Run apmd to handle APM event from userland. apmd_flags="" # Flags to apmd (if enabled). ddb_enable="NO" # Set to YES to load ddb scripts at boot. ddb_config="/etc/ddb.conf" # ddb(8) config file. devd_enable="YES" # Run devd, to trigger programs on device tree changes. devd_flags="" # Additional flags for devd(8). devmatch_enable="YES" # Demand load kernel modules based on device ids. devmatch_blocklist="" # List of modules (w/o .ko) to exclude from devmatch. #kld_list="" # Kernel modules to load after local disks are mounted kldxref_enable="YES" # Build linker.hints files with kldxref(8). kldxref_clobber="NO" # Overwrite old linker.hints at boot. kldxref_module_path="" # Override kern.module_path. A ';'-delimited list. powerd_enable="NO" # Run powerd to lower our power usage. powerd_flags="" # Flags to powerd (if enabled). tmpmfs="AUTO" # Set to YES to always create an mfs /tmp, NO to never tmpsize="20m" # Size of mfs /tmp if created tmpmfs_flags="-S" # Extra mdmfs options for the mfs /tmp utx_enable="YES" # Enable user accounting varmfs="AUTO" # Set to YES to always create an mfs /var, NO to never varsize="32m" # Size of mfs /var if created varmfs_flags="-S" # Extra mount options for the mfs /var mfs_type="auto" # "md", "tmpfs", "auto" to prefer tmpfs with md as fallback populate_var="AUTO" # Set to YES to always (re)populate /var, NO to never cleanvar_enable="YES" # Clean the /var directory var_run_enable="YES" # Save/restore /var/run structure at shutdown/reboot var_run_autosave="YES" # Only restore /var/run structure at shutdown/reboot # The user is expected to issue service var_run save to # manually save the /var/run mtree var_run_mtree="/var/db/mtree/BSD.var-run.mtree" # Where to save /var/run mtree local_startup="${_localbase}/etc/rc.d" # startup script dirs. script_name_sep=" " # Change if your startup scripts' names contain spaces rc_conf_files="/etc/rc.conf /etc/rc.conf.local" # ZFS support zfs_enable="NO" # Set to YES to automatically mount ZFS file systems zfskeys_enable="NO" # Set YES to autoload ZFS encryption keys zfs_bootonce_activate="NO" # Set YES to make successful bootonce BE permanent zpool_reguid="" # Set to zpools for which the GUID should be replaced # upon first boot. zpool_upgrade="" # Set to zpools for which the version should be upgraded # upon first boot. # ZFSD support zfsd_enable="NO" # Set to YES to automatically start the ZFS fault # management daemon. gptboot_enable="YES" # GPT boot success/failure reporting. # GELI disk encryption configuration. geli_devices="" # List of devices to automatically attach in addition to # GELI devices listed in /etc/fstab. geli_groups="" # List of groups containing devices to automatically # attach with the same keyfiles and passphrase geli_tries="" # Number of times to attempt attaching geli device. # If empty, kern.geom.eli.tries will be used. geli_default_flags="" # Default flags for geli(8). geli_autodetach="YES" # Automatically detach on last close. # Providers are marked as such when all file systems are # mounted. # Example use. #geli_devices="da1 mirror/home" #geli_da1_flags="-p -k /etc/geli/da1.keys" #geli_da1_autodetach="NO" #geli_mirror_home_flags="-k /etc/geli/home.keys" #geli_groups="storage backup" #geli_storage_flags="-k /etc/geli/storage.keys" #geli_storage_devices="ada0 ada1" #geli_backup_flags="-j /etc/geli/backup.passfile -k /etc/geli/backup.keys" #geli_backup_devices="ada2 ada3" root_rw_mount="YES" # Set to NO to inhibit remounting root read-write. root_hold_delay="30" # Time to wait for root mount hold release. fsck_flags="-p" # May be changed to -f (or -f -y) to force a full fsck fsck_y_enable="NO" # Set to YES to do fsck -y if the initial preen fails. fsck_y_flags="-T ffs:-R -T ufs:-R" # Additional flags for fsck -y background_fsck="YES" # Attempt to run fsck in the background where possible. background_fsck_delay="60" # Time to wait (seconds) before starting the fsck. growfs_enable="NO" # Set to YES to attempt to grow the root filesystem on boot growfs_swap_size="" # Set to 0 to disable growfs swap, "" to default size, # size in bytes to specify swap size. netfs_types="nfs:NFS smbfs:SMB" # Net filesystems. extra_netfs_types="NO" # List of network extra filesystem types for delayed # mount at startup (or NO). ############################################################## ### Network configuration sub-section ###################### ############################################################## ### Basic network and firewall/security options: ### hostname="" # Set this! hostid_enable="YES" # Set host UUID. hostid_file="/etc/hostid" # File with hostuuid. hostid_uuidgen_flags="-r" # Flags to uuidgen. machine_id_file="/etc/machine-id" # File with machine-id. nisdomainname="NO" # Set to NIS domain if using NIS (or NO). dhclient_program="/sbin/dhclient" # Path to dhcp client program. dhclient_flags="" # Extra flags to pass to dhcp client. #dhclient_flags_em0="" # Extra dhclient flags for em0 only background_dhclient="NO" # Start dhcp client in the background. #background_dhclient_em0="YES" # Start dhcp client on em0 in the background. dhclient_arpwait="YES" # Wait for ARP resolution synchronous_dhclient="NO" # Start dhclient directly on configured # interfaces during startup. defaultroute_delay="30" # Time to wait for a default route on a DHCP interface. defaultroute_carrier_delay="5" # Time to wait for carrier while waiting for a default route. netif_enable="YES" # Set to YES to initialize network interfaces netif_ipexpand_max="2048" # Maximum number of IP addrs in a range spec. wpa_supplicant_program="/usr/sbin/wpa_supplicant" wpa_supplicant_flags="-s" # Extra flags to pass to wpa_supplicant wpa_supplicant_conf_file="/etc/wpa_supplicant.conf" # firewall_enable="NO" # Set to YES to enable firewall functionality firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall firewall_type="UNKNOWN" # Firewall type (see /etc/rc.firewall) firewall_quiet="NO" # Set to YES to suppress rule display firewall_logging="NO" # Set to YES to enable events logging firewall_logif="NO" # Set to YES to create logging-pseudo interface firewall_flags="" # Flags passed to ipfw when type is a file firewall_coscripts="" # List of executables/scripts to run after # firewall starts/stops firewall_client_net="192.0.2.0/24" # IPv4 Network address for "client" # firewall. #firewall_client_net_ipv6="2001:db8:2:1::/64" # IPv6 network prefix for # "client" firewall. firewall_simple_iif="em1" # Inside network interface for "simple" # firewall. firewall_simple_inet="192.0.2.16/28" # Inside network address for "simple" # firewall. firewall_simple_oif="em0" # Outside network interface for "simple" # firewall. firewall_simple_onet="192.0.2.0/28" # Outside network address for "simple" # firewall. #firewall_simple_iif_ipv6="em1" # Inside IPv6 network interface for "simple" # firewall. #firewall_simple_inet_ipv6="2001:db8:2:800::/56" # Inside IPv6 network prefix # for "simple" firewall. #firewall_simple_oif_ipv6="em0" # Outside IPv6 network interface for "simple" # firewall. #firewall_simple_onet_ipv6="2001:db8:2:0::/56" # Outside IPv6 network prefix # for "simple" firewall. firewall_myservices="" # List of ports/protocols on which this host # offers services for "workstation" firewall. firewall_allowservices="" # List of IPs which have access to # $firewall_myservices for "workstation" # firewall. firewall_trusted="" # List of IPs which have full access to this # host for "workstation" firewall. firewall_logdeny="NO" # Set to YES to log default denied incoming # packets for "workstation" firewall. firewall_nologports="135-139,445 1026,1027 1433,1434" # List of TCP/UDP ports # for which denied incoming packets are not # logged for "workstation" firewall. firewall_nat_enable="NO" # Enable kernel NAT (if firewall_enable == YES) firewall_nat_interface="" # Public interface or IPaddress to use firewall_nat_flags="" # Additional configuration parameters firewall_nat64_enable="NO" # Enable kernel NAT64 module. firewall_nptv6_enable="NO" # Enable kernel NPTv6 module. firewall_pmod_enable="NO" # Enable kernel protocols modification module. dummynet_enable="NO" # Load the dummynet(4) module ipfw_netflow_enable="NO" # Enable netflow logging via ng_netflow ip_portrange_first="NO" # Set first dynamically allocated port ip_portrange_last="NO" # Set last dynamically allocated port ike_enable="NO" # Enable IKE daemon (usually racoon or isakmpd) ike_program="${_localbase}/sbin/isakmpd" # Path to IKE daemon ike_flags="" # Additional flags for IKE daemon ipsec_enable="NO" # Set to YES to run setkey on ipsec_file ipsec_file="/etc/ipsec.conf" # Name of config file for setkey natd_program="/sbin/natd" # path to natd, if you want a different one. natd_enable="NO" # Enable natd (if firewall_enable == YES). natd_interface="" # Public interface or IPaddress to use. natd_flags="" # Additional flags for natd. ipfilter_enable="NO" # Set to YES to enable ipfilter functionality ipfilter_program="/sbin/ipf" # where the ipfilter program lives ipfilter_rules="/etc/ipf.rules" # rules definition file for ipfilter, see # /usr/src/share/examples/ipfilter for examples ipfilter_flags="" # additional flags for ipfilter ipfilter_optionlist="" # optionlist for ipf(8) -T ippool_enable="NO" # Set to YES to enable ip filter pools ippool_program="/sbin/ippool" # where the ippool program lives ippool_rules="/etc/ippool.tables" # rules definition file for ippool ippool_flags="" # additional flags for ippool ipnat_enable="NO" # Set to YES to enable ipnat functionality ipnat_program="/sbin/ipnat" # where the ipnat program lives ipnat_rules="/etc/ipnat.rules" # rules definition file for ipnat ipnat_flags="" # additional flags for ipnat ipmon_enable="NO" # Set to YES for ipmon; needs ipfilter or ipnat ipmon_program="/sbin/ipmon" # where the ipfilter monitor program lives ipmon_flags="-Ds" # typically "-Ds" or "-D /var/log/ipflog" ipfs_enable="NO" # Set to YES to enable saving and restoring # of state tables at shutdown and boot ipfs_program="/sbin/ipfs" # where the ipfs program lives ipfs_flags="" # additional flags for ipfs pf_enable="NO" # Set to YES to enable packet filter (pf) pf_rules="/etc/pf.conf" # rules definition file for pf (nonexistent # by default) pf_program="/sbin/pfctl" # where the pfctl program lives pf_flags="" # additional flags for pfctl pf_fallback_rules_enable="NO" # fallback if loading ruleset fails pf_fallback_rules="block drop log all" # rules to load on pf ruleset failure #pf_fallback_rules="block drop log all #pass quick on em4" # multi-rule pf_fallback_rules_file="/etc/pf-fallback.conf" # rules file on ruleset failure pflog_enable="NO" # Set to YES to enable packet filter logging pflog_logfile="/var/log/pflog" # where pflogd should store the logfile pflog_program="/sbin/pflogd" # where the pflogd program lives pflog_flags="" # additional flags for pflogd dnctl_enable="NO" dnctl_program="/sbin/dnctl" dnctl_rules="/etc/dnctl.conf" ftpproxy_enable="NO" # Set to YES to enable ftp-proxy(8) for pf ftpproxy_flags="" # additional flags for ftp-proxy(8) pfsync_enable="NO" # Expose pf state to other hosts for syncing pfsync_syncdev="" # Interface for pfsync to work through pfsync_syncpeer="" # IP address of pfsync peer host pfsync_ifconfig="" # Additional options to ifconfig(8) for pfsync tcp_extensions="YES" # Set to NO to turn off RFC1323 extensions. log_in_vain="0" # >=1 to log connects to ports w/o listeners. tcp_keepalive="YES" # Enable stale TCP connection timeout (or NO). tcp_drop_synfin="NO" # Set to YES to drop TCP packets with SYN+FIN # NOTE: this violates the TCP specification icmp_drop_redirect="auto" # Set to YES to ignore ICMP REDIRECT packets icmp_log_redirect="NO" # Set to YES to log ICMP REDIRECT packets network_interfaces="auto" # List of network interfaces (or "auto"). cloned_interfaces="" # List of cloned network interfaces to create. #cloned_interfaces="gif0 gif1 gif2 gif3" # Pre-cloning GENERIC config. #ifconfig_lo0="inet 127.0.0.1/8" # default loopback device configuration. #ifconfig_lo0_alias0="inet 127.0.0.254/32" # Sample alias entry. #ifconfig_em0_ipv6="inet6 2001:db8:1::1 prefixlen 64" # Sample IPv6 addr entry #ifconfig_em0_alias0="inet6 2001:db8:2::1 prefixlen 64" # Sample IPv6 alias #ifconfig_em0_name="net0" # Change interface name from em0 to net0. #vlans_em0="101 vlan0" # vlan(4) interfaces for em0 device #create_args_vlan0="vlan 102" # vlan tag for vlan0 device #wlans_ath0="wlan0" # wlan(4) interfaces for ath0 device #wlandebug_wlan0="scan+auth+assoc" # Set debug flags with wlandebug(8) #ipv4_addrs_em0="192.168.0.1/24 192.168.1.1-5/28" # example IPv4 address entry. # #autobridge_interfaces="bridge0" # List of bridges to check #autobridge_bridge0="tap* vlan0" # Interface glob to automatically add to the bridge # User ppp configuration. ppp_enable="NO" # Start user-ppp (or NO). ppp_program="/usr/sbin/ppp" # Path to user-ppp program. ppp_mode="auto" # Choice of "auto", "ddial", "direct" or "dedicated". # For details see man page for ppp(8). Default is auto. ppp_nat="YES" # Use PPP's internal network address translation or NO. ppp_profile="papchap" # Which profile to use from /etc/ppp/ppp.conf. ppp_user="root" # Which user to run ppp as # Start multiple instances of ppp at boot time #ppp_profile="profile1 profile2 profile3" # Which profiles to use #ppp_profile1_mode="ddial" # Override ppp mode for profile1 #ppp_profile2_nat="NO" # Override nat mode for profile2 # profile3 uses default ppp_mode and ppp_nat ### Network daemon (miscellaneous) ### hostapd_program="/usr/sbin/hostapd" hostapd_enable="NO" # Run hostap daemon. syslogd_enable="YES" # Run syslog daemon (or NO). syslogd_program="/usr/sbin/syslogd" # path to syslogd, if you want a different one. syslogd_flags="-s" # Flags to syslogd (if enabled). syslogd_oomprotect="YES" # Don't kill syslogd when swap space is exhausted. altlog_proglist="" # List of chrooted applicatioins in /var inetd_enable="NO" # Run the network daemon dispatcher (YES/NO). inetd_program="/usr/sbin/inetd" # path to inetd, if you want a different one. inetd_flags="-wW -C 60" # Optional flags to inetd iscsid_enable="NO" # iSCSI initiator daemon. iscsictl_enable="NO" # iSCSI initiator autostart. iscsictl_flags="-Aa" # Optional flags to iscsictl. hastd_enable="NO" # Run the HAST daemon (YES/NO). hastd_program="/sbin/hastd" # path to hastd, if you want a different one. hastd_flags="" # Optional flags to hastd. ggated_enable="NO" # Run the ggate daemon (YES/NO). ggated_config="/etc/gg.exports" # ggated(8) exports file. ggated_flags="" # Extra parameters like which port to bind to. ctld_enable="NO" # CAM Target Layer / iSCSI target daemon. local_unbound_enable="NO" # Local caching DNS resolver local_unbound_oomprotect="YES" # Don't kill local_unbound when swap space is exhausted. local_unbound_tls="NO" # Use DNS over TLS blacklistd_enable="NO" # Run blacklistd daemon (YES/NO). blacklistd_flags="" # Optional flags for blacklistd(8). resolv_enable="YES" # Enable resolv / resolvconf # # kerberos. Do not run the admin daemons on slave servers # kdc_enable="NO" # Run a kerberos 5 KDC (or NO). kdc_program="" # path to kerberos 5 KDC kdc_flags="" # Additional flags to the kerberos 5 KDC kdc_restart="NO" # Auto restart kdc on abnormal termination kdc_restart_delay="" # Auto restart delay seconds kadmind_enable="NO" # Run kadmind (or NO) kadmind_program="/usr/libexec/kadmind" # path to kadmind kpasswdd_enable="NO" # Run kpasswdd (or NO) kpasswdd_program="/usr/libexec/kpasswdd" # path to kpasswdd kfd_enable="NO" # Run kfd (or NO) kfd_program="/usr/libexec/kfd" # path to kerberos 5 kfd daemon kfd_flags="" ipropd_master_enable="NO" # Run Heimdal incremental propagation daemon # (master daemon). ipropd_master_program="/usr/libexec/ipropd-master" ipropd_master_flags="" # Flags to ipropd-master. ipropd_master_keytab="/etc/krb5.keytab" # keytab for ipropd-master. ipropd_master_slaves="" # slave node names used for /var/heimdal/slaves. ipropd_slave_enable="NO" # Run Heimdal incremental propagation daemon # (slave daemon). ipropd_slave_program="/usr/libexec/ipropd-slave" ipropd_slave_flags="" # Flags to ipropd-slave. ipropd_slave_keytab="/etc/krb5.keytab" # keytab for ipropd-slave. ipropd_slave_master="" # master node name. gssd_enable="NO" # Run the gssd daemon (or NO). gssd_program="/usr/sbin/gssd" # Path to gssd. gssd_flags="" # Flags for gssd. rwhod_enable="NO" # Run the rwho daemon (or NO). rwhod_flags="" # Flags for rwhod rarpd_enable="NO" # Run rarpd (or NO). rarpd_flags="-a" # Flags to rarpd. bootparamd_enable="NO" # Run bootparamd (or NO). bootparamd_flags="" # Flags to bootparamd pppoed_enable="NO" # Run the PPP over Ethernet daemon. pppoed_provider="*" # Provider and ppp(8) config file entry. pppoed_flags="-P /var/run/pppoed.pid" # Flags to pppoed (if enabled). pppoed_interface="em0" # The interface that pppoed runs on. sshd_enable="NO" # Enable sshd sshd_oomprotect="YES" # Don't kill sshd when swap space is exhausted. sshd_program="/usr/sbin/sshd" # path to sshd, if you want a different one. sshd_flags="" # Additional flags for sshd. ftpd_enable="NO" # Enable stand-alone ftpd. ftpd_program="/usr/libexec/ftpd" # Path to ftpd, if you want a different one. ftpd_flags="" # Additional flags to stand-alone ftpd. ### Network daemon (NFS): All need rpcbind_enable="YES" ### autofs_enable="NO" # Run autofs daemons. automount_flags="" # Flags to automount(8) (if autofs enabled). automountd_flags="" # Flags to automountd(8) (if autofs enabled). autounmountd_flags="" # Flags to autounmountd(8) (if autofs enabled). nfs_client_enable="NO" # This host is an NFS client (or NO). nfs_access_cache="60" # Client cache timeout in seconds nfs_server_enable="NO" # This host is an NFS server (or NO). nfs_server_flags="-u -t" # Flags to nfsd (if enabled). nfs_server_managegids="NO" # The NFS server maps gids for AUTH_SYS (or NO). nfs_server_maxio="131072" # Maximum I/O size for the nfsd. mountd_enable="NO" # Run mountd (or NO). mountd_flags="-r -S" # Flags to mountd (if NFS server enabled). weak_mountd_authentication="NO" # Allow non-root mount requests to be served. nfs_reserved_port_only="YES" # Provide NFS only on secure port (or NO). nfs_bufpackets="" # bufspace (in packets) for client rpc_lockd_enable="NO" # Run NFS rpc.lockd needed for client/server. rpc_lockd_flags="" # Flags to rpc.lockd (if enabled). rpc_statd_enable="NO" # Run NFS rpc.statd needed for client/server. rpc_statd_flags="" # Flags to rpc.statd (if enabled). rpcbind_enable="NO" # Run the portmapper service (YES/NO). rpcbind_program="/usr/sbin/rpcbind" # path to rpcbind, if you want a different one. rpcbind_flags="" # Flags to rpcbind (if enabled). rpc_ypupdated_enable="NO" # Run if NIS master and SecureRPC (or NO). nfsv4_server_enable="NO" # Enable support for NFSv4 nfsv4_server_only="NO" # Set NFS server to NFSv4 only nfscbd_enable="NO" # NFSv4 client side callback daemon nfscbd_flags="" # Flags for nfscbd nfsuserd_enable="NO" # NFSv4 user/group name mapping daemon nfsuserd_flags="" # Flags for nfsuserd tlsclntd_enable="NO" # Run rpc.tlsclntd needed for NFS-over-TLS mount tlsclntd_flags="" # Flags for rpc.tlsclntd tlsservd_enable="NO" # Run rpc.tlsservd needed for NFS-over-TLS nfsd tlsservd_flags="" # Flags for rpc.tlsservd ### Network Time Services options: ### ntpdate_enable="NO" # Run ntpdate to sync time on boot (or NO). ntpdate_program="/usr/sbin/ntpdate" # path to ntpdate, if you want a different one. ntpdate_flags="-b" # Flags to ntpdate (if enabled). ntpdate_config="/etc/ntp.conf" # ntpdate(8) configuration file ntpdate_hosts="" # Whitespace-separated list of ntpdate(8) servers. ntpd_enable="NO" # Run ntpd Network Time Protocol (or NO). ntpd_program="/usr/sbin/ntpd" # path to ntpd, if you want a different one. ntpd_config="/etc/ntp.conf" # ntpd(8) configuration file ntpd_sync_on_start="NO" # Sync time on ntpd startup, even if offset is high ntpd_flags="" # Additional flags to ntpd ntp_src_leapfile="/etc/ntp/leap-seconds" # Initial source for ntpd leapfile ntp_db_leapfile="/var/db/ntpd.leap-seconds.list" # Canonical place to get the leap seconds from ntp_leapfile_sources="https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list https://data.iana.org/time-zones/tzdb/leap-seconds.list" # Source from which to fetch leapfile ntp_leapfile_fetch_opts="-mq" # Options to use for ntp leapfile fetch, # e.g. --no-verify-peer ntp_leapfile_expiry_days=30 # Check for new leapfile 30 days prior to # expiry. ntp_leapfile_fetch_verbose="NO" # Be verbose during NTP leapfile fetch # Network Information Services (NIS) options: All need rpcbind_enable="YES" ### nis_client_enable="NO" # We're an NIS client (or NO). nis_client_flags="" # Flags to ypbind (if enabled). nis_ypset_enable="NO" # Run ypset at boot time (or NO). nis_ypset_flags="" # Flags to ypset (if enabled). nis_server_enable="NO" # We're an NIS server (or NO). nis_server_flags="" # Flags to ypserv (if enabled). nis_ypxfrd_enable="NO" # Run rpc.ypxfrd at boot time (or NO). nis_ypxfrd_flags="" # Flags to rpc.ypxfrd (if enabled). nis_yppasswdd_enable="NO" # Run rpc.yppasswdd at boot time (or NO). nis_yppasswdd_flags="" # Flags to rpc.yppasswdd (if enabled). nis_ypldap_enable="NO" # Run ypldap at boot time (or NO). nis_ypldap_flags="" # Flags to ypldap (if enabled). ### SNMP daemon ### # Be sure to understand the security implications of running SNMP v1/v2 # in your network. bsnmpd_enable="NO" # Run the SNMP daemon (or NO). bsnmpd_flags="" # Flags for bsnmpd. ### Network routing options: ### defaultrouter="NO" # Set to default gateway (or NO). #defaultrouter_fibN="192.0.2.1" # Use this form to set a gateway for FIB N static_arp_pairs="" # Set to static ARP list (or leave empty). static_ndp_pairs="" # Set to static NDP list (or leave empty). static_routes="" # Set to static route list (or leave empty). gateway_enable="NO" # Set to YES if this host will be a gateway. routed_enable="NO" # Set to YES to enable a routing daemon. routed_program="/sbin/routed" # Name of routing daemon to use if enabled. routed_flags="-q" # Flags for routing daemon. arpproxy_all="NO" # replaces obsolete kernel option ARP_PROXYALL. forward_sourceroute="NO" # do source routing (only if gateway_enable is set to "YES") accept_sourceroute="NO" # accept source routed packets to us ### Bluetooth ### hcsecd_enable="NO" # Enable hcsecd(8) (or NO) hcsecd_config="/etc/bluetooth/hcsecd.conf" # hcsecd(8) configuration file sdpd_enable="NO" # Enable sdpd(8) (or NO) sdpd_control="/var/run/sdp" # sdpd(8) control socket sdpd_groupname="nobody" # set spdp(8) user/group to run as after sdpd_username="nobody" # it initializes bthidd_enable="NO" # Enable bthidd(8) (or NO) bthidd_config="/etc/bluetooth/bthidd.conf" # bthidd(8) configuration file bthidd_hids="/var/db/bthidd.hids" # bthidd(8) known HID devices file bthidd_evdev_support="AUTO" # AUTO depends on EVDEV_SUPPORT kernel option rfcomm_pppd_server_enable="NO" # Enable rfcomm_pppd(8) in server mode (or NO) rfcomm_pppd_server_profile="one two" # Profile to use from /etc/ppp/ppp.conf # #rfcomm_pppd_server_one_bdaddr="" # Override local bdaddr for 'one' rfcomm_pppd_server_one_channel="1" # Override local channel for 'one' #rfcomm_pppd_server_one_register_sp="NO" # Override SP and DUN register #rfcomm_pppd_server_one_register_dun="NO" # for 'one' # #rfcomm_pppd_server_two_bdaddr="" # Override local bdaddr for 'two' rfcomm_pppd_server_two_channel="3" # Override local channel for 'two' #rfcomm_pppd_server_two_register_sp="NO" # Override SP and DUN register #rfcomm_pppd_server_two_register_dun="NO" # for 'two' ubthidhci_enable="NO" # Switch an USB BT controller present on #ubthidhci_busnum="3" # bus 3 and addr 2 from HID mode to HCI mode. #ubthidhci_addr="2" # Check usbconfig list to find the correct # numbers for your system. ### Network link/usability verification options netwait_enable="NO" # Enable rc.d/netwait (or NO) #netwait_ip="" # Wait for ping response from any IP in this list. netwait_timeout="60" # Total number of seconds to perform pings. #netwait_if="" # Wait for active link on each intf in this list. netwait_if_timeout="30" # Total number of seconds to monitor link state. ### Miscellaneous network options: ### icmp_bmcastecho="NO" # respond to broadcast ping packets ### IPv6 options: ### ipv6_network_interfaces="auto" # List of IPv6 network interfaces # (or "auto" or "none"). ipv6_activate_all_interfaces="NO" # If NO, interfaces which have no # corresponding $ifconfig_IF_ipv6 is # marked as IFDISABLED for security # reason. ipv6_defaultrouter="NO" # Set to IPv6 default gateway (or NO). #ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068) #ipv6_defaultrouter_fibN="2001:db8::" # Use this form to set a gateway for FIB N ipv6_static_routes="" # Set to static route list (or leave empty). #ipv6_static_routes="xxx" # An example to set fec0:0000:0000:0006::/64 # route toward loopback interface. #ipv6_route_xxx="fec0:0000:0000:0006:: -prefixlen 64 ::1" ipv6_gateway_enable="NO" # Set to YES if this host will be a gateway. ipv6_cpe_wanif="NO" # Set to the upstream interface name if this # node will work as a router to forward IPv6 # packets not explicitly addressed to itself. ipv6_privacy="NO" # Use privacy address on RA-receiving IFs # (RFC 4941) route6d_enable="NO" # Set to YES to enable an IPv6 routing daemon. route6d_program="/usr/sbin/route6d" # Name of IPv6 routing daemon. route6d_flags="" # Flags to IPv6 routing daemon. #route6d_flags="-l" # Example for route6d with only IPv6 site local # addrs. #route6d_flags="-q" # If you want to run a routing daemon on an end # node, you should stop advertisement. #ipv6_network_interfaces="em0 em1" # Examples for router # or static configuration for end node. # Choose correct prefix value. #ipv6_prefix_em0="fec0:0000:0000:0001 fec0:0000:0000:0002" # Examples for rtr. #ipv6_prefix_em1="fec0:0000:0000:0003 fec0:0000:0000:0004" # Examples for rtr. ipv6_default_interface="NO" # Default output interface for scoped addrs. # This works only with # ipv6_gateway_enable="NO". rtsol_flags="-i" # Flags to IPv6 router solicitation. rtsold_enable="NO" # Set to YES to enable an IPv6 router # solicitation daemon. rtsold_flags="-a -i" # Flags to an IPv6 router solicitation # daemon. rtadvd_enable="NO" # Set to YES to enable an IPv6 router # advertisement daemon. If set to YES, # this router becomes a possible candidate # IPv6 default router for local subnets. rtadvd_flags="" # Flags to the IPv6 router advertisement daemon. rtadvd_interfaces="" # Interfaces rtadvd sends RA packets. stf_interface_ipv4addr="" # Local IPv4 addr for 6to4 IPv6 over IPv4 # tunneling interface. Specify this entry # to enable 6to4 interface. stf_interface_ipv4plen="0" # Prefix length for 6to4 IPv4 addr, # to limit peer addr range. Effective value # is 0-31. stf_interface_ipv6_ifid="0:0:0:1" # IPv6 interface id for stf0. # If you like, you can set "AUTO" for this. stf_interface_ipv6_slaid="0000" # IPv6 Site Level Aggregator for stf0 ipv6_ipv4mapping="NO" # Set to "YES" to enable IPv4 mapped IPv6 addr # communication. (like ::ffff:a.b.c.d) ip6addrctl_enable="YES" # Set to YES to enable default address selection ip6addrctl_verbose="NO" # Set to YES to enable verbose configuration messages ip6addrctl_policy="AUTO" # A pre-defined address selection policy # (ipv4_prefer, ipv6_prefer, or AUTO) ############################################################## ### System console options ################################# ############################################################## keyboard="" # keyboard device to use (default /dev/kbd0). keymap="NO" # keymap in /usr/share/{syscons,vt}/keymaps/* (or NO). keyrate="NO" # keyboard rate to: slow, normal, fast (or NO). keybell="NO" # See kbdcontrol(1) for options. Use "off" to disable. keychange="NO" # function keys default values (or NO). cursor="NO" # cursor type {normal|blink|destructive} (or NO). scrnmap="NO" # screen map in /usr/share/syscons/scrnmaps/* (or NO). font8x16="NO" # font 8x16 from /usr/share/{syscons,vt}/fonts/* (or NO). font8x14="NO" # font 8x14 from /usr/share/{syscons,vt}/fonts/* (or NO). font8x8="NO" # font 8x8 from /usr/share/{syscons,vt}/fonts/* (or NO). blanktime="300" # blank time (in seconds) or "NO" to turn it off. saver="NO" # screen saver: Uses /boot/kernel/${saver}_saver.ko -moused_nondefault_enable="YES" # Treat non-default mice as enabled unless +moused_nondefault_enable="NO" # Treat non-default mice as enabled unless # specifically overridden in rc.conf(5). moused_enable="NO" # Run the mouse daemon. moused_type="auto" # See man page for rc.conf(5) for available settings. -moused_port="/dev/psm0" # Set to your mouse port. +moused_port="auto" # Set to your mouse port. moused_flags="" # Any additional flags to moused. mousechar_start="NO" # if 0xd0-0xd3 default range is occupied in your # language code table, specify alternative range # start like mousechar_start=3, see vidcontrol(1) +msconvd_enable="NO" # Run the mouse protocol conversion daemon. +msconvd_type="auto" # See rc.conf(5) man page for available moused_type-s. +msconvd_ports="" # List of msconvd ports. +msconvd_flags="" # Any additional flags to msconvd. allscreens_flags="" # Set this vidcontrol mode for all virtual screens allscreens_kbdflags="" # Set this kbdcontrol mode for all virtual screens ############################################################## ### Mail Transfer Agent (MTA) options ###################### ############################################################## # Settings for /etc/rc.d/sendmail: sendmail_enable="NONE" # Run the sendmail inbound daemon (YES/NO/NONE). # If NONE, don't start any sendmail processes. sendmail_pidfile="/var/run/sendmail.pid" # sendmail pid file sendmail_procname="/usr/sbin/sendmail" # sendmail process name sendmail_flags="-L sm-mta -bd -q30m" # Flags to sendmail (as a server) sendmail_cert_create="YES" # Create a server certificate if none (YES/NO) #sendmail_cert_cn="CN" # CN of the generate certificate sendmail_submit_enable="YES" # Start a localhost-only MTA for mail submission sendmail_submit_flags="-L sm-mta -bd -q30m -ODaemonPortOptions=Addr=localhost" # Flags for localhost-only MTA sendmail_outbound_enable="YES" # Dequeue stuck mail (YES/NO). sendmail_outbound_flags="-L sm-queue -q30m" # Flags to sendmail (outbound only) sendmail_msp_queue_enable="YES" # Dequeue stuck clientmqueue mail (YES/NO). sendmail_msp_queue_flags="-L sm-msp-queue -Ac -q30m" # Flags for sendmail_msp_queue daemon. sendmail_rebuild_aliases="NO" # Run newaliases if necessary (YES/NO). ############################################################## ### Miscellaneous administrative options ################### ############################################################## auditd_enable="NO" # Run the audit daemon. auditd_program="/usr/sbin/auditd" # Path to the audit daemon. auditd_flags="" # Which options to pass to the audit daemon. auditdistd_enable="NO" # Run the audit daemon. auditdistd_program="/usr/sbin/auditdistd" # Path to the auditdistd daemon. auditdistd_flags="" # Which options to pass to the auditdistd daemon. cron_enable="YES" # Run the periodic job daemon. cron_program="/usr/sbin/cron" # Which cron executable to run (if enabled). cron_dst="YES" # Handle DST transitions intelligently (YES/NO) cron_flags="" # Which options to pass to the cron daemon. cfumass_enable="NO" # Create default LUN for cfumass(4). cfumass_dir="/var/cfumass" # File to LUN's contents. cfumass_image="/var/tmp/cfumass.img" # LUN's backing file path. lpd_enable="NO" # Run the line printer daemon. lpd_program="/usr/sbin/lpd" # path to lpd, if you want a different one. lpd_flags="" # Flags to lpd (if enabled). nscd_enable="NO" # Run the nsswitch caching daemon. chkprintcap_enable="NO" # Run chkprintcap(8) before running lpd. chkprintcap_flags="-d" # Create missing directories by default. dumpdev="AUTO" # Device to crashdump to (device name, AUTO, or NO); # this should be commented out here # for stable branches to respect kenv. dumpon_flags="" # Options to pass to dumpon(8), followed by dumpdev. dumpdir="/var/crash" # Directory where crash dumps are to be stored savecore_enable="YES" # Extract core from dump devices if any savecore_flags="-m 10" # Used if dumpdev is enabled above, and present. # By default, only the 10 most recent kernel dumps # are saved. service_delete_empty="NO" # Have 'service delete' remove empty rc.conf.d files. crashinfo_enable="YES" # Automatically generate crash dump summary. crashinfo_program="/usr/sbin/crashinfo" # Script to generate crash dump summary. quota_enable="NO" # turn on quotas on startup (or NO). check_quotas="YES" # Check quotas on startup (or NO). quotaon_flags="-a" # Turn quotas on for all file systems (if enabled) quotaoff_flags="-a" # Turn quotas off for all file systems at shutdown quotacheck_flags="-a" # Check all file system quotas (if enabled) accounting_enable="NO" # Turn on process accounting (or NO). firstboot_sentinel="/firstboot" # Scripts with "firstboot" keyword are run if # this file exists. Should be on a R/W filesystem so # the file can be deleted after the boot completes. sysvipc_enable="NO" # Load System V IPC primitives at startup (or NO). linux_enable="NO" # Linux binary compatibility loaded at startup (or NO). linux_mounts_enable="YES" # If linux_enable is set to YES, mount Linux-specific # filesystems at startup. clear_tmp_enable="NO" # Clear /tmp at startup. clear_tmp_X="YES" # Clear and recreate X11-related directories in /tmp ldconfig_insecure="NO" # Set to YES to disable ldconfig security checks ldconfig_paths="/usr/lib/compat ${_localbase}/lib ${_localbase}/lib/compat/pkg" # shared library search paths ldconfig32_paths="/usr/lib32/compat" # 32-bit compatibility shared library search paths ldconfig_local_dirs="${_localbase}/libdata/ldconfig" # Local directories with ldconfig configuration files. ldconfig_local32_dirs="${_localbase}/libdata/ldconfig32" # Local directories with 32-bit compatibility ldconfig # configuration files. kern_securelevel_enable="NO" # kernel security level (see security(7)) kern_securelevel="-1" # range: -1..3 ; `-1' is the most insecure # Note that setting securelevel to 0 will result # in the system booting with securelevel set to 1, as # init(8) will raise the level when rc(8) completes. update_motd="YES" # update version info in /var/run/motd (or NO) entropy_boot_file="/boot/entropy" # Set to NO to disable very early # (used at early boot time) entropy caching through reboots. entropy_file="/entropy" # Set to NO to disable late (used when going multi-user) # entropy through reboots. # /var/db/entropy-file is preferred if / is not avail. entropy_dir="/var/db/entropy" # Set to NO to disable caching entropy via cron. entropy_save_sz="4096" # Size of the entropy cache files. entropy_save_num="8" # Number of entropy cache files to save. harvest_mask="4607" # Entropy device harvests all but the very invasive sources. # (See 'sysctl kern.random.harvest' and random(4)) osrelease_enable="YES" # Update /var/run/os-release on boot (or NO). osrelease_file="/var/run/os-release" # File to update for os-release. osrelease_perms="444" # Default permission for os-release file. dmesg_enable="YES" # Save dmesg(8) to /var/run/dmesg.boot watchdogd_enable="NO" # Start the software watchdog daemon watchdogd_flags="" # Flags to watchdogd (if enabled) watchdogd_timeout="" # watchdogd timeout, overrides -t in watchdogd_flags watchdogd_shutdown_timeout="" # Timeout to use after watchdogd is stopped. # Has effect only for system shutdown. # Overrides -x in watchdogd_flags. devfs_rulesets="/etc/defaults/devfs.rules /etc/devfs.rules" # Files containing # devfs(8) rules. devfs_system_ruleset="" # The name (NOT number) of a ruleset to apply to /dev devfs_set_rulesets="" # A list of /mount/dev=ruleset_name settings to # apply (must be mounted already, i.e. fstab(5)) devfs_load_rulesets="YES" # Enable to always load the default rulesets performance_cx_lowest="NONE" # Online CPU idle state performance_cpu_freq="NONE" # Online CPU frequency economy_cx_lowest="Cmax" # Offline CPU idle state economy_cpu_freq="NONE" # Offline CPU frequency virecover_enable="YES" # Perform housekeeping for the vi(1) editor ugidfw_enable="NO" # Load mac_bsdextended(4) rules on boot bsdextended_script="/etc/rc.bsdextended" # Default mac_bsdextended(4) # ruleset file. newsyslog_enable="YES" # Run newsyslog at startup. newsyslog_flags="-CN" # Newsyslog flags to create marked files mixer_enable="YES" # Run the sound mixer. opensm_enable="NO" # Opensm(8) for infiniband devices defaults to off nuageinit_enable="NO" # Run nuageinit at startup # rctl(8) requires kernel options RACCT and RCTL rctl_enable="YES" # Load rctl(8) rules on boot rctl_rules="/etc/rctl.conf" # rctl(8) ruleset. See rctl.conf(5). iovctl_files="" # Config files for iovctl(8) ############################################################## ### Jail Configuration (see rc.conf(5) manual page) ########## ############################################################## jail_enable="NO" # Set to NO to disable starting of any jails jail_conf="/etc/jail.conf" # Configuration file for jail(8) jail_confwarn="YES" # Prevent warning about obsolete per-jail configuration jail_parallel_start="NO" # Start jails in the background jail_list="" # Space separated list of names of jails jail_reverse_stop="NO" # Stop jails in reverse order ############################################################## ### Define source_rc_confs, the mechanism used by /etc/rc.* ## ### scripts to source rc_conf_files overrides safely. ## ############################################################## if [ -z "${source_rc_confs_defined}" ]; then source_rc_confs_defined=yes source_rc_confs() { local i sourced_files for i in ${rc_conf_files}; do case ${sourced_files} in *:$i:*) ;; *) sourced_files="${sourced_files}:$i:" if [ -r $i ]; then . $i fi ;; esac done # Re-do process to pick up [possibly] redefined $rc_conf_files for i in ${rc_conf_files}; do case ${sourced_files} in *:$i:*) ;; *) sourced_files="${sourced_files}:$i:" if [ -r $i ]; then . $i fi ;; esac done } fi # Allow vendors to override FreeBSD defaults in /etc/default/rc.conf # without the need to carefully manage /etc/rc.conf. if [ -r /etc/defaults/vendor.conf ]; then . /etc/defaults/vendor.conf fi diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile index 7c1f50b027a9..e5ee34e62185 100644 --- a/libexec/rc/rc.d/Makefile +++ b/libexec/rc/rc.d/Makefile @@ -1,433 +1,434 @@ .include CONFDIR= /etc/rc.d CONFGROUPS= CONFS CONFSPACKAGE= rc CONFS= DAEMON \ FILESYSTEMS \ LOGIN \ NETWORKING \ SERVERS \ adjkerntz \ bgfsck \ bridge \ cfumass \ cleanvar \ cleartmp \ ddb \ defaultroute \ devfs \ dmesg \ dumpon \ fsck \ growfs \ growfs_fstab \ hostid \ hostid_save \ hostname \ iovctl \ ip6addrctl \ ipsec \ kld \ kldxref \ ldconfig \ linux \ local \ localpkg \ mixer \ motd \ mountcritlocal \ mountcritremote \ mountlate \ mdconfig \ mdconfig2 \ msgs \ netif \ netoptions \ netwait \ noshutdown \ ${_nscd} \ ${_opensm} \ os-release \ powerd \ pppoed \ pwcheck \ quota \ random \ rarpd \ rctl \ root \ routing \ rpcbind \ rtadvd \ rtsold \ savecore \ securelevel \ serial \ static_arp \ static_ndp \ stf \ swap \ swaplate \ sysctl \ sysctl_lastload \ sysvipc \ tmp \ ugidfw \ var \ var_run \ watchdogd CONFGROUPS+= DEVD DEVD= devd DEVDPACKAGE= devd CONFGROUPS+= DEVMATCH DEVMATCH= devmatch DEVMATCHPACKAGE= devmatch CONFGROUPS+= DHCLIENT DHCLIENT= dhclient DHCLIENTPACKAGE= dhclient CONFGROUPS+= GEOM GEOM= geli \ geli2 \ gptboot GEOMPACKAGE= geom CONFGROUPS+= GGATED GGATED= ggated GGATEDPACKAGE= ggate CONFGROUPS+= RESOLVCONF RESOLVCONF= resolv RESOLVCONFPACKAGE= resolvconf CONFGROUPS+= CRON CRON+= cron CRONPACKAGE= cron CONFGROUPS+= CTL CTL= ctld CTLPACKAGE= ctl CONFGROUPS+= NFS NFS= lockd \ mountd \ nfscbd \ nfsclient \ nfsd \ nfsuserd \ statd NFSPACKAGE= nfs CONFGROUPS+= NEWSYSLOG NEWSYSLOG= newsyslog NEWSYSLOGPACKAGE= newsyslog CONFGROUPS+= SYSLOGD SYSLOGD= syslogd SYSLOGDPACKAGE= syslogd CONFGROUPS+= RCMDS RCMDS= rwho RCMDSPACKAGE= rcmds .if ${MK_ACCT} != "no" || ${MK_UTMPX} != "no" CONFGROUPS+= ACCT ACCTPACKAGE= acct .if ${MK_ACCT} != "no" ACCT+= accounting .endif .if ${MK_UTMPX} != "no" ACCT+= utx .endif .endif .if ${MK_ACPI} != "no" CONFGROUPS+= ACPI ACPI= power_profile ACPIPACKAGE= acpi .endif .if ${MK_APM} != "no" CONFGROUPS+= APM APM+= apm .if ${MACHINE} == "i386" APM+= apmd .endif APMPACKAGE= apm .endif .if ${MK_AUDIT} != "no" CONFGROUPS+= AUDIT AUDIT+= auditd AUDIT+= auditdistd AUDITPACKAGE= audit .endif .if ${MK_AUTOFS} != "no" CONFGROUPS+= AUTOFS AUTOFS= automount \ automountd \ autounmountd AUTOFSPACKAGE= autofs .endif .if ${MK_BLACKLIST} != "no" CONFGROUPS+= BLOCKLIST BLOCKLIST= blacklistd BLOCKLISTPACKAGE=blocklist .endif .if ${MK_BLUETOOTH} != "no" CONFGROUPS+= BLUETOOTH BLUETOOTH+= bluetooth \ bthidd \ hcsecd \ rfcomm_pppd_server \ sdpd \ ubthidhci BLUETOOTHPACKAGE= bluetooth .endif .if ${MK_BOOTPARAMD} != "no" CONFS+= bootparams .endif .if ${MK_BSNMP} != "no" CONFGROUPS+= BSNMP BSNMP+= bsnmpd BSNMPPACKAGE= bsnmp .endif .if ${MK_CCD} != "no" CONFGROUPS+= CCD CCD= ccd CCDPACKAGE= ccdconfig .endif .if ${MK_FTP} != "no" CONFGROUPS+= FTPD FTPD= ftpd FTPDPACKAGE= ftpd .endif .if ${MK_KERBEROS_SUPPORT} != "no" CONFGROUPS+= GSSD GSSD= gssd GSSDPACKAGE= gssd .endif .if ${MK_HAST} != "no" CONFGROUPS+= HAST HAST= hastd HASTPACKAGE= hast .endif .if ${MK_INETD} != "no" CONFGROUPS+= INETD INETD= inetd INETDPACKAGE= inetd .endif .if ${MK_IPFILTER} != "no" CONFGROUPS+= IPF IPF= ipfilter \ ipfs \ ipmon \ ipnat \ ippool IPFPACKAGE= ipf .endif .if ${MK_IPFW} != "no" CONFGROUPS+= IPFW IPFW= ipfw dnctl .if ${MK_NETGRAPH} != "no" IPFW+= ipfw_netflow .endif IPFWPACKAGE= ipfw # natd is only built when ipfw is built CONFGROUPS+= NATD NATD+= natd NATDPACKAGE= natd .endif .if ${MK_ISCSI} != "no" CONFGROUPS+= ISCSI ISCSI= iscsictl \ iscsid ISCSIPACKAGE= iscsi .endif .if ${MK_JAIL} != "no" CONFGROUPS+= JAIL JAIL+= jail JAILPACKAGE= jail .endif .if ${MK_LEGACY_CONSOLE} != "no" CONFGROUPS+= CONSOLE CONSOLE+= moused +CONSOLE+= msconvd CONSOLE+= syscons CONSOLEPACKAGE= console-tools .endif .if ${MK_LPR} != "no" CONFGROUPS+= LP LP+= lpd LPPACKAGE= lp .endif .if ${MK_KERBEROS} != "no" .if ${MK_MITKRB5} == "no" # Heimdal rc scripts CONFGROUPS+= HEIMDAL HEIMDAL= ipropd_master \ ipropd_slave \ kadmind \ kdc \ kfd \ kpasswdd HEIMDALPACKAGE= kerberos DIRS+= VAR_HEMIDAL VAR_HEMIDAL= /var/heimdal VAR_HEMIDAL_MODE= 700 .else # ${MK_MITKRB5} != "no" # MIT KRB5 rc scripts CONFGROUPS+= KRB5 KRB5= kadmind \ kdc KRB5PACKAGE= kerberos-kdc .endif # ${MK_MITKRB5} .endif # ${MK_KERBEROS} .if ${MK_NIS} != "no" CONFGROUPS+= YP YP= ypbind \ ypldap \ yppasswdd \ ypserv \ ypset \ ypupdated \ ypxfrd \ nisdomain YPPACKAGE= yp .endif .if ${MK_NS_CACHING} != "no" _nscd= nscd .endif .if ${MK_NTP} != "no" CONFGROUPS+= NTP NTP+= ntpd \ ntpdate NTPPACKAGE= ntp .endif .if ${MK_OFED_EXTRA} != "no" _opensm= opensm .endif .if ${MK_OPENSSL} != "no" && ${MK_OPENSSL_KTLS} != "no" CONFS+= tlsclntd \ tlsservd .endif .if ${MK_OPENSSH} != "no" CONFGROUPS+= SSH SSH= sshd SSHPACKAGE= ssh .endif .if ${MK_PF} != "no" CONFGROUPS+= PF PF= pf \ pflog \ pfsync \ ftp-proxy PFPACKAGE= pf .endif .if ${MK_PPP} != "no" CONFGROUPS+= PPP PPP= ppp PPPPACKAGE= ppp .endif .if ${MK_INET6} != "no" || ${MK_ROUTED} != "no" CONFGROUPS+= RIP RIPPACKAGE= rip .if ${MK_INET6} != "no" RIP+= route6d .endif .if ${MK_ROUTED} != "no" RIP+= routed .endif .endif .if ${MK_SENDMAIL} != "no" CONFGROUPS+= SMRCD SMRCD= sendmail SMRCDPACKAGE= sendmail .endif .if ${MK_NUAGEINIT} != "no" CONFGROUPS+= NIUAGEINIT NIUAGEINIT= nuageinit \ nuageinit_post_net \ nuageinit_user_data_script NIUAGEINITPACKAGE= nuageinit .endif .if ${MK_UNBOUND} != "no" CONFGROUPS+= UNBOUND UNBOUND+= local_unbound UNBOUNDPACKAGE= unbound .endif .if ${MK_VI} != "no" CONFGROUPS+= VI VI+= virecover VIPACKAGE= vi .endif .if ${MK_WIRELESS} != "no" CONFGROUPS+= HOSTAPD HOSTAPD= hostapd HOSTAPDPACKAGE= hostapd CONFGROUPS+= WPA WPA= wpa_supplicant WPAPACKAGE= wpa .endif .if ${MK_ZFS} != "no" CONFGROUPS+= ZFS ZFS+= zfs ZFS+= zfsbe ZFS+= zfsd ZFS+= zfskeys ZFS+= zpool ZFS+= zpoolreguid ZFS+= zpoolupgrade ZFS+= zvol ZFSPACKAGE= zfs .endif .for fg in ${CONFGROUPS} ${fg}MODE?= ${BINMODE} .endfor .include diff --git a/libexec/rc/rc.d/msconvd b/libexec/rc/rc.d/msconvd new file mode 100755 index 000000000000..c2a96bf2eb68 --- /dev/null +++ b/libexec/rc/rc.d/msconvd @@ -0,0 +1,61 @@ +#!/bin/sh +# +# + +# PROVIDE: msconvd +# REQUIRE: DAEMON FILESYSTEMS +# KEYWORD: nojail shutdown + +. /etc/rc.subr + +name="msconvd" +desc="Mouse protocol conversion daemon" +command="/usr/sbin/${name}" +start_cmd="msconvd_start" +pidprefix="/var/run/msconvd" +load_rc_config $name + +: ${msconvd_enable="NO"} +: ${msconvd_type="auto"} + +# doesn't make sense to run in a svcj: nojail keyword +# XXX: How does msconvd communiacte with the kernel? +# XXX: Does the kernel prevent this communcation in jails? +msconvd_svcj="NO" + +# Set the pid file and variable name. The second argument, if it exists, is +# expected to be the mouse device. +# +if [ -n "$2" ]; then + eval msconvd_$2_enable=\${msconvd_$2_enable-${msconvd_enable}} + rcvar="msconvd_$2_enable" + pidfile="${pidprefix}.$2.pid" +else + for ms in ${msconvd_ports}; do + /etc/rc.d/msconvd $1 ${ms} + done + exit 0 +fi + +msconvd_start() +{ + local ms myflags myport mytype + + # Set the mouse device and get any related variables. If + # a msconvd device has been specified on the commandline, then + # rc.conf(5) variables defined for that device take precedence + # over the generic msconvd_* variables. The only exception is + # the msconvd_port variable, which if not defined sets it to + # the passed in device name. + # + ms=$1 + eval myflags=\${msconvd_${ms}_flags-$msconvd_flags} + eval myport=\${msconvd_${ms}_port-/dev/${ms}} + eval mytype=\${msconvd_${ms}_type-$msconvd_type} + + startmsg -n "Starting ${ms} ${name}" + ${command} ${myflags} -p ${myport} -t ${mytype} -I ${pidfile} + startmsg '.' +} + +run_rc_command $* diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc index 5eea402c4526..a2fb28f1a186 100644 --- a/tools/build/mk/OptionalObsoleteFiles.inc +++ b/tools/build/mk/OptionalObsoleteFiles.inc @@ -1,9740 +1,9747 @@ # # # This file adds support for the WITHOUT_* and WITH_* knobs in src.conf(5) to # the check-old* and delete-old* targets. # # Blocks should be in sort(1) order by primary option. # .if ${MK_ACCT} == no OLD_FILES+=etc/rc.d/accounting OLD_FILES+=etc/periodic/daily/310.accounting OLD_FILES+=usr/sbin/accton OLD_FILES+=usr/sbin/sa OLD_FILES+=usr/share/man/man8/accton.8.gz OLD_FILES+=usr/share/man/man8/sa.8.gz OLD_FILES+=usr/tests/usr.sbin/sa/Kyuafile OLD_FILES+=usr/tests/usr.sbin/sa/legacy_test OLD_FILES+=usr/tests/usr.sbin/sa/v1-amd64-sav.in OLD_FILES+=usr/tests/usr.sbin/sa/v1-amd64-sav.out OLD_FILES+=usr/tests/usr.sbin/sa/v1-amd64-u.out OLD_FILES+=usr/tests/usr.sbin/sa/v1-amd64-usr.in OLD_FILES+=usr/tests/usr.sbin/sa/v1-amd64-usr.out OLD_FILES+=usr/tests/usr.sbin/sa/v1-i386-sav.in OLD_FILES+=usr/tests/usr.sbin/sa/v1-i386-sav.out OLD_FILES+=usr/tests/usr.sbin/sa/v1-i386-u.out OLD_FILES+=usr/tests/usr.sbin/sa/v1-i386-usr.in OLD_FILES+=usr/tests/usr.sbin/sa/v1-i386-usr.out OLD_FILES+=usr/tests/usr.sbin/sa/v1-sparc64-sav.in OLD_FILES+=usr/tests/usr.sbin/sa/v1-sparc64-sav.out OLD_FILES+=usr/tests/usr.sbin/sa/v1-sparc64-u.out OLD_FILES+=usr/tests/usr.sbin/sa/v1-sparc64-usr.in OLD_FILES+=usr/tests/usr.sbin/sa/v1-sparc64-usr.out OLD_FILES+=usr/tests/usr.sbin/sa/v2-amd64-sav.in OLD_FILES+=usr/tests/usr.sbin/sa/v2-amd64-u.out OLD_FILES+=usr/tests/usr.sbin/sa/v2-amd64-usr.in OLD_FILES+=usr/tests/usr.sbin/sa/v2-i386-sav.in OLD_FILES+=usr/tests/usr.sbin/sa/v2-i386-u.out OLD_FILES+=usr/tests/usr.sbin/sa/v2-i386-usr.in OLD_FILES+=usr/tests/usr.sbin/sa/v2-sparc64-sav.in OLD_FILES+=usr/tests/usr.sbin/sa/v2-sparc64-u.out OLD_FILES+=usr/tests/usr.sbin/sa/v2-sparc64-usr.in OLD_DIRS+=usr/tests/usr.sbin/sa .endif .if ${MK_ACPI} == no OLD_FILES+=etc/devd/asus.conf OLD_FILES+=etc/rc.d/power_profile OLD_FILES+=usr/sbin/acpiconf OLD_FILES+=usr/sbin/acpidb OLD_FILES+=usr/sbin/acpidump OLD_FILES+=usr/sbin/iasl OLD_FILES+=usr/share/man/man8/acpiconf.8.gz OLD_FILES+=usr/share/man/man8/acpidb.8.gz OLD_FILES+=usr/share/man/man8/acpidump.8.gz OLD_FILES+=usr/share/man/man8/iasl.8.gz .endif .if ${MK_APM} == no OLD_FILES+=etc/rc.d/apm OLD_FILES+=etc/rc.d/apmd OLD_FILES+=etc/apmd.conf OLD_FILES+=usr/sbin/apm OLD_FILES+=usr/share/examples/etc/apmd.conf .endif .if ${MK_AT} == no OLD_FILES+=etc/pam.d/atrun OLD_FILES+=usr/bin/at OLD_FILES+=usr/bin/atq OLD_FILES+=usr/bin/atrm OLD_FILES+=usr/bin/batch OLD_FILES+=usr/libexec/atrun OLD_FILES+=usr/share/man/man1/at.1.gz OLD_FILES+=usr/share/man/man1/atq.1.gz OLD_FILES+=usr/share/man/man1/atrm.1.gz OLD_FILES+=usr/share/man/man1/batch.1.gz OLD_FILES+=usr/share/man/man8/atrun.8.gz .endif .if ${MK_AUDIT} == no OLD_FILES+=etc/rc.d/auditd OLD_FILES+=etc/rc.d/auditdistd OLD_FILES+=usr/sbin/audit OLD_FILES+=usr/sbin/auditd OLD_FILES+=usr/sbin/auditdistd OLD_FILES+=usr/sbin/auditreduce OLD_FILES+=usr/sbin/praudit OLD_FILES+=usr/share/man/man1/auditreduce.1.gz OLD_FILES+=usr/share/man/man1/praudit.1.gz OLD_FILES+=usr/share/man/man5/auditdistd.conf.5.gz OLD_FILES+=usr/share/man/man8/audit.8.gz OLD_FILES+=usr/share/man/man8/auditd.8.gz OLD_FILES+=usr/share/man/man8/auditdistd.8.gz OLD_FILES+=usr/tests/sys/audit/process-control OLD_FILES+=usr/tests/sys/audit/open OLD_FILES+=usr/tests/sys/audit/network OLD_FILES+=usr/tests/sys/audit/miscellaneous OLD_FILES+=usr/tests/sys/audit/Kyuafile OLD_FILES+=usr/tests/sys/audit/ioctl OLD_FILES+=usr/tests/sys/audit/inter-process OLD_FILES+=usr/tests/sys/audit/file-write OLD_FILES+=usr/tests/sys/audit/file-read OLD_FILES+=usr/tests/sys/audit/file-delete OLD_FILES+=usr/tests/sys/audit/file-create OLD_FILES+=usr/tests/sys/audit/file-close OLD_FILES+=usr/tests/sys/audit/file-attribute-modify OLD_FILES+=usr/tests/sys/audit/file-attribute-access OLD_FILES+=usr/tests/sys/audit/administrative OLD_DIRS+=usr/tests/sys/audit .endif .if ${MK_AUTHPF} == no OLD_FILES+=usr/sbin/authpf OLD_FILES+=usr/sbin/authpf-noip OLD_FILES+=usr/share/man/man8/authpf.8.gz OLD_FILES+=usr/share/man/man8/authpf-noip.8.gz .endif .if ${MK_AUTOFS} == no OLD_FILES+=etc/autofs/include_ldap OLD_FILES+=etc/autofs/special_hosts OLD_FILES+=etc/autofs/special_media OLD_FILES+=etc/autofs/special_noauto OLD_FILES+=etc/autofs/special_null OLD_FILES+=etc/auto_master OLD_FILES+=etc/devd/autofs.conf OLD_FILES+=etc/rc.d/automount OLD_FILES+=etc/rc.d/automountd OLD_FILES+=etc/rc.d/autounmountd OLD_FILES+=usr/sbin/automount OLD_FILES+=usr/sbin/automountd OLD_FILES+=usr/sbin/autounmountd OLD_FILES+=usr/share/man/man4/autofs.4.gz OLD_FILES+=usr/share/man/man5/auto_master.5.gz OLD_FILES+=usr/share/man/man8/automount.8.gz OLD_FILES+=usr/share/man/man8/automountd.8.gz OLD_FILES+=usr/share/man/man8/autounmountd.8.gz OLD_DIRS+=etc/autofs .endif .if ${MK_BEARSSL} == no OLD_FILES+=usr/lib/libbearssl.a OLD_FILES+=usr/lib/libbearssl.so OLD_LIBS+=usr/lib/libbearssl.so.5 OLD_FILES+=usr/lib/libsecureboot.a OLD_FILES+=usr/lib/libsecureboot.so OLD_LIBS+=usr/lib/libsecureboot.so.5 .endif .if ${MK_BHYVE} == no OLD_FILES+=usr/lib/libvmmapi.a OLD_FILES+=usr/lib/libvmmapi.so OLD_LIBS+=usr/lib/libvmmapi.so.5 OLD_FILES+=usr/include/vmmapi.h OLD_FILES+=usr/sbin/bhyve OLD_FILES+=usr/sbin/bhyvectl OLD_FILES+=usr/sbin/bhyveload OLD_FILES+=usr/share/examples/bhyve/vmrun.sh OLD_FILES+=usr/share/man/man8/bhyve.8.gz OLD_FILES+=usr/share/man/man8/bhyveload.8.gz OLD_DIRS+=usr/share/examples/bhyve .endif .if ${MK_BLACKLIST} == no OLD_FILES+=etc/blacklistd.conf OLD_FILES+=etc/rc.d/blacklistd OLD_FILES+=usr/include/blacklist.h OLD_FILES+=usr/lib/libblacklist.a OLD_FILES+=usr/lib/libblacklist_p.a OLD_FILES+=usr/lib/libblacklist.so OLD_LIBS+=usr/lib/libblacklist.so.0 OLD_FILES+=usr/libexec/blacklistd-helper OLD_FILES+=usr/sbin/blacklistctl OLD_FILES+=usr/sbin/blacklistd OLD_FILES+=usr/share/man/man3/blacklist.3.gz OLD_FILES+=usr/share/man/man3/blacklist_close.3.gz OLD_FILES+=usr/share/man/man3/blacklist_open.3.gz OLD_FILES+=usr/share/man/man3/blacklist_r.3.gz OLD_FILES+=usr/share/man/man3/blacklist_sa.3.gz OLD_FILES+=usr/share/man/man3/blacklist_sa_r.3.gz OLD_FILES+=usr/share/man/man5/blacklistd.conf.5.gz OLD_FILES+=usr/share/man/man8/blacklistctl.8.gz OLD_FILES+=usr/share/man/man8/blacklistd.8.gz .endif .if ${MK_BLUETOOTH} == no OLD_FILES+=etc/bluetooth/hcsecd.conf OLD_FILES+=etc/bluetooth/hosts OLD_FILES+=etc/bluetooth/protocols OLD_FILES+=etc/defaults/bluetooth.device.conf OLD_FILES+=etc/devd/iwmbtfw.conf OLD_FILES+=etc/devd/rtlbtfw.conf OLD_DIRS+=etc/bluetooth OLD_FILES+=etc/rc.d/bluetooth OLD_FILES+=etc/rc.d/bthidd OLD_FILES+=etc/rc.d/hcsecd OLD_FILES+=etc/rc.d/rfcomm_pppd_server OLD_FILES+=etc/rc.d/sdpd OLD_FILES+=etc/rc.d/ubthidhci OLD_FILES+=usr/bin/bthost OLD_FILES+=usr/bin/btsockstat OLD_FILES+=usr/bin/rfcomm_sppd OLD_FILES+=usr/include/bluetooth.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_bluetooth.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_bt3c.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_btsocket.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_btsocket_hci_raw.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_btsocket_l2cap.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_btsocket_rfcomm.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_btsocket_sco.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_h4.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_hci.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_l2cap.h OLD_FILES+=usr/include/netgraph/bluetooth/include/ng_ubt.h OLD_DIRS+=usr/include/netgraph/bluetooth/include OLD_DIRS+=usr/include/netgraph/bluetooth OLD_FILES+=usr/include/sdp.h OLD_FILES+=usr/lib/libbluetooth.a OLD_FILES+=usr/lib/libbluetooth.so OLD_LIBS+=usr/lib/libbluetooth.so.4 OLD_FILES+=usr/lib/libbluetooth_p.a OLD_FILES+=usr/lib/libsdp.a OLD_FILES+=usr/lib/libsdp.so OLD_LIBS+=usr/lib/libsdp.so.4 OLD_FILES+=usr/lib/libsdp_p.a OLD_FILES+=usr/sbin/ath3kfw OLD_FILES+=usr/sbin/bcmfw OLD_FILES+=usr/sbin/bluetooth-config OLD_FILES+=usr/sbin/bt3cfw OLD_FILES+=usr/sbin/bthidcontrol OLD_FILES+=usr/sbin/bthidd OLD_FILES+=usr/sbin/btpand OLD_FILES+=usr/sbin/hccontrol OLD_FILES+=usr/sbin/hcsecd OLD_FILES+=usr/sbin/hcseriald OLD_FILES+=usr/sbin/iwmbtfw OLD_FILES+=usr/sbin/l2control OLD_FILES+=usr/sbin/l2ping OLD_FILES+=usr/sbin/rfcomm_pppd OLD_FILES+=usr/sbin/rtlbtfw OLD_FILES+=usr/sbin/sdpcontrol OLD_FILES+=usr/sbin/sdpd OLD_FILES+=usr/share/examples/etc/defaults/bluetooth.device.conf OLD_FILES+=usr/share/man/man1/bthost.1.gz OLD_FILES+=usr/share/man/man1/btsockstat.1.gz OLD_FILES+=usr/share/man/man1/rfcomm_sppd.1.gz OLD_FILES+=usr/share/man/man3/SDP_GET128.3.gz OLD_FILES+=usr/share/man/man3/SDP_GET16.3.gz OLD_FILES+=usr/share/man/man3/SDP_GET32.3.gz OLD_FILES+=usr/share/man/man3/SDP_GET64.3.gz OLD_FILES+=usr/share/man/man3/SDP_GET8.3.gz OLD_FILES+=usr/share/man/man3/SDP_PUT128.3.gz OLD_FILES+=usr/share/man/man3/SDP_PUT16.3.gz OLD_FILES+=usr/share/man/man3/SDP_PUT32.3.gz OLD_FILES+=usr/share/man/man3/SDP_PUT64.3.gz OLD_FILES+=usr/share/man/man3/SDP_PUT8.3.gz OLD_FILES+=usr/share/man/man3/bdaddr_any.3.gz OLD_FILES+=usr/share/man/man3/bdaddr_copy.3.gz OLD_FILES+=usr/share/man/man3/bdaddr_same.3.gz OLD_FILES+=usr/share/man/man3/bluetooth.3.gz OLD_FILES+=usr/share/man/man3/bt_aton.3.gz OLD_FILES+=usr/share/man/man3/bt_devaddr.3.gz OLD_FILES+=usr/share/man/man3/bt_devclose.3.gz OLD_FILES+=usr/share/man/man3/bt_devenum.3.gz OLD_FILES+=usr/share/man/man3/bt_devfilter.3.gz OLD_FILES+=usr/share/man/man3/bt_devfilter_evt_clr.3.gz OLD_FILES+=usr/share/man/man3/bt_devfilter_evt_set.3.gz OLD_FILES+=usr/share/man/man3/bt_devfilter_evt_tst.3.gz OLD_FILES+=usr/share/man/man3/bt_devfilter_pkt_clr.3.gz OLD_FILES+=usr/share/man/man3/bt_devfilter_pkt_set.3.gz OLD_FILES+=usr/share/man/man3/bt_devfilter_pkt_tst.3.gz OLD_FILES+=usr/share/man/man3/bt_devinfo.3.gz OLD_FILES+=usr/share/man/man3/bt_devinquiry.3.gz OLD_FILES+=usr/share/man/man3/bt_devname.3.gz OLD_FILES+=usr/share/man/man3/bt_devopen.3.gz OLD_FILES+=usr/share/man/man3/bt_devreq.3.gz OLD_FILES+=usr/share/man/man3/bt_devsend.3.gz OLD_FILES+=usr/share/man/man3/bt_endhostent.3.gz OLD_FILES+=usr/share/man/man3/bt_endprotoent.3.gz OLD_FILES+=usr/share/man/man3/bt_gethostbyaddr.3.gz OLD_FILES+=usr/share/man/man3/bt_gethostbyname.3.gz OLD_FILES+=usr/share/man/man3/bt_gethostent.3.gz OLD_FILES+=usr/share/man/man3/bt_getprotobyname.3.gz OLD_FILES+=usr/share/man/man3/bt_getprotobynumber.3.gz OLD_FILES+=usr/share/man/man3/bt_getprotoent.3.gz OLD_FILES+=usr/share/man/man3/bt_ntoa.3.gz OLD_FILES+=usr/share/man/man3/bt_sethostent.3.gz OLD_FILES+=usr/share/man/man3/bt_setprotoent.3.gz OLD_FILES+=usr/share/man/man3/sdp.3.gz OLD_FILES+=usr/share/man/man3/sdp_attr2desc.3.gz OLD_FILES+=usr/share/man/man3/sdp_change_service.3.gz OLD_FILES+=usr/share/man/man3/sdp_close.3.gz OLD_FILES+=usr/share/man/man3/sdp_error.3.gz OLD_FILES+=usr/share/man/man3/sdp_open.3.gz OLD_FILES+=usr/share/man/man3/sdp_open_local.3.gz OLD_FILES+=usr/share/man/man3/sdp_register_service.3.gz OLD_FILES+=usr/share/man/man3/sdp_search.3.gz OLD_FILES+=usr/share/man/man3/sdp_unregister_service.3.gz OLD_FILES+=usr/share/man/man3/sdp_uuid2desc.3.gz OLD_FILES+=usr/share/man/man4/ng_bluetooth.4.gz OLD_FILES+=usr/share/man/man5/bluetooth.device.conf.5.gz OLD_FILES+=usr/share/man/man5/bluetooth.hosts.5.gz OLD_FILES+=usr/share/man/man5/bluetooth.protocols.5.gz OLD_FILES+=usr/share/man/man5/hcsecd.conf.5.gz OLD_FILES+=usr/share/man/man8/ath3kfw.8.gz OLD_FILES+=usr/share/man/man8/bcmfw.8.gz OLD_FILES+=usr/share/man/man8/bluetooth-config.8.gz OLD_FILES+=usr/share/man/man8/bt3cfw.8.gz OLD_FILES+=usr/share/man/man8/bthidcontrol.8.gz OLD_FILES+=usr/share/man/man8/bthidd.8.gz OLD_FILES+=usr/share/man/man8/btpand.8.gz OLD_FILES+=usr/share/man/man8/hccontrol.8.gz OLD_FILES+=usr/share/man/man8/hcsecd.8.gz OLD_FILES+=usr/share/man/man8/hcseriald.8.gz OLD_FILES+=usr/share/man/man8/iwmbtfw.8.gz OLD_FILES+=usr/share/man/man8/l2control.8.gz OLD_FILES+=usr/share/man/man8/l2ping.8.gz OLD_FILES+=usr/share/man/man8/rfcomm_pppd.8.gz OLD_FILES+=usr/share/man/man8/rtlbtfw.8.gz OLD_FILES+=usr/share/man/man8/sdpcontrol.8.gz OLD_FILES+=usr/share/man/man8/sdpd.8.gz .endif .if ${MK_BOOT} == no OLD_FILES+=boot/beastie.4th OLD_FILES+=boot/boot OLD_FILES+=boot/boot0 OLD_FILES+=boot/boot0sio OLD_FILES+=boot/boot1 OLD_FILES+=boot/boot1.efi OLD_FILES+=boot/boot2 OLD_FILES+=boot/brand.4th OLD_FILES+=boot/cdboot OLD_FILES+=boot/check-password.4th OLD_FILES+=boot/color.4th OLD_FILES+=boot/defaults/loader.conf OLD_FILES+=boot/delay.4th OLD_FILES+=boot/device.hints OLD_FILES+=boot/frames.4th OLD_FILES+=boot/gptboot OLD_FILES+=boot/gptzfsboot OLD_FILES+=boot/loader OLD_FILES+=boot/loader.4th OLD_FILES+=boot/loader.efi OLD_FILES+=boot/loader.help OLD_FILES+=boot/loader.rc OLD_FILES+=boot/mbr OLD_FILES+=boot/menu-commands.4th OLD_FILES+=boot/menu.4th OLD_FILES+=boot/menu.rc OLD_FILES+=boot/menusets.4th OLD_FILES+=boot/pcibios.4th OLD_FILES+=boot/pmbr OLD_FILES+=boot/pxeboot OLD_FILES+=boot/screen.4th OLD_FILES+=boot/shortcuts.4th OLD_FILES+=boot/support.4th OLD_FILES+=boot/userboot.so OLD_FILES+=boot/version.4th OLD_FILES+=boot/zfsloader OLD_FILES+=usr/lib/kgzldr.o OLD_FILES+=usr/share/man/man5/loader.conf.5.gz OLD_FILES+=usr/share/man/man8/beastie.4th.8.gz OLD_FILES+=usr/share/man/man8/brand.4th.8.gz OLD_FILES+=usr/share/man/man8/check-password.4th.8.gz OLD_FILES+=usr/share/man/man8/color.4th.8.gz OLD_FILES+=usr/share/man/man8/delay.4th.8.gz OLD_FILES+=usr/share/man/man8/gptboot.8.gz OLD_FILES+=usr/share/man/man8/gptzfsboot.8.gz OLD_FILES+=usr/share/man/man8/loader.4th.8.gz OLD_FILES+=usr/share/man/man8/loader.8.gz OLD_FILES+=usr/share/man/man8/menu.4th.8.gz OLD_FILES+=usr/share/man/man8/menusets.4th.8.gz OLD_FILES+=usr/share/man/man8/pxeboot.8.gz OLD_FILES+=usr/share/man/man8/version.4th.8.gz OLD_FILES+=usr/share/man/man8/zfsloader.8.gz .endif .if ${MK_BOOTPARAMD} == no OLD_FILES+=etc/rc.d/bootparams OLD_FILES+=usr/sbin/bootparamd OLD_FILES+=usr/share/man/man5/bootparams.5.gz OLD_FILES+=usr/share/man/man8/bootparamd.8.gz OLD_FILES+=usr/sbin/callbootd .endif .if ${MK_BOOTPD} == no OLD_FILES+=usr/libexec/bootpd OLD_FILES+=usr/share/man/man5/bootptab.5.gz OLD_FILES+=usr/share/man/man8/bootpd.8.gz OLD_FILES+=usr/libexec/bootpgw OLD_FILES+=usr/sbin/bootpef OLD_FILES+=usr/share/man/man8/bootpef.8.gz OLD_FILES+=usr/sbin/bootptest OLD_FILES+=usr/share/man/man8/bootptest.8.gz .endif .if ${MK_BSDINSTALL} == no OLD_FILES+=usr/libexec/bsdinstall/adduser OLD_FILES+=usr/libexec/bsdinstall/auto OLD_FILES+=usr/libexec/bsdinstall/autopart OLD_FILES+=usr/libexec/bsdinstall/bootconfig OLD_FILES+=usr/libexec/bsdinstall/checksum OLD_FILES+=usr/libexec/bsdinstall/config OLD_FILES+=usr/libexec/bsdinstall/distextract OLD_FILES+=usr/libexec/bsdinstall/distfetch OLD_FILES+=usr/libexec/bsdinstall/docsinstall OLD_FILES+=usr/libexec/bsdinstall/entropy OLD_FILES+=usr/libexec/bsdinstall/fetchmissingdists OLD_FILES+=usr/libexec/bsdinstall/finalconfig OLD_FILES+=usr/libexec/bsdinstall/firmware OLD_FILES+=usr/libexec/bsdinstall/hardening OLD_FILES+=usr/libexec/bsdinstall/hostname OLD_FILES+=usr/libexec/bsdinstall/jail OLD_FILES+=usr/libexec/bsdinstall/keymap OLD_FILES+=usr/libexec/bsdinstall/mirrorselect OLD_FILES+=usr/libexec/bsdinstall/mount OLD_FILES+=usr/libexec/bsdinstall/netconfig OLD_FILES+=usr/libexec/bsdinstall/netconfig_ipv4 OLD_FILES+=usr/libexec/bsdinstall/netconfig_ipv6 OLD_FILES+=usr/libexec/bsdinstall/partedit OLD_FILES+=usr/libexec/bsdinstall/pkgbase OLD_FILES+=usr/libexec/bsdinstall/rootpass OLD_FILES+=usr/libexec/bsdinstall/runconsoles OLD_FILES+=usr/libexec/bsdinstall/script OLD_FILES+=usr/libexec/bsdinstall/scriptedpart OLD_FILES+=usr/libexec/bsdinstall/services OLD_FILES+=usr/libexec/bsdinstall/startbsdinstall OLD_FILES+=usr/libexec/bsdinstall/time OLD_FILES+=usr/libexec/bsdinstall/umount OLD_FILES+=usr/libexec/bsdinstall/wlanconfig OLD_FILES+=usr/libexec/bsdinstall/zfsboot OLD_FILES+=usr/sbin/bsdinstall OLD_FILES+=usr/share/man/man8/bsdinstall.8.gz OLD_FILES+=usr/share/man/man8/sade.8.gz OLD_DIRS+=usr/libexec/bsdinstall .endif .if ${MK_BSD_CPIO} == no OLD_FILES+=usr/bin/bsdcpio OLD_FILES+=usr/bin/cpio OLD_FILES+=usr/share/man/man1/bsdcpio.1.gz OLD_FILES+=usr/share/man/man1/cpio.1.gz .endif .if ${MK_BSNMP} == no OLD_FILES+=etc/snmpd.config OLD_FILES+=etc/rc.d/bsnmpd OLD_FILES+=usr/bin/bsnmpget OLD_FILES+=usr/bin/bsnmpset OLD_FILES+=usr/bin/bsnmpwalk OLD_FILES+=usr/include/bsnmp/asn1.h OLD_FILES+=usr/include/bsnmp/bridge_snmp.h OLD_FILES+=usr/include/bsnmp/snmp.h OLD_FILES+=usr/include/bsnmp/snmp_mibII.h OLD_FILES+=usr/include/bsnmp/snmp_netgraph.h OLD_FILES+=usr/include/bsnmp/snmpagent.h OLD_FILES+=usr/include/bsnmp/snmpclient.h OLD_FILES+=usr/include/bsnmp/snmpmod.h OLD_FILES+=usr/lib/libbsnmp.a OLD_FILES+=usr/lib/libbsnmp.so OLD_LIBS+=usr/lib/libbsnmp.so.7 OLD_FILES+=usr/lib/libbsnmp_p.a OLD_FILES+=usr/lib/libbsnmptools.a OLD_FILES+=usr/lib/libbsnmptools.so OLD_LIBS+=usr/lib/libbsnmptools.so.0 OLD_FILES+=usr/lib/libbsnmptools_p.a OLD_FILES+=usr/lib/snmp_bridge.so OLD_LIBS+=usr/lib/snmp_bridge.so.6 OLD_FILES+=usr/lib/snmp_hast.so OLD_LIBS+=usr/lib/snmp_hast.so.6 OLD_FILES+=usr/lib/snmp_hostres.so OLD_LIBS+=usr/lib/snmp_hostres.so.6 OLD_FILES+=usr/lib/snmp_lm75.so OLD_LIBS+=usr/lib/snmp_lm75.so.6 OLD_FILES+=usr/lib/snmp_mibII.so OLD_LIBS+=usr/lib/snmp_mibII.so.6 OLD_FILES+=usr/lib/snmp_netgraph.so OLD_LIBS+=usr/lib/snmp_netgraph.so.6 OLD_FILES+=usr/lib/snmp_pf.so OLD_LIBS+=usr/lib/snmp_pf.so.6 OLD_FILES+=usr/lib/snmp_target.so OLD_LIBS+=usr/lib/snmp_target.so.6 OLD_FILES+=usr/lib/snmp_usm.so OLD_LIBS+=usr/lib/snmp_usm.so.6 OLD_FILES+=usr/lib/snmp_vacm.so OLD_LIBS+=usr/lib/snmp_vacm.so.6 OLD_FILES+=usr/lib/snmp_wlan.so OLD_LIBS+=usr/lib/snmp_wlan.so.6 OLD_FILES+=usr/sbin/bsnmpd OLD_FILES+=usr/sbin/gensnmptree OLD_FILES+=usr/share/examples/etc/snmpd.config OLD_FILES+=usr/share/man/man1/bsnmpd.1.gz OLD_FILES+=usr/share/man/man1/bsnmpget.1.gz OLD_FILES+=usr/share/man/man1/bsnmpset.1.gz OLD_FILES+=usr/share/man/man1/bsnmpwalk.1.gz OLD_FILES+=usr/share/man/man1/gensnmptree.1.gz # lib/libbsnmp/libbsnmp OLD_FILES+=usr/share/man/man3/TRUTH_GET.3.gz OLD_FILES+=usr/share/man/man3/TRUTH_MK.3.gz OLD_FILES+=usr/share/man/man3/TRUTH_OK.3.gz OLD_FILES+=usr/share/man/man3/asn1.3.gz OLD_FILES+=usr/share/man/man3/asn_append_oid.3.gz OLD_FILES+=usr/share/man/man3/asn_commit_header.3.gz OLD_FILES+=usr/share/man/man3/asn_compare_oid.3.gz OLD_FILES+=usr/share/man/man3/asn_get_counter64_raw.3.gz OLD_FILES+=usr/share/man/man3/asn_get_header.3.gz OLD_FILES+=usr/share/man/man3/asn_get_integer.3.gz OLD_FILES+=usr/share/man/man3/asn_get_integer_raw.3.gz OLD_FILES+=usr/share/man/man3/asn_get_ipaddress.3.gz OLD_FILES+=usr/share/man/man3/asn_get_ipaddress_raw.3.gz OLD_FILES+=usr/share/man/man3/asn_get_null.3.gz OLD_FILES+=usr/share/man/man3/asn_get_null_raw.3.gz OLD_FILES+=usr/share/man/man3/asn_get_objid.3.gz OLD_FILES+=usr/share/man/man3/asn_get_objid_raw.3.gz OLD_FILES+=usr/share/man/man3/asn_get_octetstring.3.gz OLD_FILES+=usr/share/man/man3/asn_get_octetstring_raw.3.gz OLD_FILES+=usr/share/man/man3/asn_get_sequence.3.gz OLD_FILES+=usr/share/man/man3/asn_get_timeticks.3.gz OLD_FILES+=usr/share/man/man3/asn_get_uint32_raw.3.gz OLD_FILES+=usr/share/man/man3/asn_is_suboid.3.gz OLD_FILES+=usr/share/man/man3/asn_oid2str.3.gz OLD_FILES+=usr/share/man/man3/asn_oid2str_r.3.gz OLD_FILES+=usr/share/man/man3/asn_put_counter64.3.gz OLD_FILES+=usr/share/man/man3/asn_put_exception.3.gz OLD_FILES+=usr/share/man/man3/asn_put_header.3.gz OLD_FILES+=usr/share/man/man3/asn_put_integer.3.gz OLD_FILES+=usr/share/man/man3/asn_put_ipaddress.3.gz OLD_FILES+=usr/share/man/man3/asn_put_null.3.gz OLD_FILES+=usr/share/man/man3/asn_put_objid.3.gz OLD_FILES+=usr/share/man/man3/asn_put_octetstring.3.gz OLD_FILES+=usr/share/man/man3/asn_put_temp_header.3.gz OLD_FILES+=usr/share/man/man3/asn_put_timeticks.3.gz OLD_FILES+=usr/share/man/man3/asn_put_uint32.3.gz OLD_FILES+=usr/share/man/man3/asn_skip.3.gz OLD_FILES+=usr/share/man/man3/asn_slice_oid.3.gz OLD_FILES+=usr/share/man/man3/snmp_add_binding.3.gz OLD_FILES+=usr/share/man/man3/snmp_calc_keychange.3.gz OLD_FILES+=usr/share/man/man3/snmp_client.3.gz OLD_FILES+=usr/share/man/man3/snmp_client_init.3.gz OLD_FILES+=usr/share/man/man3/snmp_client_set_host.3.gz OLD_FILES+=usr/share/man/man3/snmp_client_set_port.3.gz OLD_FILES+=usr/share/man/man3/snmp_close.3.gz OLD_FILES+=usr/share/man/man3/snmp_debug.3.gz OLD_FILES+=usr/share/man/man3/snmp_dep_commit.3.gz OLD_FILES+=usr/share/man/man3/snmp_dep_finish.3.gz OLD_FILES+=usr/share/man/man3/snmp_dep_lookup.3.gz OLD_FILES+=usr/share/man/man3/snmp_dep_rollback.3.gz OLD_FILES+=usr/share/man/man3/snmp_depop_t.3.gz OLD_FILES+=usr/share/man/man3/snmp_dialog.3.gz OLD_FILES+=usr/share/man/man3/snmp_discover_engine.3.gz OLD_FILES+=usr/share/man/man3/snmp_get.3.gz OLD_FILES+=usr/share/man/man3/snmp_get_local_keys.3.gz OLD_FILES+=usr/share/man/man3/snmp_getbulk.3.gz OLD_FILES+=usr/share/man/man3/snmp_getnext.3.gz OLD_FILES+=usr/share/man/man3/snmp_init_context.3.gz OLD_FILES+=usr/share/man/man3/snmp_make_errresp.3.gz OLD_FILES+=usr/share/man/man3/snmp_oid_append.3.gz OLD_FILES+=usr/share/man/man3/snmp_op_t.3.gz OLD_FILES+=usr/share/man/man3/snmp_open.3.gz OLD_FILES+=usr/share/man/man3/snmp_parse_server.3.gz OLD_FILES+=usr/share/man/man3/snmp_passwd_to_keys.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_check.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_create.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_decode.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_decode_header.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_decode_scoped.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_decode_secmode.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_dump.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_encode.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_free.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_init_secparams.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_send.3.gz OLD_FILES+=usr/share/man/man3/snmp_receive.3.gz OLD_FILES+=usr/share/man/man3/snmp_send_cb_f.3.gz OLD_FILES+=usr/share/man/man3/snmp_set.3.gz OLD_FILES+=usr/share/man/man3/snmp_table_cb_f.3.gz OLD_FILES+=usr/share/man/man3/snmp_table_fetch.3.gz OLD_FILES+=usr/share/man/man3/snmp_table_fetch_async.3.gz OLD_FILES+=usr/share/man/man3/snmp_timeout_cb_f.3.gz OLD_FILES+=usr/share/man/man3/snmp_timeout_start_f.3.gz OLD_FILES+=usr/share/man/man3/snmp_timeout_stop_f.3.gz OLD_FILES+=usr/share/man/man3/snmp_trace.3.gz OLD_FILES+=usr/share/man/man3/snmp_value_copy.3.gz OLD_FILES+=usr/share/man/man3/snmp_value_free.3.gz OLD_FILES+=usr/share/man/man3/snmp_value_parse.3.gz OLD_FILES+=usr/share/man/man3/tree_size.3.gz # usr.sbin/bsnmpd/bsnmpd OLD_FILES+=usr/share/man/man3/FIND_OBJECT_INT.3.gz OLD_FILES+=usr/share/man/man3/FIND_OBJECT_INT_LINK.3.gz OLD_FILES+=usr/share/man/man3/FIND_OBJECT_INT_LINK_INDEX.3.gz OLD_FILES+=usr/share/man/man3/FIND_OBJECT_OID.3.gz OLD_FILES+=usr/share/man/man3/FIND_OBJECT_OID_LINK.3.gz OLD_FILES+=usr/share/man/man3/FIND_OBJECT_OID_LINK_INDEX.3.gz OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_INT.3.gz OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_INT_LINK.3.gz OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_INT_LINK_INDEX.3.gz OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_OID.3.gz OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_OID_LINK.3.gz OLD_FILES+=usr/share/man/man3/INSERT_OBJECT_OID_LINK_INDEX.3.gz OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_INT.3.gz OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_INT_LINK.3.gz OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_INT_LINK_INDEX.3.gz OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_OID.3.gz OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_OID_LINK.3.gz OLD_FILES+=usr/share/man/man3/NEXT_OBJECT_OID_LINK_INDEX.3.gz OLD_FILES+=usr/share/man/man3/asn1.3.gz OLD_FILES+=usr/share/man/man3/bsnmpagent.3.gz OLD_FILES+=usr/share/man/man3/bsnmpclient.3.gz OLD_FILES+=usr/share/man/man3/bsnmpd_get_target_stats.3.gz OLD_FILES+=usr/share/man/man3/bsnmpd_get_usm_stats.3.gz OLD_FILES+=usr/share/man/man3/bsnmpd_reset_usm_stats.3.gz OLD_FILES+=usr/share/man/man3/bsnmplib.3.gz OLD_FILES+=usr/share/man/man3/buf_alloc.3.gz OLD_FILES+=usr/share/man/man3/buf_size.3.gz OLD_FILES+=usr/share/man/man3/comm_define.3.gz OLD_FILES+=usr/share/man/man3/community.3.gz OLD_FILES+=usr/share/man/man3/fd_deselect.3.gz OLD_FILES+=usr/share/man/man3/fd_resume.3.gz OLD_FILES+=usr/share/man/man3/fd_select.3.gz OLD_FILES+=usr/share/man/man3/fd_suspend.3.gz OLD_FILES+=usr/share/man/man3/get_ticks.3.gz OLD_FILES+=usr/share/man/man3/index_append.3.gz OLD_FILES+=usr/share/man/man3/index_append_off.3.gz OLD_FILES+=usr/share/man/man3/index_compare.3.gz OLD_FILES+=usr/share/man/man3/index_compare_off.3.gz OLD_FILES+=usr/share/man/man3/index_decode.3.gz OLD_FILES+=usr/share/man/man3/ip_commit.3.gz OLD_FILES+=usr/share/man/man3/ip_get.3.gz OLD_FILES+=usr/share/man/man3/ip_rollback.3.gz OLD_FILES+=usr/share/man/man3/ip_save.3.gz OLD_FILES+=usr/share/man/man3/or_register.3.gz OLD_FILES+=usr/share/man/man3/or_unregister.3.gz OLD_FILES+=usr/share/man/man3/oid_commit.3.gz OLD_FILES+=usr/share/man/man3/oid_get.3.gz OLD_FILES+=usr/share/man/man3/oid_rollback.3.gz OLD_FILES+=usr/share/man/man3/oid_save.3.gz OLD_FILES+=usr/share/man/man3/oid_usmNotInTimeWindows.3.gz OLD_FILES+=usr/share/man/man3/oid_usmUnknownEngineIDs.3.gz OLD_FILES+=usr/share/man/man3/oid_zeroDotZero.3.gz OLD_FILES+=usr/share/man/man3/reqid_allocate.3.gz OLD_FILES+=usr/share/man/man3/reqid_base.3.gz OLD_FILES+=usr/share/man/man3/reqid_istype.3.gz OLD_FILES+=usr/share/man/man3/reqid_next.3.gz OLD_FILES+=usr/share/man/man3/reqid_type.3.gz OLD_FILES+=usr/share/man/man3/snmp_bridge.3.gz OLD_FILES+=usr/share/man/man3/snmp_hast.3.gz OLD_FILES+=usr/share/man/man3/snmp_hostres.3.gz OLD_FILES+=usr/share/man/man3/snmp_input_finish.3.gz OLD_FILES+=usr/share/man/man3/snmp_input_start.3.gz OLD_FILES+=usr/share/man/man3/snmp_lm75.3.gz OLD_FILES+=usr/share/man/man3/snmp_mibII.3.gz OLD_FILES+=usr/share/man/man3/snmp_netgraph.3.gz OLD_FILES+=usr/share/man/man3/snmp_output.3.gz OLD_FILES+=usr/share/man/man3/snmp_pdu_auth_access.3.gz OLD_FILES+=usr/share/man/man3/snmp_send_port.3.gz OLD_FILES+=usr/share/man/man3/snmp_send_trap.3.gz OLD_FILES+=usr/share/man/man3/snmp_target.3.gz OLD_FILES+=usr/share/man/man3/snmp_usm.3.gz OLD_FILES+=usr/share/man/man3/snmp_vacm.3.gz OLD_FILES+=usr/share/man/man3/snmp_wlan.3.gz OLD_FILES+=usr/share/man/man3/snmpd_target_stat.3.gz OLD_FILES+=usr/share/man/man3/snmpd_usmstats.3.gz OLD_FILES+=usr/share/man/man3/snmpmod.3.gz OLD_FILES+=usr/share/man/man3/start_tick.3.gz OLD_FILES+=usr/share/man/man3/string_commit.3.gz OLD_FILES+=usr/share/man/man3/string_free.3.gz OLD_FILES+=usr/share/man/man3/string_get.3.gz OLD_FILES+=usr/share/man/man3/string_get_max.3.gz OLD_FILES+=usr/share/man/man3/string_rollback.3.gz OLD_FILES+=usr/share/man/man3/string_save.3.gz OLD_FILES+=usr/share/man/man3/systemg.3.gz OLD_FILES+=usr/share/man/man3/this_tick.3.gz OLD_FILES+=usr/share/man/man3/timer_start.3.gz OLD_FILES+=usr/share/man/man3/timer_start_repeat.3.gz OLD_FILES+=usr/share/man/man3/timer_stop.3.gz OLD_FILES+=usr/share/man/man3/target_activate_address.3.gz OLD_FILES+=usr/share/man/man3/target_address.3.gz OLD_FILES+=usr/share/man/man3/target_delete_address.3.gz OLD_FILES+=usr/share/man/man3/target_delete_notify.3.gz OLD_FILES+=usr/share/man/man3/target_delete_param.3.gz OLD_FILES+=usr/share/man/man3/target_first_address.3.gz OLD_FILES+=usr/share/man/man3/target_first_notify.3.gz OLD_FILES+=usr/share/man/man3/target_first_param.3.gz OLD_FILES+=usr/share/man/man3/target_flush_all.3.gz OLD_FILES+=usr/share/man/man3/target_next_address.3.gz OLD_FILES+=usr/share/man/man3/target_next_notify.3.gz OLD_FILES+=usr/share/man/man3/target_next_param.3.gz OLD_FILES+=usr/share/man/man3/target_new_address.3.gz OLD_FILES+=usr/share/man/man3/target_new_notify.3.gz OLD_FILES+=usr/share/man/man3/target_new_param.3.gz OLD_FILES+=usr/share/man/man3/target_notify.3.gz OLD_FILES+=usr/share/man/man3/target_param.3.gz OLD_FILES+=usr/share/man/man3/usm_delete_user.3.gz OLD_FILES+=usr/share/man/man3/usm_find_user.3.gz OLD_FILES+=usr/share/man/man3/usm_first_user.3.gz OLD_FILES+=usr/share/man/man3/usm_flush_users.3.gz OLD_FILES+=usr/share/man/man3/usm_next_user.3.gz OLD_FILES+=usr/share/man/man3/usm_new_user.3.gz OLD_FILES+=usr/share/man/man3/usm_user.3.gz OLD_FILES+=usr/share/snmp/defs/bridge_tree.def OLD_FILES+=usr/share/snmp/defs/hast_tree.def OLD_FILES+=usr/share/snmp/defs/hostres_tree.def OLD_FILES+=usr/share/snmp/defs/lm75_tree.def OLD_FILES+=usr/share/snmp/defs/mibII_tree.def OLD_FILES+=usr/share/snmp/defs/netgraph_tree.def OLD_FILES+=usr/share/snmp/defs/pf_tree.def OLD_FILES+=usr/share/snmp/defs/target_tree.def OLD_FILES+=usr/share/snmp/defs/tc.def OLD_FILES+=usr/share/snmp/defs/tree.def OLD_FILES+=usr/share/snmp/defs/usm_tree.def OLD_FILES+=usr/share/snmp/defs/vacm_tree.def OLD_FILES+=usr/share/snmp/defs/wlan_tree.def OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-ATM-FREEBSD-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-ATM.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-BRIDGE-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-HAST-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-HOSTRES-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-IP-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-LM75-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-MIB2-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-NETGRAPH.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-PF-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-SNMPD.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-WIRELESS-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BRIDGE-MIB.txt OLD_FILES+=usr/share/snmp/mibs/FOKUS-MIB.txt OLD_FILES+=usr/share/snmp/mibs/FREEBSD-MIB.txt OLD_FILES+=usr/share/snmp/mibs/RSTP-MIB.txt OLD_DIRS+=usr/include/bsnmp OLD_DIRS+=usr/share/snmp OLD_DIRS+=usr/share/snmp/defs OLD_DIRS+=usr/share/snmp/mibs .endif .if ${MK_CALENDAR} == no OLD_FILES+=etc/periodic/daily/300.calendar OLD_FILES+=usr/bin/calendar OLD_FILES+=usr/share/calendar/calendar.all OLD_FILES+=usr/share/calendar/calendar.australia OLD_FILES+=usr/share/calendar/calendar.birthday OLD_FILES+=usr/share/calendar/calendar.brazilian OLD_FILES+=usr/share/calendar/calendar.christian OLD_FILES+=usr/share/calendar/calendar.computer OLD_FILES+=usr/share/calendar/calendar.croatian OLD_FILES+=usr/share/calendar/calendar.dutch OLD_FILES+=usr/share/calendar/calendar.freebsd OLD_FILES+=usr/share/calendar/calendar.french OLD_FILES+=usr/share/calendar/calendar.german OLD_FILES+=usr/share/calendar/calendar.history OLD_FILES+=usr/share/calendar/calendar.holiday OLD_FILES+=usr/share/calendar/calendar.hungarian OLD_FILES+=usr/share/calendar/calendar.judaic OLD_FILES+=usr/share/calendar/calendar.lotr OLD_FILES+=usr/share/calendar/calendar.music OLD_FILES+=usr/share/calendar/calendar.newzealand OLD_FILES+=usr/share/calendar/calendar.russian OLD_FILES+=usr/share/calendar/calendar.southafrica OLD_FILES+=usr/share/calendar/calendar.ukrainian OLD_FILES+=usr/share/calendar/calendar.usholiday OLD_FILES+=usr/share/calendar/calendar.world OLD_FILES+=usr/share/calendar/de_AT.ISO_8859-15/calendar.feiertag OLD_DIRS+=usr/share/calendar/de_AT.ISO_8859-15 OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.all OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.feiertag OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.geschichte OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.kirche OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.literatur OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.musik OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.wissenschaft OLD_DIRS+=usr/share/calendar/de_DE.ISO8859-1 OLD_FILES+=usr/share/calendar/de_DE.ISO8859-15 OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.all OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.fetes OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.french OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.jferies OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.proverbes OLD_DIRS+=usr/share/calendar/fr_FR.ISO8859-1 OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-15 OLD_FILES+=usr/share/calendar/hr_HR.ISO8859-2/calendar.all OLD_FILES+=usr/share/calendar/hr_HR.ISO8859-2/calendar.praznici OLD_DIRS+=usr/share/calendar/hr_HR.ISO8859-2 OLD_FILES+=usr/share/calendar/hu_HU.ISO8859-2/calendar.all OLD_FILES+=usr/share/calendar/hu_HU.ISO8859-2/calendar.nevnapok OLD_FILES+=usr/share/calendar/hu_HU.ISO8859-2/calendar.unnepek OLD_DIRS+=usr/share/calendar/hu_HU.ISO8859-2 OLD_FILES+=usr/share/calendar/pt_BR.ISO8859-1/calendar.all OLD_FILES+=usr/share/calendar/pt_BR.ISO8859-1/calendar.commemorative OLD_FILES+=usr/share/calendar/pt_BR.ISO8859-1/calendar.holidays OLD_FILES+=usr/share/calendar/pt_BR.ISO8859-1/calendar.mcommemorative OLD_DIRS+=usr/share/calendar/pt_BR.ISO8859-1 OLD_FILES+=usr/share/calendar/pt_BR.UTF-8/calendar.all OLD_FILES+=usr/share/calendar/pt_BR.UTF-8/calendar.commemorative OLD_FILES+=usr/share/calendar/pt_BR.UTF-8/calendar.holidays OLD_FILES+=usr/share/calendar/pt_BR.UTF-8/calendar.mcommemorative OLD_DIRS+=usr/share/calendar/pt_BR.UTF-8 OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.all OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.common OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.holiday OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.military OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.orthodox OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.pagan OLD_DIRS+=usr/share/calendar/ru_RU.KOI8-R OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.all OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.common OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.holiday OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.military OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.orthodox OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.pagan OLD_DIRS+=usr/share/calendar/ru_RU.UTF-8 OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.all OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.holiday OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.misc OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.orthodox OLD_DIRS+=usr/share/calendar/uk_UA.KOI8-U OLD_DIRS+=usr/share/calendar OLD_FILES+=usr/share/man/man1/calendar.1.gz OLD_FILES+=usr/tests/usr.bin/calendar/Kyuafile OLD_FILES+=usr/tests/usr.bin/calendar/calendar.calibrate OLD_FILES+=usr/tests/usr.bin/calendar/legacy_test OLD_FILES+=usr/tests/usr.bin/calendar/regress.a1.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.a2.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.a3.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.a4.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.a5.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.b1.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.b2.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.b3.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.b4.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.b5.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.s1.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.s2.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.s3.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.s4.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.sh OLD_FILES+=usr/tests/usr.bin/calendar/regress.w0-1.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.w0-2.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.w0-3.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.w0-4.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.w0-5.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.w0-6.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.w0-7.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.wn-1.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.wn-2.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.wn-3.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.wn-4.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.wn-5.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.wn-6.out OLD_FILES+=usr/tests/usr.bin/calendar/regress.wn-7.out OLD_DIRS+=usr/tests/usr.bin/calendar .endif .if ${MK_CASPER} == no OLD_LIBS+=lib/libcasper.so.1 OLD_LIBS+=lib/libcap_dns.so.2 OLD_LIBS+=lib/libcap_fileargs.so.1 OLD_LIBS+=lib/libcap_grp.so.1 OLD_LIBS+=lib/libcap_net.so.1 OLD_LIBS+=lib/libcap_netdb.so.1 OLD_LIBS+=lib/libcap_pwd.so.1 OLD_LIBS+=lib/libcap_sysctl.so.1 OLD_LIBS+=lib/libcap_sysctl.so.2 OLD_LIBS+=lib/libcap_syslog.so.1 .endif .if ${MK_CCD} == no OLD_FILES+=etc/rc.d/ccd OLD_FILES+=rescue/ccdconfig OLD_FILES+=sbin/ccdconfig OLD_FILES+=usr/share/man/man4/ccd.4.gz OLD_FILES+=usr/share/man/man8/ccdconfig.8.gz .endif .if ${MK_CLANG} == no && ${MK_CLANG_FORMAT} == no && ${MK_LLDB} == no OLD_LIBS+=usr/lib/libprivateclang.so.19 .endif .if ${MK_CLANG_EXTRAS} == no && ${MK_CLANG} == no && ${MK_LLDB} == no && \ ${MK_LLD} == no && ${MK_LLVM_BINUTILS} == no && ${MK_LLVM_COV} == no OLD_LIBS+=usr/lib/libprivatellvm.so.19 .endif .if ${MK_CLANG} == no && ${MK_LLVM_BINUTILS} == no OLD_FILES+=usr/bin/llvm-addr2line OLD_FILES+=usr/bin/llvm-ar OLD_FILES+=usr/bin/llvm-nm OLD_FILES+=usr/bin/llvm-objcopy OLD_FILES+=usr/bin/llvm-objdump OLD_FILES+=usr/bin/llvm-ranlib OLD_FILES+=usr/bin/llvm-readelf OLD_FILES+=usr/bin/llvm-readobj OLD_FILES+=usr/bin/llvm-size OLD_FILES+=usr/bin/llvm-strings OLD_FILES+=usr/bin/llvm-symbolizer OLD_FILES+=usr/bin/objdump OLD_FILES+=usr/share/man/man1/llvm-addr2line.1.gz OLD_FILES+=usr/share/man/man1/llvm-ar.1.gz OLD_FILES+=usr/share/man/man1/llvm-nm.1.gz OLD_FILES+=usr/share/man/man1/llvm-objcopy.1.gz OLD_FILES+=usr/share/man/man1/llvm-ranlib.1.gz OLD_FILES+=usr/share/man/man1/llvm-readelf.1.gz OLD_FILES+=usr/share/man/man1/llvm-readobj.1.gz OLD_FILES+=usr/share/man/man1/llvm-size.1.gz OLD_FILES+=usr/share/man/man1/llvm-strings.1.gz OLD_FILES+=usr/share/man/man1/llvm-symbolizer.1.gz OLD_FILES+=usr/share/man/man1/objdump.1.gz .endif .if ${MK_CLANG} == no OLD_FILES+=usr/bin/clang OLD_FILES+=usr/bin/clang++ OLD_FILES+=usr/bin/clang-cpp OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_cmath.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_complex_builtins.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_device_functions.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_intrinsics.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_libdevice_declares.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_math.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_math_forward_declares.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_runtime_wrapper.h OLD_FILES+=usr/lib/clang/19/include/__clang_cuda_texture_intrinsics.h OLD_FILES+=usr/lib/clang/19/include/__clang_hip_cmath.h OLD_FILES+=usr/lib/clang/19/include/__clang_hip_libdevice_declares.h OLD_FILES+=usr/lib/clang/19/include/__clang_hip_math.h OLD_FILES+=usr/lib/clang/19/include/__clang_hip_runtime_wrapper.h OLD_FILES+=usr/lib/clang/19/include/__clang_hip_stdlib.h OLD_FILES+=usr/lib/clang/19/include/__stdarg___gnuc_va_list.h OLD_FILES+=usr/lib/clang/19/include/__stdarg___va_copy.h OLD_FILES+=usr/lib/clang/19/include/__stdarg_header_macro.h OLD_FILES+=usr/lib/clang/19/include/__stdarg_va_arg.h OLD_FILES+=usr/lib/clang/19/include/__stdarg_va_copy.h OLD_FILES+=usr/lib/clang/19/include/__stdarg_va_list.h OLD_FILES+=usr/lib/clang/19/include/__stddef_header_macro.h OLD_FILES+=usr/lib/clang/19/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/19/include/__stddef_null.h OLD_FILES+=usr/lib/clang/19/include/__stddef_nullptr_t.h OLD_FILES+=usr/lib/clang/19/include/__stddef_offsetof.h OLD_FILES+=usr/lib/clang/19/include/__stddef_ptrdiff_t.h OLD_FILES+=usr/lib/clang/19/include/__stddef_rsize_t.h OLD_FILES+=usr/lib/clang/19/include/__stddef_size_t.h OLD_FILES+=usr/lib/clang/19/include/__stddef_unreachable.h OLD_FILES+=usr/lib/clang/19/include/__stddef_wchar_t.h OLD_FILES+=usr/lib/clang/19/include/__stddef_wint_t.h OLD_FILES+=usr/lib/clang/19/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/19/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/19/include/adcintrin.h OLD_FILES+=usr/lib/clang/19/include/adxintrin.h OLD_FILES+=usr/lib/clang/19/include/altivec.h OLD_FILES+=usr/lib/clang/19/include/ammintrin.h OLD_FILES+=usr/lib/clang/19/include/amxcomplexintrin.h OLD_FILES+=usr/lib/clang/19/include/amxfp16intrin.h OLD_FILES+=usr/lib/clang/19/include/amxintrin.h OLD_FILES+=usr/lib/clang/19/include/arm64intr.h OLD_FILES+=usr/lib/clang/19/include/arm_acle.h OLD_FILES+=usr/lib/clang/19/include/arm_bf16.h OLD_FILES+=usr/lib/clang/19/include/arm_cde.h OLD_FILES+=usr/lib/clang/19/include/arm_cmse.h OLD_FILES+=usr/lib/clang/19/include/arm_fp16.h OLD_FILES+=usr/lib/clang/19/include/arm_mve.h OLD_FILES+=usr/lib/clang/19/include/arm_neon.h OLD_FILES+=usr/lib/clang/19/include/arm_neon_sve_bridge.h OLD_FILES+=usr/lib/clang/19/include/arm_sme.h OLD_FILES+=usr/lib/clang/19/include/arm_sve.h OLD_FILES+=usr/lib/clang/19/include/arm_vector_types.h OLD_FILES+=usr/lib/clang/19/include/armintr.h OLD_FILES+=usr/lib/clang/19/include/avx2intrin.h OLD_FILES+=usr/lib/clang/19/include/avx512bf16intrin.h OLD_FILES+=usr/lib/clang/19/include/avx512bitalgintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512fp16intrin.h OLD_FILES+=usr/lib/clang/19/include/avx512ifmaintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512ifmavlintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vbmi2intrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vbmiintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vbmivlintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlbf16intrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlbitalgintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlcdintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlfp16intrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlvbmi2intrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlvnniintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vlvp2intersectintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vnniintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vp2intersectintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vpopcntdqintrin.h OLD_FILES+=usr/lib/clang/19/include/avx512vpopcntdqvlintrin.h OLD_FILES+=usr/lib/clang/19/include/avxifmaintrin.h OLD_FILES+=usr/lib/clang/19/include/avxintrin.h OLD_FILES+=usr/lib/clang/19/include/avxneconvertintrin.h OLD_FILES+=usr/lib/clang/19/include/avxvnniint16intrin.h OLD_FILES+=usr/lib/clang/19/include/avxvnniint8intrin.h OLD_FILES+=usr/lib/clang/19/include/avxvnniintrin.h OLD_FILES+=usr/lib/clang/19/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/19/include/bmiintrin.h OLD_FILES+=usr/lib/clang/19/include/builtins.h OLD_FILES+=usr/lib/clang/19/include/cet.h OLD_FILES+=usr/lib/clang/19/include/cetintrin.h OLD_FILES+=usr/lib/clang/19/include/cldemoteintrin.h OLD_FILES+=usr/lib/clang/19/include/clflushoptintrin.h OLD_FILES+=usr/lib/clang/19/include/clwbintrin.h OLD_FILES+=usr/lib/clang/19/include/clzerointrin.h OLD_FILES+=usr/lib/clang/19/include/cmpccxaddintrin.h OLD_FILES+=usr/lib/clang/19/include/cpuid.h OLD_FILES+=usr/lib/clang/19/include/crc32intrin.h OLD_FILES+=usr/lib/clang/19/include/cuda_wrappers/algorithm OLD_FILES+=usr/lib/clang/19/include/cuda_wrappers/bits/basic_string.h OLD_FILES+=usr/lib/clang/19/include/cuda_wrappers/bits/basic_string.tcc OLD_FILES+=usr/lib/clang/19/include/cuda_wrappers/bits/shared_ptr_base.h OLD_DIRS+=usr/lib/clang/19/include/cuda_wrappers/bits OLD_FILES+=usr/lib/clang/19/include/cuda_wrappers/cmath OLD_FILES+=usr/lib/clang/19/include/cuda_wrappers/complex OLD_FILES+=usr/lib/clang/19/include/cuda_wrappers/new OLD_DIRS+=usr/lib/clang/19/include/cuda_wrappers OLD_FILES+=usr/lib/clang/19/include/emmintrin.h OLD_FILES+=usr/lib/clang/19/include/enqcmdintrin.h OLD_FILES+=usr/lib/clang/19/include/f16cintrin.h OLD_FILES+=usr/lib/clang/19/include/float.h OLD_FILES+=usr/lib/clang/19/include/fma4intrin.h OLD_FILES+=usr/lib/clang/19/include/fmaintrin.h OLD_FILES+=usr/lib/clang/19/include/fuzzer/FuzzedDataProvider.h OLD_DIRS+=usr/lib/clang/19/include/fuzzer OLD_FILES+=usr/lib/clang/19/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/19/include/gfniintrin.h OLD_FILES+=usr/lib/clang/19/include/hexagon_circ_brev_intrinsics.h OLD_FILES+=usr/lib/clang/19/include/hexagon_protos.h OLD_FILES+=usr/lib/clang/19/include/hexagon_types.h OLD_FILES+=usr/lib/clang/19/include/hlsl/hlsl_basic_types.h OLD_FILES+=usr/lib/clang/19/include/hlsl/hlsl_intrinsics.h OLD_DIRS+=usr/lib/clang/19/include/hlsl OLD_FILES+=usr/lib/clang/19/include/hlsl.h OLD_FILES+=usr/lib/clang/19/include/hresetintrin.h OLD_FILES+=usr/lib/clang/19/include/htmintrin.h OLD_FILES+=usr/lib/clang/19/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/19/include/hvx_hexagon_protos.h OLD_FILES+=usr/lib/clang/19/include/ia32intrin.h OLD_FILES+=usr/lib/clang/19/include/immintrin.h OLD_FILES+=usr/lib/clang/19/include/intrin.h OLD_FILES+=usr/lib/clang/19/include/intrin0.h OLD_FILES+=usr/lib/clang/19/include/inttypes.h OLD_FILES+=usr/lib/clang/19/include/invpcidintrin.h OLD_FILES+=usr/lib/clang/19/include/iso646.h OLD_FILES+=usr/lib/clang/19/include/keylockerintrin.h OLD_FILES+=usr/lib/clang/19/include/larchintrin.h OLD_FILES+=usr/lib/clang/19/include/lasxintrin.h OLD_FILES+=usr/lib/clang/19/include/limits.h OLD_FILES+=usr/lib/clang/19/include/lsxintrin.h OLD_FILES+=usr/lib/clang/19/include/lwpintrin.h OLD_FILES+=usr/lib/clang/19/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/19/include/mm3dnow.h OLD_FILES+=usr/lib/clang/19/include/mm_malloc.h OLD_FILES+=usr/lib/clang/19/include/mmintrin.h OLD_FILES+=usr/lib/clang/19/include/module.modulemap OLD_FILES+=usr/lib/clang/19/include/movdirintrin.h OLD_FILES+=usr/lib/clang/19/include/msa.h OLD_FILES+=usr/lib/clang/19/include/mwaitxintrin.h OLD_FILES+=usr/lib/clang/19/include/nmmintrin.h OLD_FILES+=usr/lib/clang/19/include/omp-tools.h OLD_FILES+=usr/lib/clang/19/include/omp.h OLD_FILES+=usr/lib/clang/19/include/ompt.h OLD_FILES+=usr/lib/clang/19/include/opencl-c-base.h OLD_FILES+=usr/lib/clang/19/include/opencl-c.h OLD_FILES+=usr/lib/clang/19/include/openmp_wrappers/__clang_openmp_device_functions.h OLD_FILES+=usr/lib/clang/19/include/openmp_wrappers/cmath OLD_FILES+=usr/lib/clang/19/include/openmp_wrappers/complex OLD_FILES+=usr/lib/clang/19/include/openmp_wrappers/complex.h OLD_FILES+=usr/lib/clang/19/include/openmp_wrappers/complex_cmath.h OLD_FILES+=usr/lib/clang/19/include/openmp_wrappers/math.h OLD_FILES+=usr/lib/clang/19/include/openmp_wrappers/new OLD_DIRS+=usr/lib/clang/19/include/openmp_wrappers OLD_FILES+=usr/lib/clang/19/include/orc_rt/c_api.h OLD_DIRS+=usr/lib/clang/19/include/orc_rt OLD_FILES+=usr/lib/clang/19/include/pconfigintrin.h OLD_FILES+=usr/lib/clang/19/include/pkuintrin.h OLD_FILES+=usr/lib/clang/19/include/pmmintrin.h OLD_FILES+=usr/lib/clang/19/include/popcntintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/bmi2intrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/bmiintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/emmintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/immintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/mm_malloc.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/mmintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/nmmintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/pmmintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/smmintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/tmmintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/x86gprintrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/x86intrin.h OLD_FILES+=usr/lib/clang/19/include/ppc_wrappers/xmmintrin.h OLD_DIRS+=usr/lib/clang/19/include/ppc_wrappers OLD_FILES+=usr/lib/clang/19/include/prfchiintrin.h OLD_FILES+=usr/lib/clang/19/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/19/include/profile/InstrProfData.inc OLD_FILES+=usr/lib/clang/19/include/profile/MemProfData.inc OLD_DIRS+=usr/lib/clang/19/include/profile OLD_FILES+=usr/lib/clang/19/include/ptrauth.h OLD_FILES+=usr/lib/clang/19/include/ptwriteintrin.h OLD_FILES+=usr/lib/clang/19/include/raointintrin.h OLD_FILES+=usr/lib/clang/19/include/rdpruintrin.h OLD_FILES+=usr/lib/clang/19/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/19/include/riscv_bitmanip.h OLD_FILES+=usr/lib/clang/19/include/riscv_crypto.h OLD_FILES+=usr/lib/clang/19/include/riscv_ntlh.h OLD_FILES+=usr/lib/clang/19/include/riscv_vector.h OLD_FILES+=usr/lib/clang/19/include/rtmintrin.h OLD_FILES+=usr/lib/clang/19/include/s390intrin.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/hwasan_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/memprof_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/netbsd_syscall_hooks.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/scudo_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/tsan_interface.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/tsan_interface_atomic.h OLD_FILES+=usr/lib/clang/19/include/sanitizer/ubsan_interface.h OLD_DIRS+=usr/lib/clang/19/include/sanitizer OLD_FILES+=usr/lib/clang/19/include/serializeintrin.h OLD_FILES+=usr/lib/clang/19/include/sgxintrin.h OLD_FILES+=usr/lib/clang/19/include/sha512intrin.h OLD_FILES+=usr/lib/clang/19/include/shaintrin.h OLD_FILES+=usr/lib/clang/19/include/sifive_vector.h OLD_FILES+=usr/lib/clang/19/include/sm3intrin.h OLD_FILES+=usr/lib/clang/19/include/sm4intrin.h OLD_FILES+=usr/lib/clang/19/include/smmintrin.h OLD_FILES+=usr/lib/clang/19/include/stdalign.h OLD_FILES+=usr/lib/clang/19/include/stdarg.h OLD_FILES+=usr/lib/clang/19/include/stdatomic.h OLD_FILES+=usr/lib/clang/19/include/stdbool.h OLD_FILES+=usr/lib/clang/19/include/stdckdint.h OLD_FILES+=usr/lib/clang/19/include/stddef.h OLD_FILES+=usr/lib/clang/19/include/stdint.h OLD_FILES+=usr/lib/clang/19/include/stdnoreturn.h OLD_FILES+=usr/lib/clang/19/include/tbmintrin.h OLD_FILES+=usr/lib/clang/19/include/tgmath.h OLD_FILES+=usr/lib/clang/19/include/tmmintrin.h OLD_FILES+=usr/lib/clang/19/include/tsxldtrkintrin.h OLD_FILES+=usr/lib/clang/19/include/uintrintrin.h OLD_FILES+=usr/lib/clang/19/include/unwind.h OLD_FILES+=usr/lib/clang/19/include/usermsrintrin.h OLD_FILES+=usr/lib/clang/19/include/vadefs.h OLD_FILES+=usr/lib/clang/19/include/vaesintrin.h OLD_FILES+=usr/lib/clang/19/include/varargs.h OLD_FILES+=usr/lib/clang/19/include/vecintrin.h OLD_FILES+=usr/lib/clang/19/include/velintrin.h OLD_FILES+=usr/lib/clang/19/include/velintrin_approx.h OLD_FILES+=usr/lib/clang/19/include/velintrin_gen.h OLD_FILES+=usr/lib/clang/19/include/vpclmulqdqintrin.h OLD_FILES+=usr/lib/clang/19/include/waitpkgintrin.h OLD_FILES+=usr/lib/clang/19/include/wasm_simd128.h OLD_FILES+=usr/lib/clang/19/include/wbnoinvdintrin.h OLD_FILES+=usr/lib/clang/19/include/wmmintrin.h OLD_FILES+=usr/lib/clang/19/include/x86gprintrin.h OLD_FILES+=usr/lib/clang/19/include/x86intrin.h OLD_FILES+=usr/lib/clang/19/include/xmmintrin.h OLD_FILES+=usr/lib/clang/19/include/xopintrin.h OLD_FILES+=usr/lib/clang/19/include/xray/xray_interface.h OLD_FILES+=usr/lib/clang/19/include/xray/xray_log_interface.h OLD_FILES+=usr/lib/clang/19/include/xray/xray_records.h OLD_DIRS+=usr/lib/clang/19/include/xray OLD_FILES+=usr/lib/clang/19/include/xsavecintrin.h OLD_FILES+=usr/lib/clang/19/include/xsaveintrin.h OLD_FILES+=usr/lib/clang/19/include/xsaveoptintrin.h OLD_FILES+=usr/lib/clang/19/include/xsavesintrin.h OLD_FILES+=usr/lib/clang/19/include/xtestintrin.h OLD_FILES+=usr/lib/clang/19/include/yvals_core.h OLD_DIRS+=usr/lib/clang/19/include OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-aarch64.so OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-arm.so OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-armhf.so OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-powerpc64.so OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-powerpc64le.so OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-preinit-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-preinit-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-preinit-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-preinit-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-preinit-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-preinit-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-riscv64.so OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan-x86_64.so OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_cxx-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_cxx-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_cxx-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_cxx-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_cxx-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_cxx-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_static-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_static-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_static-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.asan_static-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi_diag-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi_diag-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi_diag-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi_diag-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.cfi_diag-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.dd-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.dd-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.fuzzer-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.fuzzer-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.msan-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.msan-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.msan-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.msan-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.msan_cxx-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.msan_cxx-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.msan_cxx-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.msan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-powerpc.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.safestack-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats_client-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats_client-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats_client-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats_client-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats_client-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats_client-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats_client-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.stats_client-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.tsan_cxx-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.tsan_cxx-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_minimal-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_minimal-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_minimal-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_minimal-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_minimal-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone_cxx-powerpc64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone_cxx-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone_cxx-riscv64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-basic-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-basic-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-basic-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-basic-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-basic-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-fdr-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-fdr-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-fdr-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-fdr-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-fdr-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-profiling-aarch64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-profiling-arm.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-profiling-armhf.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-profiling-powerpc64le.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-profiling-x86_64.a OLD_FILES+=usr/lib/clang/19/lib/freebsd/libclang_rt.xray-x86_64.a OLD_DIRS+=usr/lib/clang/19/lib/freebsd OLD_DIRS+=usr/lib/clang/19/lib OLD_FILES+=usr/lib/clang/19/share/asan_ignorelist.txt OLD_FILES+=usr/lib/clang/19/share/cfi_ignorelist.txt OLD_FILES+=usr/lib/clang/19/share/msan_ignorelist.txt OLD_DIRS+=usr/lib/clang/19/share OLD_DIRS+=usr/lib/clang/19 OLD_DIRS+=usr/lib/clang OLD_FILES+=usr/share/doc/llvm/clang/LICENSE.TXT OLD_DIRS+=usr/share/doc/llvm/clang OLD_FILES+=usr/share/doc/llvm/COPYRIGHT.regex OLD_FILES+=usr/share/doc/llvm/LICENSE.TXT OLD_DIRS+=usr/share/doc/llvm OLD_FILES+=usr/share/man/man1/clang.1.gz OLD_FILES+=usr/share/man/man1/clang++.1.gz OLD_FILES+=usr/share/man/man1/clang-cpp.1.gz .endif .if ${MK_CLANG_EXTRAS} == no OLD_FILES+=usr/bin/bugpoint OLD_FILES+=usr/bin/llc OLD_FILES+=usr/bin/lli OLD_FILES+=usr/bin/llvm-as OLD_FILES+=usr/bin/llvm-bcanalyzer OLD_FILES+=usr/bin/llvm-cxxdump OLD_FILES+=usr/bin/llvm-diff OLD_FILES+=usr/bin/llvm-dis OLD_FILES+=usr/bin/llvm-dwarfdump OLD_FILES+=usr/bin/llvm-dwp OLD_FILES+=usr/bin/llvm-extract OLD_FILES+=usr/bin/llvm-link OLD_FILES+=usr/bin/llvm-lto OLD_FILES+=usr/bin/llvm-lto2 OLD_FILES+=usr/bin/llvm-mc OLD_FILES+=usr/bin/llvm-mca OLD_FILES+=usr/bin/llvm-modextract OLD_FILES+=usr/bin/llvm-pdbutil OLD_FILES+=usr/bin/llvm-rtdyld OLD_FILES+=usr/bin/llvm-xray OLD_FILES+=usr/bin/opt OLD_FILES+=usr/share/man/man1/bugpoint.1.gz OLD_FILES+=usr/share/man/man1/llc.1.gz OLD_FILES+=usr/share/man/man1/lli.1.gz OLD_FILES+=usr/share/man/man1/llvm-as.1.gz OLD_FILES+=usr/share/man/man1/llvm-bcanalyzer.1.gz OLD_FILES+=usr/share/man/man1/llvm-diff.1.gz OLD_FILES+=usr/share/man/man1/llvm-dis.1.gz OLD_FILES+=usr/share/man/man1/llvm-dwarfdump.1 OLD_FILES+=usr/share/man/man1/llvm-extract.1.gz OLD_FILES+=usr/share/man/man1/llvm-link.1.gz OLD_FILES+=usr/share/man/man1/llvm-pdbutil.1.gz OLD_FILES+=usr/share/man/man1/opt.1.gz .endif .if ${MK_CLANG_EXTRAS} == no && ${MK_CLANG_FORMAT} == no OLD_FILES+=usr/bin/clang-format .endif .if ${MK_CLANG_EXTRAS} == no && ${MK_LLVM_CXXFILT} == no OLD_FILES+=usr/bin/llvm-cxxfilt OLD_FILES+=usr/share/man/man1/llvm-cxxfilt.1.gz .endif .if ${MK_CPP} == no OLD_FILES+=usr/bin/cpp OLD_FILES+=usr/share/man/man1/cpp.1.gz .endif .if ${MK_CUSE} == no OLD_FILES+=usr/include/fs/cuse/cuse_defs.h OLD_FILES+=usr/include/fs/cuse/cuse_ioctl.h OLD_FILES+=usr/include/cuse.h OLD_FILES+=usr/lib/libcuse.a OLD_LIBS+=usr/lib/libcuse.so.1 OLD_FILES+=usr/lib/libcuse_p.a OLD_FILES+=usr/share/man/man3/cuse.3.gz OLD_FILES+=usr/share/man/man3/cuse_alloc_unit_number.3.gz OLD_FILES+=usr/share/man/man3/cuse_alloc_unit_number_by_id.3.gz OLD_FILES+=usr/share/man/man3/cuse_copy_in.3.gz OLD_FILES+=usr/share/man/man3/cuse_copy_out.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_create.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_destroy.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_get_current.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_get_per_file_handle.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_get_priv0.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_get_priv1.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_set_per_file_handle.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_set_priv0.3.gz OLD_FILES+=usr/share/man/man3/cuse_dev_set_priv1.3.gz OLD_FILES+=usr/share/man/man3/cuse_free_unit_number.3.gz OLD_FILES+=usr/share/man/man3/cuse_free_unit_number_by_id.3.gz OLD_FILES+=usr/share/man/man3/cuse_get_local.3.gz OLD_FILES+=usr/share/man/man3/cuse_got_peer_signal.3.gz OLD_FILES+=usr/share/man/man3/cuse_init.3.gz OLD_FILES+=usr/share/man/man3/cuse_is_vmalloc_addr.3.gz OLD_FILES+=usr/share/man/man3/cuse_poll_wakeup.3.gz OLD_FILES+=usr/share/man/man3/cuse_set_local.3.gz OLD_FILES+=usr/share/man/man3/cuse_uninit.3.gz OLD_FILES+=usr/share/man/man3/cuse_vmalloc.3.gz OLD_FILES+=usr/share/man/man3/cuse_vmfree.3.gz OLD_FILES+=usr/share/man/man3/cuse_vmoffset.3.gz OLD_FILES+=usr/share/man/man3/cuse_wait_and_process.3.gz OLD_DIRS+=usr/include/fs/cuse .endif .if ${MK_DEBUG_FILES} == no .if exists(${DESTDIR}/usr/lib/debug) DEBUG_DIRS!=find ${DESTDIR}/usr/lib/debug -mindepth 1 \ -type d \! -path "${DESTDIR}/usr/lib/debug/boot/*" \ | sed -e 's,^${DESTDIR}/,,'; echo DEBUG_FILES!=find ${DESTDIR}/usr/lib/debug \ \! -type d \! -path "${DESTDIR}/usr/lib/debug/boot/*" \! -name "lib*.so*" \ | sed -e 's,^${DESTDIR}/,,'; echo DEBUG_LIBS!=find ${DESTDIR}/usr/lib/debug \! -type d -name "lib*.so*" \ | sed -e 's,^${DESTDIR}/,,'; echo OLD_DIRS+=${DEBUG_DIRS} OLD_FILES+=${DEBUG_FILES} OLD_LIBS+=${DEBUG_LIBS} .endif .endif .if ${MK_DETECT_TZ_CHANGES} == no OLD_FILES+=tests/lib/libc/stdtime/detect_tz_changes_test .endif .if ${MK_DIALOG} == no OLD_FILES+=usr/bin/dialog OLD_FILES+=usr/bin/dpv OLD_FILES+=usr/lib/libdialog.a OLD_FILES+=usr/lib/libdialog.so OLD_LIBS+=usr/lib/libdialog.so.10 OLD_FILES+=usr/lib/libdialog_p.a OLD_FILES+=usr/lib/libdpv.a OLD_FILES+=usr/lib/libdpv.so OLD_LIBS+=usr/lib/libdpv.so.3 OLD_FILES+=usr/lib/libdpv_p.a OLD_FILES+=usr/share/man/man1/dialog.1.gz OLD_FILES+=usr/share/man/man1/dpv.1.gz OLD_FILES+=usr/share/man/man3/dialog.3.gz OLD_FILES+=usr/share/man/man3/dpv.3.gz .endif .if ${MK_DICT} == no OLD_FILES+=usr/share/dict/README OLD_FILES+=usr/share/dict/freebsd OLD_FILES+=usr/share/dict/propernames OLD_FILES+=usr/share/dict/web2 OLD_FILES+=usr/share/dict/web2a OLD_FILES+=usr/share/dict/words OLD_DIRS+=usr/share/dict .endif .if ${MK_DMAGENT} == no OLD_FILES+=etc/dma/auth.conf OLD_FILES+=etc/dma/dma.conf OLD_DIRS+=etc/dma OLD_FILES+=usr/libexec/dma OLD_FILES+=usr/libexec/dma-mbox-create OLD_FILES+=usr/share/man/man8/dma.8.gz OLD_FILES+=usr/share/examples/dma/mailer.conf OLD_DIRS+=usr/share/examples/dma .endif .if ${MK_DTRACE} == no OLD_LIBS+=lib/libctf.so.2 OLD_LIBS+=lib/libdtrace.so.2 OLD_FILES+=usr/bin/ctfconvert OLD_FILES+=usr/bin/ctfdump OLD_FILES+=usr/bin/ctfmerge OLD_FILES+=usr/lib/dtrace/drti.o OLD_FILES+=usr/lib/dtrace/errno.d OLD_FILES+=usr/lib/dtrace/io.d OLD_FILES+=usr/lib/dtrace/ip.d OLD_FILES+=usr/lib/dtrace/ipfw.d OLD_FILES+=usr/lib/dtrace/mbuf.d OLD_FILES+=usr/lib/dtrace/psinfo.d .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" OLD_FILES+=usr/lib/dtrace/regs_x86.d .endif OLD_FILES+=usr/lib/dtrace/sctp.d OLD_FILES+=usr/lib/dtrace/siftr.d OLD_FILES+=usr/lib/dtrace/signal.d OLD_FILES+=usr/lib/dtrace/socket.d OLD_FILES+=usr/lib/dtrace/tcp.d OLD_FILES+=usr/lib/dtrace/udp.d OLD_FILES+=usr/lib/dtrace/udplite.d OLD_FILES+=usr/lib/dtrace/unistd.d OLD_FILES+=usr/lib/libctf.a OLD_FILES+=usr/lib/libctf.so OLD_FILES+=usr/lib/libctf_p.a OLD_FILES+=usr/lib/libdtrace.a OLD_FILES+=usr/lib/libdtrace.so OLD_FILES+=usr/lib/libdtrace_p.a OLD_LIBS+=lib/libdtrace.so.2 OLD_FILES+=usr/libexec/dwatch/chmod OLD_FILES+=usr/libexec/dwatch/errno OLD_FILES+=usr/libexec/dwatch/fchmodat OLD_FILES+=usr/libexec/dwatch/io OLD_FILES+=usr/libexec/dwatch/io-done OLD_FILES+=usr/libexec/dwatch/io-start OLD_FILES+=usr/libexec/dwatch/ip OLD_FILES+=usr/libexec/dwatch/ip-receive OLD_FILES+=usr/libexec/dwatch/ip-send OLD_FILES+=usr/libexec/dwatch/kill OLD_FILES+=usr/libexec/dwatch/lchmod OLD_FILES+=usr/libexec/dwatch/nanosleep OLD_FILES+=usr/libexec/dwatch/open OLD_FILES+=usr/libexec/dwatch/openat OLD_FILES+=usr/libexec/dwatch/proc OLD_FILES+=usr/libexec/dwatch/proc-create OLD_FILES+=usr/libexec/dwatch/proc-exec OLD_FILES+=usr/libexec/dwatch/proc-exec-failure OLD_FILES+=usr/libexec/dwatch/proc-exec-success OLD_FILES+=usr/libexec/dwatch/proc-exit OLD_FILES+=usr/libexec/dwatch/proc-signal OLD_FILES+=usr/libexec/dwatch/proc-signal-clear OLD_FILES+=usr/libexec/dwatch/proc-signal-discard OLD_FILES+=usr/libexec/dwatch/proc-signal-send OLD_FILES+=usr/libexec/dwatch/proc-status OLD_FILES+=usr/libexec/dwatch/read OLD_FILES+=usr/libexec/dwatch/recv OLD_FILES+=usr/libexec/dwatch/recvfrom OLD_FILES+=usr/libexec/dwatch/recvmsg OLD_FILES+=usr/libexec/dwatch/rw OLD_FILES+=usr/libexec/dwatch/sched OLD_FILES+=usr/libexec/dwatch/sched-change-pri OLD_FILES+=usr/libexec/dwatch/sched-cpu OLD_FILES+=usr/libexec/dwatch/sched-dequeue OLD_FILES+=usr/libexec/dwatch/sched-enqueue OLD_FILES+=usr/libexec/dwatch/sched-exec OLD_FILES+=usr/libexec/dwatch/sched-lend-pri OLD_FILES+=usr/libexec/dwatch/sched-load-change OLD_FILES+=usr/libexec/dwatch/sched-off-cpu OLD_FILES+=usr/libexec/dwatch/sched-on-cpu OLD_FILES+=usr/libexec/dwatch/sched-preempt OLD_FILES+=usr/libexec/dwatch/sched-pri OLD_FILES+=usr/libexec/dwatch/sched-queue OLD_FILES+=usr/libexec/dwatch/sched-remain-cpu OLD_FILES+=usr/libexec/dwatch/sched-sleep OLD_FILES+=usr/libexec/dwatch/sched-surrender OLD_FILES+=usr/libexec/dwatch/sched-tick OLD_FILES+=usr/libexec/dwatch/sched-wakeup OLD_FILES+=usr/libexec/dwatch/send OLD_FILES+=usr/libexec/dwatch/sendmsg OLD_FILES+=usr/libexec/dwatch/sendrecv OLD_FILES+=usr/libexec/dwatch/sendto OLD_FILES+=usr/libexec/dwatch/systop OLD_FILES+=usr/libexec/dwatch/tcp OLD_FILES+=usr/libexec/dwatch/tcp-accept OLD_FILES+=usr/libexec/dwatch/tcp-accept-established OLD_FILES+=usr/libexec/dwatch/tcp-accept-refused OLD_FILES+=usr/libexec/dwatch/tcp-connect OLD_FILES+=usr/libexec/dwatch/tcp-connect-established OLD_FILES+=usr/libexec/dwatch/tcp-connect-refused OLD_FILES+=usr/libexec/dwatch/tcp-connect-request OLD_FILES+=usr/libexec/dwatch/tcp-established OLD_FILES+=usr/libexec/dwatch/tcp-init OLD_FILES+=usr/libexec/dwatch/tcp-io OLD_FILES+=usr/libexec/dwatch/tcp-receive OLD_FILES+=usr/libexec/dwatch/tcp-refused OLD_FILES+=usr/libexec/dwatch/tcp-send OLD_FILES+=usr/libexec/dwatch/tcp-state-change OLD_FILES+=usr/libexec/dwatch/tcp-status OLD_FILES+=usr/libexec/dwatch/udp OLD_FILES+=usr/libexec/dwatch/udp-receive OLD_FILES+=usr/libexec/dwatch/udp-send OLD_FILES+=usr/libexec/dwatch/udplite OLD_FILES+=usr/libexec/dwatch/udplite-receive OLD_FILES+=usr/libexec/dwatch/udplite-send OLD_FILES+=usr/libexec/dwatch/vop_create OLD_FILES+=usr/libexec/dwatch/vop_lookup OLD_FILES+=usr/libexec/dwatch/vop_mkdir OLD_FILES+=usr/libexec/dwatch/vop_mknod OLD_FILES+=usr/libexec/dwatch/vop_readdir OLD_FILES+=usr/libexec/dwatch/vop_remove OLD_FILES+=usr/libexec/dwatch/vop_rename OLD_FILES+=usr/libexec/dwatch/vop_rmdir OLD_FILES+=usr/libexec/dwatch/vop_symlink OLD_FILES+=usr/libexec/dwatch/write OLD_FILES+=usr/sbin/dtrace OLD_FILES+=usr/sbin/dwatch OLD_FILES+=usr/sbin/lockstat OLD_FILES+=usr/sbin/plockstat OLD_FILES+=usr/share/man/man1/dtrace.1.gz OLD_FILES+=usr/share/man/man1/dtruss.1.gz OLD_FILES+=usr/share/man/man1/lockstat.1.gz OLD_FILES+=usr/share/man/man1/plockstat.1.gz OLD_FILES+=usr/share/dtrace/blocking OLD_FILES+=usr/share/dtrace/disklatency OLD_FILES+=usr/share/dtrace/disklatencycmd OLD_FILES+=usr/share/dtrace/hotopen OLD_FILES+=usr/share/dtrace/nfsattrstats OLD_FILES+=usr/share/dtrace/nfsclienttime OLD_FILES+=usr/share/dtrace/siftr OLD_FILES+=usr/share/dtrace/toolkit/execsnoop OLD_FILES+=usr/share/dtrace/toolkit/hotkernel OLD_FILES+=usr/share/dtrace/toolkit/hotuser OLD_FILES+=usr/share/dtrace/toolkit/opensnoop OLD_FILES+=usr/share/dtrace/toolkit/procsystime OLD_FILES+=usr/share/dtrace/tcpconn OLD_FILES+=usr/share/dtrace/tcpdebug OLD_FILES+=usr/share/dtrace/tcpstate OLD_FILES+=usr/share/dtrace/tcptrack OLD_FILES+=usr/share/dtrace/udptrack OLD_FILES+=usr/share/man/man1/dtrace.1.gz OLD_DIRS+=usr/lib/dtrace . for libcompat in ${_ALL_libcompats} OLD_DIRS+=usr/lib${libcompat}/dtrace . endfor OLD_DIRS+=usr/libexec/dwatch OLD_DIRS+=usr/share/dtrace/toolkit OLD_DIRS+=usr/share/dtrace .endif .if ${MK_EE} == no OLD_FILES+=usr/bin/edit OLD_FILES+=usr/bin/ee OLD_FILES+=usr/bin/ree OLD_FILES+=usr/share/man/man1/edit.1.gz OLD_FILES+=usr/share/man/man1/ee.1.gz OLD_FILES+=usr/share/man/man1/ree.1.gz OLD_FILES+=usr/share/misc/init.ee OLD_FILES+=usr/share/nls/C/ee.cat OLD_FILES+=usr/share/nls/de_DE.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/fr_FR.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/hu_HU.ISO8859-2/ee.cat OLD_FILES+=usr/share/nls/pl_PL.ISO8859-2/ee.cat OLD_FILES+=usr/share/nls/pt_BR.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/ru_RU.KOI8-R/ee.cat OLD_FILES+=usr/share/nls/uk_UA.KOI8-U/ee.cat .endif .if ${MK_EFI} == no OLD_FILES+=usr/sbin/efibootmgr OLD_FILES+=usr/sbin/efidp OLD_FILES+=usr/sbin/efivar OLD_FILES+=usr/sbin/uefisign OLD_FILES+=usr/share/examples/uefisign/uefikeys .endif .if ${MK_EXAMPLES} == no OLD_FILES+=usr/share/examples/BSD_daemon/FreeBSD.pfa OLD_FILES+=usr/share/examples/BSD_daemon/README OLD_FILES+=usr/share/examples/BSD_daemon/beastie.eps OLD_FILES+=usr/share/examples/BSD_daemon/beastie.fig OLD_FILES+=usr/share/examples/BSD_daemon/eps.patch OLD_FILES+=usr/share/examples/BSD_daemon/poster.sh OLD_FILES+=usr/share/examples/FreeBSD_version/FreeBSD_version.c OLD_FILES+=usr/share/examples/FreeBSD_version/Makefile OLD_FILES+=usr/share/examples/FreeBSD_version/README OLD_FILES+=usr/share/examples/IPv6/USAGE OLD_FILES+=usr/share/examples/bhyve/vmrun.sh OLD_FILES+=usr/share/examples/bootforth/README OLD_FILES+=usr/share/examples/bootforth/boot.4th OLD_FILES+=usr/share/examples/bootforth/frames.4th OLD_FILES+=usr/share/examples/bootforth/loader.rc OLD_FILES+=usr/share/examples/bootforth/menu.4th OLD_FILES+=usr/share/examples/bootforth/menuconf.4th OLD_FILES+=usr/share/examples/bootforth/screen.4th OLD_FILES+=usr/share/examples/bsdconfig/add_some_packages.sh OLD_FILES+=usr/share/examples/bsdconfig/browse_packages_http.sh OLD_FILES+=usr/share/examples/bsdconfig/bsdconfigrc OLD_FILES+=usr/share/examples/csh/dot.cshrc OLD_FILES+=usr/share/examples/diskless/ME OLD_FILES+=usr/share/examples/diskless/README.BOOTP OLD_FILES+=usr/share/examples/diskless/README.TEMPLATING OLD_FILES+=usr/share/examples/diskless/clone_root OLD_FILES+=usr/share/examples/dma/mailer.conf OLD_FILES+=usr/share/examples/dwatch/profile_template OLD_FILES+=usr/share/examples/etc/README.examples OLD_FILES+=usr/share/examples/etc/bsd-style-copyright OLD_FILES+=usr/share/examples/etc/group OLD_FILES+=usr/share/examples/etc/login.access OLD_FILES+=usr/share/examples/etc/make.conf OLD_FILES+=usr/share/examples/etc/rc.bsdextended OLD_FILES+=usr/share/examples/etc/rc.firewall OLD_FILES+=usr/share/examples/etc/termcap.small OLD_FILES+=usr/share/examples/etc/wpa_supplicant.conf OLD_FILES+=usr/share/examples/find_interface/Makefile OLD_FILES+=usr/share/examples/find_interface/README OLD_FILES+=usr/share/examples/find_interface/find_interface.c OLD_FILES+=usr/share/examples/flua/libjail.lua OLD_FILES+=usr/share/examples/hast/ucarp.sh OLD_FILES+=usr/share/examples/hast/ucarp_down.sh OLD_FILES+=usr/share/examples/hast/ucarp_up.sh OLD_FILES+=usr/share/examples/hast/vip-down.sh OLD_FILES+=usr/share/examples/hast/vip-up.sh OLD_FILES+=usr/share/examples/hostapd/hostapd.conf OLD_FILES+=usr/share/examples/hostapd/hostapd.eap_user OLD_FILES+=usr/share/examples/hostapd/hostapd.wpa_psk OLD_FILES+=usr/share/examples/indent/indent.pro OLD_FILES+=usr/share/examples/inotify/Makefile OLD_FILES+=usr/share/examples/inotify/inotify.c OLD_FILES+=usr/share/examples/ipfilter/BASIC.NAT OLD_FILES+=usr/share/examples/ipfilter/BASIC_1.FW OLD_FILES+=usr/share/examples/ipfilter/BASIC_2.FW OLD_FILES+=usr/share/examples/ipfilter/README OLD_FILES+=usr/share/examples/ipfilter/example.1 OLD_FILES+=usr/share/examples/ipfilter/example.10 OLD_FILES+=usr/share/examples/ipfilter/example.11 OLD_FILES+=usr/share/examples/ipfilter/example.12 OLD_FILES+=usr/share/examples/ipfilter/example.13 OLD_FILES+=usr/share/examples/ipfilter/example.14 OLD_FILES+=usr/share/examples/ipfilter/example.2 OLD_FILES+=usr/share/examples/ipfilter/example.3 OLD_FILES+=usr/share/examples/ipfilter/example.4 OLD_FILES+=usr/share/examples/ipfilter/example.5 OLD_FILES+=usr/share/examples/ipfilter/example.6 OLD_FILES+=usr/share/examples/ipfilter/example.7 OLD_FILES+=usr/share/examples/ipfilter/example.8 OLD_FILES+=usr/share/examples/ipfilter/example.9 OLD_FILES+=usr/share/examples/ipfilter/example.sr OLD_FILES+=usr/share/examples/ipfilter/examples.txt OLD_FILES+=usr/share/examples/ipfilter/firewall OLD_FILES+=usr/share/examples/ipfilter/firewall.1 OLD_FILES+=usr/share/examples/ipfilter/firewall.2 OLD_FILES+=usr/share/examples/ipfilter/ftp-proxy OLD_FILES+=usr/share/examples/ipfilter/ftppxy OLD_FILES+=usr/share/examples/ipfilter/ipf-howto.txt OLD_FILES+=usr/share/examples/ipfilter/ipf.conf.permissive OLD_FILES+=usr/share/examples/ipfilter/ipf.conf.restrictive OLD_FILES+=usr/share/examples/ipfilter/ipf.conf.sample OLD_FILES+=usr/share/examples/ipfilter/ipnat.conf.sample OLD_FILES+=usr/share/examples/ipfilter/mkfilters OLD_FILES+=usr/share/examples/ipfilter/nat-setup OLD_FILES+=usr/share/examples/ipfilter/nat.eg OLD_FILES+=usr/share/examples/ipfilter/rules.txt OLD_FILES+=usr/share/examples/ipfilter/server OLD_FILES+=usr/share/examples/ipfilter/tcpstate OLD_FILES+=usr/share/examples/ipfw/change_rules.sh OLD_FILES+=usr/share/examples/jails/README OLD_FILES+=usr/share/examples/jails/VIMAGE OLD_FILES+=usr/share/examples/jails/jail.xxx.conf OLD_FILES+=usr/share/examples/jails/jib OLD_FILES+=usr/share/examples/jails/jng OLD_FILES+=usr/share/examples/jails/rc.conf.jails OLD_FILES+=usr/share/examples/jails/rcjail.xxx.conf OLD_FILES+=usr/share/examples/kld/Makefile OLD_FILES+=usr/share/examples/kld/cdev/Makefile OLD_FILES+=usr/share/examples/kld/cdev/README OLD_FILES+=usr/share/examples/kld/cdev/module/Makefile OLD_FILES+=usr/share/examples/kld/cdev/module/cdev.c OLD_FILES+=usr/share/examples/kld/cdev/module/cdev.h OLD_FILES+=usr/share/examples/kld/cdev/module/cdevmod.c OLD_FILES+=usr/share/examples/kld/cdev/test/Makefile OLD_FILES+=usr/share/examples/kld/cdev/test/testcdev.c OLD_FILES+=usr/share/examples/kld/dyn_sysctl/Makefile OLD_FILES+=usr/share/examples/kld/dyn_sysctl/README OLD_FILES+=usr/share/examples/kld/dyn_sysctl/dyn_sysctl.c OLD_FILES+=usr/share/examples/kld/firmware/Makefile OLD_FILES+=usr/share/examples/kld/firmware/README OLD_FILES+=usr/share/examples/kld/firmware/fwconsumer/Makefile OLD_FILES+=usr/share/examples/kld/firmware/fwconsumer/fw_consumer.c OLD_FILES+=usr/share/examples/kld/firmware/fwimage/Makefile OLD_FILES+=usr/share/examples/kld/firmware/fwimage/firmware.img.uu OLD_FILES+=usr/share/examples/kld/khelp/Makefile OLD_FILES+=usr/share/examples/kld/khelp/README OLD_FILES+=usr/share/examples/kld/khelp/h_example.c OLD_FILES+=usr/share/examples/kld/syscall/Makefile OLD_FILES+=usr/share/examples/kld/syscall/module/Makefile OLD_FILES+=usr/share/examples/kld/syscall/module/syscall.c OLD_FILES+=usr/share/examples/kld/syscall/test/Makefile OLD_FILES+=usr/share/examples/kld/syscall/test/call.c OLD_FILES+=usr/share/examples/kyua/Kyuafile.top OLD_FILES+=usr/share/examples/kyua/kyua.conf OLD_FILES+=usr/share/examples/libusb20/Makefile OLD_FILES+=usr/share/examples/libusb20/README OLD_FILES+=usr/share/examples/libusb20/bulk.c OLD_FILES+=usr/share/examples/libusb20/control.c OLD_FILES+=usr/share/examples/libusb20/util.c OLD_FILES+=usr/share/examples/libusb20/util.h OLD_FILES+=usr/share/examples/libvgl/Makefile OLD_FILES+=usr/share/examples/libvgl/demo.c OLD_FILES+=usr/share/examples/mdoc/POSIX-copyright OLD_FILES+=usr/share/examples/mdoc/deshallify.sh OLD_FILES+=usr/share/examples/mdoc/example.1 OLD_FILES+=usr/share/examples/mdoc/example.3 OLD_FILES+=usr/share/examples/mdoc/example.4 OLD_FILES+=usr/share/examples/mdoc/example.9 OLD_FILES+=usr/share/examples/netgraph/ether.bridge OLD_FILES+=usr/share/examples/netgraph/frame_relay OLD_FILES+=usr/share/examples/netgraph/ngctl OLD_FILES+=usr/share/examples/netgraph/raw OLD_FILES+=usr/share/examples/netgraph/udp.tunnel OLD_FILES+=usr/share/examples/netgraph/virtual.chain OLD_FILES+=usr/share/examples/netgraph/virtual.lan OLD_FILES+=usr/share/examples/perfmon/Makefile OLD_FILES+=usr/share/examples/perfmon/README OLD_FILES+=usr/share/examples/perfmon/perfmon.c OLD_FILES+=usr/share/examples/pf/ackpri OLD_FILES+=usr/share/examples/pf/faq-example1 OLD_FILES+=usr/share/examples/pf/faq-example2 OLD_FILES+=usr/share/examples/pf/faq-example3 OLD_FILES+=usr/share/examples/pf/pf.conf OLD_FILES+=usr/share/examples/pf/queue1 OLD_FILES+=usr/share/examples/pf/queue2 OLD_FILES+=usr/share/examples/pf/queue3 OLD_FILES+=usr/share/examples/pf/queue4 OLD_FILES+=usr/share/examples/pf/spamd OLD_FILES+=usr/share/examples/ppi/Makefile OLD_FILES+=usr/share/examples/ppi/ppilcd.c OLD_FILES+=usr/share/examples/ppp/chap-auth OLD_FILES+=usr/share/examples/ppp/login-auth OLD_FILES+=usr/share/examples/ppp/ppp.conf.sample OLD_FILES+=usr/share/examples/ppp/ppp.conf.span-isp OLD_FILES+=usr/share/examples/ppp/ppp.conf.span-isp.working OLD_FILES+=usr/share/examples/ppp/ppp.linkdown.sample OLD_FILES+=usr/share/examples/ppp/ppp.linkdown.span-isp OLD_FILES+=usr/share/examples/ppp/ppp.linkdown.span-isp.working OLD_FILES+=usr/share/examples/ppp/ppp.linkup.sample OLD_FILES+=usr/share/examples/ppp/ppp.linkup.span-isp OLD_FILES+=usr/share/examples/ppp/ppp.linkup.span-isp.working OLD_FILES+=usr/share/examples/ppp/ppp.secret.sample OLD_FILES+=usr/share/examples/ppp/ppp.secret.span-isp OLD_FILES+=usr/share/examples/ppp/ppp.secret.span-isp.working OLD_FILES+=usr/share/examples/printing/diablo-if-net OLD_FILES+=usr/share/examples/printing/hpdf OLD_FILES+=usr/share/examples/printing/hpif OLD_FILES+=usr/share/examples/printing/hpof OLD_FILES+=usr/share/examples/printing/hprf OLD_FILES+=usr/share/examples/printing/hpvf OLD_FILES+=usr/share/examples/printing/if-simple OLD_FILES+=usr/share/examples/printing/if-simpleX OLD_FILES+=usr/share/examples/printing/ifhp OLD_FILES+=usr/share/examples/printing/make-ps-header OLD_FILES+=usr/share/examples/printing/netprint OLD_FILES+=usr/share/examples/printing/psdf OLD_FILES+=usr/share/examples/printing/psdfX OLD_FILES+=usr/share/examples/printing/psif OLD_FILES+=usr/share/examples/printing/pstf OLD_FILES+=usr/share/examples/printing/pstfX OLD_FILES+=usr/share/examples/scsi_target/Makefile OLD_FILES+=usr/share/examples/scsi_target/scsi_cmds.c OLD_FILES+=usr/share/examples/scsi_target/scsi_target.8 OLD_FILES+=usr/share/examples/scsi_target/scsi_target.c OLD_FILES+=usr/share/examples/scsi_target/scsi_target.h OLD_FILES+=usr/share/examples/sendmail/mailer.conf OLD_FILES+=usr/share/examples/ses/Makefile OLD_FILES+=usr/share/examples/ses/Makefile.inc OLD_FILES+=usr/share/examples/ses/getencstat/Makefile OLD_FILES+=usr/share/examples/ses/getencstat/getencstat.0 OLD_FILES+=usr/share/examples/ses/sesd/Makefile OLD_FILES+=usr/share/examples/ses/sesd/sesd.0 OLD_FILES+=usr/share/examples/ses/setencstat/Makefile OLD_FILES+=usr/share/examples/ses/setencstat/setencstat.0 OLD_FILES+=usr/share/examples/ses/setobjstat/Makefile OLD_FILES+=usr/share/examples/ses/setobjstat/setobjstat.0 OLD_FILES+=usr/share/examples/ses/srcs/chpmon.c OLD_FILES+=usr/share/examples/ses/srcs/eltsub.c OLD_FILES+=usr/share/examples/ses/srcs/eltsub.h OLD_FILES+=usr/share/examples/ses/srcs/getencstat.c OLD_FILES+=usr/share/examples/ses/srcs/getnobj.c OLD_FILES+=usr/share/examples/ses/srcs/getobjmap.c OLD_FILES+=usr/share/examples/ses/srcs/getobjstat.c OLD_FILES+=usr/share/examples/ses/srcs/inienc.c OLD_FILES+=usr/share/examples/ses/srcs/sesd.c OLD_FILES+=usr/share/examples/ses/srcs/setencstat.c OLD_FILES+=usr/share/examples/ses/srcs/setobjstat.c OLD_FILES+=usr/share/examples/smbfs/dot.nsmbrc OLD_FILES+=usr/share/examples/smbfs/print/lj6l OLD_FILES+=usr/share/examples/smbfs/print/ljspool OLD_FILES+=usr/share/examples/smbfs/print/printcap.sample OLD_FILES+=usr/share/examples/smbfs/print/tolj OLD_FILES+=usr/share/examples/sound/basic.c OLD_FILES+=usr/share/examples/sound/ossmidi.h OLD_FILES+=usr/share/examples/sound/ossinit.h OLD_FILES+=usr/share/examples/sound/README OLD_FILES+=usr/share/examples/sound/midi.c OLD_FILES+=usr/share/examples/sunrpc/Makefile OLD_FILES+=usr/share/examples/sunrpc/dir/Makefile OLD_FILES+=usr/share/examples/sunrpc/dir/dir.x OLD_FILES+=usr/share/examples/sunrpc/dir/dir_proc.c OLD_FILES+=usr/share/examples/sunrpc/dir/rls.c OLD_FILES+=usr/share/examples/sunrpc/msg/Makefile OLD_FILES+=usr/share/examples/sunrpc/msg/msg.x OLD_FILES+=usr/share/examples/sunrpc/msg/msg_proc.c OLD_FILES+=usr/share/examples/sunrpc/msg/printmsg.c OLD_FILES+=usr/share/examples/sunrpc/msg/rprintmsg.c OLD_FILES+=usr/share/examples/sunrpc/sort/Makefile OLD_FILES+=usr/share/examples/sunrpc/sort/rsort.c OLD_FILES+=usr/share/examples/sunrpc/sort/sort.x OLD_FILES+=usr/share/examples/sunrpc/sort/sort_proc.c OLD_FILES+=usr/share/examples/tcsh/complete.tcsh OLD_FILES+=usr/share/examples/tcsh/csh-mode.el OLD_FILES+=usr/share/examples/uefisign/uefikeys OLD_FILES+=usr/share/examples/ypldap/ypldap.conf OLD_DIRS+=usr/share/examples OLD_DIRS+=usr/share/examples/BSD_daemon OLD_DIRS+=usr/share/examples/FreeBSD_version OLD_DIRS+=usr/share/examples/IPv6 OLD_DIRS+=usr/share/examples/bhyve OLD_DIRS+=usr/share/examples/bootforth OLD_DIRS+=usr/share/examples/bsdconfig OLD_DIRS+=usr/share/examples/csh OLD_DIRS+=usr/share/examples/diskless OLD_DIRS+=usr/share/examples/dma OLD_DIRS+=usr/share/examples/dwatch OLD_DIRS+=usr/share/examples/etc OLD_DIRS+=usr/share/examples/etc/defaults OLD_DIRS+=usr/share/examples/find_interface OLD_DIRS+=usr/share/examples/flua OLD_DIRS+=usr/share/examples/hast OLD_DIRS+=usr/share/examples/ibcs2 OLD_DIRS+=usr/share/examples/hostapd OLD_DIRS+=usr/share/examples/indent OLD_DIRS+=usr/share/examples/inotify OLD_DIRS+=usr/share/examples/ipfilter OLD_DIRS+=usr/share/examples/ipfw OLD_DIRS+=usr/share/examples/jails OLD_DIRS+=usr/share/examples/kld OLD_DIRS+=usr/share/examples/kld/cdev OLD_DIRS+=usr/share/examples/kld/cdev/module OLD_DIRS+=usr/share/examples/kld/cdev/test OLD_DIRS+=usr/share/examples/kld/dyn_sysctl OLD_DIRS+=usr/share/examples/kld/firmware OLD_DIRS+=usr/share/examples/kld/firmware/fwconsumer OLD_DIRS+=usr/share/examples/kld/firmware/fwimage OLD_DIRS+=usr/share/examples/kld/khelp OLD_DIRS+=usr/share/examples/kld/syscall OLD_DIRS+=usr/share/examples/kld/syscall/module OLD_DIRS+=usr/share/examples/kld/syscall/test OLD_DIRS+=usr/share/examples/kyua OLD_DIRS+=usr/share/examples/libusb20 OLD_DIRS+=usr/share/examples/libvgl OLD_DIRS+=usr/share/examples/mdoc OLD_DIRS+=usr/share/examples/netgraph OLD_DIRS+=usr/share/examples/perfmon OLD_DIRS+=usr/share/examples/pf OLD_DIRS+=usr/share/examples/ppi OLD_DIRS+=usr/share/examples/ppp OLD_DIRS+=usr/share/examples/printing OLD_DIRS+=usr/share/examples/scsi_target OLD_DIRS+=usr/share/examples/sendmail OLD_DIRS+=usr/share/examples/ses OLD_DIRS+=usr/share/examples/ses/getencstat OLD_DIRS+=usr/share/examples/ses/sesd OLD_DIRS+=usr/share/examples/ses/setencstat OLD_DIRS+=usr/share/examples/ses/setobjstat OLD_DIRS+=usr/share/examples/ses/srcs OLD_DIRS+=usr/share/examples/smbfs OLD_DIRS+=usr/share/examples/smbfs/print OLD_DIRS+=usr/share/examples/sound OLD_DIRS+=usr/share/examples/sunrpc OLD_DIRS+=usr/share/examples/sunrpc/dir OLD_DIRS+=usr/share/examples/sunrpc/msg OLD_DIRS+=usr/share/examples/sunrpc/sort OLD_DIRS+=usr/share/examples/tcsh OLD_DIRS+=usr/share/examples/uefisign OLD_DIRS+=usr/share/examples/ypldap .endif .if ${MK_FDT} == no OLD_FILES+=usr/sbin/ofwdump OLD_FILES+=usr/share/man/man8/ofwdump.8.gz .endif .if ${MK_FINGER} == no OLD_FILES+=usr/bin/finger OLD_FILES+=usr/share/man/man1/finger.1.gz OLD_FILES+=usr/share/man/man5/finger.conf.5.gz OLD_FILES+=usr/libexec/fingerd OLD_FILES+=usr/share/man/man8/fingerd.8.gz .endif .if ${MK_FLOPPY} == no OLD_FILES+=usr/sbin/fdcontrol OLD_FILES+=usr/sbin/fdformat OLD_FILES+=usr/sbin/fdread OLD_FILES+=usr/sbin/fdwrite OLD_FILES+=usr/share/man/man1/fdformat.1.gz OLD_FILES+=usr/share/man/man1/fdread.1.gz OLD_FILES+=usr/share/man/man1/fdwrite.1.gz OLD_FILES+=usr/share/man/man8/fdcontrol.8.gz .endif .if ${MK_FORTH} == no OLD_FILES+=boot/beastie.4th OLD_FILES+=boot/brand-fbsd.4th OLD_FILES+=boot/brand.4th OLD_FILES+=boot/check-password.4th OLD_FILES+=boot/color.4th OLD_FILES+=boot/delay.4th OLD_FILES+=boot/efi.4th OLD_FILES+=boot/frames.4th OLD_FILES+=boot/loader_4th OLD_FILES+=boot/loader_4th.efi OLD_FILES+=boot/loader_4th.efi.old OLD_FILES+=boot/loader_4th.old OLD_FILES+=boot/loader.4th OLD_FILES+=boot/logo-beastie.4th OLD_FILES+=boot/logo-beastiebw.4th OLD_FILES+=boot/logo-fbsdbw.4th OLD_FILES+=boot/logo-orb.4th OLD_FILES+=boot/logo-orbbw.4th OLD_FILES+=boot/menu-commands.4th OLD_FILES+=boot/menu.4th OLD_FILES+=boot/menusets.4th OLD_FILES+=boot/screen.4th OLD_FILES+=boot/shortcuts.4th OLD_FILES+=boot/support.4th OLD_LIBS+=boot/userboot_4th.so OLD_FILES+=boot/version.4th OLD_FILES+=usr/share/man/man8/beastie.4th.8.gz OLD_FILES+=usr/share/man/man8/brand.4th.8.gz OLD_FILES+=usr/share/man/man8/check-password.4th.8.gz OLD_FILES+=usr/share/man/man8/color.4th.8.gz OLD_FILES+=usr/share/man/man8/delay.4th.8.gz OLD_FILES+=usr/share/man/man8/loader.4th.8.gz OLD_FILES+=usr/share/man/man8/menu.4th.8.gz OLD_FILES+=usr/share/man/man8/menusets.4th.8.gz OLD_FILES+=usr/share/man/man8/version.4th.8.gz .endif .if ${MK_FREEBSD_UPDATE} == no OLD_FILES+=etc/freebsd-update.conf OLD_FILES+=usr/sbin/freebsd-update OLD_FILES+=usr/share/examples/etc/freebsd-update.conf OLD_FILES+=usr/share/man/man5/freebsd-update.conf.5.gz OLD_FILES+=usr/share/man/man8/freebsd-update.8.gz .endif .if ${MK_FREEBSD_UPDATE} == no OLD_FILES+=usr/libexec/phttpget OLD_FILES+=usr/share/man/man8/phttpget.8.gz .endif .if ${MK_FTP} == no OLD_FILES+=etc/ftpusers OLD_FILES+=etc/newsyslog.conf.d/ftp.conf OLD_FILES+=etc/pam.d/ftp OLD_FILES+=etc/pam.d/ftpd OLD_FILES+=etc/rc.d/ftpd OLD_FILES+=etc/syslog.d/ftp.conf OLD_FILES+=usr/bin/ftp OLD_FILES+=usr/bin/gate-ftp OLD_FILES+=usr/bin/pftp OLD_FILES+=usr/libexec/ftpd OLD_FILES+=usr/share/man/man1/ftp.1.gz OLD_FILES+=usr/share/man/man1/gate-ftp.1.gz OLD_FILES+=usr/share/man/man1/pftp.1.gz OLD_FILES+=usr/share/man/man5/ftpchroot.5.gz OLD_FILES+=usr/share/man/man8/ftpd.8.gz .endif .if ${MK_GAMES} == no OLD_FILES+=usr/bin/caesar OLD_FILES+=usr/bin/factor OLD_FILES+=usr/bin/fortune OLD_FILES+=usr/bin/grdc OLD_FILES+=usr/bin/morse OLD_FILES+=usr/bin/number OLD_FILES+=usr/bin/pom OLD_FILES+=usr/bin/primes OLD_FILES+=usr/bin/random OLD_FILES+=usr/bin/rot13 OLD_FILES+=usr/bin/strfile OLD_FILES+=usr/bin/unstr OLD_FILES+=usr/share/games/fortune/fortunes OLD_FILES+=usr/share/games/fortune/fortunes.dat OLD_FILES+=usr/share/games/fortune/freebsd-tips OLD_FILES+=usr/share/games/fortune/freebsd-tips.dat OLD_FILES+=usr/share/games/fortune/gerrold.limerick OLD_FILES+=usr/share/games/fortune/gerrold.limerick.dat OLD_FILES+=usr/share/games/fortune/limerick OLD_FILES+=usr/share/games/fortune/limerick.dat OLD_FILES+=usr/share/games/fortune/murphy OLD_FILES+=usr/share/games/fortune/murphy-o OLD_FILES+=usr/share/games/fortune/murphy-o.dat OLD_FILES+=usr/share/games/fortune/murphy.dat OLD_FILES+=usr/share/games/fortune/startrek OLD_FILES+=usr/share/games/fortune/startrek.dat OLD_FILES+=usr/share/games/fortune/zippy OLD_FILES+=usr/share/games/fortune/zippy.dat OLD_DIRS+=usr/share/games/fortune OLD_DIRS+=usr/share/games OLD_FILES+=usr/share/man/man6/caesar.6.gz OLD_FILES+=usr/share/man/man6/factor.6.gz OLD_FILES+=usr/share/man/man6/fortune.6.gz OLD_FILES+=usr/share/man/man6/grdc.6.gz OLD_FILES+=usr/share/man/man6/morse.6.gz OLD_FILES+=usr/share/man/man6/number.6.gz OLD_FILES+=usr/share/man/man6/pom.6.gz OLD_FILES+=usr/share/man/man6/primes.6.gz OLD_FILES+=usr/share/man/man6/random.6.gz OLD_FILES+=usr/share/man/man6/rot13.6.gz OLD_FILES+=usr/share/man/man8/strfile.8.gz OLD_FILES+=usr/share/man/man8/unstr.8.gz .endif .if ${MK_GOOGLETEST} == no OLD_FILES+=usr/include/private/gmock/gmock-actions.h OLD_FILES+=usr/include/private/gmock/gmock-cardinalities.h OLD_FILES+=usr/include/private/gmock/gmock-function-mocker.h OLD_FILES+=usr/include/private/gmock/gmock-matchers.h OLD_FILES+=usr/include/private/gmock/gmock-more-actions.h OLD_FILES+=usr/include/private/gmock/gmock-more-matchers.h OLD_FILES+=usr/include/private/gmock/gmock-nice-strict.h OLD_FILES+=usr/include/private/gmock/gmock-spec-builders.h OLD_FILES+=usr/include/private/gmock/gmock.h OLD_FILES+=usr/include/private/gmock/internal/custom/gmock-generated-actions.h OLD_FILES+=usr/include/private/gmock/internal/custom/gmock-matchers.h OLD_FILES+=usr/include/private/gmock/internal/custom/gmock-port.h OLD_FILES+=usr/include/private/gmock/internal/gmock-internal-utils.h OLD_FILES+=usr/include/private/gmock/internal/gmock-port.h OLD_FILES+=usr/include/private/gmock/internal/gmock-pp.h OLD_FILES+=usr/include/private/gtest/gtest-assertion-result.h OLD_FILES+=usr/include/private/gtest/gtest-death-test.h OLD_FILES+=usr/include/private/gtest/gtest-matchers.h OLD_FILES+=usr/include/private/gtest/gtest-message.h OLD_FILES+=usr/include/private/gtest/gtest-param-test.h OLD_FILES+=usr/include/private/gtest/gtest-printers.h OLD_FILES+=usr/include/private/gtest/gtest-spi.h OLD_FILES+=usr/include/private/gtest/gtest-test-part.h OLD_FILES+=usr/include/private/gtest/gtest-typed-test.h OLD_FILES+=usr/include/private/gtest/gtest.h OLD_FILES+=usr/include/private/gtest/gtest_pred_impl.h OLD_FILES+=usr/include/private/gtest/gtest_prod.h OLD_FILES+=usr/include/private/gtest/internal/custom/gtest-port.h OLD_FILES+=usr/include/private/gtest/internal/custom/gtest-printers.h OLD_FILES+=usr/include/private/gtest/internal/custom/gtest.h OLD_FILES+=usr/include/private/gtest/internal/gtest-death-test-internal.h OLD_FILES+=usr/include/private/gtest/internal/gtest-filepath.h OLD_FILES+=usr/include/private/gtest/internal/gtest-internal.h OLD_FILES+=usr/include/private/gtest/internal/gtest-param-util.h OLD_FILES+=usr/include/private/gtest/internal/gtest-port-arch.h OLD_FILES+=usr/include/private/gtest/internal/gtest-port.h OLD_FILES+=usr/include/private/gtest/internal/gtest-string.h OLD_FILES+=usr/include/private/gtest/internal/gtest-type-util.h OLD_FILES+=usr/lib/libprivategmock.a OLD_FILES+=usr/lib/libprivategmock_p.a OLD_LIBS+=usr/lib/libprivategmock.so OLD_LIBS+=usr/lib/libprivategmock.so.0 OLD_FILES+=usr/lib/libprivategmock_main.a OLD_FILES+=usr/lib/libprivategmock_main_p.a OLD_LIBS+=usr/lib/libprivategmock_main.so OLD_LIBS+=usr/lib/libprivategmock_main.so.0 OLD_FILES+=usr/lib/libprivategtest.a OLD_FILES+=usr/lib/libprivategtest_p.a OLD_LIBS+=usr/lib/libprivategtest.so OLD_LIBS+=usr/lib/libprivategtest.so.0 OLD_FILES+=usr/lib/libprivategtest_main.a OLD_FILES+=usr/lib/libprivategtest_main_p.a OLD_LIBS+=usr/lib/libprivategtest_main.so OLD_LIBS+=usr/lib/libprivategtest_main.so.0 OLD_FILES+=usr/tests/lib/googletest/Kyuafile OLD_FILES+=usr/tests/lib/googletest/gmock/Kyuafile OLD_FILES+=usr/tests/lib/googletest/gmock/gmock_stress_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/Kyuafile OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-actions_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-cardinalities_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-function-mocker_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-internal-utils_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-matchers-arithmetic_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-matchers-comparisons_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-matchers-containers_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-matchers-misc_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-more-actions_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-nice-strict_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-port_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock-spec-builders_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock_ex_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock_link_test OLD_FILES+=usr/tests/lib/googletest/gmock_main/gmock_test OLD_FILES+=usr/tests/lib/googletest/gtest/Kyuafile OLD_FILES+=usr/tests/lib/googletest/gtest/googletest-param-test-test OLD_FILES+=usr/tests/lib/googletest/gtest/gtest-unittest-api_test OLD_FILES+=usr/tests/lib/googletest/gtest/gtest_environment_test OLD_FILES+=usr/tests/lib/googletest/gtest/gtest_no_test_unittest OLD_FILES+=usr/tests/lib/googletest/gtest/gtest_premature_exit_test OLD_FILES+=usr/tests/lib/googletest/gtest/gtest_repeat_test OLD_FILES+=usr/tests/lib/googletest/gtest/gtest_stress_test OLD_FILES+=usr/tests/lib/googletest/gtest/gtest_throw_on_failure_ex_test OLD_FILES+=usr/tests/lib/googletest/gtest_main/Kyuafile OLD_FILES+=usr/tests/lib/googletest/gtest_main/googletest-death-test-test OLD_FILES+=usr/tests/lib/googletest/gtest_main/googletest-filepath-test OLD_FILES+=usr/tests/lib/googletest/gtest_main/googletest-listener-test OLD_FILES+=usr/tests/lib/googletest/gtest_main/googletest-message-test OLD_FILES+=usr/tests/lib/googletest/gtest_main/googletest-options-test OLD_FILES+=usr/tests/lib/googletest/gtest_main/googletest-port-test OLD_FILES+=usr/tests/lib/googletest/gtest_main/googletest-printers-test OLD_FILES+=usr/tests/lib/googletest/gtest_main/googletest-test-part-test OLD_FILES+=usr/tests/lib/googletest/gtest_main/gtest-typed-test_test OLD_FILES+=usr/tests/lib/googletest/gtest_main/gtest_main_unittest OLD_FILES+=usr/tests/lib/googletest/gtest_main/gtest_pred_impl_unittest OLD_FILES+=usr/tests/lib/googletest/gtest_main/gtest_prod_test OLD_FILES+=usr/tests/lib/googletest/gtest_main/gtest_skip_in_environment_setup_test OLD_FILES+=usr/tests/lib/googletest/gtest_main/gtest_skip_test OLD_FILES+=usr/tests/lib/googletest/gtest_main/gtest_sole_header_test OLD_FILES+=usr/tests/lib/googletest/gtest_main/gtest_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/Kyuafile OLD_FILES+=usr/tests/share/examples/tests/googletest/sample10_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/sample1_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/sample2_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/sample3_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/sample4_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/sample5_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/sample6_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/sample7_unittest OLD_FILES+=usr/tests/share/examples/tests/googletest/sample8_unittest OLD_DIRS+=usr/include/private/gmock/ OLD_DIRS+=usr/include/private/gmock/internal OLD_DIRS+=usr/include/private/gmock/internal/custom OLD_DIRS+=usr/include/private/gtest/ OLD_DIRS+=usr/include/private/gtest/internal OLD_DIRS+=usr/include/private/gtest/internal/custom OLD_DIRS+=usr/tests/lib/googletest OLD_DIRS+=usr/tests/lib/googletest/gmock OLD_DIRS+=usr/tests/lib/googletest/gmock_main OLD_DIRS+=usr/tests/lib/googletest/gtest OLD_DIRS+=usr/tests/lib/googletest/gtest_main OLD_DIRS+=usr/tests/share/examples/tests/googletest .endif .if ${MK_GPIO} == no OLD_FILES+=usr/include/libgpio.h OLD_FILES+=usr/lib/libgpio.a OLD_FILES+=usr/lib/libgpio.so OLD_LIBS+=usr/lib/libgpio.so.0 OLD_FILES+=usr/lib/libgpio_p.a OLD_FILES+=usr/sbin/gpioctl OLD_FILES+=usr/share/man/man3/gpio.3.gz OLD_FILES+=usr/share/man/man3/gpio_close.3.gz OLD_FILES+=usr/share/man/man3/gpio_open.3.gz OLD_FILES+=usr/share/man/man3/gpio_open_device.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_config.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_get.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_high.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_input.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_invin.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_invout.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_list.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_low.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_opendrain.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_output.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_pulldown.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_pullup.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_pulsate.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_pushpull.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_set.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_set_flags.3.gz OLD_FILES+=usr/share/man/man3/gpio_pin_tristate.3.gz OLD_FILES+=usr/share/man/man8/gpioctl.8.gz .endif .if ${MK_HAST} == no OLD_FILES+=etc/rc.d/hastd OLD_FILES+=sbin/hastctl OLD_FILES+=sbin/hastd OLD_FILES+=usr/share/examples/hast/ucarp.sh OLD_FILES+=usr/share/examples/hast/ucarp_down.sh OLD_FILES+=usr/share/examples/hast/ucarp_up.sh OLD_FILES+=usr/share/examples/hast/vip-down.sh OLD_FILES+=usr/share/examples/hast/vip-up.sh OLD_FILES+=usr/share/man/man5/hast.conf.5.gz OLD_FILES+=usr/share/man/man8/hastctl.8.gz OLD_FILES+=usr/share/man/man8/hastd.8.gz OLD_DIRS+=usr/share/examples/hast # bsnmp OLD_FILES+=usr/lib/snmp_hast.so OLD_LIBS+=usr/lib/snmp_hast.so.6 OLD_FILES+=usr/share/man/man3/snmp_hast.3.gz OLD_FILES+=usr/share/snmp/defs/hast_tree.def OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-HAST-MIB.txt .endif .if ${MK_HESIOD} == no OLD_FILES+=usr/bin/hesinfo OLD_FILES+=usr/include/hesiod.h OLD_FILES+=usr/share/man/man1/hesinfo.1.gz OLD_FILES+=usr/share/man/man3/hesiod.3.gz OLD_FILES+=usr/share/man/man5/hesiod.conf.5.gz .endif .if ${MK_HTML} == no OLD_FILES+=usr/share/doc/ncurses/hackguide.html OLD_FILES+=usr/share/doc/ncurses/ncurses-intro.html OLD_DIRS+=usr/share/doc/ncurses OLD_FILES+=usr/share/doc/ntp/accopt.html OLD_FILES+=usr/share/doc/ntp/assoc.html OLD_FILES+=usr/share/doc/ntp/audio.html OLD_FILES+=usr/share/doc/ntp/authopt.html OLD_FILES+=usr/share/doc/ntp/build.html OLD_FILES+=usr/share/doc/ntp/clockopt.html OLD_FILES+=usr/share/doc/ntp/config.html OLD_FILES+=usr/share/doc/ntp/confopt.html OLD_FILES+=usr/share/doc/ntp/copyright.html OLD_FILES+=usr/share/doc/ntp/debug.html OLD_FILES+=usr/share/doc/ntp/driver1.html OLD_FILES+=usr/share/doc/ntp/driver10.html OLD_FILES+=usr/share/doc/ntp/driver11.html OLD_FILES+=usr/share/doc/ntp/driver12.html OLD_FILES+=usr/share/doc/ntp/driver16.html OLD_FILES+=usr/share/doc/ntp/driver18.html OLD_FILES+=usr/share/doc/ntp/driver19.html OLD_FILES+=usr/share/doc/ntp/driver2.html OLD_FILES+=usr/share/doc/ntp/driver20.html OLD_FILES+=usr/share/doc/ntp/driver22.html OLD_FILES+=usr/share/doc/ntp/driver26.html OLD_FILES+=usr/share/doc/ntp/driver27.html OLD_FILES+=usr/share/doc/ntp/driver28.html OLD_FILES+=usr/share/doc/ntp/driver29.html OLD_FILES+=usr/share/doc/ntp/driver3.html OLD_FILES+=usr/share/doc/ntp/driver30.html OLD_FILES+=usr/share/doc/ntp/driver32.html OLD_FILES+=usr/share/doc/ntp/driver33.html OLD_FILES+=usr/share/doc/ntp/driver34.html OLD_FILES+=usr/share/doc/ntp/driver35.html OLD_FILES+=usr/share/doc/ntp/driver36.html OLD_FILES+=usr/share/doc/ntp/driver37.html OLD_FILES+=usr/share/doc/ntp/driver4.html OLD_FILES+=usr/share/doc/ntp/driver5.html OLD_FILES+=usr/share/doc/ntp/driver6.html OLD_FILES+=usr/share/doc/ntp/driver7.html OLD_FILES+=usr/share/doc/ntp/driver8.html OLD_FILES+=usr/share/doc/ntp/driver9.html OLD_FILES+=usr/share/doc/ntp/extern.html OLD_FILES+=usr/share/doc/ntp/hints.html OLD_FILES+=usr/share/doc/ntp/howto.html OLD_FILES+=usr/share/doc/ntp/index.html OLD_FILES+=usr/share/doc/ntp/kern.html OLD_FILES+=usr/share/doc/ntp/ldisc.html OLD_FILES+=usr/share/doc/ntp/measure.html OLD_FILES+=usr/share/doc/ntp/miscopt.html OLD_FILES+=usr/share/doc/ntp/monopt.html OLD_FILES+=usr/share/doc/ntp/mx4200data.html OLD_FILES+=usr/share/doc/ntp/notes.html OLD_FILES+=usr/share/doc/ntp/ntpd.html OLD_FILES+=usr/share/doc/ntp/ntpdate.html OLD_FILES+=usr/share/doc/ntp/ntpdc.html OLD_FILES+=usr/share/doc/ntp/ntpq.html OLD_FILES+=usr/share/doc/ntp/ntptime.html OLD_FILES+=usr/share/doc/ntp/ntptrace.html OLD_FILES+=usr/share/doc/ntp/parsedata.html OLD_FILES+=usr/share/doc/ntp/parsenew.html OLD_FILES+=usr/share/doc/ntp/patches.html OLD_FILES+=usr/share/doc/ntp/porting.html OLD_FILES+=usr/share/doc/ntp/pps.html OLD_FILES+=usr/share/doc/ntp/prefer.html OLD_FILES+=usr/share/doc/ntp/quick.html OLD_FILES+=usr/share/doc/ntp/rdebug.html OLD_FILES+=usr/share/doc/ntp/refclock.html OLD_FILES+=usr/share/doc/ntp/release.html OLD_FILES+=usr/share/doc/ntp/tickadj.html .endif .if ${MK_HYPERV} == no OLD_FILES+=etc/devd/hyperv.conf OLD_FILES+=usr/libexec/hyperv/hv_set_ifconfig OLD_FILES+=usr/libexec/hyperv/hv_get_dns_info OLD_FILES+=usr/libexec/hyperv/hv_get_dhcp_info OLD_FILES+=usr/sbin/hv_kvp_daemon OLD_FILES+=usr/sbin/hv_vss_daemon OLD_FILES+=usr/share/man/man8/hv_kvp_daemon.8.gz .endif .if ${MK_ICONV} == no OLD_FILES+=usr/bin/iconv OLD_FILES+=usr/bin/mkcsmapper OLD_FILES+=usr/bin/mkesdb OLD_FILES+=usr/include/_libiconv_compat.h OLD_FILES+=usr/include/iconv.h OLD_LIBS+=usr/lib/i18n/libBIG5.so.5 OLD_FILES+=usr/lib/i18n/libBIG5.so OLD_LIBS+=usr/lib/i18n/libDECHanyu.so.5 OLD_FILES+=usr/lib/i18n/libDECHanyu.so OLD_LIBS+=usr/lib/i18n/libEUC.so.5 OLD_FILES+=usr/lib/i18n/libEUC.so OLD_LIBS+=usr/lib/i18n/libEUCTW.so.5 OLD_FILES+=usr/lib/i18n/libEUCTW.so OLD_LIBS+=usr/lib/i18n/libGBK2K.so.5 OLD_FILES+=usr/lib/i18n/libGBK2K.so OLD_LIBS+=usr/lib/i18n/libHZ.so.5 OLD_FILES+=usr/lib/i18n/libHZ.so OLD_LIBS+=usr/lib/i18n/libISO2022.so.5 OLD_FILES+=usr/lib/i18n/libISO2022.so OLD_LIBS+=usr/lib/i18n/libJOHAB.so.5 OLD_FILES+=usr/lib/i18n/libJOHAB.so OLD_LIBS+=usr/lib/i18n/libMSKanji.so.5 OLD_FILES+=usr/lib/i18n/libMSKanji.so OLD_LIBS+=usr/lib/i18n/libUES.so.5 OLD_FILES+=usr/lib/i18n/libUES.so OLD_LIBS+=usr/lib/i18n/libUTF1632.so.5 OLD_FILES+=usr/lib/i18n/libUTF1632.so OLD_LIBS+=usr/lib/i18n/libUTF7.so.5 OLD_FILES+=usr/lib/i18n/libUTF7.so OLD_LIBS+=usr/lib/i18n/libUTF8.so.5 OLD_FILES+=usr/lib/i18n/libUTF8.so OLD_LIBS+=usr/lib/i18n/libVIQR.so.5 OLD_FILES+=usr/lib/i18n/libVIQR.so OLD_LIBS+=usr/lib/i18n/libZW.so.5 OLD_FILES+=usr/lib/i18n/libZW.so OLD_LIBS+=usr/lib/i18n/libiconv_none.so.5 OLD_FILES+=usr/lib/i18n/libiconv_none.so OLD_LIBS+=usr/lib/i18n/libiconv_std.so.5 OLD_FILES+=usr/lib/i18n/libiconv_std.so OLD_LIBS+=usr/lib/i18n/libmapper_646.so.5 OLD_FILES+=usr/lib/i18n/libmapper_646.so OLD_LIBS+=usr/lib/i18n/libmapper_none.so.5 OLD_FILES+=usr/lib/i18n/libmapper_none.so OLD_LIBS+=usr/lib/i18n/libmapper_parallel.so.5 OLD_FILES+=usr/lib/i18n/libmapper_parallel.so OLD_LIBS+=usr/lib/i18n/libmapper_serial.so.5 OLD_FILES+=usr/lib/i18n/libmapper_serial.so OLD_LIBS+=usr/lib/i18n/libmapper_std.so.5 OLD_FILES+=usr/lib/i18n/libmapper_std.so OLD_LIBS+=usr/lib/i18n/libmapper_zone.so.5 OLD_FILES+=usr/lib/i18n/libmapper_zone.so OLD_FILES+=usr/share/man/man1/iconv.1.gz OLD_FILES+=usr/share/man/man1/mkcsmapper.1.gz OLD_FILES+=usr/share/man/man1/mkesdb.1.gz OLD_FILES+=usr/share/man/man3/__iconv.3.gz OLD_FILES+=usr/share/man/man3/__iconv_free_list.3.gz OLD_FILES+=usr/share/man/man3/__iconv_get_list.3.gz OLD_FILES+=usr/share/man/man3/iconv.3.gz OLD_FILES+=usr/share/man/man3/iconv_canonicalize.3.gz OLD_FILES+=usr/share/man/man3/iconv_close.3.gz OLD_FILES+=usr/share/man/man3/iconv_open.3.gz OLD_FILES+=usr/share/man/man3/iconv_open_into.3.gz OLD_FILES+=usr/share/man/man3/iconvctl.3.gz OLD_FILES+=usr/share/man/man3/iconvlist.3.gz OLD_DIRS+=usr/lib/i18n OLD_DIRS+=usr/share/i18n OLD_DIRS+=usr/share/i18n/esdb OLD_DIRS+=usr/share/i18n/esdb/ISO-2022 OLD_DIRS+=usr/share/i18n/esdb/BIG5 OLD_DIRS+=usr/share/i18n/esdb/MISC OLD_DIRS+=usr/share/i18n/esdb/TCVN OLD_DIRS+=usr/share/i18n/esdb/EBCDIC OLD_DIRS+=usr/share/i18n/esdb/ISO-8859 OLD_DIRS+=usr/share/i18n/esdb/GEORGIAN OLD_DIRS+=usr/share/i18n/esdb/AST OLD_DIRS+=usr/share/i18n/esdb/KAZAKH OLD_DIRS+=usr/share/i18n/esdb/APPLE OLD_DIRS+=usr/share/i18n/esdb/EUC OLD_DIRS+=usr/share/i18n/esdb/CP OLD_DIRS+=usr/share/i18n/esdb/DEC OLD_DIRS+=usr/share/i18n/esdb/UTF OLD_DIRS+=usr/share/i18n/esdb/GB OLD_DIRS+=usr/share/i18n/esdb/ISO646 OLD_DIRS+=usr/share/i18n/esdb/KOI OLD_DIRS+=usr/share/i18n/csmapper OLD_DIRS+=usr/share/i18n/csmapper/KAZAKH OLD_DIRS+=usr/share/i18n/csmapper/CNS OLD_DIRS+=usr/share/i18n/csmapper/BIG5 OLD_DIRS+=usr/share/i18n/csmapper/JIS OLD_DIRS+=usr/share/i18n/csmapper/KOI OLD_DIRS+=usr/share/i18n/csmapper/TCVN OLD_DIRS+=usr/share/i18n/csmapper/MISC OLD_DIRS+=usr/share/i18n/csmapper/EBCDIC OLD_DIRS+=usr/share/i18n/csmapper/ISO646 OLD_DIRS+=usr/share/i18n/csmapper/CP OLD_DIRS+=usr/share/i18n/csmapper/GEORGIAN OLD_DIRS+=usr/share/i18n/csmapper/ISO-8859 OLD_DIRS+=usr/share/i18n/csmapper/AST OLD_DIRS+=usr/share/i18n/csmapper/APPLE OLD_DIRS+=usr/share/i18n/csmapper/KS OLD_DIRS+=usr/share/i18n/csmapper/GB .endif .if ${MK_INET} == no && ${MK_INET6} == no OLD_FILES+=sbin/ping OLD_FILES+=usr/share/man/man8/ping.8.gz .endif .if ${MK_INET6} == no OLD_FILES+=sbin/ping6 OLD_FILES+=sbin/rtsol OLD_FILES+=usr/sbin/ip6addrctl OLD_FILES+=usr/sbin/mld6query OLD_FILES+=usr/sbin/ndp OLD_FILES+=usr/sbin/rip6query OLD_FILES+=usr/sbin/route6d OLD_FILES+=usr/sbin/rrenumd OLD_FILES+=usr/sbin/rtadvctl OLD_FILES+=usr/sbin/rtadvd OLD_FILES+=usr/sbin/rtsold OLD_FILES+=usr/sbin/traceroute6 OLD_FILES+=usr/share/doc/IPv6/IMPLEMENTATION OLD_FILES+=usr/share/man/man5/rrenumd.conf.5.gz OLD_FILES+=usr/share/man/man5/rtadvd.conf.5.gz OLD_FILES+=usr/share/man/man8/ip6addrctl.8.gz OLD_FILES+=usr/share/man/man8/mld6query.8.gz OLD_FILES+=usr/share/man/man8/ndp.8.gz OLD_FILES+=usr/share/man/man8/rip6query.8.gz OLD_FILES+=usr/share/man/man8/route6d.8.gz OLD_FILES+=usr/share/man/man8/rrenumd.8.gz OLD_FILES+=usr/share/man/man8/rtadvctl.8.gz OLD_FILES+=usr/share/man/man8/rtadvd.8.gz OLD_FILES+=usr/share/man/man8/rtsol.8.gz OLD_FILES+=usr/share/man/man8/rtsold.8.gz OLD_FILES+=usr/share/man/man8/traceroute6.8.gz .endif .if ${MK_INET6_SUPPORT} == no OLD_FILES+=rescue/ping6 OLD_FILES+=rescue/rtsol .endif .if ${MK_INETD} == no OLD_FILES+=etc/inetd.conf OLD_FILES+=etc/rc.d/inetd OLD_FILES+=usr/sbin/inetd OLD_FILES+=usr/share/man/man5/inetd.conf.5.gz OLD_FILES+=usr/share/man/man8/inetd.8.gz .endif .if ${MK_IPFILTER} == no OLD_FILES+=etc/periodic/security/510.ipfdenied OLD_FILES+=etc/periodic/security/610.ipf6denied OLD_FILES+=etc/rc.d/ipfilter OLD_FILES+=etc/rc.d/ipfs OLD_FILES+=etc/rc.d/ipmon OLD_FILES+=etc/rc.d/ipnat OLD_FILES+=etc/rc.d/ippool OLD_FILES+=rescue/ipf OLD_FILES+=sbin/ipf OLD_FILES+=sbin/ipfs OLD_FILES+=sbin/ipfstat OLD_FILES+=sbin/ipftest OLD_FILES+=sbin/ipmon OLD_FILES+=sbin/ipnat OLD_FILES+=sbin/ippool OLD_FILES+=sbin/ipresend OLD_FILES+=usr/include/netinet/ip_auth.h OLD_FILES+=usr/include/netinet/ip_compat.h OLD_FILES+=usr/include/netinet/ip_fil.h OLD_FILES+=usr/include/netinet/ip_frag.h OLD_FILES+=usr/include/netinet/ip_htable.h OLD_FILES+=usr/include/netinet/ip_lookup.h OLD_FILES+=usr/include/netinet/ip_nat.h OLD_FILES+=usr/include/netinet/ip_pool.h OLD_FILES+=usr/include/netinet/ip_proxy.h OLD_FILES+=usr/include/netinet/ip_rules.h OLD_FILES+=usr/include/netinet/ip_scan.h OLD_FILES+=usr/include/netinet/ip_state.h OLD_FILES+=usr/include/netinet/ip_sync.h OLD_FILES+=usr/include/netinet/ipl.h OLD_FILES+=usr/share/examples/ipfilter/README OLD_FILES+=usr/share/examples/ipfilter/BASIC.NAT OLD_FILES+=usr/share/examples/ipfilter/BASIC_1.FW OLD_FILES+=usr/share/examples/ipfilter/BASIC_2.FW OLD_FILES+=usr/share/examples/ipfilter/example.1 OLD_FILES+=usr/share/examples/ipfilter/example.2 OLD_FILES+=usr/share/examples/ipfilter/example.3 OLD_FILES+=usr/share/examples/ipfilter/example.4 OLD_FILES+=usr/share/examples/ipfilter/example.5 OLD_FILES+=usr/share/examples/ipfilter/example.6 OLD_FILES+=usr/share/examples/ipfilter/example.7 OLD_FILES+=usr/share/examples/ipfilter/example.8 OLD_FILES+=usr/share/examples/ipfilter/example.9 OLD_FILES+=usr/share/examples/ipfilter/example.10 OLD_FILES+=usr/share/examples/ipfilter/example.11 OLD_FILES+=usr/share/examples/ipfilter/example.12 OLD_FILES+=usr/share/examples/ipfilter/example.13 OLD_FILES+=usr/share/examples/ipfilter/example.sr OLD_FILES+=usr/share/examples/ipfilter/firewall OLD_FILES+=usr/share/examples/ipfilter/ftp-proxy OLD_FILES+=usr/share/examples/ipfilter/ftppxy OLD_FILES+=usr/share/examples/ipfilter/nat-setup OLD_FILES+=usr/share/examples/ipfilter/nat.eg OLD_FILES+=usr/share/examples/ipfilter/server OLD_FILES+=usr/share/examples/ipfilter/tcpstate OLD_FILES+=usr/share/examples/ipfilter/example.14 OLD_FILES+=usr/share/examples/ipfilter/firewall.1 OLD_FILES+=usr/share/examples/ipfilter/firewall.2 OLD_FILES+=usr/share/examples/ipfilter/ipf.conf.permissive OLD_FILES+=usr/share/examples/ipfilter/ipf.conf.restrictive OLD_FILES+=usr/share/examples/ipfilter/ipf.conf.sample OLD_FILES+=usr/share/examples/ipfilter/ipnat.conf.sample OLD_FILES+=usr/share/examples/ipfilter/ipf-howto.txt OLD_FILES+=usr/share/examples/ipfilter/examples.txt OLD_FILES+=usr/share/examples/ipfilter/rules.txt OLD_FILES+=usr/share/examples/ipfilter/mkfilters OLD_DIRS+=usr/share/examples/ipfilter OLD_FILES+=usr/share/man/man1/ipftest.1.gz OLD_FILES+=usr/share/man/man1/ipresend.1.gz OLD_FILES+=usr/share/man/man4/ipf.4.gz OLD_FILES+=usr/share/man/man4/ipl.4.gz OLD_FILES+=usr/share/man/man4/ipfilter.4.gz OLD_FILES+=usr/share/man/man4/ipnat.4.gz OLD_FILES+=usr/share/man/man5/ipf.5.gz OLD_FILES+=usr/share/man/man5/ipf.conf.5.gz OLD_FILES+=usr/share/man/man5/ipf6.conf.5.gz OLD_FILES+=usr/share/man/man5/ipfilter.5.gz OLD_FILES+=usr/share/man/man8/ipmon.5.gz OLD_FILES+=usr/share/man/man5/ipmon.conf.5.gz OLD_FILES+=usr/share/man/man5/ipnat.5.gz OLD_FILES+=usr/share/man/man5/ipnat.conf.5.gz OLD_FILES+=usr/share/man/man5/ippool.5.gz OLD_FILES+=usr/share/man/man8/ipf.8.gz OLD_FILES+=usr/share/man/man8/ipfs.8.gz OLD_FILES+=usr/share/man/man8/ipfstat.8.gz OLD_FILES+=usr/share/man/man8/ipmon.8.gz OLD_FILES+=usr/share/man/man8/ipnat.8.gz OLD_FILES+=usr/share/man/man8/ippool.8.gz .endif .if ${MK_IPFW} == no OLD_FILES+=etc/rc.d/ipfw OLD_FILES+=etc/rc.d/natd OLD_FILES+=etc/periodic/security/500.ipfwdenied OLD_FILES+=etc/periodic/security/550.ipfwlimit OLD_FILES+=sbin/ipfw OLD_FILES+=sbin/natd OLD_FILES+=usr/sbin/ipfwpcap OLD_FILES+=usr/share/man/man8/ipfw.8.gz OLD_FILES+=usr/share/man/man8/ipfwpcap.8.gz OLD_FILES+=usr/share/man/man8/natd.8.gz .endif .if ${MK_ISCSI} == no OLD_FILES+=etc/rc.d/iscsictl OLD_FILES+=etc/rc.d/iscsid OLD_FILES+=rescue/iscsictl OLD_FILES+=rescue/iscsid OLD_FILES+=usr/bin/iscsictl OLD_FILES+=usr/sbin/iscsid OLD_FILES+=usr/share/man/man4/iscsi.4.gz OLD_FILES+=usr/share/man/man5/iscsi.conf.5.gz OLD_FILES+=usr/share/man/man8/iscsictl.8.gz OLD_FILES+=usr/share/man/man8/iscsid.8.gz .endif .if ${MK_JAIL} == no OLD_FILES+=etc/rc.d/jail OLD_FILES+=usr/sbin/jail OLD_FILES+=usr/sbin/jexec OLD_FILES+=usr/sbin/jls OLD_FILES+=usr/share/man/man5/jail.conf.5.gz OLD_FILES+=usr/share/man/man8/jail.8.gz OLD_FILES+=usr/share/man/man8/jexec.8.gz OLD_FILES+=usr/share/man/man8/jls.8.gz .endif .if ${MK_KDUMP} == no OLD_FILES+=usr/bin/kdump OLD_FILES+=usr/bin/truss OLD_FILES+=usr/share/man/man1/kdump.1.gz OLD_FILES+=usr/share/man/man1/truss.1.gz .endif .if ${MK_KERBEROS_SUPPORT} == "no" OLD_FILES+=etc/rc.d/gssd OLD_FILES+=usr/sbin/gssd OLD_FILES+=usr/share/man/man8/gssd.8.gz .endif # Kerberos files which are installed by both Heimdal and MIT. These should # only be removed if Kerberos is disabled entirely. .if ${MK_KERBEROS} == "no" OLD_FILES+=usr/bin/compile_et OLD_FILES+=usr/share/man/man1/compile_et.1.gz # This is kadmin(1) in MIT but kadmin(8) in Heimdal, therefore the manpage # is not listed here. OLD_FILES+=usr/bin/kadmin OLD_FILES+=usr/bin/kdestroy OLD_FILES+=usr/share/man/man1/kdestroy.1.gz OLD_FILES+=usr/bin/kinit OLD_FILES+=usr/share/man/man1/kinit.1.gz OLD_FILES+=usr/bin/klist OLD_FILES+=usr/share/man/man1/klist.1.gz OLD_FILES+=usr/bin/kpasswd OLD_FILES+=usr/share/man/man1/kpasswd.1.gz OLD_FILES+=usr/bin/krb5-config OLD_FILES+=usr/share/man/man1/krb5-config.1.gz OLD_FILES+=usr/bin/kswitch OLD_FILES+=usr/share/man/man1/kswitch.1.gz # MIT has a manpage for this, Heimdal does not. OLD_FILES+=usr/bin/ksu OLD_FILES+=usr/include/com_err.h OLD_FILES+=usr/include/gssapi.h OLD_FILES+=usr/include/gssapi/gssapi.h OLD_FILES+=usr/include/gssapi/gssapi_krb5.h OLD_FILES+=usr/include/kadm5/admin.h OLD_FILES+=usr/include/krb5.h OLD_FILES+=usr/include/krb5/locate_plugin.h OLD_FILES+=usr/lib/libcom_err.a OLD_FILES+=usr/lib/libcom_err.so OLD_FILES+=usr/lib/libgssapi_krb5.a OLD_FILES+=usr/lib/libgssapi_krb5.so OLD_FILES+=usr/lib/libkadm5clnt.so OLD_FILES+=usr/lib/libkrb5.a OLD_FILES+=usr/lib/libkrb5.so OLD_FILES+=usr/lib/librpcsec_gss.a OLD_FILES+=usr/lib/librpcsec_gss.so OLD_LIBS+=usr/lib/librpcsec_gss.so.1 OLD_FILES+=usr/lib/pam_krb5.so OLD_LIBS+=usr/lib/pam_krb5.so.6 OLD_FILES+=usr/share/man/man8/pam_krb5.8.gz OLD_FILES+=usr/lib/pam_ksu.so OLD_LIBS+=usr/lib/pam_ksu.so.6 OLD_FILES+=usr/share/man/man8/pam_ksu.8.gz OLD_FILES+=usr/libexec/kadmind OLD_FILES+=usr/share/man/man8/kadmind.8.gz OLD_FILES+=usr/share/man/man3/com_err.3.gz OLD_FILES+=usr/share/man/man3/rpcsec_gss.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_get_error.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_get_mech_info.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_get_mechanisms.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_get_principal_name.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_get_versions.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_getcred.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_is_installed.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_max_data_length.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_mech_to_oid.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_oid_to_mech.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_qop_to_num.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_seccreate.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_set_callback.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_set_defaults.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_set_svc_name.3.gz OLD_FILES+=usr/share/man/man3/rpc_gss_svc_max_data_length.3.gz OLD_FILES+=usr/share/man/man5/krb5.conf.5.gz .endif # ${MK_KERBEROS} == "no" # Heimdal-specific files that don't exist in MIT Kerberos. These should be # removed if Kerberos is disabled, or if MIT Kerberos is selected. .if ${MK_KERBEROS} == "no" || ${MK_MITKRB5} != "no" # compile_et is a binary in Heimdal, but a shell script in MIT Kerberos. # When switching from Heimdal to MIT, we need to remove the debug symbols # explicitly. OLD_FILES+=usr/lib/debug/usr/bin/compile_et.debug OLD_FILES+=usr/bin/asn1_compile OLD_FILES+=usr/bin/hxtool OLD_FILES+=usr/bin/kcc OLD_FILES+=usr/bin/kf OLD_FILES+=usr/bin/kgetcred OLD_FILES+=usr/bin/make-roken OLD_FILES+=usr/bin/slc OLD_FILES+=usr/bin/string2key OLD_FILES+=usr/bin/verify_krb5_conf OLD_FILES+=usr/include/asn1-common.h OLD_FILES+=usr/include/asn1_err.h OLD_FILES+=usr/include/base64.h OLD_FILES+=usr/include/cms_asn1.h OLD_FILES+=usr/include/com_right.h OLD_FILES+=usr/include/crmf_asn1.h OLD_FILES+=usr/include/der-private.h OLD_FILES+=usr/include/der-protos.h OLD_FILES+=usr/include/der.h OLD_FILES+=usr/include/digest_asn1.h OLD_FILES+=usr/include/getarg.h OLD_FILES+=usr/include/hdb-protos.h OLD_FILES+=usr/include/hdb.h OLD_FILES+=usr/include/hdb_asn1.h OLD_FILES+=usr/include/hdb_err.h OLD_FILES+=usr/include/heim_asn1.h OLD_FILES+=usr/include/heim_err.h OLD_FILES+=usr/include/heim_threads.h OLD_FILES+=usr/include/heimbase.h OLD_FILES+=usr/include/heimntlm-protos.h OLD_FILES+=usr/include/heimntlm.h OLD_FILES+=usr/include/hex.h OLD_FILES+=usr/include/hx509-private.h OLD_FILES+=usr/include/hx509-protos.h OLD_FILES+=usr/include/hx509.h OLD_FILES+=usr/include/hx509_err.h OLD_FILES+=usr/include/k524_err.h OLD_FILES+=usr/include/kadm5/kadm5-private.h OLD_FILES+=usr/include/kadm5/kadm5-protos.h OLD_FILES+=usr/include/kadm5/kadm5-pwcheck.h OLD_FILES+=usr/include/kadm5/kadm5_err.h OLD_FILES+=usr/include/kadm5/private.h OLD_FILES+=usr/include/kafs.h OLD_FILES+=usr/include/kdc-protos.h OLD_FILES+=usr/include/kdc.h OLD_FILES+=usr/include/krb5-private.h OLD_FILES+=usr/include/krb5-protos.h OLD_FILES+=usr/include/krb5-types.h OLD_FILES+=usr/include/krb5/ccache_plugin.h OLD_FILES+=usr/include/krb5/send_to_kdc_plugin.h OLD_FILES+=usr/include/krb5/windc_plugin.h OLD_FILES+=usr/include/krb5_asn1.h OLD_FILES+=usr/include/krb5_ccapi.h OLD_FILES+=usr/include/krb5_err.h OLD_FILES+=usr/include/kx509_asn1.h OLD_FILES+=usr/include/ntlm_err.h OLD_FILES+=usr/include/ocsp_asn1.h OLD_FILES+=usr/include/parse_bytes.h OLD_FILES+=usr/include/parse_time.h OLD_FILES+=usr/include/parse_units.h OLD_FILES+=usr/include/pkcs10_asn1.h OLD_FILES+=usr/include/pkcs12_asn1.h OLD_FILES+=usr/include/pkcs8_asn1.h OLD_FILES+=usr/include/pkcs9_asn1.h OLD_FILES+=usr/include/pkinit_asn1.h OLD_FILES+=usr/include/resolve.h OLD_FILES+=usr/include/rfc2459_asn1.h OLD_FILES+=usr/include/roken-common.h OLD_FILES+=usr/include/roken.h OLD_FILES+=usr/include/rtbl.h OLD_FILES+=usr/include/wind.h OLD_FILES+=usr/include/wind_err.h OLD_FILES+=usr/include/xdbm.h OLD_FILES+=usr/lib/libasn1.a OLD_FILES+=usr/lib/libasn1.so OLD_FILES+=usr/lib/libgssapi.a OLD_FILES+=usr/lib/libgssapi.so OLD_FILES+=usr/lib/libgssapi_ntlm.a OLD_FILES+=usr/lib/libgssapi_ntlm.so OLD_FILES+=usr/lib/libgssapi_spnego.a OLD_FILES+=usr/lib/libgssapi_spnego.so OLD_FILES+=usr/lib/libhdb.a OLD_FILES+=usr/lib/libhdb.so OLD_FILES+=usr/lib/libheimbase.a OLD_FILES+=usr/lib/libheimbase.so OLD_FILES+=usr/lib/libheimntlm.a OLD_FILES+=usr/lib/libheimntlm.so OLD_FILES+=usr/lib/libhx509.a OLD_FILES+=usr/lib/libhx509.so OLD_FILES+=usr/lib/libkadm5clnt.a OLD_FILES+=usr/lib/libkadm5srv.a OLD_FILES+=usr/lib/libkadm5srv.so OLD_FILES+=usr/lib/libkafs5.a OLD_FILES+=usr/lib/libkafs5.so OLD_FILES+=usr/lib/libkdc.a OLD_FILES+=usr/lib/libkdc.so OLD_FILES+=usr/lib/libprivateheimipcc.a OLD_FILES+=usr/lib/libprivateheimipcc.so OLD_FILES+=usr/lib/libprivateheimipcs.a OLD_FILES+=usr/lib/libprivateheimipcs.so OLD_FILES+=usr/lib/libroken.a OLD_FILES+=usr/lib/libroken.so OLD_FILES+=usr/lib/libwind.a OLD_FILES+=usr/lib/libwind.so OLD_FILES+=usr/libexec/digest-service OLD_FILES+=usr/libexec/hprop OLD_FILES+=usr/libexec/hpropd OLD_FILES+=usr/libexec/ipropd-master OLD_FILES+=usr/libexec/ipropd-slave OLD_FILES+=usr/libexec/kcm OLD_FILES+=usr/libexec/kdc OLD_FILES+=usr/libexec/kdigest OLD_FILES+=usr/libexec/kfd OLD_FILES+=usr/libexec/kimpersonate OLD_FILES+=usr/libexec/kpasswdd OLD_FILES+=usr/sbin/iprop-log OLD_FILES+=usr/sbin/kstash OLD_FILES+=usr/sbin/ktutil OLD_FILES+=usr/share/man/man1/kf.1.gz OLD_FILES+=usr/share/man/man1/kgetcred.1.gz OLD_FILES+=usr/share/man/man3/HDB.3.gz OLD_FILES+=usr/share/man/man3/gss_accept_sec_context.3.gz OLD_FILES+=usr/share/man/man3/gss_acquire_cred.3.gz OLD_FILES+=usr/share/man/man3/gss_add_cred.3.gz OLD_FILES+=usr/share/man/man3/gss_add_oid_set_member.3.gz OLD_FILES+=usr/share/man/man3/gss_canonicalize_name.3.gz OLD_FILES+=usr/share/man/man3/gss_compare_name.3.gz OLD_FILES+=usr/share/man/man3/gss_context_time.3.gz OLD_FILES+=usr/share/man/man3/gss_create_empty_oid_set.3.gz OLD_FILES+=usr/share/man/man3/gss_delete_sec_context.3.gz OLD_FILES+=usr/share/man/man3/gss_display_name.3.gz OLD_FILES+=usr/share/man/man3/gss_display_status.3.gz OLD_FILES+=usr/share/man/man3/gss_duplicate_name.3.gz OLD_FILES+=usr/share/man/man3/gss_export_name.3.gz OLD_FILES+=usr/share/man/man3/gss_export_sec_context.3.gz OLD_FILES+=usr/share/man/man3/gss_get_mic.3.gz OLD_FILES+=usr/share/man/man3/gss_import_name.3.gz OLD_FILES+=usr/share/man/man3/gss_import_sec_context.3.gz OLD_FILES+=usr/share/man/man3/gss_indicate_mechs.3.gz OLD_FILES+=usr/share/man/man3/gss_init_sec_context.3.gz OLD_FILES+=usr/share/man/man3/gss_inquire_context.3.gz OLD_FILES+=usr/share/man/man3/gss_inquire_cred.3.gz OLD_FILES+=usr/share/man/man3/gss_inquire_cred_by_mech.3.gz OLD_FILES+=usr/share/man/man3/gss_inquire_mechs_for_name.3.gz OLD_FILES+=usr/share/man/man3/gss_inquire_names_for_mech.3.gz OLD_FILES+=usr/share/man/man3/gss_process_context_token.3.gz OLD_FILES+=usr/share/man/man3/gss_release_buffer.3.gz OLD_FILES+=usr/share/man/man3/gss_release_cred.3.gz OLD_FILES+=usr/share/man/man3/gss_release_name.3.gz OLD_FILES+=usr/share/man/man3/gss_release_oid_set.3.gz OLD_FILES+=usr/share/man/man3/gss_seal.3.gz OLD_FILES+=usr/share/man/man3/gss_sign.3.gz OLD_FILES+=usr/share/man/man3/gss_test_oid_set_member.3.gz OLD_FILES+=usr/share/man/man3/gss_unseal.3.gz OLD_FILES+=usr/share/man/man3/gss_unwrap.3.gz OLD_FILES+=usr/share/man/man3/gss_verify.3.gz OLD_FILES+=usr/share/man/man3/gss_verify_mic.3.gz OLD_FILES+=usr/share/man/man3/gss_wrap.3.gz OLD_FILES+=usr/share/man/man3/gss_wrap_size_limit.3.gz OLD_FILES+=usr/share/man/man3/gssapi.3.gz OLD_FILES+=usr/share/man/man3/hdb__del.3.gz OLD_FILES+=usr/share/man/man3/hdb__get.3.gz OLD_FILES+=usr/share/man/man3/hdb__put.3.gz OLD_FILES+=usr/share/man/man3/hdb_auth_status.3.gz OLD_FILES+=usr/share/man/man3/hdb_check_constrained_delegation.3.gz OLD_FILES+=usr/share/man/man3/hdb_check_pkinit_ms_upn_match.3.gz OLD_FILES+=usr/share/man/man3/hdb_check_s4u2self.3.gz OLD_FILES+=usr/share/man/man3/hdb_close.3.gz OLD_FILES+=usr/share/man/man3/hdb_destroy.3.gz OLD_FILES+=usr/share/man/man3/hdb_entry_ex.3.gz OLD_FILES+=usr/share/man/man3/hdb_fetch_kvno.3.gz OLD_FILES+=usr/share/man/man3/hdb_firstkey.3.gz OLD_FILES+=usr/share/man/man3/hdb_free.3.gz OLD_FILES+=usr/share/man/man3/hdb_get_realms.3.gz OLD_FILES+=usr/share/man/man3/hdb_lock.3.gz OLD_FILES+=usr/share/man/man3/hdb_name.3.gz OLD_FILES+=usr/share/man/man3/hdb_nextkey.3.gz OLD_FILES+=usr/share/man/man3/hdb_open.3.gz OLD_FILES+=usr/share/man/man3/hdb_password.3.gz OLD_FILES+=usr/share/man/man3/hdb_remove.3.gz OLD_FILES+=usr/share/man/man3/hdb_rename.3.gz OLD_FILES+=usr/share/man/man3/hdb_store.3.gz OLD_FILES+=usr/share/man/man3/hdb_unlock.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_build_ntlm1_master.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_build_ntlm2_master.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_calculate_lm2.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_calculate_ntlm1.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_calculate_ntlm2.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_decode_targetinfo.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_encode_targetinfo.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_encode_type1.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_encode_type2.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_encode_type3.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_free_buf.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_free_targetinfo.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_free_type1.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_free_type2.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_free_type3.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_keyex_unwrap.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_nt_key.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_ntlmv2_key.3.gz OLD_FILES+=usr/share/man/man3/heim_ntlm_verify_ntlm2.3.gz OLD_FILES+=usr/share/man/man3/hx509.3.gz OLD_FILES+=usr/share/man/man3/hx509_bitstring_print.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_sign.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_sign_self.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_crl_dp_uri.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_eku.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_hostname.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_jid.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_ms_upn.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_otherName.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_pkinit.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_rfc822name.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_init.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_ca.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_domaincontroller.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_notAfter.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_notAfter_lifetime.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_notBefore.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_proxy.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_serialnumber.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_spki.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_subject.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_template.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_unique.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_subject_expand.3.gz OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_template_units.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_binary.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_check_eku.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_cmp.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_find_subjectAltName_otherName.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_SPKI.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_SPKI_AlgorithmIdentifier.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_attribute.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_base_subject.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_friendly_name.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_issuer.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_issuer_unique_id.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_notAfter.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_notBefore.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_serialnumber.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_subject.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_get_subject_unique_id.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_init.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_init_data.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_keyusage_print.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_ref.3.gz OLD_FILES+=usr/share/man/man3/hx509_cert_set_friendly_name.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_add.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_append.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_end_seq.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_filter.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_find.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_info.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_init.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_iter_f.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_merge.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_next_cert.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_start_seq.3.gz OLD_FILES+=usr/share/man/man3/hx509_certs_store.3.gz OLD_FILES+=usr/share/man/man3/hx509_ci_print_names.3.gz OLD_FILES+=usr/share/man/man3/hx509_clear_error_string.3.gz OLD_FILES+=usr/share/man/man3/hx509_cms.3.gz OLD_FILES+=usr/share/man/man3/hx509_cms_create_signed_1.3.gz OLD_FILES+=usr/share/man/man3/hx509_cms_envelope_1.3.gz OLD_FILES+=usr/share/man/man3/hx509_cms_unenvelope.3.gz OLD_FILES+=usr/share/man/man3/hx509_cms_unwrap_ContentInfo.3.gz OLD_FILES+=usr/share/man/man3/hx509_cms_verify_signed.3.gz OLD_FILES+=usr/share/man/man3/hx509_cms_wrap_ContentInfo.3.gz OLD_FILES+=usr/share/man/man3/hx509_context_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_context_init.3.gz OLD_FILES+=usr/share/man/man3/hx509_context_set_missing_revoke.3.gz OLD_FILES+=usr/share/man/man3/hx509_crl_add_revoked_certs.3.gz OLD_FILES+=usr/share/man/man3/hx509_crl_alloc.3.gz OLD_FILES+=usr/share/man/man3/hx509_crl_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_crl_lifetime.3.gz OLD_FILES+=usr/share/man/man3/hx509_crl_sign.3.gz OLD_FILES+=usr/share/man/man3/hx509_crypto.3.gz OLD_FILES+=usr/share/man/man3/hx509_env.3.gz OLD_FILES+=usr/share/man/man3/hx509_env_add.3.gz OLD_FILES+=usr/share/man/man3/hx509_env_add_binding.3.gz OLD_FILES+=usr/share/man/man3/hx509_env_find.3.gz OLD_FILES+=usr/share/man/man3/hx509_env_find_binding.3.gz OLD_FILES+=usr/share/man/man3/hx509_env_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_env_lfind.3.gz OLD_FILES+=usr/share/man/man3/hx509_err.3.gz OLD_FILES+=usr/share/man/man3/hx509_error.3.gz OLD_FILES+=usr/share/man/man3/hx509_free_error_string.3.gz OLD_FILES+=usr/share/man/man3/hx509_free_octet_string_list.3.gz OLD_FILES+=usr/share/man/man3/hx509_general_name_unparse.3.gz OLD_FILES+=usr/share/man/man3/hx509_get_error_string.3.gz OLD_FILES+=usr/share/man/man3/hx509_get_one_cert.3.gz OLD_FILES+=usr/share/man/man3/hx509_keyset.3.gz OLD_FILES+=usr/share/man/man3/hx509_lock.3.gz OLD_FILES+=usr/share/man/man3/hx509_misc.3.gz OLD_FILES+=usr/share/man/man3/hx509_name.3.gz OLD_FILES+=usr/share/man/man3/hx509_name_binary.3.gz OLD_FILES+=usr/share/man/man3/hx509_name_cmp.3.gz OLD_FILES+=usr/share/man/man3/hx509_name_copy.3.gz OLD_FILES+=usr/share/man/man3/hx509_name_expand.3.gz OLD_FILES+=usr/share/man/man3/hx509_name_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_name_is_null_p.3.gz OLD_FILES+=usr/share/man/man3/hx509_name_to_Name.3.gz OLD_FILES+=usr/share/man/man3/hx509_name_to_string.3.gz OLD_FILES+=usr/share/man/man3/hx509_ocsp_request.3.gz OLD_FILES+=usr/share/man/man3/hx509_ocsp_verify.3.gz OLD_FILES+=usr/share/man/man3/hx509_oid_print.3.gz OLD_FILES+=usr/share/man/man3/hx509_oid_sprint.3.gz OLD_FILES+=usr/share/man/man3/hx509_parse_name.3.gz OLD_FILES+=usr/share/man/man3/hx509_peer.3.gz OLD_FILES+=usr/share/man/man3/hx509_peer_info_add_cms_alg.3.gz OLD_FILES+=usr/share/man/man3/hx509_peer_info_alloc.3.gz OLD_FILES+=usr/share/man/man3/hx509_peer_info_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_peer_info_set_cert.3.gz OLD_FILES+=usr/share/man/man3/hx509_peer_info_set_cms_algs.3.gz OLD_FILES+=usr/share/man/man3/hx509_print.3.gz OLD_FILES+=usr/share/man/man3/hx509_print_cert.3.gz OLD_FILES+=usr/share/man/man3/hx509_print_stdout.3.gz OLD_FILES+=usr/share/man/man3/hx509_query.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_alloc.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_match_cmp_func.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_match_eku.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_match_friendly_name.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_match_issuer_serial.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_match_option.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_statistic_file.3.gz OLD_FILES+=usr/share/man/man3/hx509_query_unparse_stats.3.gz OLD_FILES+=usr/share/man/man3/hx509_revoke.3.gz OLD_FILES+=usr/share/man/man3/hx509_revoke_add_crl.3.gz OLD_FILES+=usr/share/man/man3/hx509_revoke_add_ocsp.3.gz OLD_FILES+=usr/share/man/man3/hx509_revoke_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_revoke_init.3.gz OLD_FILES+=usr/share/man/man3/hx509_revoke_ocsp_print.3.gz OLD_FILES+=usr/share/man/man3/hx509_revoke_verify.3.gz OLD_FILES+=usr/share/man/man3/hx509_set_error_string.3.gz OLD_FILES+=usr/share/man/man3/hx509_set_error_stringv.3.gz OLD_FILES+=usr/share/man/man3/hx509_unparse_der_name.3.gz OLD_FILES+=usr/share/man/man3/hx509_validate_cert.3.gz OLD_FILES+=usr/share/man/man3/hx509_validate_ctx_add_flags.3.gz OLD_FILES+=usr/share/man/man3/hx509_validate_ctx_free.3.gz OLD_FILES+=usr/share/man/man3/hx509_validate_ctx_init.3.gz OLD_FILES+=usr/share/man/man3/hx509_validate_ctx_set_print.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_attach_anchors.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_attach_revoke.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_ctx_f_allow_default_trustanchors.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_destroy_ctx.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_hostname.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_init_ctx.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_path.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_set_max_depth.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_set_proxy_certificate.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_set_strict_rfc3280_verification.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_set_time.3.gz OLD_FILES+=usr/share/man/man3/hx509_verify_signature.3.gz OLD_FILES+=usr/share/man/man3/hx509_xfree.3.gz OLD_FILES+=usr/share/man/man3/k_afs_cell_of_file.3.gz OLD_FILES+=usr/share/man/man3/k_hasafs.3.gz OLD_FILES+=usr/share/man/man3/k_pioctl.3.gz OLD_FILES+=usr/share/man/man3/k_setpag.3.gz OLD_FILES+=usr/share/man/man3/k_unlog.3.gz OLD_FILES+=usr/share/man/man3/kadm5_pwcheck.3.gz OLD_FILES+=usr/share/man/man3/kafs.3.gz OLD_FILES+=usr/share/man/man3/kafs5.3.gz OLD_FILES+=usr/share/man/man3/kafs_set_verbose.3.gz OLD_FILES+=usr/share/man/man3/kafs_settoken.3.gz OLD_FILES+=usr/share/man/man3/kafs_settoken5.3.gz OLD_FILES+=usr/share/man/man3/kafs_settoken_rxkad.3.gz OLD_FILES+=usr/share/man/man3/krb5.3.gz OLD_FILES+=usr/share/man/man3/krb524_convert_creds_kdc.3.gz OLD_FILES+=usr/share/man/man3/krb524_convert_creds_kdc_ccache.3.gz OLD_FILES+=usr/share/man/man3/krb5_425_conv_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_425_conv_principal_ext.3.gz OLD_FILES+=usr/share/man/man3/krb5_524_conv_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_acc_ops.3.gz OLD_FILES+=usr/share/man/man3/krb5_acl_match_file.3.gz OLD_FILES+=usr/share/man/man3/krb5_acl_match_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_add_et_list.3.gz OLD_FILES+=usr/share/man/man3/krb5_add_extra_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_add_ignore_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_addlog_dest.3.gz OLD_FILES+=usr/share/man/man3/krb5_addlog_func.3.gz OLD_FILES+=usr/share/man/man3/krb5_addr2sockaddr.3.gz OLD_FILES+=usr/share/man/man3/krb5_address.3.gz OLD_FILES+=usr/share/man/man3/krb5_address_compare.3.gz OLD_FILES+=usr/share/man/man3/krb5_address_order.3.gz OLD_FILES+=usr/share/man/man3/krb5_address_prefixlen_boundary.3.gz OLD_FILES+=usr/share/man/man3/krb5_address_search.3.gz OLD_FILES+=usr/share/man/man3/krb5_afslog.3.gz OLD_FILES+=usr/share/man/man3/krb5_afslog_uid.3.gz OLD_FILES+=usr/share/man/man3/krb5_allow_weak_crypto.3.gz OLD_FILES+=usr/share/man/man3/krb5_aname_to_localname.3.gz OLD_FILES+=usr/share/man/man3/krb5_anyaddr.3.gz OLD_FILES+=usr/share/man/man3/krb5_appdefault.3.gz OLD_FILES+=usr/share/man/man3/krb5_appdefault_boolean.3.gz OLD_FILES+=usr/share/man/man3/krb5_appdefault_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_appdefault_time.3.gz OLD_FILES+=usr/share/man/man3/krb5_append_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_genaddrs.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_getaddrs.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_getflags.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_getkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_getlocalsubkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_getrcache.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_getremotesubkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_getuserkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_init.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_initivector.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setaddrs.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setaddrs_from_fd.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setflags.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setivector.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setlocalsubkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setrcache.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setremotesubkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_con_setuserkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_context.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_getauthenticator.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_getcksumtype.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_getkeytype.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_getlocalseqnumber.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_getremoteseqnumber.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_setcksumtype.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_setkeytype.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_setlocalseqnumber.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_setremoteseqnumber.3.gz OLD_FILES+=usr/share/man/man3/krb5_build_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_build_principal_ext.3.gz OLD_FILES+=usr/share/man/man3/krb5_build_principal_va.3.gz OLD_FILES+=usr/share/man/man3/krb5_build_principal_va_ext.3.gz OLD_FILES+=usr/share/man/man3/krb5_c_enctype_compare.3.gz OLD_FILES+=usr/share/man/man3/krb5_c_make_checksum.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_cache_end_seq_get.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_cache_get_first.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_cache_match.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_cache_next.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_clear_mcred.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_close.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_copy_cache.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_copy_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_copy_match_f.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_default_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_destroy.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_end_seq_get.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_gen_new.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_config.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_friendly_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_full_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_kdc_offset.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_lifetime.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_ops.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_prefix_ops.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_type.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_get_version.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_initialize.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_last_change_time.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_move.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_new_unique.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_next_cred.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_register.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_remove_cred.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_resolve.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_retrieve_cred.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_set_config.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_set_default_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_set_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_set_friendly_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_set_kdc_offset.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_start_seq_get.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_store_cred.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_support_switch.3.gz OLD_FILES+=usr/share/man/man3/krb5_cc_switch.3.gz OLD_FILES+=usr/share/man/man3/krb5_ccache.3.gz OLD_FILES+=usr/share/man/man3/krb5_ccache_intro.3.gz OLD_FILES+=usr/share/man/man3/krb5_cccol_cursor_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_cccol_cursor_new.3.gz OLD_FILES+=usr/share/man/man3/krb5_cccol_cursor_next.3.gz OLD_FILES+=usr/share/man/man3/krb5_cccol_last_change_time.3.gz OLD_FILES+=usr/share/man/man3/krb5_change_password.3.gz OLD_FILES+=usr/share/man/man3/krb5_check_transited.3.gz OLD_FILES+=usr/share/man/man3/krb5_checksum_is_collision_proof.3.gz OLD_FILES+=usr/share/man/man3/krb5_checksum_is_keyed.3.gz OLD_FILES+=usr/share/man/man3/krb5_checksumsize.3.gz OLD_FILES+=usr/share/man/man3/krb5_cksumtype_to_enctype.3.gz OLD_FILES+=usr/share/man/man3/krb5_clear_error_message.3.gz OLD_FILES+=usr/share/man/man3/krb5_clear_error_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_closelog.3.gz OLD_FILES+=usr/share/man/man3/krb5_compare_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_file_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_free_strings.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_get_bool.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_get_bool_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_get_list.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_get_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_get_string_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_get_strings.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_get_time.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_get_time_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_parse_file_multi.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_parse_string_multi.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_vget_bool.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_vget_bool_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_vget_list.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_vget_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_vget_string_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_vget_strings.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_vget_time.3.gz OLD_FILES+=usr/share/man/man3/krb5_config_vget_time_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_address.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_context.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_creds_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_data.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_host_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_keyblock.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_keyblock_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_copy_ticket.3.gz OLD_FILES+=usr/share/man/man3/krb5_create_checksum.3.gz OLD_FILES+=usr/share/man/man3/krb5_create_checksum_iov.3.gz OLD_FILES+=usr/share/man/man3/krb5_credential.3.gz OLD_FILES+=usr/share/man/man3/krb5_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_creds_get_ticket_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto_destroy.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto_fx_cf2.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto_getblocksize.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto_getconfoundersize.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto_getenctype.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto_getpadsize.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto_init.3.gz OLD_FILES+=usr/share/man/man3/krb5_crypto_iov.3.gz OLD_FILES+=usr/share/man/man3/krb5_data_alloc.3.gz OLD_FILES+=usr/share/man/man3/krb5_data_cmp.3.gz OLD_FILES+=usr/share/man/man3/krb5_data_copy.3.gz OLD_FILES+=usr/share/man/man3/krb5_data_ct_cmp.3.gz OLD_FILES+=usr/share/man/man3/krb5_data_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_data_realloc.3.gz OLD_FILES+=usr/share/man/man3/krb5_data_zero.3.gz OLD_FILES+=usr/share/man/man3/krb5_decrypt.3.gz OLD_FILES+=usr/share/man/man3/krb5_decrypt_EncryptedData.3.gz OLD_FILES+=usr/share/man/man3/krb5_decrypt_iov_ivec.3.gz OLD_FILES+=usr/share/man/man3/krb5_deprecated.3.gz OLD_FILES+=usr/share/man/man3/krb5_digest.3.gz OLD_FILES+=usr/share/man/man3/krb5_digest_probe.3.gz OLD_FILES+=usr/share/man/man3/krb5_eai_to_heim_errno.3.gz OLD_FILES+=usr/share/man/man3/krb5_encrypt.3.gz OLD_FILES+=usr/share/man/man3/krb5_encrypt_EncryptedData.3.gz OLD_FILES+=usr/share/man/man3/krb5_encrypt_iov_ivec.3.gz OLD_FILES+=usr/share/man/man3/krb5_enctype_disable.3.gz OLD_FILES+=usr/share/man/man3/krb5_enctype_enable.3.gz OLD_FILES+=usr/share/man/man3/krb5_enctype_valid.3.gz OLD_FILES+=usr/share/man/man3/krb5_enctypes_compatible_keys.3.gz OLD_FILES+=usr/share/man/man3/krb5_error.3.gz OLD_FILES+=usr/share/man/man3/krb5_expand_hostname.3.gz OLD_FILES+=usr/share/man/man3/krb5_expand_hostname_realms.3.gz OLD_FILES+=usr/share/man/man3/krb5_fcc_ops.3.gz OLD_FILES+=usr/share/man/man3/krb5_fileformats.3.gz OLD_FILES+=usr/share/man/man3/krb5_find_padata.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_address.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_config_files.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_context.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_cred_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_creds_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_data.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_data_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_error_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_host_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_keyblock.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_keyblock_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_krbhst.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_ticket.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_unparsed_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_fwd_tgt_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_generate_random_block.3.gz OLD_FILES+=usr/share/man/man3/krb5_generate_subkey.3.gz OLD_FILES+=usr/share/man/man3/krb5_generate_subkey_extended.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_all_client_addrs.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_all_server_addrs.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_cred_from_kdc.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_cred_from_kdc_opt.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_credentials.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_default_config_files.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_default_in_tkt_etypes.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_default_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_default_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_default_realms.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_dns_canonicalize_hostname.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_extra_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_fcache_version.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_forwarded_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_host_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_ignore_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_in_cred.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_in_tkt_with_keytab.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_in_tkt_with_password.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_in_tkt_with_skey.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_init_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_keyblock.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_keytab.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_opt_alloc.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_opt_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_opt_get_error.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_opt_init.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_password.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_kdc_sec_offset.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_krb524hst.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_krb_admin_hst.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_krb_changepw_hst.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_krbhst.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_max_time_skew.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_use_admin_kdc.3.gz OLD_FILES+=usr/share/man/man3/krb5_get_validated_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_getportbyname.3.gz OLD_FILES+=usr/share/man/man3/krb5_h_addr2addr.3.gz OLD_FILES+=usr/share/man/man3/krb5_h_addr2sockaddr.3.gz OLD_FILES+=usr/share/man/man3/krb5_h_errno_to_heim_errno.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_context.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_get.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_get_error.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_init.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_intro.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_set_keytab.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_set_password.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_set_service.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_creds_step.3.gz OLD_FILES+=usr/share/man/man3/krb5_init_ets.3.gz OLD_FILES+=usr/share/man/man3/krb5_initlog.3.gz OLD_FILES+=usr/share/man/man3/krb5_introduction.3.gz OLD_FILES+=usr/share/man/man3/krb5_is_config_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_is_thread_safe.3.gz OLD_FILES+=usr/share/man/man3/krb5_kerberos_enctypes.3.gz OLD_FILES+=usr/share/man/man3/krb5_keyblock_get_enctype.3.gz OLD_FILES+=usr/share/man/man3/krb5_keyblock_init.3.gz OLD_FILES+=usr/share/man/man3/krb5_keyblock_zero.3.gz OLD_FILES+=usr/share/man/man3/krb5_keytab.3.gz OLD_FILES+=usr/share/man/man3/krb5_keytab_intro.3.gz OLD_FILES+=usr/share/man/man3/krb5_keytab_key_proc.3.gz OLD_FILES+=usr/share/man/man3/krb5_keytype_to_enctypes.3.gz OLD_FILES+=usr/share/man/man3/krb5_keytype_to_enctypes_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_keytype_to_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_format_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_get_addrinfo.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_init.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_next.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_next_as_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_reset.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_add_entry.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_close.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_compare.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_copy_entry_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_default_modify_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_default_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_destroy.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_end_seq_get.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_free_entry.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_get_entry.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_get_full_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_get_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_get_type.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_have_content.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_next_entry.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_read_service_key.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_register.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_remove_entry.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_resolve.3.gz OLD_FILES+=usr/share/man/man3/krb5_kt_start_seq_get.3.gz OLD_FILES+=usr/share/man/man3/krb5_kuserok.3.gz OLD_FILES+=usr/share/man/man3/krb5_log.3.gz OLD_FILES+=usr/share/man/man3/krb5_log_msg.3.gz OLD_FILES+=usr/share/man/man3/krb5_make_addrport.3.gz OLD_FILES+=usr/share/man/man3/krb5_make_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_max_sockaddr_size.3.gz OLD_FILES+=usr/share/man/man3/krb5_mcc_ops.3.gz OLD_FILES+=usr/share/man/man3/krb5_mk_req.3.gz OLD_FILES+=usr/share/man/man3/krb5_mk_safe.3.gz OLD_FILES+=usr/share/man/man3/krb5_openlog.3.gz OLD_FILES+=usr/share/man/man3/krb5_pac.3.gz OLD_FILES+=usr/share/man/man3/krb5_pac_get_buffer.3.gz OLD_FILES+=usr/share/man/man3/krb5_pac_verify.3.gz OLD_FILES+=usr/share/man/man3/krb5_parse_address.3.gz OLD_FILES+=usr/share/man/man3/krb5_parse_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_parse_name_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_parse_nametype.3.gz OLD_FILES+=usr/share/man/man3/krb5_password_key_proc.3.gz OLD_FILES+=usr/share/man/man3/krb5_plugin_register.3.gz OLD_FILES+=usr/share/man/man3/krb5_prepend_config_files_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_princ_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_princ_set_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_compare.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_compare_any_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_get_comp_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_get_num_comp.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_get_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_get_type.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_intro.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_is_krbtgt.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_match.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_set_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_set_type.3.gz OLD_FILES+=usr/share/man/man3/krb5_print_address.3.gz OLD_FILES+=usr/share/man/man3/krb5_random_to_key.3.gz OLD_FILES+=usr/share/man/man3/krb5_rcache.3.gz OLD_FILES+=usr/share/man/man3/krb5_rd_error.3.gz OLD_FILES+=usr/share/man/man3/krb5_rd_req_ctx.3.gz OLD_FILES+=usr/share/man/man3/krb5_rd_req_in_ctx_alloc.3.gz OLD_FILES+=usr/share/man/man3/krb5_rd_req_in_set_keytab.3.gz OLD_FILES+=usr/share/man/man3/krb5_rd_req_in_set_pac_check.3.gz OLD_FILES+=usr/share/man/man3/krb5_rd_req_out_ctx_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_rd_req_out_get_server.3.gz OLD_FILES+=usr/share/man/man3/krb5_rd_safe.3.gz OLD_FILES+=usr/share/man/man3/krb5_realm_compare.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_address.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_addrs.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_authdata.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_creds_tag.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_data.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_int16.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_int32.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_int8.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_keyblock.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_stringz.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_times.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_uint16.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_uint32.3.gz OLD_FILES+=usr/share/man/man3/krb5_ret_uint8.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_config_files.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_default_in_tkt_etypes.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_default_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_dns_canonicalize_hostname.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_error_message.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_error_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_extra_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_fcache_version.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_home_dir_access.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_ignore_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_kdc_sec_offset.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_max_time_skew.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_password.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_real_time.3.gz OLD_FILES+=usr/share/man/man3/krb5_set_use_admin_kdc.3.gz OLD_FILES+=usr/share/man/man3/krb5_sname_to_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_sock_to_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_sockaddr2address.3.gz OLD_FILES+=usr/share/man/man3/krb5_sockaddr2port.3.gz OLD_FILES+=usr/share/man/man3/krb5_sockaddr_uninteresting.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_clear_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_emem.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_from_data.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_from_fd.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_from_mem.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_from_readonly_mem.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_get_byteorder.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_get_eof_code.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_is_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_read.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_seek.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_set_byteorder.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_set_eof_code.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_set_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_set_max_alloc.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_to_data.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_truncate.3.gz OLD_FILES+=usr/share/man/man3/krb5_storage_write.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_address.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_addrs.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_authdata.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_creds_tag.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_data.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_int16.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_int32.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_int8.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_keyblock.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_stringz.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_times.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_uint16.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_uint32.3.gz OLD_FILES+=usr/share/man/man3/krb5_store_uint8.3.gz OLD_FILES+=usr/share/man/man3/krb5_string_to_key.3.gz OLD_FILES+=usr/share/man/man3/krb5_string_to_keytype.3.gz OLD_FILES+=usr/share/man/man3/krb5_support.3.gz OLD_FILES+=usr/share/man/man3/krb5_ticket.3.gz OLD_FILES+=usr/share/man/man3/krb5_ticket_get_authorization_data_type.3.gz OLD_FILES+=usr/share/man/man3/krb5_ticket_get_client.3.gz OLD_FILES+=usr/share/man/man3/krb5_ticket_get_endtime.3.gz OLD_FILES+=usr/share/man/man3/krb5_ticket_get_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_ticket_get_server.3.gz OLD_FILES+=usr/share/man/man3/krb5_timeofday.3.gz OLD_FILES+=usr/share/man/man3/krb5_unparse_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_unparse_name_fixed.3.gz OLD_FILES+=usr/share/man/man3/krb5_unparse_name_fixed_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_unparse_name_fixed_short.3.gz OLD_FILES+=usr/share/man/man3/krb5_unparse_name_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_unparse_name_short.3.gz OLD_FILES+=usr/share/man/man3/krb5_us_timeofday.3.gz OLD_FILES+=usr/share/man/man3/krb5_v4compat.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_checksum.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_checksum_iov.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_init_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_opt_init.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_opt_set_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_opt_set_keytab.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_opt_set_secure.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_opt_set_service.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_user.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_user_lrealm.3.gz OLD_FILES+=usr/share/man/man3/krb5_verify_user_opt.3.gz OLD_FILES+=usr/share/man/man3/krb5_vlog.3.gz OLD_FILES+=usr/share/man/man3/krb5_vlog_msg.3.gz OLD_FILES+=usr/share/man/man3/krb5_vset_error_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_vwarn.3.gz OLD_FILES+=usr/share/man/man3/krb_afslog.3.gz OLD_FILES+=usr/share/man/man3/krb_afslog_uid.3.gz OLD_FILES+=usr/share/man/man3/ntlm_buf.3.gz OLD_FILES+=usr/share/man/man3/ntlm_core.3.gz OLD_FILES+=usr/share/man/man3/ntlm_type1.3.gz OLD_FILES+=usr/share/man/man3/ntlm_type2.3.gz OLD_FILES+=usr/share/man/man3/ntlm_type3.3.gz OLD_FILES+=usr/share/man/man5/mech.5.gz OLD_FILES+=usr/share/man/man5/qop.5.gz OLD_FILES+=usr/share/man/man8/hprop.8.gz OLD_FILES+=usr/share/man/man8/hpropd.8.gz OLD_FILES+=usr/share/man/man8/iprop-log.8.gz OLD_FILES+=usr/share/man/man8/iprop.8.gz OLD_FILES+=usr/share/man/man8/kadmin.8.gz OLD_FILES+=usr/share/man/man8/kcm.8.gz OLD_FILES+=usr/share/man/man8/kdc.8.gz OLD_FILES+=usr/share/man/man8/kdigest.8.gz OLD_FILES+=usr/share/man/man8/kerberos.8.gz OLD_FILES+=usr/share/man/man8/kfd.8.gz OLD_FILES+=usr/share/man/man8/kimpersonate.8.gz OLD_FILES+=usr/share/man/man8/kpasswdd.8.gz OLD_FILES+=usr/share/man/man8/kstash.8.gz OLD_FILES+=usr/share/man/man8/ktutil.8.gz OLD_FILES+=usr/share/man/man8/string2key.8.gz OLD_FILES+=usr/share/man/man8/verify_krb5_conf.8.gz OLD_LIBS+=usr/lib/libasn1.so.11 OLD_LIBS+=usr/lib/libcom_err.so.5 OLD_LIBS+=usr/lib/libgssapi.so.10 OLD_LIBS+=usr/lib/libgssapi_krb5.so.10 OLD_LIBS+=usr/lib/libgssapi_ntlm.so.10 OLD_LIBS+=usr/lib/libgssapi_spnego.so.10 OLD_LIBS+=usr/lib/libheimbase.so.11 OLD_LIBS+=usr/lib/libheimntlm.so.11 OLD_LIBS+=usr/lib/libhx509.so.11 OLD_LIBS+=usr/lib/libhdb.so.11 OLD_LIBS+=usr/lib/libkadm5clnt.so.11 OLD_LIBS+=usr/lib/libkadm5srv.so.11 OLD_LIBS+=usr/lib/libkafs5.so.11 OLD_LIBS+=usr/lib/libkdc.so.11 OLD_LIBS+=usr/lib/libkrb5.so.11 OLD_LIBS+=usr/lib/libprivateheimipcc.so.11 OLD_LIBS+=usr/lib/libprivateheimipcs.so.11 OLD_LIBS+=usr/lib/libroken.so.11 OLD_LIBS+=usr/lib/libwind.so.11 .endif # ${MK_KERBEROS} == "no" || ${MK_MITKRB5} != "no" # MIT-specific files that don't exist in Heimdal. These should be removed if # Kerberos is disabled, or if Heimdal is selected. .if ${MK_KERBEROS} == "no" || ${MK_MITKRB5} == "no" OLD_DIRS+=usr/lib/debug/usr/lib/krb5/plugins/kdb OLD_DIRS+=usr/lib/debug/usr/lib/krb5/plugins/preauth OLD_DIRS+=usr/lib/debug/usr/lib/krb5/plugins/tls OLD_DIRS+=usr/lib/debug/usr/lib/krb5/plugins OLD_DIRS+=usr/lib/debug/usr/lib/krb5 # Heimdal doesn't install debug symbols for these. OLD_FILES+=usr/lib/debug/usr/bin/klist.debug OLD_FILES+=usr/lib/debug/usr/bin/kswitch.debug OLD_FILES+=usr/bin/gss-client OLD_FILES+=usr/bin/k5srvutil OLD_FILES+=usr/bin/ktutil OLD_FILES+=usr/bin/kvno OLD_FILES+=usr/bin/sclient OLD_FILES+=usr/include/gssapi/gssapi_alloc.h OLD_FILES+=usr/include/gssapi/gssapi_ext.h OLD_FILES+=usr/include/gssapi/gssapi_generic.h OLD_FILES+=usr/include/gssapi/mechglue.h OLD_FILES+=usr/include/gssrpc/auth.h OLD_FILES+=usr/include/gssrpc/auth_gss.h OLD_FILES+=usr/include/gssrpc/auth_gssapi.h OLD_FILES+=usr/include/gssrpc/auth_unix.h OLD_FILES+=usr/include/gssrpc/clnt.h OLD_FILES+=usr/include/gssrpc/netdb.h OLD_FILES+=usr/include/gssrpc/pmap_clnt.h OLD_FILES+=usr/include/gssrpc/pmap_prot.h OLD_FILES+=usr/include/gssrpc/pmap_rmt.h OLD_FILES+=usr/include/gssrpc/rename.h OLD_FILES+=usr/include/gssrpc/rpc.h OLD_FILES+=usr/include/gssrpc/rpc_msg.h OLD_FILES+=usr/include/gssrpc/svc.h OLD_FILES+=usr/include/gssrpc/svc_auth.h OLD_FILES+=usr/include/gssrpc/types.h OLD_FILES+=usr/include/gssrpc/xdr.h OLD_FILES+=usr/include/kadm5/chpass_util_strings.h OLD_FILES+=usr/include/kadm5/kadm_err.h OLD_FILES+=usr/include/kdb.h OLD_FILES+=usr/include/krad.h OLD_FILES+=usr/include/krb5/ccselect_plugin.h OLD_FILES+=usr/include/krb5/certauth_plugin.h OLD_FILES+=usr/include/krb5/clpreauth_plugin.h OLD_FILES+=usr/include/krb5/gssapi_err_generic.h OLD_FILES+=usr/include/krb5/gssapi_err_krb5.h OLD_FILES+=usr/include/krb5/hostrealm_plugin.h OLD_FILES+=usr/include/krb5/kadm5_auth_plugin.h OLD_FILES+=usr/include/krb5/kadm5_hook_plugin.h OLD_FILES+=usr/include/krb5/kdcpolicy_plugin.h OLD_FILES+=usr/include/krb5/kdcpreauth_plugin.h OLD_FILES+=usr/include/krb5/krb5.h OLD_FILES+=usr/include/krb5/localauth_plugin.h OLD_FILES+=usr/include/krb5/plugin.h OLD_FILES+=usr/include/krb5/preauth_plugin.h OLD_FILES+=usr/include/krb5/pwqual_plugin.h OLD_FILES+=usr/include/profile.h OLD_FILES+=usr/include/verto-module.h OLD_FILES+=usr/include/verto.h OLD_FILES+=usr/lib/krb5/plugins/kdb/db2.so OLD_FILES+=usr/lib/krb5/plugins/kdb/db2.so.122 OLD_FILES+=usr/lib/krb5/plugins/preauth/otp.so OLD_FILES+=usr/lib/krb5/plugins/preauth/otp.so.122 OLD_FILES+=usr/lib/krb5/plugins/preauth/pkinit.so OLD_FILES+=usr/lib/krb5/plugins/preauth/pkinit.so.122 OLD_FILES+=usr/lib/krb5/plugins/preauth/spake.so OLD_FILES+=usr/lib/krb5/plugins/preauth/spake.so.122 OLD_FILES+=usr/lib/krb5/plugins/preauth/test.so OLD_FILES+=usr/lib/krb5/plugins/preauth/test.so.122 OLD_FILES+=usr/lib/krb5/plugins/tls/k5tls.so OLD_FILES+=usr/lib/krb5/plugins/tls/k5tls.so.122 OLD_FILES+=usr/lib/libgssrpc.a OLD_FILES+=usr/lib/libgssrpc.so OLD_FILES+=usr/lib/libk5crypto.a OLD_FILES+=usr/lib/libk5crypto.so OLD_FILES+=usr/lib/libkadm5clnt_mit.a OLD_FILES+=usr/lib/libkadm5clnt_mit.so OLD_FILES+=usr/lib/libkadm5srv_mit.a OLD_FILES+=usr/lib/libkadm5srv_mit.so OLD_FILES+=usr/lib/libkdb5.a OLD_FILES+=usr/lib/libkdb5.so OLD_FILES+=usr/lib/libkrad.a OLD_FILES+=usr/lib/libkrad.so OLD_FILES+=usr/lib/libkrb5profile.a OLD_FILES+=usr/lib/libkrb5profile.so OLD_FILES+=usr/lib/libkrb5support.a OLD_FILES+=usr/lib/libkrb5support.so OLD_FILES+=usr/lib/libverto.a OLD_FILES+=usr/lib/libverto.so OLD_FILES+=usr/libdata/pkgconfig/gssrpc.pc OLD_FILES+=usr/libdata/pkgconfig/kadm-server.pc OLD_FILES+=usr/libdata/pkgconfig/kadm-client.pc OLD_FILES+=usr/libdata/pkgconfig/kdb.pc OLD_FILES+=usr/libdata/pkgconfig/krb5-gssapi.pc OLD_FILES+=usr/libdata/pkgconfig/krb5.pc OLD_FILES+=usr/libdata/pkgconfig/mit-krb5.pc OLD_FILES+=usr/libdata/pkgconfig/mit-krb5-gssapi.pc OLD_FILES+=usr/libexec/kprop OLD_FILES+=usr/libexec/kpropd OLD_FILES+=usr/libexec/kproplog OLD_FILES+=usr/libexec/krb5kdc OLD_FILES+=usr/sbin/gss-server OLD_FILES+=usr/sbin/kadmin.local OLD_FILES+=usr/sbin/kdb5_util OLD_FILES+=usr/sbin/sim_server OLD_FILES+=usr/share/et/et_h.awk OLD_FILES+=usr/share/et/et_c.awk OLD_FILES+=usr/share/man/man1/k5srvutil.1.gz OLD_FILES+=usr/share/man/man1/kadmin.1.gz OLD_FILES+=usr/share/man/man1/ksu.1.gz OLD_FILES+=usr/share/man/man1/ktutil.1.gz OLD_FILES+=usr/share/man/man1/kvno.1.gz OLD_FILES+=usr/share/man/man1/sclient.1.gz OLD_FILES+=usr/share/man/man5/.k5identity.5.gz OLD_FILES+=usr/share/man/man5/.k5login.5.gz OLD_FILES+=usr/share/man/man5/k5identity.5.gz OLD_FILES+=usr/share/man/man5/k5login.5.gz OLD_FILES+=usr/share/man/man5/kadm5.acl.5.gz OLD_FILES+=usr/share/man/man5/kdc.conf.5.gz OLD_FILES+=usr/share/man/man7/kerberos.7.gz OLD_FILES+=usr/share/man/man8/kadmin.local.8.gz OLD_FILES+=usr/share/man/man8/kdb5_util.8.gz OLD_FILES+=usr/share/man/man8/kprop.8.gz OLD_FILES+=usr/share/man/man8/kpropd.8.gz OLD_FILES+=usr/share/man/man8/kproplog.8.gz OLD_FILES+=usr/share/man/man8/krb5kdc.8.gz OLD_FILES+=usr/share/man/man8/pam-krb5.8.gz OLD_LIBS+=usr/lib/libcom_err.so.122 OLD_LIBS+=usr/lib/libgssapi_krb5.so.122 OLD_LIBS+=usr/lib/libgssrpc.so.122 OLD_LIBS+=usr/lib/libk5crypto.so.122 OLD_LIBS+=usr/lib/libkadm5clnt_mit.so.122 OLD_LIBS+=usr/lib/libkadm5srv_mit.so.122 OLD_LIBS+=usr/lib/libkdb5.so.122 OLD_LIBS+=usr/lib/libkrad.so.122 OLD_LIBS+=usr/lib/libkrb5.so.122 OLD_LIBS+=usr/lib/libkrb5profile.so.122 OLD_LIBS+=usr/lib/libkrb5support.so.122 OLD_LIBS+=usr/lib/libverto.so.122 .endif # ${MK_KERBEROS} == "no" || ${MK_MITKRB5} == "no" .if ${MK_LDNS} == no OLD_FILES+=usr/lib/libprivateldns.a OLD_FILES+=usr/lib/libprivateldns.so OLD_LIBS+=usr/lib/libprivateldns.so.5 OLD_FILES+=usr/lib/libprivateldns_p.a .endif .if ${MK_LDNS_UTILS} == no OLD_FILES+=usr/bin/drill OLD_FILES+=usr/share/man/man1/drill.1.gz OLD_FILES+=usr/bin/host OLD_FILES+=usr/share/man/man1/host.1.gz .endif .if ${MK_LEGACY_CONSOLE} == no +OLD_FILES+=etc/moused.conf OLD_FILES+=etc/rc.d/moused +OLD_FILES+=etc/rc.d/msconvd OLD_FILES+=etc/rc.d/syscons OLD_FILES+=usr/sbin/kbdcontrol OLD_FILES+=usr/sbin/kbdmap OLD_FILES+=usr/sbin/moused +OLD_FILES+=usr/sbin/msconvd OLD_FILES+=usr/sbin/vidcontrol OLD_FILES+=usr/sbin/vidfont OLD_FILES+=usr/share/man/man1/kbdcontrol.1.gz OLD_FILES+=usr/share/man/man1/kbdmap.1.gz OLD_FILES+=usr/share/man/man1/vidcontrol.1.gz OLD_FILES+=usr/share/man/man1/vidfont.1.gz OLD_FILES+=usr/share/man/man5/kbdmap.5.gz OLD_FILES+=usr/share/man/man5/keymap.5.gz +OLD_FILES+=usr/share/man/man5/moused.conf.5.gz OLD_FILES+=usr/share/man/man8/moused.8.gz +OLD_FILES+=usr/share/man/man8/msconvd.8.gz +OLD_FILES+=usr/share/moused/5-generic-touchpad.quirks +OLD_DIRS+=usr/share/moused .endif .for LIBCOMPAT libcompat in ${_ALL_LIBCOMPATS_libcompats} . if ${MK_LIB${LIBCOMPAT}} == no OLD_FILES+=etc/mtree/BSD.lib${libcompat}.dist OLD_FILES+=libexec/ld-elf${libcompat}.so.1 . if exists(${DESTDIR}/usr/lib${libcompat}) LIB${LIBCOMPAT}_DIRS!=find ${DESTDIR}/usr/lib${libcompat} -type d \ | sed -e 's,^${DESTDIR}/,,'; echo LIB${LIBCOMPAT}_FILES!=find ${DESTDIR}/usr/lib${libcompat} \! -type d \ \! -name "lib*.so*" | sed -e 's,^${DESTDIR}/,,'; echo LIB${LIBCOMPAT}_LIBS!=find ${DESTDIR}/usr/lib${libcompat} \! -type d \ -name "lib*.so*" | sed -e 's,^${DESTDIR}/,,'; echo OLD_DIRS+=${LIB${LIBCOMPAT}_DIRS} OLD_FILES+=${LIB${LIBCOMPAT}_FILES} OLD_LIBS+=${LIB${LIBCOMPAT}_LIBS} . endif . if ${MK_DEBUG_FILES} == no . if exists(${DESTDIR}/usr/lib/debug/usr/lib${libcompat}) DEBUG_LIB${LIBCOMPAT}_DIRS!=find ${DESTDIR}/usr/lib/debug/usr/lib${libcompat} -type d \ | sed -e 's,^${DESTDIR}/,,'; echo DEBUG_LIB${LIBCOMPAT}_FILES!=find ${DESTDIR}/usr/lib/debug/usr/lib${libcompat} \! -type d \ \! -name "lib*.so*" | sed -e 's,^${DESTDIR}/,,'; echo DEBUG_LIB${LIBCOMPAT}_LIBS!=find ${DESTDIR}/usr/lib/debug/usr/lib${libcompat} \! -type d \ -name "lib*.so*" | sed -e 's,^${DESTDIR}/,,'; echo OLD_DIRS+=${DEBUG_LIB${LIBCOMPAT}_DIRS} OLD_FILES+=${DEBUG_LIB${LIBCOMPAT}_FILES} OLD_LIBS+=${DEBUG_LIB${LIBCOMPAT}_LIBS} . endif . endif .endif .endfor # LIBCOMPAT libcompat .if ${MK_LLD} == no OLD_FILES+=usr/bin/ld.lld .endif .if ${MK_LLDB} == no OLD_FILES+=usr/bin/lldb OLD_FILES+=usr/bin/lldb-server OLD_LIBS+=usr/lib/libprivatelldb.so.19 OLD_FILES+=usr/share/man/man1/lldb-server.1.gz OLD_FILES+=usr/share/man/man1/lldb.1.gz .endif .if ${MK_LLVM_COV} == no OLD_FILES+=usr/bin/gcov OLD_FILES+=usr/bin/llvm-cov OLD_FILES+=usr/bin/llvm-profdata OLD_FILES+=usr/share/man/man1/gcov.1.gz OLD_FILES+=usr/share/man/man1/llvm-cov.1.gz OLD_FILES+=usr/share/man/man1/llvm-profdata.1.gz .endif .if ${MK_LOCALES} == no OLD_DIRS+=usr/share/locale/af_ZA.ISO8859-15 OLD_FILES+=usr/share/locale/af_ZA.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/af_ZA.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/af_ZA.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/af_ZA.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/af_ZA.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/af_ZA.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/af_ZA.ISO8859-1 OLD_FILES+=usr/share/locale/af_ZA.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/af_ZA.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/af_ZA.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/af_ZA.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/af_ZA.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/af_ZA.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/af_ZA.UTF-8 OLD_FILES+=usr/share/locale/af_ZA.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/af_ZA.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/af_ZA.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/af_ZA.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/af_ZA.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/af_ZA.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/am_ET.UTF-8 OLD_FILES+=usr/share/locale/am_ET.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/am_ET.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/am_ET.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/am_ET.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/am_ET.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/am_ET.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ar_AE.UTF-8 OLD_FILES+=usr/share/locale/ar_AE.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ar_AE.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ar_AE.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ar_AE.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ar_AE.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ar_AE.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ar_EG.UTF-8 OLD_FILES+=usr/share/locale/ar_EG.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ar_EG.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ar_EG.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ar_EG.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ar_EG.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ar_EG.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ar_JO.UTF-8 OLD_FILES+=usr/share/locale/ar_JO.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ar_JO.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ar_JO.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ar_JO.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ar_JO.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ar_JO.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ar_MA.UTF-8 OLD_FILES+=usr/share/locale/ar_MA.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ar_MA.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ar_MA.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ar_MA.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ar_MA.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ar_MA.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ar_QA.UTF-8 OLD_FILES+=usr/share/locale/ar_QA.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ar_QA.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ar_QA.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ar_QA.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ar_QA.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ar_QA.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ar_SA.UTF-8 OLD_FILES+=usr/share/locale/ar_SA.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ar_SA.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ar_SA.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ar_SA.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ar_SA.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ar_SA.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/be_BY.CP1131 OLD_FILES+=usr/share/locale/be_BY.CP1131/LC_COLLATE OLD_FILES+=usr/share/locale/be_BY.CP1131/LC_CTYPE OLD_FILES+=usr/share/locale/be_BY.CP1131/LC_MESSAGES OLD_FILES+=usr/share/locale/be_BY.CP1131/LC_MONETARY OLD_FILES+=usr/share/locale/be_BY.CP1131/LC_NUMERIC OLD_FILES+=usr/share/locale/be_BY.CP1131/LC_TIME OLD_DIRS+=usr/share/locale/be_BY.CP1251 OLD_FILES+=usr/share/locale/be_BY.CP1251/LC_COLLATE OLD_FILES+=usr/share/locale/be_BY.CP1251/LC_CTYPE OLD_FILES+=usr/share/locale/be_BY.CP1251/LC_MESSAGES OLD_FILES+=usr/share/locale/be_BY.CP1251/LC_MONETARY OLD_FILES+=usr/share/locale/be_BY.CP1251/LC_NUMERIC OLD_FILES+=usr/share/locale/be_BY.CP1251/LC_TIME OLD_DIRS+=usr/share/locale/be_BY.ISO8859-5 OLD_FILES+=usr/share/locale/be_BY.ISO8859-5/LC_COLLATE OLD_FILES+=usr/share/locale/be_BY.ISO8859-5/LC_CTYPE OLD_FILES+=usr/share/locale/be_BY.ISO8859-5/LC_MESSAGES OLD_FILES+=usr/share/locale/be_BY.ISO8859-5/LC_MONETARY OLD_FILES+=usr/share/locale/be_BY.ISO8859-5/LC_NUMERIC OLD_FILES+=usr/share/locale/be_BY.ISO8859-5/LC_TIME OLD_DIRS+=usr/share/locale/be_BY.UTF-8 OLD_FILES+=usr/share/locale/be_BY.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/be_BY.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/be_BY.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/be_BY.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/be_BY.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/be_BY.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/bg_BG.CP1251 OLD_FILES+=usr/share/locale/bg_BG.CP1251/LC_COLLATE OLD_FILES+=usr/share/locale/bg_BG.CP1251/LC_CTYPE OLD_FILES+=usr/share/locale/bg_BG.CP1251/LC_MESSAGES OLD_FILES+=usr/share/locale/bg_BG.CP1251/LC_MONETARY OLD_FILES+=usr/share/locale/bg_BG.CP1251/LC_NUMERIC OLD_FILES+=usr/share/locale/bg_BG.CP1251/LC_TIME OLD_DIRS+=usr/share/locale/bg_BG.UTF-8 OLD_FILES+=usr/share/locale/bg_BG.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/bg_BG.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/bg_BG.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/bg_BG.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/bg_BG.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/bg_BG.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ca_AD.ISO8859-1 OLD_FILES+=usr/share/locale/ca_AD.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/ca_AD.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/ca_AD.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_AD.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/ca_AD.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_AD.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/ca_AD.ISO8859-15 OLD_FILES+=usr/share/locale/ca_AD.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/ca_AD.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/ca_AD.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_AD.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/ca_AD.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_AD.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/ca_AD.UTF-8 OLD_FILES+=usr/share/locale/ca_AD.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ca_AD.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ca_AD.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_AD.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ca_AD.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_AD.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ca_ES.ISO8859-1 OLD_FILES+=usr/share/locale/ca_ES.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/ca_ES.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/ca_ES.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_ES.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/ca_ES.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_ES.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/ca_ES.ISO8859-15 OLD_FILES+=usr/share/locale/ca_ES.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/ca_ES.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/ca_ES.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_ES.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/ca_ES.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_ES.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/ca_ES.UTF-8 OLD_FILES+=usr/share/locale/ca_ES.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ca_ES.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ca_ES.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_ES.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ca_ES.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_ES.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ca_FR.ISO8859-1 OLD_FILES+=usr/share/locale/ca_FR.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/ca_FR.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/ca_FR.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_FR.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/ca_FR.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_FR.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/ca_FR.ISO8859-15 OLD_FILES+=usr/share/locale/ca_FR.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/ca_FR.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/ca_FR.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_FR.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/ca_FR.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_FR.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/ca_FR.UTF-8 OLD_FILES+=usr/share/locale/ca_FR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ca_FR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ca_FR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_FR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ca_FR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_FR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ca_IT.ISO8859-1 OLD_FILES+=usr/share/locale/ca_IT.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/ca_IT.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/ca_IT.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_IT.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/ca_IT.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_IT.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/ca_IT.ISO8859-15 OLD_FILES+=usr/share/locale/ca_IT.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/ca_IT.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/ca_IT.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_IT.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/ca_IT.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_IT.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/ca_IT.UTF-8 OLD_FILES+=usr/share/locale/ca_IT.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ca_IT.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ca_IT.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ca_IT.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ca_IT.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ca_IT.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/cs_CZ.ISO8859-2 OLD_FILES+=usr/share/locale/cs_CZ.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/cs_CZ.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/cs_CZ.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/cs_CZ.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/cs_CZ.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/cs_CZ.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/cs_CZ.UTF-8 OLD_FILES+=usr/share/locale/cs_CZ.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/cs_CZ.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/cs_CZ.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/cs_CZ.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/cs_CZ.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/cs_CZ.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/da_DK.ISO8859-1 OLD_FILES+=usr/share/locale/da_DK.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/da_DK.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/da_DK.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/da_DK.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/da_DK.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/da_DK.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/da_DK.ISO8859-15 OLD_FILES+=usr/share/locale/da_DK.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/da_DK.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/da_DK.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/da_DK.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/da_DK.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/da_DK.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/da_DK.UTF-8 OLD_FILES+=usr/share/locale/da_DK.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/da_DK.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/da_DK.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/da_DK.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/da_DK.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/da_DK.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/de_AT.ISO8859-1 OLD_FILES+=usr/share/locale/de_AT.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/de_AT.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/de_AT.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/de_AT.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/de_AT.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/de_AT.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/de_AT.ISO8859-15 OLD_FILES+=usr/share/locale/de_AT.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/de_AT.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/de_AT.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/de_AT.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/de_AT.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/de_AT.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/de_AT.UTF-8 OLD_FILES+=usr/share/locale/de_AT.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/de_AT.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/de_AT.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/de_AT.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/de_AT.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/de_AT.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/de_CH.ISO8859-1 OLD_FILES+=usr/share/locale/de_CH.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/de_CH.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/de_CH.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/de_CH.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/de_CH.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/de_CH.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/de_CH.ISO8859-15 OLD_FILES+=usr/share/locale/de_CH.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/de_CH.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/de_CH.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/de_CH.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/de_CH.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/de_CH.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/de_CH.UTF-8 OLD_FILES+=usr/share/locale/de_CH.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/de_CH.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/de_CH.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/de_CH.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/de_CH.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/de_CH.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/de_DE.ISO8859-1 OLD_FILES+=usr/share/locale/de_DE.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/de_DE.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/de_DE.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/de_DE.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/de_DE.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/de_DE.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/de_DE.ISO8859-15 OLD_FILES+=usr/share/locale/de_DE.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/de_DE.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/de_DE.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/de_DE.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/de_DE.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/de_DE.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/de_DE.UTF-8 OLD_FILES+=usr/share/locale/de_DE.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/de_DE.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/de_DE.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/de_DE.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/de_DE.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/de_DE.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/el_GR.ISO8859-7 OLD_FILES+=usr/share/locale/el_GR.ISO8859-7/LC_COLLATE OLD_FILES+=usr/share/locale/el_GR.ISO8859-7/LC_CTYPE OLD_FILES+=usr/share/locale/el_GR.ISO8859-7/LC_MESSAGES OLD_FILES+=usr/share/locale/el_GR.ISO8859-7/LC_MONETARY OLD_FILES+=usr/share/locale/el_GR.ISO8859-7/LC_NUMERIC OLD_FILES+=usr/share/locale/el_GR.ISO8859-7/LC_TIME OLD_DIRS+=usr/share/locale/el_GR.UTF-8 OLD_FILES+=usr/share/locale/el_GR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/el_GR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/el_GR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/el_GR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/el_GR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/el_GR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_AU.ISO8859-1 OLD_FILES+=usr/share/locale/en_AU.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_AU.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_AU.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_AU.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_AU.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_AU.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_AU.ISO8859-15 OLD_FILES+=usr/share/locale/en_AU.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/en_AU.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/en_AU.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/en_AU.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/en_AU.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/en_AU.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/en_AU.US-ASCII OLD_FILES+=usr/share/locale/en_AU.US-ASCII/LC_COLLATE OLD_FILES+=usr/share/locale/en_AU.US-ASCII/LC_CTYPE OLD_FILES+=usr/share/locale/en_AU.US-ASCII/LC_MESSAGES OLD_FILES+=usr/share/locale/en_AU.US-ASCII/LC_MONETARY OLD_FILES+=usr/share/locale/en_AU.US-ASCII/LC_NUMERIC OLD_FILES+=usr/share/locale/en_AU.US-ASCII/LC_TIME OLD_DIRS+=usr/share/locale/en_AU.UTF-8 OLD_FILES+=usr/share/locale/en_AU.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_AU.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_AU.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_AU.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_AU.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_AU.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_CA.ISO8859-1 OLD_FILES+=usr/share/locale/en_CA.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_CA.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_CA.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_CA.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_CA.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_CA.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_CA.ISO8859-15 OLD_FILES+=usr/share/locale/en_CA.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/en_CA.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/en_CA.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/en_CA.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/en_CA.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/en_CA.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/en_CA.US-ASCII OLD_FILES+=usr/share/locale/en_CA.US-ASCII/LC_COLLATE OLD_FILES+=usr/share/locale/en_CA.US-ASCII/LC_CTYPE OLD_FILES+=usr/share/locale/en_CA.US-ASCII/LC_MESSAGES OLD_FILES+=usr/share/locale/en_CA.US-ASCII/LC_MONETARY OLD_FILES+=usr/share/locale/en_CA.US-ASCII/LC_NUMERIC OLD_FILES+=usr/share/locale/en_CA.US-ASCII/LC_TIME OLD_DIRS+=usr/share/locale/en_CA.UTF-8 OLD_FILES+=usr/share/locale/en_CA.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_CA.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_CA.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_CA.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_CA.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_CA.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_GB.ISO8859-1 OLD_FILES+=usr/share/locale/en_GB.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_GB.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_GB.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_GB.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_GB.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_GB.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_GB.ISO8859-15 OLD_FILES+=usr/share/locale/en_GB.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/en_GB.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/en_GB.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/en_GB.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/en_GB.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/en_GB.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/en_GB.US-ASCII OLD_FILES+=usr/share/locale/en_GB.US-ASCII/LC_COLLATE OLD_FILES+=usr/share/locale/en_GB.US-ASCII/LC_CTYPE OLD_FILES+=usr/share/locale/en_GB.US-ASCII/LC_MESSAGES OLD_FILES+=usr/share/locale/en_GB.US-ASCII/LC_MONETARY OLD_FILES+=usr/share/locale/en_GB.US-ASCII/LC_NUMERIC OLD_FILES+=usr/share/locale/en_GB.US-ASCII/LC_TIME OLD_DIRS+=usr/share/locale/en_GB.UTF-8 OLD_FILES+=usr/share/locale/en_GB.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_GB.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_GB.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_GB.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_GB.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_GB.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_HK.ISO8859-1 OLD_FILES+=usr/share/locale/en_HK.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_HK.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_HK.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_HK.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_HK.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_HK.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_HK.UTF-8 OLD_FILES+=usr/share/locale/en_HK.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_HK.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_HK.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_HK.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_HK.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_HK.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_IE.ISO8859-1 OLD_FILES+=usr/share/locale/en_IE.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_IE.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_IE.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_IE.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_IE.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_IE.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_IE.ISO8859-15 OLD_FILES+=usr/share/locale/en_IE.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/en_IE.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/en_IE.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/en_IE.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/en_IE.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/en_IE.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/en_IE.UTF-8 OLD_FILES+=usr/share/locale/en_IE.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_IE.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_IE.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_IE.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_IE.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_IE.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_NZ.ISO8859-1 OLD_FILES+=usr/share/locale/en_NZ.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_NZ.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_NZ.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_NZ.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_NZ.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_NZ.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_NZ.ISO8859-15 OLD_FILES+=usr/share/locale/en_NZ.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/en_NZ.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/en_NZ.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/en_NZ.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/en_NZ.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/en_NZ.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/en_NZ.US-ASCII OLD_FILES+=usr/share/locale/en_NZ.US-ASCII/LC_COLLATE OLD_FILES+=usr/share/locale/en_NZ.US-ASCII/LC_CTYPE OLD_FILES+=usr/share/locale/en_NZ.US-ASCII/LC_MESSAGES OLD_FILES+=usr/share/locale/en_NZ.US-ASCII/LC_MONETARY OLD_FILES+=usr/share/locale/en_NZ.US-ASCII/LC_NUMERIC OLD_FILES+=usr/share/locale/en_NZ.US-ASCII/LC_TIME OLD_DIRS+=usr/share/locale/en_NZ.UTF-8 OLD_FILES+=usr/share/locale/en_NZ.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_NZ.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_NZ.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_NZ.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_NZ.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_NZ.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_PH.UTF-8 OLD_FILES+=usr/share/locale/en_PH.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_PH.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_PH.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_PH.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_PH.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_PH.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_SG.ISO8859-1 OLD_FILES+=usr/share/locale/en_SG.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_SG.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_SG.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_SG.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_SG.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_SG.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_SG.UTF-8 OLD_FILES+=usr/share/locale/en_SG.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_SG.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_SG.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_SG.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_SG.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_SG.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_US.ISO8859-1 OLD_FILES+=usr/share/locale/en_US.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_US.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_US.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_US.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_US.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_US.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_US.ISO8859-15 OLD_FILES+=usr/share/locale/en_US.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/en_US.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/en_US.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/en_US.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/en_US.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/en_US.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/en_US.US-ASCII OLD_FILES+=usr/share/locale/en_US.US-ASCII/LC_COLLATE OLD_FILES+=usr/share/locale/en_US.US-ASCII/LC_CTYPE OLD_FILES+=usr/share/locale/en_US.US-ASCII/LC_MESSAGES OLD_FILES+=usr/share/locale/en_US.US-ASCII/LC_MONETARY OLD_FILES+=usr/share/locale/en_US.US-ASCII/LC_NUMERIC OLD_FILES+=usr/share/locale/en_US.US-ASCII/LC_TIME OLD_DIRS+=usr/share/locale/en_US.UTF-8 OLD_FILES+=usr/share/locale/en_US.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_US.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_US.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_US.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_US.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_US.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/en_ZA.ISO8859-1 OLD_FILES+=usr/share/locale/en_ZA.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/en_ZA.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/en_ZA.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/en_ZA.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/en_ZA.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/en_ZA.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/en_ZA.ISO8859-15 OLD_FILES+=usr/share/locale/en_ZA.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/en_ZA.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/en_ZA.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/en_ZA.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/en_ZA.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/en_ZA.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/en_ZA.US-ASCII OLD_FILES+=usr/share/locale/en_ZA.US-ASCII/LC_COLLATE OLD_FILES+=usr/share/locale/en_ZA.US-ASCII/LC_CTYPE OLD_FILES+=usr/share/locale/en_ZA.US-ASCII/LC_MESSAGES OLD_FILES+=usr/share/locale/en_ZA.US-ASCII/LC_MONETARY OLD_FILES+=usr/share/locale/en_ZA.US-ASCII/LC_NUMERIC OLD_FILES+=usr/share/locale/en_ZA.US-ASCII/LC_TIME OLD_DIRS+=usr/share/locale/en_ZA.UTF-8 OLD_FILES+=usr/share/locale/en_ZA.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/en_ZA.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/en_ZA.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/en_ZA.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/en_ZA.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/en_ZA.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/es_AR.ISO8859-1 OLD_FILES+=usr/share/locale/es_AR.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/es_AR.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/es_AR.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/es_AR.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/es_AR.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/es_AR.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/es_AR.UTF-8 OLD_FILES+=usr/share/locale/es_AR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/es_AR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/es_AR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/es_AR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/es_AR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/es_AR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/es_CR.UTF-8 OLD_FILES+=usr/share/locale/es_CR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/es_CR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/es_CR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/es_CR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/es_CR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/es_CR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/es_ES.ISO8859-1 OLD_FILES+=usr/share/locale/es_ES.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/es_ES.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/es_ES.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/es_ES.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/es_ES.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/es_ES.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/es_ES.ISO8859-15 OLD_FILES+=usr/share/locale/es_ES.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/es_ES.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/es_ES.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/es_ES.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/es_ES.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/es_ES.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/es_ES.UTF-8 OLD_FILES+=usr/share/locale/es_ES.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/es_ES.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/es_ES.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/es_ES.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/es_ES.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/es_ES.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/es_MX.ISO8859-1 OLD_FILES+=usr/share/locale/es_MX.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/es_MX.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/es_MX.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/es_MX.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/es_MX.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/es_MX.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/es_MX.UTF-8 OLD_FILES+=usr/share/locale/es_MX.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/es_MX.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/es_MX.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/es_MX.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/es_MX.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/es_MX.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/et_EE.ISO8859-1 OLD_FILES+=usr/share/locale/et_EE.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/et_EE.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/et_EE.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/et_EE.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/et_EE.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/et_EE.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/et_EE.ISO8859-15 OLD_FILES+=usr/share/locale/et_EE.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/et_EE.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/et_EE.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/et_EE.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/et_EE.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/et_EE.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/et_EE.UTF-8 OLD_FILES+=usr/share/locale/et_EE.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/et_EE.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/et_EE.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/et_EE.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/et_EE.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/et_EE.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/eu_ES.ISO8859-1 OLD_FILES+=usr/share/locale/eu_ES.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/eu_ES.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/eu_ES.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/eu_ES.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/eu_ES.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/eu_ES.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/eu_ES.ISO8859-15 OLD_FILES+=usr/share/locale/eu_ES.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/eu_ES.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/eu_ES.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/eu_ES.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/eu_ES.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/eu_ES.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/eu_ES.UTF-8 OLD_FILES+=usr/share/locale/eu_ES.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/eu_ES.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/eu_ES.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/eu_ES.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/eu_ES.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/eu_ES.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/fi_FI.ISO8859-1 OLD_FILES+=usr/share/locale/fi_FI.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/fi_FI.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/fi_FI.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/fi_FI.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/fi_FI.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/fi_FI.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/fi_FI.ISO8859-15 OLD_FILES+=usr/share/locale/fi_FI.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/fi_FI.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/fi_FI.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/fi_FI.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/fi_FI.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/fi_FI.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/fi_FI.UTF-8 OLD_FILES+=usr/share/locale/fi_FI.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/fi_FI.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/fi_FI.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/fi_FI.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/fi_FI.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/fi_FI.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/fr_BE.ISO8859-1 OLD_FILES+=usr/share/locale/fr_BE.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/fr_BE.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/fr_BE.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_BE.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/fr_BE.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_BE.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/fr_BE.ISO8859-15 OLD_FILES+=usr/share/locale/fr_BE.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/fr_BE.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/fr_BE.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_BE.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/fr_BE.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_BE.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/fr_BE.UTF-8 OLD_FILES+=usr/share/locale/fr_BE.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/fr_BE.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/fr_BE.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_BE.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/fr_BE.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_BE.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/fr_CA.ISO8859-1 OLD_FILES+=usr/share/locale/fr_CA.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/fr_CA.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/fr_CA.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_CA.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/fr_CA.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_CA.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/fr_CA.ISO8859-15 OLD_FILES+=usr/share/locale/fr_CA.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/fr_CA.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/fr_CA.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_CA.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/fr_CA.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_CA.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/fr_CA.UTF-8 OLD_FILES+=usr/share/locale/fr_CA.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/fr_CA.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/fr_CA.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_CA.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/fr_CA.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_CA.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/fr_CH.ISO8859-1 OLD_FILES+=usr/share/locale/fr_CH.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/fr_CH.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/fr_CH.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_CH.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/fr_CH.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_CH.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/fr_CH.ISO8859-15 OLD_FILES+=usr/share/locale/fr_CH.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/fr_CH.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/fr_CH.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_CH.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/fr_CH.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_CH.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/fr_CH.UTF-8 OLD_FILES+=usr/share/locale/fr_CH.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/fr_CH.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/fr_CH.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_CH.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/fr_CH.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_CH.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/fr_FR.ISO8859-1 OLD_FILES+=usr/share/locale/fr_FR.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/fr_FR.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/fr_FR.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_FR.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/fr_FR.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_FR.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/fr_FR.ISO8859-15 OLD_FILES+=usr/share/locale/fr_FR.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/fr_FR.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/fr_FR.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_FR.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/fr_FR.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_FR.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/fr_FR.UTF-8 OLD_FILES+=usr/share/locale/fr_FR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/fr_FR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/fr_FR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/fr_FR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/fr_FR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/fr_FR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/he_IL.UTF-8 OLD_FILES+=usr/share/locale/he_IL.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/he_IL.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/he_IL.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/he_IL.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/he_IL.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/he_IL.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/hi_IN.ISCII-DEV OLD_FILES+=usr/share/locale/hi_IN.ISCII-DEV/LC_COLLATE OLD_FILES+=usr/share/locale/hi_IN.ISCII-DEV/LC_CTYPE OLD_FILES+=usr/share/locale/hi_IN.ISCII-DEV/LC_MESSAGES OLD_FILES+=usr/share/locale/hi_IN.ISCII-DEV/LC_MONETARY OLD_FILES+=usr/share/locale/hi_IN.ISCII-DEV/LC_NUMERIC OLD_FILES+=usr/share/locale/hi_IN.ISCII-DEV/LC_TIME OLD_DIRS+=usr/share/locale/hi_IN.UTF-8 OLD_FILES+=usr/share/locale/hi_IN.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/hi_IN.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/hi_IN.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/hi_IN.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/hi_IN.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/hi_IN.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/hr_HR.ISO8859-2 OLD_FILES+=usr/share/locale/hr_HR.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/hr_HR.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/hr_HR.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/hr_HR.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/hr_HR.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/hr_HR.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/hr_HR.UTF-8 OLD_FILES+=usr/share/locale/hr_HR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/hr_HR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/hr_HR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/hr_HR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/hr_HR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/hr_HR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/hu_HU.ISO8859-2 OLD_FILES+=usr/share/locale/hu_HU.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/hu_HU.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/hu_HU.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/hu_HU.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/hu_HU.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/hu_HU.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/hu_HU.UTF-8 OLD_FILES+=usr/share/locale/hu_HU.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/hu_HU.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/hu_HU.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/hu_HU.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/hu_HU.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/hu_HU.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/hy_AM.ARMSCII-8 OLD_FILES+=usr/share/locale/hy_AM.ARMSCII-8/LC_COLLATE OLD_FILES+=usr/share/locale/hy_AM.ARMSCII-8/LC_CTYPE OLD_FILES+=usr/share/locale/hy_AM.ARMSCII-8/LC_MESSAGES OLD_FILES+=usr/share/locale/hy_AM.ARMSCII-8/LC_MONETARY OLD_FILES+=usr/share/locale/hy_AM.ARMSCII-8/LC_NUMERIC OLD_FILES+=usr/share/locale/hy_AM.ARMSCII-8/LC_TIME OLD_DIRS+=usr/share/locale/hy_AM.UTF-8 OLD_FILES+=usr/share/locale/hy_AM.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/hy_AM.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/hy_AM.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/hy_AM.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/hy_AM.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/hy_AM.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/is_IS.ISO8859-1 OLD_FILES+=usr/share/locale/is_IS.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/is_IS.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/is_IS.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/is_IS.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/is_IS.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/is_IS.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/is_IS.ISO8859-15 OLD_FILES+=usr/share/locale/is_IS.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/is_IS.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/is_IS.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/is_IS.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/is_IS.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/is_IS.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/is_IS.UTF-8 OLD_FILES+=usr/share/locale/is_IS.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/is_IS.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/is_IS.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/is_IS.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/is_IS.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/is_IS.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/it_CH.ISO8859-1 OLD_FILES+=usr/share/locale/it_CH.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/it_CH.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/it_CH.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/it_CH.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/it_CH.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/it_CH.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/it_CH.ISO8859-15 OLD_FILES+=usr/share/locale/it_CH.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/it_CH.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/it_CH.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/it_CH.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/it_CH.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/it_CH.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/it_CH.UTF-8 OLD_FILES+=usr/share/locale/it_CH.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/it_CH.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/it_CH.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/it_CH.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/it_CH.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/it_CH.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/it_IT.ISO8859-1 OLD_FILES+=usr/share/locale/it_IT.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/it_IT.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/it_IT.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/it_IT.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/it_IT.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/it_IT.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/it_IT.ISO8859-15 OLD_FILES+=usr/share/locale/it_IT.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/it_IT.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/it_IT.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/it_IT.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/it_IT.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/it_IT.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/it_IT.UTF-8 OLD_FILES+=usr/share/locale/it_IT.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/it_IT.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/it_IT.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/it_IT.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/it_IT.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/it_IT.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ja_JP.eucJP OLD_FILES+=usr/share/locale/ja_JP.eucJP/LC_COLLATE OLD_FILES+=usr/share/locale/ja_JP.eucJP/LC_CTYPE OLD_FILES+=usr/share/locale/ja_JP.eucJP/LC_MESSAGES OLD_FILES+=usr/share/locale/ja_JP.eucJP/LC_MONETARY OLD_FILES+=usr/share/locale/ja_JP.eucJP/LC_NUMERIC OLD_FILES+=usr/share/locale/ja_JP.eucJP/LC_TIME OLD_DIRS+=usr/share/locale/ja_JP.SJIS OLD_FILES+=usr/share/locale/ja_JP.SJIS/LC_COLLATE OLD_FILES+=usr/share/locale/ja_JP.SJIS/LC_CTYPE OLD_FILES+=usr/share/locale/ja_JP.SJIS/LC_MESSAGES OLD_FILES+=usr/share/locale/ja_JP.SJIS/LC_MONETARY OLD_FILES+=usr/share/locale/ja_JP.SJIS/LC_NUMERIC OLD_FILES+=usr/share/locale/ja_JP.SJIS/LC_TIME OLD_DIRS+=usr/share/locale/ja_JP.UTF-8 OLD_FILES+=usr/share/locale/ja_JP.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ja_JP.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ja_JP.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ja_JP.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ja_JP.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ja_JP.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/kk_KZ.UTF-8 OLD_FILES+=usr/share/locale/kk_KZ.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/kk_KZ.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/kk_KZ.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/kk_KZ.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/kk_KZ.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/kk_KZ.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ko_KR.CP949 OLD_FILES+=usr/share/locale/ko_KR.CP949/LC_COLLATE OLD_FILES+=usr/share/locale/ko_KR.CP949/LC_CTYPE OLD_FILES+=usr/share/locale/ko_KR.CP949/LC_MESSAGES OLD_FILES+=usr/share/locale/ko_KR.CP949/LC_MONETARY OLD_FILES+=usr/share/locale/ko_KR.CP949/LC_NUMERIC OLD_FILES+=usr/share/locale/ko_KR.CP949/LC_TIME OLD_DIRS+=usr/share/locale/ko_KR.eucKR OLD_FILES+=usr/share/locale/ko_KR.eucKR/LC_COLLATE OLD_FILES+=usr/share/locale/ko_KR.eucKR/LC_CTYPE OLD_FILES+=usr/share/locale/ko_KR.eucKR/LC_MESSAGES OLD_FILES+=usr/share/locale/ko_KR.eucKR/LC_MONETARY OLD_FILES+=usr/share/locale/ko_KR.eucKR/LC_NUMERIC OLD_FILES+=usr/share/locale/ko_KR.eucKR/LC_TIME OLD_DIRS+=usr/share/locale/ko_KR.UTF-8 OLD_FILES+=usr/share/locale/ko_KR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ko_KR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ko_KR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ko_KR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ko_KR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ko_KR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/lt_LT.ISO8859-13 OLD_FILES+=usr/share/locale/lt_LT.ISO8859-13/LC_COLLATE OLD_FILES+=usr/share/locale/lt_LT.ISO8859-13/LC_CTYPE OLD_FILES+=usr/share/locale/lt_LT.ISO8859-13/LC_MESSAGES OLD_FILES+=usr/share/locale/lt_LT.ISO8859-13/LC_MONETARY OLD_FILES+=usr/share/locale/lt_LT.ISO8859-13/LC_NUMERIC OLD_FILES+=usr/share/locale/lt_LT.ISO8859-13/LC_TIME OLD_DIRS+=usr/share/locale/lt_LT.UTF-8 OLD_FILES+=usr/share/locale/lt_LT.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/lt_LT.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/lt_LT.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/lt_LT.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/lt_LT.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/lt_LT.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/lv_LV.ISO8859-13 OLD_FILES+=usr/share/locale/lv_LV.ISO8859-13/LC_COLLATE OLD_FILES+=usr/share/locale/lv_LV.ISO8859-13/LC_CTYPE OLD_FILES+=usr/share/locale/lv_LV.ISO8859-13/LC_MESSAGES OLD_FILES+=usr/share/locale/lv_LV.ISO8859-13/LC_MONETARY OLD_FILES+=usr/share/locale/lv_LV.ISO8859-13/LC_NUMERIC OLD_FILES+=usr/share/locale/lv_LV.ISO8859-13/LC_TIME OLD_DIRS+=usr/share/locale/lv_LV.UTF-8 OLD_FILES+=usr/share/locale/lv_LV.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/lv_LV.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/lv_LV.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/lv_LV.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/lv_LV.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/lv_LV.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/mn_MN.UTF-8 OLD_FILES+=usr/share/locale/mn_MN.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/mn_MN.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/mn_MN.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/mn_MN.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/mn_MN.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/mn_MN.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/nb_NO.ISO8859-1 OLD_FILES+=usr/share/locale/nb_NO.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/nb_NO.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/nb_NO.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/nb_NO.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/nb_NO.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/nb_NO.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/nb_NO.ISO8859-15 OLD_FILES+=usr/share/locale/nb_NO.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/nb_NO.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/nb_NO.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/nb_NO.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/nb_NO.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/nb_NO.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/nb_NO.UTF-8 OLD_FILES+=usr/share/locale/nb_NO.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/nb_NO.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/nb_NO.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/nb_NO.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/nb_NO.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/nb_NO.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/nl_BE.ISO8859-1 OLD_FILES+=usr/share/locale/nl_BE.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/nl_BE.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/nl_BE.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/nl_BE.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/nl_BE.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/nl_BE.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/nl_BE.ISO8859-15 OLD_FILES+=usr/share/locale/nl_BE.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/nl_BE.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/nl_BE.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/nl_BE.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/nl_BE.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/nl_BE.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/nl_BE.UTF-8 OLD_FILES+=usr/share/locale/nl_BE.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/nl_BE.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/nl_BE.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/nl_BE.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/nl_BE.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/nl_BE.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/nl_NL.ISO8859-1 OLD_FILES+=usr/share/locale/nl_NL.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/nl_NL.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/nl_NL.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/nl_NL.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/nl_NL.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/nl_NL.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/nl_NL.ISO8859-15 OLD_FILES+=usr/share/locale/nl_NL.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/nl_NL.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/nl_NL.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/nl_NL.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/nl_NL.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/nl_NL.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/nl_NL.UTF-8 OLD_FILES+=usr/share/locale/nl_NL.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/nl_NL.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/nl_NL.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/nl_NL.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/nl_NL.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/nl_NL.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/nn_NO.ISO8859-1 OLD_FILES+=usr/share/locale/nn_NO.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/nn_NO.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/nn_NO.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/nn_NO.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/nn_NO.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/nn_NO.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/nn_NO.ISO8859-15 OLD_FILES+=usr/share/locale/nn_NO.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/nn_NO.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/nn_NO.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/nn_NO.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/nn_NO.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/nn_NO.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/nn_NO.UTF-8 OLD_FILES+=usr/share/locale/nn_NO.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/nn_NO.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/nn_NO.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/nn_NO.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/nn_NO.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/nn_NO.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/pl_PL.ISO8859-2 OLD_FILES+=usr/share/locale/pl_PL.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/pl_PL.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/pl_PL.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/pl_PL.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/pl_PL.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/pl_PL.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/pl_PL.UTF-8 OLD_FILES+=usr/share/locale/pl_PL.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/pl_PL.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/pl_PL.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/pl_PL.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/pl_PL.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/pl_PL.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/pt_BR.ISO8859-1 OLD_FILES+=usr/share/locale/pt_BR.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/pt_BR.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/pt_BR.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/pt_BR.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/pt_BR.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/pt_BR.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/pt_BR.UTF-8 OLD_FILES+=usr/share/locale/pt_BR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/pt_BR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/pt_BR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/pt_BR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/pt_BR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/pt_BR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/pt_PT.ISO8859-1 OLD_FILES+=usr/share/locale/pt_PT.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/pt_PT.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/pt_PT.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/pt_PT.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/pt_PT.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/pt_PT.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/pt_PT.ISO8859-15 OLD_FILES+=usr/share/locale/pt_PT.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/pt_PT.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/pt_PT.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/pt_PT.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/pt_PT.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/pt_PT.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/pt_PT.UTF-8 OLD_FILES+=usr/share/locale/pt_PT.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/pt_PT.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/pt_PT.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/pt_PT.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/pt_PT.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/pt_PT.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ro_RO.ISO8859-2 OLD_FILES+=usr/share/locale/ro_RO.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/ro_RO.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/ro_RO.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/ro_RO.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/ro_RO.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/ro_RO.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/ro_RO.UTF-8 OLD_FILES+=usr/share/locale/ro_RO.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ro_RO.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ro_RO.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ro_RO.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ro_RO.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ro_RO.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/ru_RU.CP1251 OLD_FILES+=usr/share/locale/ru_RU.CP1251/LC_COLLATE OLD_FILES+=usr/share/locale/ru_RU.CP1251/LC_CTYPE OLD_FILES+=usr/share/locale/ru_RU.CP1251/LC_MESSAGES OLD_FILES+=usr/share/locale/ru_RU.CP1251/LC_MONETARY OLD_FILES+=usr/share/locale/ru_RU.CP1251/LC_NUMERIC OLD_FILES+=usr/share/locale/ru_RU.CP1251/LC_TIME OLD_DIRS+=usr/share/locale/ru_RU.CP866 OLD_FILES+=usr/share/locale/ru_RU.CP866/LC_COLLATE OLD_FILES+=usr/share/locale/ru_RU.CP866/LC_CTYPE OLD_FILES+=usr/share/locale/ru_RU.CP866/LC_MESSAGES OLD_FILES+=usr/share/locale/ru_RU.CP866/LC_MONETARY OLD_FILES+=usr/share/locale/ru_RU.CP866/LC_NUMERIC OLD_FILES+=usr/share/locale/ru_RU.CP866/LC_TIME OLD_DIRS+=usr/share/locale/ru_RU.ISO8859-5 OLD_FILES+=usr/share/locale/ru_RU.ISO8859-5/LC_COLLATE OLD_FILES+=usr/share/locale/ru_RU.ISO8859-5/LC_CTYPE OLD_FILES+=usr/share/locale/ru_RU.ISO8859-5/LC_MESSAGES OLD_FILES+=usr/share/locale/ru_RU.ISO8859-5/LC_MONETARY OLD_FILES+=usr/share/locale/ru_RU.ISO8859-5/LC_NUMERIC OLD_FILES+=usr/share/locale/ru_RU.ISO8859-5/LC_TIME OLD_DIRS+=usr/share/locale/ru_RU.KOI8-R OLD_FILES+=usr/share/locale/ru_RU.KOI8-R/LC_COLLATE OLD_FILES+=usr/share/locale/ru_RU.KOI8-R/LC_CTYPE OLD_FILES+=usr/share/locale/ru_RU.KOI8-R/LC_MESSAGES OLD_FILES+=usr/share/locale/ru_RU.KOI8-R/LC_MONETARY OLD_FILES+=usr/share/locale/ru_RU.KOI8-R/LC_NUMERIC OLD_FILES+=usr/share/locale/ru_RU.KOI8-R/LC_TIME OLD_DIRS+=usr/share/locale/ru_RU.UTF-8 OLD_FILES+=usr/share/locale/ru_RU.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/ru_RU.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/ru_RU.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/ru_RU.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/ru_RU.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/ru_RU.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/se_FI.UTF-8 OLD_FILES+=usr/share/locale/se_FI.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/se_FI.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/se_FI.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/se_FI.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/se_FI.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/se_FI.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/se_NO.UTF-8 OLD_FILES+=usr/share/locale/se_NO.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/se_NO.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/se_NO.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/se_NO.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/se_NO.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/se_NO.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/sk_SK.ISO8859-2 OLD_FILES+=usr/share/locale/sk_SK.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/sk_SK.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/sk_SK.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/sk_SK.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/sk_SK.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/sk_SK.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/sk_SK.UTF-8 OLD_FILES+=usr/share/locale/sk_SK.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/sk_SK.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/sk_SK.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/sk_SK.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/sk_SK.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/sk_SK.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/sl_SI.ISO8859-2 OLD_FILES+=usr/share/locale/sl_SI.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/sl_SI.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/sl_SI.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/sl_SI.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/sl_SI.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/sl_SI.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/sl_SI.UTF-8 OLD_FILES+=usr/share/locale/sl_SI.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/sl_SI.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/sl_SI.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/sl_SI.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/sl_SI.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/sl_SI.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/sr_RS.ISO8859-5 OLD_FILES+=usr/share/locale/sr_RS.ISO8859-5/LC_COLLATE OLD_FILES+=usr/share/locale/sr_RS.ISO8859-5/LC_CTYPE OLD_FILES+=usr/share/locale/sr_RS.ISO8859-5/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_RS.ISO8859-5/LC_MONETARY OLD_FILES+=usr/share/locale/sr_RS.ISO8859-5/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_RS.ISO8859-5/LC_TIME OLD_DIRS+=usr/share/locale/sr_RS.UTF-8 OLD_FILES+=usr/share/locale/sr_RS.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/sr_RS.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/sr_RS.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_RS.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/sr_RS.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_RS.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/sr_RS.ISO8859-2 OLD_FILES+=usr/share/locale/sr_RS.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/sr_RS.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/sr_RS.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_RS.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/sr_RS.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_RS.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/sr_RS.UTF-8@latin OLD_FILES+=usr/share/locale/sr_RS.UTF-8@latin/LC_COLLATE OLD_FILES+=usr/share/locale/sr_RS.UTF-8@latin/LC_CTYPE OLD_FILES+=usr/share/locale/sr_RS.UTF-8@latin/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_RS.UTF-8@latin/LC_MONETARY OLD_FILES+=usr/share/locale/sr_RS.UTF-8@latin/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_RS.UTF-8@latin/LC_TIME OLD_DIRS+=usr/share/locale/sv_FI.ISO8859-1 OLD_FILES+=usr/share/locale/sv_FI.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/sv_FI.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/sv_FI.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/sv_FI.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/sv_FI.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/sv_FI.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/sv_FI.ISO8859-15 OLD_FILES+=usr/share/locale/sv_FI.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/sv_FI.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/sv_FI.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/sv_FI.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/sv_FI.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/sv_FI.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/sv_FI.UTF-8 OLD_FILES+=usr/share/locale/sv_FI.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/sv_FI.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/sv_FI.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/sv_FI.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/sv_FI.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/sv_FI.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/sv_SE.ISO8859-1 OLD_FILES+=usr/share/locale/sv_SE.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/sv_SE.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/sv_SE.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/sv_SE.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/sv_SE.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/sv_SE.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/sv_SE.ISO8859-15 OLD_FILES+=usr/share/locale/sv_SE.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/sv_SE.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/sv_SE.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/sv_SE.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/sv_SE.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/sv_SE.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/sv_SE.UTF-8 OLD_FILES+=usr/share/locale/sv_SE.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/sv_SE.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/sv_SE.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/sv_SE.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/sv_SE.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/sv_SE.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/tr_TR.ISO8859-9 OLD_FILES+=usr/share/locale/tr_TR.ISO8859-9/LC_COLLATE OLD_FILES+=usr/share/locale/tr_TR.ISO8859-9/LC_CTYPE OLD_FILES+=usr/share/locale/tr_TR.ISO8859-9/LC_MESSAGES OLD_FILES+=usr/share/locale/tr_TR.ISO8859-9/LC_MONETARY OLD_FILES+=usr/share/locale/tr_TR.ISO8859-9/LC_NUMERIC OLD_FILES+=usr/share/locale/tr_TR.ISO8859-9/LC_TIME OLD_DIRS+=usr/share/locale/tr_TR.UTF-8 OLD_FILES+=usr/share/locale/tr_TR.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/tr_TR.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/tr_TR.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/tr_TR.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/tr_TR.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/tr_TR.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/uk_UA.CP1251 OLD_FILES+=usr/share/locale/uk_UA.CP1251/LC_COLLATE OLD_FILES+=usr/share/locale/uk_UA.CP1251/LC_CTYPE OLD_FILES+=usr/share/locale/uk_UA.CP1251/LC_MESSAGES OLD_FILES+=usr/share/locale/uk_UA.CP1251/LC_MONETARY OLD_FILES+=usr/share/locale/uk_UA.CP1251/LC_NUMERIC OLD_FILES+=usr/share/locale/uk_UA.CP1251/LC_TIME OLD_DIRS+=usr/share/locale/uk_UA.ISO8859-5 OLD_FILES+=usr/share/locale/uk_UA.ISO8859-5/LC_COLLATE OLD_FILES+=usr/share/locale/uk_UA.ISO8859-5/LC_CTYPE OLD_FILES+=usr/share/locale/uk_UA.ISO8859-5/LC_MESSAGES OLD_FILES+=usr/share/locale/uk_UA.ISO8859-5/LC_MONETARY OLD_FILES+=usr/share/locale/uk_UA.ISO8859-5/LC_NUMERIC OLD_FILES+=usr/share/locale/uk_UA.ISO8859-5/LC_TIME OLD_DIRS+=usr/share/locale/uk_UA.KOI8-U OLD_FILES+=usr/share/locale/uk_UA.KOI8-U/LC_COLLATE OLD_FILES+=usr/share/locale/uk_UA.KOI8-U/LC_CTYPE OLD_FILES+=usr/share/locale/uk_UA.KOI8-U/LC_MESSAGES OLD_FILES+=usr/share/locale/uk_UA.KOI8-U/LC_MONETARY OLD_FILES+=usr/share/locale/uk_UA.KOI8-U/LC_NUMERIC OLD_FILES+=usr/share/locale/uk_UA.KOI8-U/LC_TIME OLD_DIRS+=usr/share/locale/uk_UA.UTF-8 OLD_FILES+=usr/share/locale/uk_UA.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/uk_UA.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/uk_UA.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/uk_UA.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/uk_UA.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/uk_UA.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/zh_CN.eucCN OLD_FILES+=usr/share/locale/zh_CN.eucCN/LC_COLLATE OLD_FILES+=usr/share/locale/zh_CN.eucCN/LC_CTYPE OLD_FILES+=usr/share/locale/zh_CN.eucCN/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_CN.eucCN/LC_MONETARY OLD_FILES+=usr/share/locale/zh_CN.eucCN/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_CN.eucCN/LC_TIME OLD_DIRS+=usr/share/locale/zh_CN.GB18030 OLD_FILES+=usr/share/locale/zh_CN.GB18030/LC_COLLATE OLD_FILES+=usr/share/locale/zh_CN.GB18030/LC_CTYPE OLD_FILES+=usr/share/locale/zh_CN.GB18030/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_CN.GB18030/LC_MONETARY OLD_FILES+=usr/share/locale/zh_CN.GB18030/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_CN.GB18030/LC_TIME OLD_DIRS+=usr/share/locale/zh_CN.GB2312 OLD_FILES+=usr/share/locale/zh_CN.GB2312/LC_COLLATE OLD_FILES+=usr/share/locale/zh_CN.GB2312/LC_CTYPE OLD_FILES+=usr/share/locale/zh_CN.GB2312/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_CN.GB2312/LC_MONETARY OLD_FILES+=usr/share/locale/zh_CN.GB2312/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_CN.GB2312/LC_TIME OLD_DIRS+=usr/share/locale/zh_CN.GBK OLD_FILES+=usr/share/locale/zh_CN.GBK/LC_COLLATE OLD_FILES+=usr/share/locale/zh_CN.GBK/LC_CTYPE OLD_FILES+=usr/share/locale/zh_CN.GBK/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_CN.GBK/LC_MONETARY OLD_FILES+=usr/share/locale/zh_CN.GBK/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_CN.GBK/LC_TIME OLD_DIRS+=usr/share/locale/zh_CN.UTF-8 OLD_FILES+=usr/share/locale/zh_CN.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/zh_CN.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/zh_CN.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_CN.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/zh_CN.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_CN.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/zh_HK.UTF-8 OLD_FILES+=usr/share/locale/zh_HK.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/zh_HK.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/zh_HK.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_HK.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/zh_HK.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_HK.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/zh_TW.Big5 OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_COLLATE OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_CTYPE OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_MONETARY OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_TIME OLD_DIRS+=usr/share/locale/zh_TW.UTF-8 OLD_FILES+=usr/share/locale/zh_TW.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/zh_TW.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/zh_TW.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_TW.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/zh_TW.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_TW.UTF-8/LC_TIME .endif .if ${MK_LOCATE} == no OLD_FILES+=etc/locate.rc OLD_FILES+=etc/periodic/weekly/310.locate OLD_FILES+=usr/bin/locate OLD_FILES+=usr/libexec/locate.bigram OLD_FILES+=usr/libexec/locate.code OLD_FILES+=usr/libexec/locate.concatdb OLD_FILES+=usr/libexec/locate.mklocatedb OLD_FILES+=usr/libexec/locate.updatedb OLD_FILES+=usr/share/man/man1/locate.1.gz OLD_FILES+=usr/share/man/man8/locate.updatedb.8.gz OLD_FILES+=usr/share/man/man8/updatedb.8.gz .endif .if ${MK_LPR} == no OLD_FILES+=etc/hosts.lpd OLD_FILES+=etc/printcap OLD_FILES+=etc/newsyslog.conf.d/lpr.conf OLD_FILES+=etc/rc.d/lpd OLD_FILES+=etc/syslog.d/lpr.conf OLD_FILES+=usr/bin/lp OLD_FILES+=usr/bin/lpq OLD_FILES+=usr/bin/lpr OLD_FILES+=usr/bin/lprm OLD_FILES+=usr/libexec/lpr/ru/bjc-240.sh.sample OLD_FILES+=usr/libexec/lpr/ru/koi2alt OLD_FILES+=usr/libexec/lpr/ru/koi2855 OLD_DIRS+=usr/libexec/lpr/ru OLD_FILES+=usr/libexec/lpr/lpf OLD_DIRS+=usr/libexec/lpr OLD_FILES+=usr/sbin/chkprintcap OLD_FILES+=usr/sbin/lpc OLD_FILES+=usr/sbin/lpd OLD_FILES+=usr/sbin/lptest OLD_FILES+=usr/sbin/pac OLD_FILES+=usr/share/doc/smm/07.lpd/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/07.lpd OLD_FILES+=usr/share/examples/etc/hosts.lpd OLD_FILES+=usr/share/examples/etc/printcap OLD_FILES+=usr/share/man/man1/lp.1.gz OLD_FILES+=usr/share/man/man1/lpq.1.gz OLD_FILES+=usr/share/man/man1/lpr.1.gz OLD_FILES+=usr/share/man/man1/lprm.1.gz OLD_FILES+=usr/share/man/man1/lptest.1.gz OLD_FILES+=usr/share/man/man5/printcap.5.gz OLD_FILES+=usr/share/man/man8/chkprintcap.8.gz OLD_FILES+=usr/share/man/man8/lpc.8.gz OLD_FILES+=usr/share/man/man8/lpd.8.gz OLD_FILES+=usr/share/man/man8/pac.8.gz .endif .if ${MK_MAIL} == no OLD_FILES+=etc/aliases OLD_FILES+=etc/mail.rc OLD_FILES+=etc/mail/aliases OLD_FILES+=etc/mail/mailer.conf OLD_FILES+=etc/periodic/daily/130.clean-msgs OLD_FILES+=usr/bin/Mail OLD_FILES+=usr/bin/biff OLD_FILES+=usr/bin/from OLD_FILES+=usr/bin/mail OLD_FILES+=usr/bin/mailx OLD_FILES+=usr/bin/msgs OLD_FILES+=usr/libexec/comsat OLD_FILES+=usr/share/examples/etc/mail.rc OLD_FILES+=usr/share/man/man1/Mail.1.gz OLD_FILES+=usr/share/man/man1/biff.1.gz OLD_FILES+=usr/share/man/man1/from.1.gz OLD_FILES+=usr/share/man/man1/mail.1.gz OLD_FILES+=usr/share/man/man1/mailx.1.gz OLD_FILES+=usr/share/man/man1/msgs.1.gz OLD_FILES+=usr/share/man/man8/comsat.8.gz OLD_FILES+=usr/share/misc/mail.help OLD_FILES+=usr/share/misc/mail.tildehelp .endif .if ${MK_MAILWRAPPER} == no OLD_FILES+=etc/mail/mailer.conf # Don't remove, for no mailwrapper case: # /usr/sbin/sendmail -> /usr/sbin/mailwrapper # /usr/sbin/mailwrapper -> /usr/libexec/sendmail/sendmail #OLD_FILES+=usr/sbin/mailwrapper OLD_FILES+=usr/share/man/man8/mailwrapper.8.gz .endif .if ${MK_MAKE} == no OLD_FILES+=usr/bin/make OLD_FILES+=usr/share/man/man1/make.1.gz OLD_FILES+=usr/share/mk/atf.test.mk OLD_FILES+=usr/share/mk/bsd.README OLD_FILES+=usr/share/mk/bsd.arch.inc.mk OLD_FILES+=usr/share/mk/bsd.compiler.mk OLD_FILES+=usr/share/mk/bsd.cpu.mk OLD_FILES+=usr/share/mk/bsd.crunchgen.mk OLD_FILES+=usr/share/mk/bsd.dep.mk OLD_FILES+=usr/share/mk/bsd.doc.mk OLD_FILES+=usr/share/mk/bsd.dtb.mk OLD_FILES+=usr/share/mk/bsd.endian.mk OLD_FILES+=usr/share/mk/bsd.files.mk OLD_FILES+=usr/share/mk/bsd.incs.mk OLD_FILES+=usr/share/mk/bsd.info.mk OLD_FILES+=usr/share/mk/bsd.init.mk OLD_FILES+=usr/share/mk/bsd.kmod.mk OLD_FILES+=usr/share/mk/bsd.lib.mk OLD_FILES+=usr/share/mk/bsd.libnames.mk OLD_FILES+=usr/share/mk/bsd.links.mk OLD_FILES+=usr/share/mk/bsd.man.mk OLD_FILES+=usr/share/mk/bsd.mkopt.mk OLD_FILES+=usr/share/mk/bsd.nls.mk OLD_FILES+=usr/share/mk/bsd.obj.mk OLD_FILES+=usr/share/mk/bsd.opts.mk OLD_FILES+=usr/share/mk/bsd.own.mk OLD_FILES+=usr/share/mk/bsd.port.mk OLD_FILES+=usr/share/mk/bsd.port.options.mk OLD_FILES+=usr/share/mk/bsd.port.post.mk OLD_FILES+=usr/share/mk/bsd.port.pre.mk OLD_FILES+=usr/share/mk/bsd.port.subdir.mk OLD_FILES+=usr/share/mk/bsd.prog.mk OLD_FILES+=usr/share/mk/bsd.progs.mk OLD_FILES+=usr/share/mk/bsd.snmpmod.mk OLD_FILES+=usr/share/mk/bsd.subdir.mk OLD_FILES+=usr/share/mk/bsd.symver.mk OLD_FILES+=usr/share/mk/bsd.sys.mk OLD_FILES+=usr/share/mk/bsd.test.mk OLD_FILES+=usr/share/mk/plain.test.mk OLD_FILES+=usr/share/mk/suite.test.mk OLD_FILES+=usr/share/mk/sys.mk OLD_FILES+=usr/share/mk/tap.test.mk OLD_FILES+=usr/share/mk/version_gen.awk OLD_FILES+=usr/tests/usr.bin/bmake/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/archives/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.status.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.status.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.status.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.status.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.status.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stderr.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stderr.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stderr.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stderr.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stdout.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stdout.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stdout.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/expected.stdout.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd/libtest.a OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.status.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.status.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.status.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.status.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.status.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stderr.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stderr.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stderr.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stderr.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stdout.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stdout.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stdout.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/expected.stdout.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_44bsd_mod/libtest.a OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.status.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.status.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.status.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.status.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.status.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stderr.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stderr.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stderr.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stderr.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stdout.4 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stdout.5 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stdout.6 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/expected.stdout.7 OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/archives/fmt_oldbsd/libtest.a OLD_FILES+=usr/tests/usr.bin/bmake/basic/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/basic/t0/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/basic/t0/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t0/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t0/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t0/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/basic/t1/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/basic/t1/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/basic/t1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t1/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/basic/t2/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/basic/t2/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/basic/t2/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t2/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t2/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t2/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/basic/t3/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/basic/t3/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t3/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t3/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/basic/t3/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/common.sh OLD_FILES+=usr/tests/usr.bin/bmake/execution/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/execution/ellipsis/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/execution/ellipsis/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/execution/ellipsis/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/ellipsis/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/ellipsis/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/ellipsis/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/execution/empty/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/execution/empty/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/execution/empty/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/empty/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/empty/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/empty/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/execution/joberr/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/execution/joberr/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/execution/joberr/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/joberr/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/joberr/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/joberr/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/execution/plus/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/execution/plus/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/execution/plus/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/plus/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/plus/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/execution/plus/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/shell/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/shell/builtin/sh OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/shell/meta/sh OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/shell/path/sh OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/shell/path_select/shell OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/shell/replace/shell OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/shell/select/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/basic/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/basic/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/basic/TEST1.a OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/basic/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/basic/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/basic/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/basic/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild1/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild1/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild1/TEST1.a OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild1/TEST2.a OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild1/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild2/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild2/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild2/TEST1.a OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild2/TEST2.a OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild2/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild2/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild2/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/suffixes/src_wild2/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/syntax/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/syntax/directive-t0/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/syntax/directive-t0/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/syntax/directive-t0/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/directive-t0/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/directive-t0/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/directive-t0/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.status.3 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.status.4 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.status.5 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stderr.4 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stderr.5 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stdout.4 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/expected.stdout.5 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/enl/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/funny-targets/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/syntax/semi/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/2/1/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/2/1/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/2/1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/2/1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/2/1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/2/1/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/2/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/mk/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t0/mk/sys.mk OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/2/1/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/2/1/cleanup OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/2/1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/2/1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/2/1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/2/1/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/2/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/mk/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t1/mk/sys.mk OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/2/1/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/2/1/cleanup OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/2/1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/2/1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/2/1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/2/1/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/2/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/mk/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/sysmk/t2/mk/sys.mk OLD_FILES+=usr/tests/usr.bin/bmake/test-new.mk OLD_FILES+=usr/tests/usr.bin/bmake/variables/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_M/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_M/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_M/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_M/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_M/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_M/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.status.3 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/bmake/variables/modifier_t/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/expected.status.2 OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/bmake/variables/opt_V/legacy_test OLD_FILES+=usr/tests/usr.bin/bmake/variables/t0/Kyuafile OLD_FILES+=usr/tests/usr.bin/bmake/variables/t0/Makefile.test OLD_FILES+=usr/tests/usr.bin/bmake/variables/t0/expected.status.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/t0/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/t0/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/bmake/variables/t0/legacy_test .endif .if ${MK_MAN} == no MAN_FILES!=find ${DESTDIR}/usr/share/man ${DESTDIR}/usr/share/openssl/man -type f | sed -e 's,^${DESTDIR}/,,'; echo OLD_FILES+=${MAN_FILES} MAN_DIRS!=find ${DESTDIR}/usr/share/man ${DESTDIR}/usr/share/openssl/man -type d | sed -e 's,^${DESTDIR}/,,'; echo OLD_DIRS+=${MAN_DIRS} .endif .if ${MK_MAN_UTILS} == no OLD_FILES+=etc/periodic/weekly/320.whatis OLD_FILES+=usr/bin/apropos OLD_FILES+=usr/bin/makewhatis OLD_FILES+=usr/bin/man OLD_FILES+=usr/bin/manpath OLD_FILES+=usr/bin/whatis OLD_FILES+=usr/libexec/makewhatis.local OLD_FILES+=usr/sbin/manctl OLD_FILES+=usr/share/man/man1/apropos.1.gz OLD_FILES+=usr/share/man/man1/makewhatis.1.gz OLD_FILES+=usr/share/man/man1/man.1.gz OLD_FILES+=usr/share/man/man1/manpath.1.gz OLD_FILES+=usr/share/man/man1/whatis.1.gz OLD_FILES+=usr/share/man/man5/man.conf.5.gz OLD_FILES+=usr/share/man/man8/makewhatis.local.8.gz OLD_FILES+=usr/share/man/man8/manctl.8.gz OLD_FILES+=usr/share/man/whatis OLD_FILES+=usr/share/openssl/man/whatis .endif .if ${MK_NETCAT} == no OLD_FILES+=rescue/nc OLD_FILES+=usr/bin/nc OLD_FILES+=usr/share/man/man1/nc.1.gz .endif .if ${MK_NETGRAPH} == no OLD_FILES+=usr/include/netgraph.h OLD_FILES+=usr/lib/libnetgraph.a OLD_FILES+=usr/lib/libnetgraph.so OLD_LIBS+=usr/lib/libnetgraph.so.4 OLD_FILES+=usr/lib/libnetgraph_p.a OLD_FILES+=usr/libexec/pppoed OLD_FILES+=usr/sbin/flowctl OLD_FILES+=usr/sbin/lmcconfig OLD_FILES+=usr/sbin/ngctl OLD_FILES+=usr/sbin/nghook OLD_FILES+=usr/share/man/man3/NgAllocRecvAsciiMsg.3.gz OLD_FILES+=usr/share/man/man3/NgAllocRecvData.3.gz OLD_FILES+=usr/share/man/man3/NgAllocRecvMsg.3.gz OLD_FILES+=usr/share/man/man3/NgMkSockNode.3.gz OLD_FILES+=usr/share/man/man3/NgNameNode.3.gz OLD_FILES+=usr/share/man/man3/NgRecvAsciiMsg.3.gz OLD_FILES+=usr/share/man/man3/NgRecvData.3.gz OLD_FILES+=usr/share/man/man3/NgRecvMsg.3.gz OLD_FILES+=usr/share/man/man3/NgSendAsciiMsg.3.gz OLD_FILES+=usr/share/man/man3/NgSendData.3.gz OLD_FILES+=usr/share/man/man3/NgSendMsg.3.gz OLD_FILES+=usr/share/man/man3/NgSendReplyMsg.3.gz OLD_FILES+=usr/share/man/man3/NgSetDebug.3.gz OLD_FILES+=usr/share/man/man3/NgSetErrLog.3.gz OLD_FILES+=usr/share/man/man3/netgraph.3.gz OLD_FILES+=usr/share/man/man8/flowctl.8.gz OLD_FILES+=usr/share/man/man8/lmcconfig.8.gz OLD_FILES+=usr/share/man/man8/ngctl.8.gz OLD_FILES+=usr/share/man/man8/nghook.8.gz OLD_FILES+=usr/share/man/man8/pppoed.8.gz .endif .if ${MK_IPFW} == no || ${MK_NETGRAPH} == no OLD_FILES+=etc/rc.d/ipfw_netflow .endif .if ${MK_NETGRAPH_SUPPORT} == no OLD_FILES+=usr/include/bsnmp/snmp_netgraph.h OLD_FILES+=usr/lib/snmp_netgraph.so OLD_LIBS+=usr/lib/snmp_netgraph.so.6 OLD_FILES+=usr/share/man/man3/snmp_netgraph.3.gz OLD_FILES+=usr/share/snmp/defs/netgraph_tree.def OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-NETGRAPH.txt .endif .if ${MK_NETLINK} == no OLD_FILES+=usr.bin/genl OLD_FILES+=usr/share/man/man1/genl.1.gz .endif .if ${MK_NIS} == no OLD_FILES+=etc/rc.d/nisdomain OLD_FILES+=etc/rc.d/ypbind OLD_FILES+=etc/rc.d/ypldap OLD_FILES+=etc/rc.d/yppasswdd OLD_FILES+=etc/rc.d/ypserv OLD_FILES+=etc/rc.d/ypset OLD_FILES+=etc/rc.d/ypupdated OLD_FILES+=etc/rc.d/ypxfrd OLD_FILES+=usr/bin/ypcat OLD_FILES+=usr/bin/ypchfn OLD_FILES+=usr/bin/ypchpass OLD_FILES+=usr/bin/ypchsh OLD_FILES+=usr/bin/ypmatch OLD_FILES+=usr/bin/yppasswd OLD_FILES+=usr/bin/ypwhich OLD_FILES+=usr/include/ypclnt.h OLD_FILES+=usr/lib/libypclnt.a OLD_FILES+=usr/lib/libypclnt.so OLD_LIBS+=usr/lib/libypclnt.so.4 OLD_FILES+=usr/lib/libypclnt_p.a OLD_FILES+=usr/libexec/mknetid OLD_FILES+=usr/libexec/yppwupdate OLD_FILES+=usr/libexec/ypxfr OLD_FILES+=usr/sbin/rpc.yppasswdd OLD_FILES+=usr/sbin/rpc.ypupdated OLD_FILES+=usr/sbin/rpc.ypxfrd OLD_FILES+=usr/sbin/yp_mkdb OLD_FILES+=usr/sbin/ypbind OLD_FILES+=usr/sbin/ypinit OLD_FILES+=usr/sbin/ypldap OLD_FILES+=usr/sbin/yppoll OLD_FILES+=usr/sbin/yppush OLD_FILES+=usr/sbin/ypserv OLD_FILES+=usr/sbin/ypset OLD_FILES+=usr/share/man/man1/ypcat.1.gz OLD_FILES+=usr/share/man/man1/ypchfn.1.gz OLD_FILES+=usr/share/man/man1/ypchpass.1.gz OLD_FILES+=usr/share/man/man1/ypchsh.1.gz OLD_FILES+=usr/share/man/man1/ypmatch.1.gz OLD_FILES+=usr/share/man/man1/yppasswd.1.gz OLD_FILES+=usr/share/man/man1/ypwhich.1.gz OLD_FILES+=usr/share/man/man5/netid.5.gz OLD_FILES+=usr/share/man/man5/ypldap.conf.5.gz OLD_FILES+=usr/share/man/man8/mknetid.8.gz OLD_FILES+=usr/share/man/man8/rpc.yppasswdd.8.gz OLD_FILES+=usr/share/man/man8/rpc.ypxfrd.8.gz OLD_FILES+=usr/share/man/man8/NIS.8.gz OLD_FILES+=usr/share/man/man8/YP.8.gz OLD_FILES+=usr/share/man/man8/yp.8.gz OLD_FILES+=usr/share/man/man8/nis.8.gz OLD_FILES+=usr/share/man/man8/yp_mkdb.8.gz OLD_FILES+=usr/share/man/man8/ypbind.8.gz OLD_FILES+=usr/share/man/man8/ypinit.8.gz OLD_FILES+=usr/share/man/man8/ypldap.8.gz OLD_FILES+=usr/share/man/man8/yppoll.8.gz OLD_FILES+=usr/share/man/man8/yppush.8.gz OLD_FILES+=usr/share/man/man8/ypserv.8.gz OLD_FILES+=usr/share/man/man8/ypset.8.gz OLD_FILES+=usr/share/man/man8/ypxfr.8.gz OLD_FILES+=var/yp/Makefile OLD_FILES+=var/yp/Makefile.dist OLD_DIRS+=var/yp .endif .if ${MK_NLS} == no OLD_DIRS+=usr/share/nls/ OLD_DIRS+=usr/share/nls/C OLD_FILES+=usr/share/nls/C/ee.cat OLD_DIRS+=usr/share/nls/af_ZA.ISO8859-1 OLD_DIRS+=usr/share/nls/af_ZA.ISO8859-15 OLD_DIRS+=usr/share/nls/af_ZA.UTF-8 OLD_DIRS+=usr/share/nls/am_ET.UTF-8 OLD_DIRS+=usr/share/nls/be_BY.CP1131 OLD_DIRS+=usr/share/nls/be_BY.CP1251 OLD_DIRS+=usr/share/nls/be_BY.ISO8859-5 OLD_DIRS+=usr/share/nls/be_BY.UTF-8 OLD_FILES+=usr/share/nls/be_BY.UTF-8/libc.cat OLD_DIRS+=usr/share/nls/bg_BG.CP1251 OLD_DIRS+=usr/share/nls/bg_BG.UTF-8 OLD_DIRS+=usr/share/nls/ca_ES.ISO8859-1 OLD_FILES+=usr/share/nls/ca_ES.ISO8859-1/libc.cat OLD_DIRS+=usr/share/nls/ca_ES.ISO8859-15 OLD_DIRS+=usr/share/nls/ca_ES.UTF-8 OLD_DIRS+=usr/share/nls/cs_CZ.ISO8859-2 OLD_DIRS+=usr/share/nls/cs_CZ.UTF-8 OLD_DIRS+=usr/share/nls/da_DK.ISO8859-1 OLD_DIRS+=usr/share/nls/da_DK.ISO8859-15 OLD_DIRS+=usr/share/nls/da_DK.UTF-8 OLD_DIRS+=usr/share/nls/de_AT.ISO8859-1 OLD_FILES+=usr/share/nls/de_AT.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/de_AT.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/de_AT.ISO8859-15 OLD_FILES+=usr/share/nls/de_AT.ISO8859-15/ee.cat OLD_FILES+=usr/share/nls/de_AT.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/de_AT.UTF-8 OLD_FILES+=usr/share/nls/de_AT.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/de_CH.ISO8859-1 OLD_FILES+=usr/share/nls/de_CH.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/de_CH.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/de_CH.ISO8859-15 OLD_FILES+=usr/share/nls/de_CH.ISO8859-15/ee.cat OLD_FILES+=usr/share/nls/de_CH.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/de_CH.UTF-8 OLD_FILES+=usr/share/nls/de_CH.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/de_DE.ISO8859-1 OLD_FILES+=usr/share/nls/de_DE.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/de_DE.ISO8859-1/libc.cat OLD_FILES+=usr/share/nls/de_DE.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/de_DE.ISO8859-15 OLD_FILES+=usr/share/nls/de_DE.ISO8859-15/ee.cat OLD_FILES+=usr/share/nls/de_DE.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/de_DE.UTF-8 OLD_FILES+=usr/share/nls/de_DE.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/el_GR.ISO8859-7 OLD_FILES+=usr/share/nls/el_GR.ISO8859-7/libc.cat OLD_FILES+=usr/share/nls/el_GR.ISO8859-7/tcsh.cat OLD_DIRS+=usr/share/nls/el_GR.UTF-8 OLD_FILES+=usr/share/nls/el_GR.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/en_AU.ISO8859-1 OLD_DIRS+=usr/share/nls/en_AU.ISO8859-15 OLD_DIRS+=usr/share/nls/en_AU.US-ASCII OLD_DIRS+=usr/share/nls/en_AU.UTF-8 OLD_DIRS+=usr/share/nls/en_CA.ISO8859-1 OLD_FILES+=usr/share/nls/en_US.ISO8859-1/ee.cat OLD_DIRS+=usr/share/nls/en_CA.ISO8859-15 OLD_DIRS+=usr/share/nls/en_CA.US-ASCII OLD_DIRS+=usr/share/nls/en_CA.UTF-8 OLD_DIRS+=usr/share/nls/en_GB.ISO8859-1 OLD_DIRS+=usr/share/nls/en_GB.ISO8859-15 OLD_DIRS+=usr/share/nls/en_GB.US-ASCII OLD_DIRS+=usr/share/nls/en_GB.UTF-8 OLD_DIRS+=usr/share/nls/en_IE.UTF-8 OLD_DIRS+=usr/share/nls/en_NZ.ISO8859-1 OLD_DIRS+=usr/share/nls/en_NZ.ISO8859-15 OLD_DIRS+=usr/share/nls/en_NZ.US-ASCII OLD_DIRS+=usr/share/nls/en_NZ.UTF-8 OLD_DIRS+=usr/share/nls/en_US.ISO8859-1 OLD_DIRS+=usr/share/nls/en_US.ISO8859-15 OLD_FILES+=usr/share/nls/en_US.ISO8859-15/ee.cat OLD_DIRS+=usr/share/nls/en_US.UTF-8 OLD_DIRS+=usr/share/nls/es_ES.UTF-8 OLD_FILES+=usr/share/nls/es_ES.ISO8859-1/libc.cat OLD_FILES+=usr/share/nls/es_ES.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/es_ES.ISO8859-1 OLD_DIRS+=usr/share/nls/es_ES.ISO8859-15 OLD_FILES+=usr/share/nls/es_ES.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/es_ES.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/et_EE.ISO8859-15 OLD_FILES+=usr/share/nls/et_EE.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/et_EE.UTF-8 OLD_FILES+=usr/share/nls/et_EE.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/fi_FI.ISO8859-1 OLD_FILES+=usr/share/nls/fi_FI.ISO8859-1/libc.cat OLD_FILES+=usr/share/nls/fi_FI.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/fi_FI.ISO8859-15 OLD_FILES+=usr/share/nls/fi_FI.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/fi_FI.UTF-8 OLD_FILES+=usr/share/nls/fi_FI.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/fr_BE.ISO8859-1 OLD_FILES+=usr/share/nls/fr_BE.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/fr_BE.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/fr_BE.ISO8859-15 OLD_FILES+=usr/share/nls/fr_BE.ISO8859-15/ee.cat OLD_FILES+=usr/share/nls/fr_BE.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/fr_BE.UTF-8 OLD_FILES+=usr/share/nls/fr_BE.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/fr_CA.ISO8859-1 OLD_FILES+=usr/share/nls/fr_CA.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/fr_CA.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/fr_CA.ISO8859-15 OLD_FILES+=usr/share/nls/fr_CA.ISO8859-15/ee.cat OLD_FILES+=usr/share/nls/fr_CA.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/fr_CA.UTF-8 OLD_FILES+=usr/share/nls/fr_CA.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/fr_CH.ISO8859-1 OLD_FILES+=usr/share/nls/fr_CH.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/fr_CH.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/fr_CH.ISO8859-15 OLD_FILES+=usr/share/nls/fr_CH.ISO8859-15/ee.cat OLD_FILES+=usr/share/nls/fr_CH.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/fr_CH.UTF-8 OLD_FILES+=usr/share/nls/fr_CH.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/fr_FR.ISO8859-1 OLD_FILES+=usr/share/nls/fr_FR.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/fr_FR.ISO8859-1/libc.cat OLD_FILES+=usr/share/nls/fr_FR.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/fr_FR.ISO8859-15 OLD_FILES+=usr/share/nls/fr_FR.ISO8859-15/ee.cat OLD_FILES+=usr/share/nls/fr_FR.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/fr_FR.UTF-8 OLD_FILES+=usr/share/nls/fr_FR.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/gl_ES.ISO8859-1 OLD_FILES+=usr/share/nls/gl_ES.ISO8859-1/libc.cat OLD_DIRS+=usr/share/nls/he_IL.UTF-8 OLD_DIRS+=usr/share/nls/hi_IN.ISCII-DEV OLD_DIRS+=usr/share/nls/hr_HR.ISO8859-2 OLD_DIRS+=usr/share/nls/hu_HU.ISO8859-2 OLD_FILES+=usr/share/nls/hu_HU.ISO8859-2/ee.cat OLD_FILES+=usr/share/nls/hu_HU.ISO8859-2/libc.cat OLD_DIRS+=usr/share/nls/hr_HR.UTF-8 OLD_DIRS+=usr/share/nls/hu_HU.UTF-8 OLD_DIRS+=usr/share/nls/hy_AM.ARMSCII-8 OLD_DIRS+=usr/share/nls/hy_AM.UTF-8 OLD_DIRS+=usr/share/nls/is_IS.ISO8859-1 OLD_DIRS+=usr/share/nls/is_IS.ISO8859-15 OLD_DIRS+=usr/share/nls/is_IS.UTF-8 OLD_DIRS+=usr/share/nls/it_CH.ISO8859-1 OLD_FILES+=usr/share/nls/it_CH.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/it_CH.ISO8859-15 OLD_FILES+=usr/share/nls/it_CH.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/it_CH.UTF-8 OLD_FILES+=usr/share/nls/it_CH.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/it_IT.ISO8859-1 OLD_FILES+=usr/share/nls/it_IT.ISO8859-1/tcsh.cat OLD_DIRS+=usr/share/nls/it_IT.ISO8859-15 OLD_FILES+=usr/share/nls/it_IT.ISO8859-15/libc.cat OLD_FILES+=usr/share/nls/it_IT.ISO8859-15/tcsh.cat OLD_DIRS+=usr/share/nls/it_IT.UTF-8 OLD_FILES+=usr/share/nls/it_IT.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/ja_JP.SJIS OLD_FILES+=usr/share/nls/ja_JP.SJIS/tcsh.cat OLD_DIRS+=usr/share/nls/ja_JP.UTF-8 OLD_FILES+=usr/share/nls/ja_JP.UTF-8/libc.cat OLD_FILES+=usr/share/nls/ja_JP.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/ja_JP.eucJP OLD_FILES+=usr/share/nls/ja_JP.eucJP/libc.cat OLD_FILES+=usr/share/nls/ja_JP.eucJP/tcsh.cat OLD_DIRS+=usr/share/nls/kk_KZ.PT154 OLD_DIRS+=usr/share/nls/kk_KZ.UTF-8 OLD_DIRS+=usr/share/nls/ko_KR.CP949 OLD_DIRS+=usr/share/nls/ko_KR.UTF-8 OLD_FILES+=usr/share/nls/ko_KR.UTF-8/libc.cat OLD_DIRS+=usr/share/nls/ko_KR.eucKR OLD_FILES+=usr/share/nls/ko_KR.eucKR/libc.cat OLD_DIRS+=usr/share/nls/lv_LV.UTF-8 OLD_DIRS+=usr/share/nls/lt_LT.ISO8859-13 OLD_DIRS+=usr/share/nls/lt_LT.UTF-8 OLD_DIRS+=usr/share/nls/lv_LV.ISO8859-13 OLD_DIRS+=usr/share/nls/mn_MN.UTF-8 OLD_FILES+=usr/share/nls/mn_MN.UTF-8/libc.cat OLD_DIRS+=usr/share/nls/nl_BE.ISO8859-1 OLD_DIRS+=usr/share/nls/nl_BE.ISO8859-15 OLD_DIRS+=usr/share/nls/nl_BE.UTF-8 OLD_DIRS+=usr/share/nls/no_NO.ISO8859-1 OLD_FILES+=usr/share/nls/nl_NL.ISO8859-1/libc.cat OLD_DIRS+=usr/share/nls/nl_NL.ISO8859-15 OLD_DIRS+=usr/share/nls/nl_NL.ISO8859-1 OLD_FILES+=usr/share/nls/no_NO.ISO8859-1/libc.cat OLD_DIRS+=usr/share/nls/no_NO.ISO8859-15 OLD_DIRS+=usr/share/nls/nl_NL.UTF-8 OLD_DIRS+=usr/share/nls/no_NO.UTF-8 OLD_DIRS+=usr/share/nls/pl_PL.ISO8859-2 OLD_FILES+=usr/share/nls/pl_PL.ISO8859-2/ee.cat OLD_FILES+=usr/share/nls/pl_PL.ISO8859-2/libc.cat OLD_DIRS+=usr/share/nls/pl_PL.UTF-8 OLD_DIRS+=usr/share/nls/pt_BR.ISO8859-1 OLD_DIRS+=usr/share/nls/pt_BR.UTF-8 OLD_DIRS+=usr/share/nls/pt_PT.ISO8859-1 OLD_FILES+=usr/share/nls/pt_BR.ISO8859-1/ee.cat OLD_FILES+=usr/share/nls/pt_BR.ISO8859-1/libc.cat OLD_FILES+=usr/share/nls/pt_PT.ISO8859-1/ee.cat OLD_DIRS+=usr/share/nls/pt_PT.ISO8859-15 OLD_DIRS+=usr/share/nls/pt_PT.UTF-8 OLD_DIRS+=usr/share/nls/ro_RO.ISO8859-2 OLD_DIRS+=usr/share/nls/ro_RO.UTF-8 OLD_DIRS+=usr/share/nls/ru_RU.CP1251 OLD_FILES+=usr/share/nls/ru_RU.CP1251/tcsh.cat OLD_DIRS+=usr/share/nls/ru_RU.CP866 OLD_FILES+=usr/share/nls/ru_RU.CP866/tcsh.cat OLD_DIRS+=usr/share/nls/ru_RU.ISO8859-5 OLD_FILES+=usr/share/nls/ru_RU.ISO8859-5/tcsh.cat OLD_DIRS+=usr/share/nls/ru_RU.KOI8-R OLD_FILES+=usr/share/nls/ru_RU.KOI8-R/ee.cat OLD_FILES+=usr/share/nls/ru_RU.KOI8-R/libc.cat OLD_FILES+=usr/share/nls/ru_RU.KOI8-R/tcsh.cat OLD_DIRS+=usr/share/nls/ru_RU.UTF-8 OLD_FILES+=usr/share/nls/ru_RU.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/sk_SK.ISO8859-2 OLD_FILES+=usr/share/nls/sk_SK.ISO8859-2/libc.cat OLD_DIRS+=usr/share/nls/sk_SK.UTF-8 OLD_DIRS+=usr/share/nls/sl_SI.ISO8859-2 OLD_DIRS+=usr/share/nls/sl_SI.UTF-8 OLD_DIRS+=usr/share/nls/sr_YU.ISO8859-2 OLD_DIRS+=usr/share/nls/sr_YU.ISO8859-5 OLD_DIRS+=usr/share/nls/sr_YU.UTF-8 OLD_DIRS+=usr/share/nls/sv_SE.ISO8859-1 OLD_FILES+=usr/share/nls/sv_SE.ISO8859-1/libc.cat OLD_DIRS+=usr/share/nls/sv_SE.ISO8859-15 OLD_DIRS+=usr/share/nls/sv_SE.UTF-8 OLD_DIRS+=usr/share/nls/tr_TR.ISO8859-9 OLD_DIRS+=usr/share/nls/tr_TR.UTF-8 OLD_DIRS+=usr/share/nls/uk_UA.ISO8859-5 OLD_FILES+=usr/share/nls/uk_UA.ISO8859-5/tcsh.cat OLD_DIRS+=usr/share/nls/uk_UA.KOI8-U OLD_FILES+=usr/share/nls/uk_UA.KOI8-U/ee.cat OLD_FILES+=usr/share/nls/uk_UA.KOI8-U/tcsh.cat OLD_DIRS+=usr/share/nls/uk_UA.UTF-8 OLD_FILES+=usr/share/nls/uk_UA.UTF-8/libc.cat OLD_FILES+=usr/share/nls/uk_UA.UTF-8/tcsh.cat OLD_DIRS+=usr/share/nls/zh_CN.GB18030 OLD_FILES+=usr/share/nls/zh_CN.GB18030/libc.cat OLD_DIRS+=usr/share/nls/zh_CN.GBK OLD_DIRS+=usr/share/nls/zh_CN.GB2312 OLD_FILES+=usr/share/nls/zh_CN.GB2312/libc.cat OLD_DIRS+=usr/share/nls/zh_CN.UTF-8 OLD_FILES+=usr/share/nls/zh_CN.UTF-8/libc.cat OLD_DIRS+=usr/share/nls/zh_CN.eucCN OLD_DIRS+=usr/share/nls/zh_HK.UTF-8 OLD_DIRS+=usr/share/nls/zh_TW.UTF-8 OLD_FILES+=usr/tests/bin/sh/builtins/locale1.0 .endif .if ${MK_NLS_CATALOGS} == no OLD_FILES+=usr/share/nls/de_AT.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/de_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/de_DE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/el_GR.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/es_ES.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/et_EE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fi_FI.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_BE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_CA.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_FR.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/it_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/it_IT.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/ja_JP.SJIS/tcsh.cat OLD_FILES+=usr/share/nls/ja_JP.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.CP1251/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.CP866/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.ISO8859-5/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/uk_UA.ISO8859-5/tcsh.cat OLD_FILES+=usr/share/nls/uk_UA.UTF-8/tcsh.cat .endif .if ${MK_NS_CACHING} == no OLD_FILES+=etc/nscd.conf OLD_FILES+=etc/rc.d/nscd OLD_FILES+=usr/sbin/nscd OLD_FILES+=usr/share/examples/etc/nscd.conf OLD_FILES+=usr/share/man/man5/nscd.conf.5.gz OLD_FILES+=usr/share/man/man8/nscd.8.gz .endif .if ${MK_NTP} == no OLD_FILES+=etc/ntp/leap-seconds OLD_DIRS+=etc/ntp OLD_FILES+=etc/ntp.conf OLD_FILES+=etc/periodic/daily/480.status-ntpd OLD_FILES+=etc/periodic/daily/480.leapfile-ntpd OLD_FILES+=etc/rc.d/ntpd OLD_FILES+=usr/bin/ntpq OLD_FILES+=usr/sbin/ntp-keygen OLD_FILES+=usr/sbin/ntpd OLD_FILES+=usr/sbin/ntpdate OLD_FILES+=usr/sbin/ntpdc OLD_FILES+=usr/sbin/ntptime OLD_FILES+=usr/sbin/sntp OLD_FILES+=usr/share/doc/ntp/access.html OLD_FILES+=usr/share/doc/ntp/accopt.html OLD_FILES+=usr/share/doc/ntp/assoc.html OLD_FILES+=usr/share/doc/ntp/audio.html OLD_FILES+=usr/share/doc/ntp/authentic.html OLD_FILES+=usr/share/doc/ntp/authopt.html OLD_FILES+=usr/share/doc/ntp/autokey.html OLD_FILES+=usr/share/doc/ntp/bugs.html OLD_FILES+=usr/share/doc/ntp/build.html OLD_FILES+=usr/share/doc/ntp/clock.html OLD_FILES+=usr/share/doc/ntp/clockopt.html OLD_FILES+=usr/share/doc/ntp/cluster.html OLD_FILES+=usr/share/doc/ntp/comdex.html OLD_FILES+=usr/share/doc/ntp/config.html OLD_FILES+=usr/share/doc/ntp/confopt.html OLD_FILES+=usr/share/doc/ntp/copyright.html OLD_FILES+=usr/share/doc/ntp/debug.html OLD_FILES+=usr/share/doc/ntp/decode.html OLD_FILES+=usr/share/doc/ntp/discipline.html OLD_FILES+=usr/share/doc/ntp/discover.html OLD_FILES+=usr/share/doc/ntp/driver1.html OLD_FILES+=usr/share/doc/ntp/driver10.html OLD_FILES+=usr/share/doc/ntp/driver11.html OLD_FILES+=usr/share/doc/ntp/driver12.html OLD_FILES+=usr/share/doc/ntp/driver16.html OLD_FILES+=usr/share/doc/ntp/driver18.html OLD_FILES+=usr/share/doc/ntp/driver19.html OLD_FILES+=usr/share/doc/ntp/driver2.html OLD_FILES+=usr/share/doc/ntp/driver20.html OLD_FILES+=usr/share/doc/ntp/driver22.html OLD_FILES+=usr/share/doc/ntp/driver26.html OLD_FILES+=usr/share/doc/ntp/driver27.html OLD_FILES+=usr/share/doc/ntp/driver28.html OLD_FILES+=usr/share/doc/ntp/driver29.html OLD_FILES+=usr/share/doc/ntp/driver3.html OLD_FILES+=usr/share/doc/ntp/driver30.html OLD_FILES+=usr/share/doc/ntp/driver32.html OLD_FILES+=usr/share/doc/ntp/driver33.html OLD_FILES+=usr/share/doc/ntp/driver34.html OLD_FILES+=usr/share/doc/ntp/driver35.html OLD_FILES+=usr/share/doc/ntp/driver36.html OLD_FILES+=usr/share/doc/ntp/driver37.html OLD_FILES+=usr/share/doc/ntp/driver4.html OLD_FILES+=usr/share/doc/ntp/driver5.html OLD_FILES+=usr/share/doc/ntp/driver6.html OLD_FILES+=usr/share/doc/ntp/driver7.html OLD_FILES+=usr/share/doc/ntp/driver8.html OLD_FILES+=usr/share/doc/ntp/driver9.html OLD_FILES+=usr/share/doc/ntp/drivers/driver1.html OLD_FILES+=usr/share/doc/ntp/drivers/driver10.html OLD_FILES+=usr/share/doc/ntp/drivers/driver11.html OLD_FILES+=usr/share/doc/ntp/drivers/driver12.html OLD_FILES+=usr/share/doc/ntp/drivers/driver16.html OLD_FILES+=usr/share/doc/ntp/drivers/driver18.html OLD_FILES+=usr/share/doc/ntp/drivers/driver19.html OLD_FILES+=usr/share/doc/ntp/drivers/driver20.html OLD_FILES+=usr/share/doc/ntp/drivers/driver22.html OLD_FILES+=usr/share/doc/ntp/drivers/driver26.html OLD_FILES+=usr/share/doc/ntp/drivers/driver27.html OLD_FILES+=usr/share/doc/ntp/drivers/driver28.html OLD_FILES+=usr/share/doc/ntp/drivers/driver29.html OLD_FILES+=usr/share/doc/ntp/drivers/driver3.html OLD_FILES+=usr/share/doc/ntp/drivers/driver30.html OLD_FILES+=usr/share/doc/ntp/drivers/driver31.html OLD_FILES+=usr/share/doc/ntp/drivers/driver32.html OLD_FILES+=usr/share/doc/ntp/drivers/driver33.html OLD_FILES+=usr/share/doc/ntp/drivers/driver34.html OLD_FILES+=usr/share/doc/ntp/drivers/driver35.html OLD_FILES+=usr/share/doc/ntp/drivers/driver36.html OLD_FILES+=usr/share/doc/ntp/drivers/driver37.html OLD_FILES+=usr/share/doc/ntp/drivers/driver38.html OLD_FILES+=usr/share/doc/ntp/drivers/driver39.html OLD_FILES+=usr/share/doc/ntp/drivers/driver4.html OLD_FILES+=usr/share/doc/ntp/drivers/driver40.html OLD_FILES+=usr/share/doc/ntp/drivers/driver42.html OLD_FILES+=usr/share/doc/ntp/drivers/driver43.html OLD_FILES+=usr/share/doc/ntp/drivers/driver44.html OLD_FILES+=usr/share/doc/ntp/drivers/driver45.html OLD_FILES+=usr/share/doc/ntp/drivers/driver46.html OLD_FILES+=usr/share/doc/ntp/drivers/driver5.html OLD_FILES+=usr/share/doc/ntp/drivers/driver6.html OLD_FILES+=usr/share/doc/ntp/drivers/driver7.html OLD_FILES+=usr/share/doc/ntp/drivers/driver8.html OLD_FILES+=usr/share/doc/ntp/drivers/driver9.html OLD_FILES+=usr/share/doc/ntp/drivers/icons/home.gif OLD_FILES+=usr/share/doc/ntp/drivers/icons/mail2.gif OLD_FILES+=usr/share/doc/ntp/drivers/mx4200data.html OLD_FILES+=usr/share/doc/ntp/drivers/oncore-shmem.html OLD_FILES+=usr/share/doc/ntp/drivers/scripts/footer.txt OLD_FILES+=usr/share/doc/ntp/drivers/scripts/style.css OLD_FILES+=usr/share/doc/ntp/drivers/tf582_4.html OLD_FILES+=usr/share/doc/ntp/extern.html OLD_FILES+=usr/share/doc/ntp/filter.html OLD_FILES+=usr/share/doc/ntp/hints.html OLD_FILES+=usr/share/doc/ntp/hints/a-ux OLD_FILES+=usr/share/doc/ntp/hints/aix OLD_FILES+=usr/share/doc/ntp/hints/bsdi OLD_FILES+=usr/share/doc/ntp/hints/changes OLD_FILES+=usr/share/doc/ntp/hints/decosf1 OLD_FILES+=usr/share/doc/ntp/hints/decosf2 OLD_FILES+=usr/share/doc/ntp/hints/freebsd OLD_FILES+=usr/share/doc/ntp/hints/hpux OLD_FILES+=usr/share/doc/ntp/hints/linux OLD_FILES+=usr/share/doc/ntp/hints/mpeix OLD_FILES+=usr/share/doc/ntp/hints/notes-xntp-v3 OLD_FILES+=usr/share/doc/ntp/hints/parse OLD_FILES+=usr/share/doc/ntp/hints/refclocks OLD_FILES+=usr/share/doc/ntp/hints/rs6000 OLD_FILES+=usr/share/doc/ntp/hints/sco.html OLD_FILES+=usr/share/doc/ntp/hints/sgi OLD_FILES+=usr/share/doc/ntp/hints/solaris-dosynctodr.html OLD_FILES+=usr/share/doc/ntp/hints/solaris.html OLD_FILES+=usr/share/doc/ntp/hints/solaris.xtra.4023118 OLD_FILES+=usr/share/doc/ntp/hints/solaris.xtra.4095849 OLD_FILES+=usr/share/doc/ntp/hints/solaris.xtra.S99ntpd OLD_FILES+=usr/share/doc/ntp/hints/solaris.xtra.patchfreq OLD_FILES+=usr/share/doc/ntp/hints/sun4 OLD_FILES+=usr/share/doc/ntp/hints/svr4-dell OLD_FILES+=usr/share/doc/ntp/hints/svr4_package OLD_FILES+=usr/share/doc/ntp/hints/todo OLD_FILES+=usr/share/doc/ntp/hints/vxworks.html OLD_FILES+=usr/share/doc/ntp/hints/winnt.html OLD_FILES+=usr/share/doc/ntp/history.html OLD_FILES+=usr/share/doc/ntp/howto.html OLD_FILES+=usr/share/doc/ntp/huffpuff.html OLD_FILES+=usr/share/doc/ntp/icons/home.gif OLD_FILES+=usr/share/doc/ntp/icons/mail2.gif OLD_FILES+=usr/share/doc/ntp/icons/sitemap.png OLD_FILES+=usr/share/doc/ntp/index.html OLD_FILES+=usr/share/doc/ntp/kern.html OLD_FILES+=usr/share/doc/ntp/kernpps.html OLD_FILES+=usr/share/doc/ntp/keygen.html OLD_FILES+=usr/share/doc/ntp/ldisc.html OLD_FILES+=usr/share/doc/ntp/leap.html OLD_FILES+=usr/share/doc/ntp/measure.html OLD_FILES+=usr/share/doc/ntp/miscopt.html OLD_FILES+=usr/share/doc/ntp/monopt.html OLD_FILES+=usr/share/doc/ntp/msyslog.html OLD_FILES+=usr/share/doc/ntp/mx4200data.html OLD_FILES+=usr/share/doc/ntp/notes.html OLD_FILES+=usr/share/doc/ntp/ntp-keygen.html OLD_FILES+=usr/share/doc/ntp/ntp-wait.html OLD_FILES+=usr/share/doc/ntp/ntp.conf.html OLD_FILES+=usr/share/doc/ntp/ntp.keys.html OLD_FILES+=usr/share/doc/ntp/ntp_conf.html OLD_FILES+=usr/share/doc/ntp/ntpd.html OLD_FILES+=usr/share/doc/ntp/ntpdate.html OLD_FILES+=usr/share/doc/ntp/ntpdc.html OLD_FILES+=usr/share/doc/ntp/ntpdsim.html OLD_FILES+=usr/share/doc/ntp/ntpdsim_new.html OLD_FILES+=usr/share/doc/ntp/ntpq.html OLD_FILES+=usr/share/doc/ntp/ntpsnmpd.html OLD_FILES+=usr/share/doc/ntp/ntptime.html OLD_FILES+=usr/share/doc/ntp/ntptrace.html OLD_FILES+=usr/share/doc/ntp/orphan.html OLD_FILES+=usr/share/doc/ntp/parsedata.html OLD_FILES+=usr/share/doc/ntp/parsenew.html OLD_FILES+=usr/share/doc/ntp/patches.html OLD_FILES+=usr/share/doc/ntp/pic/9400n.jpg OLD_FILES+=usr/share/doc/ntp/pic/alice11.gif OLD_FILES+=usr/share/doc/ntp/pic/alice13.gif OLD_FILES+=usr/share/doc/ntp/pic/alice15.gif OLD_FILES+=usr/share/doc/ntp/pic/alice23.gif OLD_FILES+=usr/share/doc/ntp/pic/alice31.gif OLD_FILES+=usr/share/doc/ntp/pic/alice32.gif OLD_FILES+=usr/share/doc/ntp/pic/alice35.gif OLD_FILES+=usr/share/doc/ntp/pic/alice38.gif OLD_FILES+=usr/share/doc/ntp/pic/alice44.gif OLD_FILES+=usr/share/doc/ntp/pic/alice47.gif OLD_FILES+=usr/share/doc/ntp/pic/alice51.gif OLD_FILES+=usr/share/doc/ntp/pic/alice61.gif OLD_FILES+=usr/share/doc/ntp/pic/barnstable.gif OLD_FILES+=usr/share/doc/ntp/pic/beaver.gif OLD_FILES+=usr/share/doc/ntp/pic/boom3.gif OLD_FILES+=usr/share/doc/ntp/pic/boom3a.gif OLD_FILES+=usr/share/doc/ntp/pic/boom4.gif OLD_FILES+=usr/share/doc/ntp/pic/broad.gif OLD_FILES+=usr/share/doc/ntp/pic/bustardfly.gif OLD_FILES+=usr/share/doc/ntp/pic/c51.jpg OLD_FILES+=usr/share/doc/ntp/pic/description.jpg OLD_FILES+=usr/share/doc/ntp/pic/discipline.gif OLD_FILES+=usr/share/doc/ntp/pic/dogsnake.gif OLD_FILES+=usr/share/doc/ntp/pic/driver29.gif OLD_FILES+=usr/share/doc/ntp/pic/driver43_1.gif OLD_FILES+=usr/share/doc/ntp/pic/driver43_2.jpg OLD_FILES+=usr/share/doc/ntp/pic/fg6021.gif OLD_FILES+=usr/share/doc/ntp/pic/fg6039.jpg OLD_FILES+=usr/share/doc/ntp/pic/fig_3_1.gif OLD_FILES+=usr/share/doc/ntp/pic/flatheads.gif OLD_FILES+=usr/share/doc/ntp/pic/flt1.gif OLD_FILES+=usr/share/doc/ntp/pic/flt2.gif OLD_FILES+=usr/share/doc/ntp/pic/flt3.gif OLD_FILES+=usr/share/doc/ntp/pic/flt4.gif OLD_FILES+=usr/share/doc/ntp/pic/flt5.gif OLD_FILES+=usr/share/doc/ntp/pic/flt6.gif OLD_FILES+=usr/share/doc/ntp/pic/flt7.gif OLD_FILES+=usr/share/doc/ntp/pic/flt8.gif OLD_FILES+=usr/share/doc/ntp/pic/flt9.gif OLD_FILES+=usr/share/doc/ntp/pic/freq1211.gif OLD_FILES+=usr/share/doc/ntp/pic/gadget.jpg OLD_FILES+=usr/share/doc/ntp/pic/gps167.jpg OLD_FILES+=usr/share/doc/ntp/pic/group.gif OLD_FILES+=usr/share/doc/ntp/pic/hornraba.gif OLD_FILES+=usr/share/doc/ntp/pic/igclock.gif OLD_FILES+=usr/share/doc/ntp/pic/neoclock4x.gif OLD_FILES+=usr/share/doc/ntp/pic/offset1211.gif OLD_FILES+=usr/share/doc/ntp/pic/oncore_evalbig.gif OLD_FILES+=usr/share/doc/ntp/pic/oncore_remoteant.jpg OLD_FILES+=usr/share/doc/ntp/pic/oncore_utplusbig.gif OLD_FILES+=usr/share/doc/ntp/pic/oz2.gif OLD_FILES+=usr/share/doc/ntp/pic/panda.gif OLD_FILES+=usr/share/doc/ntp/pic/pd_om006.gif OLD_FILES+=usr/share/doc/ntp/pic/pd_om011.gif OLD_FILES+=usr/share/doc/ntp/pic/peer.gif OLD_FILES+=usr/share/doc/ntp/pic/pogo.gif OLD_FILES+=usr/share/doc/ntp/pic/pogo1a.gif OLD_FILES+=usr/share/doc/ntp/pic/pogo3a.gif OLD_FILES+=usr/share/doc/ntp/pic/pogo4.gif OLD_FILES+=usr/share/doc/ntp/pic/pogo5.gif OLD_FILES+=usr/share/doc/ntp/pic/pogo6.gif OLD_FILES+=usr/share/doc/ntp/pic/pogo7.gif OLD_FILES+=usr/share/doc/ntp/pic/pogo8.gif OLD_FILES+=usr/share/doc/ntp/pic/pzf509.jpg OLD_FILES+=usr/share/doc/ntp/pic/pzf511.jpg OLD_FILES+=usr/share/doc/ntp/pic/rabbit.gif OLD_FILES+=usr/share/doc/ntp/pic/radio2.jpg OLD_FILES+=usr/share/doc/ntp/pic/sheepb.jpg OLD_FILES+=usr/share/doc/ntp/pic/stack1a.jpg OLD_FILES+=usr/share/doc/ntp/pic/stats.gif OLD_FILES+=usr/share/doc/ntp/pic/sx5.gif OLD_FILES+=usr/share/doc/ntp/pic/thunderbolt.jpg OLD_FILES+=usr/share/doc/ntp/pic/time1.gif OLD_FILES+=usr/share/doc/ntp/pic/tonea.gif OLD_FILES+=usr/share/doc/ntp/pic/tribeb.gif OLD_FILES+=usr/share/doc/ntp/pic/wingdorothy.gif OLD_FILES+=usr/share/doc/ntp/poll.html OLD_FILES+=usr/share/doc/ntp/porting.html OLD_FILES+=usr/share/doc/ntp/pps.html OLD_FILES+=usr/share/doc/ntp/prefer.html OLD_FILES+=usr/share/doc/ntp/quick.html OLD_FILES+=usr/share/doc/ntp/rate.html OLD_FILES+=usr/share/doc/ntp/rdebug.html OLD_FILES+=usr/share/doc/ntp/refclock.html OLD_FILES+=usr/share/doc/ntp/release.html OLD_FILES+=usr/share/doc/ntp/scripts/accopt.txt OLD_FILES+=usr/share/doc/ntp/scripts/audio.txt OLD_FILES+=usr/share/doc/ntp/scripts/authopt.txt OLD_FILES+=usr/share/doc/ntp/scripts/clockopt.txt OLD_FILES+=usr/share/doc/ntp/scripts/command.txt OLD_FILES+=usr/share/doc/ntp/scripts/config.txt OLD_FILES+=usr/share/doc/ntp/scripts/confopt.txt OLD_FILES+=usr/share/doc/ntp/scripts/external.txt OLD_FILES+=usr/share/doc/ntp/scripts/footer.txt OLD_FILES+=usr/share/doc/ntp/scripts/hand.txt OLD_FILES+=usr/share/doc/ntp/scripts/install.txt OLD_FILES+=usr/share/doc/ntp/scripts/manual.txt OLD_FILES+=usr/share/doc/ntp/scripts/misc.txt OLD_FILES+=usr/share/doc/ntp/scripts/miscopt.txt OLD_FILES+=usr/share/doc/ntp/scripts/monopt.txt OLD_FILES+=usr/share/doc/ntp/scripts/refclock.txt OLD_FILES+=usr/share/doc/ntp/scripts/special.txt OLD_FILES+=usr/share/doc/ntp/scripts/style.css OLD_FILES+=usr/share/doc/ntp/select.html OLD_FILES+=usr/share/doc/ntp/sitemap.html OLD_FILES+=usr/share/doc/ntp/sntp.html OLD_FILES+=usr/share/doc/ntp/stats.html OLD_FILES+=usr/share/doc/ntp/tickadj.html OLD_FILES+=usr/share/doc/ntp/warp.html OLD_FILES+=usr/share/doc/ntp/xleave.html OLD_DIRS+=usr/share/doc/ntp/drivers OLD_DIRS+=usr/share/doc/ntp/drivers/scripts OLD_DIRS+=usr/share/doc/ntp/drivers/icons OLD_DIRS+=usr/share/doc/ntp/hints OLD_DIRS+=usr/share/doc/ntp/icons OLD_DIRS+=usr/share/doc/ntp/pic OLD_DIRS+=usr/share/doc/ntp/scripts OLD_DIRS+=usr/share/doc/ntp OLD_FILES+=usr/share/examples/etc/ntp.conf OLD_FILES+=usr/share/man/man1/sntp.1.gz OLD_FILES+=usr/share/man/man5/ntp.conf.5.gz OLD_FILES+=usr/share/man/man5/ntp.keys.5.gz OLD_FILES+=usr/share/man/man8/ntp-keygen.8.gz OLD_FILES+=usr/share/man/man8/ntpd.8.gz OLD_FILES+=usr/share/man/man8/ntpdate.8.gz OLD_FILES+=usr/share/man/man8/ntpdc.8.gz OLD_FILES+=usr/share/man/man8/ntpq.8.gz OLD_FILES+=usr/share/man/man8/ntptime.8.gz .endif .if ${MK_OFED} == no OLD_FILES+=etc/newsyslog.conf.d/opensm.conf OLD_FILES+=etc/rc.d/opensm OLD_FILES+=usr/bin/ibstat OLD_FILES+=usr/bin/ibv_asyncwatch OLD_FILES+=usr/bin/ibv_devices OLD_FILES+=usr/bin/ibv_devinfo OLD_FILES+=usr/bin/ibv_rc_pingpong OLD_FILES+=usr/bin/ibv_srq_pingpong OLD_FILES+=usr/bin/ibv_uc_pingpong OLD_FILES+=usr/bin/ibv_ud_pingpong OLD_FILES+=usr/bin/mckey OLD_FILES+=usr/bin/rping OLD_FILES+=usr/bin/ucmatose OLD_FILES+=usr/bin/udaddy OLD_FILES+=usr/include/infiniband/marshall.h OLD_FILES+=usr/include/infiniband/kern-abi.h OLD_FILES+=usr/include/infiniband/umad_sm.h OLD_FILES+=usr/include/infiniband/umad.h OLD_FILES+=usr/include/infiniband/arch.h OLD_FILES+=usr/include/infiniband/verbs.h OLD_FILES+=usr/include/infiniband/ib.h OLD_FILES+=usr/include/infiniband/cm.h OLD_FILES+=usr/include/infiniband/opcode.h OLD_FILES+=usr/include/infiniband/ibnetdisc.h OLD_FILES+=usr/include/infiniband/driver.h OLD_FILES+=usr/include/infiniband/mad_osd.h OLD_FILES+=usr/include/infiniband/umad_types.h OLD_FILES+=usr/include/infiniband/umad_cm.h OLD_FILES+=usr/include/infiniband/cm_abi.h OLD_FILES+=usr/include/infiniband/sa-kern-abi.h OLD_FILES+=usr/include/infiniband/ibnetdisc_osd.h OLD_FILES+=usr/include/infiniband/opensm/osm_event_plugin.h OLD_FILES+=usr/include/infiniband/opensm/osm_console_io.h OLD_FILES+=usr/include/infiniband/opensm/osm_ucast_cache.h OLD_FILES+=usr/include/infiniband/opensm/osm_port.h OLD_FILES+=usr/include/infiniband/opensm/osm_path.h OLD_FILES+=usr/include/infiniband/opensm/osm_mtree.h OLD_FILES+=usr/include/infiniband/opensm/osm_log.h OLD_FILES+=usr/include/infiniband/opensm/osm_mcm_port.h OLD_FILES+=usr/include/infiniband/opensm/osm_subnet.h OLD_FILES+=usr/include/infiniband/opensm/osm_pkey.h OLD_FILES+=usr/include/infiniband/opensm/osm_remote_sm.h OLD_FILES+=usr/include/infiniband/opensm/osm_qos_policy.h OLD_FILES+=usr/include/infiniband/opensm/osm_sm.h OLD_FILES+=usr/include/infiniband/opensm/osm_node.h OLD_FILES+=usr/include/infiniband/opensm/osm_mcast_mgr.h OLD_FILES+=usr/include/infiniband/opensm/osm_madw.h OLD_FILES+=usr/include/infiniband/opensm/osm_lid_mgr.h OLD_FILES+=usr/include/infiniband/opensm/osm_congestion_control.h OLD_FILES+=usr/include/infiniband/opensm/osm_port_profile.h OLD_FILES+=usr/include/infiniband/opensm/osm_perfmgr.h OLD_FILES+=usr/include/infiniband/opensm/osm_service.h OLD_FILES+=usr/include/infiniband/opensm/osm_base.h OLD_FILES+=usr/include/infiniband/opensm/osm_vl15intf.h OLD_FILES+=usr/include/infiniband/opensm/st.h OLD_FILES+=usr/include/infiniband/opensm/osm_attrib_req.h OLD_FILES+=usr/include/infiniband/opensm/osm_ucast_mgr.h OLD_FILES+=usr/include/infiniband/opensm/osm_db.h OLD_FILES+=usr/include/infiniband/opensm/osm_sa_mad_ctrl.h OLD_FILES+=usr/include/infiniband/opensm/osm_db_pack.h OLD_FILES+=usr/include/infiniband/opensm/osm_opensm.h OLD_FILES+=usr/include/infiniband/opensm/osm_mesh.h OLD_FILES+=usr/include/infiniband/opensm/osm_mcast_tbl.h OLD_FILES+=usr/include/infiniband/opensm/osm_sm_mad_ctrl.h OLD_FILES+=usr/include/infiniband/opensm/osm_stats.h OLD_FILES+=usr/include/infiniband/opensm/osm_mad_pool.h OLD_FILES+=usr/include/infiniband/opensm/osm_switch.h OLD_FILES+=usr/include/infiniband/opensm/osm_ucast_lash.h OLD_FILES+=usr/include/infiniband/opensm/osm_errors.h OLD_FILES+=usr/include/infiniband/opensm/osm_partition.h OLD_FILES+=usr/include/infiniband/opensm/osm_prefix_route.h OLD_FILES+=usr/include/infiniband/opensm/osm_helper.h OLD_FILES+=usr/include/infiniband/opensm/osm_version.h OLD_FILES+=usr/include/infiniband/opensm/osm_sa.h OLD_FILES+=usr/include/infiniband/opensm/osm_config.h OLD_FILES+=usr/include/infiniband/opensm/osm_multicast.h OLD_FILES+=usr/include/infiniband/opensm/osm_file_ids.h OLD_FILES+=usr/include/infiniband/opensm/osm_perfmgr_db.h OLD_FILES+=usr/include/infiniband/opensm/osm_console.h OLD_FILES+=usr/include/infiniband/opensm/osm_msgdef.h OLD_FILES+=usr/include/infiniband/opensm/osm_router.h OLD_FILES+=usr/include/infiniband/opensm/osm_guid.h OLD_FILES+=usr/include/infiniband/opensm/osm_inform.h OLD_DIRS+=usr/include/infiniband/opensm OLD_FILES+=usr/include/infiniband/iba/ib_types.h OLD_FILES+=usr/include/infiniband/iba/ib_cm_types.h OLD_DIRS+=usr/include/infiniband/iba OLD_FILES+=usr/include/infiniband/umad_str.h OLD_FILES+=usr/include/infiniband/udma_barrier.h OLD_FILES+=usr/include/infiniband/umad_sa.h OLD_FILES+=usr/include/infiniband/mad.h OLD_FILES+=usr/include/infiniband/sa.h OLD_FILES+=usr/include/infiniband/byteorder.h OLD_FILES+=usr/include/infiniband/types.h OLD_FILES+=usr/include/infiniband/byteswap.h OLD_FILES+=usr/include/infiniband/vendor/osm_pkt_randomizer.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_rmpp_ctx.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mtl_hca_guid.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_txn.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_svc.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_test.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_inout.h OLD_FILES+=usr/include/infiniband/vendor/osm_mtl_bind.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_hca.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_sa_api.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_sender.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor.h OLD_FILES+=usr/include/infiniband/vendor/osm_umadt.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mtl_transaction_mgr.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_defs.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_dispatcher.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_api.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mtl.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_transport.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_al.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_sar.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_umadt.h OLD_FILES+=usr/include/infiniband/vendor/osm_ts_useraccess.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_ts.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_mlx_transport_anafa.h OLD_FILES+=usr/include/infiniband/vendor/osm_vendor_ibumad.h OLD_DIRS+=usr/include/infiniband/vendor OLD_FILES+=usr/include/infiniband/endian.h OLD_FILES+=usr/include/infiniband/complib/cl_byteswap.h OLD_FILES+=usr/include/infiniband/complib/cl_types.h OLD_FILES+=usr/include/infiniband/complib/cl_map.h OLD_FILES+=usr/include/infiniband/complib/cl_packon.h OLD_FILES+=usr/include/infiniband/complib/cl_timer.h OLD_FILES+=usr/include/infiniband/complib/cl_thread_osd.h OLD_FILES+=usr/include/infiniband/complib/cl_thread.h OLD_FILES+=usr/include/infiniband/complib/cl_event.h OLD_FILES+=usr/include/infiniband/complib/cl_byteswap_osd.h OLD_FILES+=usr/include/infiniband/complib/cl_passivelock.h OLD_FILES+=usr/include/infiniband/complib/cl_vector.h OLD_FILES+=usr/include/infiniband/complib/cl_nodenamemap.h OLD_FILES+=usr/include/infiniband/complib/cl_event_wheel.h OLD_FILES+=usr/include/infiniband/complib/cl_log.h OLD_FILES+=usr/include/infiniband/complib/cl_fleximap.h OLD_FILES+=usr/include/infiniband/complib/cl_qlist.h OLD_FILES+=usr/include/infiniband/complib/cl_timer_osd.h OLD_FILES+=usr/include/infiniband/complib/cl_pool.h OLD_FILES+=usr/include/infiniband/complib/cl_debug.h OLD_FILES+=usr/include/infiniband/complib/cl_types_osd.h OLD_FILES+=usr/include/infiniband/complib/cl_dispatcher.h OLD_FILES+=usr/include/infiniband/complib/cl_ptr_vector.h OLD_FILES+=usr/include/infiniband/complib/cl_atomic_osd.h OLD_FILES+=usr/include/infiniband/complib/cl_qmap.h OLD_FILES+=usr/include/infiniband/complib/cl_spinlock_osd.h OLD_FILES+=usr/include/infiniband/complib/cl_qcomppool.h OLD_FILES+=usr/include/infiniband/complib/cl_threadpool.h OLD_FILES+=usr/include/infiniband/complib/cl_list.h OLD_FILES+=usr/include/infiniband/complib/cl_debug_osd.h OLD_FILES+=usr/include/infiniband/complib/cl_packoff.h OLD_FILES+=usr/include/infiniband/complib/cl_qpool.h OLD_FILES+=usr/include/infiniband/complib/cl_spinlock.h OLD_FILES+=usr/include/infiniband/complib/cl_event_osd.h OLD_FILES+=usr/include/infiniband/complib/cl_atomic.h OLD_FILES+=usr/include/infiniband/complib/cl_math.h OLD_FILES+=usr/include/infiniband/complib/cl_comppool.h OLD_DIRS+=usr/include/infiniband/complib OLD_DIRS+=usr/include/infiniband OLD_FILES+=usr/lib/libcxgb4.a OLD_FILES+=usr/lib/libcxgb4.so OLD_LIBS+=usr/lib/libcxgb4.so.1 OLD_FILES+=usr/lib/libibcm.a OLD_FILES+=usr/lib/libibcm.so OLD_LIBS+=usr/lib/libibcm.so.1 OLD_FILES+=usr/lib/libibmad.a OLD_FILES+=usr/lib/libibmad.so OLD_LIBS+=usr/lib/libibmad.so.5 OLD_FILES+=usr/lib/libibnetdisc.a OLD_FILES+=usr/lib/libibnetdisc.so OLD_LIBS+=usr/lib/libibnetdisc.so.5 OLD_FILES+=usr/lib/libibumad.a OLD_FILES+=usr/lib/libibumad.so OLD_LIBS+=usr/lib/libibumad.so.1 OLD_FILES+=usr/lib/libibverbs.a OLD_FILES+=usr/lib/libibverbs.so OLD_LIBS+=lib/libibverbs.so.1 OLD_FILES+=usr/lib/libmlx4.a OLD_FILES+=usr/lib/libmlx4.so OLD_LIBS+=usr/lib/libmlx4.so.1 OLD_FILES+=usr/lib/libmlx5.a OLD_FILES+=usr/lib/libmlx5.so OLD_LIBS+=lib/libmlx5.so.1 OLD_FILES+=usr/lib/libopensm.a OLD_FILES+=usr/lib/libopensm.so OLD_LIBS+=usr/lib/libopensm.so.5 OLD_FILES+=usr/lib/libosmcomp.a OLD_FILES+=usr/lib/libosmcomp.so OLD_LIBS+=usr/lib/libosmcomp.so.3 OLD_FILES+=usr/lib/libosmvendor.a OLD_FILES+=usr/lib/libosmvendor.so OLD_LIBS+=usr/lib/libosmvendor.so.4 OLD_FILES+=usr/lib/librdmacm.a OLD_FILES+=usr/lib/librdmacm.so OLD_LIBS+=usr/lib/librdmacm.so.1 OLD_FILES+=usr/share/man/man1/ibv_asyncwatch.1.gz OLD_FILES+=usr/share/man/man1/ibv_devices.1.gz OLD_FILES+=usr/share/man/man1/ibv_devinfo.1.gz OLD_FILES+=usr/share/man/man1/ibv_rc_pingpong.1.gz OLD_FILES+=usr/share/man/man1/ibv_srq_pingpong.1.gz OLD_FILES+=usr/share/man/man1/ibv_uc_pingpong.1.gz OLD_FILES+=usr/share/man/man1/ibv_ud_pingpong.1.gz OLD_FILES+=usr/share/man/man1/mckey.1.gz OLD_FILES+=usr/share/man/man1/rping.1.gz OLD_FILES+=usr/share/man/man1/ucmatose.1.gz OLD_FILES+=usr/share/man/man1/udaddy.1.gz OLD_FILES+=usr/share/man/man3/ibnd_debug.3.gz OLD_FILES+=usr/share/man/man3/ibnd_destroy_fabric.3.gz OLD_FILES+=usr/share/man/man3/ibnd_discover_fabric.3.gz OLD_FILES+=usr/share/man/man3/ibnd_find_node_dr.3.gz OLD_FILES+=usr/share/man/man3/ibnd_find_node_guid.3.gz OLD_FILES+=usr/share/man/man3/ibnd_iter_nodes.3.gz OLD_FILES+=usr/share/man/man3/ibnd_iter_nodes_type.3.gz OLD_FILES+=usr/share/man/man3/ibnd_show_progress.3.gz OLD_FILES+=usr/share/man/man3/ibv_alloc_mw.3.gz OLD_FILES+=usr/share/man/man3/ibv_alloc_pd.3.gz OLD_FILES+=usr/share/man/man3/ibv_attach_mcast.3.gz OLD_FILES+=usr/share/man/man3/ibv_bind_mw.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_ah.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_ah_from_wc.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_comp_channel.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_cq.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_cq_ex.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_flow.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_qp.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_qp_ex.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_rwq_ind_table.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_srq.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_srq_ex.3.gz OLD_FILES+=usr/share/man/man3/ibv_create_wq.3.gz OLD_FILES+=usr/share/man/man3/ibv_event_type_str.3.gz OLD_FILES+=usr/share/man/man3/ibv_fork_init.3.gz OLD_FILES+=usr/share/man/man3/ibv_get_async_event.3.gz OLD_FILES+=usr/share/man/man3/ibv_get_cq_event.3.gz OLD_FILES+=usr/share/man/man3/ibv_get_device_guid.3.gz OLD_FILES+=usr/share/man/man3/ibv_get_device_list.3.gz OLD_FILES+=usr/share/man/man3/ibv_get_device_name.3.gz OLD_FILES+=usr/share/man/man3/ibv_get_srq_num.3.gz OLD_FILES+=usr/share/man/man3/ibv_inc_rkey.3.gz OLD_FILES+=usr/share/man/man3/ibv_modify_qp.3.gz OLD_FILES+=usr/share/man/man3/ibv_modify_srq.3.gz OLD_FILES+=usr/share/man/man3/ibv_modify_wq.3.gz OLD_FILES+=usr/share/man/man3/ibv_open_device.3.gz OLD_FILES+=usr/share/man/man3/ibv_open_qp.3.gz OLD_FILES+=usr/share/man/man3/ibv_open_xrcd.3.gz OLD_FILES+=usr/share/man/man3/ibv_poll_cq.3.gz OLD_FILES+=usr/share/man/man3/ibv_post_recv.3.gz OLD_FILES+=usr/share/man/man3/ibv_post_send.3.gz OLD_FILES+=usr/share/man/man3/ibv_post_srq_recv.3.gz OLD_FILES+=usr/share/man/man3/ibv_query_device.3.gz OLD_FILES+=usr/share/man/man3/ibv_query_device_ex.3.gz OLD_FILES+=usr/share/man/man3/ibv_query_gid.3.gz OLD_FILES+=usr/share/man/man3/ibv_query_pkey.3.gz OLD_FILES+=usr/share/man/man3/ibv_query_port.3.gz OLD_FILES+=usr/share/man/man3/ibv_query_qp.3.gz OLD_FILES+=usr/share/man/man3/ibv_query_rt_values_ex.3.gz OLD_FILES+=usr/share/man/man3/ibv_query_srq.3.gz OLD_FILES+=usr/share/man/man3/ibv_rate_to_mbps.3.gz OLD_FILES+=usr/share/man/man3/ibv_rate_to_mult.3.gz OLD_FILES+=usr/share/man/man3/ibv_reg_mr.3.gz OLD_FILES+=usr/share/man/man3/ibv_req_notify_cq.3.gz OLD_FILES+=usr/share/man/man3/ibv_rereg_mr.3.gz OLD_FILES+=usr/share/man/man3/ibv_resize_cq.3.gz OLD_FILES+=usr/share/man/man3/rdma_accept.3.gz OLD_FILES+=usr/share/man/man3/rdma_ack_cm_event.3.gz OLD_FILES+=usr/share/man/man3/rdma_bind_addr.3.gz OLD_FILES+=usr/share/man/man3/rdma_connect.3.gz OLD_FILES+=usr/share/man/man3/rdma_create_ep.3.gz OLD_FILES+=usr/share/man/man3/rdma_create_event_channel.3.gz OLD_FILES+=usr/share/man/man3/rdma_create_id.3.gz OLD_FILES+=usr/share/man/man3/rdma_create_qp.3.gz OLD_FILES+=usr/share/man/man3/rdma_create_srq.3.gz OLD_FILES+=usr/share/man/man3/rdma_dereg_mr.3.gz OLD_FILES+=usr/share/man/man3/rdma_destroy_ep.3.gz OLD_FILES+=usr/share/man/man3/rdma_destroy_event_channel.3.gz OLD_FILES+=usr/share/man/man3/rdma_destroy_id.3.gz OLD_FILES+=usr/share/man/man3/rdma_destroy_qp.3.gz OLD_FILES+=usr/share/man/man3/rdma_destroy_srq.3.gz OLD_FILES+=usr/share/man/man3/rdma_disconnect.3.gz OLD_FILES+=usr/share/man/man3/rdma_event_str.3.gz OLD_FILES+=usr/share/man/man3/rdma_free_devices.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_cm_event.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_devices.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_dst_port.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_local_addr.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_peer_addr.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_recv_comp.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_request.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_send_comp.3.gz OLD_FILES+=usr/share/man/man3/rdma_get_src_port.3.gz OLD_FILES+=usr/share/man/man3/rdma_getaddrinfo.3.gz OLD_FILES+=usr/share/man/man3/rdma_join_multicast.3.gz OLD_FILES+=usr/share/man/man3/rdma_leave_multicast.3.gz OLD_FILES+=usr/share/man/man3/rdma_listen.3.gz OLD_FILES+=usr/share/man/man3/rdma_migrate_id.3.gz OLD_FILES+=usr/share/man/man3/rdma_notify.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_read.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_readv.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_recv.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_recvv.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_send.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_sendv.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_ud_send.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_write.3.gz OLD_FILES+=usr/share/man/man3/rdma_post_writev.3.gz OLD_FILES+=usr/share/man/man3/rdma_reg_msgs.3.gz OLD_FILES+=usr/share/man/man3/rdma_reg_read.3.gz OLD_FILES+=usr/share/man/man3/rdma_reg_write.3.gz OLD_FILES+=usr/share/man/man3/rdma_reject.3.gz OLD_FILES+=usr/share/man/man3/rdma_resolve_addr.3.gz OLD_FILES+=usr/share/man/man3/rdma_resolve_route.3.gz OLD_FILES+=usr/share/man/man3/rdma_set_option.3.gz OLD_FILES+=usr/share/man/man4/mlx4ib.4.gz OLD_FILES+=usr/share/man/man4/mlx5ib.4.gz OLD_FILES+=usr/share/man/man8/ibstat.8.gz .endif .if ${MK_OFED_EXTRA} == no OLD_FILES+=etc/rc.d/opensm OLD_FILES+=usr/bin/dump_fts OLD_FILES+=usr/bin/ibaddr OLD_FILES+=usr/bin/ibcacheedit OLD_FILES+=usr/bin/ibccconfig OLD_FILES+=usr/bin/ibccquery OLD_FILES+=usr/bin/iblinkinfo OLD_FILES+=usr/bin/ibmirror OLD_FILES+=usr/bin/ibnetdiscover OLD_FILES+=usr/bin/ibping OLD_FILES+=usr/bin/ibportstate OLD_FILES+=usr/bin/ibqueryerrors OLD_FILES+=usr/bin/ibroute OLD_FILES+=usr/bin/ibsysstat OLD_FILES+=usr/bin/ibtracert OLD_FILES+=usr/bin/opensm OLD_FILES+=usr/bin/perfquery OLD_FILES+=usr/bin/saquery OLD_FILES+=usr/bin/sminfo OLD_FILES+=usr/bin/smpdump OLD_FILES+=usr/bin/smpquery OLD_FILES+=usr/bin/vendstat OLD_FILES+=usr/share/man/man8/dump_fts.8.gz OLD_FILES+=usr/share/man/man8/ibaddr.8.gz OLD_FILES+=usr/share/man/man8/ibcacheedit.8.gz OLD_FILES+=usr/share/man/man8/ibccconfig.8.gz OLD_FILES+=usr/share/man/man8/ibccquery.8.gz OLD_FILES+=usr/share/man/man8/iblinkinfo.8.gz OLD_FILES+=usr/share/man/man8/ibnetdiscover.8.gz OLD_FILES+=usr/share/man/man8/ibping.8.gz OLD_FILES+=usr/share/man/man8/ibportstate.8.gz OLD_FILES+=usr/share/man/man8/ibqueryerrors.8.gz OLD_FILES+=usr/share/man/man8/ibroute.8.gz OLD_FILES+=usr/share/man/man8/ibsysstat.8.gz OLD_FILES+=usr/share/man/man8/ibtracert.8.gz OLD_FILES+=usr/share/man/man8/opensm.8.gz OLD_FILES+=usr/share/man/man8/perfquery.8.gz OLD_FILES+=usr/share/man/man8/saquery.8.gz OLD_FILES+=usr/share/man/man8/sminfo.8.gz OLD_FILES+=usr/share/man/man8/smpdump.8.gz OLD_FILES+=usr/share/man/man8/smpquery.8.gz OLD_FILES+=usr/share/man/man8/vendstat.8.gz .endif .if ${MK_OPENMP} == no OLD_FILES+=usr/include/omp.h OLD_FILES+=usr/lib/libgomp.so OLD_LIBS+=usr/lib/libomp.so .endif .if ${MK_OPENSSH} == no OLD_FILES+=etc/rc.d/sshd OLD_FILES+=etc/ssh/moduli OLD_FILES+=etc/ssh/ssh_config OLD_FILES+=etc/ssh/sshd_config OLD_DIRS+=etc/ssh OLD_FILES+=usr/bin/scp OLD_FILES+=usr/bin/sftp OLD_FILES+=usr/bin/slogin OLD_FILES+=usr/bin/ssh OLD_FILES+=usr/bin/ssh-add OLD_FILES+=usr/bin/ssh-agent OLD_FILES+=usr/bin/ssh-copy-id OLD_FILES+=usr/bin/ssh-keygen OLD_FILES+=usr/bin/ssh-keyscan OLD_FILES+=usr/lib/libprivatecbor.a OLD_FILES+=usr/lib/libprivatecbor.so OLD_LIBS+=usr/lib/libprivatecbor.so.5 OLD_FILES+=/usr/lib/libprivatefido2.a OLD_FILES+=/usr/lib/libprivatefido2.so OLD_LIBS+=/usr/lib/libprivatefido2.so.5 OLD_FILES+=usr/lib/pam_ssh.so OLD_LIBS+=usr/lib/pam_ssh.so.6 OLD_FILES+=usr/lib/libprivatessh.a OLD_FILES+=usr/lib/libprivatessh.so OLD_LIBS+=usr/lib/libprivatessh.so.5 OLD_FILES+=usr/lib/libprivatessh_p.a OLD_FILES+=usr/libexec/sftp-server OLD_FILES+=usr/libexec/ssh-keysign OLD_FILES+=usr/libexec/ssh-pkcs11-helper OLD_FILES+=usr/libexec/ssh-sk-helper OLD_FILES+=usr/sbin/sshd OLD_FILES+=usr/share/man/man1/scp.1.gz OLD_FILES+=usr/share/man/man1/sftp.1.gz OLD_FILES+=usr/share/man/man1/slogin.1.gz OLD_FILES+=usr/share/man/man1/ssh-add.1.gz OLD_FILES+=usr/share/man/man1/ssh-agent.1.gz OLD_FILES+=usr/share/man/man1/ssh-copy-id.1.gz OLD_FILES+=usr/share/man/man1/ssh-keygen.1.gz OLD_FILES+=usr/share/man/man1/ssh-keyscan.1.gz OLD_FILES+=usr/share/man/man1/ssh.1.gz OLD_FILES+=usr/share/man/man5/ssh_config.5.gz OLD_FILES+=usr/share/man/man5/sshd_config.5.gz OLD_FILES+=usr/share/man/man8/pam_ssh.8.gz OLD_FILES+=usr/share/man/man8/sftp-server.8.gz OLD_FILES+=usr/share/man/man8/ssh-keysign.8.gz OLD_FILES+=usr/share/man/man8/ssh-pkcs11-helper.8.gz OLD_FILES+=usr/share/man/man8/ssh-sk-helper.8.gz OLD_FILES+=usr/share/man/man8/sshd.8.gz .endif .if ${MK_OPENSSL} == no OLD_FILES+=etc/rc.d/keyserv .endif .if ${MK_PF} == no OLD_FILES+=etc/newsyslog.conf.d/pf.conf OLD_FILES+=etc/periodic/security/520.pfdenied OLD_FILES+=etc/pf.os OLD_FILES+=etc/rc.d/ftp-proxy OLD_FILES+=etc/rc.d/pf OLD_FILES+=etc/rc.d/pflog OLD_FILES+=etc/rc.d/pfsync OLD_FILES+=sbin/pfctl OLD_FILES+=sbin/pflogd OLD_FILES+=usr/include/netpfil/pf/pf.h OLD_FILES+=usr/include/netpfil/pf/pf_altq.h OLD_FILES+=usr/include/netpfil/pf/pf_mtag.h OLD_FILES+=usr/lib/snmp_pf.so OLD_LIBS+=usr/lib/snmp_pf.so.6 OLD_FILES+=usr/libexec/tftp-proxy OLD_FILES+=usr/sbin/ftp-proxy OLD_FILES+=usr/share/examples/etc/pf.os OLD_FILES+=usr/share/examples/pf/ackpri OLD_FILES+=usr/share/examples/pf/faq-example1 OLD_FILES+=usr/share/examples/pf/faq-example2 OLD_FILES+=usr/share/examples/pf/faq-example3 OLD_FILES+=usr/share/examples/pf/pf.conf OLD_FILES+=usr/share/examples/pf/queue1 OLD_FILES+=usr/share/examples/pf/queue2 OLD_FILES+=usr/share/examples/pf/queue3 OLD_FILES+=usr/share/examples/pf/queue4 OLD_FILES+=usr/share/examples/pf/spamd OLD_DIRS+=usr/share/examples/pf OLD_FILES+=usr/share/man/man4/pf.4.gz OLD_FILES+=usr/share/man/man4/pflog.4.gz OLD_FILES+=usr/share/man/man4/pfsync.4.gz OLD_FILES+=usr/share/man/man5/pf.conf.5.gz OLD_FILES+=usr/share/man/man5/pf.os.5.gz OLD_FILES+=usr/share/man/man8/ftp-proxy.8.gz OLD_FILES+=usr/share/man/man8/pfctl.8.gz OLD_FILES+=usr/share/man/man8/pflogd.8.gz OLD_FILES+=usr/share/man/man8/tftp-proxy.8.gz OLD_FILES+=usr/share/snmp/defs/pf_tree.def OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-PF-MIB.txt .endif .if ${MK_PKGBOOTSTRAP} == no OLD_FILES+=usr/sbin/pkg OLD_FILES+=usr/share/man/man7/pkg.7.gz .endif .if ${MK_PMC} == no OLD_FILES+=usr/bin/pmcstudy .if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/include/libipt/pt_last_ip.h OLD_FILES+=usr/include/libipt/intel-pt.h OLD_FILES+=usr/include/libipt/pt_time.h OLD_FILES+=usr/include/libipt/pt_cpu.h OLD_FILES+=usr/include/libipt/pt_compiler.h OLD_DIRS+=usr/include/libipt .endif .if ${TARGET_ARCH} == "aarch64" OLD_FILES+=usr/include/opencsd/c_api/opencsd_c_api.h OLD_FILES+=usr/include/opencsd/c_api/ocsd_c_api_cust_impl.h OLD_FILES+=usr/include/opencsd/c_api/ocsd_c_api_types.h OLD_FILES+=usr/include/opencsd/c_api/ocsd_c_api_cust_fact.h OLD_FILES+=usr/include/opencsd/c_api/ocsd_c_api_custom.h OLD_DIRS+=usr/include/opencsd/c_api OLD_FILES+=usr/include/opencsd/ocsd_if_types.h OLD_FILES+=usr/include/opencsd/ptm/trc_dcd_mngr_ptm.h OLD_FILES+=usr/include/opencsd/ptm/trc_pkt_proc_ptm.h OLD_FILES+=usr/include/opencsd/ptm/trc_cmp_cfg_ptm.h OLD_FILES+=usr/include/opencsd/ptm/ptm_decoder.h OLD_FILES+=usr/include/opencsd/ptm/trc_pkt_elem_ptm.h OLD_FILES+=usr/include/opencsd/ptm/trc_pkt_decode_ptm.h OLD_FILES+=usr/include/opencsd/ptm/trc_pkt_types_ptm.h OLD_DIRS+=usr/include/opencsd/ptm OLD_FILES+=usr/include/opencsd/trc_gen_elem_types.h OLD_FILES+=usr/include/opencsd/etmv4/trc_pkt_proc_etmv4.h OLD_FILES+=usr/include/opencsd/etmv4/trc_etmv4_stack_elem.h OLD_FILES+=usr/include/opencsd/etmv4/etmv4_decoder.h OLD_FILES+=usr/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h OLD_FILES+=usr/include/opencsd/etmv4/trc_dcd_mngr_etmv4i.h OLD_FILES+=usr/include/opencsd/etmv4/trc_pkt_types_etmv4.h OLD_FILES+=usr/include/opencsd/etmv4/trc_pkt_elem_etmv4d.h OLD_FILES+=usr/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h OLD_FILES+=usr/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h OLD_DIRS+=usr/include/opencsd/etmv4 OLD_FILES+=usr/include/opencsd/etmv3/trc_pkt_decode_etmv3.h OLD_FILES+=usr/include/opencsd/etmv3/trc_cmp_cfg_etmv3.h OLD_FILES+=usr/include/opencsd/etmv3/etmv3_decoder.h OLD_FILES+=usr/include/opencsd/etmv3/trc_pkt_proc_etmv3.h OLD_FILES+=usr/include/opencsd/etmv3/trc_pkt_elem_etmv3.h OLD_FILES+=usr/include/opencsd/etmv3/trc_pkt_types_etmv3.h OLD_FILES+=usr/include/opencsd/etmv3/trc_dcd_mngr_etmv3.h OLD_DIRS+=usr/include/opencsd/etmv3 OLD_FILES+=usr/include/opencsd/trc_pkt_types.h OLD_FILES+=usr/include/opencsd/stm/trc_pkt_proc_stm.h OLD_FILES+=usr/include/opencsd/stm/trc_pkt_types_stm.h OLD_FILES+=usr/include/opencsd/stm/stm_decoder.h OLD_FILES+=usr/include/opencsd/stm/trc_dcd_mngr_stm.h OLD_FILES+=usr/include/opencsd/stm/trc_cmp_cfg_stm.h OLD_FILES+=usr/include/opencsd/stm/trc_pkt_elem_stm.h OLD_FILES+=usr/include/opencsd/stm/trc_pkt_decode_stm.h OLD_DIRS+=usr/include/opencsd/stm OLD_DIRS+=usr/include/opencsd .endif OLD_FILES+=usr/include/pmc.h OLD_FILES+=usr/include/pmclog.h OLD_FILES+=usr/include/pmcformat.h OLD_FILES+=usr/include/libpmcstat.h .if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib/libipt.a OLD_FILES+=usr/lib/libipt.so OLD_LIBS+=lib/libipt.so.0 OLD_FILES+=usr/lib/libipt_p.a .endif .if ${TARGET_ARCH} == "aarch64" OLD_FILES+=usr/lib/libopencsd.a OLD_FILES+=usr/lib/libopencsd.so OLD_LIBS+=lib/libopencsd.so.0 OLD_FILES+=usr/lib/libopencsd_p.a .endif OLD_FILES+=usr/lib/libpmc.a OLD_FILES+=usr/lib/libpmc.so OLD_LIBS+=usr/lib/libpmc.so.5 OLD_FILES+=usr/lib/libpmc_p.a OLD_FILES+=usr/sbin/pmc OLD_FILES+=usr/sbin/pmcannotate OLD_FILES+=usr/sbin/pmccontrol OLD_FILES+=usr/sbin/pmcstat OLD_FILES+=usr/share/man/man3/pmc.3.gz OLD_FILES+=usr/share/man/man3/pmc.amd.3.gz OLD_FILES+=usr/share/man/man3/pmc.atom.3.gz OLD_FILES+=usr/share/man/man3/pmc.atomsilvermont.3.gz OLD_FILES+=usr/share/man/man3/pmc.core.3.gz OLD_FILES+=usr/share/man/man3/pmc.core2.3.gz OLD_FILES+=usr/share/man/man3/pmc.corei7.3.gz OLD_FILES+=usr/share/man/man3/pmc.corei7uc.3.gz OLD_FILES+=usr/share/man/man3/pmc.haswell.3.gz OLD_FILES+=usr/share/man/man3/pmc.haswelluc.3.gz OLD_FILES+=usr/share/man/man3/pmc.haswellxeon.3.gz OLD_FILES+=usr/share/man/man3/pmc.iaf.3.gz OLD_FILES+=usr/share/man/man3/pmc.ivybridge.3.gz OLD_FILES+=usr/share/man/man3/pmc.ivybridgexeon.3.gz OLD_FILES+=usr/share/man/man3/pmc.k8.3.gz OLD_FILES+=usr/share/man/man3/pmc.sandybridge.3.gz OLD_FILES+=usr/share/man/man3/pmc.sandybridgeuc.3.gz OLD_FILES+=usr/share/man/man3/pmc.sandybridgexeon.3.gz OLD_FILES+=usr/share/man/man3/pmc.soft.3.gz OLD_FILES+=usr/share/man/man3/pmc.tsc.3.gz OLD_FILES+=usr/share/man/man3/pmc.ucf.3.gz OLD_FILES+=usr/share/man/man3/pmc.westmere.3.gz OLD_FILES+=usr/share/man/man3/pmc.westmereuc.3.gz OLD_FILES+=usr/share/man/man3/pmc.xscale.3.gz OLD_FILES+=usr/share/man/man3/pmc_allocate.3.gz OLD_FILES+=usr/share/man/man3/pmc_attach.3.gz OLD_FILES+=usr/share/man/man3/pmc_capabilities.3.gz OLD_FILES+=usr/share/man/man3/pmc_configure_logfile.3.gz OLD_FILES+=usr/share/man/man3/pmc_cpuinfo.3.gz OLD_FILES+=usr/share/man/man3/pmc_detach.3.gz OLD_FILES+=usr/share/man/man3/pmc_disable.3.gz OLD_FILES+=usr/share/man/man3/pmc_enable.3.gz OLD_FILES+=usr/share/man/man3/pmc_event_names_of_class.3.gz OLD_FILES+=usr/share/man/man3/pmc_flush_logfile.3.gz OLD_FILES+=usr/share/man/man3/pmc_get_driver_stats.3.gz OLD_FILES+=usr/share/man/man3/pmc_get_msr.3.gz OLD_FILES+=usr/share/man/man3/pmc_init.3.gz OLD_FILES+=usr/share/man/man3/pmc_name_of_capability.3.gz OLD_FILES+=usr/share/man/man3/pmc_name_of_class.3.gz OLD_FILES+=usr/share/man/man3/pmc_name_of_cputype.3.gz OLD_FILES+=usr/share/man/man3/pmc_name_of_disposition.3.gz OLD_FILES+=usr/share/man/man3/pmc_name_of_event.3.gz OLD_FILES+=usr/share/man/man3/pmc_name_of_mode.3.gz OLD_FILES+=usr/share/man/man3/pmc_name_of_state.3.gz OLD_FILES+=usr/share/man/man3/pmc_ncpu.3.gz OLD_FILES+=usr/share/man/man3/pmc_npmc.3.gz OLD_FILES+=usr/share/man/man3/pmc_pmcinfo.3.gz OLD_FILES+=usr/share/man/man3/pmc_read.3.gz OLD_FILES+=usr/share/man/man3/pmc_release.3.gz OLD_FILES+=usr/share/man/man3/pmc_rw.3.gz OLD_FILES+=usr/share/man/man3/pmc_set.3.gz OLD_FILES+=usr/share/man/man3/pmc_start.3.gz OLD_FILES+=usr/share/man/man3/pmc_stop.3.gz OLD_FILES+=usr/share/man/man3/pmc_width.3.gz OLD_FILES+=usr/share/man/man3/pmc_write.3.gz OLD_FILES+=usr/share/man/man3/pmc_writelog.3.gz OLD_FILES+=usr/share/man/man3/pmclog.3.gz OLD_FILES+=usr/share/man/man3/pmclog_close.3.gz OLD_FILES+=usr/share/man/man3/pmclog_feed.3.gz OLD_FILES+=usr/share/man/man3/pmclog_open.3.gz OLD_FILES+=usr/share/man/man3/pmclog_read.3.gz OLD_FILES+=usr/share/man/man8/pmcannotate.8.gz OLD_FILES+=usr/share/man/man8/pmccontrol.8.gz OLD_FILES+=usr/share/man/man8/pmcstat.8.gz OLD_FILES+=usr/share/man/man8/pmcstudy.8.gz .endif .if ${MK_PPP} == no OLD_FILES+=etc/newsyslog.conf.d/ppp.conf OLD_FILES+=etc/ppp/ppp.conf OLD_FILES+=etc/rc.d/ppp OLD_FILES+=etc/syslog.d/ppp.conf OLD_DIRS+=etc/ppp OLD_FILES+=usr/sbin/ppp OLD_FILES+=usr/sbin/pppctl OLD_FILES+=usr/share/man/man8/ppp.8.gz OLD_FILES+=usr/share/man/man8/pppctl.8.gz .endif .if ${MK_QUOTAS} == no OLD_FILES+=sbin/quotacheck OLD_FILES+=usr/bin/quota OLD_FILES+=usr/sbin/edquota OLD_FILES+=usr/sbin/quotaoff OLD_FILES+=usr/sbin/quotaon OLD_FILES+=usr/sbin/repquota OLD_FILES+=usr/share/man/man1/quota.1.gz OLD_FILES+=usr/share/man/man8/edquota.8.gz OLD_FILES+=usr/share/man/man8/quotacheck.8.gz OLD_FILES+=usr/share/man/man8/quotaoff.8.gz OLD_FILES+=usr/share/man/man8/quotaon.8.gz OLD_FILES+=usr/share/man/man8/repquota.8.gz .endif .if ${MK_RADIUS_SUPPORT} == no OLD_FILES+=usr/lib/libradius.a OLD_FILES+=usr/lib/libradius.so OLD_LIBS+=usr/lib/libradius.so.4 OLD_FILES+=usr/lib/libradius_p.a OLD_FILES+=usr/lib/pam_radius.so OLD_LIBS+=usr/lib/pam_radius.so.6 OLD_FILES+=usr/include/radlib.h OLD_FILES+=usr/include/radlib_vs.h OLD_FILES+=usr/share/man/man3/libradius.3.gz OLD_FILES+=usr/share/man/man3/rad_acct_open.3.gz OLD_FILES+=usr/share/man/man3/rad_add_server.3.gz OLD_FILES+=usr/share/man/man3/rad_add_server_ex.3.gz OLD_FILES+=usr/share/man/man3/rad_auth_open.3.gz OLD_FILES+=usr/share/man/man3/rad_bind_to.3.gz OLD_FILES+=usr/share/man/man3/rad_close.3.gz OLD_FILES+=usr/share/man/man3/rad_config.3.gz OLD_FILES+=usr/share/man/man3/rad_continue_send_request.3.gz OLD_FILES+=usr/share/man/man3/rad_create_request.3.gz OLD_FILES+=usr/share/man/man3/rad_create_response.3.gz OLD_FILES+=usr/share/man/man3/rad_cvt_addr.3.gz OLD_FILES+=usr/share/man/man3/rad_cvt_int.3.gz OLD_FILES+=usr/share/man/man3/rad_cvt_string.3.gz OLD_FILES+=usr/share/man/man3/rad_demangle.3.gz OLD_FILES+=usr/share/man/man3/rad_demangle_mppe_key.3.gz OLD_FILES+=usr/share/man/man3/rad_get_attr.3.gz OLD_FILES+=usr/share/man/man3/rad_get_vendor_attr.3.gz OLD_FILES+=usr/share/man/man3/rad_init_send_request.3.gz OLD_FILES+=usr/share/man/man3/rad_put_addr.3.gz OLD_FILES+=usr/share/man/man3/rad_put_attr.3.gz OLD_FILES+=usr/share/man/man3/rad_put_int.3.gz OLD_FILES+=usr/share/man/man3/rad_put_message_authentic.3.gz OLD_FILES+=usr/share/man/man3/rad_put_string.3.gz OLD_FILES+=usr/share/man/man3/rad_put_vendor_addr.3.gz OLD_FILES+=usr/share/man/man3/rad_put_vendor_attr.3.gz OLD_FILES+=usr/share/man/man3/rad_put_vendor_int.3.gz OLD_FILES+=usr/share/man/man3/rad_put_vendor_string.3.gz OLD_FILES+=usr/share/man/man3/rad_receive_request.3.gz OLD_FILES+=usr/share/man/man3/rad_request_authenticator.3.gz OLD_FILES+=usr/share/man/man3/rad_send_request.3.gz OLD_FILES+=usr/share/man/man3/rad_send_response.3.gz OLD_FILES+=usr/share/man/man3/rad_server_open.3.gz OLD_FILES+=usr/share/man/man3/rad_server_secret.3.gz OLD_FILES+=usr/share/man/man3/rad_strerror.3.gz OLD_FILES+=usr/share/man/man5/radius.conf.5.gz OLD_FILES+=usr/share/man/man8/pam_radius.8.gz .endif .if ${MK_RBOOTD} == no OLD_FILES+=usr/libexec/rbootd OLD_FILES+=usr/share/man/man8/rbootd.8.gz .endif .if ${MK_RESCUE} == no . if exists(${DESTDIR}${TESTSBASE}) RESCUE_DIRS!=find ${DESTDIR}/rescue -type d 2>/dev/null | sed -e 's,^${DESTDIR}/,,'; echo OLD_DIRS+=${RESCUE_DIRS} RESCUE_FILES!=find ${DESTDIR}/rescue \! -type d 2>/dev/null | sed -e 's,^${DESTDIR}/,,'; echo OLD_FILES+=${RESCUE_FILES} . endif .endif .if ${MK_ROUTED} == no OLD_FILES+=etc/rc.d/routed OLD_FILES+=rescue/routed OLD_FILES+=rescue/rtquery OLD_FILES+=sbin/routed OLD_FILES+=sbin/rtquery OLD_FILES+=usr/share/man/man8/routed.8.gz OLD_FILES+=usr/share/man/man8/rtquery.8.gz .endif .if ${MK_SENDMAIL} == no OLD_FILES+=etc/mtree/BSD.sendmail.dist OLD_FILES+=etc/newsyslog.conf.d/sendmail.conf OLD_FILES+=etc/periodic/daily/150.clean-hoststat OLD_FILES+=etc/periodic/daily/440.status-mailq OLD_FILES+=etc/periodic/daily/460.status-mail-rejects OLD_FILES+=etc/periodic/daily/500.queuerun OLD_FILES+=etc/rc.d/sendmail .if ${MK_MAILWRAPPER} == no OLD_FILES+=bin/rmail .endif OLD_FILES+=usr/bin/vacation OLD_FILES+=usr/include/libmilter/mfapi.h OLD_FILES+=usr/include/libmilter/mfdef.h OLD_DIRS+=usr/include/libmilter OLD_FILES+=usr/lib/libmilter.a OLD_FILES+=usr/lib/libmilter.so OLD_LIBS+=usr/lib/libmilter.so.5 OLD_FILES+=usr/lib/libmilter_p.a OLD_FILES+=usr/libexec/mail.local OLD_FILES+=usr/libexec/sendmail/sendmail OLD_FILES+=usr/libexec/smrsh OLD_FILES+=usr/sbin/editmap OLD_FILES+=usr/sbin/mailstats OLD_FILES+=usr/sbin/makemap OLD_FILES+=usr/sbin/praliases OLD_FILES+=usr/share/doc/smm/08.sendmailop/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/08.sendmailop OLD_FILES+=usr/share/examples/sendmail/mailer.conf OLD_DIRS+=usr/share/examples/sendmail OLD_FILES+=usr/share/man/man1/mailq.1.gz OLD_FILES+=usr/share/man/man1/newaliases.1.gz OLD_FILES+=usr/share/man/man1/vacation.1.gz OLD_FILES+=usr/share/man/man5/aliases.5.gz OLD_FILES+=usr/share/man/man8/editmap.8.gz OLD_FILES+=usr/share/man/man8/hoststat.8.gz OLD_FILES+=usr/share/man/man8/mail.local.8.gz OLD_FILES+=usr/share/man/man8/mailstats.8.gz OLD_FILES+=usr/share/man/man8/makemap.8.gz OLD_FILES+=usr/share/man/man8/praliases.8.gz OLD_FILES+=usr/share/man/man8/purgestat.8.gz OLD_FILES+=usr/share/man/man8/rmail.8.gz OLD_FILES+=usr/share/man/man8/sendmail.8.gz OLD_FILES+=usr/share/man/man8/smrsh.8.gz OLD_FILES+=usr/share/sendmail/cf/README OLD_FILES+=usr/share/sendmail/cf/cf/Makefile OLD_FILES+=usr/share/sendmail/cf/cf/README OLD_FILES+=usr/share/sendmail/cf/cf/chez.cs.mc OLD_FILES+=usr/share/sendmail/cf/cf/clientproto.mc OLD_FILES+=usr/share/sendmail/cf/cf/cs-hpux10.mc OLD_FILES+=usr/share/sendmail/cf/cf/cs-hpux9.mc OLD_FILES+=usr/share/sendmail/cf/cf/cs-osf1.mc OLD_FILES+=usr/share/sendmail/cf/cf/cs-solaris2.mc OLD_FILES+=usr/share/sendmail/cf/cf/cs-sunos4.1.mc OLD_FILES+=usr/share/sendmail/cf/cf/cs-ultrix4.mc OLD_FILES+=usr/share/sendmail/cf/cf/cyrusproto.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-bsd4.4.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-hpux10.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-hpux9.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-linux.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-mpeix.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-nextstep3.3.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-osf1.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-solaris.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-sunos4.1.mc OLD_FILES+=usr/share/sendmail/cf/cf/generic-ultrix4.mc OLD_FILES+=usr/share/sendmail/cf/cf/huginn.cs.mc OLD_FILES+=usr/share/sendmail/cf/cf/knecht.mc OLD_FILES+=usr/share/sendmail/cf/cf/mail.cs.mc OLD_FILES+=usr/share/sendmail/cf/cf/mail.eecs.mc OLD_FILES+=usr/share/sendmail/cf/cf/mailspool.cs.mc OLD_FILES+=usr/share/sendmail/cf/cf/python.cs.mc OLD_FILES+=usr/share/sendmail/cf/cf/s2k-osf1.mc OLD_FILES+=usr/share/sendmail/cf/cf/s2k-ultrix4.mc OLD_FILES+=usr/share/sendmail/cf/cf/submit.cf OLD_FILES+=usr/share/sendmail/cf/cf/submit.mc OLD_FILES+=usr/share/sendmail/cf/cf/tcpproto.mc OLD_FILES+=usr/share/sendmail/cf/cf/ucbarpa.mc OLD_FILES+=usr/share/sendmail/cf/cf/ucbvax.mc OLD_FILES+=usr/share/sendmail/cf/cf/uucpproto.mc OLD_FILES+=usr/share/sendmail/cf/cf/vangogh.cs.mc OLD_DIRS+=usr/share/sendmail/cf/cf OLD_FILES+=usr/share/sendmail/cf/domain/Berkeley.EDU.m4 OLD_FILES+=usr/share/sendmail/cf/domain/CS.Berkeley.EDU.m4 OLD_FILES+=usr/share/sendmail/cf/domain/EECS.Berkeley.EDU.m4 OLD_FILES+=usr/share/sendmail/cf/domain/S2K.Berkeley.EDU.m4 OLD_FILES+=usr/share/sendmail/cf/domain/berkeley-only.m4 OLD_FILES+=usr/share/sendmail/cf/domain/generic.m4 OLD_DIRS+=usr/share/sendmail/cf/domain OLD_FILES+=usr/share/sendmail/cf/feature/accept_unqualified_senders.m4 OLD_FILES+=usr/share/sendmail/cf/feature/accept_unresolvable_domains.m4 OLD_FILES+=usr/share/sendmail/cf/feature/access_db.m4 OLD_FILES+=usr/share/sendmail/cf/feature/allmasquerade.m4 OLD_FILES+=usr/share/sendmail/cf/feature/always_add_domain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/authinfo.m4 OLD_FILES+=usr/share/sendmail/cf/feature/blocklist_recipients.m4 OLD_FILES+=usr/share/sendmail/cf/feature/badmx.m4 OLD_FILES+=usr/share/sendmail/cf/feature/bcc.m4 OLD_FILES+=usr/share/sendmail/cf/feature/bestmx_is_local.m4 OLD_FILES+=usr/share/sendmail/cf/feature/bitdomain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/blacklist_recipients.m4 OLD_FILES+=usr/share/sendmail/cf/feature/block_bad_helo.m4 OLD_FILES+=usr/share/sendmail/cf/feature/check_other.m4 OLD_FILES+=usr/share/sendmail/cf/feature/check_cert_altnames.m4 OLD_FILES+=usr/share/sendmail/cf/feature/check_other.m4 OLD_FILES+=usr/share/sendmail/cf/feature/compat_check.m4 OLD_FILES+=usr/share/sendmail/cf/feature/conncontrol.m4 OLD_FILES+=usr/share/sendmail/cf/feature/delay_checks.m4 OLD_FILES+=usr/share/sendmail/cf/feature/dnsbl.m4 OLD_FILES+=usr/share/sendmail/cf/feature/domaintable.m4 OLD_FILES+=usr/share/sendmail/cf/feature/enhdnsbl.m4 OLD_FILES+=usr/share/sendmail/cf/feature/fips3.m4 OLD_FILES+=usr/share/sendmail/cf/feature/generics_entire_domain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/genericstable.m4 OLD_FILES+=usr/share/sendmail/cf/feature/greet_pause.m4 OLD_FILES+=usr/share/sendmail/cf/feature/ldap_routing.m4 OLD_FILES+=usr/share/sendmail/cf/feature/limited_masquerade.m4 OLD_FILES+=usr/share/sendmail/cf/feature/local_lmtp.m4 OLD_FILES+=usr/share/sendmail/cf/feature/local_no_masquerade.m4 OLD_FILES+=usr/share/sendmail/cf/feature/local_procmail.m4 OLD_FILES+=usr/share/sendmail/cf/feature/lookupdotdomain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/loose_relay_check.m4 OLD_FILES+=usr/share/sendmail/cf/feature/mailertable.m4 OLD_FILES+=usr/share/sendmail/cf/feature/masquerade_entire_domain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/masquerade_envelope.m4 OLD_FILES+=usr/share/sendmail/cf/feature/msp.m4 OLD_FILES+=usr/share/sendmail/cf/feature/mtamark.m4 OLD_FILES+=usr/share/sendmail/cf/feature/no_default_msa.m4 OLD_FILES+=usr/share/sendmail/cf/feature/nocanonify.m4 OLD_FILES+=usr/share/sendmail/cf/feature/nopercenthack.m4 OLD_FILES+=usr/share/sendmail/cf/feature/notsticky.m4 OLD_FILES+=usr/share/sendmail/cf/feature/nouucp.m4 OLD_FILES+=usr/share/sendmail/cf/feature/nullclient.m4 OLD_FILES+=usr/share/sendmail/cf/feature/prefixmod.m4 OLD_FILES+=usr/share/sendmail/cf/feature/preserve_local_plus_detail.m4 OLD_FILES+=usr/share/sendmail/cf/feature/preserve_luser_host.m4 OLD_FILES+=usr/share/sendmail/cf/feature/promiscuous_relay.m4 OLD_FILES+=usr/share/sendmail/cf/feature/queuegroup.m4 OLD_FILES+=usr/share/sendmail/cf/feature/ratecontrol.m4 OLD_FILES+=usr/share/sendmail/cf/feature/redirect.m4 OLD_FILES+=usr/share/sendmail/cf/feature/relay_based_on_MX.m4 OLD_FILES+=usr/share/sendmail/cf/feature/relay_entire_domain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/relay_hosts_only.m4 OLD_FILES+=usr/share/sendmail/cf/feature/relay_local_from.m4 OLD_FILES+=usr/share/sendmail/cf/feature/relay_mail_from.m4 OLD_FILES+=usr/share/sendmail/cf/feature/require_rdns.m4 OLD_FILES+=usr/share/sendmail/cf/feature/smrsh.m4 OLD_FILES+=usr/share/sendmail/cf/feature/stickyhost.m4 OLD_FILES+=usr/share/sendmail/cf/feature/sts.m4 OLD_FILES+=usr/share/sendmail/cf/feature/tls_failures.m4 OLD_FILES+=usr/share/sendmail/cf/feature/tls_session_features.m4 OLD_FILES+=usr/share/sendmail/cf/feature/use_client_ptr.m4 OLD_FILES+=usr/share/sendmail/cf/feature/use_ct_file.m4 OLD_FILES+=usr/share/sendmail/cf/feature/use_cw_file.m4 OLD_FILES+=usr/share/sendmail/cf/feature/uucpdomain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/virtuser_entire_domain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/virtusertable.m4 OLD_DIRS+=usr/share/sendmail/cf/feature OLD_FILES+=usr/share/sendmail/cf/hack/cssubdomain.m4 OLD_FILES+=usr/share/sendmail/cf/hack/xconnect.m4 OLD_DIRS+=usr/share/sendmail/cf/hack OLD_FILES+=usr/share/sendmail/cf/m4/cf.m4 OLD_FILES+=usr/share/sendmail/cf/m4/cfhead.m4 OLD_FILES+=usr/share/sendmail/cf/m4/proto.m4 OLD_FILES+=usr/share/sendmail/cf/m4/version.m4 OLD_DIRS+=usr/share/sendmail/cf/m4 OLD_FILES+=usr/share/sendmail/cf/mailer/cyrus.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/cyrusv2.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/fax.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/local.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/mail11.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/phquery.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/pop.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/procmail.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/qpage.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/smtp.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/usenet.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/uucp.m4 OLD_DIRS+=usr/share/sendmail/cf/mailer OLD_FILES+=usr/share/sendmail/cf/ostype/a-ux.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/aix3.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/aix4.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/aix5.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/altos.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/amdahl-uts.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/bsd4.3.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/bsd4.4.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/bsdi.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/bsdi1.0.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/bsdi2.0.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/darwin.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/dgux.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/domainos.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/dragonfly.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/dynix3.2.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/freebsd4.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/freebsd5.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/freebsd6.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/gnu.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/hpux10.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/hpux11.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/hpux9.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/irix4.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/irix5.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/irix6.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/isc4.1.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/linux.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/maxion.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/mklinux.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/mpeix.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/nextstep.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/openbsd.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/osf1.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/powerux.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/ptx2.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/qnx.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/riscos4.5.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/sco-uw-2.1.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/sco3.2.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/sinix.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/solaris11.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/solaris2.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/solaris2.ml.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/solaris2.pre5.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/solaris8.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/sunos3.5.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/sunos4.1.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/svr4.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/ultrix4.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/unicos.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/unicosmk.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/unicosmp.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/unixware7.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/unknown.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/uxpds.m4 OLD_DIRS+=usr/share/sendmail/cf/ostype OLD_FILES+=usr/share/sendmail/cf/sendmail.schema OLD_FILES+=usr/share/sendmail/cf/sh/makeinfo.sh OLD_DIRS+=usr/share/sendmail/cf/sh OLD_FILES+=usr/share/sendmail/cf/siteconfig/uucp.cogsci.m4 OLD_FILES+=usr/share/sendmail/cf/siteconfig/uucp.old.arpa.m4 OLD_FILES+=usr/share/sendmail/cf/siteconfig/uucp.ucbarpa.m4 OLD_FILES+=usr/share/sendmail/cf/siteconfig/uucp.ucbvax.m4 OLD_DIRS+=usr/share/sendmail/cf/siteconfig OLD_DIRS+=usr/share/sendmail/cf OLD_DIRS+=usr/share/sendmail OLD_DIRS+=var/spool/clientmqueue .endif .if ${MK_SERVICESDB} == no OLD_FILES+=var/db/services.db .endif .if ${MK_NUAGEINIT} == no OLD_FILES+=etc/rc.d/nuageinit OLD_FILES+=usr/libexec/nuageinit OLD_FILES+=usr/share/flua/nuage.lua OLD_FILES+=usr/share/flua/yaml.lua OLD_FILES+=usr/tests OLD_FILES+=usr/tests/libexec/nuageinit/utils OLD_FILES+=usr/tests/libexec/nuageinit/nuage OLD_FILES+=usr/tests/libexec/nuageinit/warn.lua OLD_FILES+=usr/tests/libexec/nuageinit/dirname.lua OLD_FILES+=usr/tests/libexec/nuageinit/err.lua OLD_FILES+=usr/tests/libexec/nuageinit/adduser.lua OLD_FILES+=usr/tests/libexec/nuageinit/addsshkeys.lua OLD_FILES+=usr/tests/libexec/nuageinit/Kyuafile OLD_FILES+=usr/tests/libexec/nuageinit/ktrace.out OLD_FILES+=usr/tests/libexec/nuageinit/addgroup.lua OLD_FILES+=usr/tests/libexec/nuageinit/sethostname.lua OLD_FILES+=usr/tests/libexec/nuageinit/nuageinit OLD_FILES+=usr/tests/libexec/nuageinit/addsshkey.lua .endif .if ${MK_SHAREDOCS} == no OLD_FILES+=usr/share/doc/pjdfstest/README OLD_DIRS+=usr/share/doc/pjdfstest .endif .if ${MK_SYSCONS} == no OLD_FILES+=usr/share/syscons/fonts/INDEX.fonts OLD_FILES+=usr/share/syscons/fonts/armscii8-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/armscii8-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/armscii8-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp1251-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/cp1251-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp1251-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp437-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/cp437-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp437-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp437-thin-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp437-thin-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp850-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/cp850-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp850-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp850-thin-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp850-thin-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp865-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/cp865-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp865-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp865-thin-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp865-thin-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp866-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/cp866-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp866-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/cp866b-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp866c-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp866u-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/cp866u-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/cp866u-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/haik8-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/haik8-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/haik8-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/iso-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso-thin-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso02-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/iso02-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso02-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso04-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/iso04-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso04-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso04-vga9-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/iso04-vga9-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso04-vga9-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso04-vga9-wide-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso04-wide-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso05-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/iso05-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso05-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso07-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/iso07-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso07-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso08-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/iso08-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso08-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso09-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso15-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/iso15-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/iso15-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/iso15-thin-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/koi8-r-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/koi8-r-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/koi8-r-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/koi8-rb-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/koi8-rc-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/koi8-u-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/koi8-u-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/koi8-u-8x8.fnt OLD_FILES+=usr/share/syscons/fonts/swiss-1131-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/swiss-1251-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/swiss-8x14.fnt OLD_FILES+=usr/share/syscons/fonts/swiss-8x16.fnt OLD_FILES+=usr/share/syscons/fonts/swiss-8x8.fnt OLD_FILES+=usr/share/syscons/keymaps/INDEX.keymaps OLD_FILES+=usr/share/syscons/keymaps/be.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/be.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/bg.bds.ctrlcaps.kbd OLD_FILES+=usr/share/syscons/keymaps/bg.phonetic.ctrlcaps.kbd OLD_FILES+=usr/share/syscons/keymaps/br275.cp850.kbd OLD_FILES+=usr/share/syscons/keymaps/br275.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/br275.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/by.cp1131.kbd OLD_FILES+=usr/share/syscons/keymaps/by.cp1251.kbd OLD_FILES+=usr/share/syscons/keymaps/by.iso5.kbd OLD_FILES+=usr/share/syscons/keymaps/ce.iso2.kbd OLD_FILES+=usr/share/syscons/keymaps/colemak-dh.iso15.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/colemak.iso15.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/cs.latin2.qwertz.kbd OLD_FILES+=usr/share/syscons/keymaps/cz.iso2.kbd OLD_FILES+=usr/share/syscons/keymaps/danish.cp865.kbd OLD_FILES+=usr/share/syscons/keymaps/danish.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/danish.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/danish.iso.macbook.kbd OLD_FILES+=usr/share/syscons/keymaps/dutch.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/eee_nordic.kbd OLD_FILES+=usr/share/syscons/keymaps/el.iso07.kbd OLD_FILES+=usr/share/syscons/keymaps/estonian.cp850.kbd OLD_FILES+=usr/share/syscons/keymaps/estonian.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/estonian.iso15.kbd OLD_FILES+=usr/share/syscons/keymaps/finnish.cp850.kbd OLD_FILES+=usr/share/syscons/keymaps/finnish.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/fr.dvorak.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/fr.dvorak.kbd OLD_FILES+=usr/share/syscons/keymaps/fr.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/fr.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/fr.macbook.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/fr_CA.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/german.cp850.kbd OLD_FILES+=usr/share/syscons/keymaps/german.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/german.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/gr.elot.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/gr.us101.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/hr.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/hu.iso2.101keys.kbd OLD_FILES+=usr/share/syscons/keymaps/hu.iso2.102keys.kbd OLD_FILES+=usr/share/syscons/keymaps/hy.armscii-8.kbd OLD_FILES+=usr/share/syscons/keymaps/icelandic.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/icelandic.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/it.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/iw.iso8.kbd OLD_FILES+=usr/share/syscons/keymaps/jp.106.kbd OLD_FILES+=usr/share/syscons/keymaps/jp.106x.kbd OLD_FILES+=usr/share/syscons/keymaps/kk.pt154.io.kbd OLD_FILES+=usr/share/syscons/keymaps/kk.pt154.kst.kbd OLD_FILES+=usr/share/syscons/keymaps/latinamerican.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/latinamerican.kbd OLD_FILES+=usr/share/syscons/keymaps/lt.iso4.kbd OLD_FILES+=usr/share/syscons/keymaps/norwegian.dvorak.kbd OLD_FILES+=usr/share/syscons/keymaps/norwegian.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/pl_PL.ISO8859-2.kbd OLD_FILES+=usr/share/syscons/keymaps/pl_PL.dvorak.kbd OLD_FILES+=usr/share/syscons/keymaps/pt.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/pt.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/ru.cp866.kbd OLD_FILES+=usr/share/syscons/keymaps/ru.iso5.kbd OLD_FILES+=usr/share/syscons/keymaps/ru.koi8-r.kbd OLD_FILES+=usr/share/syscons/keymaps/ru.koi8-r.shift.kbd OLD_FILES+=usr/share/syscons/keymaps/ru.koi8-r.win.kbd OLD_FILES+=usr/share/syscons/keymaps/si.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/sk.iso2.kbd OLD_FILES+=usr/share/syscons/keymaps/spanish.dvorak.kbd OLD_FILES+=usr/share/syscons/keymaps/spanish.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/spanish.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/spanish.iso15.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/swedish.cp850.kbd OLD_FILES+=usr/share/syscons/keymaps/swedish.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/swissfrench.cp850.kbd OLD_FILES+=usr/share/syscons/keymaps/swissfrench.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/swissfrench.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/swissgerman.cp850.kbd OLD_FILES+=usr/share/syscons/keymaps/swissgerman.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/swissgerman.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/swissgerman.macbook.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/tr.iso9.q.kbd OLD_FILES+=usr/share/syscons/keymaps/ua.iso5.kbd OLD_FILES+=usr/share/syscons/keymaps/ua.koi8-u.kbd OLD_FILES+=usr/share/syscons/keymaps/ua.koi8-u.shift.alt.kbd OLD_FILES+=usr/share/syscons/keymaps/uk.cp850-ctrl.kbd OLD_FILES+=usr/share/syscons/keymaps/uk.cp850.kbd OLD_FILES+=usr/share/syscons/keymaps/uk.dvorak.kbd OLD_FILES+=usr/share/syscons/keymaps/uk.iso-ctrl.kbd OLD_FILES+=usr/share/syscons/keymaps/uk.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/us.dvorak.kbd OLD_FILES+=usr/share/syscons/keymaps/us.dvorakl.kbd OLD_FILES+=usr/share/syscons/keymaps/us.dvorakp.kbd OLD_FILES+=usr/share/syscons/keymaps/us.dvorakr.kbd OLD_FILES+=usr/share/syscons/keymaps/us.dvorakx.kbd OLD_FILES+=usr/share/syscons/keymaps/us.emacs.kbd OLD_FILES+=usr/share/syscons/keymaps/us.iso.acc.kbd OLD_FILES+=usr/share/syscons/keymaps/us.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/us.iso.macbook.kbd OLD_FILES+=usr/share/syscons/keymaps/us.pc-ctrl.kbd OLD_FILES+=usr/share/syscons/keymaps/us.unix.kbd OLD_FILES+=usr/share/syscons/scrnmaps/armscii8-2haik8.scm OLD_FILES+=usr/share/syscons/scrnmaps/iso-8859-1_to_cp437.scm OLD_FILES+=usr/share/syscons/scrnmaps/iso-8859-4_for_vga9.scm OLD_FILES+=usr/share/syscons/scrnmaps/iso-8859-7_to_cp437.scm OLD_FILES+=usr/share/syscons/scrnmaps/koi8-r2cp866.scm OLD_FILES+=usr/share/syscons/scrnmaps/koi8-u2cp866u.scm OLD_FILES+=usr/share/syscons/scrnmaps/us-ascii_to_cp437.scm OLD_DIRS+=usr/share/syscons/fonts OLD_DIRS+=usr/share/syscons/scrnmaps OLD_DIRS+=usr/share/syscons/keymaps OLD_DIRS+=usr/share/syscons .endif .if ${MK_TALK} == no OLD_FILES+=usr/bin/talk OLD_FILES+=usr/libexec/ntalkd OLD_FILES+=usr/share/man/man1/talk.1.gz OLD_FILES+=usr/share/man/man8/talkd.8.gz .endif .if ${MK_TCSH} == no OLD_FILES+=.cshrc OLD_FILES+=etc/csh.cshrc OLD_FILES+=etc/csh.login OLD_FILES+=etc/csh.logout OLD_FILES+=bin/csh OLD_FILES+=bin/tcsh OLD_FILES+=rescue/csh OLD_FILES+=rescue/tcsh OLD_FILES+=root/.cshrc OLD_FILES+=root/.login OLD_FILES+=usr/share/examples/etc/csh.cshrc OLD_FILES+=usr/share/examples/etc/csh.login OLD_FILES+=usr/share/examples/etc/csh.logout OLD_FILES+=usr/share/examples/tcsh/complete.tcsh OLD_FILES+=usr/share/examples/tcsh/csh-mode.el OLD_DIRS+=usr/share/examples/tcsh OLD_FILES+=usr/share/man/man1/csh.1.gz OLD_FILES+=usr/share/man/man1/tcsh.1.gz OLD_FILES+=usr/share/nls/de_AT.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/de_AT.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/de_AT.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/de_CH.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/de_CH.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/de_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/de_DE.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/de_DE.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/de_DE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/el_GR.ISO8859-7/tcsh.cat OLD_FILES+=usr/share/nls/el_GR.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/es_ES.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/es_ES.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/es_ES.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/et_EE.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/et_EE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fi_FI.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fi_FI.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/fi_FI.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_BE.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fr_BE.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/fr_BE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_CA.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fr_CA.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/fr_CA.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_CH.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fr_CH.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/fr_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_FR.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fr_FR.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/fr_FR.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/it_CH.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/it_CH.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/it_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/it_IT.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/it_IT.ISO8859-15/tcsh.cat OLD_FILES+=usr/share/nls/it_IT.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/ja_JP.SJIS/tcsh.cat OLD_FILES+=usr/share/nls/ja_JP.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/ja_JP.eucJP/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.CP1251/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.CP866/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.ISO8859-5/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.KOI8-R/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/uk_UA.ISO8859-5/tcsh.cat OLD_FILES+=usr/share/nls/uk_UA.KOI8-U/tcsh.cat OLD_FILES+=usr/share/nls/uk_UA.UTF-8/tcsh.cat .endif .if ${MK_TELNET} == no OLD_FILES+=usr/bin/telnet OLD_FILES+=usr/share/man/man1/telnet.1.gz .endif .if ${MK_TESTS} == yes OLD_FILES+=usr/bin/atf-sh OLD_FILES+=usr/include/atf-c++/config.hpp OLD_FILES+=usr/include/atf-c/config.h OLD_FILES+=usr/lib/libatf-c++.a OLD_FILES+=usr/lib/libatf-c++.so OLD_LIBS+=usr/lib/libatf-c++.so.1 OLD_LIBS+=usr/lib/libatf-c++.so.2 OLD_FILES+=usr/lib/libatf-c++_p.a OLD_FILES+=usr/lib/libatf-c.a OLD_FILES+=usr/lib/libatf-c.so OLD_LIBS+=usr/lib/libatf-c.so.1 OLD_FILES+=usr/lib/libatf-c_p.a OLD_LIBS+=usr/lib/libprivateatf-c.so.0 OLD_LIBS+=usr/lib/libprivateatf-c++.so.1 OLD_FILES+=usr/libdata/pkgconfig/atf-c++.pc OLD_FILES+=usr/libdata/pkgconfig/atf-c.pc OLD_FILES+=usr/libdata/pkgconfig/atf-sh.pc OLD_FILES+=usr/share/aclocal/atf-c++.m4 OLD_FILES+=usr/share/aclocal/atf-c.m4 OLD_FILES+=usr/share/aclocal/atf-common.m4 OLD_FILES+=usr/share/aclocal/atf-sh.m4 OLD_DIRS+=usr/share/aclocal OLD_DIRS+=usr/tests/bin/chown OLD_FILES+=usr/tests/bin/chown/Kyuafile OLD_FILES+=usr/tests/bin/chown/chown-f_test OLD_FILES+=usr/tests/bin/chown/units_basics OLD_FILES+=usr/tests/bin/date/legacy_test OLD_FILES+=usr/tests/bin/sh/legacy_test OLD_FILES+=usr/tests/usr.bin/atf/Kyuafile OLD_FILES+=usr/tests/usr.bin/atf/atf-sh/Kyuafile OLD_FILES+=usr/tests/usr.bin/atf/atf-sh/atf_check_test OLD_FILES+=usr/tests/usr.bin/atf/atf-sh/config_test OLD_FILES+=usr/tests/usr.bin/atf/atf-sh/integration_test OLD_FILES+=usr/tests/usr.bin/atf/atf-sh/misc_helpers OLD_FILES+=usr/tests/usr.bin/atf/atf-sh/normalize_test OLD_FILES+=usr/tests/usr.bin/atf/atf-sh/tc_test OLD_FILES+=usr/tests/usr.bin/atf/atf-sh/tp_test OLD_DIRS+=usr/tests/usr.bin/atf/atf-sh OLD_DIRS+=usr/tests/usr.bin/atf OLD_FILES+=usr/tests/lib/atf/libatf-c/test_helpers_test OLD_FILES+=usr/tests/lib/atf/test-programs/fork_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/application_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/config_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/expand_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/parser_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/sanity_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/ui_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/env_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/exceptions_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/expand_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/fs_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/parser_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/process_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/sanity_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/pkg_config_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/text_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/ui_test OLD_FILES+=usr/tests/lib/atf/libatf-c/config_test OLD_FILES+=usr/tests/lib/atf/libatf-c/dynstr_test OLD_FILES+=usr/tests/lib/atf/libatf-c/env_test OLD_FILES+=usr/tests/lib/atf/libatf-c/fs_test OLD_FILES+=usr/tests/lib/atf/libatf-c/list_test OLD_FILES+=usr/tests/lib/atf/libatf-c/map_test OLD_FILES+=usr/tests/lib/atf/libatf-c/pkg_config_test OLD_FILES+=usr/tests/lib/atf/libatf-c/process_helpers OLD_FILES+=usr/tests/lib/atf/libatf-c/process_test OLD_FILES+=usr/tests/lib/atf/libatf-c/sanity_test OLD_FILES+=usr/tests/lib/atf/libatf-c/text_test OLD_FILES+=usr/tests/lib/atf/libatf-c/user_test .if ${MK_MAKE} == yes OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/legacy_test OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.status.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.status.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.status.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.status.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.status.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stderr.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stderr.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stderr.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stderr.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stdout.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stdout.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stdout.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/expected.stdout.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd/libtest.a OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/legacy_test OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.status.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.status.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.status.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.status.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.status.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod/libtest.a OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/legacy_test OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.status.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.status.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.status.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.status.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.status.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stderr.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stderr.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stderr.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stderr.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stdout.4 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stdout.5 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stdout.6 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/expected.stdout.7 OLD_FILES+=usr/tests/usr.bin/make/archives/fmt_oldbsd/libtest.a OLD_FILES+=usr/tests/usr.bin/make/archives/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/basic/t0/legacy_test OLD_FILES+=usr/tests/usr.bin/make/basic/t0/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/basic/t0/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t0/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t0/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t1/legacy_test OLD_FILES+=usr/tests/usr.bin/make/basic/t1/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/basic/t1/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/basic/t1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t2/legacy_test OLD_FILES+=usr/tests/usr.bin/make/basic/t2/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/basic/t2/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/basic/t2/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t2/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t2/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t3/legacy_test OLD_FILES+=usr/tests/usr.bin/make/basic/t3/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/basic/t3/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t3/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/basic/t3/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/basic/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/execution/ellipsis/legacy_test OLD_FILES+=usr/tests/usr.bin/make/execution/ellipsis/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/execution/ellipsis/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/execution/ellipsis/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/execution/ellipsis/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/execution/ellipsis/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/execution/empty/legacy_test OLD_FILES+=usr/tests/usr.bin/make/execution/empty/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/execution/empty/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/execution/empty/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/execution/empty/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/execution/empty/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/execution/joberr/legacy_test OLD_FILES+=usr/tests/usr.bin/make/execution/joberr/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/execution/joberr/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/execution/joberr/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/execution/joberr/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/execution/joberr/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/execution/plus/legacy_test OLD_FILES+=usr/tests/usr.bin/make/execution/plus/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/execution/plus/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/execution/plus/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/execution/plus/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/execution/plus/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/execution/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/legacy_test OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/shell/builtin/sh OLD_FILES+=usr/tests/usr.bin/make/shell/meta/legacy_test OLD_FILES+=usr/tests/usr.bin/make/shell/meta/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/shell/meta/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/shell/meta/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/shell/meta/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/shell/meta/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/shell/meta/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/shell/meta/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/shell/meta/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/shell/meta/sh OLD_FILES+=usr/tests/usr.bin/make/shell/path/legacy_test OLD_FILES+=usr/tests/usr.bin/make/shell/path/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/shell/path/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/shell/path/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/shell/path/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/shell/path/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/shell/path/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/shell/path/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/shell/path/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/shell/path/sh OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/legacy_test OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/shell/path_select/shell OLD_FILES+=usr/tests/usr.bin/make/shell/replace/legacy_test OLD_FILES+=usr/tests/usr.bin/make/shell/replace/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/shell/replace/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/shell/replace/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/shell/replace/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/shell/replace/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/shell/replace/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/shell/replace/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/shell/replace/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/shell/replace/shell OLD_FILES+=usr/tests/usr.bin/make/shell/select/legacy_test OLD_FILES+=usr/tests/usr.bin/make/shell/select/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/shell/select/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/shell/select/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/shell/select/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/shell/select/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/shell/select/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/shell/select/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/shell/select/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/shell/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/suffixes/basic/legacy_test OLD_FILES+=usr/tests/usr.bin/make/suffixes/basic/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/suffixes/basic/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/suffixes/basic/TEST1.a OLD_FILES+=usr/tests/usr.bin/make/suffixes/basic/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/basic/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/basic/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild1/legacy_test OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild1/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild1/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild1/TEST1.a OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild1/TEST2.a OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild2/legacy_test OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild2/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild2/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild2/TEST1.a OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild2/TEST2.a OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild2/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild2/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/src_wild2/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/suffixes/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/syntax/directive-t0/legacy_test OLD_FILES+=usr/tests/usr.bin/make/syntax/directive-t0/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/syntax/directive-t0/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/syntax/directive-t0/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/directive-t0/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/directive-t0/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/legacy_test OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.status.3 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.status.4 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.status.5 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stderr.4 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stderr.5 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stdout.4 OLD_FILES+=usr/tests/usr.bin/make/syntax/enl/expected.stdout.5 OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/legacy_test OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/funny-targets/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/legacy_test OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/syntax/semi/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/syntax/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/2/1/legacy_test OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/2/1/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/2/1/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/2/1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/2/1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/2/1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/2/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/mk/sys.mk OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/mk/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t0/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/2/1/legacy_test OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/2/1/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/2/1/cleanup OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/2/1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/2/1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/2/1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/2/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/mk/sys.mk OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/mk/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t1/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/2/1/legacy_test OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/2/1/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/2/1/cleanup OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/2/1/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/2/1/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/2/1/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/2/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/mk/sys.mk OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/mk/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/t2/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/sysmk/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_M/legacy_test OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_M/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_M/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_M/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_M/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_M/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/legacy_test OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.status.3 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.stderr.3 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/variables/modifier_t/expected.stdout.3 OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/legacy_test OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/expected.status.2 OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/expected.stderr.2 OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/variables/opt_V/expected.stdout.2 OLD_FILES+=usr/tests/usr.bin/make/variables/t0/legacy_test OLD_FILES+=usr/tests/usr.bin/make/variables/t0/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/variables/t0/Makefile.test OLD_FILES+=usr/tests/usr.bin/make/variables/t0/expected.status.1 OLD_FILES+=usr/tests/usr.bin/make/variables/t0/expected.stderr.1 OLD_FILES+=usr/tests/usr.bin/make/variables/t0/expected.stdout.1 OLD_FILES+=usr/tests/usr.bin/make/variables/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/Kyuafile OLD_FILES+=usr/tests/usr.bin/make/common.sh OLD_FILES+=usr/tests/usr.bin/make/test-new.mk OLD_DIRS+=usr/tests/usr.bin/make/variables/t0 OLD_DIRS+=usr/tests/usr.bin/make/variables/opt_V OLD_DIRS+=usr/tests/usr.bin/make/variables/modifier_t OLD_DIRS+=usr/tests/usr.bin/make/variables/modifier_M OLD_DIRS+=usr/tests/usr.bin/make/variables OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t2/mk OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t2/2/1 OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t2/2 OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t2 OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t1/mk OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t1/2/1 OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t1/2 OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t1 OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t0/mk OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t0/2/1 OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t0/2 OLD_DIRS+=usr/tests/usr.bin/make/sysmk/t0 OLD_DIRS+=usr/tests/usr.bin/make/sysmk OLD_DIRS+=usr/tests/usr.bin/make/syntax/semi OLD_DIRS+=usr/tests/usr.bin/make/syntax/funny-targets OLD_DIRS+=usr/tests/usr.bin/make/syntax/enl OLD_DIRS+=usr/tests/usr.bin/make/syntax/directive-t0 OLD_DIRS+=usr/tests/usr.bin/make/syntax OLD_DIRS+=usr/tests/usr.bin/make/suffixes/src_wild2 OLD_DIRS+=usr/tests/usr.bin/make/suffixes/src_wild1 OLD_DIRS+=usr/tests/usr.bin/make/suffixes/basic OLD_DIRS+=usr/tests/usr.bin/make/suffixes OLD_DIRS+=usr/tests/usr.bin/make/shell/select OLD_DIRS+=usr/tests/usr.bin/make/shell/replace OLD_DIRS+=usr/tests/usr.bin/make/shell/path_select OLD_DIRS+=usr/tests/usr.bin/make/shell/path OLD_DIRS+=usr/tests/usr.bin/make/shell/meta OLD_DIRS+=usr/tests/usr.bin/make/shell/builtin OLD_DIRS+=usr/tests/usr.bin/make/shell OLD_DIRS+=usr/tests/usr.bin/make/execution/plus OLD_DIRS+=usr/tests/usr.bin/make/execution/joberr OLD_DIRS+=usr/tests/usr.bin/make/execution/empty OLD_DIRS+=usr/tests/usr.bin/make/execution/ellipsis OLD_DIRS+=usr/tests/usr.bin/make/execution OLD_DIRS+=usr/tests/usr.bin/make/basic/t3 OLD_DIRS+=usr/tests/usr.bin/make/basic/t2 OLD_DIRS+=usr/tests/usr.bin/make/basic/t1 OLD_DIRS+=usr/tests/usr.bin/make/basic/t0 OLD_DIRS+=usr/tests/usr.bin/make/basic OLD_DIRS+=usr/tests/usr.bin/make/archives/fmt_oldbsd OLD_DIRS+=usr/tests/usr.bin/make/archives/fmt_44bsd_mod OLD_DIRS+=usr/tests/usr.bin/make/archives/fmt_44bsd OLD_DIRS+=usr/tests/usr.bin/make/archives OLD_DIRS+=usr/tests/usr.bin/make OLD_FILES+=usr/tests/usr.bin/yacc/legacy_test OLD_FILES+=usr/tests/usr.bin/yacc/regress.00.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.01.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.02.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.03.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.04.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.05.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.06.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.07.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.08.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.09.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.10.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.11.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.12.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.13.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.14.out OLD_FILES+=usr/tests/usr.bin/yacc/regress.sh OLD_FILES+=usr/tests/usr.bin/yacc/undefined.y .endif .else # ATF libraries. OLD_FILES+=etc/mtree/BSD.tests.dist OLD_FILES+=usr/bin/atf-sh OLD_DIRS+=usr/include/atf-c OLD_FILES+=usr/include/atf-c/build.h OLD_FILES+=usr/include/atf-c/check.h OLD_FILES+=usr/include/atf-c/config.h OLD_FILES+=usr/include/atf-c/defs.h OLD_FILES+=usr/include/atf-c/error.h OLD_FILES+=usr/include/atf-c/error_fwd.h OLD_FILES+=usr/include/atf-c/macros.h OLD_FILES+=usr/include/atf-c/tc.h OLD_FILES+=usr/include/atf-c/tp.h OLD_FILES+=usr/include/atf-c/utils.h OLD_FILES+=usr/include/atf-c.h OLD_DIRS+=usr/include/atf-c++ OLD_FILES+=usr/include/atf-c++/build.hpp OLD_FILES+=usr/include/atf-c++/check.hpp OLD_FILES+=usr/include/atf-c++/config.hpp OLD_FILES+=usr/include/atf-c++/macros.hpp OLD_FILES+=usr/include/atf-c++/tests.hpp OLD_FILES+=usr/include/atf-c++/utils.hpp OLD_FILES+=usr/include/atf-c++.hpp OLD_FILES+=usr/lib/libatf-c_p.a OLD_FILES+=usr/lib/libatf-c.so.1 OLD_FILES+=usr/lib/libatf-c.so OLD_FILES+=usr/lib/libatf-c++.a OLD_FILES+=usr/lib/libatf-c++_p.a OLD_FILES+=usr/lib/libatf-c++.so.1 OLD_FILES+=usr/lib/libatf-c++.so OLD_FILES+=usr/lib/libatf-c.a OLD_FILES+=usr/libexec/atf-check OLD_FILES+=usr/libexec/atf-sh OLD_DIRS+=usr/share/atf OLD_FILES+=usr/share/atf/libatf-sh.subr OLD_DIRS+=usr/share/doc/atf OLD_FILES+=usr/share/doc/atf/AUTHORS OLD_FILES+=usr/share/doc/atf/COPYING OLD_FILES+=usr/share/doc/atf/NEWS OLD_FILES+=usr/share/doc/atf/README OLD_FILES+=usr/share/doc/pjdfstest/README OLD_FILES+=usr/share/man/man1/atf-check.1.gz OLD_FILES+=usr/share/man/man1/atf-sh.1.gz OLD_FILES+=usr/share/man/man1/atf-test-program.1.gz OLD_FILES+=usr/share/man/man3/atf-c-api.3.gz OLD_FILES+=usr/share/man/man3/atf-c++-api.3.gz OLD_FILES+=usr/share/man/man3/atf-sh-api.3.gz OLD_FILES+=usr/share/man/man3/atf-sh.3.gz OLD_FILES+=usr/share/man/man4/atf-test-case.4.gz OLD_FILES+=usr/share/man/man7/atf.7.gz OLD_FILES+=usr/share/mk/atf.test.mk OLD_FILES+=usr/share/mk/plain.test.mk OLD_FILES+=usr/share/mk/suite.test.mk OLD_FILES+=usr/share/mk/tap.test.mk # Test suite. . if exists(${DESTDIR}${TESTSBASE}) TESTS_DIRS!=find ${DESTDIR}${TESTSBASE} -type d | sed -e 's,^${DESTDIR}/,,'; echo OLD_DIRS+=${TESTS_DIRS} TESTS_FILES!=find ${DESTDIR}${TESTSBASE} \! -type d | sed -e 's,^${DESTDIR}/,,'; echo OLD_FILES+=${TESTS_FILES} . endif .endif # Test suite. .if ${MK_TESTS_SUPPORT} == no OLD_FILES+=usr/bin/kyua OLD_FILES+=usr/include/atf-c++.hpp OLD_FILES+=usr/include/atf-c++/build.hpp OLD_FILES+=usr/include/atf-c++/check.hpp OLD_FILES+=usr/include/atf-c++/macros.hpp OLD_FILES+=usr/include/atf-c++/tests.hpp OLD_FILES+=usr/include/atf-c++/utils.hpp OLD_FILES+=usr/include/atf-c.h OLD_FILES+=usr/include/atf-c/build.h OLD_FILES+=usr/include/atf-c/check.h OLD_FILES+=usr/include/atf-c/defs.h OLD_FILES+=usr/include/atf-c/error.h OLD_FILES+=usr/include/atf-c/error_fwd.h OLD_FILES+=usr/include/atf-c/macros.h OLD_FILES+=usr/include/atf-c/tc.h OLD_FILES+=usr/include/atf-c/tp.h OLD_FILES+=usr/include/atf-c/utils.h OLD_LIBS+=usr/lib/libprivateatf-c++.so.2 OLD_LIBS+=usr/lib/libprivateatf-c.so.1 OLD_FILES+=usr/share/examples/kyua/kyua.conf OLD_FILES+=usr/share/examples/kyua/Kyuafile.top OLD_FILES+=usr/share/kyua/misc/context.html OLD_FILES+=usr/share/kyua/misc/index.html OLD_FILES+=usr/share/kyua/misc/report.css OLD_FILES+=usr/share/kyua/misc/test_result.html OLD_FILES+=usr/share/kyua/store/migrate_v1_v2.sql OLD_FILES+=usr/share/kyua/store/migrate_v2_v3.sql OLD_FILES+=usr/share/kyua/store/schema_v3.sql OLD_FILES+=usr/share/man/man1/kyua-about.1.gz OLD_FILES+=usr/share/man/man1/kyua-config.1.gz OLD_FILES+=usr/share/man/man1/kyua-db-exec.1.gz OLD_FILES+=usr/share/man/man1/kyua-db-migrate.1.gz OLD_FILES+=usr/share/man/man1/kyua-debug.1.gz OLD_FILES+=usr/share/man/man1/kyua-help.1.gz OLD_FILES+=usr/share/man/man1/kyua-list.1.gz OLD_FILES+=usr/share/man/man1/kyua-report-html.1.gz OLD_FILES+=usr/share/man/man1/kyua-report-junit.1.gz OLD_FILES+=usr/share/man/man1/kyua-report.1.gz OLD_FILES+=usr/share/man/man1/kyua-test.1.gz OLD_FILES+=usr/share/man/man1/kyua.1.gz OLD_FILES+=usr/share/man/man3/atf-c++.3.gz OLD_FILES+=usr/share/man/man3/atf-c-api++.3.gz OLD_FILES+=usr/share/man/man3/atf-c-api.3.gz OLD_FILES+=usr/share/man/man3/atf-c.3.gz OLD_FILES+=usr/share/man/man5/kyua.conf.5.gz OLD_FILES+=usr/share/man/man5/kyuafile.5.gz OLD_FILES+=usr/tests/lib/atf/Kyuafile OLD_FILES+=usr/tests/lib/atf/libatf-c++/Kyuafile OLD_FILES+=usr/tests/lib/atf/libatf-c++/atf_c++_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/build_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/check_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/Kyuafile OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/application_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/env_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/exceptions_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/fs_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/process_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/text_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/version_helper OLD_FILES+=usr/tests/lib/atf/libatf-c++/macros_hpp_test.cpp OLD_FILES+=usr/tests/lib/atf/libatf-c++/macros_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/tests_test OLD_FILES+=usr/tests/lib/atf/libatf-c++/unused_test.cpp OLD_FILES+=usr/tests/lib/atf/libatf-c++/utils_test OLD_FILES+=usr/tests/lib/atf/libatf-c/Kyuafile OLD_FILES+=usr/tests/lib/atf/libatf-c/atf_c_test OLD_FILES+=usr/tests/lib/atf/libatf-c/build_test OLD_FILES+=usr/tests/lib/atf/libatf-c/check_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/Kyuafile OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/dynstr_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/env_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/fs_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/list_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/map_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/process_helpers OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/process_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/sanity_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/text_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/user_test OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/version_helper OLD_FILES+=usr/tests/lib/atf/libatf-c/error_test OLD_FILES+=usr/tests/lib/atf/libatf-c/macros_h_test.c OLD_FILES+=usr/tests/lib/atf/libatf-c/macros_test OLD_FILES+=usr/tests/lib/atf/libatf-c/tc_test OLD_FILES+=usr/tests/lib/atf/libatf-c/tp_test OLD_FILES+=usr/tests/lib/atf/libatf-c/unused_test.c OLD_FILES+=usr/tests/lib/atf/libatf-c/utils_test OLD_FILES+=usr/tests/lib/atf/test-programs/Kyuafile OLD_FILES+=usr/tests/lib/atf/test-programs/c_helpers OLD_FILES+=usr/tests/lib/atf/test-programs/config_test OLD_FILES+=usr/tests/lib/atf/test-programs/cpp_helpers OLD_FILES+=usr/tests/lib/atf/test-programs/expect_test OLD_FILES+=usr/tests/lib/atf/test-programs/meta_data_test OLD_FILES+=usr/tests/lib/atf/test-programs/result_test OLD_FILES+=usr/tests/lib/atf/test-programs/sh_helpers OLD_FILES+=usr/tests/lib/atf/test-programs/srcdir_test .endif .if ${MK_TEXTPROC} == no OLD_FILES+=usr/bin/checknr OLD_FILES+=usr/bin/colcrt OLD_FILES+=usr/bin/ul OLD_FILES+=usr/share/man/man1/checknr.1.gz OLD_FILES+=usr/share/man/man1/colcrt.1.gz OLD_FILES+=usr/share/man/man1/ul.1.gz .endif .if ${MK_TFTP} == no OLD_FILES+=usr/bin/tftp OLD_FILES+=usr/libexec/tftpd OLD_FILES+=usr/share/man/man1/tftp.1.gz OLD_FILES+=usr/share/man/man8/tftpd.8.gz .endif .if ${MK_TOOLCHAIN} == no OLD_FILES+=usr/bin/CC OLD_FILES+=usr/bin/addr2line OLD_FILES+=usr/bin/as OLD_FILES+=usr/bin/byacc OLD_FILES+=usr/bin/cc OLD_FILES+=usr/bin/c88 OLD_FILES+=usr/bin/c++ OLD_FILES+=usr/bin/c++filt OLD_FILES+=usr/bin/elfcopy OLD_FILES+=usr/bin/ld OLD_FILES+=usr/bin/ld.bfd OLD_FILES+=usr/bin/nm OLD_FILES+=usr/bin/objcopy OLD_FILES+=usr/bin/readelf OLD_FILES+=usr/bin/size OLD_FILES+=usr/bin/strip OLD_FILES+=usr/bin/yacc OLD_FILES+=usr/share/man/man1/addr2line.1.gz OLD_FILES+=usr/share/man/man1/c++filt.1.gz OLD_FILES+=usr/share/man/man1/elfcopy.1.gz OLD_FILES+=usr/share/man/man1/nm.1.gz OLD_FILES+=usr/share/man/man1/readelf.1.gz OLD_FILES+=usr/share/man/man1/size.1.gz OLD_FILES+=usr/share/man/man1/strip.1.gz OLD_FILES+=usr/share/man/man1/objcopy.1.gz # lib/libelf OLD_FILES+=usr/share/man/man3/elf.3.gz OLD_FILES+=usr/share/man/man3/elf_begin.3.gz OLD_FILES+=usr/share/man/man3/elf_cntl.3.gz OLD_FILES+=usr/share/man/man3/elf_end.3.gz OLD_FILES+=usr/share/man/man3/elf_errmsg.3.gz OLD_FILES+=usr/share/man/man3/elf_fill.3.gz OLD_FILES+=usr/share/man/man3/elf_flagdata.3.gz OLD_FILES+=usr/share/man/man3/elf_getarhdr.3.gz OLD_FILES+=usr/share/man/man3/elf_getarsym.3.gz OLD_FILES+=usr/share/man/man3/elf_getbase.3.gz OLD_FILES+=usr/share/man/man3/elf_getdata.3.gz OLD_FILES+=usr/share/man/man3/elf_getident.3.gz OLD_FILES+=usr/share/man/man3/elf_getscn.3.gz OLD_FILES+=usr/share/man/man3/elf_getphdrnum.3.gz OLD_FILES+=usr/share/man/man3/elf_getphnum.3.gz OLD_FILES+=usr/share/man/man3/elf_getshdrnum.3.gz OLD_FILES+=usr/share/man/man3/elf_getshnum.3.gz OLD_FILES+=usr/share/man/man3/elf_getshdrstrndx.3.gz OLD_FILES+=usr/share/man/man3/elf_getshstrndx.3.gz OLD_FILES+=usr/share/man/man3/elf_hash.3.gz OLD_FILES+=usr/share/man/man3/elf_kind.3.gz OLD_FILES+=usr/share/man/man3/elf_memory.3.gz OLD_FILES+=usr/share/man/man3/elf_next.3.gz OLD_FILES+=usr/share/man/man3/elf_open.3.gz OLD_FILES+=usr/share/man/man3/elf_rawfile.3.gz OLD_FILES+=usr/share/man/man3/elf_rand.3.gz OLD_FILES+=usr/share/man/man3/elf_strptr.3.gz OLD_FILES+=usr/share/man/man3/elf_update.3.gz OLD_FILES+=usr/share/man/man3/elf_version.3.gz OLD_FILES+=usr/share/man/man3/gelf.3.gz OLD_FILES+=usr/share/man/man3/gelf_checksum.3.gz OLD_FILES+=usr/share/man/man3/gelf_fsize.3.gz OLD_FILES+=usr/share/man/man3/gelf_getcap.3.gz OLD_FILES+=usr/share/man/man3/gelf_getclass.3.gz OLD_FILES+=usr/share/man/man3/gelf_getdyn.3.gz OLD_FILES+=usr/share/man/man3/gelf_getehdr.3.gz OLD_FILES+=usr/share/man/man3/gelf_getmove.3.gz OLD_FILES+=usr/share/man/man3/gelf_getphdr.3.gz OLD_FILES+=usr/share/man/man3/gelf_getrel.3.gz OLD_FILES+=usr/share/man/man3/gelf_getrela.3.gz OLD_FILES+=usr/share/man/man3/gelf_getshdr.3.gz OLD_FILES+=usr/share/man/man3/gelf_getsym.3.gz OLD_FILES+=usr/share/man/man3/gelf_getsyminfo.3.gz OLD_FILES+=usr/share/man/man3/gelf_getsymshndx.3.gz OLD_FILES+=usr/share/man/man3/gelf_newehdr.3.gz OLD_FILES+=usr/share/man/man3/gelf_newphdr.3.gz OLD_FILES+=usr/share/man/man3/gelf_update_ehdr.3.gz OLD_FILES+=usr/share/man/man3/gelf_xlatetof.3.gz # lib/libelftc OLD_FILES+=usr/share/man/man3/elftc.3.gz OLD_FILES+=usr/share/man/man3/elftc_bfd_find_target.3.gz OLD_FILES+=usr/share/man/man3/elftc_copyfile.3.gz OLD_FILES+=usr/share/man/man3/elftc_demangle.3.gz OLD_FILES+=usr/share/man/man3/elftc_reloc_type_str.3.gz OLD_FILES+=usr/share/man/man3/elftc_set_timestamps.3.gz OLD_FILES+=usr/share/man/man3/elftc_timestamp.3.gz OLD_FILES+=usr/share/man/man3/elftc_string_table_create.3.gz OLD_FILES+=usr/share/man/man3/elftc_version.3.gz # usr.bin/lorder OLD_FILES+=usr/bin/lorder OLD_FILES+=usr/tests/usr.bin/lorder/Kyuafile OLD_FILES+=usr/tests/usr.bin/lorder/lorder_test OLD_DIRS+=usr/tests/usr.bin/lorder # usr.bin/yacc OLD_FILES+=usr/tests/usr.bin/yacc/Kyuafile OLD_FILES+=usr/tests/usr.bin/yacc/btyacc_calc1.y OLD_FILES+=usr/tests/usr.bin/yacc/btyacc_demo.y OLD_FILES+=usr/tests/usr.bin/yacc/calc.y OLD_FILES+=usr/tests/usr.bin/yacc/calc1.y OLD_FILES+=usr/tests/usr.bin/yacc/calc2.y OLD_FILES+=usr/tests/usr.bin/yacc/calc3.y OLD_FILES+=usr/tests/usr.bin/yacc/code_calc.y OLD_FILES+=usr/tests/usr.bin/yacc/code_debug.y OLD_FILES+=usr/tests/usr.bin/yacc/code_error.y OLD_FILES+=usr/tests/usr.bin/yacc/empty.y OLD_FILES+=usr/tests/usr.bin/yacc/err_inherit1.y OLD_FILES+=usr/tests/usr.bin/yacc/err_inherit2.y OLD_FILES+=usr/tests/usr.bin/yacc/err_inherit3.y OLD_FILES+=usr/tests/usr.bin/yacc/err_inherit4.y OLD_FILES+=usr/tests/usr.bin/yacc/err_inherit5.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax1.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax10.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax11.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax12.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax13.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax14.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax15.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax16.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax17.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax18.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax19.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax2.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax20.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax21.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax22.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax23.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax24.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax25.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax26.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax27.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax3.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax4.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax5.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax6.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax7.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax7a.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax7b.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax8.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax8a.y OLD_FILES+=usr/tests/usr.bin/yacc/err_syntax9.y OLD_FILES+=usr/tests/usr.bin/yacc/error.y OLD_FILES+=usr/tests/usr.bin/yacc/grammar.y OLD_FILES+=usr/tests/usr.bin/yacc/inherit0.y OLD_FILES+=usr/tests/usr.bin/yacc/inherit1.y OLD_FILES+=usr/tests/usr.bin/yacc/inherit2.y OLD_FILES+=usr/tests/usr.bin/yacc/ok_syntax1.y OLD_FILES+=usr/tests/usr.bin/yacc/pure_calc.y OLD_FILES+=usr/tests/usr.bin/yacc/pure_error.y OLD_FILES+=usr/tests/usr.bin/yacc/quote_calc.y OLD_FILES+=usr/tests/usr.bin/yacc/quote_calc2.y OLD_FILES+=usr/tests/usr.bin/yacc/quote_calc3.y OLD_FILES+=usr/tests/usr.bin/yacc/quote_calc4.y OLD_FILES+=usr/tests/usr.bin/yacc/run_test OLD_FILES+=usr/tests/usr.bin/yacc/varsyntax_calc1.y OLD_FILES+=usr/tests/usr.bin/yacc/yacc/big_b.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/big_b.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/big_l.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/big_l.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc1.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc1.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc1.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc1.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc2.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc2.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc2.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc2.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc3.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc3.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc3.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/calc3.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_calc.code.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_calc.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_calc.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_calc.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_calc.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_error.code.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_error.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_error.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_error.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/code_error.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/empty.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/empty.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/empty.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/empty.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax1.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax1.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax1.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax1.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax10.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax10.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax10.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax10.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax11.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax11.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax11.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax11.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax12.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax12.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax12.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax12.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax13.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax13.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax13.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax13.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax14.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax14.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax14.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax14.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax15.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax15.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax15.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax15.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax16.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax16.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax16.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax16.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax17.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax17.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax17.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax17.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax18.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax18.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax18.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax18.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax19.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax19.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax19.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax19.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax2.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax2.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax2.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax2.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax20.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax20.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax20.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax20.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax21.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax21.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax21.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax21.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax22.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax22.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax22.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax22.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax23.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax23.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax23.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax23.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax24.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax24.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax24.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax24.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax25.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax25.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax25.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax25.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax26.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax26.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax26.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax26.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax27.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax27.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax27.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax27.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax3.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax3.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax3.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax3.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax4.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax4.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax4.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax4.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax5.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax5.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax5.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax5.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax6.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax6.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax6.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax6.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7a.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7a.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7a.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7a.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7b.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7b.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7b.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax7b.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax8.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax8.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax8.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax8.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax8a.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax8a.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax8a.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax8a.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax9.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax9.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax9.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/err_syntax9.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/error.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/error.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/error.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/error.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/grammar.dot OLD_FILES+=usr/tests/usr.bin/yacc/yacc/grammar.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/grammar.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/grammar.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/grammar.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/help.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/help.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_b_opt.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_b_opt.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_b_opt1.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_b_opt1.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_code_c.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_code_c.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_defines.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_defines.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_graph.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_graph.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_include.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_include.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_opts.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_opts.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_output.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_output.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_output1.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_output1.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_output2.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_output2.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_p_opt.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_p_opt.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_p_opt1.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_p_opt1.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_verbose.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/no_verbose.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/nostdin.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/nostdin.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/ok_syntax1.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/ok_syntax1.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/ok_syntax1.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/ok_syntax1.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/pure_calc.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/pure_calc.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/pure_calc.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/pure_calc.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/pure_error.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/pure_error.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/pure_error.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/pure_error.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc-s.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc-s.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc-s.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc-s.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc2-s.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc2-s.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc2-s.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc2-s.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc2.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc2.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc2.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc2.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc3-s.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc3-s.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc3-s.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc3-s.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc3.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc3.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc3.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc3.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc4-s.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc4-s.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc4-s.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc4-s.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc4.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc4.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc4.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/quote_calc4.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/rename_debug.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/rename_debug.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/rename_debug.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc/rename_debug.i OLD_FILES+=usr/tests/usr.bin/yacc/yacc/rename_debug.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/varsyntax_calc1.error OLD_FILES+=usr/tests/usr.bin/yacc/yacc/varsyntax_calc1.output OLD_FILES+=usr/tests/usr.bin/yacc/yacc/varsyntax_calc1.tab.c OLD_FILES+=usr/tests/usr.bin/yacc/yacc/varsyntax_calc1.tab.h OLD_FILES+=usr/tests/usr.bin/yacc/yacc_tests OLD_DIRS+=usr/tests/usr.bin/yacc/yacc OLD_DIRS+=usr/tests/usr.bin/yacc .endif .if ${MK_UNBOUND} == no OLD_FILES+=etc/rc.d/local_unbound OLD_FILES+=etc/unbound OLD_FILES+=usr/lib/libprivateunbound.a OLD_FILES+=usr/lib/libprivateunbound.so OLD_LIBS+=usr/lib/libprivateunbound.so.5 OLD_FILES+=usr/lib/libprivateunbound_p.a OLD_FILES+=usr/share/man/man5/local-unbound.conf.5.gz OLD_FILES+=usr/share/man/man8/local-unbound-anchor.8.gz OLD_FILES+=usr/share/man/man8/local-unbound-checkconf.8.gz OLD_FILES+=usr/share/man/man8/local-unbound-control.8.gz OLD_FILES+=usr/share/man/man8/local-unbound.8.gz OLD_FILES+=usr/sbin/local-unbound-setup OLD_FILES+=usr/sbin/local-unbound OLD_FILES+=usr/sbin/local-unbound-anchor OLD_FILES+=usr/sbin/local-unbound-checkconf OLD_FILES+=usr/sbin/local-unbound-control .endif .if ${MK_USB} == no OLD_FILES+=etc/devd/uath.conf OLD_FILES+=etc/devd/uauth.conf OLD_FILES+=etc/devd/ulpt.conf OLD_FILES+=etc/devd/usb.conf OLD_FILES+=usr/bin/usbhidaction OLD_FILES+=usr/bin/usbhidctl OLD_FILES+=usr/include/libusb.h OLD_FILES+=usr/include/libusb20.h OLD_FILES+=usr/include/libusb20_desc.h OLD_FILES+=usr/include/usb.h OLD_FILES+=usr/include/usbhid.h OLD_FILES+=usr/lib/libusb.a OLD_FILES+=usr/lib/libusb.so OLD_LIBS+=usr/lib/libusb.so.3 OLD_FILES+=usr/lib/libusb_p.a OLD_FILES+=usr/lib/libusbhid.a OLD_FILES+=usr/lib/libusbhid.so OLD_LIBS+=usr/lib/libusbhid.so.4 OLD_FILES+=usr/lib/libusbhid_p.a OLD_FILES+=usr/libdata/pkgconfig/libusb-0.1.pc OLD_FILES+=usr/libdata/pkgconfig/libusb-1.0.pc OLD_FILES+=usr/libdata/pkgconfig/libusb-2.0.pc OLD_FILES+=usr/sbin/uathload OLD_FILES+=usr/sbin/uhsoctl OLD_FILES+=usr/sbin/usbconfig OLD_FILES+=usr/sbin/usbdump OLD_FILES+=usr/share/examples/libusb20/Makefile OLD_FILES+=usr/share/examples/libusb20/README OLD_FILES+=usr/share/examples/libusb20/bulk.c OLD_FILES+=usr/share/examples/libusb20/control.c OLD_FILES+=usr/share/examples/libusb20/util.c OLD_FILES+=usr/share/examples/libusb20/util.h OLD_DIRS+=usr/share/examples/libusb20 OLD_FILES+=usr/share/firmware/ar5523.bin OLD_FILES+=usr/share/man/man1/uhsoctl.1.gz OLD_FILES+=usr/share/man/man1/usbhidaction.1.gz OLD_FILES+=usr/share/man/man1/usbhidctl.1.gz OLD_FILES+=usr/share/man/man3/hid_dispose_report_desc.3.gz OLD_FILES+=usr/share/man/man3/hid_end_parse.3.gz OLD_FILES+=usr/share/man/man3/hid_get_data.3.gz OLD_FILES+=usr/share/man/man3/hid_get_item.3.gz OLD_FILES+=usr/share/man/man3/hid_get_report_desc.3.gz OLD_FILES+=usr/share/man/man3/hid_init.3.gz OLD_FILES+=usr/share/man/man3/hid_locate.3.gz OLD_FILES+=usr/share/man/man3/hid_report_size.3.gz OLD_FILES+=usr/share/man/man3/hid_set_data.3.gz OLD_FILES+=usr/share/man/man3/hid_start_parse.3.gz OLD_FILES+=usr/share/man/man3/hid_usage_in_page.3.gz OLD_FILES+=usr/share/man/man3/hid_usage_page.3.gz OLD_FILES+=usr/share/man/man3/libusb.3.gz OLD_FILES+=usr/share/man/man3/libusb20.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_add_dev_quirk.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_alloc_default.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_dequeue_device.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_device_foreach.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_enqueue_device.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_free.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_get_dev_quirk.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_get_quirk_name.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_get_template.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_remove_dev_quirk.3.gz OLD_FILES+=usr/share/man/man3/libusb20_be_set_template.3.gz OLD_FILES+=usr/share/man/man3/libusb20_desc_foreach.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_alloc.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_alloc_config.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_check_connected.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_close.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_detach_kernel_driver.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_free.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_address.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_backend_name.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_bus_number.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_config_index.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_debug.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_desc.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_device_desc.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_fd.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_iface_desc.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_info.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_mode.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_parent_address.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_parent_port.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_port_path.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_power_mode.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_power_usage.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_get_speed.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_kernel_driver_active.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_open.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_process.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_req_string_simple_sync.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_req_string_sync.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_request_sync.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_reset.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_set_alt_index.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_set_config_index.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_set_debug.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_set_power_mode.3.gz OLD_FILES+=usr/share/man/man3/libusb20_dev_wait_process.3.gz OLD_FILES+=usr/share/man/man3/libusb20_error_name.3.gz OLD_FILES+=usr/share/man/man3/libusb20_me_decode.3.gz OLD_FILES+=usr/share/man/man3/libusb20_me_encode.3.gz OLD_FILES+=usr/share/man/man3/libusb20_me_get_1.3.gz OLD_FILES+=usr/share/man/man3/libusb20_me_get_2.3.gz OLD_FILES+=usr/share/man/man3/libusb20_strerror.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_bulk_intr_sync.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_callback_wrapper.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_clear_stall_sync.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_close.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_drain.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_actual_frames.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_actual_length.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_length.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_max_frames.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_max_packet_length.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_max_total_length.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_pointer.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_priv_sc0.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_priv_sc1.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_status.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_get_time_complete.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_open.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_pending.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_set_buffer.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_set_callback.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_set_flags.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_set_length.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_set_priv_sc0.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_set_priv_sc1.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_set_timeout.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_set_total_frames.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_setup_bulk.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_setup_control.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_setup_intr.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_setup_isoc.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_start.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_stop.3.gz OLD_FILES+=usr/share/man/man3/libusb20_tr_submit.3.gz OLD_FILES+=usr/share/man/man3/libusb_alloc_transfer.3.gz OLD_FILES+=usr/share/man/man3/libusb_attach_kernel_driver.3.gz OLD_FILES+=usr/share/man/man3/libusb_bulk_transfer.3.gz OLD_FILES+=usr/share/man/man3/libusb_cancel_transfer.3.gz OLD_FILES+=usr/share/man/man3/libusb_check_connected.3.gz OLD_FILES+=usr/share/man/man3/libusb_claim_interface.3.gz OLD_FILES+=usr/share/man/man3/libusb_clear_halt.3.gz OLD_FILES+=usr/share/man/man3/libusb_close.3.gz OLD_FILES+=usr/share/man/man3/libusb_control_transfer.3.gz OLD_FILES+=usr/share/man/man3/libusb_detach_kernel_driver.3.gz OLD_FILES+=usr/share/man/man3/libusb_detach_kernel_driver_np.3.gz OLD_FILES+=usr/share/man/man3/libusb_error_name.3.gz OLD_FILES+=usr/share/man/man3/libusb_event_handler_active.3.gz OLD_FILES+=usr/share/man/man3/libusb_event_handling_ok.3.gz OLD_FILES+=usr/share/man/man3/libusb_exit.3.gz OLD_FILES+=usr/share/man/man3/libusb_free_bos_descriptor.3.gz OLD_FILES+=usr/share/man/man3/libusb_free_config_descriptor.3.gz OLD_FILES+=usr/share/man/man3/libusb_free_device_list.3.gz OLD_FILES+=usr/share/man/man3/libusb_free_ss_endpoint_comp.3.gz OLD_FILES+=usr/share/man/man3/libusb_free_transfer.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_active_config_descriptor.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_bus_number.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_config_descriptor.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_config_descriptor_by_value.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_configuration.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_device.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_device_address.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_device_descriptor.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_device_list.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_device_speed.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_driver.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_driver_np.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_max_iso_packet_size.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_max_packet_size.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_next_timeout.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_pollfds.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_string_descriptor.3.gz OLD_FILES+=usr/share/man/man3/libusb_get_string_descriptor_ascii.3.gz OLD_FILES+=usr/share/man/man3/libusb_handle_events.3.gz OLD_FILES+=usr/share/man/man3/libusb_handle_events_completed.3.gz OLD_FILES+=usr/share/man/man3/libusb_handle_events_locked.3.gz OLD_FILES+=usr/share/man/man3/libusb_handle_events_timeout.3.gz OLD_FILES+=usr/share/man/man3/libusb_handle_events_timeout_completed.3.gz OLD_FILES+=usr/share/man/man3/libusb_init.3.gz OLD_FILES+=usr/share/man/man3/libusb_interrupt_transfer.3.gz OLD_FILES+=usr/share/man/man3/libusb_kernel_driver_active.3.gz OLD_FILES+=usr/share/man/man3/libusb_lock_event_waiters.3.gz OLD_FILES+=usr/share/man/man3/libusb_lock_events.3.gz OLD_FILES+=usr/share/man/man3/libusb_open.3.gz OLD_FILES+=usr/share/man/man3/libusb_open_device_with_vid_pid.3.gz OLD_FILES+=usr/share/man/man3/libusb_parse_bos_descriptor.3.gz OLD_FILES+=usr/share/man/man3/libusb_parse_ss_endpoint_comp.3.gz OLD_FILES+=usr/share/man/man3/libusb_ref_device.3.gz OLD_FILES+=usr/share/man/man3/libusb_release_interface.3.gz OLD_FILES+=usr/share/man/man3/libusb_reset_device.3.gz OLD_FILES+=usr/share/man/man3/libusb_set_configuration.3.gz OLD_FILES+=usr/share/man/man3/libusb_set_debug.3.gz OLD_FILES+=usr/share/man/man3/libusb_set_interface_alt_setting.3.gz OLD_FILES+=usr/share/man/man3/libusb_set_pollfd_notifiers.3.gz OLD_FILES+=usr/share/man/man3/libusb_strerror.3.gz OLD_FILES+=usr/share/man/man3/libusb_submit_transfer.3.gz OLD_FILES+=usr/share/man/man3/libusb_try_lock_events.3.gz OLD_FILES+=usr/share/man/man3/libusb_unlock_event_waiters.3.gz OLD_FILES+=usr/share/man/man3/libusb_unlock_events.3.gz OLD_FILES+=usr/share/man/man3/libusb_unref_device.3.gz OLD_FILES+=usr/share/man/man3/libusb_wait_for_event.3.gz OLD_FILES+=usr/share/man/man3/libusbhid.3.gz OLD_FILES+=usr/share/man/man3/usb.3.gz OLD_FILES+=usr/share/man/man3/usb_bulk_read.3.gz OLD_FILES+=usr/share/man/man3/usb_bulk_write.3.gz OLD_FILES+=usr/share/man/man3/usb_check_connected.3.gz OLD_FILES+=usr/share/man/man3/usb_claim_interface.3.gz OLD_FILES+=usr/share/man/man3/usb_clear_halt.3.gz OLD_FILES+=usr/share/man/man3/usb_close.3.gz OLD_FILES+=usr/share/man/man3/usb_control_msg.3.gz OLD_FILES+=usr/share/man/man3/usb_destroy_configuration.3.gz OLD_FILES+=usr/share/man/man3/usb_device.3.gz OLD_FILES+=usr/share/man/man3/usb_fetch_and_parse_descriptors.3.gz OLD_FILES+=usr/share/man/man3/usb_find_busses.3.gz OLD_FILES+=usr/share/man/man3/usb_find_devices.3.gz OLD_FILES+=usr/share/man/man3/usb_get_busses.3.gz OLD_FILES+=usr/share/man/man3/usb_get_descriptor.3.gz OLD_FILES+=usr/share/man/man3/usb_get_descriptor_by_endpoint.3.gz OLD_FILES+=usr/share/man/man3/usb_get_string.3.gz OLD_FILES+=usr/share/man/man3/usb_get_string_simple.3.gz OLD_FILES+=usr/share/man/man3/usb_init.3.gz OLD_FILES+=usr/share/man/man3/usb_interrupt_read.3.gz OLD_FILES+=usr/share/man/man3/usb_interrupt_write.3.gz OLD_FILES+=usr/share/man/man3/usb_open.3.gz OLD_FILES+=usr/share/man/man3/usb_parse_configuration.3.gz OLD_FILES+=usr/share/man/man3/usb_parse_descriptor.3.gz OLD_FILES+=usr/share/man/man3/usb_release_interface.3.gz OLD_FILES+=usr/share/man/man3/usb_reset.3.gz OLD_FILES+=usr/share/man/man3/usb_resetep.3.gz OLD_FILES+=usr/share/man/man3/usb_set_altinterface.3.gz OLD_FILES+=usr/share/man/man3/usb_set_configuration.3.gz OLD_FILES+=usr/share/man/man3/usb_set_debug.3.gz OLD_FILES+=usr/share/man/man3/usb_strerror.3.gz OLD_FILES+=usr/share/man/man3/usbhid.3.gz OLD_FILES+=usr/share/man/man4/if_otus.4.gz OLD_FILES+=usr/share/man/man4/if_rsu.4.gz OLD_FILES+=usr/share/man/man4/if_rtwn_usb.4.gz OLD_FILES+=usr/share/man/man4/if_rum.4.gz OLD_FILES+=usr/share/man/man4/if_run.4.gz OLD_FILES+=usr/share/man/man4/if_zyd.4.gz OLD_FILES+=usr/share/man/man4/otus.4.gz OLD_FILES+=usr/share/man/man4/otusfw.4.gz OLD_FILES+=usr/share/man/man4/rsu.4.gz OLD_FILES+=usr/share/man/man4/rsufw.4.gz OLD_FILES+=usr/share/man/man4/rtwn_usb.4.gz OLD_FILES+=usr/share/man/man4/rum.4.gz OLD_FILES+=usr/share/man/man4/run.4.gz OLD_FILES+=usr/share/man/man4/runfw.4.gz OLD_FILES+=usr/share/man/man4/u3g.4.gz OLD_FILES+=usr/share/man/man4/u3gstub.4.gz OLD_FILES+=usr/share/man/man4/uark.4.gz OLD_FILES+=usr/share/man/man4/uart.4.gz OLD_FILES+=usr/share/man/man4/uath.4.gz OLD_FILES+=usr/share/man/man4/ubsa.4.gz OLD_FILES+=usr/share/man/man4/ubser.4.gz OLD_FILES+=usr/share/man/man4/ubtbcmfw.4.gz OLD_FILES+=usr/share/man/man4/uchcom.4.gz OLD_FILES+=usr/share/man/man4/ucom.4.gz OLD_FILES+=usr/share/man/man4/ucycom.4.gz OLD_FILES+=usr/share/man/man4/udav.4.gz OLD_FILES+=usr/share/man/man4/udbp.4.gz OLD_FILES+=usr/share/man/man4/uep.4.gz OLD_FILES+=usr/share/man/man4/ufm.4.gz OLD_FILES+=usr/share/man/man4/ufoma.4.gz OLD_FILES+=usr/share/man/man4/uftdi.4.gz OLD_FILES+=usr/share/man/man4/ugen.4.gz OLD_FILES+=usr/share/man/man4/uhci.4.gz OLD_FILES+=usr/share/man/man4/uhid.4.gz OLD_FILES+=usr/share/man/man4/uhso.4.gz OLD_FILES+=usr/share/man/man4/uipaq.4.gz OLD_FILES+=usr/share/man/man4/ukbd.4.gz OLD_FILES+=usr/share/man/man4/uled.4.gz OLD_FILES+=usr/share/man/man4/ulpt.4.gz OLD_FILES+=usr/share/man/man4/umass.4.gz OLD_FILES+=usr/share/man/man4/umcs.4.gz OLD_FILES+=usr/share/man/man4/umct.4.gz OLD_FILES+=usr/share/man/man4/umodem.4.gz OLD_FILES+=usr/share/man/man4/umoscom.4.gz OLD_FILES+=usr/share/man/man4/ums.4.gz OLD_FILES+=usr/share/man/man4/unix.4.gz OLD_FILES+=usr/share/man/man4/upgt.4.gz OLD_FILES+=usr/share/man/man4/uplcom.4.gz OLD_FILES+=usr/share/man/man4/ural.4.gz OLD_FILES+=usr/share/man/man4/urio.4.gz OLD_FILES+=usr/share/man/man4/urndis.4.gz OLD_FILES+=usr/share/man/man4/urtw.4.gz OLD_FILES+=usr/share/man/man4/usb.4.gz OLD_FILES+=usr/share/man/man4/usb_quirk.4.gz OLD_FILES+=usr/share/man/man4/usb_template.4.gz OLD_FILES+=usr/share/man/man4/usfs.4.gz OLD_FILES+=usr/share/man/man4/uslcom.4.gz OLD_FILES+=usr/share/man/man4/uvisor.4.gz OLD_FILES+=usr/share/man/man4/uvscom.4.gz OLD_FILES+=usr/share/man/man4/zyd.4.gz OLD_FILES+=usr/share/man/man8/uathload.8.gz OLD_FILES+=usr/share/man/man8/usbconfig.8.gz OLD_FILES+=usr/share/man/man8/usbdump.8.gz OLD_FILES+=usr/share/man/man9/usb_fifo_alloc_buffer.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_attach.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_detach.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_free_buffer.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_get_data.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_get_data_buffer.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_get_data_error.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_get_data_linear.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_put_bytes_max.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_put_data.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_put_data_buffer.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_put_data_error.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_put_data_linear.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_reset.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_softc.9.gz OLD_FILES+=usr/share/man/man9/usb_fifo_wakeup.9.gz OLD_FILES+=usr/share/man/man9/usbd_do_request.9.gz OLD_FILES+=usr/share/man/man9/usbd_do_request_flags.9.gz OLD_FILES+=usr/share/man/man9/usbd_errstr.9.gz OLD_FILES+=usr/share/man/man9/usbd_lookup_id_by_info.9.gz OLD_FILES+=usr/share/man/man9/usbd_lookup_id_by_uaa.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_clear_stall.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_drain.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_pending.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_poll.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_setup.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_start.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_stop.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_submit.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer_unsetup.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_clr_flag.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_frame_data.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_frame_len.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_get_frame.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_get_priv.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_is_stalled.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_max_framelen.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_max_frames.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_max_len.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_flag.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_frame_data.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_frame_len.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_frame_offset.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_frames.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_interval.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_priv.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_stall.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_set_timeout.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_softc.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_state.9.gz OLD_FILES+=usr/share/man/man9/usbd_xfer_status.9.gz OLD_FILES+=usr/share/man/man9/usbdi.9.gz OLD_FILES+=usr/share/misc/usb_hid_usages OLD_FILES+=usr/share/misc/usbdevs .endif .if ${MK_UTMPX} == no OLD_FILES+=etc/periodic/monthly/200.accounting OLD_FILES+=etc/rc.d/utx OLD_FILES+=usr/bin/last OLD_FILES+=usr/bin/users OLD_FILES+=usr/bin/who OLD_FILES+=usr/sbin/ac OLD_FILES+=usr/sbin/lastlogin OLD_FILES+=usr/sbin/utx OLD_FILES+=usr/share/man/man1/last.1.gz OLD_FILES+=usr/share/man/man1/users.1.gz OLD_FILES+=usr/share/man/man1/who.1.gz OLD_FILES+=usr/share/man/man8/ac.8.gz OLD_FILES+=usr/share/man/man8/lastlogin.8.gz OLD_FILES+=usr/share/man/man8/utx.8.gz .endif .if ${MK_VERIEXEC} == no OLD_FILES+=sbin/veriexec OLD_FILES+=usr/share/man/man8/veriexec.8.gz OLD_FILES+=usr/lib/libveriexec.a OLD_FILES+=usr/lib/libveriexec.so OLD_LIBS+=usr/lib/libveriexec.so.5 .endif .if ${MK_VI} == no OLD_FILES+=etc/rc.d/virecover OLD_FILES+=rescue/ex OLD_FILES+=rescue/vi OLD_FILES+=usr/bin/ex OLD_FILES+=usr/bin/nex OLD_FILES+=usr/bin/nvi OLD_FILES+=usr/bin/nview OLD_FILES+=usr/bin/vi OLD_FILES+=usr/bin/view OLD_FILES+=usr/share/man/man1/ex.1.gz OLD_FILES+=usr/share/man/man1/nex.1.gz OLD_FILES+=usr/share/man/man1/nvi.1.gz OLD_FILES+=usr/share/man/man1/nview.1.gz OLD_FILES+=usr/share/man/man1/vi.1.gz OLD_FILES+=usr/share/man/man1/view.1.gz . if exists(${DESTDIR}/usr/share/vi) VI_DIRS!=find ${DESTDIR}/usr/share/vi -type d \ | sed -e 's,^${DESTDIR}/,,'; echo VI_FILES!=find ${DESTDIR}/usr/share/vi \! -type d \ | sed -e 's,^${DESTDIR}/,,'; echo OLD_DIRS+=${VI_DIRS} OLD_FILES+=${VI_FILES} . endif .endif .if ${MK_WIRELESS} == no OLD_FILES+=etc/regdomain.xml OLD_FILES+=etc/rc.d/hostapd OLD_FILES+=etc/rc.d/wpa_supplicant OLD_FILES+=usr/sbin/ancontrol OLD_FILES+=usr/sbin/hostapd OLD_FILES+=usr/sbin/hostapd_cli OLD_FILES+=usr/sbin/ndis_events OLD_FILES+=usr/sbin/wlandebug OLD_FILES+=usr/sbin/wpa_cli OLD_FILES+=usr/sbin/wpa_passphrase OLD_FILES+=usr/sbin/wpa_supplicant OLD_FILES+=usr/share/examples/etc/regdomain.xml OLD_FILES+=usr/share/examples/etc/wpa_supplicant.conf OLD_FILES+=usr/share/examples/hostapd/hostapd.conf OLD_FILES+=usr/share/examples/hostapd/hostapd.eap_user OLD_FILES+=usr/share/examples/hostapd/hostapd.wpa_psk OLD_DIRS+=usr/share/examples/hostapd OLD_FILES+=usr/share/man/man5/hostapd.conf.5.gz OLD_FILES+=usr/share/man/man5/wpa_supplicant.conf.5.gz OLD_FILES+=usr/share/man/man8/ancontrol.8.gz OLD_FILES+=usr/share/man/man8/hostapd.8.gz OLD_FILES+=usr/share/man/man8/hostapd_cli.8.gz OLD_FILES+=usr/share/man/man8/ndis_events.8.gz OLD_FILES+=usr/share/man/man8/wlandebug.8.gz OLD_FILES+=usr/share/man/man8/wpa_cli.8.gz OLD_FILES+=usr/share/man/man8/wpa_passphrase.8.gz OLD_FILES+=usr/share/man/man8/wpa_supplicant.8.gz OLD_FILES+=usr/lib/snmp_wlan.so OLD_LIBS+=usr/lib/snmp_wlan.so.6 # bsnmp module OLD_FILES+=usr/share/man/man3/snmp_wlan.3.gz OLD_FILES+=usr/share/snmp/defs/wlan_tree.def OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-WIRELESS-MIB.txt .endif .if ${MK_ZFS} == no OLD_FILES+=boot/gptzfsboot OLD_FILES+=boot/zfsloader OLD_FILES+=etc/rc.d/zfs OLD_FILES+=etc/rc.d/zfsbe OLD_FILES+=etc/rc.d/zfsd OLD_FILES+=etc/rc.d/zfskeys OLD_FILES+=etc/rc.d/zpool OLD_FILES+=etc/rc.d/zpoolreguid OLD_FILES+=etc/rc.d/zpoolupgrade OLD_FILES+=etc/rc.d/zvol OLD_FILES+=etc/devd/zfs.conf OLD_FILES+=etc/periodic/daily/404.status-zfs OLD_FILES+=etc/periodic/daily/800.scrub-zfs OLD_FILES+=etc/zfs/exports OLD_DIRS+=etc/zfs OLD_LIBS+=lib/libavl.so.2 OLD_LIBS+=lib/libnvpair.so.2 OLD_LIBS+=lib/libumem.so.2 OLD_LIBS+=lib/libuutil.so.2 OLD_LIBS+=lib/libzfs.so.2 OLD_LIBS+=lib/libzfs.so.3 OLD_LIBS+=lib/libzfs_core.so.2 OLD_LIBS+=lib/libzpool.so.2 OLD_FILES+=rescue/zdb OLD_FILES+=rescue/zfs OLD_FILES+=rescue/zpool OLD_FILES+=sbin/bectl OLD_FILES+=sbin/zfs OLD_FILES+=sbin/zpool OLD_FILES+=sbin/zfsbootcfg OLD_FILES+=usr/bin/zinject OLD_FILES+=usr/bin/zstreamdump OLD_FILES+=usr/bin/ztest OLD_FILES+=usr/lib/libbe.a OLD_FILES+=usr/lib/libbe_p.a OLD_FILES+=usr/lib/libbe.so OLD_LIBS+=lib/libbe.so.1 OLD_FILES+=usr/lib/libavl.a OLD_FILES+=usr/lib/libavl.so OLD_FILES+=usr/lib/libavl_p.a OLD_FILES+=usr/lib/libnvpair.a OLD_FILES+=usr/lib/libnvpair.so OLD_FILES+=usr/lib/libnvpair_p.a OLD_FILES+=usr/lib/libumem.a OLD_FILES+=usr/lib/libumem.so OLD_FILES+=usr/lib/libumem_p.a OLD_FILES+=usr/lib/libuutil.a OLD_FILES+=usr/lib/libuutil.so OLD_FILES+=usr/lib/libuutil_p.a OLD_FILES+=usr/lib/libzfs.a OLD_FILES+=usr/lib/libzfs.so OLD_FILES+=usr/lib/libzfs_core.a OLD_FILES+=usr/lib/libzfs_core.so OLD_FILES+=usr/lib/libzfs_core_p.a OLD_FILES+=usr/lib/libzfs_p.a OLD_FILES+=usr/lib/libzpool.a OLD_FILES+=usr/lib/libzpool.so OLD_LIBS+=usr/lib/libzpool.so.2 OLD_FILES+=usr/sbin/zfsd OLD_FILES+=usr/sbin/zhack OLD_FILES+=usr/sbin/zdb OLD_FILES+=usr/share/man/man3/be_activate.3.gz OLD_FILES+=usr/share/man/man3/be_active_name.3.gz OLD_FILES+=usr/share/man/man3/be_active_path.3.gz OLD_FILES+=usr/share/man/man3/be_create_depth.3.gz OLD_FILES+=usr/share/man/man3/be_create_from_existing_snap.3.gz OLD_FILES+=usr/share/man/man3/be_create_from_existing.3.gz OLD_FILES+=usr/share/man/man3/be_create.3.gz OLD_FILES+=usr/share/man/man3/be_deactivate.3.gz OLD_FILES+=usr/share/man/man3/be_destroy.3.gz OLD_FILES+=usr/share/man/man3/be_exists.3.gz OLD_FILES+=usr/share/man/man3/be_export.3.gz OLD_FILES+=usr/share/man/man3/be_get_bootenv_props.3.gz OLD_FILES+=usr/share/man/man3/be_get_dataset_props.3.gz OLD_FILES+=usr/share/man/man3/be_get_dataset_snapshots.3.gz OLD_FILES+=usr/share/man/man3/be_import.3.gz OLD_FILES+=usr/share/man/man3/be_is_auto_snapshot_name.3.gz OLD_FILES+=usr/share/man/man3/be_mount.3.gz OLD_FILES+=usr/share/man/man3/be_mounted_at.3.gz OLD_FILES+=usr/share/man/man3/be_nextboot_name.3.gz OLD_FILES+=usr/share/man/man3/be_nextboot_path.3.gz OLD_FILES+=usr/share/man/man3/be_nicenum.3.gz OLD_FILES+=usr/share/man/man3/be_prop_list_alloc.3.gz OLD_FILES+=usr/share/man/man3/be_prop_list_free.3.gz OLD_FILES+=usr/share/man/man3/be_rename.3.gz OLD_FILES+=usr/share/man/man3/be_root_concat.3.gz OLD_FILES+=usr/share/man/man3/be_root_path.3.gz OLD_FILES+=usr/share/man/man3/be_snapshot.3.gz OLD_FILES+=usr/share/man/man3/be_unmount.3.gz OLD_FILES+=usr/share/man/man3/be_validate_name.3.gz OLD_FILES+=usr/share/man/man3/be_validate_snap.3.gz OLD_FILES+=usr/share/man/man3/libbe_close.3.gz OLD_FILES+=usr/share/man/man3/libbe_errno.3.gz OLD_FILES+=usr/share/man/man3/libbe_error_description.3.gz OLD_FILES+=usr/share/man/man3/libbe_init.3.gz OLD_FILES+=usr/share/man/man3/libbe_print_on_error.3.gz OLD_FILES+=usr/share/man/man3/libbe.3.gz OLD_FILES+=usr/share/man/man5/zpool-features.5.gz OLD_FILES+=usr/share/man/man8/bectl.8.gz OLD_FILES+=usr/share/man/man8/gptzfsboot.8.gz OLD_FILES+=usr/share/man/man8/zdb.8.gz OLD_FILES+=usr/share/man/man8/zfs-program.8.gz OLD_FILES+=usr/share/man/man8/zfs.8.gz OLD_FILES+=usr/share/man/man8/zfsbootcfg.8.gz OLD_FILES+=usr/share/man/man8/zfsd.8.gz OLD_FILES+=usr/share/man/man8/zfsloader.8.gz OLD_FILES+=usr/share/man/man8/zpool.8.gz .endif .if ${MK_ZONEINFO} == no OLD_FILES+=usr/share/zoneinfo/Africa/Abidjan OLD_FILES+=usr/share/zoneinfo/Africa/Accra OLD_FILES+=usr/share/zoneinfo/Africa/Addis_Ababa OLD_FILES+=usr/share/zoneinfo/Africa/Algiers OLD_FILES+=usr/share/zoneinfo/Africa/Asmara OLD_FILES+=usr/share/zoneinfo/Africa/Bamako OLD_FILES+=usr/share/zoneinfo/Africa/Bangui OLD_FILES+=usr/share/zoneinfo/Africa/Banjul OLD_FILES+=usr/share/zoneinfo/Africa/Bissau OLD_FILES+=usr/share/zoneinfo/Africa/Blantyre OLD_FILES+=usr/share/zoneinfo/Africa/Brazzaville OLD_FILES+=usr/share/zoneinfo/Africa/Bujumbura OLD_FILES+=usr/share/zoneinfo/Africa/Cairo OLD_FILES+=usr/share/zoneinfo/Africa/Casablanca OLD_FILES+=usr/share/zoneinfo/Africa/Ceuta OLD_FILES+=usr/share/zoneinfo/Africa/Conakry OLD_FILES+=usr/share/zoneinfo/Africa/Dakar OLD_FILES+=usr/share/zoneinfo/Africa/Dar_es_Salaam OLD_FILES+=usr/share/zoneinfo/Africa/Djibouti OLD_FILES+=usr/share/zoneinfo/Africa/Douala OLD_FILES+=usr/share/zoneinfo/Africa/El_Aaiun OLD_FILES+=usr/share/zoneinfo/Africa/Freetown OLD_FILES+=usr/share/zoneinfo/Africa/Gaborone OLD_FILES+=usr/share/zoneinfo/Africa/Harare OLD_FILES+=usr/share/zoneinfo/Africa/Johannesburg OLD_FILES+=usr/share/zoneinfo/Africa/Juba OLD_FILES+=usr/share/zoneinfo/Africa/Kampala OLD_FILES+=usr/share/zoneinfo/Africa/Khartoum OLD_FILES+=usr/share/zoneinfo/Africa/Kigali OLD_FILES+=usr/share/zoneinfo/Africa/Kinshasa OLD_FILES+=usr/share/zoneinfo/Africa/Lagos OLD_FILES+=usr/share/zoneinfo/Africa/Libreville OLD_FILES+=usr/share/zoneinfo/Africa/Lome OLD_FILES+=usr/share/zoneinfo/Africa/Luanda OLD_FILES+=usr/share/zoneinfo/Africa/Lubumbashi OLD_FILES+=usr/share/zoneinfo/Africa/Lusaka OLD_FILES+=usr/share/zoneinfo/Africa/Malabo OLD_FILES+=usr/share/zoneinfo/Africa/Maputo OLD_FILES+=usr/share/zoneinfo/Africa/Maseru OLD_FILES+=usr/share/zoneinfo/Africa/Mbabane OLD_FILES+=usr/share/zoneinfo/Africa/Mogadishu OLD_FILES+=usr/share/zoneinfo/Africa/Monrovia OLD_FILES+=usr/share/zoneinfo/Africa/Nairobi OLD_FILES+=usr/share/zoneinfo/Africa/Ndjamena OLD_FILES+=usr/share/zoneinfo/Africa/Niamey OLD_FILES+=usr/share/zoneinfo/Africa/Nouakchott OLD_FILES+=usr/share/zoneinfo/Africa/Ouagadougou OLD_FILES+=usr/share/zoneinfo/Africa/Porto-Novo OLD_FILES+=usr/share/zoneinfo/Africa/Sao_Tome OLD_FILES+=usr/share/zoneinfo/Africa/Tripoli OLD_FILES+=usr/share/zoneinfo/Africa/Tunis OLD_FILES+=usr/share/zoneinfo/Africa/Windhoek OLD_FILES+=usr/share/zoneinfo/America/Adak OLD_FILES+=usr/share/zoneinfo/America/Anchorage OLD_FILES+=usr/share/zoneinfo/America/Anguilla OLD_FILES+=usr/share/zoneinfo/America/Antigua OLD_FILES+=usr/share/zoneinfo/America/Araguaina OLD_FILES+=usr/share/zoneinfo/America/Argentina/Buenos_Aires OLD_FILES+=usr/share/zoneinfo/America/Argentina/Catamarca OLD_FILES+=usr/share/zoneinfo/America/Argentina/Cordoba OLD_FILES+=usr/share/zoneinfo/America/Argentina/Jujuy OLD_FILES+=usr/share/zoneinfo/America/Argentina/La_Rioja OLD_FILES+=usr/share/zoneinfo/America/Argentina/Mendoza OLD_FILES+=usr/share/zoneinfo/America/Argentina/Rio_Gallegos OLD_FILES+=usr/share/zoneinfo/America/Argentina/Salta OLD_FILES+=usr/share/zoneinfo/America/Argentina/San_Juan OLD_FILES+=usr/share/zoneinfo/America/Argentina/San_Luis OLD_FILES+=usr/share/zoneinfo/America/Argentina/Tucuman OLD_FILES+=usr/share/zoneinfo/America/Argentina/Ushuaia OLD_FILES+=usr/share/zoneinfo/America/Aruba OLD_FILES+=usr/share/zoneinfo/America/Asuncion OLD_FILES+=usr/share/zoneinfo/America/Atikokan OLD_FILES+=usr/share/zoneinfo/America/Bahia OLD_FILES+=usr/share/zoneinfo/America/Bahia_Banderas OLD_FILES+=usr/share/zoneinfo/America/Barbados OLD_FILES+=usr/share/zoneinfo/America/Belem OLD_FILES+=usr/share/zoneinfo/America/Belize OLD_FILES+=usr/share/zoneinfo/America/Blanc-Sablon OLD_FILES+=usr/share/zoneinfo/America/Boa_Vista OLD_FILES+=usr/share/zoneinfo/America/Bogota OLD_FILES+=usr/share/zoneinfo/America/Boise OLD_FILES+=usr/share/zoneinfo/America/Cambridge_Bay OLD_FILES+=usr/share/zoneinfo/America/Campo_Grande OLD_FILES+=usr/share/zoneinfo/America/Cancun OLD_FILES+=usr/share/zoneinfo/America/Caracas OLD_FILES+=usr/share/zoneinfo/America/Cayenne OLD_FILES+=usr/share/zoneinfo/America/Cayman OLD_FILES+=usr/share/zoneinfo/America/Chicago OLD_FILES+=usr/share/zoneinfo/America/Chihuahua OLD_FILES+=usr/share/zoneinfo/America/Ciudad_Juarez OLD_FILES+=usr/share/zoneinfo/America/Costa_Rica OLD_FILES+=usr/share/zoneinfo/America/Creston OLD_FILES+=usr/share/zoneinfo/America/Cuiaba OLD_FILES+=usr/share/zoneinfo/America/Curacao OLD_FILES+=usr/share/zoneinfo/America/Danmarkshavn OLD_FILES+=usr/share/zoneinfo/America/Dawson OLD_FILES+=usr/share/zoneinfo/America/Dawson_Creek OLD_FILES+=usr/share/zoneinfo/America/Denver OLD_FILES+=usr/share/zoneinfo/America/Detroit OLD_FILES+=usr/share/zoneinfo/America/Dominica OLD_FILES+=usr/share/zoneinfo/America/Edmonton OLD_FILES+=usr/share/zoneinfo/America/Eirunepe OLD_FILES+=usr/share/zoneinfo/America/El_Salvador OLD_FILES+=usr/share/zoneinfo/America/Fortaleza OLD_FILES+=usr/share/zoneinfo/America/Glace_Bay OLD_FILES+=usr/share/zoneinfo/America/Godthab OLD_FILES+=usr/share/zoneinfo/America/Goose_Bay OLD_FILES+=usr/share/zoneinfo/America/Grand_Turk OLD_FILES+=usr/share/zoneinfo/America/Grenada OLD_FILES+=usr/share/zoneinfo/America/Guadeloupe OLD_FILES+=usr/share/zoneinfo/America/Guatemala OLD_FILES+=usr/share/zoneinfo/America/Guayaquil OLD_FILES+=usr/share/zoneinfo/America/Guyana OLD_FILES+=usr/share/zoneinfo/America/Halifax OLD_FILES+=usr/share/zoneinfo/America/Havana OLD_FILES+=usr/share/zoneinfo/America/Hermosillo OLD_FILES+=usr/share/zoneinfo/America/Indiana/Indianapolis OLD_FILES+=usr/share/zoneinfo/America/Indiana/Knox OLD_FILES+=usr/share/zoneinfo/America/Indiana/Marengo OLD_FILES+=usr/share/zoneinfo/America/Indiana/Petersburg OLD_FILES+=usr/share/zoneinfo/America/Indiana/Tell_City OLD_FILES+=usr/share/zoneinfo/America/Indiana/Vevay OLD_FILES+=usr/share/zoneinfo/America/Indiana/Vincennes OLD_FILES+=usr/share/zoneinfo/America/Indiana/Winamac OLD_FILES+=usr/share/zoneinfo/America/Inuvik OLD_FILES+=usr/share/zoneinfo/America/Iqaluit OLD_FILES+=usr/share/zoneinfo/America/Jamaica OLD_FILES+=usr/share/zoneinfo/America/Juneau OLD_FILES+=usr/share/zoneinfo/America/Kentucky/Louisville OLD_FILES+=usr/share/zoneinfo/America/Kentucky/Monticello OLD_FILES+=usr/share/zoneinfo/America/Kralendijk OLD_FILES+=usr/share/zoneinfo/America/La_Paz OLD_FILES+=usr/share/zoneinfo/America/Lima OLD_FILES+=usr/share/zoneinfo/America/Los_Angeles OLD_FILES+=usr/share/zoneinfo/America/Lower_Princes OLD_FILES+=usr/share/zoneinfo/America/Maceio OLD_FILES+=usr/share/zoneinfo/America/Managua OLD_FILES+=usr/share/zoneinfo/America/Manaus OLD_FILES+=usr/share/zoneinfo/America/Marigot OLD_FILES+=usr/share/zoneinfo/America/Martinique OLD_FILES+=usr/share/zoneinfo/America/Matamoros OLD_FILES+=usr/share/zoneinfo/America/Mazatlan OLD_FILES+=usr/share/zoneinfo/America/Menominee OLD_FILES+=usr/share/zoneinfo/America/Merida OLD_FILES+=usr/share/zoneinfo/America/Metlakatla OLD_FILES+=usr/share/zoneinfo/America/Mexico_City OLD_FILES+=usr/share/zoneinfo/America/Miquelon OLD_FILES+=usr/share/zoneinfo/America/Moncton OLD_FILES+=usr/share/zoneinfo/America/Monterrey OLD_FILES+=usr/share/zoneinfo/America/Montevideo OLD_FILES+=usr/share/zoneinfo/America/Montreal OLD_FILES+=usr/share/zoneinfo/America/Montserrat OLD_FILES+=usr/share/zoneinfo/America/Nassau OLD_FILES+=usr/share/zoneinfo/America/New_York OLD_FILES+=usr/share/zoneinfo/America/Nipigon OLD_FILES+=usr/share/zoneinfo/America/Nome OLD_FILES+=usr/share/zoneinfo/America/Noronha OLD_FILES+=usr/share/zoneinfo/America/North_Dakota/Beulah OLD_FILES+=usr/share/zoneinfo/America/North_Dakota/Center OLD_FILES+=usr/share/zoneinfo/America/North_Dakota/New_Salem OLD_FILES+=usr/share/zoneinfo/America/Ojinaga OLD_FILES+=usr/share/zoneinfo/America/Panama OLD_FILES+=usr/share/zoneinfo/America/Pangnirtung OLD_FILES+=usr/share/zoneinfo/America/Paramaribo OLD_FILES+=usr/share/zoneinfo/America/Phoenix OLD_FILES+=usr/share/zoneinfo/America/Port-au-Prince OLD_FILES+=usr/share/zoneinfo/America/Port_of_Spain OLD_FILES+=usr/share/zoneinfo/America/Porto_Velho OLD_FILES+=usr/share/zoneinfo/America/Puerto_Rico OLD_FILES+=usr/share/zoneinfo/America/Rainy_River OLD_FILES+=usr/share/zoneinfo/America/Rankin_Inlet OLD_FILES+=usr/share/zoneinfo/America/Recife OLD_FILES+=usr/share/zoneinfo/America/Regina OLD_FILES+=usr/share/zoneinfo/America/Resolute OLD_FILES+=usr/share/zoneinfo/America/Rio_Branco OLD_FILES+=usr/share/zoneinfo/America/Santa_Isabel OLD_FILES+=usr/share/zoneinfo/America/Santarem OLD_FILES+=usr/share/zoneinfo/America/Santiago OLD_FILES+=usr/share/zoneinfo/America/Santo_Domingo OLD_FILES+=usr/share/zoneinfo/America/Sao_Paulo OLD_FILES+=usr/share/zoneinfo/America/Scoresbysund OLD_FILES+=usr/share/zoneinfo/America/Sitka OLD_FILES+=usr/share/zoneinfo/America/St_Barthelemy OLD_FILES+=usr/share/zoneinfo/America/St_Johns OLD_FILES+=usr/share/zoneinfo/America/St_Kitts OLD_FILES+=usr/share/zoneinfo/America/St_Lucia OLD_FILES+=usr/share/zoneinfo/America/St_Thomas OLD_FILES+=usr/share/zoneinfo/America/St_Vincent OLD_FILES+=usr/share/zoneinfo/America/Swift_Current OLD_FILES+=usr/share/zoneinfo/America/Tegucigalpa OLD_FILES+=usr/share/zoneinfo/America/Thule OLD_FILES+=usr/share/zoneinfo/America/Thunder_Bay OLD_FILES+=usr/share/zoneinfo/America/Tijuana OLD_FILES+=usr/share/zoneinfo/America/Toronto OLD_FILES+=usr/share/zoneinfo/America/Tortola OLD_FILES+=usr/share/zoneinfo/America/Vancouver OLD_FILES+=usr/share/zoneinfo/America/Whitehorse OLD_FILES+=usr/share/zoneinfo/America/Winnipeg OLD_FILES+=usr/share/zoneinfo/America/Yakutat OLD_FILES+=usr/share/zoneinfo/America/Yellowknife OLD_FILES+=usr/share/zoneinfo/Antarctica/Casey OLD_FILES+=usr/share/zoneinfo/Antarctica/Davis OLD_FILES+=usr/share/zoneinfo/Antarctica/DumontDUrville OLD_FILES+=usr/share/zoneinfo/Antarctica/Macquarie OLD_FILES+=usr/share/zoneinfo/Antarctica/Mawson OLD_FILES+=usr/share/zoneinfo/Antarctica/McMurdo OLD_FILES+=usr/share/zoneinfo/Antarctica/Palmer OLD_FILES+=usr/share/zoneinfo/Antarctica/Rothera OLD_FILES+=usr/share/zoneinfo/Antarctica/Syowa OLD_FILES+=usr/share/zoneinfo/Antarctica/Troll OLD_FILES+=usr/share/zoneinfo/Antarctica/Vostok OLD_FILES+=usr/share/zoneinfo/Arctic/Longyearbyen OLD_FILES+=usr/share/zoneinfo/Asia/Aden OLD_FILES+=usr/share/zoneinfo/Asia/Almaty OLD_FILES+=usr/share/zoneinfo/Asia/Amman OLD_FILES+=usr/share/zoneinfo/Asia/Anadyr OLD_FILES+=usr/share/zoneinfo/Asia/Aqtau OLD_FILES+=usr/share/zoneinfo/Asia/Aqtobe OLD_FILES+=usr/share/zoneinfo/Asia/Ashgabat OLD_FILES+=usr/share/zoneinfo/Asia/Baghdad OLD_FILES+=usr/share/zoneinfo/Asia/Bahrain OLD_FILES+=usr/share/zoneinfo/Asia/Baku OLD_FILES+=usr/share/zoneinfo/Asia/Bangkok OLD_FILES+=usr/share/zoneinfo/Asia/Beirut OLD_FILES+=usr/share/zoneinfo/Asia/Bishkek OLD_FILES+=usr/share/zoneinfo/Asia/Brunei OLD_FILES+=usr/share/zoneinfo/Asia/Chita OLD_FILES+=usr/share/zoneinfo/Asia/Choibalsan OLD_FILES+=usr/share/zoneinfo/Asia/Colombo OLD_FILES+=usr/share/zoneinfo/Asia/Damascus OLD_FILES+=usr/share/zoneinfo/Asia/Dhaka OLD_FILES+=usr/share/zoneinfo/Asia/Dili OLD_FILES+=usr/share/zoneinfo/Asia/Dubai OLD_FILES+=usr/share/zoneinfo/Asia/Dushanbe OLD_FILES+=usr/share/zoneinfo/Asia/Gaza OLD_FILES+=usr/share/zoneinfo/Asia/Hebron OLD_FILES+=usr/share/zoneinfo/Asia/Ho_Chi_Minh OLD_FILES+=usr/share/zoneinfo/Asia/Hong_Kong OLD_FILES+=usr/share/zoneinfo/Asia/Hovd OLD_FILES+=usr/share/zoneinfo/Asia/Irkutsk OLD_FILES+=usr/share/zoneinfo/Asia/Istanbul OLD_FILES+=usr/share/zoneinfo/Asia/Jakarta OLD_FILES+=usr/share/zoneinfo/Asia/Jayapura OLD_FILES+=usr/share/zoneinfo/Asia/Jerusalem OLD_FILES+=usr/share/zoneinfo/Asia/Kabul OLD_FILES+=usr/share/zoneinfo/Asia/Kamchatka OLD_FILES+=usr/share/zoneinfo/Asia/Karachi OLD_FILES+=usr/share/zoneinfo/Asia/Kathmandu OLD_FILES+=usr/share/zoneinfo/Asia/Khandyga OLD_FILES+=usr/share/zoneinfo/Asia/Kolkata OLD_FILES+=usr/share/zoneinfo/Asia/Krasnoyarsk OLD_FILES+=usr/share/zoneinfo/Asia/Kuala_Lumpur OLD_FILES+=usr/share/zoneinfo/Asia/Kuching OLD_FILES+=usr/share/zoneinfo/Asia/Kuwait OLD_FILES+=usr/share/zoneinfo/Asia/Macau OLD_FILES+=usr/share/zoneinfo/Asia/Magadan OLD_FILES+=usr/share/zoneinfo/Asia/Makassar OLD_FILES+=usr/share/zoneinfo/Asia/Manila OLD_FILES+=usr/share/zoneinfo/Asia/Muscat OLD_FILES+=usr/share/zoneinfo/Asia/Nicosia OLD_FILES+=usr/share/zoneinfo/Asia/Novokuznetsk OLD_FILES+=usr/share/zoneinfo/Asia/Novosibirsk OLD_FILES+=usr/share/zoneinfo/Asia/Omsk OLD_FILES+=usr/share/zoneinfo/Asia/Oral OLD_FILES+=usr/share/zoneinfo/Asia/Phnom_Penh OLD_FILES+=usr/share/zoneinfo/Asia/Pontianak OLD_FILES+=usr/share/zoneinfo/Asia/Pyongyang OLD_FILES+=usr/share/zoneinfo/Asia/Qatar OLD_FILES+=usr/share/zoneinfo/Asia/Qyzylorda OLD_FILES+=usr/share/zoneinfo/Asia/Rangoon OLD_FILES+=usr/share/zoneinfo/Asia/Riyadh OLD_FILES+=usr/share/zoneinfo/Asia/Sakhalin OLD_FILES+=usr/share/zoneinfo/Asia/Samarkand OLD_FILES+=usr/share/zoneinfo/Asia/Seoul OLD_FILES+=usr/share/zoneinfo/Asia/Shanghai OLD_FILES+=usr/share/zoneinfo/Asia/Singapore OLD_FILES+=usr/share/zoneinfo/Asia/Srednekolymsk OLD_FILES+=usr/share/zoneinfo/Asia/Taipei OLD_FILES+=usr/share/zoneinfo/Asia/Tashkent OLD_FILES+=usr/share/zoneinfo/Asia/Tbilisi OLD_FILES+=usr/share/zoneinfo/Asia/Tehran OLD_FILES+=usr/share/zoneinfo/Asia/Thimphu OLD_FILES+=usr/share/zoneinfo/Asia/Tokyo OLD_FILES+=usr/share/zoneinfo/Asia/Ulaanbaatar OLD_FILES+=usr/share/zoneinfo/Asia/Urumqi OLD_FILES+=usr/share/zoneinfo/Asia/Ust-Nera OLD_FILES+=usr/share/zoneinfo/Asia/Vientiane OLD_FILES+=usr/share/zoneinfo/Asia/Vladivostok OLD_FILES+=usr/share/zoneinfo/Asia/Yakutsk OLD_FILES+=usr/share/zoneinfo/Asia/Yekaterinburg OLD_FILES+=usr/share/zoneinfo/Asia/Yerevan OLD_FILES+=usr/share/zoneinfo/Atlantic/Azores OLD_FILES+=usr/share/zoneinfo/Atlantic/Bermuda OLD_FILES+=usr/share/zoneinfo/Atlantic/Canary OLD_FILES+=usr/share/zoneinfo/Atlantic/Cape_Verde OLD_FILES+=usr/share/zoneinfo/Atlantic/Faroe OLD_FILES+=usr/share/zoneinfo/Atlantic/Madeira OLD_FILES+=usr/share/zoneinfo/Atlantic/Reykjavik OLD_FILES+=usr/share/zoneinfo/Atlantic/South_Georgia OLD_FILES+=usr/share/zoneinfo/Atlantic/St_Helena OLD_FILES+=usr/share/zoneinfo/Atlantic/Stanley OLD_FILES+=usr/share/zoneinfo/Australia/Adelaide OLD_FILES+=usr/share/zoneinfo/Australia/Brisbane OLD_FILES+=usr/share/zoneinfo/Australia/Broken_Hill OLD_FILES+=usr/share/zoneinfo/Australia/Currie OLD_FILES+=usr/share/zoneinfo/Australia/Darwin OLD_FILES+=usr/share/zoneinfo/Australia/Eucla OLD_FILES+=usr/share/zoneinfo/Australia/Hobart OLD_FILES+=usr/share/zoneinfo/Australia/Lindeman OLD_FILES+=usr/share/zoneinfo/Australia/Lord_Howe OLD_FILES+=usr/share/zoneinfo/Australia/Melbourne OLD_FILES+=usr/share/zoneinfo/Australia/Perth OLD_FILES+=usr/share/zoneinfo/Australia/Sydney OLD_FILES+=usr/share/zoneinfo/CET OLD_FILES+=usr/share/zoneinfo/CST6CDT OLD_FILES+=usr/share/zoneinfo/EET OLD_FILES+=usr/share/zoneinfo/EST OLD_FILES+=usr/share/zoneinfo/EST5EDT OLD_FILES+=usr/share/zoneinfo/Etc/GMT OLD_FILES+=usr/share/zoneinfo/Etc/GMT+0 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+1 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+10 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+11 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+12 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+2 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+3 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+4 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+5 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+6 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+7 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+8 OLD_FILES+=usr/share/zoneinfo/Etc/GMT+9 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-0 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-1 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-10 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-11 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-12 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-13 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-14 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-2 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-3 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-4 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-5 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-6 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-7 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-8 OLD_FILES+=usr/share/zoneinfo/Etc/GMT-9 OLD_FILES+=usr/share/zoneinfo/Etc/GMT0 OLD_FILES+=usr/share/zoneinfo/Etc/Greenwich OLD_FILES+=usr/share/zoneinfo/Etc/UCT OLD_FILES+=usr/share/zoneinfo/Etc/UTC OLD_FILES+=usr/share/zoneinfo/Etc/Universal OLD_FILES+=usr/share/zoneinfo/Etc/Zulu OLD_FILES+=usr/share/zoneinfo/Europe/Amsterdam OLD_FILES+=usr/share/zoneinfo/Europe/Andorra OLD_FILES+=usr/share/zoneinfo/Europe/Athens OLD_FILES+=usr/share/zoneinfo/Europe/Belgrade OLD_FILES+=usr/share/zoneinfo/Europe/Berlin OLD_FILES+=usr/share/zoneinfo/Europe/Bratislava OLD_FILES+=usr/share/zoneinfo/Europe/Brussels OLD_FILES+=usr/share/zoneinfo/Europe/Bucharest OLD_FILES+=usr/share/zoneinfo/Europe/Budapest OLD_FILES+=usr/share/zoneinfo/Europe/Busingen OLD_FILES+=usr/share/zoneinfo/Europe/Chisinau OLD_FILES+=usr/share/zoneinfo/Europe/Copenhagen OLD_FILES+=usr/share/zoneinfo/Europe/Dublin OLD_FILES+=usr/share/zoneinfo/Europe/Gibraltar OLD_FILES+=usr/share/zoneinfo/Europe/Guernsey OLD_FILES+=usr/share/zoneinfo/Europe/Helsinki OLD_FILES+=usr/share/zoneinfo/Europe/Isle_of_Man OLD_FILES+=usr/share/zoneinfo/Europe/Istanbul OLD_FILES+=usr/share/zoneinfo/Europe/Jersey OLD_FILES+=usr/share/zoneinfo/Europe/Kaliningrad OLD_FILES+=usr/share/zoneinfo/Europe/Kiev OLD_FILES+=usr/share/zoneinfo/Europe/Lisbon OLD_FILES+=usr/share/zoneinfo/Europe/Ljubljana OLD_FILES+=usr/share/zoneinfo/Europe/London OLD_FILES+=usr/share/zoneinfo/Europe/Luxembourg OLD_FILES+=usr/share/zoneinfo/Europe/Madrid OLD_FILES+=usr/share/zoneinfo/Europe/Malta OLD_FILES+=usr/share/zoneinfo/Europe/Mariehamn OLD_FILES+=usr/share/zoneinfo/Europe/Minsk OLD_FILES+=usr/share/zoneinfo/Europe/Monaco OLD_FILES+=usr/share/zoneinfo/Europe/Moscow OLD_FILES+=usr/share/zoneinfo/Europe/Nicosia OLD_FILES+=usr/share/zoneinfo/Europe/Oslo OLD_FILES+=usr/share/zoneinfo/Europe/Paris OLD_FILES+=usr/share/zoneinfo/Europe/Podgorica OLD_FILES+=usr/share/zoneinfo/Europe/Prague OLD_FILES+=usr/share/zoneinfo/Europe/Riga OLD_FILES+=usr/share/zoneinfo/Europe/Rome OLD_FILES+=usr/share/zoneinfo/Europe/Samara OLD_FILES+=usr/share/zoneinfo/Europe/San_Marino OLD_FILES+=usr/share/zoneinfo/Europe/Sarajevo OLD_FILES+=usr/share/zoneinfo/Europe/Simferopol OLD_FILES+=usr/share/zoneinfo/Europe/Skopje OLD_FILES+=usr/share/zoneinfo/Europe/Sofia OLD_FILES+=usr/share/zoneinfo/Europe/Stockholm OLD_FILES+=usr/share/zoneinfo/Europe/Tallinn OLD_FILES+=usr/share/zoneinfo/Europe/Tirane OLD_FILES+=usr/share/zoneinfo/Europe/Uzhgorod OLD_FILES+=usr/share/zoneinfo/Europe/Vaduz OLD_FILES+=usr/share/zoneinfo/Europe/Vatican OLD_FILES+=usr/share/zoneinfo/Europe/Vienna OLD_FILES+=usr/share/zoneinfo/Europe/Vilnius OLD_FILES+=usr/share/zoneinfo/Europe/Volgograd OLD_FILES+=usr/share/zoneinfo/Europe/Warsaw OLD_FILES+=usr/share/zoneinfo/Europe/Zagreb OLD_FILES+=usr/share/zoneinfo/Europe/Zaporozhye OLD_FILES+=usr/share/zoneinfo/Europe/Zurich OLD_FILES+=usr/share/zoneinfo/Factory OLD_FILES+=usr/share/zoneinfo/HST OLD_FILES+=usr/share/zoneinfo/Indian/Antananarivo OLD_FILES+=usr/share/zoneinfo/Indian/Chagos OLD_FILES+=usr/share/zoneinfo/Indian/Christmas OLD_FILES+=usr/share/zoneinfo/Indian/Cocos OLD_FILES+=usr/share/zoneinfo/Indian/Comoro OLD_FILES+=usr/share/zoneinfo/Indian/Kerguelen OLD_FILES+=usr/share/zoneinfo/Indian/Mahe OLD_FILES+=usr/share/zoneinfo/Indian/Maldives OLD_FILES+=usr/share/zoneinfo/Indian/Mauritius OLD_FILES+=usr/share/zoneinfo/Indian/Mayotte OLD_FILES+=usr/share/zoneinfo/Indian/Reunion OLD_FILES+=usr/share/zoneinfo/MET OLD_FILES+=usr/share/zoneinfo/MST OLD_FILES+=usr/share/zoneinfo/MST7MDT OLD_FILES+=usr/share/zoneinfo/PST8PDT OLD_FILES+=usr/share/zoneinfo/Pacific/Apia OLD_FILES+=usr/share/zoneinfo/Pacific/Auckland OLD_FILES+=usr/share/zoneinfo/Pacific/Bougainville OLD_FILES+=usr/share/zoneinfo/Pacific/Chatham OLD_FILES+=usr/share/zoneinfo/Pacific/Chuuk OLD_FILES+=usr/share/zoneinfo/Pacific/Easter OLD_FILES+=usr/share/zoneinfo/Pacific/Efate OLD_FILES+=usr/share/zoneinfo/Pacific/Enderbury OLD_FILES+=usr/share/zoneinfo/Pacific/Fakaofo OLD_FILES+=usr/share/zoneinfo/Pacific/Fiji OLD_FILES+=usr/share/zoneinfo/Pacific/Funafuti OLD_FILES+=usr/share/zoneinfo/Pacific/Galapagos OLD_FILES+=usr/share/zoneinfo/Pacific/Gambier OLD_FILES+=usr/share/zoneinfo/Pacific/Guadalcanal OLD_FILES+=usr/share/zoneinfo/Pacific/Guam OLD_FILES+=usr/share/zoneinfo/Pacific/Honolulu OLD_FILES+=usr/share/zoneinfo/Pacific/Johnston OLD_FILES+=usr/share/zoneinfo/Pacific/Kiritimati OLD_FILES+=usr/share/zoneinfo/Pacific/Kosrae OLD_FILES+=usr/share/zoneinfo/Pacific/Kwajalein OLD_FILES+=usr/share/zoneinfo/Pacific/Majuro OLD_FILES+=usr/share/zoneinfo/Pacific/Marquesas OLD_FILES+=usr/share/zoneinfo/Pacific/Midway OLD_FILES+=usr/share/zoneinfo/Pacific/Nauru OLD_FILES+=usr/share/zoneinfo/Pacific/Niue OLD_FILES+=usr/share/zoneinfo/Pacific/Norfolk OLD_FILES+=usr/share/zoneinfo/Pacific/Noumea OLD_FILES+=usr/share/zoneinfo/Pacific/Pago_Pago OLD_FILES+=usr/share/zoneinfo/Pacific/Palau OLD_FILES+=usr/share/zoneinfo/Pacific/Pitcairn OLD_FILES+=usr/share/zoneinfo/Pacific/Pohnpei OLD_FILES+=usr/share/zoneinfo/Pacific/Port_Moresby OLD_FILES+=usr/share/zoneinfo/Pacific/Rarotonga OLD_FILES+=usr/share/zoneinfo/Pacific/Saipan OLD_FILES+=usr/share/zoneinfo/Pacific/Tahiti OLD_FILES+=usr/share/zoneinfo/Pacific/Tarawa OLD_FILES+=usr/share/zoneinfo/Pacific/Tongatapu OLD_FILES+=usr/share/zoneinfo/Pacific/Wake OLD_FILES+=usr/share/zoneinfo/Pacific/Wallis OLD_FILES+=usr/share/zoneinfo/UTC OLD_FILES+=usr/share/zoneinfo/WET OLD_FILES+=usr/share/zoneinfo/posixrules OLD_FILES+=usr/share/zoneinfo/zone.tab .endif diff --git a/usr.sbin/moused/Makefile b/usr.sbin/moused/Makefile index 2a7aa0484542..b6319b6fef20 100644 --- a/usr.sbin/moused/Makefile +++ b/usr.sbin/moused/Makefile @@ -1,10 +1,4 @@ -PACKAGE= console-tools -PROG= moused -MAN= moused.8 +SUBDIR+=moused +SUBDIR+=msconvd -LIBADD= m util - -#BINMODE=4555 -#PRECIOUSPROG= - -.include +.include diff --git a/usr.sbin/moused/Makefile.depend b/usr.sbin/moused/Makefile.depend deleted file mode 100644 index af3b7054df7a..000000000000 --- a/usr.sbin/moused/Makefile.depend +++ /dev/null @@ -1,17 +0,0 @@ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - include \ - include/xlocale \ - lib/${CSU_DIR} \ - lib/libc \ - lib/libcompiler_rt \ - lib/libutil \ - lib/msun \ - - -.include - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/usr.sbin/moused/moused/Makefile b/usr.sbin/moused/moused/Makefile new file mode 100644 index 000000000000..8479764b710b --- /dev/null +++ b/usr.sbin/moused/moused/Makefile @@ -0,0 +1,28 @@ +PACKAGE= console-tools +PROG= moused + +SRCS= moused.c \ + event-names.h \ + quirks.c \ + quirks.h \ + util.c \ + util.h \ + util-evdev.c \ + util-evdev.h \ + util-list.c \ + util-list.h +MAN= moused.8 \ + moused.conf.5 +CONFS= moused.conf +QUIRKS= 5-generic-touchpad.quirks + +CWARNFLAGS.quirks.c+= -Wno-cast-align -Wno-shadow -Wno-cast-qual \ + -Wno-unused-variable -Wno-unused-parameter +CWARNFLAGS.util.c+= -Wno-shadow +LIBADD= m util +BINDIR= /usr/sbin + +FILES= ${QUIRKS:S|^|quirks/|} +FILESDIR= /usr/share/${PROG} + +.include diff --git a/usr.sbin/moused/moused/event-names.h b/usr.sbin/moused/moused/event-names.h new file mode 100644 index 000000000000..05093a1d0db3 --- /dev/null +++ b/usr.sbin/moused/moused/event-names.h @@ -0,0 +1,1656 @@ +/* THIS FILE IS GENERATED, DO NOT EDIT */ + +#ifndef EVENT_NAMES_H +#define EVENT_NAMES_H + +static const char * const ev_map[EV_MAX + 1] = { + [EV_SYN] = "EV_SYN", + [EV_KEY] = "EV_KEY", + [EV_REL] = "EV_REL", + [EV_ABS] = "EV_ABS", + [EV_MSC] = "EV_MSC", + [EV_SW] = "EV_SW", + [EV_LED] = "EV_LED", + [EV_SND] = "EV_SND", + [EV_REP] = "EV_REP", + [EV_FF] = "EV_FF", + [EV_PWR] = "EV_PWR", + [EV_FF_STATUS] = "EV_FF_STATUS", + [EV_MAX] = "EV_MAX", +}; + +static const char * const rel_map[REL_MAX + 1] = { + [REL_X] = "REL_X", + [REL_Y] = "REL_Y", + [REL_Z] = "REL_Z", + [REL_RX] = "REL_RX", + [REL_RY] = "REL_RY", + [REL_RZ] = "REL_RZ", + [REL_HWHEEL] = "REL_HWHEEL", + [REL_DIAL] = "REL_DIAL", + [REL_WHEEL] = "REL_WHEEL", + [REL_MISC] = "REL_MISC", + [REL_RESERVED] = "REL_RESERVED", + [REL_WHEEL_HI_RES] = "REL_WHEEL_HI_RES", + [REL_HWHEEL_HI_RES] = "REL_HWHEEL_HI_RES", + [REL_MAX] = "REL_MAX", +}; + +static const char * const abs_map[ABS_MAX + 1] = { + [ABS_X] = "ABS_X", + [ABS_Y] = "ABS_Y", + [ABS_Z] = "ABS_Z", + [ABS_RX] = "ABS_RX", + [ABS_RY] = "ABS_RY", + [ABS_RZ] = "ABS_RZ", + [ABS_THROTTLE] = "ABS_THROTTLE", + [ABS_RUDDER] = "ABS_RUDDER", + [ABS_WHEEL] = "ABS_WHEEL", + [ABS_GAS] = "ABS_GAS", + [ABS_BRAKE] = "ABS_BRAKE", + [ABS_HAT0X] = "ABS_HAT0X", + [ABS_HAT0Y] = "ABS_HAT0Y", + [ABS_HAT1X] = "ABS_HAT1X", + [ABS_HAT1Y] = "ABS_HAT1Y", + [ABS_HAT2X] = "ABS_HAT2X", + [ABS_HAT2Y] = "ABS_HAT2Y", + [ABS_HAT3X] = "ABS_HAT3X", + [ABS_HAT3Y] = "ABS_HAT3Y", + [ABS_PRESSURE] = "ABS_PRESSURE", + [ABS_DISTANCE] = "ABS_DISTANCE", + [ABS_TILT_X] = "ABS_TILT_X", + [ABS_TILT_Y] = "ABS_TILT_Y", + [ABS_TOOL_WIDTH] = "ABS_TOOL_WIDTH", + [ABS_VOLUME] = "ABS_VOLUME", + // [ABS_PROFILE] = "ABS_PROFILE", + [ABS_MISC] = "ABS_MISC", + [ABS_RESERVED] = "ABS_RESERVED", + [ABS_MT_SLOT] = "ABS_MT_SLOT", + [ABS_MT_TOUCH_MAJOR] = "ABS_MT_TOUCH_MAJOR", + [ABS_MT_TOUCH_MINOR] = "ABS_MT_TOUCH_MINOR", + [ABS_MT_WIDTH_MAJOR] = "ABS_MT_WIDTH_MAJOR", + [ABS_MT_WIDTH_MINOR] = "ABS_MT_WIDTH_MINOR", + [ABS_MT_ORIENTATION] = "ABS_MT_ORIENTATION", + [ABS_MT_POSITION_X] = "ABS_MT_POSITION_X", + [ABS_MT_POSITION_Y] = "ABS_MT_POSITION_Y", + [ABS_MT_TOOL_TYPE] = "ABS_MT_TOOL_TYPE", + [ABS_MT_BLOB_ID] = "ABS_MT_BLOB_ID", + [ABS_MT_TRACKING_ID] = "ABS_MT_TRACKING_ID", + [ABS_MT_PRESSURE] = "ABS_MT_PRESSURE", + [ABS_MT_DISTANCE] = "ABS_MT_DISTANCE", + [ABS_MT_TOOL_X] = "ABS_MT_TOOL_X", + [ABS_MT_TOOL_Y] = "ABS_MT_TOOL_Y", + [ABS_MAX] = "ABS_MAX", +}; + +static const char * const key_map[KEY_MAX + 1] = { + [KEY_RESERVED] = "KEY_RESERVED", + [KEY_ESC] = "KEY_ESC", + [KEY_1] = "KEY_1", + [KEY_2] = "KEY_2", + [KEY_3] = "KEY_3", + [KEY_4] = "KEY_4", + [KEY_5] = "KEY_5", + [KEY_6] = "KEY_6", + [KEY_7] = "KEY_7", + [KEY_8] = "KEY_8", + [KEY_9] = "KEY_9", + [KEY_0] = "KEY_0", + [KEY_MINUS] = "KEY_MINUS", + [KEY_EQUAL] = "KEY_EQUAL", + [KEY_BACKSPACE] = "KEY_BACKSPACE", + [KEY_TAB] = "KEY_TAB", + [KEY_Q] = "KEY_Q", + [KEY_W] = "KEY_W", + [KEY_E] = "KEY_E", + [KEY_R] = "KEY_R", + [KEY_T] = "KEY_T", + [KEY_Y] = "KEY_Y", + [KEY_U] = "KEY_U", + [KEY_I] = "KEY_I", + [KEY_O] = "KEY_O", + [KEY_P] = "KEY_P", + [KEY_LEFTBRACE] = "KEY_LEFTBRACE", + [KEY_RIGHTBRACE] = "KEY_RIGHTBRACE", + [KEY_ENTER] = "KEY_ENTER", + [KEY_LEFTCTRL] = "KEY_LEFTCTRL", + [KEY_A] = "KEY_A", + [KEY_S] = "KEY_S", + [KEY_D] = "KEY_D", + [KEY_F] = "KEY_F", + [KEY_G] = "KEY_G", + [KEY_H] = "KEY_H", + [KEY_J] = "KEY_J", + [KEY_K] = "KEY_K", + [KEY_L] = "KEY_L", + [KEY_SEMICOLON] = "KEY_SEMICOLON", + [KEY_APOSTROPHE] = "KEY_APOSTROPHE", + [KEY_GRAVE] = "KEY_GRAVE", + [KEY_LEFTSHIFT] = "KEY_LEFTSHIFT", + [KEY_BACKSLASH] = "KEY_BACKSLASH", + [KEY_Z] = "KEY_Z", + [KEY_X] = "KEY_X", + [KEY_C] = "KEY_C", + [KEY_V] = "KEY_V", + [KEY_B] = "KEY_B", + [KEY_N] = "KEY_N", + [KEY_M] = "KEY_M", + [KEY_COMMA] = "KEY_COMMA", + [KEY_DOT] = "KEY_DOT", + [KEY_SLASH] = "KEY_SLASH", + [KEY_RIGHTSHIFT] = "KEY_RIGHTSHIFT", + [KEY_KPASTERISK] = "KEY_KPASTERISK", + [KEY_LEFTALT] = "KEY_LEFTALT", + [KEY_SPACE] = "KEY_SPACE", + [KEY_CAPSLOCK] = "KEY_CAPSLOCK", + [KEY_F1] = "KEY_F1", + [KEY_F2] = "KEY_F2", + [KEY_F3] = "KEY_F3", + [KEY_F4] = "KEY_F4", + [KEY_F5] = "KEY_F5", + [KEY_F6] = "KEY_F6", + [KEY_F7] = "KEY_F7", + [KEY_F8] = "KEY_F8", + [KEY_F9] = "KEY_F9", + [KEY_F10] = "KEY_F10", + [KEY_NUMLOCK] = "KEY_NUMLOCK", + [KEY_SCROLLLOCK] = "KEY_SCROLLLOCK", + [KEY_KP7] = "KEY_KP7", + [KEY_KP8] = "KEY_KP8", + [KEY_KP9] = "KEY_KP9", + [KEY_KPMINUS] = "KEY_KPMINUS", + [KEY_KP4] = "KEY_KP4", + [KEY_KP5] = "KEY_KP5", + [KEY_KP6] = "KEY_KP6", + [KEY_KPPLUS] = "KEY_KPPLUS", + [KEY_KP1] = "KEY_KP1", + [KEY_KP2] = "KEY_KP2", + [KEY_KP3] = "KEY_KP3", + [KEY_KP0] = "KEY_KP0", + [KEY_KPDOT] = "KEY_KPDOT", + [KEY_ZENKAKUHANKAKU] = "KEY_ZENKAKUHANKAKU", + [KEY_102ND] = "KEY_102ND", + [KEY_F11] = "KEY_F11", + [KEY_F12] = "KEY_F12", + [KEY_RO] = "KEY_RO", + [KEY_KATAKANA] = "KEY_KATAKANA", + [KEY_HIRAGANA] = "KEY_HIRAGANA", + [KEY_HENKAN] = "KEY_HENKAN", + [KEY_KATAKANAHIRAGANA] = "KEY_KATAKANAHIRAGANA", + [KEY_MUHENKAN] = "KEY_MUHENKAN", + [KEY_KPJPCOMMA] = "KEY_KPJPCOMMA", + [KEY_KPENTER] = "KEY_KPENTER", + [KEY_RIGHTCTRL] = "KEY_RIGHTCTRL", + [KEY_KPSLASH] = "KEY_KPSLASH", + [KEY_SYSRQ] = "KEY_SYSRQ", + [KEY_RIGHTALT] = "KEY_RIGHTALT", + [KEY_LINEFEED] = "KEY_LINEFEED", + [KEY_HOME] = "KEY_HOME", + [KEY_UP] = "KEY_UP", + [KEY_PAGEUP] = "KEY_PAGEUP", + [KEY_LEFT] = "KEY_LEFT", + [KEY_RIGHT] = "KEY_RIGHT", + [KEY_END] = "KEY_END", + [KEY_DOWN] = "KEY_DOWN", + [KEY_PAGEDOWN] = "KEY_PAGEDOWN", + [KEY_INSERT] = "KEY_INSERT", + [KEY_DELETE] = "KEY_DELETE", + [KEY_MACRO] = "KEY_MACRO", + [KEY_MUTE] = "KEY_MUTE", + [KEY_VOLUMEDOWN] = "KEY_VOLUMEDOWN", + [KEY_VOLUMEUP] = "KEY_VOLUMEUP", + [KEY_POWER] = "KEY_POWER", + [KEY_KPEQUAL] = "KEY_KPEQUAL", + [KEY_KPPLUSMINUS] = "KEY_KPPLUSMINUS", + [KEY_PAUSE] = "KEY_PAUSE", + [KEY_SCALE] = "KEY_SCALE", + [KEY_KPCOMMA] = "KEY_KPCOMMA", + [KEY_HANGEUL] = "KEY_HANGEUL", + [KEY_HANJA] = "KEY_HANJA", + [KEY_YEN] = "KEY_YEN", + [KEY_LEFTMETA] = "KEY_LEFTMETA", + [KEY_RIGHTMETA] = "KEY_RIGHTMETA", + [KEY_COMPOSE] = "KEY_COMPOSE", + [KEY_STOP] = "KEY_STOP", + [KEY_AGAIN] = "KEY_AGAIN", + [KEY_PROPS] = "KEY_PROPS", + [KEY_UNDO] = "KEY_UNDO", + [KEY_FRONT] = "KEY_FRONT", + [KEY_COPY] = "KEY_COPY", + [KEY_OPEN] = "KEY_OPEN", + [KEY_PASTE] = "KEY_PASTE", + [KEY_FIND] = "KEY_FIND", + [KEY_CUT] = "KEY_CUT", + [KEY_HELP] = "KEY_HELP", + [KEY_MENU] = "KEY_MENU", + [KEY_CALC] = "KEY_CALC", + [KEY_SETUP] = "KEY_SETUP", + [KEY_SLEEP] = "KEY_SLEEP", + [KEY_WAKEUP] = "KEY_WAKEUP", + [KEY_FILE] = "KEY_FILE", + [KEY_SENDFILE] = "KEY_SENDFILE", + [KEY_DELETEFILE] = "KEY_DELETEFILE", + [KEY_XFER] = "KEY_XFER", + [KEY_PROG1] = "KEY_PROG1", + [KEY_PROG2] = "KEY_PROG2", + [KEY_WWW] = "KEY_WWW", + [KEY_MSDOS] = "KEY_MSDOS", + [KEY_COFFEE] = "KEY_COFFEE", + [KEY_ROTATE_DISPLAY] = "KEY_ROTATE_DISPLAY", + [KEY_CYCLEWINDOWS] = "KEY_CYCLEWINDOWS", + [KEY_MAIL] = "KEY_MAIL", + [KEY_BOOKMARKS] = "KEY_BOOKMARKS", + [KEY_COMPUTER] = "KEY_COMPUTER", + [KEY_BACK] = "KEY_BACK", + [KEY_FORWARD] = "KEY_FORWARD", + [KEY_CLOSECD] = "KEY_CLOSECD", + [KEY_EJECTCD] = "KEY_EJECTCD", + [KEY_EJECTCLOSECD] = "KEY_EJECTCLOSECD", + [KEY_NEXTSONG] = "KEY_NEXTSONG", + [KEY_PLAYPAUSE] = "KEY_PLAYPAUSE", + [KEY_PREVIOUSSONG] = "KEY_PREVIOUSSONG", + [KEY_STOPCD] = "KEY_STOPCD", + [KEY_RECORD] = "KEY_RECORD", + [KEY_REWIND] = "KEY_REWIND", + [KEY_PHONE] = "KEY_PHONE", + [KEY_ISO] = "KEY_ISO", + [KEY_CONFIG] = "KEY_CONFIG", + [KEY_HOMEPAGE] = "KEY_HOMEPAGE", + [KEY_REFRESH] = "KEY_REFRESH", + [KEY_EXIT] = "KEY_EXIT", + [KEY_MOVE] = "KEY_MOVE", + [KEY_EDIT] = "KEY_EDIT", + [KEY_SCROLLUP] = "KEY_SCROLLUP", + [KEY_SCROLLDOWN] = "KEY_SCROLLDOWN", + [KEY_KPLEFTPAREN] = "KEY_KPLEFTPAREN", + [KEY_KPRIGHTPAREN] = "KEY_KPRIGHTPAREN", + [KEY_NEW] = "KEY_NEW", + [KEY_REDO] = "KEY_REDO", + [KEY_F13] = "KEY_F13", + [KEY_F14] = "KEY_F14", + [KEY_F15] = "KEY_F15", + [KEY_F16] = "KEY_F16", + [KEY_F17] = "KEY_F17", + [KEY_F18] = "KEY_F18", + [KEY_F19] = "KEY_F19", + [KEY_F20] = "KEY_F20", + [KEY_F21] = "KEY_F21", + [KEY_F22] = "KEY_F22", + [KEY_F23] = "KEY_F23", + [KEY_F24] = "KEY_F24", + [KEY_PLAYCD] = "KEY_PLAYCD", + [KEY_PAUSECD] = "KEY_PAUSECD", + [KEY_PROG3] = "KEY_PROG3", + [KEY_PROG4] = "KEY_PROG4", + // [KEY_ALL_APPLICATIONS] = "KEY_ALL_APPLICATIONS", + [KEY_SUSPEND] = "KEY_SUSPEND", + [KEY_CLOSE] = "KEY_CLOSE", + [KEY_PLAY] = "KEY_PLAY", + [KEY_FASTFORWARD] = "KEY_FASTFORWARD", + [KEY_BASSBOOST] = "KEY_BASSBOOST", + [KEY_PRINT] = "KEY_PRINT", + [KEY_HP] = "KEY_HP", + [KEY_CAMERA] = "KEY_CAMERA", + [KEY_SOUND] = "KEY_SOUND", + [KEY_QUESTION] = "KEY_QUESTION", + [KEY_EMAIL] = "KEY_EMAIL", + [KEY_CHAT] = "KEY_CHAT", + [KEY_SEARCH] = "KEY_SEARCH", + [KEY_CONNECT] = "KEY_CONNECT", + [KEY_FINANCE] = "KEY_FINANCE", + [KEY_SPORT] = "KEY_SPORT", + [KEY_SHOP] = "KEY_SHOP", + [KEY_ALTERASE] = "KEY_ALTERASE", + [KEY_CANCEL] = "KEY_CANCEL", + [KEY_BRIGHTNESSDOWN] = "KEY_BRIGHTNESSDOWN", + [KEY_BRIGHTNESSUP] = "KEY_BRIGHTNESSUP", + [KEY_MEDIA] = "KEY_MEDIA", + [KEY_SWITCHVIDEOMODE] = "KEY_SWITCHVIDEOMODE", + [KEY_KBDILLUMTOGGLE] = "KEY_KBDILLUMTOGGLE", + [KEY_KBDILLUMDOWN] = "KEY_KBDILLUMDOWN", + [KEY_KBDILLUMUP] = "KEY_KBDILLUMUP", + [KEY_SEND] = "KEY_SEND", + [KEY_REPLY] = "KEY_REPLY", + [KEY_FORWARDMAIL] = "KEY_FORWARDMAIL", + [KEY_SAVE] = "KEY_SAVE", + [KEY_DOCUMENTS] = "KEY_DOCUMENTS", + [KEY_BATTERY] = "KEY_BATTERY", + [KEY_BLUETOOTH] = "KEY_BLUETOOTH", + [KEY_WLAN] = "KEY_WLAN", + [KEY_UWB] = "KEY_UWB", + [KEY_UNKNOWN] = "KEY_UNKNOWN", + [KEY_VIDEO_NEXT] = "KEY_VIDEO_NEXT", + [KEY_VIDEO_PREV] = "KEY_VIDEO_PREV", + [KEY_BRIGHTNESS_CYCLE] = "KEY_BRIGHTNESS_CYCLE", + [KEY_BRIGHTNESS_AUTO] = "KEY_BRIGHTNESS_AUTO", + [KEY_DISPLAY_OFF] = "KEY_DISPLAY_OFF", + [KEY_WWAN] = "KEY_WWAN", + [KEY_RFKILL] = "KEY_RFKILL", + [KEY_MICMUTE] = "KEY_MICMUTE", + [KEY_OK] = "KEY_OK", + [KEY_SELECT] = "KEY_SELECT", + [KEY_GOTO] = "KEY_GOTO", + [KEY_CLEAR] = "KEY_CLEAR", + [KEY_POWER2] = "KEY_POWER2", + [KEY_OPTION] = "KEY_OPTION", + [KEY_INFO] = "KEY_INFO", + [KEY_TIME] = "KEY_TIME", + [KEY_VENDOR] = "KEY_VENDOR", + [KEY_ARCHIVE] = "KEY_ARCHIVE", + [KEY_PROGRAM] = "KEY_PROGRAM", + [KEY_CHANNEL] = "KEY_CHANNEL", + [KEY_FAVORITES] = "KEY_FAVORITES", + [KEY_EPG] = "KEY_EPG", + [KEY_PVR] = "KEY_PVR", + [KEY_MHP] = "KEY_MHP", + [KEY_LANGUAGE] = "KEY_LANGUAGE", + [KEY_TITLE] = "KEY_TITLE", + [KEY_SUBTITLE] = "KEY_SUBTITLE", + [KEY_ANGLE] = "KEY_ANGLE", + [KEY_FULL_SCREEN] = "KEY_FULL_SCREEN", + [KEY_MODE] = "KEY_MODE", + [KEY_KEYBOARD] = "KEY_KEYBOARD", + [KEY_ASPECT_RATIO] = "KEY_ASPECT_RATIO", + [KEY_PC] = "KEY_PC", + [KEY_TV] = "KEY_TV", + [KEY_TV2] = "KEY_TV2", + [KEY_VCR] = "KEY_VCR", + [KEY_VCR2] = "KEY_VCR2", + [KEY_SAT] = "KEY_SAT", + [KEY_SAT2] = "KEY_SAT2", + [KEY_CD] = "KEY_CD", + [KEY_TAPE] = "KEY_TAPE", + [KEY_RADIO] = "KEY_RADIO", + [KEY_TUNER] = "KEY_TUNER", + [KEY_PLAYER] = "KEY_PLAYER", + [KEY_TEXT] = "KEY_TEXT", + [KEY_DVD] = "KEY_DVD", + [KEY_AUX] = "KEY_AUX", + [KEY_MP3] = "KEY_MP3", + [KEY_AUDIO] = "KEY_AUDIO", + [KEY_VIDEO] = "KEY_VIDEO", + [KEY_DIRECTORY] = "KEY_DIRECTORY", + [KEY_LIST] = "KEY_LIST", + [KEY_MEMO] = "KEY_MEMO", + [KEY_CALENDAR] = "KEY_CALENDAR", + [KEY_RED] = "KEY_RED", + [KEY_GREEN] = "KEY_GREEN", + [KEY_YELLOW] = "KEY_YELLOW", + [KEY_BLUE] = "KEY_BLUE", + [KEY_CHANNELUP] = "KEY_CHANNELUP", + [KEY_CHANNELDOWN] = "KEY_CHANNELDOWN", + [KEY_FIRST] = "KEY_FIRST", + [KEY_LAST] = "KEY_LAST", + [KEY_AB] = "KEY_AB", + [KEY_NEXT] = "KEY_NEXT", + [KEY_RESTART] = "KEY_RESTART", + [KEY_SLOW] = "KEY_SLOW", + [KEY_SHUFFLE] = "KEY_SHUFFLE", + [KEY_BREAK] = "KEY_BREAK", + [KEY_PREVIOUS] = "KEY_PREVIOUS", + [KEY_DIGITS] = "KEY_DIGITS", + [KEY_TEEN] = "KEY_TEEN", + [KEY_TWEN] = "KEY_TWEN", + [KEY_VIDEOPHONE] = "KEY_VIDEOPHONE", + [KEY_GAMES] = "KEY_GAMES", + [KEY_ZOOMIN] = "KEY_ZOOMIN", + [KEY_ZOOMOUT] = "KEY_ZOOMOUT", + [KEY_ZOOMRESET] = "KEY_ZOOMRESET", + [KEY_WORDPROCESSOR] = "KEY_WORDPROCESSOR", + [KEY_EDITOR] = "KEY_EDITOR", + [KEY_SPREADSHEET] = "KEY_SPREADSHEET", + [KEY_GRAPHICSEDITOR] = "KEY_GRAPHICSEDITOR", + [KEY_PRESENTATION] = "KEY_PRESENTATION", + [KEY_DATABASE] = "KEY_DATABASE", + [KEY_NEWS] = "KEY_NEWS", + [KEY_VOICEMAIL] = "KEY_VOICEMAIL", + [KEY_ADDRESSBOOK] = "KEY_ADDRESSBOOK", + [KEY_MESSENGER] = "KEY_MESSENGER", + [KEY_DISPLAYTOGGLE] = "KEY_DISPLAYTOGGLE", + [KEY_SPELLCHECK] = "KEY_SPELLCHECK", + [KEY_LOGOFF] = "KEY_LOGOFF", + [KEY_DOLLAR] = "KEY_DOLLAR", + [KEY_EURO] = "KEY_EURO", + [KEY_FRAMEBACK] = "KEY_FRAMEBACK", + [KEY_FRAMEFORWARD] = "KEY_FRAMEFORWARD", + [KEY_CONTEXT_MENU] = "KEY_CONTEXT_MENU", + [KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT", + [KEY_10CHANNELSUP] = "KEY_10CHANNELSUP", + [KEY_10CHANNELSDOWN] = "KEY_10CHANNELSDOWN", + [KEY_IMAGES] = "KEY_IMAGES", + // [KEY_NOTIFICATION_CENTER] = "KEY_NOTIFICATION_CENTER", + // [KEY_PICKUP_PHONE] = "KEY_PICKUP_PHONE", + // [KEY_HANGUP_PHONE] = "KEY_HANGUP_PHONE", + [KEY_DEL_EOL] = "KEY_DEL_EOL", + [KEY_DEL_EOS] = "KEY_DEL_EOS", + [KEY_INS_LINE] = "KEY_INS_LINE", + [KEY_DEL_LINE] = "KEY_DEL_LINE", + [KEY_FN] = "KEY_FN", + [KEY_FN_ESC] = "KEY_FN_ESC", + [KEY_FN_F1] = "KEY_FN_F1", + [KEY_FN_F2] = "KEY_FN_F2", + [KEY_FN_F3] = "KEY_FN_F3", + [KEY_FN_F4] = "KEY_FN_F4", + [KEY_FN_F5] = "KEY_FN_F5", + [KEY_FN_F6] = "KEY_FN_F6", + [KEY_FN_F7] = "KEY_FN_F7", + [KEY_FN_F8] = "KEY_FN_F8", + [KEY_FN_F9] = "KEY_FN_F9", + [KEY_FN_F10] = "KEY_FN_F10", + [KEY_FN_F11] = "KEY_FN_F11", + [KEY_FN_F12] = "KEY_FN_F12", + [KEY_FN_1] = "KEY_FN_1", + [KEY_FN_2] = "KEY_FN_2", + [KEY_FN_D] = "KEY_FN_D", + [KEY_FN_E] = "KEY_FN_E", + [KEY_FN_F] = "KEY_FN_F", + [KEY_FN_S] = "KEY_FN_S", + [KEY_FN_B] = "KEY_FN_B", + // [KEY_FN_RIGHT_SHIFT] = "KEY_FN_RIGHT_SHIFT", + [KEY_BRL_DOT1] = "KEY_BRL_DOT1", + [KEY_BRL_DOT2] = "KEY_BRL_DOT2", + [KEY_BRL_DOT3] = "KEY_BRL_DOT3", + [KEY_BRL_DOT4] = "KEY_BRL_DOT4", + [KEY_BRL_DOT5] = "KEY_BRL_DOT5", + [KEY_BRL_DOT6] = "KEY_BRL_DOT6", + [KEY_BRL_DOT7] = "KEY_BRL_DOT7", + [KEY_BRL_DOT8] = "KEY_BRL_DOT8", + [KEY_BRL_DOT9] = "KEY_BRL_DOT9", + [KEY_BRL_DOT10] = "KEY_BRL_DOT10", + [KEY_NUMERIC_0] = "KEY_NUMERIC_0", + [KEY_NUMERIC_1] = "KEY_NUMERIC_1", + [KEY_NUMERIC_2] = "KEY_NUMERIC_2", + [KEY_NUMERIC_3] = "KEY_NUMERIC_3", + [KEY_NUMERIC_4] = "KEY_NUMERIC_4", + [KEY_NUMERIC_5] = "KEY_NUMERIC_5", + [KEY_NUMERIC_6] = "KEY_NUMERIC_6", + [KEY_NUMERIC_7] = "KEY_NUMERIC_7", + [KEY_NUMERIC_8] = "KEY_NUMERIC_8", + [KEY_NUMERIC_9] = "KEY_NUMERIC_9", + [KEY_NUMERIC_STAR] = "KEY_NUMERIC_STAR", + [KEY_NUMERIC_POUND] = "KEY_NUMERIC_POUND", + [KEY_NUMERIC_A] = "KEY_NUMERIC_A", + [KEY_NUMERIC_B] = "KEY_NUMERIC_B", + [KEY_NUMERIC_C] = "KEY_NUMERIC_C", + [KEY_NUMERIC_D] = "KEY_NUMERIC_D", + [KEY_CAMERA_FOCUS] = "KEY_CAMERA_FOCUS", + [KEY_WPS_BUTTON] = "KEY_WPS_BUTTON", + [KEY_TOUCHPAD_TOGGLE] = "KEY_TOUCHPAD_TOGGLE", + [KEY_TOUCHPAD_ON] = "KEY_TOUCHPAD_ON", + [KEY_TOUCHPAD_OFF] = "KEY_TOUCHPAD_OFF", + [KEY_CAMERA_ZOOMIN] = "KEY_CAMERA_ZOOMIN", + [KEY_CAMERA_ZOOMOUT] = "KEY_CAMERA_ZOOMOUT", + [KEY_CAMERA_UP] = "KEY_CAMERA_UP", + [KEY_CAMERA_DOWN] = "KEY_CAMERA_DOWN", + [KEY_CAMERA_LEFT] = "KEY_CAMERA_LEFT", + [KEY_CAMERA_RIGHT] = "KEY_CAMERA_RIGHT", + [KEY_ATTENDANT_ON] = "KEY_ATTENDANT_ON", + [KEY_ATTENDANT_OFF] = "KEY_ATTENDANT_OFF", + [KEY_ATTENDANT_TOGGLE] = "KEY_ATTENDANT_TOGGLE", + [KEY_LIGHTS_TOGGLE] = "KEY_LIGHTS_TOGGLE", + [KEY_ALS_TOGGLE] = "KEY_ALS_TOGGLE", + [KEY_ROTATE_LOCK_TOGGLE] = "KEY_ROTATE_LOCK_TOGGLE", + [KEY_BUTTONCONFIG] = "KEY_BUTTONCONFIG", + [KEY_TASKMANAGER] = "KEY_TASKMANAGER", + [KEY_JOURNAL] = "KEY_JOURNAL", + [KEY_CONTROLPANEL] = "KEY_CONTROLPANEL", + [KEY_APPSELECT] = "KEY_APPSELECT", + [KEY_SCREENSAVER] = "KEY_SCREENSAVER", + [KEY_VOICECOMMAND] = "KEY_VOICECOMMAND", + [KEY_ASSISTANT] = "KEY_ASSISTANT", + [KEY_KBD_LAYOUT_NEXT] = "KEY_KBD_LAYOUT_NEXT", + // [KEY_EMOJI_PICKER] = "KEY_EMOJI_PICKER", + //[KEY_DICTATE] = "KEY_DICTATE", + //[KEY_CAMERA_ACCESS_ENABLE] = "KEY_CAMERA_ACCESS_ENABLE", + //[KEY_CAMERA_ACCESS_DISABLE] = "KEY_CAMERA_ACCESS_DISABLE", + //[KEY_CAMERA_ACCESS_TOGGLE] = "KEY_CAMERA_ACCESS_TOGGLE", + [KEY_BRIGHTNESS_MIN] = "KEY_BRIGHTNESS_MIN", + [KEY_BRIGHTNESS_MAX] = "KEY_BRIGHTNESS_MAX", + [KEY_KBDINPUTASSIST_PREV] = "KEY_KBDINPUTASSIST_PREV", + [KEY_KBDINPUTASSIST_NEXT] = "KEY_KBDINPUTASSIST_NEXT", + [KEY_KBDINPUTASSIST_PREVGROUP] = "KEY_KBDINPUTASSIST_PREVGROUP", + [KEY_KBDINPUTASSIST_NEXTGROUP] = "KEY_KBDINPUTASSIST_NEXTGROUP", + [KEY_KBDINPUTASSIST_ACCEPT] = "KEY_KBDINPUTASSIST_ACCEPT", + [KEY_KBDINPUTASSIST_CANCEL] = "KEY_KBDINPUTASSIST_CANCEL", + [KEY_RIGHT_UP] = "KEY_RIGHT_UP", + [KEY_RIGHT_DOWN] = "KEY_RIGHT_DOWN", + [KEY_LEFT_UP] = "KEY_LEFT_UP", + [KEY_LEFT_DOWN] = "KEY_LEFT_DOWN", + [KEY_ROOT_MENU] = "KEY_ROOT_MENU", + [KEY_MEDIA_TOP_MENU] = "KEY_MEDIA_TOP_MENU", + [KEY_NUMERIC_11] = "KEY_NUMERIC_11", + [KEY_NUMERIC_12] = "KEY_NUMERIC_12", + [KEY_AUDIO_DESC] = "KEY_AUDIO_DESC", + [KEY_3D_MODE] = "KEY_3D_MODE", + [KEY_NEXT_FAVORITE] = "KEY_NEXT_FAVORITE", + [KEY_STOP_RECORD] = "KEY_STOP_RECORD", + [KEY_PAUSE_RECORD] = "KEY_PAUSE_RECORD", + [KEY_VOD] = "KEY_VOD", + [KEY_UNMUTE] = "KEY_UNMUTE", + [KEY_FASTREVERSE] = "KEY_FASTREVERSE", + [KEY_SLOWREVERSE] = "KEY_SLOWREVERSE", + [KEY_DATA] = "KEY_DATA", + [KEY_ONSCREEN_KEYBOARD] = "KEY_ONSCREEN_KEYBOARD", + [KEY_PRIVACY_SCREEN_TOGGLE] = "KEY_PRIVACY_SCREEN_TOGGLE", + [KEY_SELECTIVE_SCREENSHOT] = "KEY_SELECTIVE_SCREENSHOT", + // [KEY_NEXT_ELEMENT] = "KEY_NEXT_ELEMENT", + // [KEY_PREVIOUS_ELEMENT] = "KEY_PREVIOUS_ELEMENT", + // [KEY_AUTOPILOT_ENGAGE_TOGGLE] = "KEY_AUTOPILOT_ENGAGE_TOGGLE", + // [KEY_MARK_WAYPOINT] = "KEY_MARK_WAYPOINT", + // [KEY_SOS] = "KEY_SOS", + // [KEY_NAV_CHART] = "KEY_NAV_CHART", + // [KEY_FISHING_CHART] = "KEY_FISHING_CHART", + // [KEY_SINGLE_RANGE_RADAR] = "KEY_SINGLE_RANGE_RADAR", + // [KEY_DUAL_RANGE_RADAR] = "KEY_DUAL_RANGE_RADAR", + // [KEY_RADAR_OVERLAY] = "KEY_RADAR_OVERLAY", + // [KEY_TRADITIONAL_SONAR] = "KEY_TRADITIONAL_SONAR", + // [KEY_CLEARVU_SONAR] = "KEY_CLEARVU_SONAR", + // [KEY_SIDEVU_SONAR] = "KEY_SIDEVU_SONAR", + // [KEY_NAV_INFO] = "KEY_NAV_INFO", + // [KEY_BRIGHTNESS_MENU] = "KEY_BRIGHTNESS_MENU", + [KEY_MACRO1] = "KEY_MACRO1", + [KEY_MACRO2] = "KEY_MACRO2", + [KEY_MACRO3] = "KEY_MACRO3", + [KEY_MACRO4] = "KEY_MACRO4", + [KEY_MACRO5] = "KEY_MACRO5", + [KEY_MACRO6] = "KEY_MACRO6", + [KEY_MACRO7] = "KEY_MACRO7", + [KEY_MACRO8] = "KEY_MACRO8", + [KEY_MACRO9] = "KEY_MACRO9", + [KEY_MACRO10] = "KEY_MACRO10", + [KEY_MACRO11] = "KEY_MACRO11", + [KEY_MACRO12] = "KEY_MACRO12", + [KEY_MACRO13] = "KEY_MACRO13", + [KEY_MACRO14] = "KEY_MACRO14", + [KEY_MACRO15] = "KEY_MACRO15", + [KEY_MACRO16] = "KEY_MACRO16", + [KEY_MACRO17] = "KEY_MACRO17", + [KEY_MACRO18] = "KEY_MACRO18", + [KEY_MACRO19] = "KEY_MACRO19", + [KEY_MACRO20] = "KEY_MACRO20", + [KEY_MACRO21] = "KEY_MACRO21", + [KEY_MACRO22] = "KEY_MACRO22", + [KEY_MACRO23] = "KEY_MACRO23", + [KEY_MACRO24] = "KEY_MACRO24", + [KEY_MACRO25] = "KEY_MACRO25", + [KEY_MACRO26] = "KEY_MACRO26", + [KEY_MACRO27] = "KEY_MACRO27", + [KEY_MACRO28] = "KEY_MACRO28", + [KEY_MACRO29] = "KEY_MACRO29", + [KEY_MACRO30] = "KEY_MACRO30", + [KEY_MACRO_RECORD_START] = "KEY_MACRO_RECORD_START", + [KEY_MACRO_RECORD_STOP] = "KEY_MACRO_RECORD_STOP", + [KEY_MACRO_PRESET_CYCLE] = "KEY_MACRO_PRESET_CYCLE", + [KEY_MACRO_PRESET1] = "KEY_MACRO_PRESET1", + [KEY_MACRO_PRESET2] = "KEY_MACRO_PRESET2", + [KEY_MACRO_PRESET3] = "KEY_MACRO_PRESET3", + [KEY_KBD_LCD_MENU1] = "KEY_KBD_LCD_MENU1", + [KEY_KBD_LCD_MENU2] = "KEY_KBD_LCD_MENU2", + [KEY_KBD_LCD_MENU3] = "KEY_KBD_LCD_MENU3", + [KEY_KBD_LCD_MENU4] = "KEY_KBD_LCD_MENU4", + [KEY_KBD_LCD_MENU5] = "KEY_KBD_LCD_MENU5", + [KEY_MAX] = "KEY_MAX", + [BTN_0] = "BTN_0", + [BTN_1] = "BTN_1", + [BTN_2] = "BTN_2", + [BTN_3] = "BTN_3", + [BTN_4] = "BTN_4", + [BTN_5] = "BTN_5", + [BTN_6] = "BTN_6", + [BTN_7] = "BTN_7", + [BTN_8] = "BTN_8", + [BTN_9] = "BTN_9", + [BTN_LEFT] = "BTN_LEFT", + [BTN_RIGHT] = "BTN_RIGHT", + [BTN_MIDDLE] = "BTN_MIDDLE", + [BTN_SIDE] = "BTN_SIDE", + [BTN_EXTRA] = "BTN_EXTRA", + [BTN_FORWARD] = "BTN_FORWARD", + [BTN_BACK] = "BTN_BACK", + [BTN_TASK] = "BTN_TASK", + [BTN_TRIGGER] = "BTN_TRIGGER", + [BTN_THUMB] = "BTN_THUMB", + [BTN_THUMB2] = "BTN_THUMB2", + [BTN_TOP] = "BTN_TOP", + [BTN_TOP2] = "BTN_TOP2", + [BTN_PINKIE] = "BTN_PINKIE", + [BTN_BASE] = "BTN_BASE", + [BTN_BASE2] = "BTN_BASE2", + [BTN_BASE3] = "BTN_BASE3", + [BTN_BASE4] = "BTN_BASE4", + [BTN_BASE5] = "BTN_BASE5", + [BTN_BASE6] = "BTN_BASE6", + [BTN_DEAD] = "BTN_DEAD", + [BTN_SOUTH] = "BTN_SOUTH", + [BTN_EAST] = "BTN_EAST", + [BTN_C] = "BTN_C", + [BTN_NORTH] = "BTN_NORTH", + [BTN_WEST] = "BTN_WEST", + [BTN_Z] = "BTN_Z", + [BTN_TL] = "BTN_TL", + [BTN_TR] = "BTN_TR", + [BTN_TL2] = "BTN_TL2", + [BTN_TR2] = "BTN_TR2", + [BTN_SELECT] = "BTN_SELECT", + [BTN_START] = "BTN_START", + [BTN_MODE] = "BTN_MODE", + [BTN_THUMBL] = "BTN_THUMBL", + [BTN_THUMBR] = "BTN_THUMBR", + [BTN_TOOL_PEN] = "BTN_TOOL_PEN", + [BTN_TOOL_RUBBER] = "BTN_TOOL_RUBBER", + [BTN_TOOL_BRUSH] = "BTN_TOOL_BRUSH", + [BTN_TOOL_PENCIL] = "BTN_TOOL_PENCIL", + [BTN_TOOL_AIRBRUSH] = "BTN_TOOL_AIRBRUSH", + [BTN_TOOL_FINGER] = "BTN_TOOL_FINGER", + [BTN_TOOL_MOUSE] = "BTN_TOOL_MOUSE", + [BTN_TOOL_LENS] = "BTN_TOOL_LENS", + [BTN_TOOL_QUINTTAP] = "BTN_TOOL_QUINTTAP", + [BTN_STYLUS3] = "BTN_STYLUS3", + [BTN_TOUCH] = "BTN_TOUCH", + [BTN_STYLUS] = "BTN_STYLUS", + [BTN_STYLUS2] = "BTN_STYLUS2", + [BTN_TOOL_DOUBLETAP] = "BTN_TOOL_DOUBLETAP", + [BTN_TOOL_TRIPLETAP] = "BTN_TOOL_TRIPLETAP", + [BTN_TOOL_QUADTAP] = "BTN_TOOL_QUADTAP", + [BTN_GEAR_DOWN] = "BTN_GEAR_DOWN", + [BTN_GEAR_UP] = "BTN_GEAR_UP", + [BTN_DPAD_UP] = "BTN_DPAD_UP", + [BTN_DPAD_DOWN] = "BTN_DPAD_DOWN", + [BTN_DPAD_LEFT] = "BTN_DPAD_LEFT", + [BTN_DPAD_RIGHT] = "BTN_DPAD_RIGHT", + [BTN_TRIGGER_HAPPY1] = "BTN_TRIGGER_HAPPY1", + [BTN_TRIGGER_HAPPY2] = "BTN_TRIGGER_HAPPY2", + [BTN_TRIGGER_HAPPY3] = "BTN_TRIGGER_HAPPY3", + [BTN_TRIGGER_HAPPY4] = "BTN_TRIGGER_HAPPY4", + [BTN_TRIGGER_HAPPY5] = "BTN_TRIGGER_HAPPY5", + [BTN_TRIGGER_HAPPY6] = "BTN_TRIGGER_HAPPY6", + [BTN_TRIGGER_HAPPY7] = "BTN_TRIGGER_HAPPY7", + [BTN_TRIGGER_HAPPY8] = "BTN_TRIGGER_HAPPY8", + [BTN_TRIGGER_HAPPY9] = "BTN_TRIGGER_HAPPY9", + [BTN_TRIGGER_HAPPY10] = "BTN_TRIGGER_HAPPY10", + [BTN_TRIGGER_HAPPY11] = "BTN_TRIGGER_HAPPY11", + [BTN_TRIGGER_HAPPY12] = "BTN_TRIGGER_HAPPY12", + [BTN_TRIGGER_HAPPY13] = "BTN_TRIGGER_HAPPY13", + [BTN_TRIGGER_HAPPY14] = "BTN_TRIGGER_HAPPY14", + [BTN_TRIGGER_HAPPY15] = "BTN_TRIGGER_HAPPY15", + [BTN_TRIGGER_HAPPY16] = "BTN_TRIGGER_HAPPY16", + [BTN_TRIGGER_HAPPY17] = "BTN_TRIGGER_HAPPY17", + [BTN_TRIGGER_HAPPY18] = "BTN_TRIGGER_HAPPY18", + [BTN_TRIGGER_HAPPY19] = "BTN_TRIGGER_HAPPY19", + [BTN_TRIGGER_HAPPY20] = "BTN_TRIGGER_HAPPY20", + [BTN_TRIGGER_HAPPY21] = "BTN_TRIGGER_HAPPY21", + [BTN_TRIGGER_HAPPY22] = "BTN_TRIGGER_HAPPY22", + [BTN_TRIGGER_HAPPY23] = "BTN_TRIGGER_HAPPY23", + [BTN_TRIGGER_HAPPY24] = "BTN_TRIGGER_HAPPY24", + [BTN_TRIGGER_HAPPY25] = "BTN_TRIGGER_HAPPY25", + [BTN_TRIGGER_HAPPY26] = "BTN_TRIGGER_HAPPY26", + [BTN_TRIGGER_HAPPY27] = "BTN_TRIGGER_HAPPY27", + [BTN_TRIGGER_HAPPY28] = "BTN_TRIGGER_HAPPY28", + [BTN_TRIGGER_HAPPY29] = "BTN_TRIGGER_HAPPY29", + [BTN_TRIGGER_HAPPY30] = "BTN_TRIGGER_HAPPY30", + [BTN_TRIGGER_HAPPY31] = "BTN_TRIGGER_HAPPY31", + [BTN_TRIGGER_HAPPY32] = "BTN_TRIGGER_HAPPY32", + [BTN_TRIGGER_HAPPY33] = "BTN_TRIGGER_HAPPY33", + [BTN_TRIGGER_HAPPY34] = "BTN_TRIGGER_HAPPY34", + [BTN_TRIGGER_HAPPY35] = "BTN_TRIGGER_HAPPY35", + [BTN_TRIGGER_HAPPY36] = "BTN_TRIGGER_HAPPY36", + [BTN_TRIGGER_HAPPY37] = "BTN_TRIGGER_HAPPY37", + [BTN_TRIGGER_HAPPY38] = "BTN_TRIGGER_HAPPY38", + [BTN_TRIGGER_HAPPY39] = "BTN_TRIGGER_HAPPY39", + [BTN_TRIGGER_HAPPY40] = "BTN_TRIGGER_HAPPY40", +}; + +static const char * const led_map[LED_MAX + 1] = { + [LED_NUML] = "LED_NUML", + [LED_CAPSL] = "LED_CAPSL", + [LED_SCROLLL] = "LED_SCROLLL", + [LED_COMPOSE] = "LED_COMPOSE", + [LED_KANA] = "LED_KANA", + [LED_SLEEP] = "LED_SLEEP", + [LED_SUSPEND] = "LED_SUSPEND", + [LED_MUTE] = "LED_MUTE", + [LED_MISC] = "LED_MISC", + [LED_MAIL] = "LED_MAIL", + [LED_CHARGING] = "LED_CHARGING", + [LED_MAX] = "LED_MAX", +}; + +static const char * const snd_map[SND_MAX + 1] = { + [SND_CLICK] = "SND_CLICK", + [SND_BELL] = "SND_BELL", + [SND_TONE] = "SND_TONE", + [SND_MAX] = "SND_MAX", +}; + +static const char * const msc_map[MSC_MAX + 1] = { + [MSC_SERIAL] = "MSC_SERIAL", + [MSC_PULSELED] = "MSC_PULSELED", + [MSC_GESTURE] = "MSC_GESTURE", + [MSC_RAW] = "MSC_RAW", + [MSC_SCAN] = "MSC_SCAN", + [MSC_TIMESTAMP] = "MSC_TIMESTAMP", + [MSC_MAX] = "MSC_MAX", +}; + +static const char * const sw_map[SW_MAX + 1] = { + [SW_LID] = "SW_LID", + [SW_TABLET_MODE] = "SW_TABLET_MODE", + [SW_HEADPHONE_INSERT] = "SW_HEADPHONE_INSERT", + [SW_RFKILL_ALL] = "SW_RFKILL_ALL", + [SW_MICROPHONE_INSERT] = "SW_MICROPHONE_INSERT", + [SW_DOCK] = "SW_DOCK", + [SW_LINEOUT_INSERT] = "SW_LINEOUT_INSERT", + [SW_JACK_PHYSICAL_INSERT] = "SW_JACK_PHYSICAL_INSERT", + [SW_VIDEOOUT_INSERT] = "SW_VIDEOOUT_INSERT", + [SW_CAMERA_LENS_COVER] = "SW_CAMERA_LENS_COVER", + [SW_KEYPAD_SLIDE] = "SW_KEYPAD_SLIDE", + [SW_FRONT_PROXIMITY] = "SW_FRONT_PROXIMITY", + [SW_ROTATE_LOCK] = "SW_ROTATE_LOCK", + [SW_LINEIN_INSERT] = "SW_LINEIN_INSERT", + [SW_MUTE_DEVICE] = "SW_MUTE_DEVICE", + [SW_PEN_INSERTED] = "SW_PEN_INSERTED", + [SW_MACHINE_COVER] = "SW_MACHINE_COVER", +}; + +static const char * const ff_map[FF_MAX + 1] = { + [FF_STATUS_STOPPED] = "FF_STATUS_STOPPED", + [FF_STATUS_MAX] = "FF_STATUS_MAX", + [FF_RUMBLE] = "FF_RUMBLE", + [FF_PERIODIC] = "FF_PERIODIC", + [FF_CONSTANT] = "FF_CONSTANT", + [FF_SPRING] = "FF_SPRING", + [FF_FRICTION] = "FF_FRICTION", + [FF_DAMPER] = "FF_DAMPER", + [FF_INERTIA] = "FF_INERTIA", + [FF_RAMP] = "FF_RAMP", + [FF_SQUARE] = "FF_SQUARE", + [FF_TRIANGLE] = "FF_TRIANGLE", + [FF_SINE] = "FF_SINE", + [FF_SAW_UP] = "FF_SAW_UP", + [FF_SAW_DOWN] = "FF_SAW_DOWN", + [FF_CUSTOM] = "FF_CUSTOM", + [FF_GAIN] = "FF_GAIN", + [FF_AUTOCENTER] = "FF_AUTOCENTER", + [FF_MAX] = "FF_MAX", +}; + +static const char * const syn_map[SYN_MAX + 1] = { + [SYN_REPORT] = "SYN_REPORT", + [SYN_CONFIG] = "SYN_CONFIG", + [SYN_MT_REPORT] = "SYN_MT_REPORT", + [SYN_DROPPED] = "SYN_DROPPED", + [SYN_MAX] = "SYN_MAX", +}; + +static const char * const rep_map[REP_MAX + 1] = { + [REP_DELAY] = "REP_DELAY", + [REP_PERIOD] = "REP_PERIOD", +}; + +static const char * const input_prop_map[INPUT_PROP_MAX + 1] = { + [INPUT_PROP_POINTER] = "INPUT_PROP_POINTER", + [INPUT_PROP_DIRECT] = "INPUT_PROP_DIRECT", + [INPUT_PROP_BUTTONPAD] = "INPUT_PROP_BUTTONPAD", + [INPUT_PROP_SEMI_MT] = "INPUT_PROP_SEMI_MT", + [INPUT_PROP_TOPBUTTONPAD] = "INPUT_PROP_TOPBUTTONPAD", + [INPUT_PROP_POINTING_STICK] = "INPUT_PROP_POINTING_STICK", + [INPUT_PROP_ACCELEROMETER] = "INPUT_PROP_ACCELEROMETER", + [INPUT_PROP_MAX] = "INPUT_PROP_MAX", +}; + +static const char * const mt_tool_map[MT_TOOL_MAX + 1] = { + [MT_TOOL_FINGER] = "MT_TOOL_FINGER", + [MT_TOOL_PEN] = "MT_TOOL_PEN", + [MT_TOOL_PALM] = "MT_TOOL_PALM", + [MT_TOOL_DIAL] = "MT_TOOL_DIAL", + [MT_TOOL_MAX] = "MT_TOOL_MAX", +}; + +static const char * const * const event_type_map[EV_MAX + 1] = { + [EV_REL] = rel_map, + [EV_ABS] = abs_map, + [EV_KEY] = key_map, + [EV_LED] = led_map, + [EV_SND] = snd_map, + [EV_MSC] = msc_map, + [EV_SW] = sw_map, + [EV_FF] = ff_map, + [EV_SYN] = syn_map, + [EV_REP] = rep_map, +}; + +#if __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Winitializer-overrides" +#elif __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Woverride-init" +#endif +static const int ev_max[EV_MAX + 1] = { + SYN_MAX, + KEY_MAX, + REL_MAX, + ABS_MAX, + MSC_MAX, + SW_MAX, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + LED_MAX, + SND_MAX, + -1, + REP_MAX, + FF_MAX, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, +}; +#if __clang__ +#pragma clang diagnostic pop /* "-Winitializer-overrides" */ +#elif __GNUC__ +#pragma GCC diagnostic pop /* "-Woverride-init" */ +#endif + +struct name_entry { + const char *name; + unsigned int value; +}; + +static const struct name_entry tool_type_names[] = { + { .name = "MT_TOOL_DIAL", .value = MT_TOOL_DIAL }, + { .name = "MT_TOOL_FINGER", .value = MT_TOOL_FINGER }, + { .name = "MT_TOOL_MAX", .value = MT_TOOL_MAX }, + { .name = "MT_TOOL_PALM", .value = MT_TOOL_PALM }, + { .name = "MT_TOOL_PEN", .value = MT_TOOL_PEN }, +}; + +static const struct name_entry ev_names[] = { + { .name = "EV_ABS", .value = EV_ABS }, + { .name = "EV_FF", .value = EV_FF }, + { .name = "EV_FF_STATUS", .value = EV_FF_STATUS }, + { .name = "EV_KEY", .value = EV_KEY }, + { .name = "EV_LED", .value = EV_LED }, + { .name = "EV_MAX", .value = EV_MAX }, + { .name = "EV_MSC", .value = EV_MSC }, + { .name = "EV_PWR", .value = EV_PWR }, + { .name = "EV_REL", .value = EV_REL }, + { .name = "EV_REP", .value = EV_REP }, + { .name = "EV_SND", .value = EV_SND }, + { .name = "EV_SW", .value = EV_SW }, + { .name = "EV_SYN", .value = EV_SYN }, +}; + +static const struct name_entry code_names[] = { + { .name = "ABS_BRAKE", .value = ABS_BRAKE }, + { .name = "ABS_DISTANCE", .value = ABS_DISTANCE }, + { .name = "ABS_GAS", .value = ABS_GAS }, + { .name = "ABS_HAT0X", .value = ABS_HAT0X }, + { .name = "ABS_HAT0Y", .value = ABS_HAT0Y }, + { .name = "ABS_HAT1X", .value = ABS_HAT1X }, + { .name = "ABS_HAT1Y", .value = ABS_HAT1Y }, + { .name = "ABS_HAT2X", .value = ABS_HAT2X }, + { .name = "ABS_HAT2Y", .value = ABS_HAT2Y }, + { .name = "ABS_HAT3X", .value = ABS_HAT3X }, + { .name = "ABS_HAT3Y", .value = ABS_HAT3Y }, + { .name = "ABS_MAX", .value = ABS_MAX }, + { .name = "ABS_MISC", .value = ABS_MISC }, + { .name = "ABS_MT_BLOB_ID", .value = ABS_MT_BLOB_ID }, + { .name = "ABS_MT_DISTANCE", .value = ABS_MT_DISTANCE }, + { .name = "ABS_MT_ORIENTATION", .value = ABS_MT_ORIENTATION }, + { .name = "ABS_MT_POSITION_X", .value = ABS_MT_POSITION_X }, + { .name = "ABS_MT_POSITION_Y", .value = ABS_MT_POSITION_Y }, + { .name = "ABS_MT_PRESSURE", .value = ABS_MT_PRESSURE }, + { .name = "ABS_MT_SLOT", .value = ABS_MT_SLOT }, + { .name = "ABS_MT_TOOL_TYPE", .value = ABS_MT_TOOL_TYPE }, + { .name = "ABS_MT_TOOL_X", .value = ABS_MT_TOOL_X }, + { .name = "ABS_MT_TOOL_Y", .value = ABS_MT_TOOL_Y }, + { .name = "ABS_MT_TOUCH_MAJOR", .value = ABS_MT_TOUCH_MAJOR }, + { .name = "ABS_MT_TOUCH_MINOR", .value = ABS_MT_TOUCH_MINOR }, + { .name = "ABS_MT_TRACKING_ID", .value = ABS_MT_TRACKING_ID }, + { .name = "ABS_MT_WIDTH_MAJOR", .value = ABS_MT_WIDTH_MAJOR }, + { .name = "ABS_MT_WIDTH_MINOR", .value = ABS_MT_WIDTH_MINOR }, + { .name = "ABS_PRESSURE", .value = ABS_PRESSURE }, + // { .name = "ABS_PROFILE", .value = ABS_PROFILE }, + { .name = "ABS_RESERVED", .value = ABS_RESERVED }, + { .name = "ABS_RUDDER", .value = ABS_RUDDER }, + { .name = "ABS_RX", .value = ABS_RX }, + { .name = "ABS_RY", .value = ABS_RY }, + { .name = "ABS_RZ", .value = ABS_RZ }, + { .name = "ABS_THROTTLE", .value = ABS_THROTTLE }, + { .name = "ABS_TILT_X", .value = ABS_TILT_X }, + { .name = "ABS_TILT_Y", .value = ABS_TILT_Y }, + { .name = "ABS_TOOL_WIDTH", .value = ABS_TOOL_WIDTH }, + { .name = "ABS_VOLUME", .value = ABS_VOLUME }, + { .name = "ABS_WHEEL", .value = ABS_WHEEL }, + { .name = "ABS_X", .value = ABS_X }, + { .name = "ABS_Y", .value = ABS_Y }, + { .name = "ABS_Z", .value = ABS_Z }, + { .name = "BTN_0", .value = BTN_0 }, + { .name = "BTN_1", .value = BTN_1 }, + { .name = "BTN_2", .value = BTN_2 }, + { .name = "BTN_3", .value = BTN_3 }, + { .name = "BTN_4", .value = BTN_4 }, + { .name = "BTN_5", .value = BTN_5 }, + { .name = "BTN_6", .value = BTN_6 }, + { .name = "BTN_7", .value = BTN_7 }, + { .name = "BTN_8", .value = BTN_8 }, + { .name = "BTN_9", .value = BTN_9 }, + { .name = "BTN_A", .value = BTN_A }, + { .name = "BTN_B", .value = BTN_B }, + { .name = "BTN_BACK", .value = BTN_BACK }, + { .name = "BTN_BASE", .value = BTN_BASE }, + { .name = "BTN_BASE2", .value = BTN_BASE2 }, + { .name = "BTN_BASE3", .value = BTN_BASE3 }, + { .name = "BTN_BASE4", .value = BTN_BASE4 }, + { .name = "BTN_BASE5", .value = BTN_BASE5 }, + { .name = "BTN_BASE6", .value = BTN_BASE6 }, + { .name = "BTN_C", .value = BTN_C }, + { .name = "BTN_DEAD", .value = BTN_DEAD }, + { .name = "BTN_DPAD_DOWN", .value = BTN_DPAD_DOWN }, + { .name = "BTN_DPAD_LEFT", .value = BTN_DPAD_LEFT }, + { .name = "BTN_DPAD_RIGHT", .value = BTN_DPAD_RIGHT }, + { .name = "BTN_DPAD_UP", .value = BTN_DPAD_UP }, + { .name = "BTN_EAST", .value = BTN_EAST }, + { .name = "BTN_EXTRA", .value = BTN_EXTRA }, + { .name = "BTN_FORWARD", .value = BTN_FORWARD }, + { .name = "BTN_GEAR_DOWN", .value = BTN_GEAR_DOWN }, + { .name = "BTN_GEAR_UP", .value = BTN_GEAR_UP }, + { .name = "BTN_LEFT", .value = BTN_LEFT }, + { .name = "BTN_MIDDLE", .value = BTN_MIDDLE }, + { .name = "BTN_MODE", .value = BTN_MODE }, + { .name = "BTN_NORTH", .value = BTN_NORTH }, + { .name = "BTN_PINKIE", .value = BTN_PINKIE }, + { .name = "BTN_RIGHT", .value = BTN_RIGHT }, + { .name = "BTN_SELECT", .value = BTN_SELECT }, + { .name = "BTN_SIDE", .value = BTN_SIDE }, + { .name = "BTN_SOUTH", .value = BTN_SOUTH }, + { .name = "BTN_START", .value = BTN_START }, + { .name = "BTN_STYLUS", .value = BTN_STYLUS }, + { .name = "BTN_STYLUS2", .value = BTN_STYLUS2 }, + { .name = "BTN_STYLUS3", .value = BTN_STYLUS3 }, + { .name = "BTN_TASK", .value = BTN_TASK }, + { .name = "BTN_THUMB", .value = BTN_THUMB }, + { .name = "BTN_THUMB2", .value = BTN_THUMB2 }, + { .name = "BTN_THUMBL", .value = BTN_THUMBL }, + { .name = "BTN_THUMBR", .value = BTN_THUMBR }, + { .name = "BTN_TL", .value = BTN_TL }, + { .name = "BTN_TL2", .value = BTN_TL2 }, + { .name = "BTN_TOOL_AIRBRUSH", .value = BTN_TOOL_AIRBRUSH }, + { .name = "BTN_TOOL_BRUSH", .value = BTN_TOOL_BRUSH }, + { .name = "BTN_TOOL_DOUBLETAP", .value = BTN_TOOL_DOUBLETAP }, + { .name = "BTN_TOOL_FINGER", .value = BTN_TOOL_FINGER }, + { .name = "BTN_TOOL_LENS", .value = BTN_TOOL_LENS }, + { .name = "BTN_TOOL_MOUSE", .value = BTN_TOOL_MOUSE }, + { .name = "BTN_TOOL_PEN", .value = BTN_TOOL_PEN }, + { .name = "BTN_TOOL_PENCIL", .value = BTN_TOOL_PENCIL }, + { .name = "BTN_TOOL_QUADTAP", .value = BTN_TOOL_QUADTAP }, + { .name = "BTN_TOOL_QUINTTAP", .value = BTN_TOOL_QUINTTAP }, + { .name = "BTN_TOOL_RUBBER", .value = BTN_TOOL_RUBBER }, + { .name = "BTN_TOOL_TRIPLETAP", .value = BTN_TOOL_TRIPLETAP }, + { .name = "BTN_TOP", .value = BTN_TOP }, + { .name = "BTN_TOP2", .value = BTN_TOP2 }, + { .name = "BTN_TOUCH", .value = BTN_TOUCH }, + { .name = "BTN_TR", .value = BTN_TR }, + { .name = "BTN_TR2", .value = BTN_TR2 }, + { .name = "BTN_TRIGGER", .value = BTN_TRIGGER }, + { .name = "BTN_TRIGGER_HAPPY1", .value = BTN_TRIGGER_HAPPY1 }, + { .name = "BTN_TRIGGER_HAPPY10", .value = BTN_TRIGGER_HAPPY10 }, + { .name = "BTN_TRIGGER_HAPPY11", .value = BTN_TRIGGER_HAPPY11 }, + { .name = "BTN_TRIGGER_HAPPY12", .value = BTN_TRIGGER_HAPPY12 }, + { .name = "BTN_TRIGGER_HAPPY13", .value = BTN_TRIGGER_HAPPY13 }, + { .name = "BTN_TRIGGER_HAPPY14", .value = BTN_TRIGGER_HAPPY14 }, + { .name = "BTN_TRIGGER_HAPPY15", .value = BTN_TRIGGER_HAPPY15 }, + { .name = "BTN_TRIGGER_HAPPY16", .value = BTN_TRIGGER_HAPPY16 }, + { .name = "BTN_TRIGGER_HAPPY17", .value = BTN_TRIGGER_HAPPY17 }, + { .name = "BTN_TRIGGER_HAPPY18", .value = BTN_TRIGGER_HAPPY18 }, + { .name = "BTN_TRIGGER_HAPPY19", .value = BTN_TRIGGER_HAPPY19 }, + { .name = "BTN_TRIGGER_HAPPY2", .value = BTN_TRIGGER_HAPPY2 }, + { .name = "BTN_TRIGGER_HAPPY20", .value = BTN_TRIGGER_HAPPY20 }, + { .name = "BTN_TRIGGER_HAPPY21", .value = BTN_TRIGGER_HAPPY21 }, + { .name = "BTN_TRIGGER_HAPPY22", .value = BTN_TRIGGER_HAPPY22 }, + { .name = "BTN_TRIGGER_HAPPY23", .value = BTN_TRIGGER_HAPPY23 }, + { .name = "BTN_TRIGGER_HAPPY24", .value = BTN_TRIGGER_HAPPY24 }, + { .name = "BTN_TRIGGER_HAPPY25", .value = BTN_TRIGGER_HAPPY25 }, + { .name = "BTN_TRIGGER_HAPPY26", .value = BTN_TRIGGER_HAPPY26 }, + { .name = "BTN_TRIGGER_HAPPY27", .value = BTN_TRIGGER_HAPPY27 }, + { .name = "BTN_TRIGGER_HAPPY28", .value = BTN_TRIGGER_HAPPY28 }, + { .name = "BTN_TRIGGER_HAPPY29", .value = BTN_TRIGGER_HAPPY29 }, + { .name = "BTN_TRIGGER_HAPPY3", .value = BTN_TRIGGER_HAPPY3 }, + { .name = "BTN_TRIGGER_HAPPY30", .value = BTN_TRIGGER_HAPPY30 }, + { .name = "BTN_TRIGGER_HAPPY31", .value = BTN_TRIGGER_HAPPY31 }, + { .name = "BTN_TRIGGER_HAPPY32", .value = BTN_TRIGGER_HAPPY32 }, + { .name = "BTN_TRIGGER_HAPPY33", .value = BTN_TRIGGER_HAPPY33 }, + { .name = "BTN_TRIGGER_HAPPY34", .value = BTN_TRIGGER_HAPPY34 }, + { .name = "BTN_TRIGGER_HAPPY35", .value = BTN_TRIGGER_HAPPY35 }, + { .name = "BTN_TRIGGER_HAPPY36", .value = BTN_TRIGGER_HAPPY36 }, + { .name = "BTN_TRIGGER_HAPPY37", .value = BTN_TRIGGER_HAPPY37 }, + { .name = "BTN_TRIGGER_HAPPY38", .value = BTN_TRIGGER_HAPPY38 }, + { .name = "BTN_TRIGGER_HAPPY39", .value = BTN_TRIGGER_HAPPY39 }, + { .name = "BTN_TRIGGER_HAPPY4", .value = BTN_TRIGGER_HAPPY4 }, + { .name = "BTN_TRIGGER_HAPPY40", .value = BTN_TRIGGER_HAPPY40 }, + { .name = "BTN_TRIGGER_HAPPY5", .value = BTN_TRIGGER_HAPPY5 }, + { .name = "BTN_TRIGGER_HAPPY6", .value = BTN_TRIGGER_HAPPY6 }, + { .name = "BTN_TRIGGER_HAPPY7", .value = BTN_TRIGGER_HAPPY7 }, + { .name = "BTN_TRIGGER_HAPPY8", .value = BTN_TRIGGER_HAPPY8 }, + { .name = "BTN_TRIGGER_HAPPY9", .value = BTN_TRIGGER_HAPPY9 }, + { .name = "BTN_WEST", .value = BTN_WEST }, + { .name = "BTN_X", .value = BTN_X }, + { .name = "BTN_Y", .value = BTN_Y }, + { .name = "BTN_Z", .value = BTN_Z }, + { .name = "FF_AUTOCENTER", .value = FF_AUTOCENTER }, + { .name = "FF_CONSTANT", .value = FF_CONSTANT }, + { .name = "FF_CUSTOM", .value = FF_CUSTOM }, + { .name = "FF_DAMPER", .value = FF_DAMPER }, + { .name = "FF_FRICTION", .value = FF_FRICTION }, + { .name = "FF_GAIN", .value = FF_GAIN }, + { .name = "FF_INERTIA", .value = FF_INERTIA }, + { .name = "FF_MAX", .value = FF_MAX }, + { .name = "FF_PERIODIC", .value = FF_PERIODIC }, + { .name = "FF_RAMP", .value = FF_RAMP }, + { .name = "FF_RUMBLE", .value = FF_RUMBLE }, + { .name = "FF_SAW_DOWN", .value = FF_SAW_DOWN }, + { .name = "FF_SAW_UP", .value = FF_SAW_UP }, + { .name = "FF_SINE", .value = FF_SINE }, + { .name = "FF_SPRING", .value = FF_SPRING }, + { .name = "FF_SQUARE", .value = FF_SQUARE }, + { .name = "FF_STATUS_MAX", .value = FF_STATUS_MAX }, + { .name = "FF_STATUS_STOPPED", .value = FF_STATUS_STOPPED }, + { .name = "FF_TRIANGLE", .value = FF_TRIANGLE }, + { .name = "KEY_0", .value = KEY_0 }, + { .name = "KEY_1", .value = KEY_1 }, + { .name = "KEY_102ND", .value = KEY_102ND }, + { .name = "KEY_10CHANNELSDOWN", .value = KEY_10CHANNELSDOWN }, + { .name = "KEY_10CHANNELSUP", .value = KEY_10CHANNELSUP }, + { .name = "KEY_2", .value = KEY_2 }, + { .name = "KEY_3", .value = KEY_3 }, + { .name = "KEY_3D_MODE", .value = KEY_3D_MODE }, + { .name = "KEY_4", .value = KEY_4 }, + { .name = "KEY_5", .value = KEY_5 }, + { .name = "KEY_6", .value = KEY_6 }, + { .name = "KEY_7", .value = KEY_7 }, + { .name = "KEY_8", .value = KEY_8 }, + { .name = "KEY_9", .value = KEY_9 }, + { .name = "KEY_A", .value = KEY_A }, + { .name = "KEY_AB", .value = KEY_AB }, + { .name = "KEY_ADDRESSBOOK", .value = KEY_ADDRESSBOOK }, + { .name = "KEY_AGAIN", .value = KEY_AGAIN }, + // { .name = "KEY_ALL_APPLICATIONS", .value = KEY_ALL_APPLICATIONS }, + { .name = "KEY_ALS_TOGGLE", .value = KEY_ALS_TOGGLE }, + { .name = "KEY_ALTERASE", .value = KEY_ALTERASE }, + { .name = "KEY_ANGLE", .value = KEY_ANGLE }, + { .name = "KEY_APOSTROPHE", .value = KEY_APOSTROPHE }, + { .name = "KEY_APPSELECT", .value = KEY_APPSELECT }, + { .name = "KEY_ARCHIVE", .value = KEY_ARCHIVE }, + { .name = "KEY_ASPECT_RATIO", .value = KEY_ASPECT_RATIO }, + { .name = "KEY_ASSISTANT", .value = KEY_ASSISTANT }, + { .name = "KEY_ATTENDANT_OFF", .value = KEY_ATTENDANT_OFF }, + { .name = "KEY_ATTENDANT_ON", .value = KEY_ATTENDANT_ON }, + { .name = "KEY_ATTENDANT_TOGGLE", .value = KEY_ATTENDANT_TOGGLE }, + { .name = "KEY_AUDIO", .value = KEY_AUDIO }, + { .name = "KEY_AUDIO_DESC", .value = KEY_AUDIO_DESC }, + // { .name = "KEY_AUTOPILOT_ENGAGE_TOGGLE", .value = KEY_AUTOPILOT_ENGAGE_TOGGLE }, + { .name = "KEY_AUX", .value = KEY_AUX }, + { .name = "KEY_B", .value = KEY_B }, + { .name = "KEY_BACK", .value = KEY_BACK }, + { .name = "KEY_BACKSLASH", .value = KEY_BACKSLASH }, + { .name = "KEY_BACKSPACE", .value = KEY_BACKSPACE }, + { .name = "KEY_BASSBOOST", .value = KEY_BASSBOOST }, + { .name = "KEY_BATTERY", .value = KEY_BATTERY }, + { .name = "KEY_BLUE", .value = KEY_BLUE }, + { .name = "KEY_BLUETOOTH", .value = KEY_BLUETOOTH }, + { .name = "KEY_BOOKMARKS", .value = KEY_BOOKMARKS }, + { .name = "KEY_BREAK", .value = KEY_BREAK }, + { .name = "KEY_BRIGHTNESSDOWN", .value = KEY_BRIGHTNESSDOWN }, + { .name = "KEY_BRIGHTNESSUP", .value = KEY_BRIGHTNESSUP }, + { .name = "KEY_BRIGHTNESS_AUTO", .value = KEY_BRIGHTNESS_AUTO }, + { .name = "KEY_BRIGHTNESS_CYCLE", .value = KEY_BRIGHTNESS_CYCLE }, + { .name = "KEY_BRIGHTNESS_MAX", .value = KEY_BRIGHTNESS_MAX }, + // { .name = "KEY_BRIGHTNESS_MENU", .value = KEY_BRIGHTNESS_MENU }, + { .name = "KEY_BRIGHTNESS_MIN", .value = KEY_BRIGHTNESS_MIN }, + { .name = "KEY_BRL_DOT1", .value = KEY_BRL_DOT1 }, + { .name = "KEY_BRL_DOT10", .value = KEY_BRL_DOT10 }, + { .name = "KEY_BRL_DOT2", .value = KEY_BRL_DOT2 }, + { .name = "KEY_BRL_DOT3", .value = KEY_BRL_DOT3 }, + { .name = "KEY_BRL_DOT4", .value = KEY_BRL_DOT4 }, + { .name = "KEY_BRL_DOT5", .value = KEY_BRL_DOT5 }, + { .name = "KEY_BRL_DOT6", .value = KEY_BRL_DOT6 }, + { .name = "KEY_BRL_DOT7", .value = KEY_BRL_DOT7 }, + { .name = "KEY_BRL_DOT8", .value = KEY_BRL_DOT8 }, + { .name = "KEY_BRL_DOT9", .value = KEY_BRL_DOT9 }, + { .name = "KEY_BUTTONCONFIG", .value = KEY_BUTTONCONFIG }, + { .name = "KEY_C", .value = KEY_C }, + { .name = "KEY_CALC", .value = KEY_CALC }, + { .name = "KEY_CALENDAR", .value = KEY_CALENDAR }, + { .name = "KEY_CAMERA", .value = KEY_CAMERA }, + // { .name = "KEY_CAMERA_ACCESS_DISABLE", .value = KEY_CAMERA_ACCESS_DISABLE }, + // { .name = "KEY_CAMERA_ACCESS_ENABLE", .value = KEY_CAMERA_ACCESS_ENABLE }, + // { .name = "KEY_CAMERA_ACCESS_TOGGLE", .value = KEY_CAMERA_ACCESS_TOGGLE }, + { .name = "KEY_CAMERA_DOWN", .value = KEY_CAMERA_DOWN }, + { .name = "KEY_CAMERA_FOCUS", .value = KEY_CAMERA_FOCUS }, + { .name = "KEY_CAMERA_LEFT", .value = KEY_CAMERA_LEFT }, + { .name = "KEY_CAMERA_RIGHT", .value = KEY_CAMERA_RIGHT }, + { .name = "KEY_CAMERA_UP", .value = KEY_CAMERA_UP }, + { .name = "KEY_CAMERA_ZOOMIN", .value = KEY_CAMERA_ZOOMIN }, + { .name = "KEY_CAMERA_ZOOMOUT", .value = KEY_CAMERA_ZOOMOUT }, + { .name = "KEY_CANCEL", .value = KEY_CANCEL }, + { .name = "KEY_CAPSLOCK", .value = KEY_CAPSLOCK }, + { .name = "KEY_CD", .value = KEY_CD }, + { .name = "KEY_CHANNEL", .value = KEY_CHANNEL }, + { .name = "KEY_CHANNELDOWN", .value = KEY_CHANNELDOWN }, + { .name = "KEY_CHANNELUP", .value = KEY_CHANNELUP }, + { .name = "KEY_CHAT", .value = KEY_CHAT }, + { .name = "KEY_CLEAR", .value = KEY_CLEAR }, + // { .name = "KEY_CLEARVU_SONAR", .value = KEY_CLEARVU_SONAR }, + { .name = "KEY_CLOSE", .value = KEY_CLOSE }, + { .name = "KEY_CLOSECD", .value = KEY_CLOSECD }, + { .name = "KEY_COFFEE", .value = KEY_COFFEE }, + { .name = "KEY_COMMA", .value = KEY_COMMA }, + { .name = "KEY_COMPOSE", .value = KEY_COMPOSE }, + { .name = "KEY_COMPUTER", .value = KEY_COMPUTER }, + { .name = "KEY_CONFIG", .value = KEY_CONFIG }, + { .name = "KEY_CONNECT", .value = KEY_CONNECT }, + { .name = "KEY_CONTEXT_MENU", .value = KEY_CONTEXT_MENU }, + { .name = "KEY_CONTROLPANEL", .value = KEY_CONTROLPANEL }, + { .name = "KEY_COPY", .value = KEY_COPY }, + { .name = "KEY_CUT", .value = KEY_CUT }, + { .name = "KEY_CYCLEWINDOWS", .value = KEY_CYCLEWINDOWS }, + { .name = "KEY_D", .value = KEY_D }, + { .name = "KEY_DATA", .value = KEY_DATA }, + { .name = "KEY_DATABASE", .value = KEY_DATABASE }, + { .name = "KEY_DELETE", .value = KEY_DELETE }, + { .name = "KEY_DELETEFILE", .value = KEY_DELETEFILE }, + { .name = "KEY_DEL_EOL", .value = KEY_DEL_EOL }, + { .name = "KEY_DEL_EOS", .value = KEY_DEL_EOS }, + { .name = "KEY_DEL_LINE", .value = KEY_DEL_LINE }, + // { .name = "KEY_DICTATE", .value = KEY_DICTATE }, + { .name = "KEY_DIGITS", .value = KEY_DIGITS }, + { .name = "KEY_DIRECTORY", .value = KEY_DIRECTORY }, + { .name = "KEY_DISPLAYTOGGLE", .value = KEY_DISPLAYTOGGLE }, + { .name = "KEY_DISPLAY_OFF", .value = KEY_DISPLAY_OFF }, + { .name = "KEY_DOCUMENTS", .value = KEY_DOCUMENTS }, + { .name = "KEY_DOLLAR", .value = KEY_DOLLAR }, + { .name = "KEY_DOT", .value = KEY_DOT }, + { .name = "KEY_DOWN", .value = KEY_DOWN }, + // { .name = "KEY_DUAL_RANGE_RADAR", .value = KEY_DUAL_RANGE_RADAR }, + { .name = "KEY_DVD", .value = KEY_DVD }, + { .name = "KEY_E", .value = KEY_E }, + { .name = "KEY_EDIT", .value = KEY_EDIT }, + { .name = "KEY_EDITOR", .value = KEY_EDITOR }, + { .name = "KEY_EJECTCD", .value = KEY_EJECTCD }, + { .name = "KEY_EJECTCLOSECD", .value = KEY_EJECTCLOSECD }, + { .name = "KEY_EMAIL", .value = KEY_EMAIL }, + // { .name = "KEY_EMOJI_PICKER", .value = KEY_EMOJI_PICKER }, + { .name = "KEY_END", .value = KEY_END }, + { .name = "KEY_ENTER", .value = KEY_ENTER }, + { .name = "KEY_EPG", .value = KEY_EPG }, + { .name = "KEY_EQUAL", .value = KEY_EQUAL }, + { .name = "KEY_ESC", .value = KEY_ESC }, + { .name = "KEY_EURO", .value = KEY_EURO }, + { .name = "KEY_EXIT", .value = KEY_EXIT }, + { .name = "KEY_F", .value = KEY_F }, + { .name = "KEY_F1", .value = KEY_F1 }, + { .name = "KEY_F10", .value = KEY_F10 }, + { .name = "KEY_F11", .value = KEY_F11 }, + { .name = "KEY_F12", .value = KEY_F12 }, + { .name = "KEY_F13", .value = KEY_F13 }, + { .name = "KEY_F14", .value = KEY_F14 }, + { .name = "KEY_F15", .value = KEY_F15 }, + { .name = "KEY_F16", .value = KEY_F16 }, + { .name = "KEY_F17", .value = KEY_F17 }, + { .name = "KEY_F18", .value = KEY_F18 }, + { .name = "KEY_F19", .value = KEY_F19 }, + { .name = "KEY_F2", .value = KEY_F2 }, + { .name = "KEY_F20", .value = KEY_F20 }, + { .name = "KEY_F21", .value = KEY_F21 }, + { .name = "KEY_F22", .value = KEY_F22 }, + { .name = "KEY_F23", .value = KEY_F23 }, + { .name = "KEY_F24", .value = KEY_F24 }, + { .name = "KEY_F3", .value = KEY_F3 }, + { .name = "KEY_F4", .value = KEY_F4 }, + { .name = "KEY_F5", .value = KEY_F5 }, + { .name = "KEY_F6", .value = KEY_F6 }, + { .name = "KEY_F7", .value = KEY_F7 }, + { .name = "KEY_F8", .value = KEY_F8 }, + { .name = "KEY_F9", .value = KEY_F9 }, + { .name = "KEY_FASTFORWARD", .value = KEY_FASTFORWARD }, + { .name = "KEY_FASTREVERSE", .value = KEY_FASTREVERSE }, + { .name = "KEY_FAVORITES", .value = KEY_FAVORITES }, + { .name = "KEY_FILE", .value = KEY_FILE }, + { .name = "KEY_FINANCE", .value = KEY_FINANCE }, + { .name = "KEY_FIND", .value = KEY_FIND }, + { .name = "KEY_FIRST", .value = KEY_FIRST }, + // { .name = "KEY_FISHING_CHART", .value = KEY_FISHING_CHART }, + { .name = "KEY_FN", .value = KEY_FN }, + { .name = "KEY_FN_1", .value = KEY_FN_1 }, + { .name = "KEY_FN_2", .value = KEY_FN_2 }, + { .name = "KEY_FN_B", .value = KEY_FN_B }, + { .name = "KEY_FN_D", .value = KEY_FN_D }, + { .name = "KEY_FN_E", .value = KEY_FN_E }, + { .name = "KEY_FN_ESC", .value = KEY_FN_ESC }, + { .name = "KEY_FN_F", .value = KEY_FN_F }, + { .name = "KEY_FN_F1", .value = KEY_FN_F1 }, + { .name = "KEY_FN_F10", .value = KEY_FN_F10 }, + { .name = "KEY_FN_F11", .value = KEY_FN_F11 }, + { .name = "KEY_FN_F12", .value = KEY_FN_F12 }, + { .name = "KEY_FN_F2", .value = KEY_FN_F2 }, + { .name = "KEY_FN_F3", .value = KEY_FN_F3 }, + { .name = "KEY_FN_F4", .value = KEY_FN_F4 }, + { .name = "KEY_FN_F5", .value = KEY_FN_F5 }, + { .name = "KEY_FN_F6", .value = KEY_FN_F6 }, + { .name = "KEY_FN_F7", .value = KEY_FN_F7 }, + { .name = "KEY_FN_F8", .value = KEY_FN_F8 }, + { .name = "KEY_FN_F9", .value = KEY_FN_F9 }, + // { .name = "KEY_FN_RIGHT_SHIFT", .value = KEY_FN_RIGHT_SHIFT }, + { .name = "KEY_FN_S", .value = KEY_FN_S }, + { .name = "KEY_FORWARD", .value = KEY_FORWARD }, + { .name = "KEY_FORWARDMAIL", .value = KEY_FORWARDMAIL }, + { .name = "KEY_FRAMEBACK", .value = KEY_FRAMEBACK }, + { .name = "KEY_FRAMEFORWARD", .value = KEY_FRAMEFORWARD }, + { .name = "KEY_FRONT", .value = KEY_FRONT }, + { .name = "KEY_FULL_SCREEN", .value = KEY_FULL_SCREEN }, + { .name = "KEY_G", .value = KEY_G }, + { .name = "KEY_GAMES", .value = KEY_GAMES }, + { .name = "KEY_GOTO", .value = KEY_GOTO }, + { .name = "KEY_GRAPHICSEDITOR", .value = KEY_GRAPHICSEDITOR }, + { .name = "KEY_GRAVE", .value = KEY_GRAVE }, + { .name = "KEY_GREEN", .value = KEY_GREEN }, + { .name = "KEY_H", .value = KEY_H }, + { .name = "KEY_HANGEUL", .value = KEY_HANGEUL }, + // { .name = "KEY_HANGUP_PHONE", .value = KEY_HANGUP_PHONE }, + { .name = "KEY_HANJA", .value = KEY_HANJA }, + { .name = "KEY_HELP", .value = KEY_HELP }, + { .name = "KEY_HENKAN", .value = KEY_HENKAN }, + { .name = "KEY_HIRAGANA", .value = KEY_HIRAGANA }, + { .name = "KEY_HOME", .value = KEY_HOME }, + { .name = "KEY_HOMEPAGE", .value = KEY_HOMEPAGE }, + { .name = "KEY_HP", .value = KEY_HP }, + { .name = "KEY_I", .value = KEY_I }, + { .name = "KEY_IMAGES", .value = KEY_IMAGES }, + { .name = "KEY_INFO", .value = KEY_INFO }, + { .name = "KEY_INSERT", .value = KEY_INSERT }, + { .name = "KEY_INS_LINE", .value = KEY_INS_LINE }, + { .name = "KEY_ISO", .value = KEY_ISO }, + { .name = "KEY_J", .value = KEY_J }, + { .name = "KEY_JOURNAL", .value = KEY_JOURNAL }, + { .name = "KEY_K", .value = KEY_K }, + { .name = "KEY_KATAKANA", .value = KEY_KATAKANA }, + { .name = "KEY_KATAKANAHIRAGANA", .value = KEY_KATAKANAHIRAGANA }, + { .name = "KEY_KBDILLUMDOWN", .value = KEY_KBDILLUMDOWN }, + { .name = "KEY_KBDILLUMTOGGLE", .value = KEY_KBDILLUMTOGGLE }, + { .name = "KEY_KBDILLUMUP", .value = KEY_KBDILLUMUP }, + { .name = "KEY_KBDINPUTASSIST_ACCEPT", .value = KEY_KBDINPUTASSIST_ACCEPT }, + { .name = "KEY_KBDINPUTASSIST_CANCEL", .value = KEY_KBDINPUTASSIST_CANCEL }, + { .name = "KEY_KBDINPUTASSIST_NEXT", .value = KEY_KBDINPUTASSIST_NEXT }, + { .name = "KEY_KBDINPUTASSIST_NEXTGROUP", .value = KEY_KBDINPUTASSIST_NEXTGROUP }, + { .name = "KEY_KBDINPUTASSIST_PREV", .value = KEY_KBDINPUTASSIST_PREV }, + { .name = "KEY_KBDINPUTASSIST_PREVGROUP", .value = KEY_KBDINPUTASSIST_PREVGROUP }, + { .name = "KEY_KBD_LAYOUT_NEXT", .value = KEY_KBD_LAYOUT_NEXT }, + { .name = "KEY_KBD_LCD_MENU1", .value = KEY_KBD_LCD_MENU1 }, + { .name = "KEY_KBD_LCD_MENU2", .value = KEY_KBD_LCD_MENU2 }, + { .name = "KEY_KBD_LCD_MENU3", .value = KEY_KBD_LCD_MENU3 }, + { .name = "KEY_KBD_LCD_MENU4", .value = KEY_KBD_LCD_MENU4 }, + { .name = "KEY_KBD_LCD_MENU5", .value = KEY_KBD_LCD_MENU5 }, + { .name = "KEY_KEYBOARD", .value = KEY_KEYBOARD }, + { .name = "KEY_KP0", .value = KEY_KP0 }, + { .name = "KEY_KP1", .value = KEY_KP1 }, + { .name = "KEY_KP2", .value = KEY_KP2 }, + { .name = "KEY_KP3", .value = KEY_KP3 }, + { .name = "KEY_KP4", .value = KEY_KP4 }, + { .name = "KEY_KP5", .value = KEY_KP5 }, + { .name = "KEY_KP6", .value = KEY_KP6 }, + { .name = "KEY_KP7", .value = KEY_KP7 }, + { .name = "KEY_KP8", .value = KEY_KP8 }, + { .name = "KEY_KP9", .value = KEY_KP9 }, + { .name = "KEY_KPASTERISK", .value = KEY_KPASTERISK }, + { .name = "KEY_KPCOMMA", .value = KEY_KPCOMMA }, + { .name = "KEY_KPDOT", .value = KEY_KPDOT }, + { .name = "KEY_KPENTER", .value = KEY_KPENTER }, + { .name = "KEY_KPEQUAL", .value = KEY_KPEQUAL }, + { .name = "KEY_KPJPCOMMA", .value = KEY_KPJPCOMMA }, + { .name = "KEY_KPLEFTPAREN", .value = KEY_KPLEFTPAREN }, + { .name = "KEY_KPMINUS", .value = KEY_KPMINUS }, + { .name = "KEY_KPPLUS", .value = KEY_KPPLUS }, + { .name = "KEY_KPPLUSMINUS", .value = KEY_KPPLUSMINUS }, + { .name = "KEY_KPRIGHTPAREN", .value = KEY_KPRIGHTPAREN }, + { .name = "KEY_KPSLASH", .value = KEY_KPSLASH }, + { .name = "KEY_L", .value = KEY_L }, + { .name = "KEY_LANGUAGE", .value = KEY_LANGUAGE }, + { .name = "KEY_LAST", .value = KEY_LAST }, + { .name = "KEY_LEFT", .value = KEY_LEFT }, + { .name = "KEY_LEFTALT", .value = KEY_LEFTALT }, + { .name = "KEY_LEFTBRACE", .value = KEY_LEFTBRACE }, + { .name = "KEY_LEFTCTRL", .value = KEY_LEFTCTRL }, + { .name = "KEY_LEFTMETA", .value = KEY_LEFTMETA }, + { .name = "KEY_LEFTSHIFT", .value = KEY_LEFTSHIFT }, + { .name = "KEY_LEFT_DOWN", .value = KEY_LEFT_DOWN }, + { .name = "KEY_LEFT_UP", .value = KEY_LEFT_UP }, + { .name = "KEY_LIGHTS_TOGGLE", .value = KEY_LIGHTS_TOGGLE }, + { .name = "KEY_LINEFEED", .value = KEY_LINEFEED }, + { .name = "KEY_LIST", .value = KEY_LIST }, + { .name = "KEY_LOGOFF", .value = KEY_LOGOFF }, + { .name = "KEY_M", .value = KEY_M }, + { .name = "KEY_MACRO", .value = KEY_MACRO }, + { .name = "KEY_MACRO1", .value = KEY_MACRO1 }, + { .name = "KEY_MACRO10", .value = KEY_MACRO10 }, + { .name = "KEY_MACRO11", .value = KEY_MACRO11 }, + { .name = "KEY_MACRO12", .value = KEY_MACRO12 }, + { .name = "KEY_MACRO13", .value = KEY_MACRO13 }, + { .name = "KEY_MACRO14", .value = KEY_MACRO14 }, + { .name = "KEY_MACRO15", .value = KEY_MACRO15 }, + { .name = "KEY_MACRO16", .value = KEY_MACRO16 }, + { .name = "KEY_MACRO17", .value = KEY_MACRO17 }, + { .name = "KEY_MACRO18", .value = KEY_MACRO18 }, + { .name = "KEY_MACRO19", .value = KEY_MACRO19 }, + { .name = "KEY_MACRO2", .value = KEY_MACRO2 }, + { .name = "KEY_MACRO20", .value = KEY_MACRO20 }, + { .name = "KEY_MACRO21", .value = KEY_MACRO21 }, + { .name = "KEY_MACRO22", .value = KEY_MACRO22 }, + { .name = "KEY_MACRO23", .value = KEY_MACRO23 }, + { .name = "KEY_MACRO24", .value = KEY_MACRO24 }, + { .name = "KEY_MACRO25", .value = KEY_MACRO25 }, + { .name = "KEY_MACRO26", .value = KEY_MACRO26 }, + { .name = "KEY_MACRO27", .value = KEY_MACRO27 }, + { .name = "KEY_MACRO28", .value = KEY_MACRO28 }, + { .name = "KEY_MACRO29", .value = KEY_MACRO29 }, + { .name = "KEY_MACRO3", .value = KEY_MACRO3 }, + { .name = "KEY_MACRO30", .value = KEY_MACRO30 }, + { .name = "KEY_MACRO4", .value = KEY_MACRO4 }, + { .name = "KEY_MACRO5", .value = KEY_MACRO5 }, + { .name = "KEY_MACRO6", .value = KEY_MACRO6 }, + { .name = "KEY_MACRO7", .value = KEY_MACRO7 }, + { .name = "KEY_MACRO8", .value = KEY_MACRO8 }, + { .name = "KEY_MACRO9", .value = KEY_MACRO9 }, + { .name = "KEY_MACRO_PRESET1", .value = KEY_MACRO_PRESET1 }, + { .name = "KEY_MACRO_PRESET2", .value = KEY_MACRO_PRESET2 }, + { .name = "KEY_MACRO_PRESET3", .value = KEY_MACRO_PRESET3 }, + { .name = "KEY_MACRO_PRESET_CYCLE", .value = KEY_MACRO_PRESET_CYCLE }, + { .name = "KEY_MACRO_RECORD_START", .value = KEY_MACRO_RECORD_START }, + { .name = "KEY_MACRO_RECORD_STOP", .value = KEY_MACRO_RECORD_STOP }, + { .name = "KEY_MAIL", .value = KEY_MAIL }, + // { .name = "KEY_MARK_WAYPOINT", .value = KEY_MARK_WAYPOINT }, + { .name = "KEY_MAX", .value = KEY_MAX }, + { .name = "KEY_MEDIA", .value = KEY_MEDIA }, + { .name = "KEY_MEDIA_REPEAT", .value = KEY_MEDIA_REPEAT }, + { .name = "KEY_MEDIA_TOP_MENU", .value = KEY_MEDIA_TOP_MENU }, + { .name = "KEY_MEMO", .value = KEY_MEMO }, + { .name = "KEY_MENU", .value = KEY_MENU }, + { .name = "KEY_MESSENGER", .value = KEY_MESSENGER }, + { .name = "KEY_MHP", .value = KEY_MHP }, + { .name = "KEY_MICMUTE", .value = KEY_MICMUTE }, + { .name = "KEY_MINUS", .value = KEY_MINUS }, + { .name = "KEY_MODE", .value = KEY_MODE }, + { .name = "KEY_MOVE", .value = KEY_MOVE }, + { .name = "KEY_MP3", .value = KEY_MP3 }, + { .name = "KEY_MSDOS", .value = KEY_MSDOS }, + { .name = "KEY_MUHENKAN", .value = KEY_MUHENKAN }, + { .name = "KEY_MUTE", .value = KEY_MUTE }, + { .name = "KEY_N", .value = KEY_N }, + // { .name = "KEY_NAV_CHART", .value = KEY_NAV_CHART }, + // { .name = "KEY_NAV_INFO", .value = KEY_NAV_INFO }, + { .name = "KEY_NEW", .value = KEY_NEW }, + { .name = "KEY_NEWS", .value = KEY_NEWS }, + { .name = "KEY_NEXT", .value = KEY_NEXT }, + { .name = "KEY_NEXTSONG", .value = KEY_NEXTSONG }, + // { .name = "KEY_NEXT_ELEMENT", .value = KEY_NEXT_ELEMENT }, + { .name = "KEY_NEXT_FAVORITE", .value = KEY_NEXT_FAVORITE }, + // { .name = "KEY_NOTIFICATION_CENTER", .value = KEY_NOTIFICATION_CENTER }, + { .name = "KEY_NUMERIC_0", .value = KEY_NUMERIC_0 }, + { .name = "KEY_NUMERIC_1", .value = KEY_NUMERIC_1 }, + { .name = "KEY_NUMERIC_11", .value = KEY_NUMERIC_11 }, + { .name = "KEY_NUMERIC_12", .value = KEY_NUMERIC_12 }, + { .name = "KEY_NUMERIC_2", .value = KEY_NUMERIC_2 }, + { .name = "KEY_NUMERIC_3", .value = KEY_NUMERIC_3 }, + { .name = "KEY_NUMERIC_4", .value = KEY_NUMERIC_4 }, + { .name = "KEY_NUMERIC_5", .value = KEY_NUMERIC_5 }, + { .name = "KEY_NUMERIC_6", .value = KEY_NUMERIC_6 }, + { .name = "KEY_NUMERIC_7", .value = KEY_NUMERIC_7 }, + { .name = "KEY_NUMERIC_8", .value = KEY_NUMERIC_8 }, + { .name = "KEY_NUMERIC_9", .value = KEY_NUMERIC_9 }, + { .name = "KEY_NUMERIC_A", .value = KEY_NUMERIC_A }, + { .name = "KEY_NUMERIC_B", .value = KEY_NUMERIC_B }, + { .name = "KEY_NUMERIC_C", .value = KEY_NUMERIC_C }, + { .name = "KEY_NUMERIC_D", .value = KEY_NUMERIC_D }, + { .name = "KEY_NUMERIC_POUND", .value = KEY_NUMERIC_POUND }, + { .name = "KEY_NUMERIC_STAR", .value = KEY_NUMERIC_STAR }, + { .name = "KEY_NUMLOCK", .value = KEY_NUMLOCK }, + { .name = "KEY_O", .value = KEY_O }, + { .name = "KEY_OK", .value = KEY_OK }, + { .name = "KEY_ONSCREEN_KEYBOARD", .value = KEY_ONSCREEN_KEYBOARD }, + { .name = "KEY_OPEN", .value = KEY_OPEN }, + { .name = "KEY_OPTION", .value = KEY_OPTION }, + { .name = "KEY_P", .value = KEY_P }, + { .name = "KEY_PAGEDOWN", .value = KEY_PAGEDOWN }, + { .name = "KEY_PAGEUP", .value = KEY_PAGEUP }, + { .name = "KEY_PASTE", .value = KEY_PASTE }, + { .name = "KEY_PAUSE", .value = KEY_PAUSE }, + { .name = "KEY_PAUSECD", .value = KEY_PAUSECD }, + { .name = "KEY_PAUSE_RECORD", .value = KEY_PAUSE_RECORD }, + { .name = "KEY_PC", .value = KEY_PC }, + { .name = "KEY_PHONE", .value = KEY_PHONE }, + // { .name = "KEY_PICKUP_PHONE", .value = KEY_PICKUP_PHONE }, + { .name = "KEY_PLAY", .value = KEY_PLAY }, + { .name = "KEY_PLAYCD", .value = KEY_PLAYCD }, + { .name = "KEY_PLAYER", .value = KEY_PLAYER }, + { .name = "KEY_PLAYPAUSE", .value = KEY_PLAYPAUSE }, + { .name = "KEY_POWER", .value = KEY_POWER }, + { .name = "KEY_POWER2", .value = KEY_POWER2 }, + { .name = "KEY_PRESENTATION", .value = KEY_PRESENTATION }, + { .name = "KEY_PREVIOUS", .value = KEY_PREVIOUS }, + { .name = "KEY_PREVIOUSSONG", .value = KEY_PREVIOUSSONG }, + // { .name = "KEY_PREVIOUS_ELEMENT", .value = KEY_PREVIOUS_ELEMENT }, + { .name = "KEY_PRINT", .value = KEY_PRINT }, + { .name = "KEY_PRIVACY_SCREEN_TOGGLE", .value = KEY_PRIVACY_SCREEN_TOGGLE }, + { .name = "KEY_PROG1", .value = KEY_PROG1 }, + { .name = "KEY_PROG2", .value = KEY_PROG2 }, + { .name = "KEY_PROG3", .value = KEY_PROG3 }, + { .name = "KEY_PROG4", .value = KEY_PROG4 }, + { .name = "KEY_PROGRAM", .value = KEY_PROGRAM }, + { .name = "KEY_PROPS", .value = KEY_PROPS }, + { .name = "KEY_PVR", .value = KEY_PVR }, + { .name = "KEY_Q", .value = KEY_Q }, + { .name = "KEY_QUESTION", .value = KEY_QUESTION }, + { .name = "KEY_R", .value = KEY_R }, + // { .name = "KEY_RADAR_OVERLAY", .value = KEY_RADAR_OVERLAY }, + { .name = "KEY_RADIO", .value = KEY_RADIO }, + { .name = "KEY_RECORD", .value = KEY_RECORD }, + { .name = "KEY_RED", .value = KEY_RED }, + { .name = "KEY_REDO", .value = KEY_REDO }, + { .name = "KEY_REFRESH", .value = KEY_REFRESH }, + { .name = "KEY_REPLY", .value = KEY_REPLY }, + { .name = "KEY_RESERVED", .value = KEY_RESERVED }, + { .name = "KEY_RESTART", .value = KEY_RESTART }, + { .name = "KEY_REWIND", .value = KEY_REWIND }, + { .name = "KEY_RFKILL", .value = KEY_RFKILL }, + { .name = "KEY_RIGHT", .value = KEY_RIGHT }, + { .name = "KEY_RIGHTALT", .value = KEY_RIGHTALT }, + { .name = "KEY_RIGHTBRACE", .value = KEY_RIGHTBRACE }, + { .name = "KEY_RIGHTCTRL", .value = KEY_RIGHTCTRL }, + { .name = "KEY_RIGHTMETA", .value = KEY_RIGHTMETA }, + { .name = "KEY_RIGHTSHIFT", .value = KEY_RIGHTSHIFT }, + { .name = "KEY_RIGHT_DOWN", .value = KEY_RIGHT_DOWN }, + { .name = "KEY_RIGHT_UP", .value = KEY_RIGHT_UP }, + { .name = "KEY_RO", .value = KEY_RO }, + { .name = "KEY_ROOT_MENU", .value = KEY_ROOT_MENU }, + { .name = "KEY_ROTATE_DISPLAY", .value = KEY_ROTATE_DISPLAY }, + { .name = "KEY_ROTATE_LOCK_TOGGLE", .value = KEY_ROTATE_LOCK_TOGGLE }, + { .name = "KEY_S", .value = KEY_S }, + { .name = "KEY_SAT", .value = KEY_SAT }, + { .name = "KEY_SAT2", .value = KEY_SAT2 }, + { .name = "KEY_SAVE", .value = KEY_SAVE }, + { .name = "KEY_SCALE", .value = KEY_SCALE }, + { .name = "KEY_SCREENSAVER", .value = KEY_SCREENSAVER }, + { .name = "KEY_SCROLLDOWN", .value = KEY_SCROLLDOWN }, + { .name = "KEY_SCROLLLOCK", .value = KEY_SCROLLLOCK }, + { .name = "KEY_SCROLLUP", .value = KEY_SCROLLUP }, + { .name = "KEY_SEARCH", .value = KEY_SEARCH }, + { .name = "KEY_SELECT", .value = KEY_SELECT }, + { .name = "KEY_SELECTIVE_SCREENSHOT", .value = KEY_SELECTIVE_SCREENSHOT }, + { .name = "KEY_SEMICOLON", .value = KEY_SEMICOLON }, + { .name = "KEY_SEND", .value = KEY_SEND }, + { .name = "KEY_SENDFILE", .value = KEY_SENDFILE }, + { .name = "KEY_SETUP", .value = KEY_SETUP }, + { .name = "KEY_SHOP", .value = KEY_SHOP }, + { .name = "KEY_SHUFFLE", .value = KEY_SHUFFLE }, + // { .name = "KEY_SIDEVU_SONAR", .value = KEY_SIDEVU_SONAR }, + // { .name = "KEY_SINGLE_RANGE_RADAR", .value = KEY_SINGLE_RANGE_RADAR }, + { .name = "KEY_SLASH", .value = KEY_SLASH }, + { .name = "KEY_SLEEP", .value = KEY_SLEEP }, + { .name = "KEY_SLOW", .value = KEY_SLOW }, + { .name = "KEY_SLOWREVERSE", .value = KEY_SLOWREVERSE }, + // { .name = "KEY_SOS", .value = KEY_SOS }, + { .name = "KEY_SOUND", .value = KEY_SOUND }, + { .name = "KEY_SPACE", .value = KEY_SPACE }, + { .name = "KEY_SPELLCHECK", .value = KEY_SPELLCHECK }, + { .name = "KEY_SPORT", .value = KEY_SPORT }, + { .name = "KEY_SPREADSHEET", .value = KEY_SPREADSHEET }, + { .name = "KEY_STOP", .value = KEY_STOP }, + { .name = "KEY_STOPCD", .value = KEY_STOPCD }, + { .name = "KEY_STOP_RECORD", .value = KEY_STOP_RECORD }, + { .name = "KEY_SUBTITLE", .value = KEY_SUBTITLE }, + { .name = "KEY_SUSPEND", .value = KEY_SUSPEND }, + { .name = "KEY_SWITCHVIDEOMODE", .value = KEY_SWITCHVIDEOMODE }, + { .name = "KEY_SYSRQ", .value = KEY_SYSRQ }, + { .name = "KEY_T", .value = KEY_T }, + { .name = "KEY_TAB", .value = KEY_TAB }, + { .name = "KEY_TAPE", .value = KEY_TAPE }, + { .name = "KEY_TASKMANAGER", .value = KEY_TASKMANAGER }, + { .name = "KEY_TEEN", .value = KEY_TEEN }, + { .name = "KEY_TEXT", .value = KEY_TEXT }, + { .name = "KEY_TIME", .value = KEY_TIME }, + { .name = "KEY_TITLE", .value = KEY_TITLE }, + { .name = "KEY_TOUCHPAD_OFF", .value = KEY_TOUCHPAD_OFF }, + { .name = "KEY_TOUCHPAD_ON", .value = KEY_TOUCHPAD_ON }, + { .name = "KEY_TOUCHPAD_TOGGLE", .value = KEY_TOUCHPAD_TOGGLE }, + // { .name = "KEY_TRADITIONAL_SONAR", .value = KEY_TRADITIONAL_SONAR }, + { .name = "KEY_TUNER", .value = KEY_TUNER }, + { .name = "KEY_TV", .value = KEY_TV }, + { .name = "KEY_TV2", .value = KEY_TV2 }, + { .name = "KEY_TWEN", .value = KEY_TWEN }, + { .name = "KEY_U", .value = KEY_U }, + { .name = "KEY_UNDO", .value = KEY_UNDO }, + { .name = "KEY_UNKNOWN", .value = KEY_UNKNOWN }, + { .name = "KEY_UNMUTE", .value = KEY_UNMUTE }, + { .name = "KEY_UP", .value = KEY_UP }, + { .name = "KEY_UWB", .value = KEY_UWB }, + { .name = "KEY_V", .value = KEY_V }, + { .name = "KEY_VCR", .value = KEY_VCR }, + { .name = "KEY_VCR2", .value = KEY_VCR2 }, + { .name = "KEY_VENDOR", .value = KEY_VENDOR }, + { .name = "KEY_VIDEO", .value = KEY_VIDEO }, + { .name = "KEY_VIDEOPHONE", .value = KEY_VIDEOPHONE }, + { .name = "KEY_VIDEO_NEXT", .value = KEY_VIDEO_NEXT }, + { .name = "KEY_VIDEO_PREV", .value = KEY_VIDEO_PREV }, + { .name = "KEY_VOD", .value = KEY_VOD }, + { .name = "KEY_VOICECOMMAND", .value = KEY_VOICECOMMAND }, + { .name = "KEY_VOICEMAIL", .value = KEY_VOICEMAIL }, + { .name = "KEY_VOLUMEDOWN", .value = KEY_VOLUMEDOWN }, + { .name = "KEY_VOLUMEUP", .value = KEY_VOLUMEUP }, + { .name = "KEY_W", .value = KEY_W }, + { .name = "KEY_WAKEUP", .value = KEY_WAKEUP }, + { .name = "KEY_WLAN", .value = KEY_WLAN }, + { .name = "KEY_WORDPROCESSOR", .value = KEY_WORDPROCESSOR }, + { .name = "KEY_WPS_BUTTON", .value = KEY_WPS_BUTTON }, + { .name = "KEY_WWAN", .value = KEY_WWAN }, + { .name = "KEY_WWW", .value = KEY_WWW }, + { .name = "KEY_X", .value = KEY_X }, + { .name = "KEY_XFER", .value = KEY_XFER }, + { .name = "KEY_Y", .value = KEY_Y }, + { .name = "KEY_YELLOW", .value = KEY_YELLOW }, + { .name = "KEY_YEN", .value = KEY_YEN }, + { .name = "KEY_Z", .value = KEY_Z }, + { .name = "KEY_ZENKAKUHANKAKU", .value = KEY_ZENKAKUHANKAKU }, + { .name = "KEY_ZOOMIN", .value = KEY_ZOOMIN }, + { .name = "KEY_ZOOMOUT", .value = KEY_ZOOMOUT }, + { .name = "KEY_ZOOMRESET", .value = KEY_ZOOMRESET }, + { .name = "LED_CAPSL", .value = LED_CAPSL }, + { .name = "LED_CHARGING", .value = LED_CHARGING }, + { .name = "LED_COMPOSE", .value = LED_COMPOSE }, + { .name = "LED_KANA", .value = LED_KANA }, + { .name = "LED_MAIL", .value = LED_MAIL }, + { .name = "LED_MAX", .value = LED_MAX }, + { .name = "LED_MISC", .value = LED_MISC }, + { .name = "LED_MUTE", .value = LED_MUTE }, + { .name = "LED_NUML", .value = LED_NUML }, + { .name = "LED_SCROLLL", .value = LED_SCROLLL }, + { .name = "LED_SLEEP", .value = LED_SLEEP }, + { .name = "LED_SUSPEND", .value = LED_SUSPEND }, + { .name = "MSC_GESTURE", .value = MSC_GESTURE }, + { .name = "MSC_MAX", .value = MSC_MAX }, + { .name = "MSC_PULSELED", .value = MSC_PULSELED }, + { .name = "MSC_RAW", .value = MSC_RAW }, + { .name = "MSC_SCAN", .value = MSC_SCAN }, + { .name = "MSC_SERIAL", .value = MSC_SERIAL }, + { .name = "MSC_TIMESTAMP", .value = MSC_TIMESTAMP }, + { .name = "REL_DIAL", .value = REL_DIAL }, + { .name = "REL_HWHEEL", .value = REL_HWHEEL }, + { .name = "REL_HWHEEL_HI_RES", .value = REL_HWHEEL_HI_RES }, + { .name = "REL_MAX", .value = REL_MAX }, + { .name = "REL_MISC", .value = REL_MISC }, + { .name = "REL_RESERVED", .value = REL_RESERVED }, + { .name = "REL_RX", .value = REL_RX }, + { .name = "REL_RY", .value = REL_RY }, + { .name = "REL_RZ", .value = REL_RZ }, + { .name = "REL_WHEEL", .value = REL_WHEEL }, + { .name = "REL_WHEEL_HI_RES", .value = REL_WHEEL_HI_RES }, + { .name = "REL_X", .value = REL_X }, + { .name = "REL_Y", .value = REL_Y }, + { .name = "REL_Z", .value = REL_Z }, + { .name = "REP_DELAY", .value = REP_DELAY }, + { .name = "REP_MAX", .value = REP_MAX }, + { .name = "REP_PERIOD", .value = REP_PERIOD }, + { .name = "SND_BELL", .value = SND_BELL }, + { .name = "SND_CLICK", .value = SND_CLICK }, + { .name = "SND_MAX", .value = SND_MAX }, + { .name = "SND_TONE", .value = SND_TONE }, + { .name = "SW_CAMERA_LENS_COVER", .value = SW_CAMERA_LENS_COVER }, + { .name = "SW_DOCK", .value = SW_DOCK }, + { .name = "SW_FRONT_PROXIMITY", .value = SW_FRONT_PROXIMITY }, + { .name = "SW_HEADPHONE_INSERT", .value = SW_HEADPHONE_INSERT }, + { .name = "SW_JACK_PHYSICAL_INSERT", .value = SW_JACK_PHYSICAL_INSERT }, + { .name = "SW_KEYPAD_SLIDE", .value = SW_KEYPAD_SLIDE }, + { .name = "SW_LID", .value = SW_LID }, + { .name = "SW_LINEIN_INSERT", .value = SW_LINEIN_INSERT }, + { .name = "SW_LINEOUT_INSERT", .value = SW_LINEOUT_INSERT }, + { .name = "SW_MACHINE_COVER", .value = SW_MACHINE_COVER }, + { .name = "SW_MAX", .value = SW_MAX }, + { .name = "SW_MICROPHONE_INSERT", .value = SW_MICROPHONE_INSERT }, + { .name = "SW_MUTE_DEVICE", .value = SW_MUTE_DEVICE }, + { .name = "SW_PEN_INSERTED", .value = SW_PEN_INSERTED }, + { .name = "SW_RFKILL_ALL", .value = SW_RFKILL_ALL }, + { .name = "SW_ROTATE_LOCK", .value = SW_ROTATE_LOCK }, + { .name = "SW_TABLET_MODE", .value = SW_TABLET_MODE }, + { .name = "SW_VIDEOOUT_INSERT", .value = SW_VIDEOOUT_INSERT }, + { .name = "SYN_CONFIG", .value = SYN_CONFIG }, + { .name = "SYN_DROPPED", .value = SYN_DROPPED }, + { .name = "SYN_MAX", .value = SYN_MAX }, + { .name = "SYN_MT_REPORT", .value = SYN_MT_REPORT }, + { .name = "SYN_REPORT", .value = SYN_REPORT }, +}; + +static const struct name_entry prop_names[] = { + { .name = "INPUT_PROP_ACCELEROMETER", .value = INPUT_PROP_ACCELEROMETER }, + { .name = "INPUT_PROP_BUTTONPAD", .value = INPUT_PROP_BUTTONPAD }, + { .name = "INPUT_PROP_DIRECT", .value = INPUT_PROP_DIRECT }, + { .name = "INPUT_PROP_MAX", .value = INPUT_PROP_MAX }, + { .name = "INPUT_PROP_POINTER", .value = INPUT_PROP_POINTER }, + { .name = "INPUT_PROP_POINTING_STICK", .value = INPUT_PROP_POINTING_STICK }, + { .name = "INPUT_PROP_SEMI_MT", .value = INPUT_PROP_SEMI_MT }, + { .name = "INPUT_PROP_TOPBUTTONPAD", .value = INPUT_PROP_TOPBUTTONPAD }, +}; + +#endif /* EVENT_NAMES_H */ diff --git a/usr.sbin/moused/moused.8 b/usr.sbin/moused/moused/moused.8 similarity index 51% copy from usr.sbin/moused/moused.8 copy to usr.sbin/moused/moused/moused.8 index cd5d8ddde339..96feeda336c9 100644 --- a/usr.sbin/moused/moused.8 +++ b/usr.sbin/moused/moused/moused.8 @@ -1,850 +1,538 @@ -.\"- .\" SPDX-License-Identifier: BSD-4-Clause .\" -.\" Copyright (c) 1996 -.\" Mike Pritchard . All rights reserved. +.\" Copyright (c) 1996 Mike Pritchard +.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Mike Pritchard. .\" 4. Neither the name of the author nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 7, 2024 +.Dd June 14, 2025 .Dt MOUSED 8 .Os .Sh NAME .Nm moused -.Nd pass mouse data to the system video console driver +.Nd pass mouse data to the console driver .Sh SYNOPSIS .Nm -.Op Fl DPRacdfs +.Op Fl dfg .Op Fl I Ar file .Op Fl F Ar rate .Op Fl r Ar resolution -.Op Fl S Ar baudrate .Op Fl VH Op Fl U Ar distance Fl L Ar distance .Op Fl A Ar exp Ns Op , Ns Ar offset .Op Fl a Ar X Ns Op , Ns Ar Y .Op Fl C Ar threshold .Op Fl m Ar N=M .Op Fl w Ar N .Op Fl z Ar target .Op Fl t Ar mousetype .Op Fl l Ar level .Op Fl 3 Op Fl E Ar timeout .Op Fl T Ar distance Ns Op , Ns Ar time Ns Op , Ns Ar after .Fl p Ar port .Pp .Nm -.Op Fl Pd +.Op Fl d .Fl p Ar port .Fl i Ar info .Sh DESCRIPTION The .Nm utility and the console driver work together to support mouse operation in the text console and user programs. They virtualize the mouse and provide user programs with mouse data in the standard format (see .Xr sysmouse 4 ) . .Pp The mouse daemon listens to the specified port for mouse data, interprets and then passes it via ioctls to the console driver. +Supported data interfaces are +.Qq input event device +AKA evdev and +.Xr sysmouse 4 +level 1. The mouse daemon reports translation movement, button press/release events and movement of the roller or the wheel if available. The roller/wheel movement is reported as .Dq Z axis movement. .Pp The console driver will display the mouse pointer on the screen and provide cut and paste functions if the mouse pointer is enabled in the virtual console via .Xr vidcontrol 1 . If .Xr sysmouse 4 is opened by the user program, the console driver also passes the mouse data to the device so that the user program will see it. .Pp If the mouse daemon receives the signal .Dv SIGHUP , it will reopen the mouse port and reinitialize itself. Useful if the mouse is attached/detached while the system is suspended. .Pp If the mouse daemon receives the signal .Dv SIGUSR1 , it will stop passing mouse events. Sending the signal .Dv SIGUSR1 again will resume passing mouse events. Useful if your typing on a laptop is interrupted by accidentally touching the mouse pad. .Pp The following options are available: .Bl -tag -width indent .It Fl 3 Emulate the third (middle) button for 2-button mice. It is emulated by pressing the left and right physical buttons simultaneously. .It Fl C Ar threshold Set double click speed as the maximum interval in msec between button clicks. Without this option, the default value of 500 msec will be assumed. This option will have effect only on the cut and paste operations in the text mode console. The user program which is reading mouse data via .Xr sysmouse 4 will not be affected. -.It Fl D -Lower DTR on the serial port. -This option is valid only if -.Ar mousesystems -is selected as the protocol type. -The DTR line may need to be dropped for a 3-button mouse -to operate in the -.Ar mousesystems -mode. .It Fl E Ar timeout When the third button emulation is enabled (see above), the .Nm utility waits .Ar timeout msec at most before deciding whether two buttons are being pressed simultaneously. The default timeout is 100 msec. .It Fl F Ar rate +Only for +.Xr sysmouse 4 +interface. Set the report rate (reports/sec) of the device if supported. .It Fl L Ar distance When .Dq Virtual Scrolling is enabled, the .Fl L option can be used to set the .Ar distance (in pixels) that the mouse must move before a scroll event -is generated. -This effectively controls the scrolling speed. +is generated. This effectively controls the scrolling speed. The default .Ar distance is 2 pixels. .It Fl H Enable .Dq Horizontal Virtual Scrolling . With this option set, holding the middle mouse button down will cause motion to be interpreted as horizontal scrolling. Use the .Fl U option to set the distance the mouse must move before the scrolling mode is activated and the .Fl L option to set the scrolling speed. This option may be used with or without the .Fl V option. .It Fl I Ar file Write the process id of the .Nm utility in the specified file. Without this option, the process id will be stored in .Pa /var/run/moused.pid . -.It Fl P -Do not start the Plug and Play COM device enumeration procedure -when identifying the serial mouse. -If this option is given together with the -.Fl i -option, the -.Nm -utility will not be able to print useful information for the serial mouse. -.It Fl R -Lower RTS on the serial port. -This option is valid only if -.Ar mousesystems -is selected as the protocol type by the -.Fl t -option below. -It is often used with the -.Fl D -option above. -Both RTS and DTR lines may need to be dropped for -a 3-button mouse to operate in the -.Ar mousesystems -mode. -.It Fl S Ar baudrate -Select the baudrate for the serial port (1200 to 9600). -Not all serial mice support this option. .It Fl T Ar distance Ns Op , Ns Ar time Ns Op , Ns Ar after Terminate drift. Use this option if mouse pointer slowly wanders when mouse is not moved. Movements up to .Ar distance (for example 4) pixels (X+Y) in .Ar time msec (default 500) are ignored, except during .Ar after msec (default 4000) since last real mouse movement. .It Fl V Enable .Dq Virtual Scrolling . With this option set, holding the middle mouse button down will cause motion to be interpreted as scrolling. Use the .Fl U option to set the distance the mouse must move before the scrolling mode is activated and the .Fl L option to set the scrolling speed. .It Fl U Ar distance When .Dq Virtual Scrolling is enabled, the .Fl U option can be used to set the .Ar distance (in pixels) that the mouse must move before the scrolling mode is activated. The default .Ar distance is 3 pixels. .It Fl A Ar exp Ns Op , Ns Ar offset Apply exponential (dynamic) acceleration to mouse movements: the faster you move the mouse, the more it will be accelerated. That means that small mouse movements are not accelerated, so they are still very accurate, while a faster movement will drive the pointer quickly across the screen. .Pp The .Ar exp value specifies the exponent, which is basically -the amount of acceleration. -Useful values are in the range 1.1 to 2.0, but it depends on -your mouse hardware and your personal preference. -A value of 1.0 means no exponential acceleration. -A value of 2.0 means squared acceleration (i.e. if -you move the mouse twice as fast, the pointer will move -four times as fast on the screen). +the amount of acceleration. Useful values are in the +range 1.1 to 2.0, but it depends on your mouse hardware +and your personal preference. A value of 1.0 means no +exponential acceleration. A value of 2.0 means squared +acceleration (i.e. if you move the mouse twice as fast, +the pointer will move four times as fast on the screen). Values beyond 2.0 are possible but not recommended. A good value to start is probably 1.5. .Pp The optional .Ar offset -value specifies the distance at which the acceleration begins. -The default is 1.0, which means that the acceleration is applied -to movements larger than one unit. +value specifies the distance at which the acceleration +begins. The default is 1.0, which means that the +acceleration is applied to movements larger than one unit. If you specify a larger value, it takes more speed for the acceleration to kick in, i.e. the speed range for small and accurate movements is wider. Usually the default should be sufficient, but if you're not satisfied with the behaviour, try a value of 2.0. .Pp Note that the .Fl A option interacts badly with the X server's own acceleration, -which doesn't work very well anyway. -Therefore it is recommended to switch it off if necessary: +which doesn't work very well anyway. Therefore it is +recommended to switch it off if necessary: .Dq xset m 1 . .It Fl a Ar X Ns Op , Ns Ar Y Accelerate or decelerate the mouse input. This is a linear acceleration only. Values less than 1.0 slow down movement, values greater than 1.0 speed it up. Specifying only one value sets the acceleration for both axes. .Pp You can use the .Fl a and .Fl A options at the same time to have the combined effect of linear and exponential acceleration. -.It Fl c -Some mice report middle button down events -as if the left and right buttons are being pressed. -This option handles this. .It Fl d Enable debugging messages. .It Fl f Do not become a daemon and instead run as a foreground process. Useful for testing and debugging. +.It Fl g +Only for evdev interface. +Become the sole recipient of all incoming input events. +This prevents other processes from getting input events on the device. .It Fl i Ar info Print specified information and quit. Available pieces of information are: .Pp .Bl -tag -compact -width modelxxx .It Ar port Port (device file) name, i.e.\& -.Pa /dev/cuau0 , +.Pa /dev/input/event0 , +.Pa /dev/ums0 and .Pa /dev/psm0 . .It Ar if -Interface type: serial, bus, inport or ps/2. +Interface type: +.Dq evdev +or +.Dq sysmouse . .It Ar type -Protocol type. -It is one of the types listed under the -.Fl t -option below or -.Ar sysmouse -if the driver supports the -.Ar sysmouse -data format standard. +Device type: +.Dq mouse +or +.Dq touchpad . .It Ar model Mouse model. -The -.Nm -utility may not always be able to identify the model. .It Ar all All of the above items. -Print port, interface, type and model in this order +Print port, type and model in this order in one line. .El .Pp If the .Nm utility cannot determine the requested information, it prints .Dq Li unknown or .Dq Li generic . .It Fl l Ar level -Specifies at which level -.Nm -should operate the mouse driver. -Refer to -.Sx Operation Levels -in -.Xr psm 4 -for more information on this. +Ignored. +Used for compatibiliy with legacy +.Nm . .It Fl m Ar N=M Assign the physical button .Ar M to the logical button .Ar N . You may specify as many instances of this option as you like. More than one physical button may be assigned to a logical button at the same time. In this case the logical button will be down, if either of the assigned physical buttons is held down. Do not put space around .Ql = . .It Fl p Ar port Use .Ar port to communicate with the mouse. .It Fl r Ar resolution +Only for +.Xr sysmouse 4 +interface. Set the resolution of the device; in Dots Per Inch, or .Ar low , .Ar medium-low , .Ar medium-high or .Ar high . This option may not be supported by all the device. -.It Fl s -Select a baudrate of 9600 for the serial line. -Not all serial mice support this option. .It Fl t Ar type -Specify the protocol type of the mouse attached to the port. -You may explicitly specify a type listed below, or use -.Ar auto -to let the -.Nm -utility automatically select an appropriate protocol for the given -mouse. -If you entirely omit this option in the command line, -.Fl t Ar auto -is assumed. -Under normal circumstances, -you need to use this option only if the -.Nm -utility is not able to detect the protocol automatically -(see -.Sx "Configuring Mouse Daemon" ) . -.Pp -Note that if a protocol type is specified with this option, the -.Fl P -option above is implied and Plug and Play COM device enumeration -procedure will be disabled. -.Pp -Also note that if your mouse is attached to the PS/2 mouse port, you should -always choose -.Ar auto -or -.Ar ps/2 , -regardless of the brand and model of the mouse. -Likewise, if your -mouse is attached to the bus mouse port, choose -.Ar auto -or -.Ar busmouse . -Serial mouse protocols will not work with these mice. -.Pp -For the USB mouse, the protocol must be -.Ar auto . -No other protocol will work with the USB mouse. -.Pp -Valid types for this option are -listed below. -.Pp -For the serial mouse: -.Bl -tag -compact -width mousesystemsxxx -.It Ar microsoft -Microsoft serial mouse protocol. -Most 2-button serial mice use this protocol. -.It Ar intellimouse -Microsoft IntelliMouse protocol. -Genius NetMouse, -.Tn ASCII -Mie Mouse, -Logitech MouseMan+ and FirstMouse+ use this protocol too. -Other mice with a roller/wheel may be compatible with this protocol. -.It Ar mousesystems -MouseSystems 5-byte protocol. -3-button mice may use this protocol. -.It Ar mmseries -MM Series mouse protocol. -.It Ar logitech -Logitech mouse protocol. -Note that this is for old Logitech models. -.Ar mouseman -or -.Ar intellimouse -should be specified for newer models. -.It Ar mouseman -Logitech MouseMan and TrackMan protocol. -Some 3-button mice may be compatible -with this protocol. -Note that MouseMan+ and FirstMouse+ use -.Ar intellimouse -protocol rather than this one. -.It Ar glidepoint -ALPS GlidePoint protocol. -.It Ar thinkingmouse -Kensington ThinkingMouse protocol. -.It Ar mmhitab -Hitachi tablet protocol. -.It Ar x10mouseremote -X10 MouseRemote. -.It Ar kidspad -Genius Kidspad and Easypad protocol. -.It Ar versapad -Interlink VersaPad protocol. -.It Ar gtco_digipad -GTCO Digipad protocol. -.El -.Pp -For the bus and InPort mouse: -.Bl -tag -compact -width mousesystemsxxx -.It Ar busmouse -This is the only protocol type available for -the bus and InPort mouse and should be specified for any bus mice -and InPort mice, regardless of the brand. -.El -.Pp -For the PS/2 mouse: -.Bl -tag -compact -width mousesystemsxxx -.It Ar ps/2 -This is the only protocol type available for the PS/2 mouse -and should be specified for any PS/2 mice, regardless of the brand. -.El -.Pp -For the USB mouse, -.Ar auto -is the only protocol type available for the USB mouse -and should be specified for any USB mice, regardless of the brand. +Ignored. +Used for compatibiliy with legacy +.Nm . +.It Fl q Ar config +Path to configuration file. +.It Fl Q Ar quirks +Path to quirks directory. .It Fl w Ar N Make the physical button .Ar N act as the wheel mode button. While this button is pressed, X and Y axis movement is reported to be zero and the Y axis movement is mapped to Z axis. You may further map the Z axis movement to virtual buttons by the .Fl z option below. .It Fl z Ar target Map Z axis (roller/wheel) movement to another axis or to virtual buttons. Valid .Ar target maybe: .Bl -tag -compact -width x__ .It Ar x .It Ar y X or Y axis movement will be reported when the Z axis movement is detected. .It Ar N Report down events for the virtual buttons .Ar N and .Ar N+1 respectively when negative and positive Z axis movement is detected. There do not need to be physical buttons .Ar N and .Ar N+1 . Note that mapping to logical buttons is carried out after mapping from the Z axis movement to the virtual buttons is done. .It Ar N1 N2 Report down events for the virtual buttons .Ar N1 and .Ar N2 respectively when negative and positive Z axis movement is detected. .It Ar N1 N2 N3 N4 This is useful for the mouse with two wheels of which the second wheel is used to generate horizontal scroll action, and for the mouse which has a knob or a stick which can detect the horizontal force applied by the user. .Pp The motion of the second wheel will be mapped to the buttons .Ar N3 , for the negative direction, and .Ar N4 , for the positive direction. If the buttons .Ar N3 and .Ar N4 actually exist in this mouse, their actions will not be detected. .Pp Note that horizontal movement or second roller/wheel movement may not always be detected, because there appears to be no accepted standard as to how it is encoded. .Pp Note also that some mice think left is the negative horizontal direction; others may think otherwise. Moreover, there are some mice whose two wheels are both mounted vertically, and the direction of the second vertical wheel does not match the first one. .El -.El -.Ss Configuring Mouse Daemon -The first thing you need to know is the interface type -of the mouse you are going to use. -It can be determined by looking at the connector of the mouse. -The serial mouse has a D-Sub female 9- or 25-pin connector. -The bus and InPort mice have either a D-Sub male 9-pin connector -or a round DIN 9-pin connector. -The PS/2 mouse is equipped with a small, round DIN 6-pin connector. -Some mice come with adapters with which the connector can -be converted to another. -If you are to use such an adapter, -remember the connector at the very end of the mouse/adapter pair is -what matters. -The USB mouse has a flat rectangular connector. -.Pp -The next thing to decide is a port to use for the given interface. -The PS/2 mouse is always at -.Pa /dev/psm0 . -There may be more than one serial port to which the serial -mouse can be attached. -Many people often assign the first, built-in -serial port -.Pa /dev/cuau0 -to the mouse. -You can attach multiple USB mice to your system or to your USB hub. -They are accessible as -.Pa /dev/ums0 , /dev/ums1 , -and so on. -.Pp -You may want to create a symbolic link -.Pa /dev/mouse -pointing to the real port to which the mouse is connected, so that you -can easily distinguish which is your -.Dq mouse -port later. -.Pp -The next step is to guess the appropriate protocol type for the mouse. +.Ss Multiple Mice The .Nm -utility may be able to automatically determine the protocol type. -Run the +utility may operate in 2 different modes depending on the value of +.Fl p +option. +When started with +.Fl p Ar auto +option specified the .Nm -utility with the -.Fl i -option and see what it says. -If the command can identify -the protocol type, no further investigation is necessary on your part. -You may start the daemon without explicitly specifying a protocol type -(see -.Sx EXAMPLES ) . -.Pp -The command may print -.Ar sysmouse -if the mouse driver supports this protocol type. -.Pp -Note that the -.Dv type -and -.Dv model -printed by the -.Fl i -option do not necessarily match the product name of the pointing device -in question, but they may give the name of the device with which it is -compatible. -.Pp -If the -.Fl i -option yields nothing, you need to specify a protocol type to the +handles all recognized pointing devices in a single instance. +Device hotplug is supported through +.Xr devd 8 . +Only evdev interface is available in this mode. +When started with +.Fl p Ar +option specified the .Nm -utility by the -.Fl t -option. -You have to make a guess and try. -There is rule of thumb: -.Pp -.Bl -enum -compact -width 1.X -.It -The bus and InPort mice always use -.Ar busmouse -protocol regardless of the brand of the mouse. -.It -The -.Ar ps/2 -protocol should always be specified for the PS/2 mouse -regardless of the brand of the mouse. -.It -You must specify the -.Ar auto -protocol for the USB mouse. -.It -Most 2-button serial mice support the -.Ar microsoft -protocol. -.It -3-button serial mice may work with the -.Ar mousesystems -protocol. -If it does not, it may work with the -.Ar microsoft -protocol although -the third (middle) button will not function. -3-button serial mice may also work with the -.Ar mouseman -protocol under which the third button may function as expected. -.It -3-button serial mice may have a small switch to choose between -.Dq MS -and -.Dq PC , -or -.Dq 2 -and -.Dq 3 . -.Dq MS -or -.Dq 2 -usually mean the -.Ar microsoft -protocol. -.Dq PC -or -.Dq 3 -will choose the -.Ar mousesystems -protocol. -.It -If the mouse has a roller or a wheel, it may be compatible with the -.Ar intellimouse -protocol. -.El -.Pp -To test if the selected protocol type is correct for the given mouse, -enable the mouse pointer in the current virtual console, -.Pp -.Dl "vidcontrol -m on" -.Pp -start the mouse daemon in the foreground mode, -.Pp -.Dl "moused -f -p -t " -.Pp -and see if the mouse pointer travels correctly -according to the mouse movement. -Then try cut & paste features by -clicking the left, right and middle buttons. -Type ^C to stop -the command. -.Ss Multiple Mice -As many instances of the mouse daemon as the number of mice attached to -the system may be run simultaneously; one -instance for each mouse. -This is useful if the user wants to use the built-in PS/2 pointing device -of a laptop computer while on the road, but wants to use a serial -mouse when s/he attaches the system to the docking station in the office. -Run two mouse daemons and tell the application program -(such as the -.Tn "X\ Window System" ) -to use -.Xr sysmouse 4 , -then the application program will always see mouse data from either mouse. -When the serial mouse is not attached, the corresponding mouse daemon -will not detect any movement or button state change and the application -program will only see mouse data coming from the daemon for the -PS/2 mouse. -In contrast when both mice are attached and both of them -are moved at the same time in this configuration, -the mouse pointer will travel across the screen just as if movement of -the mice is combined all together. +handles single device located at +.Ar . +Both evdev and +.Xr sysmouse 4 +level 1 interfaces are available in this mode. +Multiple +.Nm +instances may be run simultaneously. .Sh FILES -.Bl -tag -width /dev/consolectl -compact +.Bl -tag -width /var/run/moused.pid -compact .It Pa /dev/consolectl device to control the console +.It Pa /dev/input/event%d +Input event device .It Pa /dev/psm%d PS/2 mouse driver .It Pa /dev/sysmouse virtualized mouse driver -.It Pa /dev/ttyv%d -virtual consoles .It Pa /dev/ums%d USB mouse driver .It Pa /var/run/moused.pid process id of the currently running .Nm utility -.It Pa /var/run/MouseRemote -UNIX-domain stream socket for X10 MouseRemote events .El .Sh EXAMPLES -.Dl "moused -p /dev/cuau0 -i type" -.Pp -Let the -.Nm -utility determine the protocol type of the mouse at the serial port -.Pa /dev/cuau0 . -If successful, the command will print the type, otherwise it will say -.Dq Li unknown . .Bd -literal -offset indent -moused -p /dev/cuau0 +moused -p auto vidcontrol -m on .Ed .Pp -If the +Start .Nm -utility is able to identify the protocol type of the mouse at the specified -port automatically, you can start the daemon without the -.Fl t -option and enable the mouse pointer in the text console as above. -.Bd -literal -offset indent -moused -p /dev/mouse -t microsoft -vidcontrol -m on +utility to handle all evdev pointing devices automatically with hotplug +support. +And enable the mouse pointer in the text console after than. +The daemon can be started without the +.Fl p +option as well. +.Pp +.Dl "moused -f -d -g -p /dev/input/event0" .Ed .Pp -Start the mouse daemon on the serial port -.Pa /dev/mouse . -The protocol type -.Ar microsoft -is explicitly specified by the -.Fl t -option. +Start the mouse daemon on the +.Pa /dev/input/event0 +in the exclusive foreground debug mode. +Exclusive mode may disable mouse in Xorg session. .Pp -.Dl "moused -p /dev/mouse -m 1=3 -m 3=1" +.Dl "moused -p /dev/input/event0 -m 1=3 -m 3=1" .Pp Assign the physical button 3 (right button) to the logical button 1 (logical left) and the physical button 1 (left) to the logical button 3 (logical right). This will effectively swap the left and right buttons. .Pp -.Dl "moused -p /dev/mouse -t intellimouse -z 4" +.Dl "moused -p /dev/input/event0 -z 4" .Pp Report negative Z axis movement (i.e., mouse wheel) as the button 4 pressed and positive Z axis movement (i.e., mouse wheel) as the button 5 pressed. .Pp If you add .Pp .Dl "ALL ALL = NOPASSWD: /usr/bin/killall -USR1 moused" .Pp to your .Pa /usr/local/etc/sudoers file, and bind .Pp .Dl "killall -USR1 moused" .Pp to a key in your window manager, you can suspend mouse events on your laptop if you keep brushing over the mouse pad while typing. .Sh SEE ALSO +.Xr moused.conf 5 , .Xr kill 1 , .Xr vidcontrol 1 , .Xr xset 1 , .Xr keyboard 4 , .Xr psm 4 , -.Xr screen 4 , .Xr sysmouse 4 , -.Xr ums 4 -.Sh STANDARDS -The -.Nm -utility partially supports -.Dq Plug and Play External COM Device Specification -in order to support PnP serial mice. -However, due to various degrees of conformance to the specification by -existing serial mice, it does not strictly follow the version 1.0 of the -standard. -Even with this less strict approach, -it may not always determine an appropriate protocol type -for the given serial mouse. +.Xr ums 4 , +.Xr devd 8 .Sh HISTORY The .Nm utility first appeared in .Fx 2.2 . +It was rewriten to support multiple input event devices in +.Fx 15.0 . .Sh AUTHORS .An -nosplit The .Nm -utility was written by +utility was originally written by .An Michael Smith Aq Mt msmith@FreeBSD.org . This manual page was written by .An Mike Pritchard Aq Mt mpp@FreeBSD.org . The command and manual page have since been updated by .An Kazutaka Yokota Aq Mt yokota@FreeBSD.org . +Multiple input event devices support was added by +.An Vladimir Kondratyev Aq Mt wulf@FreeBSD.org . .Sh CAVEATS -Many pad devices behave as if the first (left) button were pressed if -the user -.Dq taps -the surface of the pad. -In contrast, some ALPS GlidePoint and Interlink VersaPad models -treat the tapping action -as fourth button events. -Use the option -.Dq Fl m Li 1=4 -for these models -to obtain the same effect as the other pad devices. -.Pp Cut and paste functions in the virtual console assume that there are three buttons on the mouse. The logical button 1 (logical left) selects a region of text in the console and copies it to the cut buffer. The logical button 3 (logical right) extends the selected region. The logical button 2 (logical middle) pastes the selected text at the text cursor position. If the mouse has only two buttons, the middle, `paste' button is not available. To obtain the paste function, use the .Fl 3 option to emulate the middle button, or use the .Fl m option to assign the physical right button to the logical middle button: .Dq Fl m Li 2=3 . diff --git a/usr.sbin/moused/moused/moused.c b/usr.sbin/moused/moused/moused.c new file mode 100644 index 000000000000..33bcf359a1a0 --- /dev/null +++ b/usr.sbin/moused/moused/moused.c @@ -0,0 +1,3205 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 1997-2000 Kazutaka YOKOTA + * Copyright (c) 2004-2008 Philip Paeps + * Copyright (c) 2008 Jean-Sebastien Pedron + * Copyright (c) 2021,2024 Vladimir Kondratyev + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * MOUSED.C + * + * Mouse daemon : listens to a evdev device node for mouse data stream, + * interprets data and passes ioctls off to the console driver. + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "util.h" +#include "quirks.h" + +/* + * bitstr_t implementation must be identical to one found in EVIOCG* + * libevdev ioctls. Our bitstring(3) API is compatible since r299090. + */ +_Static_assert(sizeof(bitstr_t) == sizeof(unsigned long), + "bitstr_t size mismatch"); + +#define MAX_CLICKTHRESHOLD 2000 /* 2 seconds */ +#define MAX_BUTTON2TIMEOUT 2000 /* 2 seconds */ +#define DFLT_CLICKTHRESHOLD 500 /* 0.5 second */ +#define DFLT_BUTTON2TIMEOUT 100 /* 0.1 second */ +#define DFLT_SCROLLTHRESHOLD 3 /* 3 pixels */ +#define DFLT_SCROLLSPEED 2 /* 2 pixels */ +#define DFLT_MOUSE_RESOLUTION 8 /* dpmm, == 200dpi */ +#define DFLT_TPAD_RESOLUTION 40 /* dpmm, typical X res for Synaptics */ +#define DFLT_LINEHEIGHT 10 /* pixels per line */ + +/* Abort 3-button emulation delay after this many movement events. */ +#define BUTTON2_MAXMOVE 3 + +#define MOUSE_XAXIS (-1) +#define MOUSE_YAXIS (-2) + +#define ZMAP_MAXBUTTON 4 /* Number of zmap items */ +#define MAX_FINGERS 10 + +#define ID_NONE 0 +#define ID_PORT 1 +#define ID_IF 2 +#define ID_TYPE 4 +#define ID_MODEL 8 +#define ID_ALL (ID_PORT | ID_IF | ID_TYPE | ID_MODEL) + +/* Operations on timespecs */ +#define tsclr(tvp) timespecclear(tvp) +#define tscmp(tvp, uvp, cmp) timespeccmp(tvp, uvp, cmp) +#define tssub(tvp, uvp, vvp) timespecsub(tvp, uvp, vvp) +#define msec2ts(msec) (struct timespec) { \ + .tv_sec = (msec) / 1000, \ + .tv_nsec = (msec) % 1000 * 1000000, \ +} +static inline struct timespec +tsaddms(struct timespec* tsp, u_int ms) +{ + struct timespec ret; + + ret = msec2ts(ms); + timespecadd(tsp, &ret, &ret); + + return (ret); +}; + +static inline struct timespec +tssubms(struct timespec* tsp, u_int ms) +{ + struct timespec ret; + + ret = msec2ts(ms); + timespecsub(tsp, &ret, &ret); + + return (ret); +}; + +#define debug(...) do { \ + if (debug && nodaemon) \ + warnx(__VA_ARGS__); \ +} while (0) + +#define logerr(e, ...) do { \ + log_or_warn(LOG_DAEMON | LOG_ERR, errno, __VA_ARGS__); \ + exit(e); \ +} while (0) + +#define logerrx(e, ...) do { \ + log_or_warn(LOG_DAEMON | LOG_ERR, 0, __VA_ARGS__); \ + exit(e); \ +} while (0) + +#define logwarn(...) \ + log_or_warn(LOG_DAEMON | LOG_WARNING, errno, __VA_ARGS__) + +#define logwarnx(...) \ + log_or_warn(LOG_DAEMON | LOG_WARNING, 0, __VA_ARGS__) + +/* structures */ + +enum gesture { + GEST_IGNORE, + GEST_ACCUMULATE, + GEST_MOVE, + GEST_VSCROLL, + GEST_HSCROLL, +}; + +/* interfaces (the table must be ordered by DEVICE_IF_XXX in util.h) */ +static const struct { + const char *name; + size_t p_size; +} rifs[] = { + [DEVICE_IF_EVDEV] = { "evdev", sizeof(struct input_event) }, + [DEVICE_IF_SYSMOUSE] = { "sysmouse", MOUSE_SYS_PACKETSIZE }, +}; + +/* types (the table must be ordered by DEVICE_TYPE_XXX in util.h) */ +static const char *rnames[] = { + [DEVICE_TYPE_MOUSE] = "mouse", + [DEVICE_TYPE_POINTINGSTICK] = "pointing stick", + [DEVICE_TYPE_TOUCHPAD] = "touchpad", + [DEVICE_TYPE_TOUCHSCREEN] = "touchscreen", + [DEVICE_TYPE_TABLET] = "tablet", + [DEVICE_TYPE_TABLET_PAD] = "tablet pad", + [DEVICE_TYPE_KEYBOARD] = "keyboard", + [DEVICE_TYPE_JOYSTICK] = "joystick", +}; + +/* Default phisical to logical button mapping */ +static const u_int default_p2l[MOUSE_MAXBUTTON] = { + MOUSE_BUTTON1DOWN, MOUSE_BUTTON2DOWN, MOUSE_BUTTON3DOWN, MOUSE_BUTTON4DOWN, + MOUSE_BUTTON5DOWN, MOUSE_BUTTON6DOWN, MOUSE_BUTTON7DOWN, MOUSE_BUTTON8DOWN, + 0x00000100, 0x00000200, 0x00000400, 0x00000800, + 0x00001000, 0x00002000, 0x00004000, 0x00008000, + 0x00010000, 0x00020000, 0x00040000, 0x00080000, + 0x00100000, 0x00200000, 0x00400000, 0x00800000, + 0x01000000, 0x02000000, 0x04000000, 0x08000000, + 0x10000000, 0x20000000, 0x40000000, +}; + +struct tpcaps { + bool is_clickpad; + bool is_topbuttonpad; + bool is_mt; + bool cap_touch; + bool cap_pressure; + bool cap_width; + int min_x; + int max_x; + int min_y; + int max_y; + int res_x; /* dots per mm */ + int res_y; /* dots per mm */ + int min_p; + int max_p; +}; + +struct tpinfo { + bool two_finger_scroll; /* Enable two finger scrolling */ + bool natural_scroll; /* Enable natural scrolling */ + bool three_finger_drag; /* Enable dragging with three fingers */ + u_int min_pressure_hi; /* Min pressure to start an action */ + u_int min_pressure_lo; /* Min pressure to continue an action */ + u_int max_pressure; /* Maximum pressure to detect palm */ + u_int max_width; /* Max finger width to detect palm */ + int margin_top; /* Top margin */ + int margin_right; /* Right margin */ + int margin_bottom; /* Bottom margin */ + int margin_left; /* Left margin */ + u_int tap_timeout; /* */ + u_int tap_threshold; /* Minimum pressure to detect a tap */ + double tap_max_delta; /* Length of segments above which a tap is ignored */ + u_int taphold_timeout; /* Maximum elapsed time between two taps to consider a tap-hold action */ + double vscroll_ver_area; /* Area reserved for vertical virtual scrolling */ + double vscroll_hor_area; /* Area reserved for horizontal virtual scrolling */ + double vscroll_min_delta; /* Minimum movement to consider virtual scrolling */ + int softbuttons_y; /* Vertical size of softbuttons area */ + int softbutton2_x; /* Horizontal offset of 2-nd softbutton left edge */ + int softbutton3_x; /* Horizontal offset of 3-rd softbutton left edge */ +}; + +struct tpstate { + int start_x; + int start_y; + int prev_x; + int prev_y; + int prev_nfingers; + int fingers_nb; + int tap_button; + bool fingerdown; + bool in_taphold; + int in_vscroll; + u_int zmax; /* maximum pressure value */ + struct timespec taptimeout; /* tap timeout for touchpads */ + int idletimeout; + bool timer_armed; +}; + +struct tpad { + struct tpcaps hw; /* touchpad capabilities */ + struct tpinfo info; /* touchpad gesture parameters */ + struct tpstate gest; /* touchpad gesture state */ +}; + +struct finger { + int x; + int y; + int p; + int w; + int id; /* id=0 - no touch, id>1 - touch id */ +}; + +struct evstate { + int buttons; + /* Relative */ + int dx; + int dy; + int dz; + int dw; + int acc_dx; + int acc_dy; + /* Absolute single-touch */ + int nfingers; + struct finger st; + /* Absolute multi-touch */ + int slot; + struct finger mt[MAX_FINGERS]; + bitstr_t bit_decl(key_ignore, KEY_CNT); + bitstr_t bit_decl(rel_ignore, REL_CNT); + bitstr_t bit_decl(abs_ignore, ABS_CNT); + bitstr_t bit_decl(prop_ignore, INPUT_PROP_CNT); +}; + +/* button status */ +struct button_state { + int count; /* 0: up, 1: single click, 2: double click,... */ + struct timespec ts; /* timestamp on the last button event */ +}; + +struct btstate { + u_int wmode; /* wheel mode button number */ + u_int clickthreshold; /* double click speed in msec */ + struct button_state bstate[MOUSE_MAXBUTTON]; /* button state */ + struct button_state *mstate[MOUSE_MAXBUTTON];/* mapped button st.*/ + u_int p2l[MOUSE_MAXBUTTON];/* phisical to logical button mapping */ + int zmap[ZMAP_MAXBUTTON];/* MOUSE_{X|Y}AXIS or a button number */ + struct button_state zstate[ZMAP_MAXBUTTON]; /* Z/W axis state */ +}; + +/* state machine for 3 button emulation */ + +enum bt3_emul_state { + S0, /* start */ + S1, /* button 1 delayed down */ + S2, /* button 3 delayed down */ + S3, /* both buttons down -> button 2 down */ + S4, /* button 1 delayed up */ + S5, /* button 1 down */ + S6, /* button 3 down */ + S7, /* both buttons down */ + S8, /* button 3 delayed up */ + S9, /* button 1 or 3 up after S3 */ +}; + +#define A(b1, b3) (((b1) ? 2 : 0) | ((b3) ? 1 : 0)) +#define A_TIMEOUT 4 +#define S_DELAYED(st) (states[st].s[A_TIMEOUT] != (st)) + +static const struct { + enum bt3_emul_state s[A_TIMEOUT + 1]; + int buttons; + int mask; + bool timeout; +} states[10] = { + /* S0 */ + { { S0, S2, S1, S3, S0 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN), false }, + /* S1 */ + { { S4, S2, S1, S3, S5 }, 0, ~MOUSE_BUTTON1DOWN, false }, + /* S2 */ + { { S8, S2, S1, S3, S6 }, 0, ~MOUSE_BUTTON3DOWN, false }, + /* S3 */ + { { S0, S9, S9, S3, S3 }, MOUSE_BUTTON2DOWN, ~0, false }, + /* S4 */ + { { S0, S2, S1, S3, S0 }, MOUSE_BUTTON1DOWN, ~0, true }, + /* S5 */ + { { S0, S2, S5, S7, S5 }, MOUSE_BUTTON1DOWN, ~0, false }, + /* S6 */ + { { S0, S6, S1, S7, S6 }, MOUSE_BUTTON3DOWN, ~0, false }, + /* S7 */ + { { S0, S6, S5, S7, S7 }, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, ~0, false }, + /* S8 */ + { { S0, S2, S1, S3, S0 }, MOUSE_BUTTON3DOWN, ~0, true }, + /* S9 */ + { { S0, S9, S9, S3, S9 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN), false }, +}; + +struct e3bstate { + bool enabled; + u_int button2timeout; /* 3 button emulation timeout */ + enum bt3_emul_state mouse_button_state; + struct timespec mouse_button_state_ts; + int mouse_move_delayed; + bool timer_armed; +}; + +enum scroll_state { + SCROLL_NOTSCROLLING, + SCROLL_PREPARE, + SCROLL_SCROLLING, +}; + +struct scroll { + bool enable_vert; + bool enable_hor; + u_int threshold; /* Movement distance before virtual scrolling */ + u_int speed; /* Movement distance to rate of scrolling */ + enum scroll_state state; + int movement; + int hmovement; +}; + +struct drift_xy { + int x; + int y; +}; +struct drift { + u_int distance; /* max steps X+Y */ + u_int time; /* ms */ + struct timespec time_ts; + struct timespec twotime_ts; /* 2*drift_time */ + u_int after; /* ms */ + struct timespec after_ts; + bool terminate; + struct timespec current_ts; + struct timespec last_activity; + struct timespec since; + struct drift_xy last; /* steps in last drift_time */ + struct drift_xy previous; /* steps in prev. drift_time */ +}; + +struct accel { + bool is_exponential; /* Exponential acceleration is enabled */ + double accelx; /* Acceleration in the X axis */ + double accely; /* Acceleration in the Y axis */ + double accelz; /* Acceleration in the wheel axis */ + double expoaccel; /* Exponential acceleration */ + double expoffset; /* Movement offset for exponential accel. */ + double remainx; /* Remainder on X, Y and wheel axis, ... */ + double remainy; /* ... respectively to compensate */ + double remainz; /* ... for rounding errors. */ + double lastlength[3]; +}; + +struct rodent { + struct device dev; /* Device */ + int mfd; /* mouse file descriptor */ + struct btstate btstate; /* button status */ + struct e3bstate e3b; /* 3 button emulation state */ + struct drift drift; + struct accel accel; /* cursor acceleration state */ + struct scroll scroll; /* virtual scroll state */ + struct tpad tp; /* touchpad info and gesture state */ + struct evstate ev; /* event device state */ + SLIST_ENTRY(rodent) next; +}; + +/* global variables */ + +static SLIST_HEAD(rodent_list, rodent) rodents = SLIST_HEAD_INITIALIZER(); + +static int debug = 0; +static bool nodaemon = false; +static bool background = false; +static bool paused = false; +static bool opt_grab = false; +static int identify = ID_NONE; +static int cfd = -1; /* /dev/consolectl file descriptor */ +static int kfd = -1; /* kqueue file descriptor */ +static int dfd = -1; /* devd socket descriptor */ +static const char *portname = NULL; +static const char *pidfile = "/var/run/moused.pid"; +static struct pidfh *pfh; +#ifndef CONFDIR +#define CONFDIR "/etc" +#endif +static const char *config_file = CONFDIR "/moused.conf"; +#ifndef QUIRKSDIR +#define QUIRKSDIR "/usr/share/moused" +#endif +static const char *quirks_path = QUIRKSDIR; +static struct quirks_context *quirks; + +static int opt_rate = 0; +static int opt_resolution = MOUSE_RES_UNKNOWN; + +static u_int opt_wmode = 0; +static int opt_clickthreshold = -1; +static bool opt_e3b_enabled = false; +static int opt_e3b_button2timeout = -1; +static struct btstate opt_btstate; + +static bool opt_drift_terminate = false; +static u_int opt_drift_distance = 4; /* max steps X+Y */ +static u_int opt_drift_time = 500; /* ms */ +static u_int opt_drift_after = 4000; /* ms */ + +static double opt_accelx = 1.0; +static double opt_accely = 1.0; +static bool opt_exp_accel = false; +static double opt_expoaccel = 1.0; +static double opt_expoffset = 1.0; + +static bool opt_virtual_scroll = false; +static bool opt_hvirtual_scroll = false; +static int opt_scroll_speed = -1; +static int opt_scroll_threshold = -1; + +static jmp_buf env; + +/* function prototypes */ + +static moused_log_handler log_or_warn_va; + +static void linacc(struct accel *, int, int, int, int*, int*, int*); +static void expoacc(struct accel *, int, int, int, int*, int*, int*); +static void moused(void); +static void reset(int sig); +static void pause_mouse(int sig); +static int connect_devd(void); +static void fetch_and_parse_devd(void); +static void usage(void); +static void log_or_warn(int log_pri, int errnum, const char *fmt, ...) + __printflike(3, 4); + +static int r_daemon(void); +static enum device_if r_identify_if(int fd); +static enum device_type r_identify_evdev(int fd); +static enum device_type r_identify_sysmouse(int fd); +static const char *r_if(enum device_if type); +static const char *r_name(enum device_type type); +static struct rodent *r_init(const char *path); +static void r_init_all(void); +static void r_deinit(struct rodent *r); +static void r_deinit_all(void); +static int r_protocol_evdev(enum device_type type, struct tpad *tp, + struct evstate *ev, struct input_event *ie, + mousestatus_t *act); +static int r_protocol_sysmouse(uint8_t *pBuf, mousestatus_t *act); +static void r_vscroll_detect(struct rodent *r, struct scroll *sc, + mousestatus_t *act); +static void r_vscroll(struct scroll *sc, mousestatus_t *act); +static int r_statetrans(struct rodent *r, mousestatus_t *a1, + mousestatus_t *a2, int trans); +static bool r_installmap(char *arg, struct btstate *bt); +static char * r_installzmap(char **argv, int argc, int* idx, struct btstate *bt); +static void r_map(mousestatus_t *act1, mousestatus_t *act2, + struct btstate *bt); +static void r_timestamp(mousestatus_t *act, struct btstate *bt, + struct e3bstate *e3b, struct drift *drift); +static bool r_timeout(struct e3bstate *e3b); +static void r_move(mousestatus_t *act, struct accel *acc); +static void r_click(mousestatus_t *act, struct btstate *bt); +static bool r_drift(struct drift *, mousestatus_t *); +static enum gesture r_gestures(struct tpad *tp, int x0, int y0, u_int z, int w, + int nfingers, struct timespec *time, mousestatus_t *ms); + +int +main(int argc, char *argv[]) +{ + struct rodent *r; + pid_t mpid; + int c; + int i; + u_long ul; + char *errstr; + + while ((c = getopt(argc, argv, "3A:C:E:F:HI:L:T:VU:a:dfghi:l:m:p:r:t:q:w:z:")) != -1) { + switch(c) { + + case '3': + opt_e3b_enabled = true; + break; + + case 'E': + errno = 0; + ul = strtoul(optarg, NULL, 10); + if ((ul == 0 && errno != 0) || + ul > MAX_BUTTON2TIMEOUT) { + warnx("invalid argument `%s'", optarg); + usage(); + } + opt_e3b_button2timeout = ul; + break; + + case 'a': + i = sscanf(optarg, "%lf,%lf", &opt_accelx, &opt_accely); + if (i == 0) { + warnx("invalid linear acceleration argument " + "'%s'", optarg); + usage(); + } + if (i == 1) + opt_accely = opt_accelx; + break; + + case 'A': + opt_exp_accel = true; + i = sscanf(optarg, "%lf,%lf", &opt_expoaccel, + &opt_expoffset); + if (i == 0) { + warnx("invalid exponential acceleration " + "argument '%s'", optarg); + usage(); + } + if (i == 1) + opt_expoffset = 1.0; + break; + + case 'd': + ++debug; + break; + + case 'f': + nodaemon = true; + break; + + case 'g': + opt_grab = true; + break; + + case 'i': + if (strcmp(optarg, "all") == 0) + identify = ID_ALL; + else if (strcmp(optarg, "port") == 0) + identify = ID_PORT; + else if (strcmp(optarg, "if") == 0) + identify = ID_IF; + else if (strcmp(optarg, "type") == 0) + identify = ID_TYPE; + else if (strcmp(optarg, "model") == 0) + identify = ID_MODEL; + else { + warnx("invalid argument `%s'", optarg); + usage(); + } + nodaemon = true; + break; + + case 'l': + ul = strtoul(optarg, NULL, 10); + if (ul != 1) + warnx("ignore mouse level `%s'", optarg); + break; + + case 'm': + if (!r_installmap(optarg, &opt_btstate)) { + warnx("invalid argument `%s'", optarg); + usage(); + } + break; + + case 'p': + /* "auto" is an alias to no portname */ + if (strcmp(optarg, "auto") != 0) + portname = optarg; + break; + + case 'r': + if (strcmp(optarg, "high") == 0) + opt_resolution = MOUSE_RES_HIGH; + else if (strcmp(optarg, "medium-high") == 0) + opt_resolution = MOUSE_RES_HIGH; + else if (strcmp(optarg, "medium-low") == 0) + opt_resolution = MOUSE_RES_MEDIUMLOW; + else if (strcmp(optarg, "low") == 0) + opt_resolution = MOUSE_RES_LOW; + else if (strcmp(optarg, "default") == 0) + opt_resolution = MOUSE_RES_DEFAULT; + else { + ul= strtoul(optarg, NULL, 10); + if (ul == 0) { + warnx("invalid argument `%s'", optarg); + usage(); + } + opt_resolution = ul; + } + break; + + case 't': + if (strcmp(optarg, "auto") != 0) + warnx("ignore mouse type `%s'", optarg); + break; + + case 'w': + ul = strtoul(optarg, NULL, 10); + if (ul == 0 || ul > MOUSE_MAXBUTTON) { + warnx("invalid argument `%s'", optarg); + usage(); + } + opt_wmode = ul; + break; + + case 'z': + --optind; + errstr = r_installzmap(argv, argc, &optind, &opt_btstate); + if (errstr != NULL) { + warnx("%s", errstr); + free(errstr); + usage(); + } + break; + + case 'C': + ul = strtoul(optarg, NULL, 10); + if (ul > MAX_CLICKTHRESHOLD) { + warnx("invalid argument `%s'", optarg); + usage(); + } + opt_clickthreshold = ul; + break; + + case 'F': + ul = strtoul(optarg, NULL, 10); + if (ul == 0) { + warnx("invalid argument `%s'", optarg); + usage(); + } + opt_rate = ul; + break; + + case 'H': + opt_hvirtual_scroll = true; + break; + + case 'I': + pidfile = optarg; + break; + + case 'L': + errno = 0; + ul = strtoul(optarg, NULL, 10); + if ((ul == 0 && errno != 0) || ul > INT_MAX) { + warnx("invalid argument `%s'", optarg); + usage(); + } + opt_scroll_speed = ul; + break; + + case 'q': + config_file = optarg; + break; + + case 'Q': + quirks_path = optarg; + break; + + case 'T': + opt_drift_terminate = true; + sscanf(optarg, "%u,%u,%u", &opt_drift_distance, + &opt_drift_time, &opt_drift_after); + if (opt_drift_distance == 0 || + opt_drift_time == 0 || + opt_drift_after == 0) { + warnx("invalid argument `%s'", optarg); + usage(); + } + break; + + case 'V': + opt_virtual_scroll = true; + break; + + case 'U': + errno = 0; + ul = strtoul(optarg, NULL, 10); + if ((ul == 0 && errno != 0) || ul > INT_MAX) { + warnx("invalid argument `%s'", optarg); + usage(); + } + opt_scroll_threshold = ul; + break; + + case 'h': + case '?': + default: + usage(); + } + } + + if ((cfd = open("/dev/consolectl", O_RDWR, 0)) == -1) + logerr(1, "cannot open /dev/consolectl"); + if ((kfd = kqueue()) == -1) + logerr(1, "cannot create kqueue"); + if (portname == NULL && (dfd = connect_devd()) == -1) + logwarnx("cannot open devd socket"); + + switch (setjmp(env)) { + case SIGHUP: + quirks_context_unref(quirks); + r_deinit_all(); + /* FALLTHROUGH */ + case 0: + break; + case SIGINT: + case SIGQUIT: + case SIGTERM: + exit(0); + /* NOT REACHED */ + default: + goto out; + } + + signal(SIGHUP , reset); + signal(SIGINT , reset); + signal(SIGQUIT, reset); + signal(SIGTERM, reset); + signal(SIGUSR1, pause_mouse); + + quirks = quirks_init_subsystem(quirks_path, config_file, + log_or_warn_va, + background ? QLOG_MOUSED_LOGGING : QLOG_CUSTOM_LOG_PRIORITIES); + if (quirks == NULL) + logwarnx("cannot open configuration file %s", config_file); + + if (portname == NULL) { + r_init_all(); + } else { + if ((r = r_init(portname)) == NULL) + logerrx(1, "Can not initialize device"); + } + + /* print some information */ + if (identify != ID_NONE) { + SLIST_FOREACH(r, &rodents, next) { + if (identify == ID_ALL) + printf("%s %s %s %s\n", + r->dev.path, r_if(r->dev.iftype), + r_name(r->dev.type), r->dev.name); + else if (identify & ID_PORT) + printf("%s\n", r->dev.path); + else if (identify & ID_IF) + printf("%s\n", r_if(r->dev.iftype)); + else if (identify & ID_TYPE) + printf("%s\n", r_name(r->dev.type)); + else if (identify & ID_MODEL) + printf("%s\n", r->dev.name); + } + exit(0); + } + + if (!nodaemon && !background) { + pfh = pidfile_open(pidfile, 0600, &mpid); + if (pfh == NULL) { + if (errno == EEXIST) + logerrx(1, "moused already running, pid: %d", mpid); + logwarn("cannot open pid file"); + } + if (r_daemon()) { + int saved_errno = errno; + pidfile_remove(pfh); + errno = saved_errno; + logerr(1, "failed to become a daemon"); + } else { + background = true; + pidfile_write(pfh); + } + } + + moused(); + +out: + quirks_context_unref(quirks); + + r_deinit_all(); + if (dfd != -1) + close(dfd); + if (kfd != -1) + close(kfd); + if (cfd != -1) + close(cfd); + + exit(0); +} + +/* + * Function to calculate linear acceleration. + * + * If there are any rounding errors, the remainder + * is stored in the remainx and remainy variables + * and taken into account upon the next movement. + */ + +static void +linacc(struct accel *acc, int dx, int dy, int dz, + int *movex, int *movey, int *movez) +{ + double fdx, fdy, fdz; + + if (dx == 0 && dy == 0 && dz == 0) { + *movex = *movey = *movez = 0; + return; + } + fdx = dx * acc->accelx + acc->remainx; + fdy = dy * acc->accely + acc->remainy; + fdz = dz * acc->accelz + acc->remainz; + *movex = lround(fdx); + *movey = lround(fdy); + *movez = lround(fdz); + acc->remainx = fdx - *movex; + acc->remainy = fdy - *movey; + acc->remainz = fdz - *movez; +} + +/* + * Function to calculate exponential acceleration. + * (Also includes linear acceleration if enabled.) + * + * In order to give a smoother behaviour, we record the four + * most recent non-zero movements and use their average value + * to calculate the acceleration. + */ + +static void +expoacc(struct accel *acc, int dx, int dy, int dz, + int *movex, int *movey, int *movez) +{ + double fdx, fdy, fdz, length, lbase, accel; + + if (dx == 0 && dy == 0 && dz == 0) { + *movex = *movey = *movez = 0; + return; + } + fdx = dx * acc->accelx; + fdy = dy * acc->accely; + fdz = dz * acc->accelz; + length = sqrt((fdx * fdx) + (fdy * fdy)); /* Pythagoras */ + length = (length + acc->lastlength[0] + acc->lastlength[1] + + acc->lastlength[2]) / 4; + lbase = length / acc->expoffset; + accel = pow(lbase, acc->expoaccel) / lbase; + fdx = fdx * accel + acc->remainx; + fdy = fdy * accel + acc->remainy; + *movex = lround(fdx); + *movey = lround(fdy); + *movez = lround(fdz); + acc->remainx = fdx - *movex; + acc->remainy = fdy - *movey; + acc->remainz = fdz - *movez; + acc->lastlength[2] = acc->lastlength[1]; + acc->lastlength[1] = acc->lastlength[0]; + /* Insert new average, not original length! */ + acc->lastlength[0] = length; +} + +static void +moused(void) +{ + struct rodent *r = NULL; + mousestatus_t action0; /* original mouse action */ + mousestatus_t action; /* interim buffer */ + mousestatus_t action2; /* mapped action */ + struct kevent ke[3]; + int nchanges; + union { + struct input_event ie; + uint8_t se[MOUSE_SYS_PACKETSIZE]; + } b; + size_t b_size; + ssize_t r_size; + int flags; + int c; + + /* clear mouse data */ + bzero(&action0, sizeof(action0)); + bzero(&action, sizeof(action)); + bzero(&action2, sizeof(action2)); + /* process mouse data */ + for (;;) { + + if (dfd == -1 && portname == NULL) + dfd = connect_devd(); + nchanges = 0; + if (r != NULL && r->e3b.enabled && + S_DELAYED(r->e3b.mouse_button_state)) { + EV_SET(ke + nchanges, r->mfd << 1, EVFILT_TIMER, + EV_ADD | EV_ENABLE | EV_DISPATCH, 0, 20, r); + nchanges++; + r->e3b.timer_armed = true; + } + if (r != NULL && r->tp.gest.idletimeout > 0) { + EV_SET(ke + nchanges, r->mfd << 1 | 1, EVFILT_TIMER, + EV_ADD | EV_ENABLE | EV_DISPATCH, + 0, r->tp.gest.idletimeout, r); + nchanges++; + r->tp.gest.timer_armed = true; + } + if (dfd == -1 && nchanges == 0 && portname == NULL) { + EV_SET(ke + nchanges, UINTPTR_MAX, EVFILT_TIMER, + EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 1000, NULL); + nchanges++; + } + + if (!(r != NULL && r->tp.gest.idletimeout == 0)) { + c = kevent(kfd, ke, nchanges, ke, 1, NULL); + if (c <= 0) { /* error */ + logwarn("failed to read from mouse"); + continue; + } + } else + c = 0; + /* Devd event */ + if (c > 0 && ke[0].udata == NULL) { + if (ke[0].filter == EVFILT_READ) { + if ((ke[0].flags & EV_EOF) != 0) { + logwarn("devd connection is closed"); + close(dfd); + dfd = -1; + } else + fetch_and_parse_devd(); + } else if (ke[0].filter == EVFILT_TIMER) { + /* DO NOTHING */ + } + continue; + } + if (c > 0) + r = ke[0].udata; + /* E3B timeout */ + if (c > 0 && ke[0].filter == EVFILT_TIMER && + (ke[0].ident & 1) == 0) { + /* assert(rodent.flags & Emulate3Button) */ + action0.button = action0.obutton; + action0.dx = action0.dy = action0.dz = 0; + action0.flags = flags = 0; + r->e3b.timer_armed = false; + if (r_timeout(&r->e3b) && + r_statetrans(r, &action0, &action, A_TIMEOUT)) { + if (debug > 2) + debug("flags:%08x buttons:%08x obuttons:%08x", + action.flags, action.button, action.obutton); + } else { + action0.obutton = action0.button; + continue; + } + } else { + /* mouse movement */ + if (c > 0 && ke[0].filter == EVFILT_READ) { + b_size = rifs[r->dev.iftype].p_size; + r_size = read(r->mfd, &b, b_size); + if (r_size == -1) { + if (errno == EWOULDBLOCK) + continue; + else if (portname == NULL) { + r_deinit(r); + r = NULL; + continue; + } else + return; + } + if (r_size != (ssize_t)b_size) { + logwarn("Short read from mouse: " + "%zd bytes", r_size); + continue; + } + /* Disarm nonexpired timers */ + nchanges = 0; + if (r->e3b.timer_armed) { + EV_SET(ke + nchanges, r->mfd << 1, + EVFILT_TIMER, EV_DISABLE, 0, 0, r); + nchanges++; + r->e3b.timer_armed = false; + } + if (r->tp.gest.timer_armed) { + EV_SET(ke + nchanges, r->mfd << 1 | 1, + EVFILT_TIMER, EV_DISABLE, 0, 0, r); + nchanges++; + r->tp.gest.timer_armed = false; + } + if (nchanges != 0) + kevent(kfd, ke, nchanges, NULL, 0, NULL); + } else { + /* + * Gesture timeout expired. + * Notify r_gestures by empty packet. + */ +#ifdef DONE_RIGHT + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + b.ie.time.tv_sec = ts.tv_sec; + b.ie.time.tv_usec = ts.tv_nsec / 1000; +#else + /* Hacky but cheap */ + b.ie.time.tv_sec = + r->tp.gest.idletimeout == 0 ? 0 : LONG_MAX; + b.ie.time.tv_usec = 0; +#endif + b.ie.type = EV_SYN; + b.ie.code = SYN_REPORT; + b.ie.value = 1; + if (c > 0) + r->tp.gest.timer_armed = false; + } + r->tp.gest.idletimeout = -1; + flags = r->dev.iftype == DEVICE_IF_EVDEV ? + r_protocol_evdev(r->dev.type, + &r->tp, &r->ev, &b.ie, &action0) : + r_protocol_sysmouse(b.se, &action0); + if (flags == 0) + continue; + + if (r->scroll.enable_vert || r->scroll.enable_hor) { + if (action0.button == MOUSE_BUTTON2DOWN) { + debug("[BUTTON2] flags:%08x buttons:%08x obuttons:%08x", + action.flags, action.button, action.obutton); + } else { + debug("[NOTBUTTON2] flags:%08x buttons:%08x obuttons:%08x", + action.flags, action.button, action.obutton); + } + r_vscroll_detect(r, &r->scroll, &action0); + } + + r_timestamp(&action0, &r->btstate, &r->e3b, &r->drift); + r_statetrans(r, &action0, &action, + A(action0.button & MOUSE_BUTTON1DOWN, + action0.button & MOUSE_BUTTON3DOWN)); + debug("flags:%08x buttons:%08x obuttons:%08x", action.flags, + action.button, action.obutton); + } + action0.obutton = action0.button; + flags &= MOUSE_POSCHANGED; + flags |= action.obutton ^ action.button; + action.flags = flags; + + if (flags == 0) + continue; + + /* handler detected action */ + r_map(&action, &action2, &r->btstate); + debug("activity : buttons 0x%08x dx %d dy %d dz %d", + action2.button, action2.dx, action2.dy, action2.dz); + + if (r->scroll.enable_vert || r->scroll.enable_hor) { + /* + * If *only* the middle button is pressed AND we are moving + * the stick/trackpoint/nipple, scroll! + */ + r_vscroll(&r->scroll, &action2); + } + + if (r->drift.terminate) { + if ((flags & MOUSE_POSCHANGED) == 0 || + action.dz || action2.dz) + r->drift.last_activity = r->drift.current_ts; + else { + if (r_drift (&r->drift, &action2)) + continue; + } + } + + /* Defer clicks until we aren't VirtualScroll'ing. */ + if (r->scroll.state == SCROLL_NOTSCROLLING) + r_click(&action2, &r->btstate); + + if (action2.flags & MOUSE_POSCHANGED) + r_move(&action2, &r->accel); + + /* + * If the Z axis movement is mapped to an imaginary physical + * button, we need to cook up a corresponding button `up' event + * after sending a button `down' event. + */ + if ((r->btstate.zmap[0] > 0) && (action.dz != 0)) { + action.obutton = action.button; + action.dx = action.dy = action.dz = 0; + r_map(&action, &action2, &r->btstate); + debug("activity : buttons 0x%08x dx %d dy %d dz %d", + action2.button, action2.dx, action2.dy, action2.dz); + + r_click(&action2, &r->btstate); + } + } + /* NOT REACHED */ +} + +static void +reset(int sig) +{ + longjmp(env, sig); +} + +static void +pause_mouse(__unused int sig) +{ + paused = !paused; +} + +static int +connect_devd(void) +{ + const static struct sockaddr_un sa = { + .sun_family = AF_UNIX, + .sun_path = "/var/run/devd.seqpacket.pipe", + }; + struct kevent kev; + int fd; + + fd = socket(AF_UNIX, SOCK_SEQPACKET | SOCK_CLOEXEC, 0); + if (fd < 0) + return (-1); + if (connect(fd, (const struct sockaddr *) &sa, sizeof(sa)) < 0) { + close(fd); + return (-1); + } + EV_SET(&kev, fd, EVFILT_READ, EV_ADD, 0, 0, 0); + if (kevent(kfd, &kev, 1, NULL, 0, NULL) < 0) { + close(fd); + return (-1); + } + + return (fd); +} + +static void +fetch_and_parse_devd(void) +{ + char ev[1024]; + char path[22] = "/dev/"; + char *cdev, *cr; + ssize_t len; + + if ((len = recv(dfd, ev, sizeof(ev), MSG_WAITALL)) <= 0) { + close(dfd); + dfd = -1; + return; + } + + if (ev[0] != '!') + return; + if (strnstr(ev, "system=DEVFS", len) == NULL) + return; + if (strnstr(ev, "subsystem=CDEV", len) == NULL) + return; + if (strnstr(ev, "type=CREATE", len) == NULL) + return; + if ((cdev = strnstr(ev, "cdev=input/event", len)) == NULL) + return; + cr = strchr(cdev, '\n'); + if (cr != NULL) + *cr = '\0'; + cr = strchr(cdev, ' '); + if (cr != NULL) + *cr = '\0'; + strncpy(path + 5, cdev + 5, 17); + (void)r_init(path); + return; +} + +/* + * usage + * + * Complain, and free the CPU for more worthy tasks + */ +static void +usage(void) +{ + fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n", + "usage: moused [-dfg] [-I file] [-F rate] [-r resolution]", + " [-VH [-U threshold]] [-a X[,Y]] [-C threshold] [-m N=M] [-w N]", + " [-z N] [-t ] [-l level] [-3 [-E timeout]]", + " [-T distance[,time[,after]]] -p [-q config] [-Q quirks]", + " moused [-d] -i -p "); + exit(1); +} + +/* + * Output an error message to syslog or stderr as appropriate. If + * `errnum' is non-zero, append its string form to the message. + */ +static void +log_or_warn_va(int log_pri, int errnum, const char *fmt, va_list ap) +{ + char buf[256]; + size_t len; + + if (debug == 0 && log_pri > LOG_ERR) + return; + + vsnprintf(buf, sizeof(buf), fmt, ap); + + /* Strip trailing line-feed appended by quirk subsystem */ + len = strlen(buf); + if (len != 0 && buf[len - 1] == '\n') + buf[len - 1] = '\0'; + + if (errnum) { + strlcat(buf, ": ", sizeof(buf)); + strlcat(buf, strerror(errnum), sizeof(buf)); + } + + if (background) + syslog(log_pri, "%s", buf); + else + warnx("%s", buf); +} + +static void +log_or_warn(int log_pri, int errnum, const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + log_or_warn_va(log_pri, errnum, fmt, ap); + va_end(ap); +} + +static int +r_daemon(void) +{ + struct sigaction osa, sa; + pid_t newgrp; + int oerrno; + int osa_ok; + int nullfd; + + /* A SIGHUP may be thrown when the parent exits below. */ + sigemptyset(&sa.sa_mask); + sa.sa_handler = SIG_IGN; + sa.sa_flags = 0; + osa_ok = sigaction(SIGHUP, &sa, &osa); + + /* Keep kqueue fd alive */ + switch (rfork(RFPROC)) { + case -1: + return (-1); + case 0: + break; + default: + /* + * A fine point: _exit(0), not exit(0), to avoid triggering + * atexit(3) processing + */ + _exit(0); + } + + newgrp = setsid(); + oerrno = errno; + if (osa_ok != -1) + sigaction(SIGHUP, &osa, NULL); + + if (newgrp == -1) { + errno = oerrno; + return (-1); + } + + (void)chdir("/"); + + nullfd = open("/dev/null", O_RDWR, 0); + if (nullfd != -1) { + (void)dup2(nullfd, STDIN_FILENO); + (void)dup2(nullfd, STDOUT_FILENO); + (void)dup2(nullfd, STDERR_FILENO); + } + if (nullfd > 2) + close(nullfd); + + return (0); +} + +static inline int +bit_find(bitstr_t *array, int start, int stop) +{ + int res; + + bit_ffs_at(array, start, stop + 1, &res); + return (res != -1); +} + +static enum device_if +r_identify_if(int fd) +{ + int dummy; + + if (ioctl(fd, EVIOCGVERSION, &dummy) >= 0) + return (DEVICE_IF_EVDEV); + if (ioctl(fd, MOUSE_GETLEVEL, &dummy) >= 0) + return (DEVICE_IF_SYSMOUSE); + return (DEVICE_IF_UNKNOWN); +} + +/* Derived from EvdevProbe() function of xf86-input-evdev driver */ +static enum device_type +r_identify_evdev(int fd) +{ + enum device_type type; + bitstr_t bit_decl(key_bits, KEY_CNT); /* */ + bitstr_t bit_decl(rel_bits, REL_CNT); /* Evdev capabilities */ + bitstr_t bit_decl(abs_bits, ABS_CNT); /* */ + bitstr_t bit_decl(prop_bits, INPUT_PROP_CNT); + bool has_keys, has_buttons, has_lmr, has_rel_axes, has_abs_axes; + bool has_mt; + + /* maybe this is a evdev mouse... */ + if (ioctl(fd, EVIOCGBIT(EV_REL, sizeof(rel_bits)), rel_bits) < 0 || + ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(abs_bits)), abs_bits) < 0 || + ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(key_bits)), key_bits) < 0 || + ioctl(fd, EVIOCGPROP(sizeof(prop_bits)), prop_bits) < 0) { + return (DEVICE_TYPE_UNKNOWN); + } + + has_keys = bit_find(key_bits, 0, BTN_MISC - 1); + has_buttons = bit_find(key_bits, BTN_MISC, BTN_JOYSTICK - 1); + has_lmr = bit_find(key_bits, BTN_LEFT, BTN_MIDDLE); + has_rel_axes = bit_find(rel_bits, 0, REL_MAX); + has_abs_axes = bit_find(abs_bits, 0, ABS_MAX); + has_mt = bit_find(abs_bits, ABS_MT_SLOT, ABS_MAX); + type = DEVICE_TYPE_UNKNOWN; + + if (has_abs_axes) { + if (has_mt && !has_buttons) { + /* TBD:Improve joystick detection */ + if (bit_test(key_bits, BTN_JOYSTICK)) { + return (DEVICE_TYPE_JOYSTICK); + } else { + has_buttons = true; + } + } + + if (bit_test(abs_bits, ABS_X) && + bit_test(abs_bits, ABS_Y)) { + if (bit_test(key_bits, BTN_TOOL_PEN) || + bit_test(key_bits, BTN_STYLUS) || + bit_test(key_bits, BTN_STYLUS2)) { + type = DEVICE_TYPE_TABLET; + } else if (bit_test(abs_bits, ABS_PRESSURE) || + bit_test(key_bits, BTN_TOUCH)) { + if (has_lmr || + bit_test(key_bits, BTN_TOOL_FINGER)) { + type = DEVICE_TYPE_TOUCHPAD; + } else { + type = DEVICE_TYPE_TOUCHSCREEN; + } + /* some touchscreens use BTN_LEFT rather than BTN_TOUCH */ + } else if (!(bit_test(rel_bits, REL_X) && + bit_test(rel_bits, REL_Y)) && + has_lmr) { + type = DEVICE_TYPE_TOUCHSCREEN; + } + } + } + + if (type == DEVICE_TYPE_UNKNOWN) { + if (has_keys) + type = DEVICE_TYPE_KEYBOARD; + else if (has_rel_axes || has_buttons) + type = DEVICE_TYPE_MOUSE; + } + + return (type); +} + +static enum device_type +r_identify_sysmouse(int fd __unused) +{ + /* All sysmouse devices act like mices */ + return (DEVICE_TYPE_MOUSE); +} + +static const char * +r_if(enum device_if type) +{ + const char *unknown = "unknown"; + + return (type == DEVICE_IF_UNKNOWN || type >= (int)nitems(rifs) ? + unknown : rifs[type].name); +} + +static const char * +r_name(enum device_type type) +{ + const char *unknown = "unknown"; + + return (type == DEVICE_TYPE_UNKNOWN || type >= (int)nitems(rnames) ? + unknown : rnames[type]); +} + +static int +r_init_dev_evdev(int fd, struct device *dev) +{ + if (ioctl(fd, EVIOCGNAME(sizeof(dev->name) - 1), dev->name) < 0) { + logwarnx("unable to get device %s name", dev->path); + return (errno); + } + /* Do not loop events */ + if (strncmp(dev->name, "System mouse", sizeof(dev->name)) == 0) { + return (ENOTSUP); + } + if (ioctl(fd, EVIOCGID, &dev->id) < 0) { + logwarnx("unable to get device %s ID", dev->path); + return (errno); + } + (void)ioctl(fd, EVIOCGUNIQ(sizeof(dev->uniq) - 1), dev->uniq); + + return (0); +} + +static int +r_init_dev_sysmouse(int fd, struct device *dev) +{ + mousemode_t *mode = &dev->mode; + int level; + + level = 1; + if (ioctl(fd, MOUSE_SETLEVEL, &level) < 0) { + logwarnx("unable to MOUSE_SETLEVEL for device %s", dev->path); + return (errno); + } + if (ioctl(fd, MOUSE_GETLEVEL, &level) < 0) { + logwarnx("unable to MOUSE_GETLEVEL for device %s", dev->path); + return (errno); + } + if (level != 1) { + logwarnx("unable to set level to 1 for device %s", dev->path); + return (ENOTSUP); + } + memset(mode, 0, sizeof(*mode)); + if (ioctl(fd, MOUSE_GETMODE, mode) < 0) { + logwarnx("unable to MOUSE_GETMODE for device %s", dev->path); + return (errno); + } + if (mode->protocol != MOUSE_PROTO_SYSMOUSE) { + logwarnx("unable to set sysmouse protocol for device %s", + dev->path); + return (ENOTSUP); + } + if (mode->packetsize != MOUSE_SYS_PACKETSIZE) { + logwarnx("unable to set sysmouse packet size for device %s", + dev->path); + return (ENOTSUP); + } + + /* TODO: Fill name, id and uniq from dev.* sysctls */ + strlcpy(dev->name, dev->path, sizeof(dev->name)); + + return (0); +} + +static void +r_init_evstate(struct quirks *q, struct evstate *ev) +{ + const struct quirk_tuples *t; + bitstr_t *bitstr; + int maxbit; + + if (quirks_get_tuples(q, QUIRK_ATTR_EVENT_CODE, &t)) { + for (size_t i = 0; i < t->ntuples; i++) { + int type = t->tuples[i].first; + int code = t->tuples[i].second; + bool enable = t->tuples[i].third; + + switch (type) { + case EV_KEY: + bitstr = (bitstr_t *)&ev->key_ignore; + maxbit = KEY_MAX; + break; + case EV_REL: + bitstr = (bitstr_t *)&ev->rel_ignore; + maxbit = REL_MAX; + break; + case EV_ABS: + bitstr = (bitstr_t *)&ev->abs_ignore; + maxbit = ABS_MAX; + break; + default: + continue; + } + + if (code == EVENT_CODE_UNDEFINED) { + if (enable) + bit_nclear(bitstr, 0, maxbit); + else + bit_nset(bitstr, 0, maxbit); + } else { + if (code > maxbit) + continue; + if (enable) + bit_clear(bitstr, code); + else + bit_set(bitstr, code); + } + } + } + + if (quirks_get_tuples(q, QUIRK_ATTR_INPUT_PROP, &t)) { + for (size_t idx = 0; idx < t->ntuples; idx++) { + unsigned int p = t->tuples[idx].first; + bool enable = t->tuples[idx].second; + + if (p > INPUT_PROP_MAX) + continue; + if (enable) + bit_clear(ev->prop_ignore, p); + else + bit_set(ev->prop_ignore, p); + } + } +} + +static void +r_init_buttons(struct quirks *q, struct btstate *bt, struct e3bstate *e3b) +{ + struct timespec ts; + int i, j; + + *bt = (struct btstate) { + .clickthreshold = DFLT_CLICKTHRESHOLD, + .zmap = { 0, 0, 0, 0 }, + }; + + memcpy(bt->p2l, default_p2l, sizeof(bt->p2l)); + for (i = 0; i < MOUSE_MAXBUTTON; ++i) { + j = i; + if (opt_btstate.p2l[i] != 0) + bt->p2l[i] = opt_btstate.p2l[i]; + if (opt_btstate.mstate[i] != NULL) + j = opt_btstate.mstate[i] - opt_btstate.bstate; + bt->mstate[i] = bt->bstate + j; + } + + if (opt_btstate.zmap[0] != 0) + memcpy(bt->zmap, opt_btstate.zmap, sizeof(bt->zmap)); + if (opt_clickthreshold >= 0) + bt->clickthreshold = opt_clickthreshold; + else + quirks_get_uint32(q, MOUSED_CLICK_THRESHOLD, &bt->clickthreshold); + if (opt_wmode != 0) + bt->wmode = opt_wmode; + else + quirks_get_uint32(q, MOUSED_WMODE, &bt->wmode); + if (bt->wmode != 0) + bt->wmode = 1 << (bt->wmode - 1); + + /* fix Z axis mapping */ + for (i = 0; i < ZMAP_MAXBUTTON; ++i) { + if (bt->zmap[i] <= 0) + continue; + for (j = 0; j < MOUSE_MAXBUTTON; ++j) { + if (bt->mstate[j] == &bt->bstate[bt->zmap[i] - 1]) + bt->mstate[j] = &bt->zstate[i]; + } + bt->zmap[i] = 1 << (bt->zmap[i] - 1); + } + + clock_gettime(CLOCK_MONOTONIC_FAST, &ts); + + *e3b = (struct e3bstate) { + .enabled = false, + .button2timeout = DFLT_BUTTON2TIMEOUT, + }; + e3b->enabled = opt_e3b_enabled; + if (!e3b->enabled) + quirks_get_bool(q, MOUSED_EMULATE_THIRD_BUTTON, &e3b->enabled); + if (opt_e3b_button2timeout >= 0) + e3b->button2timeout = opt_e3b_button2timeout; + else + quirks_get_uint32(q, MOUSED_EMULATE_THIRD_BUTTON_TIMEOUT, + &e3b->button2timeout); + e3b->mouse_button_state = S0; + e3b->mouse_button_state_ts = ts; + e3b->mouse_move_delayed = 0; + + for (i = 0; i < MOUSE_MAXBUTTON; ++i) { + bt->bstate[i].count = 0; + bt->bstate[i].ts = ts; + } + for (i = 0; i < ZMAP_MAXBUTTON; ++i) { + bt->zstate[i].count = 0; + bt->zstate[i].ts = ts; + } +} + +static void +r_init_touchpad_hw(int fd, struct quirks *q, struct tpcaps *tphw, + struct evstate *ev) +{ + struct input_absinfo ai; + bitstr_t bit_decl(key_bits, KEY_CNT); + bitstr_t bit_decl(abs_bits, ABS_CNT); + bitstr_t bit_decl(prop_bits, INPUT_PROP_CNT); + struct quirk_range r; + struct quirk_dimensions dim; + u_int u; + + ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(abs_bits)), abs_bits); + ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(key_bits)), key_bits); + + if (!bit_test(ev->abs_ignore, ABS_X) && + ioctl(fd, EVIOCGABS(ABS_X), &ai) >= 0) { + tphw->min_x = (ai.maximum > ai.minimum) ? ai.minimum : INT_MIN; + tphw->max_x = (ai.maximum > ai.minimum) ? ai.maximum : INT_MAX; + tphw->res_x = ai.resolution == 0 ? + DFLT_TPAD_RESOLUTION : ai.resolution; + } + if (!bit_test(ev->abs_ignore, ABS_Y) && + ioctl(fd, EVIOCGABS(ABS_Y), &ai) >= 0) { + tphw->min_y = (ai.maximum > ai.minimum) ? ai.minimum : INT_MIN; + tphw->max_y = (ai.maximum > ai.minimum) ? ai.maximum : INT_MAX; + tphw->res_y = ai.resolution == 0 ? + DFLT_TPAD_RESOLUTION : ai.resolution; + } + if (quirks_get_dimensions(q, QUIRK_ATTR_RESOLUTION_HINT, &dim)) { + tphw->res_x = dim.x; + tphw->res_y = dim.y; + } else if (tphw->max_x != INT_MAX && tphw->max_y != INT_MAX && + quirks_get_dimensions(q, QUIRK_ATTR_SIZE_HINT, &dim)) { + tphw->res_x = (tphw->max_x - tphw->min_x) / dim.x; + tphw->res_y = (tphw->max_y - tphw->min_y) / dim.y; + } + if (!bit_test(ev->key_ignore, BTN_TOUCH) && + bit_test(key_bits, BTN_TOUCH)) + tphw->cap_touch = true; + /* XXX: libinput uses ABS_MT_PRESSURE where available */ + if (!bit_test(ev->abs_ignore, ABS_PRESSURE) && + bit_test(abs_bits, ABS_PRESSURE) && + ioctl(fd, EVIOCGABS(ABS_PRESSURE), &ai) >= 0) { + tphw->cap_pressure = true; + tphw->min_p = ai.minimum; + tphw->max_p = ai.maximum; + } + if (tphw->cap_pressure && + quirks_get_range(q, QUIRK_ATTR_PRESSURE_RANGE, &r)) { + if (r.upper == 0 && r.lower == 0) { + debug("pressure-based touch detection disabled"); + tphw->cap_pressure = false; + } else if (r.upper > tphw->max_p || r.upper < tphw->min_p || + r.lower > tphw->max_p || r.lower < tphw->min_p) { + debug("discarding out-of-bounds pressure range %d:%d", + r.lower, r.upper); + tphw->cap_pressure = false; + } + } + /* XXX: libinput uses ABS_MT_TOUCH_MAJOR where available */ + if (!bit_test(ev->abs_ignore, ABS_TOOL_WIDTH) && + bit_test(abs_bits, ABS_TOOL_WIDTH) && + quirks_get_uint32(q, QUIRK_ATTR_PALM_SIZE_THRESHOLD, &u) && + u != 0) + tphw->cap_width = true; + if (!bit_test(ev->abs_ignore, ABS_MT_SLOT) && + bit_test(abs_bits, ABS_MT_SLOT) && + !bit_test(ev->abs_ignore, ABS_MT_TRACKING_ID) && + bit_test(abs_bits, ABS_MT_TRACKING_ID) && + !bit_test(ev->abs_ignore, ABS_MT_POSITION_X) && + bit_test(abs_bits, ABS_MT_POSITION_X) && + !bit_test(ev->abs_ignore, ABS_MT_POSITION_Y) && + bit_test(abs_bits, ABS_MT_POSITION_Y)) + tphw->is_mt = true; + if ( ioctl(fd, EVIOCGPROP(sizeof(prop_bits)), prop_bits) >= 0 && + !bit_test(ev->prop_ignore, INPUT_PROP_BUTTONPAD) && + bit_test(prop_bits, INPUT_PROP_BUTTONPAD)) + tphw->is_clickpad = true; + if ( tphw->is_clickpad && + !bit_test(ev->prop_ignore, INPUT_PROP_TOPBUTTONPAD) && + bit_test(prop_bits, INPUT_PROP_TOPBUTTONPAD)) + tphw->is_topbuttonpad = true; +} + +static void +r_init_touchpad_info(struct quirks *q, struct tpcaps *tphw, + struct tpinfo *tpinfo) +{ + struct quirk_range r; + int i; + u_int u; + int sz_x, sz_y; + + *tpinfo = (struct tpinfo) { + .two_finger_scroll = true, + .natural_scroll = false, + .three_finger_drag = false, + .min_pressure_hi = 1, + .min_pressure_lo = 1, + .max_pressure = 130, + .max_width = 16, + .tap_timeout = 180, /* ms */ + .tap_threshold = 0, + .tap_max_delta = 1.3, /* mm */ + .taphold_timeout = 300, /* ms */ + .vscroll_min_delta = 1.25, /* mm */ + .vscroll_hor_area = 0.0, /* mm */ + .vscroll_ver_area = -15.0, /* mm */ + }; + + quirks_get_bool(q, MOUSED_TWO_FINGER_SCROLL, &tpinfo->two_finger_scroll); + quirks_get_bool(q, MOUSED_NATURAL_SCROLL, &tpinfo->natural_scroll); + quirks_get_bool(q, MOUSED_THREE_FINGER_DRAG, &tpinfo->three_finger_drag); + quirks_get_uint32(q, MOUSED_TAP_TIMEOUT, &tpinfo->tap_timeout); + quirks_get_double(q, MOUSED_TAP_MAX_DELTA, &tpinfo->tap_max_delta); + quirks_get_uint32(q, MOUSED_TAPHOLD_TIMEOUT, &tpinfo->taphold_timeout); + quirks_get_double(q, MOUSED_VSCROLL_MIN_DELTA, &tpinfo->vscroll_min_delta); + quirks_get_double(q, MOUSED_VSCROLL_HOR_AREA, &tpinfo->vscroll_hor_area); + quirks_get_double(q, MOUSED_VSCROLL_VER_AREA, &tpinfo->vscroll_ver_area); + + if (tphw->cap_pressure && + quirks_get_range(q, QUIRK_ATTR_PRESSURE_RANGE, &r)) { + tpinfo->min_pressure_lo = r.lower; + tpinfo->min_pressure_hi = r.upper; + quirks_get_uint32(q, QUIRK_ATTR_PALM_PRESSURE_THRESHOLD, + &tpinfo->max_pressure); + quirks_get_uint32(q, MOUSED_TAP_PRESSURE_THRESHOLD, + &tpinfo->tap_threshold); + } + if (tphw->cap_width) + quirks_get_uint32(q, QUIRK_ATTR_PALM_SIZE_THRESHOLD, + &tpinfo->max_width); + /* Set bottom quarter as 42% - 16% - 42% sized softbuttons */ + if (tphw->is_clickpad) { + sz_x = tphw->max_x - tphw->min_x; + sz_y = tphw->max_y - tphw->min_y; + i = 25; + if (tphw->is_topbuttonpad) + i = -i; + quirks_get_int32(q, MOUSED_SOFTBUTTONS_Y, &i); + tpinfo->softbuttons_y = sz_y * i / 100; + u = 42; + quirks_get_uint32(q, MOUSED_SOFTBUTTON2_X, &u); + tpinfo->softbutton2_x = sz_x * u / 100; + u = 58; + quirks_get_uint32(q, MOUSED_SOFTBUTTON3_X, &u); + tpinfo->softbutton3_x = sz_x * u / 100; + } +} + +static void +r_init_touchpad_accel(struct tpcaps *tphw, struct accel *accel) +{ + /* Normalize pointer movement to match 200dpi mouse */ + accel->accelx *= DFLT_MOUSE_RESOLUTION; + accel->accelx /= tphw->res_x; + accel->accely *= DFLT_MOUSE_RESOLUTION; + accel->accely /= tphw->res_y; + accel->accelz *= DFLT_MOUSE_RESOLUTION; + accel->accelz /= (tphw->res_x * DFLT_LINEHEIGHT); +} + +static void +r_init_touchpad_gesture(struct tpstate *gest) +{ + gest->idletimeout = -1; +} + +static void +r_init_drift(struct quirks *q, struct drift *d) +{ + if (opt_drift_terminate) { + d->terminate = true; + d->distance = opt_drift_distance; + d->time = opt_drift_time; + d->after = opt_drift_after; + } else if (quirks_get_bool(q, MOUSED_DRIFT_TERMINATE, &d->terminate) && + d->terminate) { + quirks_get_uint32(q, MOUSED_DRIFT_DISTANCE, &d->distance); + quirks_get_uint32(q, MOUSED_DRIFT_TIME, &d->time); + quirks_get_uint32(q, MOUSED_DRIFT_AFTER, &d->after); + } else + return; + + if (d->distance == 0 || d->time == 0 || d->after == 0) { + warnx("invalid drift parameter"); + exit(1); + } + + debug("terminate drift: distance %d, time %d, after %d", + d->distance, d->time, d->after); + + d->time_ts = msec2ts(d->time); + d->twotime_ts = msec2ts(d->time * 2); + d->after_ts = msec2ts(d->after); +} + +static void +r_init_accel(struct quirks *q, struct accel *acc) +{ + bool r1, r2; + + acc->accelx = opt_accelx; + if (opt_accelx == 1.0) + quirks_get_double(q, MOUSED_LINEAR_ACCEL_X, &acc->accelx); + acc->accely = opt_accely; + if (opt_accely == 1.0) + quirks_get_double(q, MOUSED_LINEAR_ACCEL_Y, &acc->accely); + if (!quirks_get_double(q, MOUSED_LINEAR_ACCEL_Z, &acc->accelz)) + acc->accelz = 1.0; + acc->lastlength[0] = acc->lastlength[1] = acc->lastlength[2] = 0.0; + if (opt_exp_accel) { + acc->is_exponential = true; + acc->expoaccel = opt_expoaccel; + acc->expoffset = opt_expoffset; + return; + } + acc->expoaccel = acc->expoffset = 1.0; + r1 = quirks_get_double(q, MOUSED_EXPONENTIAL_ACCEL, &acc->expoaccel); + r2 = quirks_get_double(q, MOUSED_EXPONENTIAL_OFFSET, &acc->expoffset); + if (r1 || r2) + acc->is_exponential = true; +} + +static void +r_init_scroll(struct quirks *q, struct scroll *scroll) +{ + *scroll = (struct scroll) { + .threshold = DFLT_SCROLLTHRESHOLD, + .speed = DFLT_SCROLLSPEED, + .state = SCROLL_NOTSCROLLING, + }; + scroll->enable_vert = opt_virtual_scroll; + if (!opt_virtual_scroll) + quirks_get_bool(q, MOUSED_VIRTUAL_SCROLL_ENABLE, &scroll->enable_vert); + scroll->enable_hor = opt_hvirtual_scroll; + if (!opt_hvirtual_scroll) + quirks_get_bool(q, MOUSED_HOR_VIRTUAL_SCROLL_ENABLE, &scroll->enable_hor); + if (opt_scroll_speed >= 0) + scroll->speed = opt_scroll_speed; + else + quirks_get_uint32(q, MOUSED_VIRTUAL_SCROLL_SPEED, &scroll->speed); + if (opt_scroll_threshold >= 0) + scroll->threshold = opt_scroll_threshold; + else + quirks_get_uint32(q, MOUSED_VIRTUAL_SCROLL_THRESHOLD, &scroll->threshold); +} + +static struct rodent * +r_init(const char *path) +{ + struct rodent *r; + struct device dev; + struct quirks *q; + struct kevent kev; + enum device_if iftype; + enum device_type type; + int fd, err; + bool grab; + bool ignore; + bool qvalid; + + fd = open(path, O_RDWR | O_NONBLOCK); + if (fd == -1) { + logwarnx("unable to open %s", path); + return (NULL); + } + + iftype = r_identify_if(fd); + switch (iftype) { + case DEVICE_IF_UNKNOWN: + debug("cannot determine interface type on %s", path); + close(fd); + errno = ENOTSUP; + return (NULL); + case DEVICE_IF_EVDEV: + type = r_identify_evdev(fd); + break; + case DEVICE_IF_SYSMOUSE: + type = r_identify_sysmouse(fd); + break; + default: + debug("unsupported interface type: %s on %s", + r_if(iftype), path); + close(fd); + errno = ENXIO; + return (NULL); + } + + switch (type) { + case DEVICE_TYPE_UNKNOWN: + debug("cannot determine device type on %s", path); + close(fd); + errno = ENOTSUP; + return (NULL); + case DEVICE_TYPE_MOUSE: + case DEVICE_TYPE_TOUCHPAD: + break; + default: + debug("unsupported device type: %s on %s", + r_name(type), path); + close(fd); + errno = ENXIO; + return (NULL); + } + + memset(&dev, 0, sizeof(struct device)); + strlcpy(dev.path, path, sizeof(dev.path)); + dev.iftype = iftype; + dev.type = type; + switch (iftype) { + case DEVICE_IF_EVDEV: + err = r_init_dev_evdev(fd, &dev); + break; + case DEVICE_IF_SYSMOUSE: + err = r_init_dev_sysmouse(fd, &dev); + break; + default: + debug("unsupported interface type: %s on %s", + r_if(iftype), path); + err = ENXIO; + } + if (err != 0) { + debug("failed to initialize device: %s %s on %s", + r_if(iftype), r_name(type), path); + close(fd); + errno = err; + return (NULL); + } + + debug("port: %s interface: %s type: %s model: %s", + path, r_if(iftype), r_name(type), dev.name); + + q = quirks_fetch_for_device(quirks, &dev); + + qvalid = quirks_get_bool(q, MOUSED_IGNORE_DEVICE, &ignore); + if (qvalid && ignore) { + debug("%s: device ignored", path); + close(fd); + quirks_unref(q); + errno = EPERM; + return (NULL); + } + + switch (iftype) { + case DEVICE_IF_EVDEV: + grab = opt_grab; + if (!grab) + qvalid = quirks_get_bool(q, MOUSED_GRAB_DEVICE, &grab); + if (qvalid && grab && ioctl(fd, EVIOCGRAB, 1) == -1) { + logwarnx("failed to grab %s", path); + err = errno; + } + break; + case DEVICE_IF_SYSMOUSE: + if (opt_resolution == MOUSE_RES_UNKNOWN && opt_rate == 0) + break; + if (opt_resolution != MOUSE_RES_UNKNOWN) + dev.mode.resolution = opt_resolution; + if (opt_resolution != 0) + dev.mode.rate = opt_rate; + if (ioctl(fd, MOUSE_SETMODE, &dev.mode) < 0) + debug("failed to MOUSE_SETMODE for device %s", path); + break; + default: + debug("unsupported interface type: %s on %s", + r_if(iftype), path); + err = ENXIO; + } + if (err != 0) { + debug("failed to initialize device: %s %s on %s", + r_if(iftype), r_name(type), path); + close(fd); + quirks_unref(q); + errno = err; + return (NULL); + } + + r = calloc(1, sizeof(struct rodent)); + memcpy(&r->dev, &dev, sizeof(struct device)); + r->mfd = fd; + + EV_SET(&kev, fd, EVFILT_READ, EV_ADD, 0, 0, r); + err = kevent(kfd, &kev, 1, NULL, 0, NULL); + if (err == -1) { + logwarnx("failed to register kevent on %s", path); + close(fd); + free(r); + quirks_unref(q); + return (NULL); + } + + if (iftype == DEVICE_IF_EVDEV) + r_init_evstate(q, &r->ev); + r_init_buttons(q, &r->btstate, &r->e3b); + r_init_scroll(q, &r->scroll); + r_init_accel(q, &r->accel); + switch (type) { + case DEVICE_TYPE_TOUCHPAD: + r_init_touchpad_hw(fd, q, &r->tp.hw, &r->ev); + r_init_touchpad_info(q, &r->tp.hw, &r->tp.info); + r_init_touchpad_accel(&r->tp.hw, &r->accel); + r_init_touchpad_gesture(&r->tp.gest); + break; + + case DEVICE_TYPE_MOUSE: + r_init_drift(q, &r->drift); + break; + + default: + debug("unsupported device type: %s", r_name(type)); + break; + } + + quirks_unref(q); + + SLIST_INSERT_HEAD(&rodents, r, next); + + return (r); +} + +static void +r_init_all(void) +{ + char path[22] = "/dev/input/"; + DIR *dirp; + struct dirent *dp; + + dirp = opendir("/dev/input"); + if (dirp == NULL) + logerr(1, "Failed to open /dev/input"); + + while ((dp = readdir(dirp)) != NULL) { + if (fnmatch("event[0-9]*", dp->d_name, 0) == 0) { + strncpy(path + 11, dp->d_name, 10); + (void)r_init(path); + } + } + (void)closedir(dirp); + + return; +} + +static void +r_deinit(struct rodent *r) +{ + struct kevent ke[3]; + + if (r == NULL) + return; + if (r->mfd != -1) { + EV_SET(ke, r->mfd, EVFILT_READ, EV_DELETE, 0, 0, r); + EV_SET(ke + 1, r->mfd << 1, EVFILT_TIMER, EV_DELETE, 0, 0, r); + EV_SET(ke + 2, r->mfd << 1 | 1, + EVFILT_TIMER, EV_DELETE, 0, 0, r); + kevent(kfd, ke, nitems(ke), NULL, 0, NULL); + close(r->mfd); + } + SLIST_REMOVE(&rodents, r, rodent, next); + debug("destroy device: port: %s model: %s", r->dev.path, r->dev.name); + free(r); +} + +static void +r_deinit_all(void) +{ + while (!SLIST_EMPTY(&rodents)) + r_deinit(SLIST_FIRST(&rodents)); +} + +static int +r_protocol_evdev(enum device_type type, struct tpad *tp, struct evstate *ev, + struct input_event *ie, mousestatus_t *act) +{ + const struct tpcaps *tphw = &tp->hw; + const struct tpinfo *tpinfo = &tp->info; + + static int butmapev[8] = { /* evdev */ + 0, + MOUSE_BUTTON1DOWN, + MOUSE_BUTTON3DOWN, + MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, + MOUSE_BUTTON2DOWN, + MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN, + MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN, + MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN + }; + struct timespec ietime; + + /* Drop ignored codes */ + switch (ie->type) { + case EV_REL: + if (bit_test(ev->rel_ignore, ie->code)) + return (0); + case EV_ABS: + if (bit_test(ev->abs_ignore, ie->code)) + return (0); + case EV_KEY: + if (bit_test(ev->key_ignore, ie->code)) + return (0); + } + + if (debug > 1) + debug("received event 0x%02x, 0x%04x, %d", + ie->type, ie->code, ie->value); + + switch (ie->type) { + case EV_REL: + switch (ie->code) { + case REL_X: + ev->dx += ie->value; + break; + case REL_Y: + ev->dy += ie->value; + break; + case REL_WHEEL: + ev->dz += ie->value; + break; + case REL_HWHEEL: + ev->dw += ie->value; + break; + } + break; + case EV_ABS: + switch (ie->code) { + case ABS_X: + if (!tphw->is_mt) + ev->dx += ie->value - ev->st.x; + ev->st.x = ie->value; + break; + case ABS_Y: + if (!tphw->is_mt) + ev->dy += ie->value - ev->st.y; + ev->st.y = ie->value; + break; + case ABS_PRESSURE: + ev->st.p = ie->value; + break; + case ABS_TOOL_WIDTH: + ev->st.w = ie->value; + break; + case ABS_MT_SLOT: + if (tphw->is_mt) + ev->slot = ie->value; + break; + case ABS_MT_TRACKING_ID: + if (tphw->is_mt && + ev->slot >= 0 && ev->slot < MAX_FINGERS) { + if (ie->value != -1 && ev->mt[ev->slot].id > 0 && + ie->value + 1 != ev->mt[ev->slot].id) { + debug("tracking id changed %d->%d", + ie->value, ev->mt[ev->slot].id - 1); + ev->mt[ev->slot].id = 0; + } else + ev->mt[ev->slot].id = ie->value + 1; + } + break; + case ABS_MT_POSITION_X: + if (tphw->is_mt && + ev->slot >= 0 && ev->slot < MAX_FINGERS) { + /* Find fastest finger */ + int dx = ie->value - ev->mt[ev->slot].x; + if (abs(dx) > abs(ev->dx)) + ev->dx = dx; + ev->mt[ev->slot].x = ie->value; + } + break; + case ABS_MT_POSITION_Y: + if (tphw->is_mt && + ev->slot >= 0 && ev->slot < MAX_FINGERS) { + /* Find fastest finger */ + int dy = ie->value - ev->mt[ev->slot].y; + if (abs(dy) > abs(ev->dy)) + ev->dy = dy; + ev->mt[ev->slot].y = ie->value; + } + break; + } + break; + case EV_KEY: + switch (ie->code) { + case BTN_TOUCH: + ev->st.id = ie->value != 0 ? 1 : 0; + break; + case BTN_TOOL_FINGER: + ev->nfingers = ie->value != 0 ? 1 : ev->nfingers; + break; + case BTN_TOOL_DOUBLETAP: + ev->nfingers = ie->value != 0 ? 2 : ev->nfingers; + break; + case BTN_TOOL_TRIPLETAP: + ev->nfingers = ie->value != 0 ? 3 : ev->nfingers; + break; + case BTN_TOOL_QUADTAP: + ev->nfingers = ie->value != 0 ? 4 : ev->nfingers; + break; + case BTN_TOOL_QUINTTAP: + ev->nfingers = ie->value != 0 ? 5 : ev->nfingers; + break; + case BTN_LEFT ... BTN_LEFT + 7: + ev->buttons &= ~(1 << (ie->code - BTN_LEFT)); + ev->buttons |= ((!!ie->value) << (ie->code - BTN_LEFT)); + break; + } + break; + } + + if ( ie->type != EV_SYN || + (ie->code != SYN_REPORT && ie->code != SYN_DROPPED)) + return (0); + + /* + * assembly full package + */ + + ietime.tv_sec = ie->time.tv_sec; + ietime.tv_nsec = ie->time.tv_usec * 1000; + + if (!tphw->cap_pressure && ev->st.id != 0) + ev->st.p = MAX(tpinfo->min_pressure_hi, tpinfo->tap_threshold); + if (tphw->cap_touch && ev->st.id == 0) + ev->st.p = 0; + + act->obutton = act->button; + act->button = butmapev[ev->buttons & MOUSE_SYS_STDBUTTONS]; + act->button |= (ev->buttons & ~MOUSE_SYS_STDBUTTONS); + + if (type == DEVICE_TYPE_TOUCHPAD) { + if (debug > 1) + debug("absolute data %d,%d,%d,%d", ev->st.x, ev->st.y, + ev->st.p, ev->st.w); + switch (r_gestures(tp, ev->st.x, ev->st.y, ev->st.p, ev->st.w, + ev->nfingers, &ietime, act)) { + case GEST_IGNORE: + ev->dx = 0; + ev->dy = 0; + ev->dz = 0; + ev->acc_dx = ev->acc_dy = 0; + debug("gesture IGNORE"); + break; + case GEST_ACCUMULATE: /* Revertable pointer movement. */ + ev->acc_dx += ev->dx; + ev->acc_dy += ev->dy; + debug("gesture ACCUMULATE %d,%d", ev->dx, ev->dy); + ev->dx = 0; + ev->dy = 0; + break; + case GEST_MOVE: /* Pointer movement. */ + ev->dx += ev->acc_dx; + ev->dy += ev->acc_dy; + ev->acc_dx = ev->acc_dy = 0; + debug("gesture MOVE %d,%d", ev->dx, ev->dy); + break; + case GEST_VSCROLL: /* Vertical scrolling. */ + if (tpinfo->natural_scroll) + ev->dz = -ev->dy; + else + ev->dz = ev->dy; + ev->dx = -ev->acc_dx; + ev->dy = -ev->acc_dy; + ev->acc_dx = ev->acc_dy = 0; + debug("gesture VSCROLL %d", ev->dz); + break; + case GEST_HSCROLL: /* Horizontal scrolling. */ +/* + if (ev.dx != 0) { + if (tpinfo->natural_scroll) + act->button |= (ev.dx > 0) + ? MOUSE_BUTTON6DOWN + : MOUSE_BUTTON7DOWN; + else + act->button |= (ev.dx > 0) + ? MOUSE_BUTTON7DOWN + : MOUSE_BUTTON6DOWN; + } +*/ + ev->dx = -ev->acc_dx; + ev->dy = -ev->acc_dy; + ev->acc_dx = ev->acc_dy = 0; + debug("gesture HSCROLL %d", ev->dw); + break; + } + } + + debug("assembled full packet %d,%d,%d", ev->dx, ev->dy, ev->dz); + act->dx = ev->dx; + act->dy = ev->dy; + act->dz = ev->dz; + ev->dx = ev->dy = ev->dz = ev->dw = 0; + + /* has something changed? */ + act->flags = ((act->dx || act->dy || act->dz) ? MOUSE_POSCHANGED : 0) + | (act->obutton ^ act->button); + + return (act->flags); +} + +static int +r_protocol_sysmouse(uint8_t *pBuf, mousestatus_t *act) +{ + static int butmapmsc[8] = { /* sysmouse */ + 0, + MOUSE_BUTTON3DOWN, + MOUSE_BUTTON2DOWN, + MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN, + MOUSE_BUTTON1DOWN, + MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, + MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN, + MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN + }; + + debug("%02x %02x %02x %02x %02x %02x %02x %02x", pBuf[0], pBuf[1], + pBuf[2], pBuf[3], pBuf[4], pBuf[5], pBuf[6], pBuf[7]); + + if ((pBuf[0] & MOUSE_SYS_SYNCMASK) != MOUSE_SYS_SYNC) + return (0); + + act->button = butmapmsc[(~pBuf[0]) & MOUSE_SYS_STDBUTTONS]; + act->dx = (signed char)(pBuf[1]) + (signed char)(pBuf[3]); + act->dy = - ((signed char)(pBuf[2]) + (signed char)(pBuf[4])); + act->dz = ((signed char)(pBuf[5] << 1) + (signed char)(pBuf[6] << 1)) >> 1; + act->button |= ((~pBuf[7] & MOUSE_SYS_EXTBUTTONS) << 3); + + /* has something changed? */ + act->flags = ((act->dx || act->dy || act->dz) ? MOUSE_POSCHANGED : 0) + | (act->obutton ^ act->button); + + return (act->flags); +} + +static void +r_vscroll_detect(struct rodent *r, struct scroll *sc, mousestatus_t *act) +{ + mousestatus_t newaction; + + /* Allow middle button drags to scroll up and down */ + if (act->button == MOUSE_BUTTON2DOWN) { + if (sc->state == SCROLL_NOTSCROLLING) { + sc->state = SCROLL_PREPARE; + sc->movement = sc->hmovement = 0; + debug("PREPARING TO SCROLL"); + } + return; + } + + /* This isn't a middle button down... move along... */ + switch (sc->state) { + case SCROLL_SCROLLING: + /* + * We were scrolling, someone let go of button 2. + * Now turn autoscroll off. + */ + sc->state = SCROLL_NOTSCROLLING; + debug("DONE WITH SCROLLING / %d", sc->state); + break; + case SCROLL_PREPARE: + newaction = *act; + + /* We were preparing to scroll, but we never moved... */ + r_timestamp(act, &r->btstate, &r->e3b, &r->drift); + r_statetrans(r, act, &newaction, + A(newaction.button & MOUSE_BUTTON1DOWN, + act->button & MOUSE_BUTTON3DOWN)); + + /* Send middle down */ + newaction.button = MOUSE_BUTTON2DOWN; + r_click(&newaction, &r->btstate); + + /* Send middle up */ + r_timestamp(&newaction, &r->btstate, &r->e3b, &r->drift); + newaction.obutton = newaction.button; + newaction.button = act->button; + r_click(&newaction, &r->btstate); + break; + default: + break; + } +} + +static void +r_vscroll(struct scroll *sc, mousestatus_t *act) +{ + switch (sc->state) { + case SCROLL_PREPARE: + /* Middle button down, waiting for movement threshold */ + if (act->dy == 0 && act->dx == 0) + break; + if (sc->enable_vert) { + sc->movement += act->dy; + if ((u_int)abs(sc->movement) > sc->threshold) + sc->state = SCROLL_SCROLLING; + } + if (sc->enable_hor) { + sc->hmovement += act->dx; + if ((u_int)abs(sc->hmovement) > sc->threshold) + sc->state = SCROLL_SCROLLING; + } + if (sc->state == SCROLL_SCROLLING) + sc->movement = sc->hmovement = 0; + break; + case SCROLL_SCROLLING: + if (sc->enable_vert) { + sc->movement += act->dy; + debug("SCROLL: %d", sc->movement); + if (sc->movement < -(int)sc->speed) { + /* Scroll down */ + act->dz = -1; + sc->movement = 0; + } + else if (sc->movement > (int)sc->speed) { + /* Scroll up */ + act->dz = 1; + sc->movement = 0; + } + } + if (sc->enable_hor) { + sc->hmovement += act->dx; + debug("HORIZONTAL SCROLL: %d", sc->hmovement); + + if (sc->hmovement < -(int)sc->speed) { + act->dz = -2; + sc->hmovement = 0; + } + else if (sc->hmovement > (int)sc->speed) { + act->dz = 2; + sc->hmovement = 0; + } + } + + /* Don't move while scrolling */ + act->dx = act->dy = 0; + break; + default: + break; + } +} + +static bool +r_drift (struct drift *drift, mousestatus_t *act) +{ + struct timespec tmp; + + /* X or/and Y movement only - possibly drift */ + tssub(&drift->current_ts, &drift->last_activity, &tmp); + if (tscmp(&tmp, &drift->after_ts, >)) { + tssub(&drift->current_ts, &drift->since, &tmp); + if (tscmp(&tmp, &drift->time_ts, <)) { + drift->last.x += act->dx; + drift->last.y += act->dy; + } else { + /* discard old accumulated steps (drift) */ + if (tscmp(&tmp, &drift->twotime_ts, >)) + drift->previous.x = drift->previous.y = 0; + else + drift->previous = drift->last; + drift->last.x = act->dx; + drift->last.y = act->dy; + drift->since = drift->current_ts; + } + if ((u_int)abs(drift->last.x) + abs(drift->last.y) > drift->distance) { + /* real movement, pass all accumulated steps */ + act->dx = drift->previous.x + drift->last.x; + act->dy = drift->previous.y + drift->last.y; + /* and reset accumulators */ + tsclr(&drift->since); + drift->last.x = drift->last.y = 0; + /* drift_previous will be cleared at next movement*/ + drift->last_activity = drift->current_ts; + } else { + return (true); /* don't pass current movement to + * console driver */ + } + } + return (false); +} + +static int +r_statetrans(struct rodent *r, mousestatus_t *a1, mousestatus_t *a2, int trans) +{ + struct e3bstate *e3b = &r->e3b; + bool changed; + int flags; + + a2->dx = a1->dx; + a2->dy = a1->dy; + a2->dz = a1->dz; + a2->obutton = a2->button; + a2->button = a1->button; + a2->flags = a1->flags; + changed = false; + + if (!e3b->enabled) + return (false); + + if (debug > 2) + debug("state:%d, trans:%d -> state:%d", + e3b->mouse_button_state, trans, + states[e3b->mouse_button_state].s[trans]); + /* + * Avoid re-ordering button and movement events. While a button + * event is deferred, throw away up to BUTTON2_MAXMOVE movement + * events to allow for mouse jitter. If more movement events + * occur, then complete the deferred button events immediately. + */ + if ((a2->dx != 0 || a2->dy != 0) && + S_DELAYED(states[e3b->mouse_button_state].s[trans])) { + if (++e3b->mouse_move_delayed > BUTTON2_MAXMOVE) { + e3b->mouse_move_delayed = 0; + e3b->mouse_button_state = + states[e3b->mouse_button_state].s[A_TIMEOUT]; + changed = true; + } else + a2->dx = a2->dy = 0; + } else + e3b->mouse_move_delayed = 0; + if (e3b->mouse_button_state != states[e3b->mouse_button_state].s[trans]) + changed = true; + if (changed) + clock_gettime(CLOCK_MONOTONIC_FAST, + &e3b->mouse_button_state_ts); + e3b->mouse_button_state = states[e3b->mouse_button_state].s[trans]; + a2->button &= ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN | + MOUSE_BUTTON3DOWN); + a2->button &= states[e3b->mouse_button_state].mask; + a2->button |= states[e3b->mouse_button_state].buttons; + flags = a2->flags & MOUSE_POSCHANGED; + flags |= a2->obutton ^ a2->button; + if (flags & MOUSE_BUTTON2DOWN) { + a2->flags = flags & MOUSE_BUTTON2DOWN; + r_timestamp(a2, &r->btstate, e3b, &r->drift); + } + a2->flags = flags; + + return (changed); +} + +static char * +skipspace(char *s) +{ + while(isspace(*s)) + ++s; + return (s); +} + +static bool +r_installmap(char *arg, struct btstate *bt) +{ + u_long pbutton; + u_long lbutton; + char *s; + + while (*arg) { + arg = skipspace(arg); + s = arg; + while (isdigit(*arg)) + ++arg; + arg = skipspace(arg); + if ((arg <= s) || (*arg != '=')) + return (false); + lbutton = strtoul(s, NULL, 10); + + arg = skipspace(++arg); + s = arg; + while (isdigit(*arg)) + ++arg; + if ((arg <= s) || (!isspace(*arg) && (*arg != '\0'))) + return (false); + pbutton = strtoul(s, NULL, 10); + + if (lbutton == 0 || lbutton > MOUSE_MAXBUTTON) + return (false); + if (pbutton == 0 || pbutton > MOUSE_MAXBUTTON) + return (false); + bt->p2l[pbutton - 1] = 1 << (lbutton - 1); + bt->mstate[lbutton - 1] = &bt->bstate[pbutton - 1]; + } + + return (true); +} + +static char * +r_installzmap(char **argv, int argc, int* idx, struct btstate *bt) +{ + char *arg, *errstr; + u_long i, j; + + arg = argv[*idx]; + ++*idx; + if (strcmp(arg, "x") == 0) { + bt->zmap[0] = MOUSE_XAXIS; + return (NULL); + } + if (strcmp(arg, "y") == 0) { + bt->zmap[0] = MOUSE_YAXIS; + return (NULL); + } + i = strtoul(arg, NULL, 10); + /* + * Use button i for negative Z axis movement and + * button (i + 1) for positive Z axis movement. + */ + if (i == 0 || i >= MOUSE_MAXBUTTON) { + asprintf(&errstr, "invalid argument `%s'", arg); + return (errstr); + } + bt->zmap[0] = i; + bt->zmap[1] = i + 1; + debug("optind: %d, optarg: '%s'", *idx, arg); + for (j = 1; j < ZMAP_MAXBUTTON; ++j) { + if ((*idx >= argc) || !isdigit(*argv[*idx])) + break; + i = strtoul(argv[*idx], NULL, 10); + if (i == 0 || i >= MOUSE_MAXBUTTON) { + asprintf(&errstr, "invalid argument `%s'", argv[*idx]); + return (errstr); + } + bt->zmap[j] = i; + ++*idx; + } + if ((bt->zmap[2] != 0) && (bt->zmap[3] == 0)) + bt->zmap[3] = bt->zmap[2] + 1; + + return (NULL); +} + +static void +r_map(mousestatus_t *act1, mousestatus_t *act2, struct btstate *bt) +{ + int pb; + int pbuttons; + int lbuttons; + + pbuttons = act1->button; + lbuttons = 0; + + act2->obutton = act2->button; + if (pbuttons & bt->wmode) { + pbuttons &= ~bt->wmode; + act1->dz = act1->dy; + act1->dx = 0; + act1->dy = 0; + } + act2->dx = act1->dx; + act2->dy = act1->dy; + act2->dz = act1->dz; + + switch (bt->zmap[0]) { + case 0: /* do nothing */ + break; + case MOUSE_XAXIS: + if (act1->dz != 0) { + act2->dx = act1->dz; + act2->dz = 0; + } + break; + case MOUSE_YAXIS: + if (act1->dz != 0) { + act2->dy = act1->dz; + act2->dz = 0; + } + break; + default: /* buttons */ + pbuttons &= ~(bt->zmap[0] | bt->zmap[1] + | bt->zmap[2] | bt->zmap[3]); + if ((act1->dz < -1) && bt->zmap[2]) { + pbuttons |= bt->zmap[2]; + bt->zstate[2].count = 1; + } else if (act1->dz < 0) { + pbuttons |= bt->zmap[0]; + bt->zstate[0].count = 1; + } else if ((act1->dz > 1) && bt->zmap[3]) { + pbuttons |= bt->zmap[3]; + bt->zstate[3].count = 1; + } else if (act1->dz > 0) { + pbuttons |= bt->zmap[1]; + bt->zstate[1].count = 1; + } + act2->dz = 0; + break; + } + + for (pb = 0; (pb < MOUSE_MAXBUTTON) && (pbuttons != 0); ++pb) { + lbuttons |= (pbuttons & 1) ? bt->p2l[pb] : 0; + pbuttons >>= 1; + } + act2->button = lbuttons; + + act2->flags = + ((act2->dx || act2->dy || act2->dz) ? MOUSE_POSCHANGED : 0) + | (act2->obutton ^ act2->button); +} + +static void +r_timestamp(mousestatus_t *act, struct btstate *bt, struct e3bstate *e3b, + struct drift *drift) +{ + struct timespec ts; + struct timespec ts1; + struct timespec ts2; + int button; + int mask; + int i; + + mask = act->flags & MOUSE_BUTTONS; +#if 0 + if (mask == 0) + return; +#endif + + clock_gettime(CLOCK_MONOTONIC_FAST, &ts1); + drift->current_ts = ts1; + + /* double click threshold */ + ts = tssubms(&ts1, bt->clickthreshold); + debug("ts: %jd %ld", (intmax_t)ts.tv_sec, ts.tv_nsec); + + /* 3 button emulation timeout */ + ts2 = tssubms(&ts1, e3b->button2timeout); + + button = MOUSE_BUTTON1DOWN; + for (i = 0; (i < MOUSE_MAXBUTTON) && (mask != 0); ++i) { + if (mask & 1) { + if (act->button & button) { + /* the button is down */ + debug(" : %jd %ld", + (intmax_t)bt->bstate[i].ts.tv_sec, + bt->bstate[i].ts.tv_nsec); + if (tscmp(&ts, &bt->bstate[i].ts, >)) { + bt->bstate[i].count = 1; + } else { + ++bt->bstate[i].count; + } + bt->bstate[i].ts = ts1; + } else { + /* the button is up */ + bt->bstate[i].ts = ts1; + } + } else { + if (act->button & button) { + /* the button has been down */ + if (tscmp(&ts2, &bt->bstate[i].ts, >)) { + bt->bstate[i].count = 1; + bt->bstate[i].ts = ts1; + act->flags |= button; + debug("button %d timeout", i + 1); + } + } else { + /* the button has been up */ + } + } + button <<= 1; + mask >>= 1; + } +} + +static bool +r_timeout(struct e3bstate *e3b) +{ + struct timespec ts; + struct timespec ts1; + + if (states[e3b->mouse_button_state].timeout) + return (true); + clock_gettime(CLOCK_MONOTONIC_FAST, &ts1); + ts = tssubms(&ts1, e3b->button2timeout); + return (tscmp(&ts, &e3b->mouse_button_state_ts, >)); +} + +static void +r_move(mousestatus_t *act, struct accel *acc) +{ + struct mouse_info mouse; + + bzero(&mouse, sizeof(mouse)); + if (acc->is_exponential) { + expoacc(acc, act->dx, act->dy, act->dz, + &mouse.u.data.x, &mouse.u.data.y, &mouse.u.data.z); + } else { + linacc(acc, act->dx, act->dy, act->dz, + &mouse.u.data.x, &mouse.u.data.y, &mouse.u.data.z); + } + mouse.operation = MOUSE_MOTION_EVENT; + mouse.u.data.buttons = act->button; + if (debug < 2 && !paused) + ioctl(cfd, CONS_MOUSECTL, &mouse); +} + +static void +r_click(mousestatus_t *act, struct btstate *bt) +{ + struct mouse_info mouse; + int button; + int mask; + int i; + + mask = act->flags & MOUSE_BUTTONS; + if (mask == 0) + return; + + button = MOUSE_BUTTON1DOWN; + for (i = 0; (i < MOUSE_MAXBUTTON) && (mask != 0); ++i) { + if (mask & 1) { + debug("mstate[%d]->count:%d", i, bt->mstate[i]->count); + if (act->button & button) { + /* the button is down */ + mouse.u.event.value = bt->mstate[i]->count; + } else { + /* the button is up */ + mouse.u.event.value = 0; + } + mouse.operation = MOUSE_BUTTON_EVENT; + mouse.u.event.id = button; + if (debug < 2 && !paused) + ioctl(cfd, CONS_MOUSECTL, &mouse); + debug("button %d count %d", i + 1, + mouse.u.event.value); + } + button <<= 1; + mask >>= 1; + } +} + +static enum gesture +r_gestures(struct tpad *tp, int x0, int y0, u_int z, int w, int nfingers, + struct timespec *time, mousestatus_t *ms) +{ + struct tpstate *gest = &tp->gest; + const struct tpcaps *tphw = &tp->hw; + const struct tpinfo *tpinfo = &tp->info; + int tap_timeout = tpinfo->tap_timeout; + + /* + * Check pressure to detect a real wanted action on the + * touchpad. + */ + if (z >= tpinfo->min_pressure_hi || + (gest->fingerdown && z >= tpinfo->min_pressure_lo)) { + /* XXX Verify values? */ + bool two_finger_scroll = tpinfo->two_finger_scroll; + bool three_finger_drag = tpinfo->three_finger_drag; + int max_width = tpinfo->max_width; + u_int max_pressure = tpinfo->max_pressure; + int margin_top = tpinfo->margin_top; + int margin_right = tpinfo->margin_right; + int margin_bottom = tpinfo->margin_bottom; + int margin_left = tpinfo->margin_left; + int vscroll_hor_area = tpinfo->vscroll_hor_area * tphw->res_x; + int vscroll_ver_area = tpinfo->vscroll_ver_area * tphw->res_y;; + + int max_x = tphw->max_x; + int max_y = tphw->max_y; + int min_x = tphw->min_x; + int min_y = tphw->min_y; + + int dx, dy; + int start_x, start_y; + int tap_max_delta_x, tap_max_delta_y; + int prev_nfingers; + + /* Palm detection. */ + if (nfingers == 1 && + ((tphw->cap_width && w > max_width) || + (tphw->cap_pressure && z > max_pressure))) { + /* + * We consider the packet irrelevant for the current + * action when: + * - there is a single active touch + * - the width isn't comprised in: + * [0; max_width] + * - the pressure isn't comprised in: + * [min_pressure; max_pressure] + * + * Note that this doesn't terminate the current action. + */ + debug("palm detected! (%d)", z); + return(GEST_IGNORE); + } + + /* + * Limit the coordinates to the specified margins because + * this area isn't very reliable. + */ + if (margin_left != 0 && x0 <= min_x + margin_left) + x0 = min_x + margin_left; + else if (margin_right != 0 && x0 >= max_x - margin_right) + x0 = max_x - margin_right; + if (margin_bottom != 0 && y0 <= min_y + margin_bottom) + y0 = min_y + margin_bottom; + else if (margin_top != 0 && y0 >= max_y - margin_top) + y0 = max_y - margin_top; + + debug("packet: [%d, %d], %d, %d", x0, y0, z, w); + + /* + * If the action is just beginning, init the structure and + * compute tap timeout. + */ + if (!gest->fingerdown) { + debug("----"); + + /* Reset pressure peak. */ + gest->zmax = 0; + + /* Reset fingers count. */ + gest->fingers_nb = 0; + + /* Reset virtual scrolling state. */ + gest->in_vscroll = 0; + + /* Compute tap timeout. */ + if (tap_timeout != 0) + gest->taptimeout = tsaddms(time, tap_timeout); + else + tsclr(&gest->taptimeout); + + gest->fingerdown = true; + + gest->start_x = x0; + gest->start_y = y0; + } + + prev_nfingers = gest->prev_nfingers; + + gest->prev_x = x0; + gest->prev_y = y0; + gest->prev_nfingers = nfingers; + + start_x = gest->start_x; + start_y = gest->start_y; + + /* Process ClickPad softbuttons */ + if (tphw->is_clickpad && ms->button & MOUSE_BUTTON1DOWN) { + int y_ok, center_bt, center_x, right_bt, right_x; + y_ok = tpinfo->softbuttons_y < 0 + ? start_y < min_y - tpinfo->softbuttons_y + : start_y > max_y - tpinfo->softbuttons_y; + + center_bt = MOUSE_BUTTON2DOWN; + center_x = min_x + tpinfo->softbutton2_x; + right_bt = MOUSE_BUTTON3DOWN; + right_x = min_x + tpinfo->softbutton3_x; + + if (center_x > 0 && right_x > 0 && center_x > right_x) { + center_bt = MOUSE_BUTTON3DOWN; + center_x = min_x + tpinfo->softbutton3_x; + right_bt = MOUSE_BUTTON2DOWN; + right_x = min_x + tpinfo->softbutton2_x; + } + + if (right_x > 0 && start_x > right_x && y_ok) + ms->button = (ms->button & + ~MOUSE_BUTTON1DOWN) | right_bt; + else if (center_x > 0 && start_x > center_x && y_ok) + ms->button = (ms->button & + ~MOUSE_BUTTON1DOWN) | center_bt; + } + + /* If in tap-hold or three fingers, add the recorded button. */ + if (gest->in_taphold || (nfingers == 3 && three_finger_drag)) + ms->button |= gest->tap_button; + + /* + * For tap, we keep the maximum number of fingers and the + * pressure peak. + */ + gest->fingers_nb = MAX(nfingers, gest->fingers_nb); + gest->zmax = MAX(z, gest->zmax); + + dx = abs(x0 - start_x); + dy = abs(y0 - start_y); + + /* + * A scrolling action must not conflict with a tap action. + * Here are the conditions to consider a scrolling action: + * - the action in a configurable area + * - one of the following: + * . the distance between the last packet and the + * first should be above a configurable minimum + * . tap timed out + */ + if (!gest->in_taphold && !ms->button && + (!gest->in_vscroll || two_finger_scroll) && + (tscmp(time, &gest->taptimeout, >) || + ((gest->fingers_nb == 2 || !two_finger_scroll) && + (dx >= tpinfo->vscroll_min_delta * tphw->res_x || + dy >= tpinfo->vscroll_min_delta * tphw->res_y)))) { + /* + * Handle two finger scrolling. + * Note that we don't rely on fingers_nb + * as that keeps the maximum number of fingers. + */ + if (two_finger_scroll) { + if (nfingers == 2) { + gest->in_vscroll += dy ? 2 : 0; + gest->in_vscroll += dx ? 1 : 0; + } + } else { + /* Check for horizontal scrolling. */ + if ((vscroll_hor_area > 0 && + start_y <= min_y + vscroll_hor_area) || + (vscroll_hor_area < 0 && + start_y >= max_y + vscroll_hor_area)) + gest->in_vscroll += 2; + + /* Check for vertical scrolling. */ + if ((vscroll_ver_area > 0 && + start_x <= min_x + vscroll_ver_area) || + (vscroll_ver_area < 0 && + start_x >= max_x + vscroll_ver_area)) + gest->in_vscroll += 1; + } + /* Avoid conflicts if area overlaps. */ + if (gest->in_vscroll >= 3) + gest->in_vscroll = (dx > dy) ? 2 : 1; + } + /* + * Reset two finger scrolling when the number of fingers + * is different from two or any button is pressed. + */ + if (two_finger_scroll && gest->in_vscroll != 0 && + (nfingers != 2 || ms->button)) + gest->in_vscroll = 0; + + debug("virtual scrolling: %s " + "(direction=%d, dx=%d, dy=%d, fingers=%d)", + gest->in_vscroll != 0 ? "YES" : "NO", + gest->in_vscroll, dx, dy, gest->fingers_nb); + + /* Workaround cursor jump on finger set changes */ + if (prev_nfingers != nfingers) + return (GEST_IGNORE); + + switch (gest->in_vscroll) { + case 1: + return (GEST_VSCROLL); + case 2: + return (GEST_HSCROLL); + default: + /* NO-OP */; + } + + /* Max delta is disabled for multi-fingers tap. */ + if (gest->fingers_nb == 1 && + tscmp(time, &gest->taptimeout, <=)) { + tap_max_delta_x = tpinfo->tap_max_delta * tphw->res_x; + tap_max_delta_y = tpinfo->tap_max_delta * tphw->res_y; + + debug("dx=%d, dy=%d, deltax=%d, deltay=%d", + dx, dy, tap_max_delta_x, tap_max_delta_y); + if (dx > tap_max_delta_x || dy > tap_max_delta_y) { + debug("not a tap"); + tsclr(&gest->taptimeout); + } + } + + if (tscmp(time, &gest->taptimeout, <=)) + return (gest->fingers_nb > 1 ? + GEST_IGNORE : GEST_ACCUMULATE); + else + return (GEST_MOVE); + } + + /* + * Handle a case when clickpad pressure drops before than + * button up event when surface is released after click. + * It interferes with softbuttons. + */ + if (tphw->is_clickpad && tpinfo->softbuttons_y != 0) + ms->button &= ~MOUSE_BUTTON1DOWN; + + gest->prev_nfingers = 0; + + if (gest->fingerdown) { + /* + * An action is currently taking place but the pressure + * dropped under the minimum, putting an end to it. + */ + + gest->fingerdown = false; + + /* Check for tap. */ + debug("zmax=%d fingers=%d", gest->zmax, gest->fingers_nb); + if (!gest->in_vscroll && gest->zmax >= tpinfo->tap_threshold && + tscmp(time, &gest->taptimeout, <=)) { + /* + * We have a tap if: + * - the maximum pressure went over tap_threshold + * - the action ended before tap_timeout + * + * To handle tap-hold, we must delay any button push to + * the next action. + */ + if (gest->in_taphold) { + /* + * This is the second and last tap of a + * double tap action, not a tap-hold. + */ + gest->in_taphold = false; + + /* + * For double-tap to work: + * - no button press is emitted (to + * simulate a button release) + * - PSM_FLAGS_FINGERDOWN is set to + * force the next packet to emit a + * button press) + */ + debug("button RELEASE: %d", gest->tap_button); + gest->fingerdown = true; + + /* Schedule button press on next event */ + gest->idletimeout = 0; + } else { + /* + * This is the first tap: we set the + * tap-hold state and notify the button + * down event. + */ + gest->in_taphold = true; + gest->idletimeout = tpinfo->taphold_timeout; + gest->taptimeout = tsaddms(time, tap_timeout); + + switch (gest->fingers_nb) { + case 3: + gest->tap_button = + MOUSE_BUTTON2DOWN; + break; + case 2: + gest->tap_button = + MOUSE_BUTTON3DOWN; + break; + default: + gest->tap_button = + MOUSE_BUTTON1DOWN; + } + debug("button PRESS: %d", gest->tap_button); + ms->button |= gest->tap_button; + } + } else { + /* + * Not enough pressure or timeout: reset + * tap-hold state. + */ + if (gest->in_taphold) { + debug("button RELEASE: %d", gest->tap_button); + gest->in_taphold = false; + } else { + debug("not a tap-hold"); + } + } + } else if (!gest->fingerdown && gest->in_taphold) { + /* + * For a tap-hold to work, the button must remain down at + * least until timeout (where the in_taphold flags will be + * cleared) or during the next action. + */ + if (tscmp(time, &gest->taptimeout, <=)) { + ms->button |= gest->tap_button; + } else { + debug("button RELEASE: %d", gest->tap_button); + gest->in_taphold = false; + } + } + + return (GEST_IGNORE); +} diff --git a/usr.sbin/moused/moused/moused.conf b/usr.sbin/moused/moused/moused.conf new file mode 100644 index 000000000000..04970c820c7f --- /dev/null +++ b/usr.sbin/moused/moused/moused.conf @@ -0,0 +1,43 @@ +[Default] +MatchName=* + +MousedGrabDevice=0 # 1/0 +MousedIgnoreDevice=0 # 1/0 + +MousedClickThreshold=500 # ms +MousedEmulateThirdButton=0 # 1/0 +MousedEmulateThirdButtonTimeout=100 # ms +MousedExponentialAccel=1.3 # float +MousedExponentialOffset=2.0 # dots +MousedLinearAccelX=1.0 # float +MousedLinearAccelY=1.0 # float +MousedLinearAccelZ=1.0 # float +#MousedMapZAxis=0 +MousedVirtualScrollEnable=0 # 1/0 +MousedHorVirtualScrollEnable=0 # 1/0 +MousedVirtualScrollSpeed=2 # dots +MousedVirtualScrollThreshold=3 # dots +MousedWMode=0 # button num + +[Mouse drift termination] +MatchDevType=mouse # mouse/touchpad +MousedDriftTerminate=0 # 1/0 +MousedDriftDistance=4 # dots +MousedDriftTime=500 # ms +MousedDriftAfter=4000 # ms + +[Default touchpad gesture settings] +MatchDevType=touchpad # mouse/touchpad +MousedTwoFingerScroll=1 # 1/0 +MousedNaturalScroll=0 # 1/0 +MousedThreeFingerDrag=0 # 1/0 +MousedSoftButton2X=42 # pct +MousedSoftButton3X=58 # pct +MousedSoftButtonsY=25 # pct +MousedTapTimeout=180 # ms +#MousedTapPressureThreshold=20 +MousedTapMaxDelta=1.3 # mm +MousedTapholdTimeout=300 # ms +MousedVScrollMinDelta=1.25 # mm +MousedVScrollHorArea=0.0 # mm +MousedVScrollVerArea=-15.0 # mm diff --git a/usr.sbin/moused/moused/moused.conf.5 b/usr.sbin/moused/moused/moused.conf.5 new file mode 100644 index 000000000000..bc62b5d00995 --- /dev/null +++ b/usr.sbin/moused/moused/moused.conf.5 @@ -0,0 +1,422 @@ +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2025 Vladimir Kondratyev +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd May 19, 2025 +.Dt MOUSED.CONF 5 +.Os +.Sh NAME +.Nm moused.conf +.Nd mouse daemon configuration file +.Sh DESCRIPTION +The +.Nm +file specifies how the +.Xr moused 8 +(mouse daemon) should operate. It provides ability to adjust certain +mice parameters on per-device basis. +.Pp +Configuration file format is derrived from +.Xr libinput 1 +device quirk files. +A file may contain multiple section headers ([some identifier]) +followed by one or more MatchFoo=Bar directives, followed by at least +one of MousedFoo=bar or AttrFoo=bar directive. +A configuration file must contain at least one section, each section +must have at least one +.Sq Match +tag and at least one of either +.Sq Attr +or +.Sq Moused . +Section names are free-form and may contain spaces. +.Ss List of currently available matches. +.Bl -tag -width indent +.It MatchName, MatchUniq +Match on the NAME or UNIQ udev property on this device. These +properties are typically derived from the device’s kernel name or uniq. +These matches use +.Fn fnmatch +globs. +.It MatchBus +A lower-case bus name. Currently supported are usb, bluetooth, ps2, +rmi, i2c, and spi. +.It MatchVendor, MatchProduct, MatchVersion +The hexadecmial 4-digit vendor ID, product ID or driver version as +exported, without a 0x prefix. +.It MatchDMIModalias, MatchDeviceTree +An +.Fn fnmatch +glob for the DMI modalias or the DeviceTree compatible string. +.It MatchDevType +One of touchpad, mouse, pointingstick, keyboard, joystick, tablet, +tablet-pad. +Only touchpad and mouse types are suppported. +.El +.Ss List of currently available Moused tags. +.Bl -tag -width indent +.It MousedGrabDevice +Only for evdev interface. +Become the sole recipient of all incoming input events. +This prevents other processes from getting input events on the device. +.Pp +Use +.Fl g +option alternatively. +.It MousedIgnoreDevice +Ignore given device. +.It MousedClickThreshold +Set double click speed as the maximum interval in msec between button clicks. +Without this option, the default value of 500 msec will be assumed. +This option will have effect only on the cut and paste operations +in the text mode console. +The user program which is reading mouse data +via +.Xr sysmouse 4 +will not be affected. +.Pp +Use +.Fl C +option alternatively. +.It MousedEmulateThirdButton +Emulate the third (middle) button for 2-button mice. +It is emulated +by pressing the left and right physical buttons simultaneously. +.Pp +Use +.Fl 3 +option alternatively. +.It MousedEmulateThirdButtonTimeout +When the third button emulation is enabled +(see above), +the +.Xr moused 8 +utility waits +.Ar MousedEmulateThirdButtonTimeout +msec at most before deciding whether two buttons are being pressed +simultaneously. +The default timeout is 100 msec. +.Pp +Use +.Fl E +option alternatively. +.It MousedLinearAccelX +.It MousedLinearAccelY +.It MousedLinearAccelZ +Accelerate or decelerate the mouse input. +This is a linear acceleration only. +Values less than 1.0 slow down movement, values greater than 1.0 speed it +up. +.Pp +You can use the +.Ar MousedLinearAccel +and +.Ar MousedExponentialAccel +options at the same time to have the combined effect +of linear and exponential acceleration. +.Pp +Use +.Fl a +option alternatively. +.It MousedExponentialAccel +.It MousedExponentialOffset +Apply exponential (dynamic) acceleration to mouse movements: +the faster you move the mouse, the more it will be accelerated. +That means that small mouse movements are not accelerated, +so they are still very accurate, while a faster movement will +drive the pointer quickly across the screen. +.Pp +The +.Ar MousedExponentialAccel +value specifies the exponent, which is basically +the amount of acceleration. Useful values are in the +range 1.1 to 2.0, but it depends on your mouse hardware +and your personal preference. A value of 1.0 means no +exponential acceleration. A value of 2.0 means squared +acceleration (i.e. if you move the mouse twice as fast, +the pointer will move four times as fast on the screen). +Values beyond 2.0 are possible but not recommended. +A good value to start is probably 1.5. +.Pp +The optional +.Ar MousedExponentialOffset +value specifies the distance at which the acceleration +begins. The default is 1.0, which means that the +acceleration is applied to movements larger than one unit. +If you specify a larger value, it takes more speed for +the acceleration to kick in, i.e. the speed range for +small and accurate movements is wider. +Usually the default should be sufficient, but if you're +not satisfied with the behaviour, try a value of 2.0. +.Pp +Note that the +.Fl A +option interacts badly with the X server's own acceleration, +which doesn't work very well anyway. Therefore it is +recommended to switch it off if necessary: +.Dq xset m 1 . +.Pp +Use +.Fl A +option alternatively. +.It MousedMapZAxis +Map Z axis (roller/wheel) movement to another axis or to virtual buttons. +Does not supported yet. +Use +.Fl z +option instead. +.It MousedVirtualScrollEnable +Enable +.Dq Virtual Scrolling . +With this option set, holding the middle mouse +button down will cause motion to be interpreted as scrolling. +Use the +.Ar MousedVirtualScrollThreshold +option to set the distance the mouse must move before the scrolling mode is +activated and the +.Ar MousedVirtualScrollSpeed +option to set the scrolling speed. +.Pp +Use +.Fl V +option alternatively. +.It MousedHorVirtualScrollEnable +Enable +.Dq Horizontal Virtual Scrolling . +With this option set, holding the middle mouse +button down will cause motion to be interpreted as +horizontal scrolling. +Use the +.Ar MousedVirtualScrollThreshold +option to set the distance the mouse must move before the scrolling mode is +activated and the +.Ar MousedVirtualScrollSpeed +option to set the scrolling speed. +This option may be used with or without the +.Ar MousedVirtualScrollEnable +option. +.Pp +Use +.Fl H +option alternatively. +.It MousedVirtualScrollSpeed= Ar distance +When +.Dq Virtual Scrolling +is enabled, the +.Ar MousedVirtualScrollSpeed +option can be used to set the +.Ar distance +(in pixels) that the mouse must move before a scroll event +is generated. +This effectively controls the scrolling speed. +The default +.Ar distance +is 2 pixels. +.Pp +Use +.Fl L +option alternatively. +.It MousedVirtualScrollThreshold= Ar distance +When +.Dq Virtual Scrolling +is enabled, the +.Ar MousedVirtualScrollThreshold +option can be used to set the +.Ar distance +(in pixels) that the mouse must move before the scrolling +mode is activated. +The default +.Ar distance +is 3 pixels. +.Pp +Use +.Fl U +option alternatively. +.It MousedWMode= Ar N +Make the physical button +.Ar N +act as the wheel mode button. +While this button is pressed, X and Y axis movement is reported to be zero +and the Y axis movement is mapped to Z axis. +You may further map the Z axis movement to virtual buttons by the +.Ar MousedMapZAxis +tag. +.Pp +Use +.Fl w +option alternatively. +.El +.Ss List of currently available Moused mice specific tags. +.Bl -tag -width indent +.It MousedDriftTerminate +.It MousedDriftDistance +.It MousedDriftTime +.It MousedDriftAfter +Terminate drift. +Use this option if mouse pointer slowly wanders when mouse is not moved. +Movements up to +.Ar MousedDriftDistance +(for example 4) pixels (X+Y) in +.Ar MousedDriftTime +msec (default 500) are ignored, except during +.Ar MousedDriftAfter +msec (default 4000) since last real mouse movement. +.Pp +Use +.Fl T +option alternatively. +.El +.Ss List of currently available Moused touchpad specific tags. +.Bl -tag -width indent +.It MousedTwoFingerScroll +Enable two finger scrolling. +.It MousedNaturalScroll +Enable natural scrolling. +.It MousedThreeFingerDrag +Enable dragging with three fingers. +.It MousedSoftButton2X +Horisontal position of 2-nd softbutton left edge in percents. +(0-disable) +.It MousedSoftButton3X +Horisontal position of 3-rd softbutton left edge in percents. +(0-disable) +.It MousedSoftButtonsY +Vertical size of softbuttons area in percents. +Use negative values to place softbutton area at top of touchpad. +.It MousedTapTimeout +Tap timeout in milliseconds +.It MousedTapPressureThreshold +Pressure threshold to detect tap. +.It MousedTapMaxDelta +Length of finger movement above which a tap is ignored measured in mm. +.It MousedTapholdTimeout +Maximum elapsed time between two taps to consider a tap-hold action. +.It MousedVScrollMinDelta +Minimum movement to consider virtual scrolling. +.It MousedVScrollHorArea + Area reserved for horizontal virtual scrolling in mm. +.It MousedVScrollVerArea +Area reserved for vertical virtual scrolling in mm. +.El +.Ss List of currently available libinput-compatible tags. +.Bl -tag -width indent +.It AttrSizeHint +Hints at the width x height of the device in mm. +.It AttrTouchSizeRange +Not supported yet. +.It AttrPalmSizeThreshold +Maximum finger width to detect palm in mm. +.It AttrLidSwitchReliability +Not supported yet. +.It AttrKeyboardIntegration +Not supported yet. +.It AttrPointingStickIntegration +Not supported yet. +.It AttrTPKComboLayout +Not supported yet. +.It AttrPressureRange= Ar N : Ar M +Specifies the touch pressure required to trigger a press +.Ar N +and to trigger a release +.Ar M . +.It AttrPalmPressureThreshold +Maximum pressure to detect palm. +.It AttrResolutionHint +Hints at the resolution of the x/y axis in units/mm. +.It AttrTrackpointMultiplier +Not supported yet. +.It AttrThumbPressureThreshold +Not supported yet. +.It AttrUseVelocityAveraging +Not supported yet. +.It AttrTabletSmoothing +Not supported yet. +.It AttrThumbSizeThreshold +Not supported yet. +.It AttrMscTimestamp +Not supported yet. +.It AttrEventCode +Enables or disables the evdev event type/code tuples on the device. +The prefix for each entry is either +.Sq + +(enable) or +.Sq - +(disable). +Entries may be a named event type, or a named event code, or a named +event type with a hexadecimal event code, separated by a single colon. +.It AttrInputProp +Enables or disables the evdev input property on the device. +The prefix for each entry is either +,Sq + +(enable) or +.Sq - +(disable). +Entries may be a named input property or the hexadecimal value of that +property. +.El +.Pp +All +.Xr libinput 1 +.Sq Model +quirks are currently ignored. +.Sh FILES +.Bl -tag -width /usr/local/etc/moused.conf -compact +.It Pa /usr/local/etc/moused.conf +The file +.Nm +resides in +.Pa /usr/local/etc . +.It Pa /usr/local/share/moused/*.quirks +Predefined quirks processed before +.Nm . +.El +.Sh EXAMPLES +Set touch pressure and palm detection thesholds for PS/2 Synaptics +touchpad: +.Bd -literal -offset indent +[SynPS/2 Synaptics TouchPad] +MatchDevType=touchpad +MatchName=SynPS/2 Synaptics TouchPad +AttrPressureRange=35:30 +AttrPalmPressureThreshold=220 +.Ed +.Sh SEE ALSO +.Xr moused 8 +.Pp +.Xr libinput 1 +device quirk format: +.Lk https://wayland.freedesktop.org/libinput/doc/latest/device-quirks.html +.Sh HISTORY +The +.Nm +file format first appeared in +.Fx 15.0 . +.Sh AUTHORS +This manual page was written by +.An Vladimir Kondratyev Aq Mt wulf@FreeBSD.org +based on +. Xr moused 8 +manual page and +.Xr libinput 1 +documentation. diff --git a/usr.sbin/moused/moused/quirks.c b/usr.sbin/moused/moused/quirks.c new file mode 100644 index 000000000000..3b87b34419e9 --- /dev/null +++ b/usr.sbin/moused/moused/quirks.c @@ -0,0 +1,2033 @@ +/* + * Copyright © 2018 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* This has the hallmarks of a library to make it re-usable from the tests + * and from the list-quirks tool. It doesn't have all of the features from a + * library you'd expect though + */ + +#include +#include + +#undef NDEBUG /* You don't get to disable asserts here */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "quirks.h" +#include "util.h" +#include "util-list.h" + + +/* Custom logging so we can have detailed output for the tool but minimal + * logging for moused itself. */ +#define qlog_debug(ctx_, ...) quirk_log_msg((ctx_), QLOG_NOISE, __VA_ARGS__) +#define qlog_info(ctx_, ...) quirk_log_msg((ctx_), QLOG_INFO, __VA_ARGS__) +#define qlog_error(ctx_, ...) quirk_log_msg((ctx_), QLOG_ERROR, __VA_ARGS__) +#define qlog_parser(ctx_, ...) quirk_log_msg((ctx_), QLOG_PARSER_ERROR, __VA_ARGS__) + +enum property_type { + PT_UINT, + PT_INT, + PT_STRING, + PT_BOOL, + PT_DIMENSION, + PT_RANGE, + PT_DOUBLE, + PT_TUPLES, + PT_UINT_ARRAY, +}; + +struct quirk_array { + union { + uint32_t u[32]; + } data; + size_t nelements; +}; + +/** + * Generic value holder for the property types we support. The type + * identifies which value in the union is defined and we expect callers to + * already know which type yields which value. + */ +struct property { + size_t refcount; + struct list link; /* struct sections.properties */ + + enum quirk id; + enum property_type type; + union { + bool b; + uint32_t u; + int32_t i; + char *s; + double d; + struct quirk_dimensions dim; + struct quirk_range range; + struct quirk_tuples tuples; + struct quirk_array array; + } value; +}; + +enum match_flags { + M_NAME = bit(0), + M_BUS = bit(1), + M_VID = bit(2), + M_PID = bit(3), + M_DMI = bit(4), + M_UDEV_TYPE = bit(5), + M_DT = bit(6), + M_VERSION = bit(7), + M_UNIQ = bit(8), + + M_LAST = M_UNIQ, +}; + +enum bustype { + BT_UNKNOWN, + BT_USB, + BT_BLUETOOTH, + BT_PS2, + BT_RMI, + BT_I2C, + BT_SPI, +}; + +enum udev_type { + UDEV_MOUSE = bit(1), + UDEV_POINTINGSTICK = bit(2), + UDEV_TOUCHPAD = bit(3), + UDEV_TABLET = bit(4), + UDEV_TABLET_PAD = bit(5), + UDEV_JOYSTICK = bit(6), + UDEV_KEYBOARD = bit(7), +}; + +/** + * Contains the combined set of matches for one section or the values for + * one device. + * + * bits defines which fields are set, the rest is zero. + */ +struct match { + uint32_t bits; + + char *name; + char *uniq; + enum bustype bus; + uint32_t vendor; + uint32_t product[64]; /* zero-terminated */ + uint32_t version; + + char *dmi; /* dmi modalias with preceding "dmi:" */ + + /* We can have more than one type set, so this is a bitfield */ + uint32_t udev_type; + + char *dt; /* device tree compatible (first) string */ +}; + +/** + * Represents one section in the .quirks file. + */ +struct section { + struct list link; + + bool has_match; /* to check for empty sections */ + bool has_property; /* to check for empty sections */ + + char *name; /* the [Section Name] */ + struct match match; + struct list properties; +}; + +/** + * The struct returned to the caller. It contains the + * properties for a given device. + */ +struct quirks { + size_t refcount; + struct list link; /* struct quirks_context.quirks */ + + /* These are not ref'd, just a collection of pointers */ + struct property **properties; + size_t nproperties; + + /* Special properties for AttrEventCode and AttrInputCode, these are + * owned by us, not the section */ + struct list floating_properties; +}; + +/** + * Quirk matching context, initialized once with quirks_init_subsystem() + */ +struct quirks_context { + size_t refcount; + + moused_log_handler *log_handler; + enum quirks_log_type log_type; + + char *dmi; + char *dt; + + struct list sections; + + /* list of quirks handed to moused, just for bookkeeping */ + struct list quirks; +}; + +MOUSED_ATTRIBUTE_PRINTF(3, 0) +static inline void +quirk_log_msg_va(struct quirks_context *ctx, + enum quirks_log_priorities priority, + const char *format, + va_list args) +{ + switch (priority) { + /* We don't use this if we're logging through syslog */ + default: + case QLOG_NOISE: + case QLOG_PARSER_ERROR: + if (ctx->log_type == QLOG_MOUSED_LOGGING) + return; + break; + case QLOG_DEBUG: /* These map straight to syslog priorities */ + case QLOG_INFO: + case QLOG_ERROR: + break; + } + + ctx->log_handler(priority, + 0, + format, + args); +} + +MOUSED_ATTRIBUTE_PRINTF(3, 4) +static inline void +quirk_log_msg(struct quirks_context *ctx, + enum quirks_log_priorities priority, + const char *format, + ...) +{ + va_list args; + + va_start(args, format); + quirk_log_msg_va(ctx, priority, format, args); + va_end(args); + +} + +const char * +quirk_get_name(enum quirk q) +{ + switch(q) { + case QUIRK_MODEL_ALPS_SERIAL_TOUCHPAD: return "ModelALPSSerialTouchpad"; + case QUIRK_MODEL_APPLE_TOUCHPAD: return "ModelAppleTouchpad"; + case QUIRK_MODEL_APPLE_TOUCHPAD_ONEBUTTON: return "ModelAppleTouchpadOneButton"; + case QUIRK_MODEL_BOUNCING_KEYS: return "ModelBouncingKeys"; + case QUIRK_MODEL_CHROMEBOOK: return "ModelChromebook"; + case QUIRK_MODEL_CLEVO_W740SU: return "ModelClevoW740SU"; + case QUIRK_MODEL_DELL_CANVAS_TOTEM: return "ModelDellCanvasTotem"; + case QUIRK_MODEL_HP_PAVILION_DM4_TOUCHPAD: return "ModelHPPavilionDM4Touchpad"; + case QUIRK_MODEL_HP_ZBOOK_STUDIO_G3: return "ModelHPZBookStudioG3"; + case QUIRK_MODEL_INVERT_HORIZONTAL_SCROLLING: return "ModelInvertHorizontalScrolling"; + case QUIRK_MODEL_LENOVO_SCROLLPOINT: return "ModelLenovoScrollPoint"; + case QUIRK_MODEL_LENOVO_T450_TOUCHPAD: return "ModelLenovoT450Touchpad"; + case QUIRK_MODEL_LENOVO_X1GEN6_TOUCHPAD: return "ModelLenovoX1Gen6Touchpad"; + case QUIRK_MODEL_LENOVO_X230: return "ModelLenovoX230"; + case QUIRK_MODEL_SYNAPTICS_SERIAL_TOUCHPAD: return "ModelSynapticsSerialTouchpad"; + case QUIRK_MODEL_SYSTEM76_BONOBO: return "ModelSystem76Bonobo"; + case QUIRK_MODEL_SYSTEM76_GALAGO: return "ModelSystem76Galago"; + case QUIRK_MODEL_SYSTEM76_KUDU: return "ModelSystem76Kudu"; + case QUIRK_MODEL_TABLET_MODE_NO_SUSPEND: return "ModelTabletModeNoSuspend"; + case QUIRK_MODEL_TABLET_MODE_SWITCH_UNRELIABLE: return "ModelTabletModeSwitchUnreliable"; + case QUIRK_MODEL_TOUCHPAD_VISIBLE_MARKER: return "ModelTouchpadVisibleMarker"; + case QUIRK_MODEL_TOUCHPAD_PHANTOM_CLICKS: return "ModelTouchpadPhantomClicks"; + case QUIRK_MODEL_TRACKBALL: return "ModelTrackball"; + case QUIRK_MODEL_WACOM_TOUCHPAD: return "ModelWacomTouchpad"; + case QUIRK_MODEL_PRESSURE_PAD: return "ModelPressurePad"; + + case QUIRK_ATTR_SIZE_HINT: return "AttrSizeHint"; + case QUIRK_ATTR_TOUCH_SIZE_RANGE: return "AttrTouchSizeRange"; + case QUIRK_ATTR_PALM_SIZE_THRESHOLD: return "AttrPalmSizeThreshold"; + case QUIRK_ATTR_LID_SWITCH_RELIABILITY: return "AttrLidSwitchReliability"; + case QUIRK_ATTR_KEYBOARD_INTEGRATION: return "AttrKeyboardIntegration"; + case QUIRK_ATTR_TRACKPOINT_INTEGRATION: return "AttrPointingStickIntegration"; + case QUIRK_ATTR_TPKBCOMBO_LAYOUT: return "AttrTPKComboLayout"; + case QUIRK_ATTR_PRESSURE_RANGE: return "AttrPressureRange"; + case QUIRK_ATTR_PALM_PRESSURE_THRESHOLD: return "AttrPalmPressureThreshold"; + case QUIRK_ATTR_RESOLUTION_HINT: return "AttrResolutionHint"; + case QUIRK_ATTR_TRACKPOINT_MULTIPLIER: return "AttrTrackpointMultiplier"; + case QUIRK_ATTR_THUMB_PRESSURE_THRESHOLD: return "AttrThumbPressureThreshold"; + case QUIRK_ATTR_USE_VELOCITY_AVERAGING: return "AttrUseVelocityAveraging"; + case QUIRK_ATTR_TABLET_SMOOTHING: return "AttrTabletSmoothing"; + case QUIRK_ATTR_THUMB_SIZE_THRESHOLD: return "AttrThumbSizeThreshold"; + case QUIRK_ATTR_MSC_TIMESTAMP: return "AttrMscTimestamp"; + case QUIRK_ATTR_EVENT_CODE: return "AttrEventCode"; + case QUIRK_ATTR_INPUT_PROP: return "AttrInputProp"; + + case MOUSED_GRAB_DEVICE: return "MousedGrabDevice"; + case MOUSED_IGNORE_DEVICE: return "MousedIgnoreDevice"; + + case MOUSED_CLICK_THRESHOLD: return "MousedClickThreshold"; + case MOUSED_DRIFT_TERMINATE: return "MousedDriftTerminate"; + case MOUSED_DRIFT_DISTANCE: return "MousedDriftDistance"; + case MOUSED_DRIFT_TIME: return "MousedDriftTime"; + case MOUSED_DRIFT_AFTER: return "MousedDriftAfter"; + case MOUSED_EMULATE_THIRD_BUTTON: return "MousedEmulateThirdButton"; + case MOUSED_EMULATE_THIRD_BUTTON_TIMEOUT: return "MousedEmulateThirdButtonTimeout"; + case MOUSED_EXPONENTIAL_ACCEL: return "MousedExponentialAccel"; + case MOUSED_EXPONENTIAL_OFFSET: return "MousedExponentialOffset"; + case MOUSED_LINEAR_ACCEL_X: return "MousedLinearAccelX"; + case MOUSED_LINEAR_ACCEL_Y: return "MousedLinearAccelY"; + case MOUSED_LINEAR_ACCEL_Z: return "MousedLinearAccelZ"; + case MOUSED_MAP_Z_AXIS: return "MousedMapZAxis"; + case MOUSED_VIRTUAL_SCROLL_ENABLE: return "MousedVirtualScrollEnable"; + case MOUSED_HOR_VIRTUAL_SCROLL_ENABLE: return "MousedHorVirtualScrollEnable"; + case MOUSED_VIRTUAL_SCROLL_SPEED: return "MousedVirtualScrollSpeed"; + case MOUSED_VIRTUAL_SCROLL_THRESHOLD: return "MousedVirtualScrollThreshold"; + case MOUSED_WMODE: return "MousedWMode"; + + case MOUSED_TWO_FINGER_SCROLL: return "MousedTwoFingerScroll"; + case MOUSED_NATURAL_SCROLL: return "MousedNaturalScroll"; + case MOUSED_THREE_FINGER_DRAG: return "MousedThreeFingerDrag"; + case MOUSED_SOFTBUTTON2_X: return "MousedSoftButton2X"; + case MOUSED_SOFTBUTTON3_X: return "MousedSoftButton3X"; + case MOUSED_SOFTBUTTONS_Y: return "MousedSoftButtonsY"; + case MOUSED_TAP_TIMEOUT: return "MousedTapTimeout"; + case MOUSED_TAP_PRESSURE_THRESHOLD: return "MousedTapPressureThreshold"; + case MOUSED_TAP_MAX_DELTA: return "MousedTapMaxDelta"; + case MOUSED_TAPHOLD_TIMEOUT: return "MousedTapholdTimeout"; + case MOUSED_VSCROLL_MIN_DELTA: return "MousedVScrollMinDelta"; + case MOUSED_VSCROLL_HOR_AREA: return "MousedVScrollHorArea"; + case MOUSED_VSCROLL_VER_AREA: return "MousedVScrollVerArea"; + + + default: + abort(); + } +} + +static inline const char * +matchflagname(enum match_flags f) +{ + switch(f) { + case M_NAME: return "MatchName"; break; + case M_BUS: return "MatchBus"; break; + case M_VID: return "MatchVendor"; break; + case M_PID: return "MatchProduct"; break; + case M_VERSION: return "MatchVersion"; break; + case M_DMI: return "MatchDMIModalias"; break; + case M_UDEV_TYPE: return "MatchDevType"; break; + case M_DT: return "MatchDeviceTree"; break; + case M_UNIQ: return "MatchUniq"; break; + default: + abort(); + } +} + +static inline struct property * +property_new(void) +{ + struct property *p; + + p = zalloc(sizeof *p); + p->refcount = 1; + list_init(&p->link); + + return p; +} + +static inline struct property * +property_ref(struct property *p) +{ + assert(p->refcount > 0); + p->refcount++; + return p; +} + +static inline struct property * +property_unref(struct property *p) +{ + /* Note: we don't cleanup here, that is a separate call so we + can abort if we haven't cleaned up correctly. */ + assert(p->refcount > 0); + p->refcount--; + + return NULL; +} + +/* Separate call so we can verify that the caller unrefs the property + * before shutting down the subsystem. + */ +static inline void +property_cleanup(struct property *p) +{ + /* If we get here, the quirks must've been removed already */ + property_unref(p); + assert(p->refcount == 0); + + list_remove(&p->link); + if (p->type == PT_STRING) + free(p->value.s); + free(p); +} + +/** + * Return the system DMI info in modalias format. + */ +static inline char * +init_dmi(void) +{ +#define LEN (KENV_MVALLEN + 1) + char *modalias; + char bios_vendor[LEN], bios_version[LEN], bios_date[LEN]; + char sys_vendor[LEN], product_name[LEN], product_version[LEN]; + char board_vendor[LEN], board_name[LEN], board_version[LEN]; + char chassis_vendor[LEN], chassis_type[LEN], chassis_version[LEN]; + int chassis_type_num = 0x2; + + kenv(KENV_GET, "smbios.bios.vendor", bios_vendor, LEN); + kenv(KENV_GET, "smbios.bios.version", bios_version, LEN); + kenv(KENV_GET, "smbios.bios.reldate", bios_date, LEN); + kenv(KENV_GET, "smbios.system.maker", sys_vendor, LEN); + kenv(KENV_GET, "smbios.system.product", product_name, LEN); + kenv(KENV_GET, "smbios.system.version", product_version, LEN); + kenv(KENV_GET, "smbios.planar.maker", board_vendor, LEN); + kenv(KENV_GET, "smbios.planar.product", board_name, LEN); + kenv(KENV_GET, "smbios.planar.version", board_version, LEN); + kenv(KENV_GET, "smbios.chassis.vendor", chassis_vendor, LEN); + kenv(KENV_GET, "smbios.chassis.type", chassis_type, LEN); + kenv(KENV_GET, "smbios.chassis.version", chassis_version, LEN); +#undef LEN + + if (strcmp(chassis_type, "Desktop") == 0) + chassis_type_num = 0x3; + else if (strcmp(chassis_type, "Portable") == 0) + chassis_type_num = 0x8; + else if (strcmp(chassis_type, "Laptop") == 0) + chassis_type_num = 0x9; + else if (strcmp(chassis_type, "Notebook") == 0) + chassis_type_num = 0xA; + else if (strcmp(chassis_type, "Tablet") == 0) + chassis_type_num = 0x1E; + else if (strcmp(chassis_type, "Convertible") == 0) + chassis_type_num = 0x1F; + else if (strcmp(chassis_type, "Detachable") == 0) + chassis_type_num = 0x20; + + xasprintf(&modalias, + "dmi:bvn%s:bvr%s:bd%s:svn%s:pn%s:pvr%s:rvn%s:rn%s:rvr%s:cvn%s:ct%d:cvr%s:", + bios_vendor, bios_version, bios_date, sys_vendor, product_name, + product_version, board_vendor, board_name, board_version, chassis_vendor, + chassis_type_num, chassis_version); + + return modalias; +} + +/** + * Return the dt compatible string + */ +static inline char * +init_dt(void) +{ + char compatible[1024]; + char *copy = NULL; + const char *syspath = "/sys/firmware/devicetree/base/compatible"; + FILE *fp; + + if (getenv("LIBINPUT_RUNNING_TEST_SUITE")) + return safe_strdup(""); + + fp = fopen(syspath, "r"); + if (!fp) + return NULL; + + /* devicetree/base/compatible has multiple null-terminated entries + but we only care about the first one here, so strdup is enough */ + if (fgets(compatible, sizeof(compatible), fp)) { + copy = safe_strdup(compatible); + } + + fclose(fp); + + return copy; +} + +static inline struct section * +section_new(const char *path, const char *name) +{ + struct section *s = zalloc(sizeof(*s)); + + char *path_dup = safe_strdup(path); + xasprintf(&s->name, "%s (%s)", name, basename(path_dup)); + free(path_dup); + list_init(&s->link); + list_init(&s->properties); + + return s; +} + +static inline void +section_destroy(struct section *s) +{ + struct property *p; + + free(s->name); + free(s->match.name); + free(s->match.uniq); + free(s->match.dmi); + free(s->match.dt); + + list_for_each_safe(p, &s->properties, link) + property_cleanup(p); + + assert(list_empty(&s->properties)); + + list_remove(&s->link); + free(s); +} + +static inline bool +parse_hex(const char *value, unsigned int *parsed) +{ + return strstartswith(value, "0x") && + safe_atou_base(value, parsed, 16) && + strspn(value, "0123456789xABCDEF") == strlen(value) && + *parsed <= 0xFFFF; +} + +static int +strv_parse_hex(const char *str, size_t index, void *data) +{ + unsigned int *product = data; + + return !parse_hex(str, &product[index]); /* 0 for success */ +} + +/** + * Parse a MatchFooBar=banana line. + * + * @param section The section struct to be filled in + * @param key The MatchFooBar part of the line + * @param value The banana part of the line. + * + * @return true on success, false otherwise. + */ +static bool +parse_match(struct quirks_context *ctx, + struct section *s, + const char *key, + const char *value) +{ + int rc = false; + +#define check_set_bit(s_, bit_) { \ + if ((s_)->match.bits & (bit_)) goto out; \ + (s_)->match.bits |= (bit_); \ + } + + assert(strlen(value) >= 1); + + if (streq(key, "MatchName")) { + check_set_bit(s, M_NAME); + s->match.name = safe_strdup(value); + } else if (streq(key, "MatchUniq")) { + check_set_bit(s, M_UNIQ); + s->match.uniq = safe_strdup(value); + } else if (streq(key, "MatchBus")) { + check_set_bit(s, M_BUS); + if (streq(value, "usb")) + s->match.bus = BT_USB; + else if (streq(value, "bluetooth")) + s->match.bus = BT_BLUETOOTH; + else if (streq(value, "ps2")) + s->match.bus = BT_PS2; + else if (streq(value, "rmi")) + s->match.bus = BT_RMI; + else if (streq(value, "i2c")) + s->match.bus = BT_I2C; + else if (streq(value, "spi")) + s->match.bus = BT_SPI; + else + goto out; + } else if (streq(key, "MatchVendor")) { + unsigned int vendor; + + check_set_bit(s, M_VID); + if (!parse_hex(value, &vendor)) + goto out; + + s->match.vendor = vendor; + } else if (streq(key, "MatchProduct")) { + unsigned int product[ARRAY_LENGTH(s->match.product)] = {0}; + const size_t max = ARRAY_LENGTH(s->match.product) - 1; + + size_t nelems = 0; + char **strs = strv_from_string(value, ";", &nelems); + int rc = strv_for_each_n((const char**)strs, max, strv_parse_hex, product); + strv_free(strs); + if (rc != 0) + goto out; + + check_set_bit(s, M_PID); + memcpy(s->match.product, product, sizeof(product)); + } else if (streq(key, "MatchVersion")) { + unsigned int version; + + check_set_bit(s, M_VERSION); + if (!parse_hex(value, &version)) + goto out; + + s->match.version = version; + } else if (streq(key, "MatchDMIModalias")) { + check_set_bit(s, M_DMI); + if (!strstartswith(value, "dmi:")) { + qlog_parser(ctx, + "%s: MatchDMIModalias must start with 'dmi:'\n", + s->name); + goto out; + } + s->match.dmi = safe_strdup(value); + } else if (streq(key, "MatchUdevType") || streq(key, "MatchDevType")) { + check_set_bit(s, M_UDEV_TYPE); + if (streq(value, "touchpad")) + s->match.udev_type = UDEV_TOUCHPAD; + else if (streq(value, "mouse")) + s->match.udev_type = UDEV_MOUSE; + else if (streq(value, "pointingstick")) + s->match.udev_type = UDEV_POINTINGSTICK; + else if (streq(value, "keyboard")) + s->match.udev_type = UDEV_KEYBOARD; + else if (streq(value, "joystick")) + s->match.udev_type = UDEV_JOYSTICK; + else if (streq(value, "tablet")) + s->match.udev_type = UDEV_TABLET; + else if (streq(value, "tablet-pad")) + s->match.udev_type = UDEV_TABLET_PAD; + else + goto out; + } else if (streq(key, "MatchDeviceTree")) { + check_set_bit(s, M_DT); + s->match.dt = safe_strdup(value); + } else { + qlog_error(ctx, "Unknown match key '%s'\n", key); + goto out; + } + +#undef check_set_bit + s->has_match = true; + rc = true; +out: + return rc; +} + +/** + * Parse a ModelFooBar=1 line. + * + * @param section The section struct to be filled in + * @param key The ModelFooBar part of the line + * @param value The value after the =, must be 1 or 0. + * + * @return true on success, false otherwise. + */ +static bool +parse_model(struct quirks_context *ctx, + struct section *s, + const char *key, + const char *value) +{ + bool b; + enum quirk q = QUIRK_MODEL_ALPS_SERIAL_TOUCHPAD; + + assert(strstartswith(key, "Model")); + + if (!parse_boolean_property(value, &b)) + return false; + + do { + if (streq(key, quirk_get_name(q))) { + struct property *p = property_new(); + p->id = q, + p->type = PT_BOOL; + p->value.b = b; + list_append(&s->properties, &p->link); + s->has_property = true; + return true; + } + } while (++q < _QUIRK_LAST_MODEL_QUIRK_); + + qlog_error(ctx, "Unknown key %s in %s\n", key, s->name); + + return false; +} + +/** + * Parse a AttrFooBar=banana line. + * + * @param section The section struct to be filled in + * @param key The AttrFooBar part of the line + * @param value The banana part of the line. + * + * Value parsing depends on the attribute type. + * + * @return true on success, false otherwise. + */ +static inline bool +parse_attr(struct quirks_context *ctx, + struct section *s, + const char *key, + const char *value) +{ + struct property *p = property_new(); + bool rc = false; + struct quirk_dimensions dim; + struct quirk_range range; + unsigned int v; + bool b; + double d; + + if (streq(key, quirk_get_name(QUIRK_ATTR_SIZE_HINT))) { + p->id = QUIRK_ATTR_SIZE_HINT; + if (!parse_dimension_property(value, &dim.x, &dim.y)) + goto out; + p->type = PT_DIMENSION; + p->value.dim = dim; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_TOUCH_SIZE_RANGE))) { + p->id = QUIRK_ATTR_TOUCH_SIZE_RANGE; + if (!parse_range_property(value, &range.upper, &range.lower)) + goto out; + p->type = PT_RANGE; + p->value.range = range; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_PALM_SIZE_THRESHOLD))) { + p->id = QUIRK_ATTR_PALM_SIZE_THRESHOLD; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_LID_SWITCH_RELIABILITY))) { + p->id = QUIRK_ATTR_LID_SWITCH_RELIABILITY; + if (!streq(value, "reliable") && + !streq(value, "write_open") && + !streq(value, "unreliable")) + goto out; + p->type = PT_STRING; + p->value.s = safe_strdup(value); + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_KEYBOARD_INTEGRATION))) { + p->id = QUIRK_ATTR_KEYBOARD_INTEGRATION; + if (!streq(value, "internal") && !streq(value, "external")) + goto out; + p->type = PT_STRING; + p->value.s = safe_strdup(value); + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_TRACKPOINT_INTEGRATION))) { + p->id = QUIRK_ATTR_TRACKPOINT_INTEGRATION; + if (!streq(value, "internal") && !streq(value, "external")) + goto out; + p->type = PT_STRING; + p->value.s = safe_strdup(value); + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_TPKBCOMBO_LAYOUT))) { + p->id = QUIRK_ATTR_TPKBCOMBO_LAYOUT; + if (!streq(value, "below")) + goto out; + p->type = PT_STRING; + p->value.s = safe_strdup(value); + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_PRESSURE_RANGE))) { + p->id = QUIRK_ATTR_PRESSURE_RANGE; + if (!parse_range_property(value, &range.upper, &range.lower)) + goto out; + p->type = PT_RANGE; + p->value.range = range; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_PALM_PRESSURE_THRESHOLD))) { + p->id = QUIRK_ATTR_PALM_PRESSURE_THRESHOLD; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_RESOLUTION_HINT))) { + p->id = QUIRK_ATTR_RESOLUTION_HINT; + if (!parse_dimension_property(value, &dim.x, &dim.y)) + goto out; + p->type = PT_DIMENSION; + p->value.dim = dim; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_TRACKPOINT_MULTIPLIER))) { + p->id = QUIRK_ATTR_TRACKPOINT_MULTIPLIER; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_USE_VELOCITY_AVERAGING))) { + p->id = QUIRK_ATTR_USE_VELOCITY_AVERAGING; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_TABLET_SMOOTHING))) { + p->id = QUIRK_ATTR_TABLET_SMOOTHING; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_THUMB_PRESSURE_THRESHOLD))) { + p->id = QUIRK_ATTR_THUMB_PRESSURE_THRESHOLD; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_THUMB_SIZE_THRESHOLD))) { + p->id = QUIRK_ATTR_THUMB_SIZE_THRESHOLD; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_MSC_TIMESTAMP))) { + p->id = QUIRK_ATTR_MSC_TIMESTAMP; + if (!streq(value, "watch")) + goto out; + p->type = PT_STRING; + p->value.s = safe_strdup(value); + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_EVENT_CODE))) { + struct input_event events[32]; + size_t nevents = ARRAY_LENGTH(events); + + p->id = QUIRK_ATTR_EVENT_CODE; + + if (!parse_evcode_property(value, events, &nevents) || + nevents == 0) + goto out; + + for (size_t i = 0; i < nevents; i++) { + p->value.tuples.tuples[i].first = events[i].type; + p->value.tuples.tuples[i].second = events[i].code; + p->value.tuples.tuples[i].third = events[i].value; + } + p->value.tuples.ntuples = nevents; + p->type = PT_TUPLES; + + rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_INPUT_PROP))) { + struct input_prop props[INPUT_PROP_CNT]; + size_t nprops = ARRAY_LENGTH(props); + + p->id = QUIRK_ATTR_INPUT_PROP; + + if (!parse_input_prop_property(value, props, &nprops) || + nprops == 0) + goto out; + + for (size_t i = 0; i < nprops; i++) { + p->value.tuples.tuples[i].first = props[i].prop; + p->value.tuples.tuples[i].second = props[i].enabled; + } + + rc = true; + } else { + qlog_error(ctx, "Unknown key %s in %s\n", key, s->name); + } +out: + if (rc) { + list_append(&s->properties, &p->link); + s->has_property = true; + } else { + property_cleanup(p); + } + return rc; +} + +/** + * Parse a MousedFooBar=banana line. + * + * @param section The section struct to be filled in + * @param key The MousedFooBar part of the line + * @param value The banana part of the line. + * + * Value parsing depends on the attribute type. + * + * @return true on success, false otherwise. + */ +static inline bool +parse_moused(struct quirks_context *ctx, + struct section *s, + const char *key, + const char *value) +{ + struct property *p = property_new(); + bool rc = false; + struct quirk_dimensions dim; + struct quirk_range range; + unsigned int v; + int i; + bool b; + double d; + + if (streq(key, quirk_get_name(MOUSED_GRAB_DEVICE))) { + p->id = MOUSED_GRAB_DEVICE; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_IGNORE_DEVICE))) { + p->id = MOUSED_IGNORE_DEVICE; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_CLICK_THRESHOLD))) { + p->id = MOUSED_CLICK_THRESHOLD; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_DRIFT_TERMINATE))) { + p->id = MOUSED_DRIFT_TERMINATE; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_DRIFT_DISTANCE))) { + p->id = MOUSED_DRIFT_DISTANCE; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_DRIFT_TIME))) { + p->id = MOUSED_DRIFT_TIME; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_DRIFT_AFTER))) { + p->id = MOUSED_DRIFT_AFTER; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_EMULATE_THIRD_BUTTON))) { + p->id = MOUSED_EMULATE_THIRD_BUTTON; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_EMULATE_THIRD_BUTTON_TIMEOUT))) { + p->id = MOUSED_EMULATE_THIRD_BUTTON_TIMEOUT; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_EXPONENTIAL_ACCEL))) { + p->id = MOUSED_EXPONENTIAL_ACCEL; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_EXPONENTIAL_OFFSET))) { + p->id = MOUSED_EXPONENTIAL_OFFSET; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_LINEAR_ACCEL_X))) { + p->id = MOUSED_LINEAR_ACCEL_X; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_LINEAR_ACCEL_Y))) { + p->id = MOUSED_LINEAR_ACCEL_Y; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_LINEAR_ACCEL_Z))) { + p->id = MOUSED_LINEAR_ACCEL_Z; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_MAP_Z_AXIS))) { + } else if (streq(key, quirk_get_name(MOUSED_VIRTUAL_SCROLL_ENABLE))) { + p->id = MOUSED_VIRTUAL_SCROLL_ENABLE; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_HOR_VIRTUAL_SCROLL_ENABLE))) { + p->id = MOUSED_HOR_VIRTUAL_SCROLL_ENABLE; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_VIRTUAL_SCROLL_SPEED))) { + p->id = MOUSED_VIRTUAL_SCROLL_SPEED; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_VIRTUAL_SCROLL_THRESHOLD))) { + p->id = MOUSED_VIRTUAL_SCROLL_THRESHOLD; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_WMODE))) { + p->id = MOUSED_WMODE; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_TWO_FINGER_SCROLL))) { + p->id = MOUSED_TWO_FINGER_SCROLL; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_NATURAL_SCROLL))) { + p->id = MOUSED_NATURAL_SCROLL; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_THREE_FINGER_DRAG))) { + p->id = MOUSED_THREE_FINGER_DRAG; + if (!parse_boolean_property(value, &b)) + goto out; + p->type = PT_BOOL; + p->value.b = b; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_SOFTBUTTON2_X))) { + p->id = MOUSED_SOFTBUTTON2_X; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_SOFTBUTTON3_X))) { + p->id = MOUSED_SOFTBUTTON3_X; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_SOFTBUTTONS_Y))) { + p->id = MOUSED_SOFTBUTTONS_Y; + if (!safe_atoi(value, &i)) + goto out; + p->type = PT_INT; + p->value.i = i; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_TAP_TIMEOUT))) { + p->id = MOUSED_TAP_TIMEOUT; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_TAP_PRESSURE_THRESHOLD))) { + p->id = MOUSED_TAP_PRESSURE_THRESHOLD; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_TAP_MAX_DELTA))) { + p->id = MOUSED_TAP_MAX_DELTA; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_TAPHOLD_TIMEOUT))) { + p->id = MOUSED_TAPHOLD_TIMEOUT; + if (!safe_atou(value, &v)) + goto out; + p->type = PT_UINT; + p->value.u = v; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_VSCROLL_MIN_DELTA))) { + p->id = MOUSED_VSCROLL_MIN_DELTA; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_VSCROLL_HOR_AREA))) { + p->id = MOUSED_VSCROLL_HOR_AREA; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else if (streq(key, quirk_get_name(MOUSED_VSCROLL_VER_AREA))) { + p->id = MOUSED_VSCROLL_VER_AREA; + if (!safe_atod(value, &d)) + goto out; + p->type = PT_DOUBLE; + p->value.d = d; + rc = true; + } else { + qlog_error(ctx, "Unknown key %s in %s\n", key, s->name); + } +out: + if (rc) { + list_append(&s->properties, &p->link); + s->has_property = true; + } else { + property_cleanup(p); + } + return rc; +} + +/** + * Parse a single line, expected to be in the format Key=value. Anything + * else will be rejected with a failure. + * + * Our data files can only have Match, Model and Attr, so let's check for + * those too. + */ +static bool +parse_value_line(struct quirks_context *ctx, struct section *s, const char *line) +{ + bool rc = false; + + size_t nelem; + char **strv = strv_from_string(line, "=", &nelem); + if (!strv || nelem != 2) + goto out; + + const char *key = strv[0]; + const char *value = strv[1]; + if (strlen(key) == 0 || strlen(value) == 0) + goto out; + + /* Whatever the value is, it's not supposed to be in quotes */ + if (value[0] == '"' || value[0] == '\'') + goto out; + + if (strstartswith(key, "Match")) + rc = parse_match(ctx, s, key, value); + else if (strstartswith(key, "Model")) + rc = parse_model(ctx, s, key, value); + else if (strstartswith(key, "Attr")) + rc = parse_attr(ctx, s, key, value); + else if (strstartswith(key, "Moused")) + rc = parse_moused(ctx, s, key, value); + else + qlog_error(ctx, "Unknown value prefix %s\n", line); +out: + strv_free(strv); + return rc; +} + +static inline bool +parse_file(struct quirks_context *ctx, const char *path) +{ + enum state { + STATE_SECTION, + STATE_MATCH, + STATE_MATCH_OR_VALUE, + STATE_VALUE_OR_SECTION, + STATE_ANY, + }; + FILE *fp; + char line[512]; + bool rc = false; + enum state state = STATE_SECTION; + struct section *section = NULL; + int lineno = -1; + + qlog_debug(ctx, "%s\n", path); + + /* Not using open_restricted here, if we can't access + * our own data files, our installation is screwed up. + */ + fp = fopen(path, "r"); + if (!fp) { + /* If the file doesn't exist that's fine. Only way this can + * happen is for the custom override file, all others are + * provided by scandir so they do exist. Short of races we + * don't care about. */ + if (errno == ENOENT) + return true; + + qlog_error(ctx, "%s: failed to open file\n", path); + goto out; + } + + while (fgets(line, sizeof(line), fp)) { + char *comment; + + lineno++; + + comment = strstr(line, "#"); + if (comment) { + /* comment points to # but we need to remove the + * preceding whitespaces too */ + comment--; + while (comment >= line) { + if (*comment != ' ' && *comment != '\t') + break; + comment--; + } + *(comment + 1) = '\0'; + } else { /* strip the trailing newline */ + comment = strstr(line, "\n"); + if (comment) + *comment = '\0'; + } + if (strlen(line) == 0) + continue; + + /* We don't use quotes for strings, so we really don't want + * erroneous trailing whitespaces */ + switch (line[strlen(line) - 1]) { + case ' ': + case '\t': + qlog_parser(ctx, + "%s:%d: Trailing whitespace '%s'\n", + path, lineno, line); + goto out; + } + + switch (line[0]) { + case '\0': + case '\n': + case '#': + break; + /* white space not allowed */ + case ' ': + case '\t': + qlog_parser(ctx, "%s:%d: Preceding whitespace '%s'\n", + path, lineno, line); + goto out; + /* section title */ + case '[': + if (line[strlen(line) - 1] != ']') { + qlog_parser(ctx, "%s:%d: Closing ] missing '%s'\n", + path, lineno, line); + goto out; + } + + if (state != STATE_SECTION && + state != STATE_VALUE_OR_SECTION) { + qlog_parser(ctx, "%s:%d: expected section before %s\n", + path, lineno, line); + goto out; + } + if (section && + (!section->has_match || !section->has_property)) { + qlog_parser(ctx, "%s:%d: previous section %s was empty\n", + path, lineno, section->name); + goto out; /* Previous section was empty */ + } + + state = STATE_MATCH; + section = section_new(path, line); + list_append(&ctx->sections, §ion->link); + break; + default: + /* entries must start with A-Z */ + if (line[0] < 'A' || line[0] > 'Z') { + qlog_parser(ctx, "%s:%d: Unexpected line %s\n", + path, lineno, line); + goto out; + } + switch (state) { + case STATE_SECTION: + qlog_parser(ctx, "%s:%d: expected [Section], got %s\n", + path, lineno, line); + goto out; + case STATE_MATCH: + if (!strstartswith(line, "Match")) { + qlog_parser(ctx, "%s:%d: expected MatchFoo=bar, have %s\n", + path, lineno, line); + goto out; + } + state = STATE_MATCH_OR_VALUE; + break; + case STATE_MATCH_OR_VALUE: + if (!strstartswith(line, "Match")) + state = STATE_VALUE_OR_SECTION; + break; + case STATE_VALUE_OR_SECTION: + if (strstartswith(line, "Match")) { + qlog_parser(ctx, "%s:%d: expected value or [Section], have %s\n", + path, lineno, line); + goto out; + } + break; + case STATE_ANY: + break; + } + + if (!parse_value_line(ctx, section, line)) { + qlog_parser(ctx, "%s:%d: failed to parse %s\n", + path, lineno, line); + goto out; + } + break; + } + } + + if (!section) { + qlog_parser(ctx, "%s: is an empty file\n", path); + goto out; + } + + if ((!section->has_match || !section->has_property)) { + qlog_parser(ctx, "%s:%d: previous section %s was empty\n", + path, lineno, section->name); + goto out; /* Previous section was empty */ + } + + rc = true; +out: + if (fp) + fclose(fp); + + return rc; +} + +static int +is_data_file(const struct dirent *dir) { + return strendswith(dir->d_name, ".quirks"); +} + +static inline bool +parse_files(struct quirks_context *ctx, const char *data_path) +{ + struct dirent **namelist; + int ndev = -1; + int idx = 0; + + ndev = scandir(data_path, &namelist, is_data_file, versionsort); + if (ndev <= 0) { + qlog_error(ctx, + "%s: failed to find data files\n", + data_path); + return false; + } + + for (idx = 0; idx < ndev; idx++) { + char path[PATH_MAX]; + + snprintf(path, + sizeof(path), + "%s/%s", + data_path, + namelist[idx]->d_name); + + if (!parse_file(ctx, path)) + break; + } + + for (int i = 0; i < ndev; i++) + free(namelist[i]); + free(namelist); + + return idx == ndev; +} + +struct quirks_context * +quirks_init_subsystem(const char *data_path, + const char *override_file, + moused_log_handler log_handler, + enum quirks_log_type log_type) +{ + _unref_(quirks_context) *ctx = zalloc(sizeof *ctx); + + assert(data_path); + + ctx->refcount = 1; + ctx->log_handler = log_handler; + ctx->log_type = log_type; + list_init(&ctx->quirks); + list_init(&ctx->sections); + + qlog_debug(ctx, "%s is data root\n", data_path); + + ctx->dmi = init_dmi(); + ctx->dt = init_dt(); + if (!ctx->dmi && !ctx->dt) + return NULL; + + if (!parse_files(ctx, data_path)) + return NULL; + + if (override_file && !parse_file(ctx, override_file)) + return NULL; + + return steal(&ctx); +} + +struct quirks_context * +quirks_context_ref(struct quirks_context *ctx) +{ + assert(ctx->refcount > 0); + ctx->refcount++; + + return ctx; +} + +struct quirks_context * +quirks_context_unref(struct quirks_context *ctx) +{ + struct section *s; + + if (!ctx) + return NULL; + + assert(ctx->refcount >= 1); + ctx->refcount--; + + if (ctx->refcount > 0) + return NULL; + + /* Caller needs to clean up before calling this */ + assert(list_empty(&ctx->quirks)); + + list_for_each_safe(s, &ctx->sections, link) { + section_destroy(s); + } + + free(ctx->dmi); + free(ctx->dt); + free(ctx); + + return NULL; +} + +static struct quirks * +quirks_new(void) +{ + struct quirks *q; + + q = zalloc(sizeof *q); + q->refcount = 1; + q->nproperties = 0; + list_init(&q->link); + list_init(&q->floating_properties); + + return q; +} + +struct quirks * +quirks_unref(struct quirks *q) +{ + if (!q) + return NULL; + + /* We don't really refcount, but might + * as well have the API in place */ + assert(q->refcount == 1); + + for (size_t i = 0; i < q->nproperties; i++) { + property_unref(q->properties[i]); + } + + /* Floating properties are owned by our quirks context, need to be + * cleaned up here */ + struct property *p; + list_for_each_safe(p, &q->floating_properties, link) { + property_cleanup(p); + } + + list_remove(&q->link); + free(q->properties); + free(q); + + return NULL; +} + +static inline void +match_fill_name(struct match *m, + struct device *device) +{ + if (device->name[0] == 0) + return; + + m->name = safe_strdup(device->name); + + m->bits |= M_NAME; +} + +static inline void +match_fill_uniq(struct match *m, + struct device *device) +{ + if (device->uniq[0] == 0) + return; + + m->uniq = safe_strdup(device->uniq); + + m->bits |= M_UNIQ; +} + +static inline void +match_fill_bus_vid_pid(struct match *m, + struct device *device) +{ + m->product[0] = device->id.product; + m->product[1] = 0; + m->vendor = device->id.vendor; + m->version = device->id.version; + m->bits |= M_PID|M_VID|M_VERSION; + switch (device->id.bustype) { + case BUS_USB: + m->bus = BT_USB; + m->bits |= M_BUS; + break; + case BUS_BLUETOOTH: + m->bus = BT_BLUETOOTH; + m->bits |= M_BUS; + break; + case BUS_I8042: + m->bus = BT_PS2; + m->bits |= M_BUS; + break; + case BUS_RMI: + m->bus = BT_RMI; + m->bits |= M_BUS; + break; + case BUS_I2C: + m->bus = BT_I2C; + m->bits |= M_BUS; + break; + case BUS_SPI: + m->bus = BT_SPI; + m->bits |= M_BUS; + break; + default: + break; + } +} + +static inline void +match_fill_udev_type(struct match *m, + struct device *device) +{ + switch (device->type) { + case DEVICE_TYPE_MOUSE: + m->udev_type |= UDEV_MOUSE; + break; + case DEVICE_TYPE_POINTINGSTICK: + m->udev_type |= UDEV_MOUSE | UDEV_POINTINGSTICK; + break; + case DEVICE_TYPE_TOUCHPAD: + m->udev_type |= UDEV_TOUCHPAD; + break; + case DEVICE_TYPE_TABLET: + m->udev_type |= UDEV_TABLET; + break; + case DEVICE_TYPE_TABLET_PAD: + m->udev_type |= UDEV_TABLET_PAD; + break; + case DEVICE_TYPE_KEYBOARD: + m->udev_type |= UDEV_KEYBOARD; + break; + case DEVICE_TYPE_JOYSTICK: + m->udev_type |= UDEV_JOYSTICK; + break; + default: + break; + } + m->bits |= M_UDEV_TYPE; +} + +static inline void +match_fill_dmi_dt(struct match *m, char *dmi, char *dt) +{ + if (dmi) { + m->dmi = dmi; + m->bits |= M_DMI; + } + + if (dt) { + m->dt = dt; + m->bits |= M_DT; + } +} + +static struct match * +match_new(struct device *device, + char *dmi, char *dt) +{ + struct match *m = zalloc(sizeof *m); + + match_fill_name(m, device); + match_fill_uniq(m, device); + match_fill_bus_vid_pid(m, device); + match_fill_dmi_dt(m, dmi, dt); + match_fill_udev_type(m, device); + return m; +} + +static void +match_free(struct match *m) +{ + /* dmi and dt are global */ + free(m->name); + free(m->uniq); + free(m); +} + +static void +quirk_merge_event_codes(struct quirks_context *ctx, + struct quirks *q, + const struct property *property) +{ + for (size_t i = 0; i < q->nproperties; i++) { + struct property *p = q->properties[i]; + + if (p->id != property->id) + continue; + + /* We have a duplicated property, merge in with ours */ + size_t offset = p->value.tuples.ntuples; + size_t max = ARRAY_LENGTH(p->value.tuples.tuples); + for (size_t j = 0; j < property->value.tuples.ntuples; j++) { + if (offset + j >= max) + break; + p->value.tuples.tuples[offset + j] = property->value.tuples.tuples[j]; + p->value.tuples.ntuples++; + } + return; + } + + /* First time we add AttrEventCode: create a new property. + * Unlike the other properties, this one isn't part of a section, it belongs + * to the quirks */ + struct property *newprop = property_new(); + newprop->id = property->id; + newprop->type = property->type; + newprop->value.tuples = property->value.tuples; + /* Caller responsible for pre-allocating space */ + q->properties[q->nproperties++] = property_ref(newprop); + list_append(&q->floating_properties, &newprop->link); +} + +static void +quirk_apply_section(struct quirks_context *ctx, + struct quirks *q, + const struct section *s) +{ + struct property *p; + size_t nprops = 0; + void *tmp; + + list_for_each(p, &s->properties, link) { + nprops++; + } + + nprops += q->nproperties; + tmp = realloc(q->properties, nprops * sizeof(p)); + if (!tmp) + return; + + q->properties = tmp; + list_for_each(p, &s->properties, link) { + qlog_debug(ctx, "property added: %s from %s\n", + quirk_get_name(p->id), s->name); + + /* All quirks but AttrEventCode and AttrInputProp + * simply overwrite each other, so we can just append the + * matching property and, later when checking the quirk, pick + * the last one in the array. + * + * The event codes/input props are special because they're lists + * that may *partially* override each other, e.g. a section may + * enable BTN_LEFT and BTN_RIGHT but a later section may disable + * only BTN_RIGHT. This should result in BTN_LEFT force-enabled + * and BTN_RIGHT force-disabled. + * + * To hack around this, those are the only ones where only ever + * have one struct property in the list (not owned by a section) + * and we simply merge any extra sections onto that. + */ + if (p->id == QUIRK_ATTR_EVENT_CODE || + p->id == QUIRK_ATTR_INPUT_PROP) + quirk_merge_event_codes(ctx, q, p); + else + q->properties[q->nproperties++] = property_ref(p); + } +} + +static bool +quirk_match_section(struct quirks_context *ctx, + struct quirks *q, + struct section *s, + struct match *m, + struct device *device) +{ + uint32_t matched_flags = 0x0; + + for (uint32_t flag = 0x1; flag <= M_LAST; flag <<= 1) { + uint32_t prev_matched_flags = matched_flags; + /* section doesn't have this bit set, continue */ + if ((s->match.bits & flag) == 0) + continue; + + /* Couldn't fill in this bit for the match, so we + * do not match on it */ + if ((m->bits & flag) == 0) { + qlog_debug(ctx, + "%s wants %s but we don't have that\n", + s->name, matchflagname(flag)); + continue; + } + + /* now check the actual matching bit */ + switch (flag) { + case M_NAME: + if (fnmatch(s->match.name, m->name, 0) == 0) + matched_flags |= flag; + break; + case M_UNIQ: + if (fnmatch(s->match.uniq, m->uniq, 0) == 0) + matched_flags |= flag; + break; + case M_BUS: + if (m->bus == s->match.bus) + matched_flags |= flag; + break; + case M_VID: + if (m->vendor == s->match.vendor) + matched_flags |= flag; + break; + case M_PID: + ARRAY_FOR_EACH(m->product, mi) { + if (*mi == 0 || matched_flags & flag) + break; + + ARRAY_FOR_EACH(s->match.product, si) { + if (*si == 0) + break; + if (*mi == *si) { + matched_flags |= flag; + break; + } + } + } + break; + case M_VERSION: + if (m->version == s->match.version) + matched_flags |= flag; + break; + case M_DMI: + if (fnmatch(s->match.dmi, m->dmi, 0) == 0) + matched_flags |= flag; + break; + case M_DT: + if (fnmatch(s->match.dt, m->dt, 0) == 0) + matched_flags |= flag; + break; + case M_UDEV_TYPE: + if (s->match.udev_type & m->udev_type) + matched_flags |= flag; + break; + default: + abort(); + } + + if (prev_matched_flags != matched_flags) { + qlog_debug(ctx, + "%s matches for %s\n", + s->name, + matchflagname(flag)); + } + } + + if (s->match.bits == matched_flags) { + qlog_debug(ctx, "%s is full match\n", s->name); + quirk_apply_section(ctx, q, s); + } + + return true; +} + +struct quirks * +quirks_fetch_for_device(struct quirks_context *ctx, + struct device *device) +{ + struct section *s; + struct match *m; + + if (!ctx) + return NULL; + + qlog_debug(ctx, "%s: fetching quirks\n", device->path); + + _unref_(quirks) *q = quirks_new(); + + m = match_new(device, ctx->dmi, ctx->dt); + + list_for_each(s, &ctx->sections, link) { + quirk_match_section(ctx, q, s, m, device); + } + + match_free(m); + + if (q->nproperties == 0) { + return NULL; + } + + list_insert(&ctx->quirks, &q->link); + + return steal(&q); +} + +static inline struct property * +quirk_find_prop(struct quirks *q, enum quirk which) +{ + /* Run backwards to only handle the last one assigned */ + for (ssize_t i = q->nproperties - 1; i >= 0; i--) { + struct property *p = q->properties[i]; + if (p->id == which) + return p; + } + + return NULL; +} + +bool +quirks_has_quirk(struct quirks *q, enum quirk which) +{ + return quirk_find_prop(q, which) != NULL; +} + +bool +quirks_get_int32(struct quirks *q, enum quirk which, int32_t *val) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_INT); + *val = p->value.i; + + return true; +} + +bool +quirks_get_uint32(struct quirks *q, enum quirk which, uint32_t *val) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_UINT); + *val = p->value.u; + + return true; +} + +bool +quirks_get_double(struct quirks *q, enum quirk which, double *val) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_DOUBLE); + *val = p->value.d; + + return true; +} + +bool +quirks_get_string(struct quirks *q, enum quirk which, char **val) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_STRING); + *val = p->value.s; + + return true; +} + +bool +quirks_get_bool(struct quirks *q, enum quirk which, bool *val) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_BOOL); + *val = p->value.b; + + return true; +} + +bool +quirks_get_dimensions(struct quirks *q, + enum quirk which, + struct quirk_dimensions *val) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_DIMENSION); + *val = p->value.dim; + + return true; +} + +bool +quirks_get_range(struct quirks *q, + enum quirk which, + struct quirk_range *val) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_RANGE); + *val = p->value.range; + + return true; +} + +bool +quirks_get_tuples(struct quirks *q, + enum quirk which, + const struct quirk_tuples **tuples) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_TUPLES); + *tuples = &p->value.tuples; + + return true; +} + +bool +quirks_get_uint32_array(struct quirks *q, + enum quirk which, + const uint32_t **array, + size_t *nelements) +{ + struct property *p; + + if (!q) + return false; + + p = quirk_find_prop(q, which); + if (!p) + return false; + + assert(p->type == PT_UINT_ARRAY); + *array = p->value.array.data.u; + *nelements = p->value.array.nelements; + + return true; +} diff --git a/usr.sbin/moused/moused/quirks.h b/usr.sbin/moused/moused/quirks.h new file mode 100644 index 000000000000..6a34d17be83c --- /dev/null +++ b/usr.sbin/moused/moused/quirks.h @@ -0,0 +1,369 @@ +/* + * Copyright © 2018 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "util.h" + +#include +#include +#include + +/** + * Handle to the quirks context. + */ +struct quirks_context; + +/** + * Contains all quirks set for a single device. + */ +struct quirks; + +struct quirk_dimensions { + size_t x, y; +}; + +struct quirk_range { + int lower, upper; +}; + +struct quirk_tuples { + struct { + int first; + int second; + int third; + } tuples[32]; + size_t ntuples; +}; + +/** + * Quirks known to libinput. Moused does not support all of them. + */ +enum quirk { + QUIRK_MODEL_ALPS_SERIAL_TOUCHPAD = 100, + QUIRK_MODEL_APPLE_TOUCHPAD, + QUIRK_MODEL_APPLE_TOUCHPAD_ONEBUTTON, + QUIRK_MODEL_BOUNCING_KEYS, + QUIRK_MODEL_CHROMEBOOK, + QUIRK_MODEL_CLEVO_W740SU, + QUIRK_MODEL_DELL_CANVAS_TOTEM, + QUIRK_MODEL_HP_PAVILION_DM4_TOUCHPAD, + QUIRK_MODEL_HP_ZBOOK_STUDIO_G3, + QUIRK_MODEL_INVERT_HORIZONTAL_SCROLLING, + QUIRK_MODEL_LENOVO_SCROLLPOINT, + QUIRK_MODEL_LENOVO_T450_TOUCHPAD, + QUIRK_MODEL_LENOVO_X1GEN6_TOUCHPAD, + QUIRK_MODEL_LENOVO_X230, + QUIRK_MODEL_SYNAPTICS_SERIAL_TOUCHPAD, + QUIRK_MODEL_SYSTEM76_BONOBO, + QUIRK_MODEL_SYSTEM76_GALAGO, + QUIRK_MODEL_SYSTEM76_KUDU, + QUIRK_MODEL_TABLET_MODE_NO_SUSPEND, + QUIRK_MODEL_TABLET_MODE_SWITCH_UNRELIABLE, + QUIRK_MODEL_TOUCHPAD_VISIBLE_MARKER, + QUIRK_MODEL_TRACKBALL, + QUIRK_MODEL_WACOM_TOUCHPAD, + QUIRK_MODEL_PRESSURE_PAD, + QUIRK_MODEL_TOUCHPAD_PHANTOM_CLICKS, + + _QUIRK_LAST_MODEL_QUIRK_, /* Guard: do not modify */ + + QUIRK_ATTR_SIZE_HINT = 300, + QUIRK_ATTR_TOUCH_SIZE_RANGE, + QUIRK_ATTR_PALM_SIZE_THRESHOLD, + QUIRK_ATTR_LID_SWITCH_RELIABILITY, + QUIRK_ATTR_KEYBOARD_INTEGRATION, + QUIRK_ATTR_TRACKPOINT_INTEGRATION, + QUIRK_ATTR_TPKBCOMBO_LAYOUT, + QUIRK_ATTR_PRESSURE_RANGE, + QUIRK_ATTR_PALM_PRESSURE_THRESHOLD, + QUIRK_ATTR_RESOLUTION_HINT, + QUIRK_ATTR_TRACKPOINT_MULTIPLIER, + QUIRK_ATTR_THUMB_PRESSURE_THRESHOLD, + QUIRK_ATTR_USE_VELOCITY_AVERAGING, + QUIRK_ATTR_TABLET_SMOOTHING, + QUIRK_ATTR_THUMB_SIZE_THRESHOLD, + QUIRK_ATTR_MSC_TIMESTAMP, + QUIRK_ATTR_EVENT_CODE, + QUIRK_ATTR_INPUT_PROP, + + _QUIRK_LAST_ATTR_QUIRK_, /* Guard: do not modify */ + + + /* Daemon parameters */ + MOUSED_GRAB_DEVICE = 1000, + MOUSED_IGNORE_DEVICE, + + /* Standard moused parameters */ + MOUSED_CLICK_THRESHOLD, + MOUSED_DRIFT_TERMINATE, + MOUSED_DRIFT_DISTANCE, + MOUSED_DRIFT_TIME, + MOUSED_DRIFT_AFTER, + MOUSED_EMULATE_THIRD_BUTTON, + MOUSED_EMULATE_THIRD_BUTTON_TIMEOUT, + MOUSED_EXPONENTIAL_ACCEL, + MOUSED_EXPONENTIAL_OFFSET, + MOUSED_LINEAR_ACCEL_X, + MOUSED_LINEAR_ACCEL_Y, + MOUSED_LINEAR_ACCEL_Z, + MOUSED_MAP_Z_AXIS, + MOUSED_VIRTUAL_SCROLL_ENABLE, + MOUSED_HOR_VIRTUAL_SCROLL_ENABLE, + MOUSED_VIRTUAL_SCROLL_SPEED, + MOUSED_VIRTUAL_SCROLL_THRESHOLD, + MOUSED_WMODE, + + /* Touchpad parameters from psm(4) driver */ + MOUSED_TWO_FINGER_SCROLL, + MOUSED_NATURAL_SCROLL, + MOUSED_THREE_FINGER_DRAG, + MOUSED_SOFTBUTTON2_X, + MOUSED_SOFTBUTTON3_X, + MOUSED_SOFTBUTTONS_Y, + MOUSED_TAP_TIMEOUT, + MOUSED_TAP_PRESSURE_THRESHOLD, + MOUSED_TAP_MAX_DELTA, + MOUSED_TAPHOLD_TIMEOUT, + MOUSED_VSCROLL_MIN_DELTA, + MOUSED_VSCROLL_HOR_AREA, + MOUSED_VSCROLL_VER_AREA, + + _MOUSED_LAST_OPTION_ /* Guard: do not modify */ +}; + +/** + * Returns a printable name for the quirk. This name is for developer + * tools, not user consumption. Do not display this in a GUI. + */ +const char* +quirk_get_name(enum quirk q); + +/** + * Log priorities used if custom logging is enabled. + */ +enum quirks_log_priorities { + QLOG_NOISE = LOG_DEBUG + 1, + QLOG_DEBUG = LOG_DEBUG, + QLOG_INFO = LOG_INFO, + QLOG_ERROR = LOG_ERR, + QLOG_PARSER_ERROR = LOG_CRIT, +}; + +/** + * Log type to be used for logging. Use the moused logging to hook up a + * moused log handler. This will cause the quirks to reduce the noise and + * only provide useful messages. + * + * QLOG_CUSTOM_LOG_PRIORITIES enables more fine-grained and verbose logging, + * allowing debugging tools to be more useful. + */ +enum quirks_log_type { + QLOG_MOUSED_LOGGING, + QLOG_CUSTOM_LOG_PRIORITIES, +}; + +/** + * Initialize the quirks subsystem. This function must be called + * before anything else. + * + * If log_type is QLOG_CUSTOM_LOG_PRIORITIES, the log handler is called with + * the custom QLOG_* log priorities. Otherwise, the log handler only uses + * the moused (syslog) log priorities. + * + * @param config_file A file path to main configuration file + * @param quirks_path The directory containing the various quirk files + * @param log_handler The moused log handler called for debugging output + * + * @return an opaque handle to the context + */ +struct quirks_context * +quirks_init_subsystem(const char *config_file, + const char *quirks_path, + moused_log_handler log_handler, + enum quirks_log_type log_type); + +/** + * Clean up after ourselves. This function must be called + * as the last call to the quirks subsystem. + * + * All quirks returned to the caller in quirks_fetch_for_device() must be + * unref'd before this call. + * + * @return Always NULL + */ +struct quirks_context * +quirks_context_unref(struct quirks_context *ctx); + +DEFINE_UNREF_CLEANUP_FUNC(quirks_context); + +struct quirks_context * +quirks_context_ref(struct quirks_context *ctx); + +/** + * Fetch the quirks for a given device. If no quirks are defined, this + * function returns NULL. + * + * @return A new quirks struct, use quirks_unref() to release + */ +struct quirks * +quirks_fetch_for_device(struct quirks_context *ctx, + struct device *device); + +/** + * Reduce the refcount by one. When the refcount reaches zero, the + * associated struct is released. + * + * @return Always NULL + */ +struct quirks * +quirks_unref(struct quirks *q); + +DEFINE_UNREF_CLEANUP_FUNC(quirks); + +/** + * Returns true if the given quirk applies is in this quirk list. + */ +bool +quirks_has_quirk(struct quirks *q, enum quirk which); + +/** + * Get the value of the given quirk, as unsigned integer. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, val is + * unchanged. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_uint32(struct quirks *q, + enum quirk which, + uint32_t *val); + +/** + * Get the value of the given quirk, as signed integer. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, val is + * unchanged. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_int32(struct quirks *q, + enum quirk which, + int32_t *val); + +/** + * Get the value of the given quirk, as double. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, val is + * unchanged. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_double(struct quirks *q, + enum quirk which, + double *val); + +/** + * Get the value of the given quirk, as string. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, val is + * unchanged. + * + * val is set to the string, do not modify or free it. The lifetime of the + * returned string is bound to the lifetime of the quirk. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_string(struct quirks *q, + enum quirk which, + char **val); + +/** + * Get the value of the given quirk, as bool. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, val is + * unchanged. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_bool(struct quirks *q, + enum quirk which, + bool *val); + +/** + * Get the value of the given quirk, as dimension. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, val is + * unchanged. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_dimensions(struct quirks *q, + enum quirk which, + struct quirk_dimensions *val); + +/** + * Get the value of the given quirk, as range. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, val is + * unchanged. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_range(struct quirks *q, + enum quirk which, + struct quirk_range *val); + +/** + * Get the tuples of the given quirk. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, tuples is + * unchanged. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_tuples(struct quirks *q, + enum quirk which, + const struct quirk_tuples **tuples); + +/** + * Get the uint32 array of the given quirk. + * This function will assert if the quirk type does not match the + * requested type. If the quirk is not set for this device, tuples is + * unchanged. + * + * @return true if the quirk value is valid, false otherwise. + */ +bool +quirks_get_uint32_array(struct quirks *q, + enum quirk which, + const uint32_t **array, + size_t *nelements); diff --git a/usr.sbin/moused/moused/quirks/5-generic-touchpad.quirks b/usr.sbin/moused/moused/quirks/5-generic-touchpad.quirks new file mode 100644 index 000000000000..c741ffc80bd6 --- /dev/null +++ b/usr.sbin/moused/moused/quirks/5-generic-touchpad.quirks @@ -0,0 +1,9 @@ +# Do not edit this file, it will be overwritten on update + +[SynPS/2 Synaptics TouchPad] +MatchDevType=touchpad +MatchName=SynPS/2 Synaptics TouchPad +AttrPressureRange=35:30 +MousedTapPressureThreshold=44 +#AttrThumbPressureThreshold=45 +AttrPalmPressureThreshold=220 diff --git a/usr.sbin/moused/moused/util-evdev.c b/usr.sbin/moused/moused/util-evdev.c new file mode 100644 index 000000000000..925979fdc02c --- /dev/null +++ b/usr.sbin/moused/moused/util-evdev.c @@ -0,0 +1,173 @@ +/* + * Copyright © 2013 David Herrmann + * Copyright © 2013 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include +#include +#include + +#include + +#include "event-names.h" +#include "util-evdev.h" + +#define ARRAY_LENGTH(a) (sizeof(a) / (sizeof((a)[0]))) + +struct name_lookup { + const char *name; + size_t len; +}; + +static inline bool +startswith(const char *str, size_t len, const char *prefix, size_t plen) +{ + return len >= plen && !strncmp(str, prefix, plen); +} + +static int type_from_prefix(const char *name, ssize_t len) +{ + const char *e; + size_t i; + ssize_t l; + + /* MAX_ is not allowed, even though EV_MAX exists */ + if (startswith(name, len, "MAX_", 4)) + return -1; + /* BTN_ is special as there is no EV_BTN type */ + if (startswith(name, len, "BTN_", 4)) + return EV_KEY; + /* FF_STATUS_ is special as FF_ is a prefix of it, so test it first */ + if (startswith(name, len, "FF_STATUS_", 10)) + return EV_FF_STATUS; + + for (i = 0; i < ARRAY_LENGTH(ev_names); ++i) { + /* skip EV_ prefix so @e is suffix of [EV_]XYZ */ + e = &ev_names[i].name[3]; + l = strlen(e); + + /* compare prefix and test for trailing _ */ + if (len > l && startswith(name, len, e, l) && name[l] == '_') + return ev_names[i].value; + } + + return -1; +} + +static int cmp_entry(const void *vlookup, const void *ventry) +{ + const struct name_lookup *lookup = vlookup; + const struct name_entry *entry = ventry; + int r; + + r = strncmp(lookup->name, entry->name, lookup->len); + if (!r) { + if (entry->name[lookup->len]) + r = -1; + else + r = 0; + } + + return r; +} + +static const struct name_entry* +lookup_name(const struct name_entry *array, size_t asize, + struct name_lookup *lookup) +{ + const struct name_entry *entry; + + entry = bsearch(lookup, array, asize, sizeof(*array), cmp_entry); + if (!entry) + return NULL; + + return entry; +} + +int +libevdev_event_type_get_max(unsigned int type) +{ + if (type > EV_MAX) + return -1; + + return ev_max[type]; +} + +int +libevdev_event_code_from_name(unsigned int type, const char *name) +{ + struct name_lookup lookup; + const struct name_entry *entry; + int real_type; + size_t len = strlen(name); + + real_type = type_from_prefix(name, len); + if (real_type < 0 || (unsigned int)real_type != type) + return -1; + + lookup.name = name; + lookup.len = len; + + entry = lookup_name(code_names, ARRAY_LENGTH(code_names), &lookup); + + return entry ? (int)entry->value : -1; +} + +static int +libevdev_event_type_from_name_n(const char *name, size_t len) +{ + struct name_lookup lookup; + const struct name_entry *entry; + + lookup.name = name; + lookup.len = len; + + entry = lookup_name(ev_names, ARRAY_LENGTH(ev_names), &lookup); + + return entry ? (int)entry->value : -1; +} + +int +libevdev_event_type_from_name(const char *name) +{ + return libevdev_event_type_from_name_n(name, strlen(name)); +} + +static int +libevdev_property_from_name_n(const char *name, size_t len) +{ + struct name_lookup lookup; + const struct name_entry *entry; + + lookup.name = name; + lookup.len = len; + + entry = lookup_name(prop_names, ARRAY_LENGTH(prop_names), &lookup); + + return entry ? (int)entry->value : -1; +} + +int +libevdev_property_from_name(const char *name) +{ + return libevdev_property_from_name_n(name, strlen(name)); +} diff --git a/usr.sbin/moused/moused/util-evdev.h b/usr.sbin/moused/moused/util-evdev.h new file mode 100644 index 000000000000..cb2e3f1fb935 --- /dev/null +++ b/usr.sbin/moused/moused/util-evdev.h @@ -0,0 +1,35 @@ +/* + * Copyright © 2013 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + */ + +#ifndef UTIL_EVDEV_H +#define UTIL_EVDEV_H + +#include + +int libevdev_event_code_from_name(unsigned int type, const char *name); +int libevdev_event_type_get_max(unsigned int type); +int libevdev_event_type_from_name(const char *name); +int libevdev_property_from_name(const char *name); + +#endif diff --git a/usr.sbin/moused/moused/util-list.c b/usr.sbin/moused/moused/util-list.c new file mode 100644 index 000000000000..7f85b368076c --- /dev/null +++ b/usr.sbin/moused/moused/util-list.c @@ -0,0 +1,86 @@ +/* + * Copyright © 2008-2011 Kristian Høgsberg + * Copyright © 2011 Intel Corporation + * Copyright © 2013-2015 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include + +#include "util-list.h" + +void +list_init(struct list *list) +{ + list->prev = list; + list->next = list; +} + +void +list_insert(struct list *list, struct list *elm) +{ + assert((list->next != NULL && list->prev != NULL) || + !"list->next|prev is NULL, possibly missing list_init()"); + assert(((elm->next == NULL && elm->prev == NULL) || list_empty(elm)) || + !"elm->next|prev is not NULL, list node used twice?"); + + elm->prev = list; + elm->next = list->next; + list->next = elm; + elm->next->prev = elm; +} + +void +list_append(struct list *list, struct list *elm) +{ + assert((list->next != NULL && list->prev != NULL) || + !"list->next|prev is NULL, possibly missing list_init()"); + assert(((elm->next == NULL && elm->prev == NULL) || list_empty(elm)) || + !"elm->next|prev is not NULL, list node used twice?"); + + elm->next = list; + elm->prev = list->prev; + list->prev = elm; + elm->prev->next = elm; +} + +void +list_remove(struct list *elm) +{ + assert((elm->next != NULL && elm->prev != NULL) || + !"list->next|prev is NULL, possibly missing list_init()"); + + elm->prev->next = elm->next; + elm->next->prev = elm->prev; + elm->next = NULL; + elm->prev = NULL; +} + +bool +list_empty(const struct list *list) +{ + assert((list->next != NULL && list->prev != NULL) || + !"list->next|prev is NULL, possibly missing list_init()"); + + return list->next == list; +} diff --git a/usr.sbin/moused/moused/util-list.h b/usr.sbin/moused/moused/util-list.h new file mode 100644 index 000000000000..d7a8ce724d22 --- /dev/null +++ b/usr.sbin/moused/moused/util-list.h @@ -0,0 +1,194 @@ +/* + * Copyright © 2008-2011 Kristian Høgsberg + * Copyright © 2011 Intel Corporation + * Copyright © 2013-2015 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include + +/* + * This list data structure is a verbatim copy from wayland-util.h from the + * Wayland project; except that wl_ prefix has been removed. + */ + + +/** + * Doubly linked list implementation. This struct is used for both the list + * nodes and the list head. Use like this: + * + * @code + * + * struct foo { + * struct list list_of_bars; // the list head + * }; + * + * struct bar { + * struct list link; // links between the bars + * }; + * + * struct foo *f = zalloc(sizeof *f); + * struct bar *b = make_some_bar(); + * + * list_init(&f->list_of_bars); + * list_append(&f->list_of_bars, &b->link); + * list_remove(&b->link); + * @endcode + */ +struct list { + struct list *prev; + struct list *next; +}; + +/** + * Initialize a list head. This function *must* be called once for each list + * head. This function *must not* be called for a node to be added to a + * list. + */ +void list_init(struct list *list); + +/** + * Insert an element at the front of the list + */ +void list_insert(struct list *list, struct list *elm); +/** + * Append an element to the back of the list + */ +void list_append(struct list *list, struct list *elm); + +/** + * Remove an element from list. + * + * Removing a list element is only possible once, the caller must track + * whether the list node has already been removed. + * + */ +void list_remove(struct list *elm); +/** + * Returns true if the given list head is an empty list. + */ +bool list_empty(const struct list *list); + +/** + * Return the 'type' parent container struct of 'ptr' of which + * 'member' is our 'ptr' field. For example: + * + * @code + * struct foo { // the parent container struct + * uint32_t a; + * struct bar bar_member; // the member field + * }; + * + * struct foo *f = zalloc(sizeof *f); + * struct bar *b = &f->bar_member; + * struct foo *f2 = container_of(b, struct foo, bar_member); + * + * assert(f == f2); + * @endcode + */ +#define container_of(ptr, type, member) \ + (__typeof__(type) *)((char *)(ptr) - \ + offsetof(__typeof__(type), member)) + +/** + * Given a list 'head', return the first entry of type 'pos' that has a + * member 'link'. + * + * The 'pos' argument is solely used to determine the type be returned and + * not modified otherwise. It is common to use the same pointer that the + * return value of list_first_entry() is assigned to, for example: + * + * @code + * struct foo { + * struct list list_of_bars; + * }; + * + * struct bar { + * struct list link; + * } + * + * struct foo *f = get_a_foo(); + * struct bar *b = 0; // initialize to avoid static analysis errors + * b = list_first_entry(&f->list_of_bars, b, link); + * @endcode + */ +#define list_first_entry(head, pointer_of_type, member) \ + container_of((head)->next, __typeof__(*pointer_of_type), member) + +/** + * Given a list 'head', return the first entry of type 'container_type' that + * has a member 'link'. + * + * @code + * struct foo { + * struct list list_of_bars; + * }; + * + * struct bar { + * struct list link; + * } + * + * struct foo *f = get_a_foo(); + * struct bar *b = list_first_entry(&f->list_of_bars, struct bar, link); + * @endcode + */ +#define list_first_entry_by_type(head, container_type, member) \ + container_of((head)->next, container_type, member) + +/** + * Iterate through the list. + * + * @code + * struct foo *f = get_a_foo(); + * struct bar *element; + * list_for_each(element, &f->list_of_bars, link) { + * } + * @endcode + * + * If a list node needs to be removed during iteration, use + * list_for_each_safe(). + */ +#define list_for_each(pos, head, member) \ + for (pos = list_first_entry_by_type(head, __typeof__(*pos), member); \ + &pos->member != (head); \ + pos = list_first_entry_by_type(&pos->member, __typeof__(*pos), member)) + +/** + * Iterate through the list. Equivalent to list_for_each() but allows + * calling list_remove() on the element. + * + * @code + * struct foo *f = get_a_foo(); + * struct bar *element; + * list_for_each(element, tmp, &f->list_of_bars, link) { + * list_remove(&element->link); + * } + * @endcode + */ +#define list_for_each_safe(pos, head, member) \ + pos = list_first_entry_by_type(head, __typeof__(*pos), member); \ + for (__typeof__(pos) _tmp = list_first_entry_by_type(&pos->member, __typeof__(*_tmp), member); \ + &pos->member != (head); \ + pos = _tmp, \ + _tmp = list_first_entry_by_type(&pos->member, __typeof__(*_tmp), member)) diff --git a/usr.sbin/moused/moused/util.c b/usr.sbin/moused/moused/util.c new file mode 100644 index 000000000000..09bcc42b0f19 --- /dev/null +++ b/usr.sbin/moused/moused/util.c @@ -0,0 +1,423 @@ +/* + * Copyright © 2008 Kristian Høgsberg + * Copyright © 2013-2019 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "util.h" +#include "util-evdev.h" +#include "util-list.h" + +/* util-strings.c */ + +/** + * Return the next word in a string pointed to by state before the first + * separator character. Call repeatedly to tokenize a whole string. + * + * @param state Current state + * @param len String length of the word returned + * @param separators List of separator characters + * + * @return The first word in *state, NOT null-terminated + */ +static const char * +next_word(const char **state, size_t *len, const char *separators) +{ + const char *next = *state; + size_t l; + + if (!*next) + return NULL; + + next += strspn(next, separators); + if (!*next) { + *state = next; + return NULL; + } + + l = strcspn(next, separators); + *state = next + l; + *len = l; + + return next; +} + +/** + * Return a null-terminated string array with the tokens in the input + * string, e.g. "one two\tthree" with a separator list of " \t" will return + * an array [ "one", "two", "three", NULL ] and num elements 3. + * + * Use strv_free() to free the array. + * + * Another example: + * result = strv_from_string("+1-2++3--4++-+5-+-", "+-", &nelem) + * result == [ "1", "2", "3", "4", "5", NULL ] and nelem == 5 + * + * @param in Input string + * @param separators List of separator characters + * @param num_elements Number of elements found in the input string + * + * @return A null-terminated string array or NULL on errors + */ +char ** +strv_from_string(const char *in, const char *separators, size_t *num_elements) +{ + assert(in != NULL); + assert(separators != NULL); + assert(num_elements != NULL); + + const char *s = in; + size_t l, nelems = 0; + while (next_word(&s, &l, separators) != NULL) + nelems++; + + if (nelems == 0) { + *num_elements = 0; + return NULL; + } + + size_t strv_len = nelems + 1; /* NULL-terminated */ + char **strv = zalloc(strv_len * sizeof *strv); + + size_t idx = 0; + const char *word; + s = in; + while ((word = next_word(&s, &l, separators)) != NULL) { + char *copy = strndup(word, l); + if (!copy) { + strv_free(strv); + *num_elements = 0; + return NULL; + } + + strv[idx++] = copy; + } + + *num_elements = nelems; + + return strv; +} + +/** + * Iterate through strv, calling func with each string and its respective index. + * Iteration stops successfully after max elements or at the last element, + * whichever occurs first. + * + * If func returns non-zero, iteration stops and strv_for_each returns + * that value. + * + * @return zero on success, otherwise the error returned by the callback + */ +int strv_for_each_n(const char **strv, size_t max, strv_foreach_callback_t func, void *data) +{ + for (size_t i = 0; i < max && strv && strv[i]; i++) { + int ret = func(strv[i], i, data); + if (ret) + return ret; + } + return 0; +} + +/* !util-strings.c */ + +/* util-prop-parsers.c */ + +/** + * Parses a simple dimension string in the form of "10x40". The two + * numbers must be positive integers in decimal notation. + * On success, the two numbers are stored in w and h. On failure, w and h + * are unmodified. + * + * @param prop The value of the property + * @param w Returns the first component of the dimension + * @param h Returns the second component of the dimension + * @return true on success, false otherwise + */ +bool +parse_dimension_property(const char *prop, size_t *w, size_t *h) +{ + int x, y; + + if (!prop) + return false; + + if (sscanf(prop, "%dx%d", &x, &y) != 2) + return false; + + if (x <= 0 || y <= 0) + return false; + + *w = (size_t)x; + *h = (size_t)y; + return true; +} + +/** + * Parses a string of the format "a:b" where both a and b must be integer + * numbers and a > b. Also allowed is the special string value "none" which + * amounts to unsetting the property. + * + * @param prop The value of the property + * @param hi Set to the first digit or 0 in case of 'none' + * @param lo Set to the second digit or 0 in case of 'none' + * @return true on success, false otherwise + */ +bool +parse_range_property(const char *prop, int *hi, int *lo) +{ + int first, second; + + if (!prop) + return false; + + if (streq(prop, "none")) { + *hi = 0; + *lo = 0; + return true; + } + + if (sscanf(prop, "%d:%d", &first, &second) != 2) + return false; + + if (second >= first) + return false; + + *hi = first; + *lo = second; + + return true; +} + +bool +parse_boolean_property(const char *prop, bool *b) +{ + if (!prop) + return false; + + if (streq(prop, "1")) + *b = true; + else if (streq(prop, "0")) + *b = false; + else + return false; + + return true; +} + +static bool +parse_evcode_string(const char *s, int *type_out, int *code_out) +{ + int type, code; + + if (strstartswith(s, "EV_")) { + type = libevdev_event_type_from_name(s); + if (type == -1) + return false; + + code = EVENT_CODE_UNDEFINED; + } else { + struct map { + const char *str; + int type; + } map[] = { + { "KEY_", EV_KEY }, + { "BTN_", EV_KEY }, + { "ABS_", EV_ABS }, + { "REL_", EV_REL }, + { "SW_", EV_SW }, + }; + bool found = false; + + ARRAY_FOR_EACH(map, m) { + if (!strstartswith(s, m->str)) + continue; + + type = m->type; + code = libevdev_event_code_from_name(type, s); + if (code == -1) + return false; + + found = true; + break; + } + if (!found) + return false; + } + + *type_out = type; + *code_out = code; + + return true; +} + +/** + * Parses a string of the format "+EV_ABS;+KEY_A;-BTN_TOOL_DOUBLETAP;-ABS_X;" + * where each element must be + or - (enable/disable) followed by a named event + * type OR a named event code OR a tuple in the form of EV_KEY:0x123, i.e. a + * named event type followed by a hex event code. + * + * events must point to an existing array of size nevents. + * nevents specifies the size of the array in events and returns the number + * of items, elements exceeding nevents are simply ignored, just make sure + * events is large enough for your use-case. + * + * The results are returned as input events with type and code set, all + * other fields undefined. Where only the event type is specified, the code + * is set to EVENT_CODE_UNDEFINED. + * + * On success, events contains nevents events with each event's value set to 1 + * or 0 depending on the + or - prefix. + */ +bool +parse_evcode_property(const char *prop, struct input_event *events, size_t *nevents) +{ + bool rc = false; + /* A randomly chosen max so we avoid crazy quirks */ + struct input_event evs[32]; + + memset(evs, 0, sizeof evs); + + size_t ncodes; + char **strv = strv_from_string(prop, ";", &ncodes); + if (!strv || ncodes == 0 || ncodes > ARRAY_LENGTH(evs)) + goto out; + + ncodes = min(*nevents, ncodes); + for (size_t idx = 0; strv[idx]; idx++) { + char *s = strv[idx]; + bool enable; + + switch (*s) { + case '+': enable = true; break; + case '-': enable = false; break; + default: + goto out; + } + + s++; + + int type, code; + + if (strstr(s, ":") == NULL) { + if (!parse_evcode_string(s, &type, &code)) + goto out; + } else { + int consumed; + char stype[13] = {0}; /* EV_FF_STATUS + '\0' */ + + if (sscanf(s, "%12[A-Z_]:%x%n", stype, &code, &consumed) != 2 || + strlen(s) != (size_t)consumed || + (type = libevdev_event_type_from_name(stype)) == -1 || + code < 0 || code > libevdev_event_type_get_max(type)) + goto out; + } + + evs[idx].type = type; + evs[idx].code = code; + evs[idx].value = enable; + } + + memcpy(events, evs, ncodes * sizeof *events); + *nevents = ncodes; + rc = true; + +out: + strv_free(strv); + return rc; +} + +/** + * Parses a string of the format "+INPUT_PROP_BUTTONPAD;-INPUT_PROP_POINTER;+0x123;" + * where each element must be a named input prop OR a hexcode in the form + * 0x1234. The prefix for each element must be either '+' (enable) or '-' (disable). + * + * props must point to an existing array of size nprops. + * nprops specifies the size of the array in props and returns the number + * of elements, elements exceeding nprops are simply ignored, just make sure + * props is large enough for your use-case. + * + * On success, props contains nprops elements. + */ +bool +parse_input_prop_property(const char *prop, struct input_prop *props_out, size_t *nprops) +{ + bool rc = false; + struct input_prop props[INPUT_PROP_CNT]; /* doubling up on quirks is a bug */ + + size_t count; + char **strv = strv_from_string(prop, ";", &count); + if (!strv || count == 0 || count > ARRAY_LENGTH(props)) + goto out; + + count = min(*nprops, count); + for (size_t idx = 0; strv[idx]; idx++) { + char *s = strv[idx]; + unsigned int prop; + bool enable; + + switch (*s) { + case '+': enable = true; break; + case '-': enable = false; break; + default: + goto out; + } + + s++; + + if (safe_atou_base(s, &prop, 16)) { + if (prop > INPUT_PROP_MAX) + goto out; + } else { + int val = libevdev_property_from_name(s); + if (val == -1) + goto out; + prop = (unsigned int)val; + } + props[idx].prop = prop; + props[idx].enabled = enable; + } + + memcpy(props_out, props, count * sizeof *props); + *nprops = count; + rc = true; + +out: + strv_free(strv); + return rc; +} + +/* !util-prop-parsers.c */ diff --git a/usr.sbin/moused/moused/util.h b/usr.sbin/moused/moused/util.h new file mode 100644 index 000000000000..a359cbc1079a --- /dev/null +++ b/usr.sbin/moused/moused/util.h @@ -0,0 +1,413 @@ +/* + * Copyright © 2008-2011 Kristian Høgsberg + * Copyright © 2011 Intel Corporation + * Copyright © 2013-2015 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include + +#define HAVE_LOCALE_H 1 + +#define MOUSED_ATTRIBUTE_PRINTF(_format, _args) \ + __attribute__ ((format (printf, _format, _args))) + +#define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0]) +/** + * Iterate through the array _arr, assigning the variable elem to each + * element. elem only exists within the loop. + */ +#define ARRAY_FOR_EACH(_arr, _elem) \ + for (__typeof__((_arr)[0]) *_elem = _arr; \ + _elem < (_arr) + ARRAY_LENGTH(_arr); \ + _elem++) + +#define versionsort(...) alphasort(__VA_ARGS__) +#define bit(x_) (1UL << (x_)) +#define min(a, b) (((a) < (b)) ? (a) : (b)) + +/* Supported device interfaces */ +enum device_if { + DEVICE_IF_UNKNOWN = -1, + DEVICE_IF_EVDEV = 0, + DEVICE_IF_SYSMOUSE, +}; + +/* Recognized device types */ +enum device_type { + DEVICE_TYPE_UNKNOWN = -1, + DEVICE_TYPE_MOUSE = 0, + DEVICE_TYPE_POINTINGSTICK, + DEVICE_TYPE_TOUCHPAD, + DEVICE_TYPE_TOUCHSCREEN, + DEVICE_TYPE_TABLET, + DEVICE_TYPE_TABLET_PAD, + DEVICE_TYPE_KEYBOARD, + DEVICE_TYPE_JOYSTICK, +}; + +struct device { + char path[80]; + enum device_if iftype; + enum device_type type; + char name[80]; + char uniq[80]; + struct input_id id; + mousemode_t mode; +}; + +/** + * @ingroup base + * + * Log handler type for custom logging. + * + * @param priority The priority of the current message + * @param format Message format in printf-style + * @param args Message arguments + */ +typedef void moused_log_handler(int priority, int errnum, + const char *format, va_list args); + +/* util-mem.h */ + +/** + * Use: _unref_(foo) struct foo *bar; + * + * This requires foo_unrefp() to be present, use DEFINE_UNREF_CLEANUP_FUNC. + */ +#define _unref_(_type) __attribute__((cleanup(_type##_unrefp))) struct _type + +/** + * Define a cleanup function for the struct type foo with a matching + * foo_unref(). Use: + * DEFINE_UNREF_CLEANUP_FUNC(foo) + * _unref_(foo) struct foo *bar; + */ +#define DEFINE_UNREF_CLEANUP_FUNC(_type) \ + static inline void _type##_unrefp(struct _type **_p) { \ + if (*_p) \ + _type##_unref(*_p); \ + } \ + struct __useless_struct_to_allow_trailing_semicolon__ + +static inline void* +_steal(void *ptr) { + void **original = (void**)ptr; + void *swapped = *original; + *original = NULL; + return swapped; +} + +/** + * Resets the pointer content and resets the data to NULL. + * This circumvents _cleanup_ handling for that pointer. + * Use: + * _cleanup_free_ char *data = malloc(); + * return steal(&data); + * + */ +#define steal(ptr_) \ + (typeof(*ptr_))_steal(ptr_) + +/* ! util-mem.h */ + +/* util-strings.h */ + +static inline bool +streq(const char *str1, const char *str2) +{ + /* one NULL, one not NULL is always false */ + if (str1 && str2) + return strcmp(str1, str2) == 0; + return str1 == str2; +} + +static inline bool +strneq(const char *str1, const char *str2, int n) +{ + /* one NULL, one not NULL is always false */ + if (str1 && str2) + return strncmp(str1, str2, n) == 0; + return str1 == str2; +} + +static inline void * +zalloc(size_t size) +{ + void *p; + + /* We never need to alloc anything more than 1,5 MB so we can assume + * if we ever get above that something's going wrong */ + if (size > 1536 * 1024) + assert(!"bug: internal malloc size limit exceeded"); + + p = calloc(1, size); + if (!p) + abort(); + + return p; +} + +/** + * strdup guaranteed to succeed. If the input string is NULL, the output + * string is NULL. If the input string is a string pointer, we strdup or + * abort on failure. + */ +static inline char* +safe_strdup(const char *str) +{ + char *s; + + if (!str) + return NULL; + + s = strdup(str); + if (!s) + abort(); + return s; +} + +/** + * Simple wrapper for asprintf that ensures the passed in-pointer is set + * to NULL upon error. + * The standard asprintf() call does not guarantee the passed in pointer + * will be NULL'ed upon failure, whereas this wrapper does. + * + * @param strp pointer to set to newly allocated string. + * This pointer should be passed to free() to release when done. + * @param fmt the format string to use for printing. + * @return The number of bytes printed (excluding the null byte terminator) + * upon success or -1 upon failure. In the case of failure the pointer is set + * to NULL. + */ +__attribute__ ((format (printf, 2, 3))) +static inline int +xasprintf(char **strp, const char *fmt, ...) +{ + int rc = 0; + va_list args; + + va_start(args, fmt); + rc = vasprintf(strp, fmt, args); + va_end(args); + if ((rc == -1) && strp) + *strp = NULL; + + return rc; +} + +static inline bool +safe_atoi_base(const char *str, int *val, int base) +{ + assert(str != NULL); + + char *endptr; + long v; + + assert(base == 10 || base == 16 || base == 8); + + errno = 0; + v = strtol(str, &endptr, base); + if (errno > 0) + return false; + if (str == endptr) + return false; + if (*str != '\0' && *endptr != '\0') + return false; + + if (v > INT_MAX || v < INT_MIN) + return false; + + *val = v; + return true; +} + +static inline bool +safe_atoi(const char *str, int *val) +{ + assert(str != NULL); + return safe_atoi_base(str, val, 10); +} + +static inline bool +safe_atou_base(const char *str, unsigned int *val, int base) +{ + assert(str != NULL); + + char *endptr; + unsigned long v; + + assert(base == 10 || base == 16 || base == 8); + + errno = 0; + v = strtoul(str, &endptr, base); + if (errno > 0) + return false; + if (str == endptr) + return false; + if (*str != '\0' && *endptr != '\0') + return false; + + if ((long)v < 0) + return false; + + *val = v; + return true; +} + +static inline bool +safe_atou(const char *str, unsigned int *val) +{ + assert(str != NULL); + return safe_atou_base(str, val, 10); +} + +static inline bool +safe_atod(const char *str, double *val) +{ + assert(str != NULL); + + char *endptr; + double v; + size_t slen = strlen(str); + + /* We don't have a use-case where we want to accept hex for a double + * or any of the other values strtod can parse */ + for (size_t i = 0; i < slen; i++) { + char c = str[i]; + + if (isdigit(c)) + continue; + switch(c) { + case '+': + case '-': + case '.': + break; + default: + return false; + } + } + +#ifdef HAVE_LOCALE_H + /* Create a "C" locale to force strtod to use '.' as separator */ + locale_t c_locale = newlocale(LC_NUMERIC_MASK, "C", (locale_t)0); + if (c_locale == (locale_t)0) + return false; + + errno = 0; + v = strtod_l(str, &endptr, c_locale); + freelocale(c_locale); +#else + /* No locale support in provided libc, assume it already uses '.' */ + errno = 0; + v = strtod(str, &endptr); +#endif + if (errno > 0) + return false; + if (str == endptr) + return false; + if (*str != '\0' && *endptr != '\0') + return false; + if (v != 0.0 && !isnormal(v)) + return false; + + *val = v; + return true; +} + +char **strv_from_string(const char *in, const char *separator, size_t *num_elements); + +typedef int (*strv_foreach_callback_t)(const char *str, size_t index, void *data); +int strv_for_each_n(const char **strv, size_t max, strv_foreach_callback_t func, void *data); + +static inline void +strv_free(char **strv) { + char **s = strv; + + if (!strv) + return; + + while (*s != NULL) { + free(*s); + *s = (char*)0x1; /* detect use-after-free */ + s++; + } + + free (strv); +} + +/** + * Return true if str ends in suffix, false otherwise. If the suffix is the + * empty string, strendswith() always returns false. + */ +static inline bool +strendswith(const char *str, const char *suffix) +{ + if (str == NULL) + return false; + + size_t slen = strlen(str); + size_t suffixlen = strlen(suffix); + size_t offset; + + if (slen == 0 || suffixlen == 0 || suffixlen > slen) + return false; + + offset = slen - suffixlen; + return strneq(&str[offset], suffix, suffixlen); +} + +static inline bool +strstartswith(const char *str, const char *prefix) +{ + if (str == NULL) + return false; + + size_t prefixlen = strlen(prefix); + + return prefixlen > 0 ? strneq(str, prefix, strlen(prefix)) : false; +} + +/* !util-strings.h */ + +/* util-prop-parsers.h */ + +struct input_prop { + unsigned int prop; + bool enabled; +}; + +bool parse_dimension_property(const char *prop, size_t *w, size_t *h); +bool parse_range_property(const char *prop, int *hi, int *lo); +bool parse_boolean_property(const char *prop, bool *b); +#define EVENT_CODE_UNDEFINED 0xffff +bool parse_evcode_property(const char *prop, struct input_event *events, size_t *nevents); +bool parse_input_prop_property(const char *prop, struct input_prop *props_out, size_t *nprops); + +/* !util-prop-parsers.h */ diff --git a/usr.sbin/moused/msconvd/Makefile b/usr.sbin/moused/msconvd/Makefile new file mode 100644 index 000000000000..6ea5eee7db3b --- /dev/null +++ b/usr.sbin/moused/msconvd/Makefile @@ -0,0 +1,8 @@ +PACKAGE= console-tools +PROG= msconvd +SRCS= ${PROG}.c +LIBADD= util +BINDIR= /usr/sbin +MAN= ${PROG}.8 + +.include diff --git a/usr.sbin/moused/moused.8 b/usr.sbin/moused/msconvd/msconvd.8 similarity index 59% rename from usr.sbin/moused/moused.8 rename to usr.sbin/moused/msconvd/msconvd.8 index cd5d8ddde339..17434ecb9b60 100644 --- a/usr.sbin/moused/moused.8 +++ b/usr.sbin/moused/msconvd/msconvd.8 @@ -1,850 +1,619 @@ .\"- .\" SPDX-License-Identifier: BSD-4-Clause .\" .\" Copyright (c) 1996 .\" Mike Pritchard . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Mike Pritchard. .\" 4. Neither the name of the author nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 7, 2024 -.Dt MOUSED 8 +.Dd May 18, 2025 +.Dt MSCONVD 8 .Os .Sh NAME -.Nm moused -.Nd pass mouse data to the system video console driver +.Nm msconvd +.Nd mouse protocol conversion daemon .Sh SYNOPSIS .Nm -.Op Fl DPRacdfs +.Op Fl DPRcdfs .Op Fl I Ar file .Op Fl F Ar rate .Op Fl r Ar resolution .Op Fl S Ar baudrate -.Op Fl VH Op Fl U Ar distance Fl L Ar distance -.Op Fl A Ar exp Ns Op , Ns Ar offset -.Op Fl a Ar X Ns Op , Ns Ar Y -.Op Fl C Ar threshold -.Op Fl m Ar N=M -.Op Fl w Ar N -.Op Fl z Ar target .Op Fl t Ar mousetype .Op Fl l Ar level -.Op Fl 3 Op Fl E Ar timeout -.Op Fl T Ar distance Ns Op , Ns Ar time Ns Op , Ns Ar after .Fl p Ar port .Pp .Nm .Op Fl Pd .Fl p Ar port .Fl i Ar info .Sh DESCRIPTION The .Nm -utility and the console driver work together to support -mouse operation in the text console and user programs. -They virtualize the mouse and provide user programs with mouse data -in the standard format -(see -.Xr sysmouse 4 ) . -.Pp -The mouse daemon listens to the specified port for mouse data, -interprets and then passes it via ioctls to the console driver. -The mouse daemon -reports translation movement, button press/release +utility and the +.Xr moused 8 +driver work together to support legacy devices like COM, +.Xr ams 4 +mices and X10 remotes as well. +.Xr psm 4 , +.Xr ums 4 +and some other devices are supported too but not recomended to use with +.Nm +unless kernel is compiled without +.Dq option EVDEV_SUPPORT . +The +.Nm +listens to the specified port for mouse data, decodes and then passes +it via input event device a.k.a evdev to consumer aplications like +.Xr moused 8 +or +.Xr libinput 1 . +It does not display the mouse pointer on the screen or provide cut and +paste functions. +The msconv daemon converts translation movement, button press/release events and movement of the roller or the wheel if available. -The roller/wheel movement is reported as -.Dq Z -axis movement. -.Pp -The console driver will display the mouse pointer on the screen -and provide cut and paste functions if the mouse pointer is enabled -in the virtual console via -.Xr vidcontrol 1 . -If -.Xr sysmouse 4 -is opened by the user program, the console driver also passes the mouse -data to the device so that the user program will see it. -.Pp -If the mouse daemon receives the signal +.Pp +.Pp +If the +.Nm +receives the signal .Dv SIGHUP , it will reopen the mouse port and reinitialize itself. Useful if the mouse is attached/detached while the system is suspended. .Pp -If the mouse daemon receives the signal +If the +.Nm +receives the signal .Dv SIGUSR1 , it will stop passing mouse events. Sending the signal .Dv SIGUSR1 again will resume passing mouse events. Useful if your typing on a laptop is interrupted by accidentally touching the mouse pad. .Pp The following options are available: .Bl -tag -width indent -.It Fl 3 -Emulate the third (middle) button for 2-button mice. -It is emulated -by pressing the left and right physical buttons simultaneously. -.It Fl C Ar threshold -Set double click speed as the maximum interval in msec between button clicks. -Without this option, the default value of 500 msec will be assumed. -This option will have effect only on the cut and paste operations -in the text mode console. -The user program which is reading mouse data -via -.Xr sysmouse 4 -will not be affected. .It Fl D Lower DTR on the serial port. This option is valid only if .Ar mousesystems is selected as the protocol type. The DTR line may need to be dropped for a 3-button mouse to operate in the .Ar mousesystems mode. -.It Fl E Ar timeout -When the third button emulation is enabled -(see above), -the -.Nm -utility waits -.Ar timeout -msec at most before deciding whether two buttons are being pressed -simultaneously. -The default timeout is 100 msec. .It Fl F Ar rate Set the report rate (reports/sec) of the device if supported. -.It Fl L Ar distance -When -.Dq Virtual Scrolling -is enabled, the -.Fl L -option can be used to set the -.Ar distance -(in pixels) that the mouse must move before a scroll event -is generated. -This effectively controls the scrolling speed. -The default -.Ar distance -is 2 pixels. -.It Fl H -Enable -.Dq Horizontal Virtual Scrolling . -With this option set, holding the middle mouse -button down will cause motion to be interpreted as -horizontal scrolling. -Use the -.Fl U -option to set the distance the mouse must move before the scrolling mode is -activated and the -.Fl L -option to set the scrolling speed. -This option may be used with or without the -.Fl V -option. .It Fl I Ar file Write the process id of the .Nm utility in the specified file. Without this option, the process id will be stored in .Pa /var/run/moused.pid . .It Fl P Do not start the Plug and Play COM device enumeration procedure when identifying the serial mouse. If this option is given together with the .Fl i option, the .Nm utility will not be able to print useful information for the serial mouse. .It Fl R Lower RTS on the serial port. This option is valid only if .Ar mousesystems is selected as the protocol type by the .Fl t option below. It is often used with the .Fl D option above. Both RTS and DTR lines may need to be dropped for a 3-button mouse to operate in the .Ar mousesystems mode. .It Fl S Ar baudrate Select the baudrate for the serial port (1200 to 9600). Not all serial mice support this option. -.It Fl T Ar distance Ns Op , Ns Ar time Ns Op , Ns Ar after -Terminate drift. -Use this option if mouse pointer slowly wanders when mouse is not moved. -Movements up to -.Ar distance -(for example 4) pixels (X+Y) in -.Ar time -msec (default 500) are ignored, except during -.Ar after -msec (default 4000) since last real mouse movement. -.It Fl V -Enable -.Dq Virtual Scrolling . -With this option set, holding the middle mouse -button down will cause motion to be interpreted as scrolling. -Use the -.Fl U -option to set the distance the mouse must move before the scrolling mode is -activated and the -.Fl L -option to set the scrolling speed. -.It Fl U Ar distance -When -.Dq Virtual Scrolling -is enabled, the -.Fl U -option can be used to set the -.Ar distance -(in pixels) that the mouse must move before the scrolling -mode is activated. -The default -.Ar distance -is 3 pixels. -.It Fl A Ar exp Ns Op , Ns Ar offset -Apply exponential (dynamic) acceleration to mouse movements: -the faster you move the mouse, the more it will be accelerated. -That means that small mouse movements are not accelerated, -so they are still very accurate, while a faster movement will -drive the pointer quickly across the screen. -.Pp -The -.Ar exp -value specifies the exponent, which is basically -the amount of acceleration. -Useful values are in the range 1.1 to 2.0, but it depends on -your mouse hardware and your personal preference. -A value of 1.0 means no exponential acceleration. -A value of 2.0 means squared acceleration (i.e. if -you move the mouse twice as fast, the pointer will move -four times as fast on the screen). -Values beyond 2.0 are possible but not recommended. -A good value to start is probably 1.5. -.Pp -The optional -.Ar offset -value specifies the distance at which the acceleration begins. -The default is 1.0, which means that the acceleration is applied -to movements larger than one unit. -If you specify a larger value, it takes more speed for -the acceleration to kick in, i.e. the speed range for -small and accurate movements is wider. -Usually the default should be sufficient, but if you're -not satisfied with the behaviour, try a value of 2.0. -.Pp -Note that the -.Fl A -option interacts badly with the X server's own acceleration, -which doesn't work very well anyway. -Therefore it is recommended to switch it off if necessary: -.Dq xset m 1 . -.It Fl a Ar X Ns Op , Ns Ar Y -Accelerate or decelerate the mouse input. -This is a linear acceleration only. -Values less than 1.0 slow down movement, values greater than 1.0 speed it -up. -Specifying only one value sets the acceleration for both axes. -.Pp -You can use the -.Fl a -and -.Fl A -options at the same time to have the combined effect -of linear and exponential acceleration. .It Fl c Some mice report middle button down events as if the left and right buttons are being pressed. This option handles this. .It Fl d Enable debugging messages. .It Fl f Do not become a daemon and instead run as a foreground process. Useful for testing and debugging. .It Fl i Ar info Print specified information and quit. Available pieces of information are: .Pp .Bl -tag -compact -width modelxxx .It Ar port Port (device file) name, i.e.\& .Pa /dev/cuau0 , and .Pa /dev/psm0 . .It Ar if Interface type: serial, bus, inport or ps/2. .It Ar type Protocol type. It is one of the types listed under the .Fl t option below or .Ar sysmouse if the driver supports the .Ar sysmouse data format standard. .It Ar model Mouse model. The .Nm utility may not always be able to identify the model. .It Ar all All of the above items. Print port, interface, type and model in this order in one line. .El .Pp If the .Nm utility cannot determine the requested information, it prints .Dq Li unknown or .Dq Li generic . .It Fl l Ar level Specifies at which level .Nm should operate the mouse driver. Refer to .Sx Operation Levels in .Xr psm 4 for more information on this. -.It Fl m Ar N=M -Assign the physical button -.Ar M -to the logical button -.Ar N . -You may specify as many instances of this option as you like. -More than one physical button may be assigned to a logical button at the -same time. -In this case the logical button will be down, -if either of the assigned physical buttons is held down. -Do not put space around -.Ql = . .It Fl p Ar port Use .Ar port to communicate with the mouse. .It Fl r Ar resolution Set the resolution of the device; in Dots Per Inch, or .Ar low , .Ar medium-low , .Ar medium-high or .Ar high . This option may not be supported by all the device. .It Fl s Select a baudrate of 9600 for the serial line. Not all serial mice support this option. .It Fl t Ar type Specify the protocol type of the mouse attached to the port. You may explicitly specify a type listed below, or use .Ar auto to let the .Nm utility automatically select an appropriate protocol for the given mouse. If you entirely omit this option in the command line, .Fl t Ar auto is assumed. Under normal circumstances, you need to use this option only if the .Nm utility is not able to detect the protocol automatically (see -.Sx "Configuring Mouse Daemon" ) . +.Sx "Configuring Mouse Protocol Conversion Daemon" ) . .Pp Note that if a protocol type is specified with this option, the .Fl P option above is implied and Plug and Play COM device enumeration procedure will be disabled. .Pp Also note that if your mouse is attached to the PS/2 mouse port, you should always choose .Ar auto or .Ar ps/2 , regardless of the brand and model of the mouse. Likewise, if your mouse is attached to the bus mouse port, choose .Ar auto or .Ar busmouse . Serial mouse protocols will not work with these mice. .Pp For the USB mouse, the protocol must be .Ar auto . No other protocol will work with the USB mouse. .Pp Valid types for this option are listed below. .Pp For the serial mouse: .Bl -tag -compact -width mousesystemsxxx .It Ar microsoft Microsoft serial mouse protocol. Most 2-button serial mice use this protocol. .It Ar intellimouse Microsoft IntelliMouse protocol. Genius NetMouse, .Tn ASCII Mie Mouse, Logitech MouseMan+ and FirstMouse+ use this protocol too. Other mice with a roller/wheel may be compatible with this protocol. .It Ar mousesystems MouseSystems 5-byte protocol. 3-button mice may use this protocol. .It Ar mmseries MM Series mouse protocol. .It Ar logitech Logitech mouse protocol. Note that this is for old Logitech models. .Ar mouseman or .Ar intellimouse should be specified for newer models. .It Ar mouseman Logitech MouseMan and TrackMan protocol. Some 3-button mice may be compatible with this protocol. Note that MouseMan+ and FirstMouse+ use .Ar intellimouse protocol rather than this one. .It Ar glidepoint ALPS GlidePoint protocol. .It Ar thinkingmouse Kensington ThinkingMouse protocol. .It Ar mmhitab Hitachi tablet protocol. .It Ar x10mouseremote X10 MouseRemote. .It Ar kidspad Genius Kidspad and Easypad protocol. .It Ar versapad Interlink VersaPad protocol. .It Ar gtco_digipad GTCO Digipad protocol. .El .Pp For the bus and InPort mouse: .Bl -tag -compact -width mousesystemsxxx .It Ar busmouse This is the only protocol type available for the bus and InPort mouse and should be specified for any bus mice and InPort mice, regardless of the brand. .El .Pp For the PS/2 mouse: .Bl -tag -compact -width mousesystemsxxx .It Ar ps/2 This is the only protocol type available for the PS/2 mouse and should be specified for any PS/2 mice, regardless of the brand. .El .Pp For the USB mouse, .Ar auto is the only protocol type available for the USB mouse and should be specified for any USB mice, regardless of the brand. -.It Fl w Ar N -Make the physical button -.Ar N -act as the wheel mode button. -While this button is pressed, X and Y axis movement is reported to be zero -and the Y axis movement is mapped to Z axis. -You may further map the Z axis movement to virtual buttons by the -.Fl z -option below. -.It Fl z Ar target -Map Z axis (roller/wheel) movement to another axis or to virtual buttons. -Valid -.Ar target -maybe: -.Bl -tag -compact -width x__ -.It Ar x -.It Ar y -X or Y axis movement will be reported when the Z axis movement is detected. -.It Ar N -Report down events for the virtual buttons -.Ar N -and -.Ar N+1 -respectively when negative and positive Z axis movement -is detected. -There do not need to be physical buttons -.Ar N -and -.Ar N+1 . -Note that mapping to logical buttons is carried out after mapping -from the Z axis movement to the virtual buttons is done. -.It Ar N1 N2 -Report down events for the virtual buttons -.Ar N1 -and -.Ar N2 -respectively when negative and positive Z axis movement -is detected. -.It Ar N1 N2 N3 N4 -This is useful for the mouse with two wheels of which -the second wheel is used to generate horizontal scroll action, -and for the mouse which has a knob or a stick which can detect -the horizontal force applied by the user. -.Pp -The motion of the second wheel will be mapped to the buttons -.Ar N3 , -for the negative direction, and -.Ar N4 , -for the positive direction. -If the buttons -.Ar N3 -and -.Ar N4 -actually exist in this mouse, their actions will not be detected. -.Pp -Note that horizontal movement or second roller/wheel movement may not -always be detected, -because there appears to be no accepted standard as to how it is encoded. -.Pp -Note also that some mice think left is the negative horizontal direction; -others may think otherwise. -Moreover, there are some mice whose two wheels are both mounted vertically, -and the direction of the second vertical wheel does not match the -first one. .El .El -.Ss Configuring Mouse Daemon +.Ss Configuring Mouse Protocol Conversion Daemon The first thing you need to know is the interface type of the mouse you are going to use. It can be determined by looking at the connector of the mouse. The serial mouse has a D-Sub female 9- or 25-pin connector. The bus and InPort mice have either a D-Sub male 9-pin connector or a round DIN 9-pin connector. The PS/2 mouse is equipped with a small, round DIN 6-pin connector. Some mice come with adapters with which the connector can be converted to another. If you are to use such an adapter, remember the connector at the very end of the mouse/adapter pair is what matters. The USB mouse has a flat rectangular connector. .Pp The next thing to decide is a port to use for the given interface. The PS/2 mouse is always at .Pa /dev/psm0 . There may be more than one serial port to which the serial mouse can be attached. Many people often assign the first, built-in serial port .Pa /dev/cuau0 to the mouse. You can attach multiple USB mice to your system or to your USB hub. They are accessible as .Pa /dev/ums0 , /dev/ums1 , and so on. .Pp You may want to create a symbolic link .Pa /dev/mouse pointing to the real port to which the mouse is connected, so that you can easily distinguish which is your .Dq mouse port later. .Pp The next step is to guess the appropriate protocol type for the mouse. The .Nm utility may be able to automatically determine the protocol type. Run the .Nm utility with the .Fl i option and see what it says. If the command can identify the protocol type, no further investigation is necessary on your part. You may start the daemon without explicitly specifying a protocol type (see .Sx EXAMPLES ) . .Pp The command may print .Ar sysmouse if the mouse driver supports this protocol type. .Pp Note that the .Dv type and .Dv model printed by the .Fl i option do not necessarily match the product name of the pointing device in question, but they may give the name of the device with which it is compatible. .Pp If the .Fl i option yields nothing, you need to specify a protocol type to the .Nm utility by the .Fl t option. You have to make a guess and try. There is rule of thumb: .Pp .Bl -enum -compact -width 1.X .It The bus and InPort mice always use .Ar busmouse protocol regardless of the brand of the mouse. .It The .Ar ps/2 protocol should always be specified for the PS/2 mouse regardless of the brand of the mouse. .It You must specify the .Ar auto protocol for the USB mouse. .It Most 2-button serial mice support the .Ar microsoft protocol. .It 3-button serial mice may work with the .Ar mousesystems protocol. If it does not, it may work with the .Ar microsoft protocol although the third (middle) button will not function. 3-button serial mice may also work with the .Ar mouseman protocol under which the third button may function as expected. .It 3-button serial mice may have a small switch to choose between .Dq MS and .Dq PC , or .Dq 2 and .Dq 3 . .Dq MS or .Dq 2 usually mean the .Ar microsoft protocol. .Dq PC or .Dq 3 will choose the .Ar mousesystems protocol. .It If the mouse has a roller or a wheel, it may be compatible with the .Ar intellimouse protocol. .El .Pp To test if the selected protocol type is correct for the given mouse, -enable the mouse pointer in the current virtual console, +ensure the +.Xr moused 8 +is running in auto port mode, .Pp -.Dl "vidcontrol -m on" +.Dl "moused -p auto" .Pp -start the mouse daemon in the foreground mode, +start the +.Nm +in the foreground mode, .Pp -.Dl "moused -f -p -t " +.Dl "msconvd -f -p -t " .Pp and see if the mouse pointer travels correctly according to the mouse movement. Then try cut & paste features by clicking the left, right and middle buttons. Type ^C to stop the command. .Ss Multiple Mice -As many instances of the mouse daemon as the number of mice attached to -the system may be run simultaneously; one -instance for each mouse. +As many instances of the +.Nm +as the number of mice attached to the system may be run simultaneously; +one instance for each mouse. This is useful if the user wants to use the built-in PS/2 pointing device of a laptop computer while on the road, but wants to use a serial mouse when s/he attaches the system to the docking station in the office. -Run two mouse daemons and tell the application program -(such as the -.Tn "X\ Window System" ) -to use -.Xr sysmouse 4 , -then the application program will always see mouse data from either mouse. -When the serial mouse is not attached, the corresponding mouse daemon +Run two +.Nm +and then the application program e.g. +.Xr moused 8 +will always see mouse data from either mouse. +When the serial mouse is not attached, the corresponding +.Nm will not detect any movement or button state change and the application program will only see mouse data coming from the daemon for the PS/2 mouse. In contrast when both mice are attached and both of them are moved at the same time in this configuration, the mouse pointer will travel across the screen just as if movement of the mice is combined all together. .Sh FILES -.Bl -tag -width /dev/consolectl -compact -.It Pa /dev/consolectl -device to control the console +.Bl -tag -width /dev/input/event%d -compact +.It Pa /dev/input/event%d +input event device .It Pa /dev/psm%d PS/2 mouse driver -.It Pa /dev/sysmouse -virtualized mouse driver +.It Pa /dev/cuau%d +serial port .It Pa /dev/ttyv%d virtual consoles .It Pa /dev/ums%d USB mouse driver -.It Pa /var/run/moused.pid +.It Pa /var/run/msconvd.pid process id of the currently running .Nm utility .It Pa /var/run/MouseRemote UNIX-domain stream socket for X10 MouseRemote events .El .Sh EXAMPLES -.Dl "moused -p /dev/cuau0 -i type" +.Dl "msconvd -p /dev/cuau0 -i type" .Pp Let the .Nm utility determine the protocol type of the mouse at the serial port .Pa /dev/cuau0 . If successful, the command will print the type, otherwise it will say .Dq Li unknown . .Bd -literal -offset indent -moused -p /dev/cuau0 -vidcontrol -m on +msconvd -p /dev/cuau0 .Ed .Pp If the .Nm utility is able to identify the protocol type of the mouse at the specified port automatically, you can start the daemon without the .Fl t -option and enable the mouse pointer in the text console as above. +option. .Bd -literal -offset indent -moused -p /dev/mouse -t microsoft -vidcontrol -m on +msconvd -p /dev/mouse -t microsoft .Ed .Pp Start the mouse daemon on the serial port .Pa /dev/mouse . The protocol type .Ar microsoft is explicitly specified by the .Fl t option. .Pp -.Dl "moused -p /dev/mouse -m 1=3 -m 3=1" -.Pp -Assign the physical button 3 (right button) to the logical button 1 -(logical left) and the physical button 1 (left) to the logical -button 3 (logical right). -This will effectively swap the left and right buttons. -.Pp -.Dl "moused -p /dev/mouse -t intellimouse -z 4" -.Pp -Report negative Z axis movement (i.e., mouse wheel) as the button 4 pressed -and positive Z axis movement (i.e., mouse wheel) as the button 5 pressed. -.Pp If you add .Pp -.Dl "ALL ALL = NOPASSWD: /usr/bin/killall -USR1 moused" +.Dl "ALL ALL = NOPASSWD: /usr/bin/killall -USR1 msconvd" .Pp to your .Pa /usr/local/etc/sudoers file, and bind .Pp -.Dl "killall -USR1 moused" +.Dl "killall -USR1 msconvd" .Pp to a key in your window manager, you can suspend mouse events on your laptop if you keep brushing over the mouse pad while typing. .Sh SEE ALSO +.Xr moused 8 , .Xr kill 1 , -.Xr vidcontrol 1 , .Xr xset 1 , -.Xr keyboard 4 , .Xr psm 4 , .Xr screen 4 , .Xr sysmouse 4 , -.Xr ums 4 +.Xr uart 4 .Sh STANDARDS The .Nm utility partially supports .Dq Plug and Play External COM Device Specification in order to support PnP serial mice. However, due to various degrees of conformance to the specification by existing serial mice, it does not strictly follow the version 1.0 of the standard. Even with this less strict approach, it may not always determine an appropriate protocol type for the given serial mouse. .Sh HISTORY The .Nm utility first appeared in +.Fx 15.0 . +It is a cropped-down version of +.Fx 14.0 +.Xr moused 8 +utility originated back in .Fx 2.2 . .Sh AUTHORS .An -nosplit The .Nm -utility was written by +utility is based on +.Xr moused 8 +written by .An Michael Smith Aq Mt msmith@FreeBSD.org . -This manual page was written by +This manual page is extracted from +.Xr moused 8 +page written by .An Mike Pritchard Aq Mt mpp@FreeBSD.org . The command and manual page have since been updated by .An Kazutaka Yokota Aq Mt yokota@FreeBSD.org . .Sh CAVEATS Many pad devices behave as if the first (left) button were pressed if the user .Dq taps the surface of the pad. In contrast, some ALPS GlidePoint and Interlink VersaPad models treat the tapping action as fourth button events. Use the option .Dq Fl m Li 1=4 +of +.Xr moused 8 for these models to obtain the same effect as the other pad devices. -.Pp -Cut and paste functions in the virtual console assume that there -are three buttons on the mouse. -The logical button 1 (logical left) selects a region of text in the -console and copies it to the cut buffer. -The logical button 3 (logical right) extends the selected region. -The logical button 2 (logical middle) pastes the selected text -at the text cursor position. -If the mouse has only two buttons, the middle, `paste' button -is not available. -To obtain the paste function, use the -.Fl 3 -option to emulate the middle button, or use the -.Fl m -option to assign the physical right button to the logical middle button: -.Dq Fl m Li 2=3 . diff --git a/usr.sbin/moused/moused.c b/usr.sbin/moused/msconvd/msconvd.c similarity index 70% rename from usr.sbin/moused/moused.c rename to usr.sbin/moused/msconvd/msconvd.c index 068919f2e941..7b06d92019aa 100644 --- a/usr.sbin/moused/moused.c +++ b/usr.sbin/moused/msconvd/msconvd.c @@ -1,3389 +1,2603 @@ /** ** SPDX-License-Identifier: BSD-4-Clause ** ** Copyright (c) 1995 Michael Smith, All rights reserved. ** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions ** are met: ** 1. Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer as ** the first lines of this file unmodified. ** 2. Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in the ** documentation and/or other materials provided with the distribution. ** 3. All advertising materials mentioning features or use of this software ** must display the following acknowledgment: ** This product includes software developed by Michael Smith. ** 4. The name of the author may not be used to endorse or promote products ** derived from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY Michael Smith ``AS IS'' AND ANY ** EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Michael Smith BE LIABLE FOR ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ** BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ** OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, ** EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ** **/ /** - ** MOUSED.C + ** MSCONVD.C ** - ** Mouse daemon : listens to a serial port, the bus mouse interface, or - ** the PS/2 mouse port for mouse data stream, interprets data and passes - ** ioctls off to the console driver. + ** Mouse protocol conversion daemon : listens to a serial port or + ** the PS/2 mouse port for mouse data stream, decodes data and passes + ** writes off to the uinput driver. ** ** The mouse interface functions are derived closely from the mouse ** handler in the XFree86 X server. Many thanks to the XFree86 people ** for their great work! ** **/ #include #include #include #include #include #include #include +#include +#include + #include #include #include #include +#include #include #include #include #include #include +#include #include #include #include #include #include #include #include -#include - -#define MAX_CLICKTHRESHOLD 2000 /* 2 seconds */ -#define MAX_BUTTON2TIMEOUT 2000 /* 2 seconds */ -#define DFLT_CLICKTHRESHOLD 500 /* 0.5 second */ -#define DFLT_BUTTON2TIMEOUT 100 /* 0.1 second */ -#define DFLT_SCROLLTHRESHOLD 3 /* 3 pixels */ -#define DFLT_SCROLLSPEED 2 /* 2 pixels */ - -/* Abort 3-button emulation delay after this many movement events. */ -#define BUTTON2_MAXMOVE 3 - -#define TRUE 1 -#define FALSE 0 - -#define MOUSE_XAXIS (-1) -#define MOUSE_YAXIS (-2) /* Logitech PS2++ protocol */ #define MOUSE_PS2PLUS_CHECKBITS(b) \ ((((b[2] & 0x03) << 2) | 0x02) == (b[1] & 0x0f)) #define MOUSE_PS2PLUS_PACKET_TYPE(b) \ (((b[0] & 0x30) >> 2) | ((b[1] & 0x30) >> 4)) #define ChordMiddle 0x0001 -#define Emulate3Button 0x0002 #define ClearDTR 0x0004 #define ClearRTS 0x0008 #define NoPnP 0x0010 -#define VirtualScroll 0x0020 -#define HVirtualScroll 0x0040 -#define ExponentialAcc 0x0080 #define ID_NONE 0 #define ID_PORT 1 #define ID_IF 2 #define ID_TYPE 4 #define ID_MODEL 8 #define ID_ALL (ID_PORT | ID_IF | ID_TYPE | ID_MODEL) -/* Operations on timespecs */ -#define tsclr(tvp) ((tvp)->tv_sec = (tvp)->tv_nsec = 0) -#define tscmp(tvp, uvp, cmp) \ - (((tvp)->tv_sec == (uvp)->tv_sec) ? \ - ((tvp)->tv_nsec cmp (uvp)->tv_nsec) : \ - ((tvp)->tv_sec cmp (uvp)->tv_sec)) -#define tssub(tvp, uvp, vvp) \ - do { \ - (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ - (vvp)->tv_nsec = (tvp)->tv_nsec - (uvp)->tv_nsec; \ - if ((vvp)->tv_nsec < 0) { \ - (vvp)->tv_sec--; \ - (vvp)->tv_nsec += 1000000000; \ - } \ - } while (0) - #define debug(...) do { \ if (debug && nodaemon) \ warnx(__VA_ARGS__); \ } while (0) #define logerr(e, ...) do { \ log_or_warn(LOG_DAEMON | LOG_ERR, errno, __VA_ARGS__); \ exit(e); \ } while (0) #define logerrx(e, ...) do { \ log_or_warn(LOG_DAEMON | LOG_ERR, 0, __VA_ARGS__); \ exit(e); \ } while (0) #define logwarn(...) \ log_or_warn(LOG_DAEMON | LOG_WARNING, errno, __VA_ARGS__) #define logwarnx(...) \ log_or_warn(LOG_DAEMON | LOG_WARNING, 0, __VA_ARGS__) /* structures */ /* symbol table entry */ typedef struct { const char *name; int val; int val2; } symtab_t; /* serial PnP ID string */ typedef struct { int revision; /* PnP revision, 100 for 1.00 */ const char *eisaid; /* EISA ID including mfr ID and product ID */ char *serial; /* serial No, optional */ const char *class; /* device class, optional */ char *compat; /* list of compatible drivers, optional */ char *description; /* product description, optional */ int neisaid; /* length of the above fields... */ int nserial; int nclass; int ncompat; int ndescription; } pnpid_t; /* global variables */ static int debug = 0; -static int nodaemon = FALSE; -static int background = FALSE; -static int paused = FALSE; +static bool nodaemon = false; +static bool background = false; +static bool paused = false; static int identify = ID_NONE; -static int extioctl = FALSE; -static const char *pidfile = "/var/run/moused.pid"; +static const char *pidfile = "/var/run/msconvd.pid"; static struct pidfh *pfh; -#define SCROLL_NOTSCROLLING 0 -#define SCROLL_PREPARE 1 -#define SCROLL_SCROLLING 2 - -static int scroll_state; -static int scroll_movement; -static int hscroll_movement; - /* local variables */ /* interface (the table must be ordered by MOUSE_IF_XXX in mouse.h) */ static symtab_t rifs[] = { - { "serial", MOUSE_IF_SERIAL, 0 }, - { "ps/2", MOUSE_IF_PS2, 0 }, - { "sysmouse", MOUSE_IF_SYSMOUSE, 0 }, - { "usb", MOUSE_IF_USB, 0 }, + { "serial", MOUSE_IF_SERIAL, BUS_RS232 }, + { "ps/2", MOUSE_IF_PS2, BUS_I8042 }, + { "sysmouse", MOUSE_IF_SYSMOUSE, BUS_VIRTUAL }, + { "usb", MOUSE_IF_USB, BUS_USB }, { NULL, MOUSE_IF_UNKNOWN, 0 }, }; /* types (the table must be ordered by MOUSE_PROTO_XXX in mouse.h) */ static const char *rnames[] = { "microsoft", "mousesystems", "logitech", "mmseries", "mouseman", "wasbusmouse", "wasinportmouse", "ps/2", "mmhitab", "glidepoint", "intellimouse", "thinkingmouse", "sysmouse", "x10mouseremote", "kidspad", "versapad", "jogdial", #if notyet "mariqua", #endif "gtco_digipad", NULL }; /* models */ static symtab_t rmodels[] = { { "NetScroll", MOUSE_MODEL_NETSCROLL, 0 }, { "NetMouse/NetScroll Optical", MOUSE_MODEL_NET, 0 }, { "GlidePoint", MOUSE_MODEL_GLIDEPOINT, 0 }, { "ThinkingMouse", MOUSE_MODEL_THINK, 0 }, { "IntelliMouse", MOUSE_MODEL_INTELLI, 0 }, { "EasyScroll/SmartScroll", MOUSE_MODEL_EASYSCROLL, 0 }, { "MouseMan+", MOUSE_MODEL_MOUSEMANPLUS, 0 }, { "Kidspad", MOUSE_MODEL_KIDSPAD, 0 }, { "VersaPad", MOUSE_MODEL_VERSAPAD, 0 }, { "IntelliMouse Explorer", MOUSE_MODEL_EXPLORER, 0 }, { "4D Mouse", MOUSE_MODEL_4D, 0 }, { "4D+ Mouse", MOUSE_MODEL_4DPLUS, 0 }, { "Synaptics Touchpad", MOUSE_MODEL_SYNAPTICS, 0 }, { "TrackPoint", MOUSE_MODEL_TRACKPOINT, 0 }, { "Elantech Touchpad", MOUSE_MODEL_ELANTECH, 0 }, { "generic", MOUSE_MODEL_GENERIC, 0 }, { NULL, MOUSE_MODEL_UNKNOWN, 0 }, }; /* PnP EISA/product IDs */ static symtab_t pnpprod[] = { /* Kensignton ThinkingMouse */ { "KML0001", MOUSE_PROTO_THINK, MOUSE_MODEL_THINK }, /* MS IntelliMouse */ { "MSH0001", MOUSE_PROTO_INTELLI, MOUSE_MODEL_INTELLI }, /* MS IntelliMouse TrackBall */ { "MSH0004", MOUSE_PROTO_INTELLI, MOUSE_MODEL_INTELLI }, /* Tremon Wheel Mouse MUSD */ { "HTK0001", MOUSE_PROTO_INTELLI, MOUSE_MODEL_INTELLI }, /* Genius PnP Mouse */ { "KYE0001", MOUSE_PROTO_MS, MOUSE_MODEL_GENERIC }, /* MouseSystems SmartScroll Mouse (OEM from Genius?) */ { "KYE0002", MOUSE_PROTO_MS, MOUSE_MODEL_EASYSCROLL }, /* Genius NetMouse */ { "KYE0003", MOUSE_PROTO_INTELLI, MOUSE_MODEL_NET }, /* Genius Kidspad, Easypad and other tablets */ { "KYE0005", MOUSE_PROTO_KIDSPAD, MOUSE_MODEL_KIDSPAD }, /* Genius EZScroll */ { "KYEEZ00", MOUSE_PROTO_MS, MOUSE_MODEL_EASYSCROLL }, /* Logitech Cordless MouseMan Wheel */ { "LGI8033", MOUSE_PROTO_INTELLI, MOUSE_MODEL_MOUSEMANPLUS }, /* Logitech MouseMan (new 4 button model) */ { "LGI800C", MOUSE_PROTO_INTELLI, MOUSE_MODEL_MOUSEMANPLUS }, /* Logitech MouseMan+ */ { "LGI8050", MOUSE_PROTO_INTELLI, MOUSE_MODEL_MOUSEMANPLUS }, /* Logitech FirstMouse+ */ { "LGI8051", MOUSE_PROTO_INTELLI, MOUSE_MODEL_MOUSEMANPLUS }, /* Logitech serial */ { "LGI8001", MOUSE_PROTO_LOGIMOUSEMAN, MOUSE_MODEL_GENERIC }, /* A4 Tech 4D/4D+ Mouse */ { "A4W0005", MOUSE_PROTO_INTELLI, MOUSE_MODEL_4D }, /* 8D Scroll Mouse */ { "PEC9802", MOUSE_PROTO_INTELLI, MOUSE_MODEL_INTELLI }, /* Mitsumi Wireless Scroll Mouse */ { "MTM6401", MOUSE_PROTO_INTELLI, MOUSE_MODEL_INTELLI }, /* MS serial */ { "PNP0F01", MOUSE_PROTO_MS, MOUSE_MODEL_GENERIC }, /* MS PS/2 */ { "PNP0F03", MOUSE_PROTO_PS2, MOUSE_MODEL_GENERIC }, /* * EzScroll returns PNP0F04 in the compatible device field; but it * doesn't look compatible... XXX */ /* MouseSystems */ { "PNP0F04", MOUSE_PROTO_MSC, MOUSE_MODEL_GENERIC }, /* MouseSystems */ { "PNP0F05", MOUSE_PROTO_MSC, MOUSE_MODEL_GENERIC }, #if notyet /* Genius Mouse */ { "PNP0F06", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, /* Genius Mouse */ { "PNP0F07", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, #endif /* Logitech serial */ { "PNP0F08", MOUSE_PROTO_LOGIMOUSEMAN, MOUSE_MODEL_GENERIC }, /* MS BallPoint serial */ { "PNP0F09", MOUSE_PROTO_MS, MOUSE_MODEL_GENERIC }, /* MS PnP serial */ { "PNP0F0A", MOUSE_PROTO_MS, MOUSE_MODEL_GENERIC }, /* MS PnP BallPoint serial */ { "PNP0F0B", MOUSE_PROTO_MS, MOUSE_MODEL_GENERIC }, /* MS serial compatible */ { "PNP0F0C", MOUSE_PROTO_MS, MOUSE_MODEL_GENERIC }, /* MS PS/2 compatible */ { "PNP0F0E", MOUSE_PROTO_PS2, MOUSE_MODEL_GENERIC }, /* MS BallPoint compatible */ { "PNP0F0F", MOUSE_PROTO_MS, MOUSE_MODEL_GENERIC }, #if notyet /* TI QuickPort */ { "PNP0F10", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, #endif /* Logitech PS/2 */ { "PNP0F12", MOUSE_PROTO_PS2, MOUSE_MODEL_GENERIC }, /* PS/2 */ { "PNP0F13", MOUSE_PROTO_PS2, MOUSE_MODEL_GENERIC }, #if notyet /* MS Kids Mouse */ { "PNP0F14", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, #endif #if notyet /* Logitech SWIFT */ { "PNP0F16", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, #endif /* Logitech serial compat */ { "PNP0F17", MOUSE_PROTO_LOGIMOUSEMAN, MOUSE_MODEL_GENERIC }, /* Logitech PS/2 compatible */ { "PNP0F19", MOUSE_PROTO_PS2, MOUSE_MODEL_GENERIC }, #if notyet /* Logitech SWIFT compatible */ { "PNP0F1A", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, /* HP Omnibook */ { "PNP0F1B", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, /* Compaq LTE TrackBall PS/2 */ { "PNP0F1C", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, /* Compaq LTE TrackBall serial */ { "PNP0F1D", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, /* MS Kidts Trackball */ { "PNP0F1E", MOUSE_PROTO_XXX, MOUSE_MODEL_GENERIC }, #endif /* Interlink VersaPad */ { "LNK0001", MOUSE_PROTO_VERSAPAD, MOUSE_MODEL_VERSAPAD }, { NULL, MOUSE_PROTO_UNKNOWN, MOUSE_MODEL_GENERIC }, }; /* the table must be ordered by MOUSE_PROTO_XXX in mouse.h */ static unsigned short rodentcflags[] = { (CS7 | CREAD | CLOCAL | HUPCL), /* MicroSoft */ (CS8 | CSTOPB | CREAD | CLOCAL | HUPCL), /* MouseSystems */ (CS8 | CSTOPB | CREAD | CLOCAL | HUPCL), /* Logitech */ (CS8 | PARENB | PARODD | CREAD | CLOCAL | HUPCL), /* MMSeries */ (CS7 | CREAD | CLOCAL | HUPCL), /* MouseMan */ 0, /* Bus */ 0, /* InPort */ 0, /* PS/2 */ (CS8 | CREAD | CLOCAL | HUPCL), /* MM HitTablet */ (CS7 | CREAD | CLOCAL | HUPCL), /* GlidePoint */ (CS7 | CREAD | CLOCAL | HUPCL), /* IntelliMouse */ (CS7 | CREAD | CLOCAL | HUPCL), /* Thinking Mouse */ (CS8 | CSTOPB | CREAD | CLOCAL | HUPCL), /* sysmouse */ (CS7 | CREAD | CLOCAL | HUPCL), /* X10 MouseRemote */ (CS8 | PARENB | PARODD | CREAD | CLOCAL | HUPCL), /* kidspad etc. */ (CS8 | CREAD | CLOCAL | HUPCL), /* VersaPad */ 0, /* JogDial */ #if notyet (CS8 | CSTOPB | CREAD | CLOCAL | HUPCL), /* Mariqua */ #endif (CS8 | CREAD | HUPCL ), /* GTCO Digi-Pad */ }; +/* evdev button codes */ +static const int16_t evdev_buttons[8] = { + BTN_LEFT, + BTN_MIDDLE, + BTN_RIGHT, + BTN_SIDE, + BTN_EXTRA, + BTN_FORWARD, + BTN_BACK, + BTN_TASK +}; + static struct rodentparam { int flags; const char *portname; /* /dev/XXX */ int rtype; /* MOUSE_PROTO_XXX */ int level; /* operation level: 0 or greater */ int baudrate; int rate; /* report rate */ int resolution; /* MOUSE_RES_XXX or a positive number */ - int zmap[4]; /* MOUSE_{X|Y}AXIS or a button number */ - int wmode; /* wheel mode button number */ int mfd; /* mouse file descriptor */ - int cfd; /* /dev/consolectl file descriptor */ + int ufd; /* /dev/uinput file descriptor */ int mremsfd; /* mouse remote server file descriptor */ int mremcfd; /* mouse remote client file descriptor */ int is_removable; /* set if device is removable, like USB */ - long clickthreshold; /* double click speed in msec */ - long button2timeout; /* 3 button emulation timeout */ mousehw_t hw; /* mouse device hardware information */ mousemode_t mode; /* protocol information */ - float accelx; /* Acceleration in the X axis */ - float accely; /* Acceleration in the Y axis */ - float expoaccel; /* Exponential acceleration */ - float expoffset; /* Movement offset for exponential accel. */ - float remainx; /* Remainder on X and Y axis, respectively... */ - float remainy; /* ... to compensate for rounding errors. */ - int scrollthreshold; /* Movement distance before virtual scrolling */ - int scrollspeed; /* Movement distance to rate of scrolling */ } rodent = { .flags = 0, .portname = NULL, .rtype = MOUSE_PROTO_UNKNOWN, .level = -1, .baudrate = 1200, .rate = 0, .resolution = MOUSE_RES_UNKNOWN, - .zmap = { 0, 0, 0, 0 }, - .wmode = 0, .mfd = -1, - .cfd = -1, + .ufd = -1, .mremsfd = -1, .mremcfd = -1, .is_removable = 0, - .clickthreshold = DFLT_CLICKTHRESHOLD, - .button2timeout = DFLT_BUTTON2TIMEOUT, - .accelx = 1.0, - .accely = 1.0, - .expoaccel = 1.0, - .expoffset = 1.0, - .remainx = 0.0, - .remainy = 0.0, - .scrollthreshold = DFLT_SCROLLTHRESHOLD, - .scrollspeed = DFLT_SCROLLSPEED, -}; - -/* button status */ -struct button_state { - int count; /* 0: up, 1: single click, 2: double click,... */ - struct timespec ts; /* timestamp on the last button event */ -}; -static struct button_state bstate[MOUSE_MAXBUTTON]; /* button state */ -static struct button_state *mstate[MOUSE_MAXBUTTON];/* mapped button st.*/ -static struct button_state zstate[4]; /* Z/W axis state */ - -/* state machine for 3 button emulation */ - -#define S0 0 /* start */ -#define S1 1 /* button 1 delayed down */ -#define S2 2 /* button 3 delayed down */ -#define S3 3 /* both buttons down -> button 2 down */ -#define S4 4 /* button 1 delayed up */ -#define S5 5 /* button 1 down */ -#define S6 6 /* button 3 down */ -#define S7 7 /* both buttons down */ -#define S8 8 /* button 3 delayed up */ -#define S9 9 /* button 1 or 3 up after S3 */ - -#define A(b1, b3) (((b1) ? 2 : 0) | ((b3) ? 1 : 0)) -#define A_TIMEOUT 4 -#define S_DELAYED(st) (states[st].s[A_TIMEOUT] != (st)) - -static struct { - int s[A_TIMEOUT + 1]; - int buttons; - int mask; - int timeout; -} states[10] = { - /* S0 */ - { { S0, S2, S1, S3, S0 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN), FALSE }, - /* S1 */ - { { S4, S2, S1, S3, S5 }, 0, ~MOUSE_BUTTON1DOWN, FALSE }, - /* S2 */ - { { S8, S2, S1, S3, S6 }, 0, ~MOUSE_BUTTON3DOWN, FALSE }, - /* S3 */ - { { S0, S9, S9, S3, S3 }, MOUSE_BUTTON2DOWN, ~0, FALSE }, - /* S4 */ - { { S0, S2, S1, S3, S0 }, MOUSE_BUTTON1DOWN, ~0, TRUE }, - /* S5 */ - { { S0, S2, S5, S7, S5 }, MOUSE_BUTTON1DOWN, ~0, FALSE }, - /* S6 */ - { { S0, S6, S1, S7, S6 }, MOUSE_BUTTON3DOWN, ~0, FALSE }, - /* S7 */ - { { S0, S6, S5, S7, S7 }, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, ~0, FALSE }, - /* S8 */ - { { S0, S2, S1, S3, S0 }, MOUSE_BUTTON3DOWN, ~0, TRUE }, - /* S9 */ - { { S0, S9, S9, S3, S9 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN), FALSE }, }; -static int mouse_button_state; -static struct timespec mouse_button_state_ts; -static int mouse_move_delayed; static jmp_buf env; -struct drift_xy { - int x; - int y; -}; -static int drift_distance = 4; /* max steps X+Y */ -static int drift_time = 500; /* in 0.5 sec */ -static struct timespec drift_time_ts; -static struct timespec drift_2time_ts; /* 2*drift_time */ -static int drift_after = 4000; /* 4 sec */ -static struct timespec drift_after_ts; -static int drift_terminate = FALSE; -static struct timespec drift_current_ts; -static struct timespec drift_tmp; -static struct timespec drift_last_activity = {0, 0}; -static struct timespec drift_since = {0, 0}; -static struct drift_xy drift_last = {0, 0}; /* steps in last drift_time */ -static struct drift_xy drift_previous = {0, 0}; /* steps in prev. drift_time */ - /* function prototypes */ -static void linacc(int, int, int*, int*); -static void expoacc(int, int, int*, int*); -static void moused(void); +static void msconvd(void); static void hup(int sig); static void cleanup(int sig); static void pause_mouse(int sig); static void usage(void); static void log_or_warn(int log_pri, int errnum, const char *fmt, ...) __printflike(3, 4); +static int r_uinput_register(void); +static int r_uinput_report(int fd, mousestatus_t *act); static int r_identify(void); static const char *r_if(int type); +static uint16_t r_bustype(int type); static const char *r_name(int type); static const char *r_model(int model); static void r_init(void); static int r_protocol(u_char b, mousestatus_t *act); -static int r_statetrans(mousestatus_t *a1, mousestatus_t *a2, int trans); -static int r_installmap(char *arg); -static void r_map(mousestatus_t *act1, mousestatus_t *act2); -static void r_timestamp(mousestatus_t *act); -static int r_timeout(void); -static void r_click(mousestatus_t *act); static void setmousespeed(int old, int new, unsigned cflag); -static int pnpwakeup1(void); -static int pnpwakeup2(void); +static bool pnpwakeup1(void); +static bool pnpwakeup2(void); static int pnpgets(char *buf); -static int pnpparse(pnpid_t *id, char *buf, int len); +static bool pnpparse(pnpid_t *id, char *buf, int len); static symtab_t *pnpproto(pnpid_t *id); static symtab_t *gettoken(symtab_t *tab, const char *s, int len); static const char *gettokenname(symtab_t *tab, int val); +static int gettokenval2(symtab_t *tab, int val); static void mremote_serversetup(void); -static void mremote_clientchg(int add); +static void mremote_clientchg(bool add); static int kidspad(u_char rxc, mousestatus_t *act); static int gtco_digipad(u_char, mousestatus_t *); int main(int argc, char *argv[]) { int c; int i; - int j; - for (i = 0; i < MOUSE_MAXBUTTON; ++i) - mstate[i] = &bstate[i]; - - while ((c = getopt(argc, argv, "3A:C:DE:F:HI:L:PRS:T:VU:a:cdfhi:l:m:p:r:st:w:z:")) != -1) + while ((c = getopt(argc, argv, "DF:I:PRS:cdfhi:l:p:r:st:")) != -1) switch(c) { - case '3': - rodent.flags |= Emulate3Button; - break; - - case 'E': - rodent.button2timeout = atoi(optarg); - if ((rodent.button2timeout < 0) || - (rodent.button2timeout > MAX_BUTTON2TIMEOUT)) { - warnx("invalid argument `%s'", optarg); - usage(); - } - break; - - case 'a': - i = sscanf(optarg, "%f,%f", &rodent.accelx, &rodent.accely); - if (i == 0) { - warnx("invalid linear acceleration argument '%s'", optarg); - usage(); - } - - if (i == 1) - rodent.accely = rodent.accelx; - - break; - - case 'A': - rodent.flags |= ExponentialAcc; - i = sscanf(optarg, "%f,%f", &rodent.expoaccel, &rodent.expoffset); - if (i == 0) { - warnx("invalid exponential acceleration argument '%s'", optarg); - usage(); - } - - if (i == 1) - rodent.expoffset = 1.0; - - break; - case 'c': rodent.flags |= ChordMiddle; break; case 'd': ++debug; break; case 'f': - nodaemon = TRUE; + nodaemon = true; break; case 'i': if (strcmp(optarg, "all") == 0) identify = ID_ALL; else if (strcmp(optarg, "port") == 0) identify = ID_PORT; else if (strcmp(optarg, "if") == 0) identify = ID_IF; else if (strcmp(optarg, "type") == 0) identify = ID_TYPE; else if (strcmp(optarg, "model") == 0) identify = ID_MODEL; else { warnx("invalid argument `%s'", optarg); usage(); } - nodaemon = TRUE; + nodaemon = true; break; case 'l': rodent.level = atoi(optarg); if ((rodent.level < 0) || (rodent.level > 4)) { warnx("invalid argument `%s'", optarg); usage(); } break; - case 'm': - if (!r_installmap(optarg)) { - warnx("invalid argument `%s'", optarg); - usage(); - } - break; - case 'p': rodent.portname = optarg; break; case 'r': if (strcmp(optarg, "high") == 0) rodent.resolution = MOUSE_RES_HIGH; else if (strcmp(optarg, "medium-high") == 0) rodent.resolution = MOUSE_RES_HIGH; else if (strcmp(optarg, "medium-low") == 0) rodent.resolution = MOUSE_RES_MEDIUMLOW; else if (strcmp(optarg, "low") == 0) rodent.resolution = MOUSE_RES_LOW; else if (strcmp(optarg, "default") == 0) rodent.resolution = MOUSE_RES_DEFAULT; else { rodent.resolution = atoi(optarg); if (rodent.resolution <= 0) { warnx("invalid argument `%s'", optarg); usage(); } } break; case 's': rodent.baudrate = 9600; break; - case 'w': - i = atoi(optarg); - if ((i <= 0) || (i > MOUSE_MAXBUTTON)) { - warnx("invalid argument `%s'", optarg); - usage(); - } - rodent.wmode = 1 << (i - 1); - break; - - case 'z': - if (strcmp(optarg, "x") == 0) - rodent.zmap[0] = MOUSE_XAXIS; - else if (strcmp(optarg, "y") == 0) - rodent.zmap[0] = MOUSE_YAXIS; - else { - i = atoi(optarg); - /* - * Use button i for negative Z axis movement and - * button (i + 1) for positive Z axis movement. - */ - if ((i <= 0) || (i > MOUSE_MAXBUTTON - 1)) { - warnx("invalid argument `%s'", optarg); - usage(); - } - rodent.zmap[0] = i; - rodent.zmap[1] = i + 1; - debug("optind: %d, optarg: '%s'", optind, optarg); - for (j = 1; j < 4; ++j) { - if ((optind >= argc) || !isdigit(*argv[optind])) - break; - i = atoi(argv[optind]); - if ((i <= 0) || (i > MOUSE_MAXBUTTON - 1)) { - warnx("invalid argument `%s'", argv[optind]); - usage(); - } - rodent.zmap[j] = i; - ++optind; - } - if ((rodent.zmap[2] != 0) && (rodent.zmap[3] == 0)) - rodent.zmap[3] = rodent.zmap[2] + 1; - } - break; - - case 'C': - rodent.clickthreshold = atoi(optarg); - if ((rodent.clickthreshold < 0) || - (rodent.clickthreshold > MAX_CLICKTHRESHOLD)) { - warnx("invalid argument `%s'", optarg); - usage(); - } - break; - case 'D': rodent.flags |= ClearDTR; break; case 'F': rodent.rate = atoi(optarg); if (rodent.rate <= 0) { warnx("invalid argument `%s'", optarg); usage(); } break; - case 'H': - rodent.flags |= HVirtualScroll; - break; - case 'I': pidfile = optarg; break; - case 'L': - rodent.scrollspeed = atoi(optarg); - if (rodent.scrollspeed < 0) { - warnx("invalid argument `%s'", optarg); - usage(); - } - break; - case 'P': rodent.flags |= NoPnP; break; case 'R': rodent.flags |= ClearRTS; break; case 'S': rodent.baudrate = atoi(optarg); if (rodent.baudrate <= 0) { warnx("invalid argument `%s'", optarg); usage(); } debug("rodent baudrate %d", rodent.baudrate); break; - case 'T': - drift_terminate = TRUE; - sscanf(optarg, "%d,%d,%d", &drift_distance, &drift_time, - &drift_after); - if (drift_distance <= 0 || drift_time <= 0 || drift_after <= 0) { - warnx("invalid argument `%s'", optarg); - usage(); - } - debug("terminate drift: distance %d, time %d, after %d", - drift_distance, drift_time, drift_after); - drift_time_ts.tv_sec = drift_time / 1000; - drift_time_ts.tv_nsec = (drift_time % 1000) * 1000000; - drift_2time_ts.tv_sec = (drift_time *= 2) / 1000; - drift_2time_ts.tv_nsec = (drift_time % 1000) * 1000000; - drift_after_ts.tv_sec = drift_after / 1000; - drift_after_ts.tv_nsec = (drift_after % 1000) * 1000000; - break; - case 't': if (strcmp(optarg, "auto") == 0) { rodent.rtype = MOUSE_PROTO_UNKNOWN; rodent.flags &= ~NoPnP; rodent.level = -1; break; } for (i = 0; rnames[i] != NULL; i++) if (strcmp(optarg, rnames[i]) == 0) { rodent.rtype = i; rodent.flags |= NoPnP; rodent.level = (i == MOUSE_PROTO_SYSMOUSE) ? 1 : 0; break; } if (rnames[i] == NULL) { warnx("no such mouse type `%s'", optarg); usage(); } break; - case 'V': - rodent.flags |= VirtualScroll; - break; - case 'U': - rodent.scrollthreshold = atoi(optarg); - if (rodent.scrollthreshold < 0) { - warnx("invalid argument `%s'", optarg); - usage(); - } - break; - case 'h': case '?': default: usage(); } - /* fix Z axis mapping */ - for (i = 0; i < 4; ++i) { - if (rodent.zmap[i] > 0) { - for (j = 0; j < MOUSE_MAXBUTTON; ++j) { - if (mstate[j] == &bstate[rodent.zmap[i] - 1]) - mstate[j] = &zstate[i]; - } - rodent.zmap[i] = 1 << (rodent.zmap[i] - 1); - } - } - /* the default port name */ switch(rodent.rtype) { case MOUSE_PROTO_PS2: if (!rodent.portname) rodent.portname = "/dev/psm0"; break; default: if (rodent.portname) break; warnx("no port name specified"); usage(); } if (strncmp(rodent.portname, "/dev/ums", 8) == 0) rodent.is_removable = 1; for (;;) { if (setjmp(env) == 0) { signal(SIGHUP, hup); signal(SIGINT , cleanup); signal(SIGQUIT, cleanup); signal(SIGTERM, cleanup); signal(SIGUSR1, pause_mouse); rodent.mfd = open(rodent.portname, O_RDWR | O_NONBLOCK); if (rodent.mfd == -1) logerr(1, "unable to open %s", rodent.portname); if (r_identify() == MOUSE_PROTO_UNKNOWN) { logwarnx("cannot determine mouse type on %s", rodent.portname); close(rodent.mfd); rodent.mfd = -1; } /* print some information */ if (identify != ID_NONE) { if (identify == ID_ALL) printf("%s %s %s %s\n", rodent.portname, r_if(rodent.hw.iftype), r_name(rodent.rtype), r_model(rodent.hw.model)); else if (identify & ID_PORT) printf("%s\n", rodent.portname); else if (identify & ID_IF) printf("%s\n", r_if(rodent.hw.iftype)); else if (identify & ID_TYPE) printf("%s\n", r_name(rodent.rtype)); else if (identify & ID_MODEL) printf("%s\n", r_model(rodent.hw.model)); exit(0); } else { debug("port: %s interface: %s type: %s model: %s", rodent.portname, r_if(rodent.hw.iftype), r_name(rodent.rtype), r_model(rodent.hw.model)); } if (rodent.mfd == -1) { /* * We cannot continue because of error. Exit if the * program has not become a daemon. Otherwise, block * until the user corrects the problem and issues SIGHUP. */ if (!background) exit(1); sigpause(0); } r_init(); /* call init function */ - moused(); + msconvd(); } if (rodent.mfd != -1) close(rodent.mfd); - if (rodent.cfd != -1) - close(rodent.cfd); - rodent.mfd = rodent.cfd = -1; + if (rodent.ufd != -1) + close(rodent.ufd); + rodent.mfd = rodent.ufd = -1; if (rodent.is_removable) exit(0); } /* NOT REACHED */ exit(0); } -/* - * Function to calculate linear acceleration. - * - * If there are any rounding errors, the remainder - * is stored in the remainx and remainy variables - * and taken into account upon the next movement. - */ - -static void -linacc(int dx, int dy, int *movex, int *movey) -{ - float fdx, fdy; - - if (dx == 0 && dy == 0) { - *movex = *movey = 0; - return; - } - fdx = dx * rodent.accelx + rodent.remainx; - fdy = dy * rodent.accely + rodent.remainy; - *movex = lround(fdx); - *movey = lround(fdy); - rodent.remainx = fdx - *movex; - rodent.remainy = fdy - *movey; -} - -/* - * Function to calculate exponential acceleration. - * (Also includes linear acceleration if enabled.) - * - * In order to give a smoother behaviour, we record the four - * most recent non-zero movements and use their average value - * to calculate the acceleration. - */ - -static void -expoacc(int dx, int dy, int *movex, int *movey) -{ - static float lastlength[3] = {0.0, 0.0, 0.0}; - float fdx, fdy, length, lbase, accel; - - if (dx == 0 && dy == 0) { - *movex = *movey = 0; - return; - } - fdx = dx * rodent.accelx; - fdy = dy * rodent.accely; - length = sqrtf((fdx * fdx) + (fdy * fdy)); /* Pythagoras */ - length = (length + lastlength[0] + lastlength[1] + lastlength[2]) / 4; - lbase = length / rodent.expoffset; - accel = powf(lbase, rodent.expoaccel) / lbase; - fdx = fdx * accel + rodent.remainx; - fdy = fdy * accel + rodent.remainy; - *movex = lroundf(fdx); - *movey = lroundf(fdy); - rodent.remainx = fdx - *movex; - rodent.remainy = fdy - *movey; - lastlength[2] = lastlength[1]; - lastlength[1] = lastlength[0]; - lastlength[0] = length; /* Insert new average, not original length! */ -} - static void -moused(void) +msconvd(void) { - struct mouse_info mouse; - mousestatus_t action0; /* original mouse action */ - mousestatus_t action; /* interim buffer */ - mousestatus_t action2; /* mapped action */ - struct timeval timeout; + mousestatus_t action; /* mouse action */ fd_set fds; u_char b; pid_t mpid; int flags; int c; - int i; - if ((rodent.cfd = open("/dev/consolectl", O_RDWR, 0)) == -1) - logerr(1, "cannot open /dev/consolectl"); + if ((rodent.ufd = r_uinput_register()) == -1) + logerr(1, "cannot register uinput device"); if (!nodaemon && !background) { pfh = pidfile_open(pidfile, 0600, &mpid); if (pfh == NULL) { if (errno == EEXIST) - logerrx(1, "moused already running, pid: %d", mpid); + logerrx(1, "msconvd already running, pid: %d", mpid); logwarn("cannot open pid file"); } if (daemon(0, 0)) { int saved_errno = errno; pidfile_remove(pfh); errno = saved_errno; logerr(1, "failed to become a daemon"); } else { - background = TRUE; + background = true; pidfile_write(pfh); } } /* clear mouse data */ - bzero(&action0, sizeof(action0)); bzero(&action, sizeof(action)); - bzero(&action2, sizeof(action2)); - bzero(&mouse, sizeof(mouse)); - mouse_button_state = S0; - clock_gettime(CLOCK_MONOTONIC_FAST, &mouse_button_state_ts); - mouse_move_delayed = 0; - for (i = 0; i < MOUSE_MAXBUTTON; ++i) { - bstate[i].count = 0; - bstate[i].ts = mouse_button_state_ts; - } - for (i = 0; i < (int)nitems(zstate); ++i) { - zstate[i].count = 0; - zstate[i].ts = mouse_button_state_ts; - } - - /* choose which ioctl command to use */ - mouse.operation = MOUSE_MOTION_EVENT; - extioctl = (ioctl(rodent.cfd, CONS_MOUSECTL, &mouse) == 0); /* process mouse data */ - timeout.tv_sec = 0; - timeout.tv_usec = 20000; /* 20 msec */ for (;;) { FD_ZERO(&fds); FD_SET(rodent.mfd, &fds); if (rodent.mremsfd >= 0) FD_SET(rodent.mremsfd, &fds); if (rodent.mremcfd >= 0) FD_SET(rodent.mremcfd, &fds); - c = select(FD_SETSIZE, &fds, NULL, NULL, - ((rodent.flags & Emulate3Button) && - S_DELAYED(mouse_button_state)) ? &timeout : NULL); + c = select(FD_SETSIZE, &fds, NULL, NULL, NULL); if (c < 0) { /* error */ logwarn("failed to read from mouse"); continue; - } else if (c == 0) { /* timeout */ - /* assert(rodent.flags & Emulate3Button) */ - action0.button = action0.obutton; - action0.dx = action0.dy = action0.dz = 0; - action0.flags = flags = 0; - if (r_timeout() && r_statetrans(&action0, &action, A_TIMEOUT)) { - if (debug > 2) - debug("flags:%08x buttons:%08x obuttons:%08x", - action.flags, action.button, action.obutton); - } else { - action0.obutton = action0.button; - continue; - } - } else { - /* MouseRemote client connect/disconnect */ - if ((rodent.mremsfd >= 0) && FD_ISSET(rodent.mremsfd, &fds)) { - mremote_clientchg(TRUE); - continue; - } - if ((rodent.mremcfd >= 0) && FD_ISSET(rodent.mremcfd, &fds)) { - mremote_clientchg(FALSE); - continue; - } - /* mouse movement */ - if (read(rodent.mfd, &b, 1) == -1) { - if (errno == EWOULDBLOCK) - continue; - else - return; - } - if ((flags = r_protocol(b, &action0)) == 0) + } + /* MouseRemote client connect/disconnect */ + if ((rodent.mremsfd >= 0) && FD_ISSET(rodent.mremsfd, &fds)) { + mremote_clientchg(true); + continue; + } + if ((rodent.mremcfd >= 0) && FD_ISSET(rodent.mremcfd, &fds)) { + mremote_clientchg(false); + continue; + } + /* mouse movement */ + if (read(rodent.mfd, &b, 1) == -1) { + if (errno == EWOULDBLOCK) continue; - - if ((rodent.flags & VirtualScroll) || (rodent.flags & HVirtualScroll)) { - /* Allow middle button drags to scroll up and down */ - if (action0.button == MOUSE_BUTTON2DOWN) { - if (scroll_state == SCROLL_NOTSCROLLING) { - scroll_state = SCROLL_PREPARE; - scroll_movement = hscroll_movement = 0; - debug("PREPARING TO SCROLL"); - } - debug("[BUTTON2] flags:%08x buttons:%08x obuttons:%08x", - action.flags, action.button, action.obutton); - } else { - debug("[NOTBUTTON2] flags:%08x buttons:%08x obuttons:%08x", - action.flags, action.button, action.obutton); - - /* This isn't a middle button down... move along... */ - if (scroll_state == SCROLL_SCROLLING) { - /* - * We were scrolling, someone let go of button 2. - * Now turn autoscroll off. - */ - scroll_state = SCROLL_NOTSCROLLING; - debug("DONE WITH SCROLLING / %d", scroll_state); - } else if (scroll_state == SCROLL_PREPARE) { - mousestatus_t newaction = action0; - - /* We were preparing to scroll, but we never moved... */ - r_timestamp(&action0); - r_statetrans(&action0, &newaction, - A(newaction.button & MOUSE_BUTTON1DOWN, - action0.button & MOUSE_BUTTON3DOWN)); - - /* Send middle down */ - newaction.button = MOUSE_BUTTON2DOWN; - r_click(&newaction); - - /* Send middle up */ - r_timestamp(&newaction); - newaction.obutton = newaction.button; - newaction.button = action0.button; - r_click(&newaction); - } - } - } - - r_timestamp(&action0); - r_statetrans(&action0, &action, - A(action0.button & MOUSE_BUTTON1DOWN, - action0.button & MOUSE_BUTTON3DOWN)); - debug("flags:%08x buttons:%08x obuttons:%08x", action.flags, - action.button, action.obutton); + else + return; } - action0.obutton = action0.button; - flags &= MOUSE_POSCHANGED; - flags |= action.obutton ^ action.button; - action.flags = flags; - - if (flags) { /* handler detected action */ - r_map(&action, &action2); - debug("activity : buttons 0x%08x dx %d dy %d dz %d", - action2.button, action2.dx, action2.dy, action2.dz); + if ((flags = r_protocol(b, &action)) == 0) + continue; - if ((rodent.flags & VirtualScroll) || (rodent.flags & HVirtualScroll)) { - /* - * If *only* the middle button is pressed AND we are moving - * the stick/trackpoint/nipple, scroll! - */ - if (scroll_state == SCROLL_PREPARE) { - /* Middle button down, waiting for movement threshold */ - if (action2.dy || action2.dx) { - if (rodent.flags & VirtualScroll) { - scroll_movement += action2.dy; - if (scroll_movement < -rodent.scrollthreshold) { - scroll_state = SCROLL_SCROLLING; - } else if (scroll_movement > rodent.scrollthreshold) { - scroll_state = SCROLL_SCROLLING; - } - } - if (rodent.flags & HVirtualScroll) { - hscroll_movement += action2.dx; - if (hscroll_movement < -rodent.scrollthreshold) { - scroll_state = SCROLL_SCROLLING; - } else if (hscroll_movement > rodent.scrollthreshold) { - scroll_state = SCROLL_SCROLLING; - } - } - if (scroll_state == SCROLL_SCROLLING) scroll_movement = hscroll_movement = 0; - } - } else if (scroll_state == SCROLL_SCROLLING) { - if (rodent.flags & VirtualScroll) { - scroll_movement += action2.dy; - debug("SCROLL: %d", scroll_movement); - if (scroll_movement < -rodent.scrollspeed) { - /* Scroll down */ - action2.dz = -1; - scroll_movement = 0; - } - else if (scroll_movement > rodent.scrollspeed) { - /* Scroll up */ - action2.dz = 1; - scroll_movement = 0; - } - } - if (rodent.flags & HVirtualScroll) { - hscroll_movement += action2.dx; - debug("HORIZONTAL SCROLL: %d", hscroll_movement); - - if (hscroll_movement < -rodent.scrollspeed) { - action2.dz = -2; - hscroll_movement = 0; - } - else if (hscroll_movement > rodent.scrollspeed) { - action2.dz = 2; - hscroll_movement = 0; - } - } - - /* Don't move while scrolling */ - action2.dx = action2.dy = 0; - } - } + debug("flags:%08x buttons:%08x obuttons:%08x", action.flags, + action.button, action.obutton); - if (drift_terminate) { - if ((flags & MOUSE_POSCHANGED) == 0 || action.dz || action2.dz) - drift_last_activity = drift_current_ts; - else { - /* X or/and Y movement only - possibly drift */ - tssub(&drift_current_ts, &drift_last_activity, &drift_tmp); - if (tscmp(&drift_tmp, &drift_after_ts, >)) { - tssub(&drift_current_ts, &drift_since, &drift_tmp); - if (tscmp(&drift_tmp, &drift_time_ts, <)) { - drift_last.x += action2.dx; - drift_last.y += action2.dy; - } else { - /* discard old accumulated steps (drift) */ - if (tscmp(&drift_tmp, &drift_2time_ts, >)) - drift_previous.x = drift_previous.y = 0; - else - drift_previous = drift_last; - drift_last.x = action2.dx; - drift_last.y = action2.dy; - drift_since = drift_current_ts; - } - if (abs(drift_last.x) + abs(drift_last.y) - > drift_distance) { - /* real movement, pass all accumulated steps */ - action2.dx = drift_previous.x + drift_last.x; - action2.dy = drift_previous.y + drift_last.y; - /* and reset accumulators */ - tsclr(&drift_since); - drift_last.x = drift_last.y = 0; - /* drift_previous will be cleared at next movement*/ - drift_last_activity = drift_current_ts; - } else { - continue; /* don't pass current movement to - * console driver */ - } - } - } - } - - if (extioctl) { - /* Defer clicks until we aren't VirtualScroll'ing. */ - if (scroll_state == SCROLL_NOTSCROLLING) - r_click(&action2); - - if (action2.flags & MOUSE_POSCHANGED) { - mouse.operation = MOUSE_MOTION_EVENT; - mouse.u.data.buttons = action2.button; - if (rodent.flags & ExponentialAcc) { - expoacc(action2.dx, action2.dy, - &mouse.u.data.x, &mouse.u.data.y); - } - else { - linacc(action2.dx, action2.dy, - &mouse.u.data.x, &mouse.u.data.y); - } - mouse.u.data.z = action2.dz; - if (debug < 2) - if (!paused) - ioctl(rodent.cfd, CONS_MOUSECTL, &mouse); - } - } else { - mouse.operation = MOUSE_ACTION; - mouse.u.data.buttons = action2.button; - if (rodent.flags & ExponentialAcc) { - expoacc(action2.dx, action2.dy, - &mouse.u.data.x, &mouse.u.data.y); - } - else { - linacc(action2.dx, action2.dy, - &mouse.u.data.x, &mouse.u.data.y); - } - mouse.u.data.z = action2.dz; - if (debug < 2) - if (!paused) - ioctl(rodent.cfd, CONS_MOUSECTL, &mouse); - } - - /* - * If the Z axis movement is mapped to an imaginary physical - * button, we need to cook up a corresponding button `up' event - * after sending a button `down' event. - */ - if ((rodent.zmap[0] > 0) && (action.dz != 0)) { - action.obutton = action.button; - action.dx = action.dy = action.dz = 0; - r_map(&action, &action2); - debug("activity : buttons 0x%08x dx %d dy %d dz %d", - action2.button, action2.dx, action2.dy, action2.dz); - - if (extioctl) { - r_click(&action2); - } else { - mouse.operation = MOUSE_ACTION; - mouse.u.data.buttons = action2.button; - mouse.u.data.x = mouse.u.data.y = mouse.u.data.z = 0; - if (debug < 2) - if (!paused) - ioctl(rodent.cfd, CONS_MOUSECTL, &mouse); - } + if (flags) { + if (r_uinput_report(rodent.ufd, &action) == -1) { + logwarn("failed to write to uinput"); + return; } } } /* NOT REACHED */ } static void hup(__unused int sig) { longjmp(env, 1); } static void cleanup(__unused int sig) { if (rodent.rtype == MOUSE_PROTO_X10MOUSEREM) unlink(_PATH_MOUSEREMOTE); exit(0); } static void pause_mouse(__unused int sig) { paused = !paused; } /** ** usage ** ** Complain, and free the CPU for more worthy tasks **/ static void usage(void) { - fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n", - "usage: moused [-DRcdfs] [-I file] [-F rate] [-r resolution] [-S baudrate]", - " [-VH [-U threshold]] [-a X[,Y]] [-C threshold] [-m N=M] [-w N]", - " [-z N] [-t ] [-l level] [-3 [-E timeout]]", - " [-T distance[,time[,after]]] -p ", - " moused [-d] -i -p "); + fprintf(stderr, "%s\n%s\n%s\n", + "usage: msconvd [-DPRcdfs] [-I file] [-F rate] [-r resolution] [-S baudrate]", + " [-t ] [-l level] -p ", + " msconvd [-Pd] -i -p "); exit(1); } /* * Output an error message to syslog or stderr as appropriate. If * `errnum' is non-zero, append its string form to the message. */ static void log_or_warn(int log_pri, int errnum, const char *fmt, ...) { va_list ap; char buf[256]; va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); if (errnum) { strlcat(buf, ": ", sizeof(buf)); strlcat(buf, strerror(errnum), sizeof(buf)); } if (background) syslog(log_pri, "%s", buf); else warnx("%s", buf); } +/* + * Setup uinput device as 8button mouse with wheel + */ +static int +r_uinput_register(void) +{ + struct uinput_setup uisetup; + char *phys; + int fd; + size_t i; + + fd = open("/dev/uinput", O_RDWR | O_NONBLOCK); + if (fd < 0) + return (-1); + + /* Set device name and bus/vendor information */ + memset(&uisetup, 0, sizeof(uisetup)); + snprintf(uisetup.name, UINPUT_MAX_NAME_SIZE, + "%s mouse on %s", r_model(rodent.hw.model), rodent.portname); + uisetup.id.bustype = r_bustype(rodent.hw.iftype); + uisetup.id.vendor = 0; + uisetup.id.product = 0; + uisetup.id.version = 0; + phys = basename(__DECONST(char *, rodent.portname)); + if (ioctl(fd, UI_SET_PHYS, phys) < 0 || + ioctl(fd, UI_DEV_SETUP, &uisetup) < 0) + goto bail_out; + + /* Advertise events and axes */ + if (ioctl(fd, UI_SET_EVBIT, EV_SYN) < 0 || + ioctl(fd, UI_SET_EVBIT, EV_KEY) < 0 || + ioctl(fd, UI_SET_EVBIT, EV_REL) < 0 || + ioctl(fd, UI_SET_RELBIT, REL_X) < 0 || + ioctl(fd, UI_SET_RELBIT, REL_Y) < 0 || + ioctl(fd, UI_SET_RELBIT, REL_WHEEL) < 0 || + ioctl(fd, UI_SET_PROPBIT, INPUT_PROP_POINTER) < 0) + goto bail_out; + + /* Advertise mouse buttons */ + for (i = 0; i < nitems(evdev_buttons); i++) + if (ioctl(fd, UI_SET_KEYBIT, evdev_buttons[i]) < 0) + goto bail_out; + + if (ioctl(fd, UI_DEV_CREATE) >= 0) + return (fd); /* SUCCESS */ + +bail_out: + close (fd); + return (-1); +} + +static int +uinput_event(int fd, uint16_t type, uint16_t code, int32_t value) +{ + struct input_event ie; + + if (debug >= 2 || paused) + return (0); + + memset(&ie, 0, sizeof(ie)); + ie.type = type; + ie.code = code; + ie.value = value; + return (write(fd, &ie, sizeof(ie))); +} + +static int +r_uinput_report(int fd, mousestatus_t *act) +{ + size_t i; + int32_t mask; + + if ((act->dx != 0 && uinput_event(fd, EV_REL, REL_X, act->dx) < 0) || + (act->dy != 0 && uinput_event(fd, EV_REL, REL_Y, act->dy) < 0) || + (act->dz != 0 && uinput_event(fd, EV_REL, REL_WHEEL, -act->dz) < 0)) + return (-1); + + for (i = 0; i < nitems(evdev_buttons); i++) { + mask = 1 << i; + if ((act->button & mask) == (act->obutton & mask)) + continue; + if (uinput_event(fd, EV_KEY, evdev_buttons[i], + (act->button & mask) != 0) < 0) + return (-1); + } + + if (uinput_event(fd, EV_SYN, SYN_REPORT, 0) < 0) + return (-1); + + return (0); +} + /** ** Mouse interface code, courtesy of XFree86 3.1.2. ** ** Note: Various bits have been trimmed, and in my shortsighted enthusiasm ** to clean, reformat and rationalise naming, it's quite possible that ** some things in here have been broken. ** ** I hope not 8) ** ** The following code is derived from a module marked : **/ /* $XConsortium: xf86_Mouse.c,v 1.2 94/10/12 20:33:21 kaleb Exp $ */ /* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86_Mouse.c,v 3.2 1995/01/28 17:03:40 dawes Exp $ */ /* * * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * Copyright 1993 by David Dawes * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the names of Thomas Roell and David Dawes not be * used in advertising or publicity pertaining to distribution of the * software without specific, written prior permission. Thomas Roell * and David Dawes makes no representations about the suitability of this * software for any purpose. It is provided "as is" without express or * implied warranty. * * THOMAS ROELL AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO THIS * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS, IN NO EVENT SHALL THOMAS ROELL OR DAVID DAWES BE LIABLE FOR ANY * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */ /** ** GlidePoint support from XFree86 3.2. ** Derived from the module: **/ /* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86_Mouse.c,v 3.19 1996/10/16 14:40:51 dawes Exp $ */ /* $XConsortium: xf86_Mouse.c /main/10 1996/01/30 15:16:12 kaleb $ */ /* the following table must be ordered by MOUSE_PROTO_XXX in mouse.h */ static unsigned char proto[][7] = { /* hd_mask hd_id dp_mask dp_id bytes b4_mask b4_id */ { 0x40, 0x40, 0x40, 0x00, 3, ~0x23, 0x00 }, /* MicroSoft */ { 0xf8, 0x80, 0x00, 0x00, 5, 0x00, 0xff }, /* MouseSystems */ { 0xe0, 0x80, 0x80, 0x00, 3, 0x00, 0xff }, /* Logitech */ { 0xe0, 0x80, 0x80, 0x00, 3, 0x00, 0xff }, /* MMSeries */ { 0x40, 0x40, 0x40, 0x00, 3, ~0x33, 0x00 }, /* MouseMan */ { 0xf8, 0x80, 0x00, 0x00, 5, 0x00, 0xff }, /* Bus */ { 0xf8, 0x80, 0x00, 0x00, 5, 0x00, 0xff }, /* InPort */ { 0xc0, 0x00, 0x00, 0x00, 3, 0x00, 0xff }, /* PS/2 mouse */ { 0xe0, 0x80, 0x80, 0x00, 3, 0x00, 0xff }, /* MM HitTablet */ { 0x40, 0x40, 0x40, 0x00, 3, ~0x33, 0x00 }, /* GlidePoint */ { 0x40, 0x40, 0x40, 0x00, 3, ~0x3f, 0x00 }, /* IntelliMouse */ { 0x40, 0x40, 0x40, 0x00, 3, ~0x33, 0x00 }, /* ThinkingMouse */ { 0xf8, 0x80, 0x00, 0x00, 5, 0x00, 0xff }, /* sysmouse */ { 0x40, 0x40, 0x40, 0x00, 3, ~0x23, 0x00 }, /* X10 MouseRem */ { 0x80, 0x80, 0x00, 0x00, 5, 0x00, 0xff }, /* KIDSPAD */ { 0xc3, 0xc0, 0x00, 0x00, 6, 0x00, 0xff }, /* VersaPad */ { 0x00, 0x00, 0x00, 0x00, 1, 0x00, 0xff }, /* JogDial */ #if notyet { 0xf8, 0x80, 0x00, 0x00, 5, ~0x2f, 0x10 }, /* Mariqua */ #endif }; static unsigned char cur_proto[7]; static int r_identify(void) { char pnpbuf[256]; /* PnP identifier string may be up to 256 bytes long */ pnpid_t pnpid; symtab_t *t; int level; int len; /* set the driver operation level, if applicable */ if (rodent.level < 0) rodent.level = 1; ioctl(rodent.mfd, MOUSE_SETLEVEL, &rodent.level); rodent.level = (ioctl(rodent.mfd, MOUSE_GETLEVEL, &level) == 0) ? level : 0; /* * Interrogate the driver and get some intelligence on the device... * The following ioctl functions are not always supported by device * drivers. When the driver doesn't support them, we just trust the * user to supply valid information. */ rodent.hw.iftype = MOUSE_IF_UNKNOWN; rodent.hw.model = MOUSE_MODEL_GENERIC; ioctl(rodent.mfd, MOUSE_GETHWINFO, &rodent.hw); if (rodent.rtype != MOUSE_PROTO_UNKNOWN) bcopy(proto[rodent.rtype], cur_proto, sizeof(cur_proto)); rodent.mode.protocol = MOUSE_PROTO_UNKNOWN; rodent.mode.rate = -1; rodent.mode.resolution = MOUSE_RES_UNKNOWN; rodent.mode.accelfactor = 0; rodent.mode.level = 0; if (ioctl(rodent.mfd, MOUSE_GETMODE, &rodent.mode) == 0) { if (rodent.mode.protocol == MOUSE_PROTO_UNKNOWN || rodent.mode.protocol >= (int)nitems(proto)) { logwarnx("unknown mouse protocol (%d)", rodent.mode.protocol); return (MOUSE_PROTO_UNKNOWN); } else { if (rodent.mode.protocol != rodent.rtype) { /* Hmm, the driver doesn't agree with the user... */ if (rodent.rtype != MOUSE_PROTO_UNKNOWN) logwarnx("mouse type mismatch (%s != %s), %s is assumed", r_name(rodent.mode.protocol), r_name(rodent.rtype), r_name(rodent.mode.protocol)); rodent.rtype = rodent.mode.protocol; bcopy(proto[rodent.rtype], cur_proto, sizeof(cur_proto)); } } cur_proto[4] = rodent.mode.packetsize; cur_proto[0] = rodent.mode.syncmask[0]; /* header byte bit mask */ cur_proto[1] = rodent.mode.syncmask[1]; /* header bit pattern */ } /* maybe this is a PnP mouse... */ if (rodent.mode.protocol == MOUSE_PROTO_UNKNOWN) { if (rodent.flags & NoPnP) return (rodent.rtype); if (((len = pnpgets(pnpbuf)) <= 0) || !pnpparse(&pnpid, pnpbuf, len)) return (rodent.rtype); debug("PnP serial mouse: '%*.*s' '%*.*s' '%*.*s'", pnpid.neisaid, pnpid.neisaid, pnpid.eisaid, pnpid.ncompat, pnpid.ncompat, pnpid.compat, pnpid.ndescription, pnpid.ndescription, pnpid.description); /* we have a valid PnP serial device ID */ rodent.hw.iftype = MOUSE_IF_SERIAL; t = pnpproto(&pnpid); if (t != NULL) { rodent.mode.protocol = t->val; rodent.hw.model = t->val2; } else { rodent.mode.protocol = MOUSE_PROTO_UNKNOWN; } /* make final adjustment */ if (rodent.mode.protocol != MOUSE_PROTO_UNKNOWN) { if (rodent.mode.protocol != rodent.rtype) { /* Hmm, the device doesn't agree with the user... */ if (rodent.rtype != MOUSE_PROTO_UNKNOWN) logwarnx("mouse type mismatch (%s != %s), %s is assumed", r_name(rodent.mode.protocol), r_name(rodent.rtype), r_name(rodent.mode.protocol)); rodent.rtype = rodent.mode.protocol; bcopy(proto[rodent.rtype], cur_proto, sizeof(cur_proto)); } } } debug("proto params: %02x %02x %02x %02x %d %02x %02x", cur_proto[0], cur_proto[1], cur_proto[2], cur_proto[3], cur_proto[4], cur_proto[5], cur_proto[6]); return (rodent.rtype); } static const char * r_if(int iftype) { return (gettokenname(rifs, iftype)); } +static uint16_t +r_bustype(int iftype) +{ + return (gettokenval2(rifs, iftype)); +} + static const char * r_name(int type) { const char *unknown = "unknown"; return (type == MOUSE_PROTO_UNKNOWN || type >= (int)nitems(rnames) ? unknown : rnames[type]); } static const char * r_model(int model) { return (gettokenname(rmodels, model)); } static void r_init(void) { unsigned char buf[16]; /* scrach buffer */ fd_set fds; const char *s; char c; int i; /** ** This comment is a little out of context here, but it contains ** some useful information... ******************************************************************** ** ** The following lines take care of the Logitech MouseMan protocols. ** ** NOTE: There are different versions of both MouseMan and TrackMan! ** Hence I add another protocol P_LOGIMAN, which the user can ** specify as MouseMan in his XF86Config file. This entry was ** formerly handled as a special case of P_MS. However, people ** who don't have the middle button problem, can still specify ** Microsoft and use P_MS. ** ** By default, these mice should use a 3 byte Microsoft protocol ** plus a 4th byte for the middle button. However, the mouse might ** have switched to a different protocol before we use it, so I send ** the proper sequence just in case. ** ** NOTE: - all commands to (at least the European) MouseMan have to ** be sent at 1200 Baud. ** - each command starts with a '*'. ** - whenever the MouseMan receives a '*', it will switch back ** to 1200 Baud. Hence I have to select the desired protocol ** first, then select the baud rate. ** ** The protocols supported by the (European) MouseMan are: ** - 5 byte packed binary protocol, as with the Mouse Systems ** mouse. Selected by sequence "*U". ** - 2 button 3 byte MicroSoft compatible protocol. Selected ** by sequence "*V". ** - 3 button 3+1 byte MicroSoft compatible protocol (default). ** Selected by sequence "*X". ** ** The following baud rates are supported: ** - 1200 Baud (default). Selected by sequence "*n". ** - 9600 Baud. Selected by sequence "*q". ** ** Selecting a sample rate is no longer supported with the MouseMan! ** Some additional lines in xf86Config.c take care of ill configured ** baud rates and sample rates. (The user will get an error.) */ switch (rodent.rtype) { case MOUSE_PROTO_LOGI: /* * The baud rate selection command must be sent at the current * baud rate; try all likely settings */ setmousespeed(9600, rodent.baudrate, rodentcflags[rodent.rtype]); setmousespeed(4800, rodent.baudrate, rodentcflags[rodent.rtype]); setmousespeed(2400, rodent.baudrate, rodentcflags[rodent.rtype]); setmousespeed(1200, rodent.baudrate, rodentcflags[rodent.rtype]); /* select MM series data format */ write(rodent.mfd, "S", 1); setmousespeed(rodent.baudrate, rodent.baudrate, rodentcflags[MOUSE_PROTO_MM]); /* select report rate/frequency */ if (rodent.rate <= 0) write(rodent.mfd, "O", 1); else if (rodent.rate <= 15) write(rodent.mfd, "J", 1); else if (rodent.rate <= 27) write(rodent.mfd, "K", 1); else if (rodent.rate <= 42) write(rodent.mfd, "L", 1); else if (rodent.rate <= 60) write(rodent.mfd, "R", 1); else if (rodent.rate <= 85) write(rodent.mfd, "M", 1); else if (rodent.rate <= 125) write(rodent.mfd, "Q", 1); else write(rodent.mfd, "N", 1); break; case MOUSE_PROTO_LOGIMOUSEMAN: /* The command must always be sent at 1200 baud */ setmousespeed(1200, 1200, rodentcflags[rodent.rtype]); write(rodent.mfd, "*X", 2); setmousespeed(1200, rodent.baudrate, rodentcflags[rodent.rtype]); break; case MOUSE_PROTO_HITTAB: setmousespeed(1200, rodent.baudrate, rodentcflags[rodent.rtype]); /* * Initialize Hitachi PUMA Plus - Model 1212E to desired settings. * The tablet must be configured to be in MM mode, NO parity, * Binary Format. xf86Info.sampleRate controls the sensativity * of the tablet. We only use this tablet for it's 4-button puck * so we don't run in "Absolute Mode" */ write(rodent.mfd, "z8", 2); /* Set Parity = "NONE" */ usleep(50000); write(rodent.mfd, "zb", 2); /* Set Format = "Binary" */ usleep(50000); write(rodent.mfd, "@", 1); /* Set Report Mode = "Stream" */ usleep(50000); write(rodent.mfd, "R", 1); /* Set Output Rate = "45 rps" */ usleep(50000); write(rodent.mfd, "I\x20", 2); /* Set Incrememtal Mode "20" */ usleep(50000); write(rodent.mfd, "E", 1); /* Set Data Type = "Relative */ usleep(50000); /* Resolution is in 'lines per inch' on the Hitachi tablet */ if (rodent.resolution == MOUSE_RES_LOW) c = 'g'; else if (rodent.resolution == MOUSE_RES_MEDIUMLOW) c = 'e'; else if (rodent.resolution == MOUSE_RES_MEDIUMHIGH) c = 'h'; else if (rodent.resolution == MOUSE_RES_HIGH) c = 'd'; else if (rodent.resolution <= 40) c = 'g'; else if (rodent.resolution <= 100) c = 'd'; else if (rodent.resolution <= 200) c = 'e'; else if (rodent.resolution <= 500) c = 'h'; else if (rodent.resolution <= 1000) c = 'j'; else c = 'd'; write(rodent.mfd, &c, 1); usleep(50000); write(rodent.mfd, "\021", 1); /* Resume DATA output */ break; case MOUSE_PROTO_THINK: setmousespeed(1200, rodent.baudrate, rodentcflags[rodent.rtype]); /* the PnP ID string may be sent again, discard it */ usleep(200000); i = FREAD; ioctl(rodent.mfd, TIOCFLUSH, &i); /* send the command to initialize the beast */ for (s = "E5E5"; *s; ++s) { write(rodent.mfd, s, 1); FD_ZERO(&fds); FD_SET(rodent.mfd, &fds); if (select(FD_SETSIZE, &fds, NULL, NULL, NULL) <= 0) break; read(rodent.mfd, &c, 1); debug("%c", c); if (c != *s) break; } break; case MOUSE_PROTO_JOGDIAL: break; case MOUSE_PROTO_MSC: setmousespeed(1200, rodent.baudrate, rodentcflags[rodent.rtype]); if (rodent.flags & ClearDTR) { i = TIOCM_DTR; ioctl(rodent.mfd, TIOCMBIC, &i); } if (rodent.flags & ClearRTS) { i = TIOCM_RTS; ioctl(rodent.mfd, TIOCMBIC, &i); } break; case MOUSE_PROTO_SYSMOUSE: if (rodent.hw.iftype == MOUSE_IF_SYSMOUSE) setmousespeed(1200, rodent.baudrate, rodentcflags[rodent.rtype]); /* FALLTHROUGH */ case MOUSE_PROTO_PS2: if (rodent.rate >= 0) rodent.mode.rate = rodent.rate; if (rodent.resolution != MOUSE_RES_UNKNOWN) rodent.mode.resolution = rodent.resolution; ioctl(rodent.mfd, MOUSE_SETMODE, &rodent.mode); break; case MOUSE_PROTO_X10MOUSEREM: mremote_serversetup(); setmousespeed(1200, rodent.baudrate, rodentcflags[rodent.rtype]); break; case MOUSE_PROTO_VERSAPAD: tcsendbreak(rodent.mfd, 0); /* send break for 400 msec */ i = FREAD; ioctl(rodent.mfd, TIOCFLUSH, &i); for (i = 0; i < 7; ++i) { FD_ZERO(&fds); FD_SET(rodent.mfd, &fds); if (select(FD_SETSIZE, &fds, NULL, NULL, NULL) <= 0) break; read(rodent.mfd, &c, 1); buf[i] = c; } debug("%s\n", buf); if ((buf[0] != 'V') || (buf[1] != 'P')|| (buf[7] != '\r')) break; setmousespeed(9600, rodent.baudrate, rodentcflags[rodent.rtype]); tcsendbreak(rodent.mfd, 0); /* send break for 400 msec again */ for (i = 0; i < 7; ++i) { FD_ZERO(&fds); FD_SET(rodent.mfd, &fds); if (select(FD_SETSIZE, &fds, NULL, NULL, NULL) <= 0) break; read(rodent.mfd, &c, 1); debug("%c", c); if (c != buf[i]) break; } i = FREAD; ioctl(rodent.mfd, TIOCFLUSH, &i); break; default: setmousespeed(1200, rodent.baudrate, rodentcflags[rodent.rtype]); break; } } static int r_protocol(u_char rBuf, mousestatus_t *act) { /* MOUSE_MSS_BUTTON?DOWN -> MOUSE_BUTTON?DOWN */ static int butmapmss[4] = { /* Microsoft, MouseMan, GlidePoint, IntelliMouse, Thinking Mouse */ 0, MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, }; static int butmapmss2[4] = { /* Microsoft, MouseMan, GlidePoint, Thinking Mouse */ 0, MOUSE_BUTTON4DOWN, MOUSE_BUTTON2DOWN, MOUSE_BUTTON2DOWN | MOUSE_BUTTON4DOWN, }; /* MOUSE_INTELLI_BUTTON?DOWN -> MOUSE_BUTTON?DOWN */ static int butmapintelli[4] = { /* IntelliMouse, NetMouse, Mie Mouse, MouseMan+ */ 0, MOUSE_BUTTON2DOWN, MOUSE_BUTTON4DOWN, MOUSE_BUTTON2DOWN | MOUSE_BUTTON4DOWN, }; /* MOUSE_MSC_BUTTON?UP -> MOUSE_BUTTON?DOWN */ static int butmapmsc[8] = { /* MouseSystems, MMSeries, Logitech, Bus, sysmouse */ 0, MOUSE_BUTTON3DOWN, MOUSE_BUTTON2DOWN, MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN }; /* MOUSE_PS2_BUTTON?DOWN -> MOUSE_BUTTON?DOWN */ static int butmapps2[8] = { /* PS/2 */ 0, MOUSE_BUTTON1DOWN, MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, MOUSE_BUTTON2DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN, MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN }; /* for Hitachi tablet */ static int butmaphit[8] = { /* MM HitTablet */ 0, MOUSE_BUTTON3DOWN, MOUSE_BUTTON2DOWN, MOUSE_BUTTON1DOWN, MOUSE_BUTTON4DOWN, MOUSE_BUTTON5DOWN, MOUSE_BUTTON6DOWN, MOUSE_BUTTON7DOWN, }; /* for serial VersaPad */ static int butmapversa[8] = { /* VersaPad */ 0, 0, MOUSE_BUTTON3DOWN, MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN, MOUSE_BUTTON1DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, }; /* for PS/2 VersaPad */ static int butmapversaps2[8] = { /* VersaPad */ 0, MOUSE_BUTTON3DOWN, 0, MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, MOUSE_BUTTON1DOWN, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, }; static int pBufP = 0; static unsigned char pBuf[8]; static int prev_x, prev_y; - static int on = FALSE; + static bool on = false; int x, y; debug("received char 0x%x",(int)rBuf); if (rodent.rtype == MOUSE_PROTO_KIDSPAD) return (kidspad(rBuf, act)); if (rodent.rtype == MOUSE_PROTO_GTCO_DIGIPAD) return (gtco_digipad(rBuf, act)); /* * Hack for resyncing: We check here for a package that is: * a) illegal (detected by wrong data-package header) * b) invalid (0x80 == -128 and that might be wrong for MouseSystems) * c) bad header-package * * NOTE: b) is a voilation of the MouseSystems-Protocol, since values of * -128 are allowed, but since they are very seldom we can easily * use them as package-header with no button pressed. * NOTE/2: On a PS/2 mouse any byte is valid as a data byte. Furthermore, * 0x80 is not valid as a header byte. For a PS/2 mouse we skip * checking data bytes. * For resyncing a PS/2 mouse we require the two most significant * bits in the header byte to be 0. These are the overflow bits, * and in case of an overflow we actually lose sync. Overflows * are very rare, however, and we quickly gain sync again after * an overflow condition. This is the best we can do. (Actually, * we could use bit 0x08 in the header byte for resyncing, since * that bit is supposed to be always on, but nobody told * Microsoft...) */ if (pBufP != 0 && rodent.rtype != MOUSE_PROTO_PS2 && ((rBuf & cur_proto[2]) != cur_proto[3] || rBuf == 0x80)) { pBufP = 0; /* skip package */ } if (pBufP == 0 && (rBuf & cur_proto[0]) != cur_proto[1]) return (0); /* is there an extra data byte? */ if (pBufP >= cur_proto[4] && (rBuf & cur_proto[0]) != cur_proto[1]) { /* * Hack for Logitech MouseMan Mouse - Middle button * * Unfortunately this mouse has variable length packets: the standard * Microsoft 3 byte packet plus an optional 4th byte whenever the * middle button status changes. * * We have already processed the standard packet with the movement * and button info. Now post an event message with the old status * of the left and right buttons and the updated middle button. */ /* * Even worse, different MouseMen and TrackMen differ in the 4th * byte: some will send 0x00/0x20, others 0x01/0x21, or even * 0x02/0x22, so I have to strip off the lower bits. * * [JCH-96/01/21] * HACK for ALPS "fourth button". (It's bit 0x10 of the "fourth byte" * and it is activated by tapping the glidepad with the finger! 8^) * We map it to bit bit3, and the reverse map in xf86Events just has * to be extended so that it is identified as Button 4. The lower * half of the reverse-map may remain unchanged. */ /* * [KY-97/08/03] * Receive the fourth byte only when preceding three bytes have * been detected (pBufP >= cur_proto[4]). In the previous * versions, the test was pBufP == 0; thus, we may have mistakingly * received a byte even if we didn't see anything preceding * the byte. */ if ((rBuf & cur_proto[5]) != cur_proto[6]) { pBufP = 0; return (0); } switch (rodent.rtype) { #if notyet case MOUSE_PROTO_MARIQUA: /* * This mouse has 16! buttons in addition to the standard * three of them. They return 0x10 though 0x1f in the * so-called `ten key' mode and 0x30 though 0x3f in the * `function key' mode. As there are only 31 bits for * button state (including the standard three), we ignore * the bit 0x20 and don't distinguish the two modes. */ act->dx = act->dy = act->dz = 0; act->obutton = act->button; rBuf &= 0x1f; act->button = (1 << (rBuf - 13)) | (act->obutton & (MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN)); /* * FIXME: this is a button "down" event. There needs to be * a corresponding button "up" event... XXX */ break; #endif /* notyet */ case MOUSE_PROTO_JOGDIAL: break; /* * IntelliMouse, NetMouse (including NetMouse Pro) and Mie Mouse * always send the fourth byte, whereas the fourth byte is * optional for GlidePoint and ThinkingMouse. The fourth byte * is also optional for MouseMan+ and FirstMouse+ in their * native mode. It is always sent if they are in the IntelliMouse * compatible mode. */ case MOUSE_PROTO_INTELLI: /* IntelliMouse, NetMouse, Mie Mouse, MouseMan+ */ act->dx = act->dy = 0; act->dz = (rBuf & 0x08) ? (rBuf & 0x0f) - 16 : (rBuf & 0x0f); if ((act->dz >= 7) || (act->dz <= -7)) act->dz = 0; act->obutton = act->button; act->button = butmapintelli[(rBuf & MOUSE_MSS_BUTTONS) >> 4] | (act->obutton & (MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN)); break; default: act->dx = act->dy = act->dz = 0; act->obutton = act->button; act->button = butmapmss2[(rBuf & MOUSE_MSS_BUTTONS) >> 4] | (act->obutton & (MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN)); break; } act->flags = ((act->dx || act->dy || act->dz) ? MOUSE_POSCHANGED : 0) | (act->obutton ^ act->button); pBufP = 0; return (act->flags); } if (pBufP >= cur_proto[4]) pBufP = 0; pBuf[pBufP++] = rBuf; if (pBufP != cur_proto[4]) return (0); /* * assembly full package */ debug("assembled full packet (len %d) %x,%x,%x,%x,%x,%x,%x,%x", cur_proto[4], pBuf[0], pBuf[1], pBuf[2], pBuf[3], pBuf[4], pBuf[5], pBuf[6], pBuf[7]); act->dz = 0; act->obutton = act->button; switch (rodent.rtype) { case MOUSE_PROTO_MS: /* Microsoft */ case MOUSE_PROTO_LOGIMOUSEMAN: /* MouseMan/TrackMan */ case MOUSE_PROTO_X10MOUSEREM: /* X10 MouseRemote */ act->button = act->obutton & MOUSE_BUTTON4DOWN; if (rodent.flags & ChordMiddle) act->button |= ((pBuf[0] & MOUSE_MSS_BUTTONS) == MOUSE_MSS_BUTTONS) ? MOUSE_BUTTON2DOWN : butmapmss[(pBuf[0] & MOUSE_MSS_BUTTONS) >> 4]; else act->button |= (act->obutton & MOUSE_BUTTON2DOWN) | butmapmss[(pBuf[0] & MOUSE_MSS_BUTTONS) >> 4]; /* Send X10 btn events to remote client (ensure -128-+127 range) */ if ((rodent.rtype == MOUSE_PROTO_X10MOUSEREM) && ((pBuf[0] & 0xFC) == 0x44) && (pBuf[2] == 0x3F)) { if (rodent.mremcfd >= 0) { unsigned char key = (signed char)(((pBuf[0] & 0x03) << 6) | (pBuf[1] & 0x3F)); write(rodent.mremcfd, &key, 1); } return (0); } act->dx = (signed char)(((pBuf[0] & 0x03) << 6) | (pBuf[1] & 0x3F)); act->dy = (signed char)(((pBuf[0] & 0x0C) << 4) | (pBuf[2] & 0x3F)); break; case MOUSE_PROTO_GLIDEPOINT: /* GlidePoint */ case MOUSE_PROTO_THINK: /* ThinkingMouse */ case MOUSE_PROTO_INTELLI: /* IntelliMouse, NetMouse, Mie Mouse, MouseMan+ */ act->button = (act->obutton & (MOUSE_BUTTON2DOWN | MOUSE_BUTTON4DOWN)) | butmapmss[(pBuf[0] & MOUSE_MSS_BUTTONS) >> 4]; act->dx = (signed char)(((pBuf[0] & 0x03) << 6) | (pBuf[1] & 0x3F)); act->dy = (signed char)(((pBuf[0] & 0x0C) << 4) | (pBuf[2] & 0x3F)); break; case MOUSE_PROTO_MSC: /* MouseSystems Corp */ #if notyet case MOUSE_PROTO_MARIQUA: /* Mariqua */ #endif act->button = butmapmsc[(~pBuf[0]) & MOUSE_MSC_BUTTONS]; act->dx = (signed char)(pBuf[1]) + (signed char)(pBuf[3]); act->dy = - ((signed char)(pBuf[2]) + (signed char)(pBuf[4])); break; case MOUSE_PROTO_JOGDIAL: /* JogDial */ if (rBuf == 0x6c) act->dz = -1; if (rBuf == 0x72) act->dz = 1; if (rBuf == 0x64) act->button = MOUSE_BUTTON1DOWN; if (rBuf == 0x75) act->button = 0; break; case MOUSE_PROTO_HITTAB: /* MM HitTablet */ act->button = butmaphit[pBuf[0] & 0x07]; act->dx = (pBuf[0] & MOUSE_MM_XPOSITIVE) ? pBuf[1] : - pBuf[1]; act->dy = (pBuf[0] & MOUSE_MM_YPOSITIVE) ? - pBuf[2] : pBuf[2]; break; case MOUSE_PROTO_MM: /* MM Series */ case MOUSE_PROTO_LOGI: /* Logitech Mice */ act->button = butmapmsc[pBuf[0] & MOUSE_MSC_BUTTONS]; act->dx = (pBuf[0] & MOUSE_MM_XPOSITIVE) ? pBuf[1] : - pBuf[1]; act->dy = (pBuf[0] & MOUSE_MM_YPOSITIVE) ? - pBuf[2] : pBuf[2]; break; case MOUSE_PROTO_VERSAPAD: /* VersaPad */ act->button = butmapversa[(pBuf[0] & MOUSE_VERSA_BUTTONS) >> 3]; act->button |= (pBuf[0] & MOUSE_VERSA_TAP) ? MOUSE_BUTTON4DOWN : 0; act->dx = act->dy = 0; if (!(pBuf[0] & MOUSE_VERSA_IN_USE)) { - on = FALSE; + on = false; break; } x = (pBuf[2] << 6) | pBuf[1]; if (x & 0x800) x -= 0x1000; y = (pBuf[4] << 6) | pBuf[3]; if (y & 0x800) y -= 0x1000; if (on) { act->dx = prev_x - x; act->dy = prev_y - y; } else { - on = TRUE; + on = true; } prev_x = x; prev_y = y; break; case MOUSE_PROTO_PS2: /* PS/2 */ act->button = butmapps2[pBuf[0] & MOUSE_PS2_BUTTONS]; act->dx = (pBuf[0] & MOUSE_PS2_XNEG) ? pBuf[1] - 256 : pBuf[1]; act->dy = (pBuf[0] & MOUSE_PS2_YNEG) ? -(pBuf[2] - 256) : -pBuf[2]; /* * Moused usually operates the psm driver at the operation level 1 * which sends mouse data in MOUSE_PROTO_SYSMOUSE protocol. * The following code takes effect only when the user explicitly * requets the level 2 at which wheel movement and additional button * actions are encoded in model-dependent formats. At the level 0 * the following code is no-op because the psm driver says the model * is MOUSE_MODEL_GENERIC. */ switch (rodent.hw.model) { case MOUSE_MODEL_EXPLORER: /* wheel and additional button data is in the fourth byte */ act->dz = (pBuf[3] & MOUSE_EXPLORER_ZNEG) ? (pBuf[3] & 0x0f) - 16 : (pBuf[3] & 0x0f); act->button |= (pBuf[3] & MOUSE_EXPLORER_BUTTON4DOWN) ? MOUSE_BUTTON4DOWN : 0; act->button |= (pBuf[3] & MOUSE_EXPLORER_BUTTON5DOWN) ? MOUSE_BUTTON5DOWN : 0; break; case MOUSE_MODEL_INTELLI: case MOUSE_MODEL_NET: /* wheel data is in the fourth byte */ act->dz = (signed char)pBuf[3]; if ((act->dz >= 7) || (act->dz <= -7)) act->dz = 0; /* some compatible mice may have additional buttons */ act->button |= (pBuf[0] & MOUSE_PS2INTELLI_BUTTON4DOWN) ? MOUSE_BUTTON4DOWN : 0; act->button |= (pBuf[0] & MOUSE_PS2INTELLI_BUTTON5DOWN) ? MOUSE_BUTTON5DOWN : 0; break; case MOUSE_MODEL_MOUSEMANPLUS: if (((pBuf[0] & MOUSE_PS2PLUS_SYNCMASK) == MOUSE_PS2PLUS_SYNC) && (abs(act->dx) > 191) && MOUSE_PS2PLUS_CHECKBITS(pBuf)) { /* the extended data packet encodes button and wheel events */ switch (MOUSE_PS2PLUS_PACKET_TYPE(pBuf)) { case 1: /* wheel data packet */ act->dx = act->dy = 0; if (pBuf[2] & 0x80) { /* horizontal roller count - ignore it XXX*/ } else { /* vertical roller count */ act->dz = (pBuf[2] & MOUSE_PS2PLUS_ZNEG) ? (pBuf[2] & 0x0f) - 16 : (pBuf[2] & 0x0f); } act->button |= (pBuf[2] & MOUSE_PS2PLUS_BUTTON4DOWN) ? MOUSE_BUTTON4DOWN : 0; act->button |= (pBuf[2] & MOUSE_PS2PLUS_BUTTON5DOWN) ? MOUSE_BUTTON5DOWN : 0; break; case 2: /* this packet type is reserved by Logitech */ /* * IBM ScrollPoint Mouse uses this packet type to * encode both vertical and horizontal scroll movement. */ act->dx = act->dy = 0; /* horizontal roller count */ if (pBuf[2] & 0x0f) act->dz = (pBuf[2] & MOUSE_SPOINT_WNEG) ? -2 : 2; /* vertical roller count */ if (pBuf[2] & 0xf0) act->dz = (pBuf[2] & MOUSE_SPOINT_ZNEG) ? -1 : 1; #if 0 /* vertical roller count */ act->dz = (pBuf[2] & MOUSE_SPOINT_ZNEG) ? ((pBuf[2] >> 4) & 0x0f) - 16 : ((pBuf[2] >> 4) & 0x0f); /* horizontal roller count */ act->dw = (pBuf[2] & MOUSE_SPOINT_WNEG) ? (pBuf[2] & 0x0f) - 16 : (pBuf[2] & 0x0f); #endif break; case 0: /* device type packet - shouldn't happen */ /* FALLTHROUGH */ default: act->dx = act->dy = 0; act->button = act->obutton; debug("unknown PS2++ packet type %d: 0x%02x 0x%02x 0x%02x\n", MOUSE_PS2PLUS_PACKET_TYPE(pBuf), pBuf[0], pBuf[1], pBuf[2]); break; } } else { /* preserve button states */ act->button |= act->obutton & MOUSE_EXTBUTTONS; } break; case MOUSE_MODEL_GLIDEPOINT: /* `tapping' action */ act->button |= ((pBuf[0] & MOUSE_PS2_TAP)) ? 0 : MOUSE_BUTTON4DOWN; break; case MOUSE_MODEL_NETSCROLL: /* three additional bytes encode buttons and wheel events */ act->button |= (pBuf[3] & MOUSE_PS2_BUTTON3DOWN) ? MOUSE_BUTTON4DOWN : 0; act->button |= (pBuf[3] & MOUSE_PS2_BUTTON1DOWN) ? MOUSE_BUTTON5DOWN : 0; act->dz = (pBuf[3] & MOUSE_PS2_XNEG) ? pBuf[4] - 256 : pBuf[4]; break; case MOUSE_MODEL_THINK: /* the fourth button state in the first byte */ act->button |= (pBuf[0] & MOUSE_PS2_TAP) ? MOUSE_BUTTON4DOWN : 0; break; case MOUSE_MODEL_VERSAPAD: act->button = butmapversaps2[pBuf[0] & MOUSE_PS2VERSA_BUTTONS]; act->button |= (pBuf[0] & MOUSE_PS2VERSA_TAP) ? MOUSE_BUTTON4DOWN : 0; act->dx = act->dy = 0; if (!(pBuf[0] & MOUSE_PS2VERSA_IN_USE)) { - on = FALSE; + on = false; break; } x = ((pBuf[4] << 8) & 0xf00) | pBuf[1]; if (x & 0x800) x -= 0x1000; y = ((pBuf[4] << 4) & 0xf00) | pBuf[2]; if (y & 0x800) y -= 0x1000; if (on) { act->dx = prev_x - x; act->dy = prev_y - y; } else { - on = TRUE; + on = true; } prev_x = x; prev_y = y; break; case MOUSE_MODEL_4D: act->dx = (pBuf[1] & 0x80) ? pBuf[1] - 256 : pBuf[1]; act->dy = (pBuf[2] & 0x80) ? -(pBuf[2] - 256) : -pBuf[2]; switch (pBuf[0] & MOUSE_4D_WHEELBITS) { case 0x10: act->dz = 1; break; case 0x30: act->dz = -1; break; case 0x40: /* 2nd wheel rolling right XXX */ act->dz = 2; break; case 0xc0: /* 2nd wheel rolling left XXX */ act->dz = -2; break; } break; case MOUSE_MODEL_4DPLUS: if ((act->dx < 16 - 256) && (act->dy > 256 - 16)) { act->dx = act->dy = 0; if (pBuf[2] & MOUSE_4DPLUS_BUTTON4DOWN) act->button |= MOUSE_BUTTON4DOWN; act->dz = (pBuf[2] & MOUSE_4DPLUS_ZNEG) ? ((pBuf[2] & 0x07) - 8) : (pBuf[2] & 0x07); } else { /* preserve previous button states */ act->button |= act->obutton & MOUSE_EXTBUTTONS; } break; case MOUSE_MODEL_GENERIC: default: break; } break; case MOUSE_PROTO_SYSMOUSE: /* sysmouse */ act->button = butmapmsc[(~pBuf[0]) & MOUSE_SYS_STDBUTTONS]; act->dx = (signed char)(pBuf[1]) + (signed char)(pBuf[3]); act->dy = - ((signed char)(pBuf[2]) + (signed char)(pBuf[4])); if (rodent.level == 1) { act->dz = ((signed char)(pBuf[5] << 1) + (signed char)(pBuf[6] << 1)) >> 1; act->button |= ((~pBuf[7] & MOUSE_SYS_EXTBUTTONS) << 3); } break; default: return (0); } /* * We don't reset pBufP here yet, as there may be an additional data * byte in some protocols. See above. */ /* has something changed? */ act->flags = ((act->dx || act->dy || act->dz) ? MOUSE_POSCHANGED : 0) | (act->obutton ^ act->button); return (act->flags); } -static int -r_statetrans(mousestatus_t *a1, mousestatus_t *a2, int trans) -{ - int changed; - int flags; - - a2->dx = a1->dx; - a2->dy = a1->dy; - a2->dz = a1->dz; - a2->obutton = a2->button; - a2->button = a1->button; - a2->flags = a1->flags; - changed = FALSE; - - if (rodent.flags & Emulate3Button) { - if (debug > 2) - debug("state:%d, trans:%d -> state:%d", - mouse_button_state, trans, - states[mouse_button_state].s[trans]); - /* - * Avoid re-ordering button and movement events. While a button - * event is deferred, throw away up to BUTTON2_MAXMOVE movement - * events to allow for mouse jitter. If more movement events - * occur, then complete the deferred button events immediately. - */ - if ((a2->dx != 0 || a2->dy != 0) && - S_DELAYED(states[mouse_button_state].s[trans])) { - if (++mouse_move_delayed > BUTTON2_MAXMOVE) { - mouse_move_delayed = 0; - mouse_button_state = - states[mouse_button_state].s[A_TIMEOUT]; - changed = TRUE; - } else - a2->dx = a2->dy = 0; - } else - mouse_move_delayed = 0; - if (mouse_button_state != states[mouse_button_state].s[trans]) - changed = TRUE; - if (changed) - clock_gettime(CLOCK_MONOTONIC_FAST, &mouse_button_state_ts); - mouse_button_state = states[mouse_button_state].s[trans]; - a2->button &= - ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON2DOWN | MOUSE_BUTTON3DOWN); - a2->button &= states[mouse_button_state].mask; - a2->button |= states[mouse_button_state].buttons; - flags = a2->flags & MOUSE_POSCHANGED; - flags |= a2->obutton ^ a2->button; - if (flags & MOUSE_BUTTON2DOWN) { - a2->flags = flags & MOUSE_BUTTON2DOWN; - r_timestamp(a2); - } - a2->flags = flags; - } - return (changed); -} - -/* phisical to logical button mapping */ -static int p2l[MOUSE_MAXBUTTON] = { - MOUSE_BUTTON1DOWN, MOUSE_BUTTON2DOWN, MOUSE_BUTTON3DOWN, MOUSE_BUTTON4DOWN, - MOUSE_BUTTON5DOWN, MOUSE_BUTTON6DOWN, MOUSE_BUTTON7DOWN, MOUSE_BUTTON8DOWN, - 0x00000100, 0x00000200, 0x00000400, 0x00000800, - 0x00001000, 0x00002000, 0x00004000, 0x00008000, - 0x00010000, 0x00020000, 0x00040000, 0x00080000, - 0x00100000, 0x00200000, 0x00400000, 0x00800000, - 0x01000000, 0x02000000, 0x04000000, 0x08000000, - 0x10000000, 0x20000000, 0x40000000, -}; - -static char * -skipspace(char *s) -{ - while(isspace(*s)) - ++s; - return (s); -} - -static int -r_installmap(char *arg) -{ - int pbutton; - int lbutton; - char *s; - - while (*arg) { - arg = skipspace(arg); - s = arg; - while (isdigit(*arg)) - ++arg; - arg = skipspace(arg); - if ((arg <= s) || (*arg != '=')) - return (FALSE); - lbutton = atoi(s); - - arg = skipspace(++arg); - s = arg; - while (isdigit(*arg)) - ++arg; - if ((arg <= s) || (!isspace(*arg) && (*arg != '\0'))) - return (FALSE); - pbutton = atoi(s); - - if ((lbutton <= 0) || (lbutton > MOUSE_MAXBUTTON)) - return (FALSE); - if ((pbutton <= 0) || (pbutton > MOUSE_MAXBUTTON)) - return (FALSE); - p2l[pbutton - 1] = 1 << (lbutton - 1); - mstate[lbutton - 1] = &bstate[pbutton - 1]; - } - - return (TRUE); -} - -static void -r_map(mousestatus_t *act1, mousestatus_t *act2) -{ - register int pb; - register int pbuttons; - int lbuttons; - - pbuttons = act1->button; - lbuttons = 0; - - act2->obutton = act2->button; - if (pbuttons & rodent.wmode) { - pbuttons &= ~rodent.wmode; - act1->dz = act1->dy; - act1->dx = 0; - act1->dy = 0; - } - act2->dx = act1->dx; - act2->dy = act1->dy; - act2->dz = act1->dz; - - switch (rodent.zmap[0]) { - case 0: /* do nothing */ - break; - case MOUSE_XAXIS: - if (act1->dz != 0) { - act2->dx = act1->dz; - act2->dz = 0; - } - break; - case MOUSE_YAXIS: - if (act1->dz != 0) { - act2->dy = act1->dz; - act2->dz = 0; - } - break; - default: /* buttons */ - pbuttons &= ~(rodent.zmap[0] | rodent.zmap[1] - | rodent.zmap[2] | rodent.zmap[3]); - if ((act1->dz < -1) && rodent.zmap[2]) { - pbuttons |= rodent.zmap[2]; - zstate[2].count = 1; - } else if (act1->dz < 0) { - pbuttons |= rodent.zmap[0]; - zstate[0].count = 1; - } else if ((act1->dz > 1) && rodent.zmap[3]) { - pbuttons |= rodent.zmap[3]; - zstate[3].count = 1; - } else if (act1->dz > 0) { - pbuttons |= rodent.zmap[1]; - zstate[1].count = 1; - } - act2->dz = 0; - break; - } - - for (pb = 0; (pb < MOUSE_MAXBUTTON) && (pbuttons != 0); ++pb) { - lbuttons |= (pbuttons & 1) ? p2l[pb] : 0; - pbuttons >>= 1; - } - act2->button = lbuttons; - - act2->flags = ((act2->dx || act2->dy || act2->dz) ? MOUSE_POSCHANGED : 0) - | (act2->obutton ^ act2->button); -} - -static void -r_timestamp(mousestatus_t *act) -{ - struct timespec ts; - struct timespec ts1; - struct timespec ts2; - struct timespec ts3; - int button; - int mask; - int i; - - mask = act->flags & MOUSE_BUTTONS; -#if 0 - if (mask == 0) - return; -#endif - - clock_gettime(CLOCK_MONOTONIC_FAST, &ts1); - drift_current_ts = ts1; - - /* double click threshold */ - ts2.tv_sec = rodent.clickthreshold / 1000; - ts2.tv_nsec = (rodent.clickthreshold % 1000) * 1000000; - tssub(&ts1, &ts2, &ts); - debug("ts: %jd %ld", (intmax_t)ts.tv_sec, ts.tv_nsec); - - /* 3 button emulation timeout */ - ts2.tv_sec = rodent.button2timeout / 1000; - ts2.tv_nsec = (rodent.button2timeout % 1000) * 1000000; - tssub(&ts1, &ts2, &ts3); - - button = MOUSE_BUTTON1DOWN; - for (i = 0; (i < MOUSE_MAXBUTTON) && (mask != 0); ++i) { - if (mask & 1) { - if (act->button & button) { - /* the button is down */ - debug(" : %jd %ld", - (intmax_t)bstate[i].ts.tv_sec, bstate[i].ts.tv_nsec); - if (tscmp(&ts, &bstate[i].ts, >)) { - bstate[i].count = 1; - } else { - ++bstate[i].count; - } - bstate[i].ts = ts1; - } else { - /* the button is up */ - bstate[i].ts = ts1; - } - } else { - if (act->button & button) { - /* the button has been down */ - if (tscmp(&ts3, &bstate[i].ts, >)) { - bstate[i].count = 1; - bstate[i].ts = ts1; - act->flags |= button; - debug("button %d timeout", i + 1); - } - } else { - /* the button has been up */ - } - } - button <<= 1; - mask >>= 1; - } -} - -static int -r_timeout(void) -{ - struct timespec ts; - struct timespec ts1; - struct timespec ts2; - - if (states[mouse_button_state].timeout) - return (TRUE); - clock_gettime(CLOCK_MONOTONIC_FAST, &ts1); - ts2.tv_sec = rodent.button2timeout / 1000; - ts2.tv_nsec = (rodent.button2timeout % 1000) * 1000000; - tssub(&ts1, &ts2, &ts); - return (tscmp(&ts, &mouse_button_state_ts, >)); -} - -static void -r_click(mousestatus_t *act) -{ - struct mouse_info mouse; - int button; - int mask; - int i; - - mask = act->flags & MOUSE_BUTTONS; - if (mask == 0) - return; - - button = MOUSE_BUTTON1DOWN; - for (i = 0; (i < MOUSE_MAXBUTTON) && (mask != 0); ++i) { - if (mask & 1) { - debug("mstate[%d]->count:%d", i, mstate[i]->count); - if (act->button & button) { - /* the button is down */ - mouse.u.event.value = mstate[i]->count; - } else { - /* the button is up */ - mouse.u.event.value = 0; - } - mouse.operation = MOUSE_BUTTON_EVENT; - mouse.u.event.id = button; - if (debug < 2) - if (!paused) - ioctl(rodent.cfd, CONS_MOUSECTL, &mouse); - debug("button %d count %d", i + 1, mouse.u.event.value); - } - button <<= 1; - mask >>= 1; - } -} - /* $XConsortium: posix_tty.c,v 1.3 95/01/05 20:42:55 kaleb Exp $ */ /* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/posix_tty.c,v 3.4 1995/01/28 17:05:03 dawes Exp $ */ /* * Copyright 1993 by David Dawes * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of David Dawes * not be used in advertising or publicity pertaining to distribution of * the software without specific, written prior permission. * David Dawes makes no representations about the suitability of this * software for any purpose. It is provided "as is" without express or * implied warranty. * * DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD TO * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS, IN NO EVENT SHALL DAVID DAWES BE LIABLE FOR * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */ static void setmousespeed(int old, int new, unsigned cflag) { struct termios tty; const char *c; if (tcgetattr(rodent.mfd, &tty) < 0) { logwarn("unable to get status of mouse fd"); return; } tty.c_iflag = IGNBRK | IGNPAR; tty.c_oflag = 0; tty.c_lflag = 0; tty.c_cflag = (tcflag_t)cflag; tty.c_cc[VTIME] = 0; tty.c_cc[VMIN] = 1; switch (old) { case 9600: cfsetispeed(&tty, B9600); cfsetospeed(&tty, B9600); break; case 4800: cfsetispeed(&tty, B4800); cfsetospeed(&tty, B4800); break; case 2400: cfsetispeed(&tty, B2400); cfsetospeed(&tty, B2400); break; case 1200: default: cfsetispeed(&tty, B1200); cfsetospeed(&tty, B1200); } if (tcsetattr(rodent.mfd, TCSADRAIN, &tty) < 0) { logwarn("unable to set status of mouse fd"); return; } switch (new) { case 9600: c = "*q"; cfsetispeed(&tty, B9600); cfsetospeed(&tty, B9600); break; case 4800: c = "*p"; cfsetispeed(&tty, B4800); cfsetospeed(&tty, B4800); break; case 2400: c = "*o"; cfsetispeed(&tty, B2400); cfsetospeed(&tty, B2400); break; case 1200: default: c = "*n"; cfsetispeed(&tty, B1200); cfsetospeed(&tty, B1200); } if (rodent.rtype == MOUSE_PROTO_LOGIMOUSEMAN || rodent.rtype == MOUSE_PROTO_LOGI) { if (write(rodent.mfd, c, 2) != 2) { logwarn("unable to write to mouse fd"); return; } } usleep(100000); if (tcsetattr(rodent.mfd, TCSADRAIN, &tty) < 0) logwarn("unable to set status of mouse fd"); } /* * PnP COM device support * * It's a simplistic implementation, but it works :-) * KY, 31/7/97. */ /* * Try to elicit a PnP ID as described in * Microsoft, Hayes: "Plug and Play External COM Device Specification, * rev 1.00", 1995. * * The routine does not fully implement the COM Enumerator as par Section * 2.1 of the document. In particular, we don't have idle state in which * the driver software monitors the com port for dynamic connection or - * removal of a device at the port, because `moused' simply quits if no + * removal of a device at the port, because `msconvd' simply quits if no * device is found. * * In addition, as PnP COM device enumeration procedure slightly has * changed since its first publication, devices which follow earlier * revisions of the above spec. may fail to respond if the rev 1.0 * procedure is used. XXX */ -static int +static bool pnpwakeup1(void) { struct timeval timeout; fd_set fds; int i; /* * This is the procedure described in rev 1.0 of PnP COM device spec. * Unfortunately, some devices which comform to earlier revisions of * the spec gets confused and do not return the ID string... */ debug("PnP COM device rev 1.0 probe..."); /* port initialization (2.1.2) */ ioctl(rodent.mfd, TIOCMGET, &i); i |= TIOCM_DTR; /* DTR = 1 */ i &= ~TIOCM_RTS; /* RTS = 0 */ ioctl(rodent.mfd, TIOCMSET, &i); usleep(240000); /* * The PnP COM device spec. dictates that the mouse must set DSR * in response to DTR (by hardware or by software) and that if DSR is * not asserted, the host computer should think that there is no device * at this serial port. But some mice just don't do that... */ ioctl(rodent.mfd, TIOCMGET, &i); debug("modem status 0%o", i); if ((i & TIOCM_DSR) == 0) - return (FALSE); + return (false); /* port setup, 1st phase (2.1.3) */ setmousespeed(1200, 1200, (CS7 | CREAD | CLOCAL | HUPCL)); i = TIOCM_DTR | TIOCM_RTS; /* DTR = 0, RTS = 0 */ ioctl(rodent.mfd, TIOCMBIC, &i); usleep(240000); i = TIOCM_DTR; /* DTR = 1, RTS = 0 */ ioctl(rodent.mfd, TIOCMBIS, &i); usleep(240000); /* wait for response, 1st phase (2.1.4) */ i = FREAD; ioctl(rodent.mfd, TIOCFLUSH, &i); i = TIOCM_RTS; /* DTR = 1, RTS = 1 */ ioctl(rodent.mfd, TIOCMBIS, &i); /* try to read something */ FD_ZERO(&fds); FD_SET(rodent.mfd, &fds); timeout.tv_sec = 0; timeout.tv_usec = 240000; if (select(FD_SETSIZE, &fds, NULL, NULL, &timeout) > 0) { debug("pnpwakeup1(): valid response in first phase."); - return (TRUE); + return (true); } /* port setup, 2nd phase (2.1.5) */ i = TIOCM_DTR | TIOCM_RTS; /* DTR = 0, RTS = 0 */ ioctl(rodent.mfd, TIOCMBIC, &i); usleep(240000); /* wait for respose, 2nd phase (2.1.6) */ i = FREAD; ioctl(rodent.mfd, TIOCFLUSH, &i); i = TIOCM_DTR | TIOCM_RTS; /* DTR = 1, RTS = 1 */ ioctl(rodent.mfd, TIOCMBIS, &i); /* try to read something */ FD_ZERO(&fds); FD_SET(rodent.mfd, &fds); timeout.tv_sec = 0; timeout.tv_usec = 240000; if (select(FD_SETSIZE, &fds, NULL, NULL, &timeout) > 0) { debug("pnpwakeup1(): valid response in second phase."); - return (TRUE); + return (true); } - return (FALSE); + return (false); } -static int +static bool pnpwakeup2(void) { struct timeval timeout; fd_set fds; int i; /* * This is a simplified procedure; it simply toggles RTS. */ debug("alternate probe..."); ioctl(rodent.mfd, TIOCMGET, &i); i |= TIOCM_DTR; /* DTR = 1 */ i &= ~TIOCM_RTS; /* RTS = 0 */ ioctl(rodent.mfd, TIOCMSET, &i); usleep(240000); setmousespeed(1200, 1200, (CS7 | CREAD | CLOCAL | HUPCL)); /* wait for respose */ i = FREAD; ioctl(rodent.mfd, TIOCFLUSH, &i); i = TIOCM_DTR | TIOCM_RTS; /* DTR = 1, RTS = 1 */ ioctl(rodent.mfd, TIOCMBIS, &i); /* try to read something */ FD_ZERO(&fds); FD_SET(rodent.mfd, &fds); timeout.tv_sec = 0; timeout.tv_usec = 240000; if (select(FD_SETSIZE, &fds, NULL, NULL, &timeout) > 0) { debug("pnpwakeup2(): valid response."); - return (TRUE); + return (true); } - return (FALSE); + return (false); } static int pnpgets(char *buf) { struct timeval timeout; fd_set fds; int begin; int i; char c; if (!pnpwakeup1() && !pnpwakeup2()) { /* * According to PnP spec, we should set DTR = 1 and RTS = 0 while - * in idle state. But, `moused' shall set DTR = RTS = 1 and proceed, + * in idle state. But, `msconvd' shall set DTR = RTS = 1 and proceed, * assuming there is something at the port even if it didn't * respond to the PnP enumeration procedure. */ i = TIOCM_DTR | TIOCM_RTS; /* DTR = 1, RTS = 1 */ ioctl(rodent.mfd, TIOCMBIS, &i); return (0); } /* collect PnP COM device ID (2.1.7) */ begin = -1; i = 0; usleep(240000); /* the mouse must send `Begin ID' within 200msec */ while (read(rodent.mfd, &c, 1) == 1) { /* we may see "M", or "M3..." before `Begin ID' */ buf[i++] = c; if ((c == 0x08) || (c == 0x28)) { /* Begin ID */ debug("begin-id %02x", c); begin = i - 1; break; } debug("%c %02x", c, c); if (i >= 256) break; } if (begin < 0) { /* we haven't seen `Begin ID' in time... */ goto connect_idle; } ++c; /* make it `End ID' */ for (;;) { FD_ZERO(&fds); FD_SET(rodent.mfd, &fds); timeout.tv_sec = 0; timeout.tv_usec = 240000; if (select(FD_SETSIZE, &fds, NULL, NULL, &timeout) <= 0) break; read(rodent.mfd, &buf[i], 1); if (buf[i++] == c) /* End ID */ break; if (i >= 256) break; } if (begin > 0) { i -= begin; bcopy(&buf[begin], &buf[0], i); } /* string may not be human readable... */ debug("len:%d, '%-*.*s'", i, i, i, buf); if (buf[i - 1] == c) return (i); /* a valid PnP string */ /* * According to PnP spec, we should set DTR = 1 and RTS = 0 while - * in idle state. But, `moused' shall leave the modem control lines + * in idle state. But, `msconvd' shall leave the modem control lines * as they are. See above. */ connect_idle: /* we may still have something in the buffer */ return (MAX(i, 0)); } -static int +static bool pnpparse(pnpid_t *id, char *buf, int len) { char s[3]; int offset; int sum = 0; int i, j; id->revision = 0; id->eisaid = NULL; id->serial = NULL; id->class = NULL; id->compat = NULL; id->description = NULL; id->neisaid = 0; id->nserial = 0; id->nclass = 0; id->ncompat = 0; id->ndescription = 0; if ((buf[0] != 0x28) && (buf[0] != 0x08)) { /* non-PnP mice */ switch(buf[0]) { default: - return (FALSE); + return (false); case 'M': /* Microsoft */ id->eisaid = "PNP0F01"; break; case 'H': /* MouseSystems */ id->eisaid = "PNP0F04"; break; } id->neisaid = strlen(id->eisaid); id->class = "MOUSE"; id->nclass = strlen(id->class); debug("non-PnP mouse '%c'", buf[0]); - return (TRUE); + return (true); } /* PnP mice */ offset = 0x28 - buf[0]; /* calculate checksum */ for (i = 0; i < len - 3; ++i) { sum += buf[i]; buf[i] += offset; } sum += buf[len - 1]; for (; i < len; ++i) buf[i] += offset; debug("PnP ID string: '%*.*s'", len, len, buf); /* revision */ buf[1] -= offset; buf[2] -= offset; id->revision = ((buf[1] & 0x3f) << 6) | (buf[2] & 0x3f); debug("PnP rev %d.%02d", id->revision / 100, id->revision % 100); /* EISA vendor and product ID */ id->eisaid = &buf[3]; id->neisaid = 7; /* option strings */ i = 10; if (buf[i] == '\\') { /* device serial # */ for (j = ++i; i < len; ++i) { if (buf[i] == '\\') break; } if (i >= len) i -= 3; if (i - j == 8) { id->serial = &buf[j]; id->nserial = 8; } } if (buf[i] == '\\') { /* PnP class */ for (j = ++i; i < len; ++i) { if (buf[i] == '\\') break; } if (i >= len) i -= 3; if (i > j + 1) { id->class = &buf[j]; id->nclass = i - j; } } if (buf[i] == '\\') { /* compatible driver */ for (j = ++i; i < len; ++i) { if (buf[i] == '\\') break; } /* * PnP COM spec prior to v0.96 allowed '*' in this field, * it's not allowed now; just ignore it. */ if (buf[j] == '*') ++j; if (i >= len) i -= 3; if (i > j + 1) { id->compat = &buf[j]; id->ncompat = i - j; } } if (buf[i] == '\\') { /* product description */ for (j = ++i; i < len; ++i) { if (buf[i] == ';') break; } if (i >= len) i -= 3; if (i > j + 1) { id->description = &buf[j]; id->ndescription = i - j; } } /* checksum exists if there are any optional fields */ if ((id->nserial > 0) || (id->nclass > 0) || (id->ncompat > 0) || (id->ndescription > 0)) { debug("PnP checksum: 0x%X", sum); sprintf(s, "%02X", sum & 0x0ff); if (strncmp(s, &buf[len - 3], 2) != 0) { #if 0 /* * I found some mice do not comply with the PnP COM device * spec regarding checksum... XXX */ logwarnx("PnP checksum error", 0); - return (FALSE); + return (false); #endif } } - return (TRUE); + return (true); } static symtab_t * pnpproto(pnpid_t *id) { symtab_t *t; int i, j; if (id->nclass > 0) if (strncmp(id->class, "MOUSE", id->nclass) != 0 && strncmp(id->class, "TABLET", id->nclass) != 0) /* this is not a mouse! */ return (NULL); if (id->neisaid > 0) { t = gettoken(pnpprod, id->eisaid, id->neisaid); if (t->val != MOUSE_PROTO_UNKNOWN) return (t); } /* * The 'Compatible drivers' field may contain more than one * ID separated by ','. */ if (id->ncompat <= 0) return (NULL); for (i = 0; i < id->ncompat; ++i) { for (j = i; id->compat[i] != ','; ++i) if (i >= id->ncompat) break; if (i > j) { t = gettoken(pnpprod, id->compat + j, i - j); if (t->val != MOUSE_PROTO_UNKNOWN) return (t); } } return (NULL); } /* name/val mapping */ static symtab_t * gettoken(symtab_t *tab, const char *s, int len) { int i; for (i = 0; tab[i].name != NULL; ++i) { if (strncmp(tab[i].name, s, len) == 0) break; } return (&tab[i]); } static const char * gettokenname(symtab_t *tab, int val) { static const char unknown[] = "unknown"; int i; for (i = 0; tab[i].name != NULL; ++i) { if (tab[i].val == val) return (tab[i].name); } return (unknown); } +static int +gettokenval2(symtab_t *tab, int val) +{ + int i; + + for (i = 0; tab[i].name != NULL; ++i) { + if (tab[i].val == val) + return (tab[i].val2); + } + return (0); +} + /* * code to read from the Genius Kidspad tablet. The tablet responds to the COM PnP protocol 1.0 with EISA-ID KYE0005, and to pre-pnp probes (RTS toggle) with 'T' (tablet ?) 9600, 8 bit, parity odd. The tablet puts out 5 bytes. b0 (mask 0xb8, value 0xb8) contains the proximity, tip and button info: (byte0 & 0x1) true = tip pressed (byte0 & 0x2) true = button pressed (byte0 & 0x40) false = pen in proximity of tablet. The next 4 bytes are used for coordinates xl, xh, yl, yh (7 bits valid). Only absolute coordinates are returned, so we use the following approach: we store the last coordinates sent when the pen went out of the tablet, * */ typedef enum { S_IDLE, S_PROXY, S_FIRST, S_DOWN, S_UP } k_status; static int kidspad(u_char rxc, mousestatus_t *act) { static int buf[5]; static int buflen = 0, b_prev = 0 , x_prev = -1, y_prev = -1; static k_status status = S_IDLE; static struct timespec now; int x, y; if (buflen > 0 && (rxc & 0x80)) { fprintf(stderr, "invalid code %d 0x%x\n", buflen, rxc); buflen = 0; } if (buflen == 0 && (rxc & 0xb8) != 0xb8) { fprintf(stderr, "invalid code 0 0x%x\n", rxc); return (0); /* invalid code, no action */ } buf[buflen++] = rxc; if (buflen < 5) return (0); buflen = 0; /* for next time... */ x = buf[1]+128*(buf[2] - 7); if (x < 0) x = 0; y = 28*128 - (buf[3] + 128* (buf[4] - 7)); if (y < 0) y = 0; x /= 8; y /= 8; act->flags = 0; act->obutton = act->button; act->dx = act->dy = act->dz = 0; clock_gettime(CLOCK_MONOTONIC_FAST, &now); if (buf[0] & 0x40) /* pen went out of reach */ status = S_IDLE; else if (status == S_IDLE) { /* pen is newly near the tablet */ act->flags |= MOUSE_POSCHANGED; /* force update */ status = S_PROXY; x_prev = x; y_prev = y; } act->dx = x - x_prev; act->dy = y - y_prev; if (act->dx || act->dy) act->flags |= MOUSE_POSCHANGED; x_prev = x; y_prev = y; if (b_prev != 0 && b_prev != buf[0]) { /* possibly record button change */ act->button = 0; if (buf[0] & 0x01) /* tip pressed */ act->button |= MOUSE_BUTTON1DOWN; if (buf[0] & 0x02) /* button pressed */ act->button |= MOUSE_BUTTON2DOWN; act->flags |= MOUSE_BUTTONSCHANGED; } b_prev = buf[0]; return (act->flags); } static int gtco_digipad (u_char rxc, mousestatus_t *act) { static u_char buf[5]; static int buflen = 0, b_prev = 0 , x_prev = -1, y_prev = -1; static k_status status = S_IDLE; int x, y; #define GTCO_HEADER 0x80 #define GTCO_PROXIMITY 0x40 #define GTCO_START (GTCO_HEADER|GTCO_PROXIMITY) #define GTCO_BUTTONMASK 0x3c if (buflen > 0 && ((rxc & GTCO_HEADER) != GTCO_HEADER)) { fprintf(stderr, "invalid code %d 0x%x\n", buflen, rxc); buflen = 0; } if (buflen == 0 && (rxc & GTCO_START) != GTCO_START) { fprintf(stderr, "invalid code 0 0x%x\n", rxc); return (0); /* invalid code, no action */ } buf[buflen++] = rxc; if (buflen < 5) return (0); buflen = 0; /* for next time... */ x = ((buf[2] & ~GTCO_START) << 6 | (buf[1] & ~GTCO_START)); y = 4768 - ((buf[4] & ~GTCO_START) << 6 | (buf[3] & ~GTCO_START)); x /= 2.5; y /= 2.5; act->flags = 0; act->obutton = act->button; act->dx = act->dy = act->dz = 0; if ((buf[0] & 0x40) == 0) /* pen went out of reach */ status = S_IDLE; else if (status == S_IDLE) { /* pen is newly near the tablet */ act->flags |= MOUSE_POSCHANGED; /* force update */ status = S_PROXY; x_prev = x; y_prev = y; } act->dx = x - x_prev; act->dy = y - y_prev; if (act->dx || act->dy) act->flags |= MOUSE_POSCHANGED; x_prev = x; y_prev = y; /* possibly record button change */ if (b_prev != 0 && b_prev != buf[0]) { act->button = 0; if (buf[0] & 0x04) { /* tip pressed/yellow */ act->button |= MOUSE_BUTTON1DOWN; } if (buf[0] & 0x08) { /* grey/white */ act->button |= MOUSE_BUTTON2DOWN; } if (buf[0] & 0x10) { /* black/green */ act->button |= MOUSE_BUTTON3DOWN; } if (buf[0] & 0x20) { /* tip+grey/blue */ act->button |= MOUSE_BUTTON4DOWN; } act->flags |= MOUSE_BUTTONSCHANGED; } b_prev = buf[0]; return (act->flags); } static void mremote_serversetup(void) { struct sockaddr_un ad; /* Open a UNIX domain stream socket to listen for mouse remote clients */ unlink(_PATH_MOUSEREMOTE); if ((rodent.mremsfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) logerrx(1, "unable to create unix domain socket %s",_PATH_MOUSEREMOTE); umask(0111); bzero(&ad, sizeof(ad)); ad.sun_family = AF_UNIX; strcpy(ad.sun_path, _PATH_MOUSEREMOTE); #ifndef SUN_LEN #define SUN_LEN(unp) (((char *)(unp)->sun_path - (char *)(unp)) + \ strlen((unp)->path)) #endif if (bind(rodent.mremsfd, (struct sockaddr *) &ad, SUN_LEN(&ad)) < 0) logerrx(1, "unable to bind unix domain socket %s", _PATH_MOUSEREMOTE); listen(rodent.mremsfd, 1); } static void -mremote_clientchg(int add) +mremote_clientchg(bool add) { struct sockaddr_un ad; socklen_t ad_len; int fd; if (rodent.rtype != MOUSE_PROTO_X10MOUSEREM) return; if (add) { /* Accept client connection, if we don't already have one */ ad_len = sizeof(ad); fd = accept(rodent.mremsfd, (struct sockaddr *) &ad, &ad_len); if (fd < 0) logwarnx("failed accept on mouse remote socket"); if (rodent.mremcfd < 0) { rodent.mremcfd = fd; debug("remote client connect...accepted"); } else { close(fd); debug("another remote client connect...disconnected"); } } else { /* Client disconnected */ debug("remote client disconnected"); close(rodent.mremcfd); rodent.mremcfd = -1; } }