summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2015-08-26 15:12:02 -0300
committerRenato Botelho <renato@netgate.com>2015-08-26 15:12:02 -0300
commit03b19a93f4d8d870507ee96121cee4acd748dd2a (patch)
tree71a34e9e7e73d13de21cb4ad831799fb10c30df4
parent7f410a121522c5d0e2660256ae50c1fde1df3645 (diff)
parent30ce58ac1ea27b758d5112cb5a3b190c9760f010 (diff)
downloadpfsense-03b19a93f4d8d870507ee96121cee4acd748dd2a.zip
pfsense-03b19a93f4d8d870507ee96121cee4acd748dd2a.tar.gz
Merge branch 'master' into bootstrap
-rw-r--r--.gitignore3
-rw-r--r--build.conf.sample81
-rwxr-xr-xbuild.sh373
-rw-r--r--src/cf/conf/trigger_initial_wizard (renamed from cf/conf/trigger_initial_wizard)0
-rw-r--r--src/conf.default/config.xml (renamed from conf.default/config.xml)0
-rw-r--r--src/etc/ascii-art/pfsense-logo-small.txt (renamed from etc/ascii-art/pfsense-logo-small.txt)0
-rw-r--r--src/etc/bogons (renamed from etc/bogons)0
-rw-r--r--src/etc/bogonsv6 (renamed from etc/bogonsv6)0
-rw-r--r--src/etc/ca_countries (renamed from etc/ca_countries)0
-rw-r--r--src/etc/crontab (renamed from etc/crontab)0
-rw-r--r--src/etc/ddb.conf (renamed from etc/ddb.conf)0
-rw-r--r--src/etc/devd.conf (renamed from etc/devd.conf)0
-rw-r--r--src/etc/dh-parameters.1024 (renamed from etc/dh-parameters.1024)0
-rw-r--r--src/etc/dh-parameters.2048 (renamed from etc/dh-parameters.2048)0
-rw-r--r--src/etc/dh-parameters.4096 (renamed from etc/dh-parameters.4096)0
-rw-r--r--src/etc/disktab (renamed from etc/disktab)0
-rwxr-xr-xsrc/etc/ecl.php (renamed from etc/ecl.php)0
-rw-r--r--src/etc/fbtab (renamed from etc/fbtab)0
-rw-r--r--src/etc/gettytab (renamed from etc/gettytab)0
-rw-r--r--src/etc/group (renamed from etc/group)0
-rw-r--r--src/etc/host.conf (renamed from etc/host.conf)0
-rw-r--r--src/etc/hosts.allow (renamed from etc/hosts.allow)0
-rw-r--r--src/etc/inc/CHAP.inc (renamed from etc/inc/CHAP.inc)0
-rw-r--r--src/etc/inc/IPv6.inc (renamed from etc/inc/IPv6.inc)0
-rw-r--r--src/etc/inc/PEAR.inc (renamed from etc/inc/PEAR.inc)0
-rw-r--r--src/etc/inc/auth.inc (renamed from etc/inc/auth.inc)0
-rw-r--r--src/etc/inc/authgui.inc (renamed from etc/inc/authgui.inc)0
-rw-r--r--src/etc/inc/basic_sasl_client.inc (renamed from etc/inc/basic_sasl_client.inc)0
-rw-r--r--src/etc/inc/captiveportal.inc (renamed from etc/inc/captiveportal.inc)11
-rw-r--r--src/etc/inc/certs.inc (renamed from etc/inc/certs.inc)0
-rw-r--r--src/etc/inc/config.console.inc (renamed from etc/inc/config.console.inc)0
-rw-r--r--src/etc/inc/config.gui.inc (renamed from etc/inc/config.gui.inc)0
-rw-r--r--src/etc/inc/config.inc (renamed from etc/inc/config.inc)0
-rw-r--r--src/etc/inc/config.lib.inc (renamed from etc/inc/config.lib.inc)0
-rw-r--r--src/etc/inc/cram_md5_sasl_client.inc (renamed from etc/inc/cram_md5_sasl_client.inc)0
-rw-r--r--src/etc/inc/crypt.inc (renamed from etc/inc/crypt.inc)0
-rw-r--r--src/etc/inc/digest_sasl_client.inc (renamed from etc/inc/digest_sasl_client.inc)0
-rw-r--r--src/etc/inc/dot.hushlogin (renamed from etc/inc/dot.hushlogin)0
-rw-r--r--src/etc/inc/dyndns.class (renamed from etc/inc/dyndns.class)0
-rw-r--r--src/etc/inc/easyrule.inc (renamed from etc/inc/easyrule.inc)0
-rw-r--r--src/etc/inc/filter.inc (renamed from etc/inc/filter.inc)0
-rw-r--r--src/etc/inc/filter_log.inc (renamed from etc/inc/filter_log.inc)0
-rw-r--r--src/etc/inc/functions.inc (renamed from etc/inc/functions.inc)0
-rw-r--r--src/etc/inc/globals.inc (renamed from etc/inc/globals.inc)2
-rw-r--r--src/etc/inc/gmirror.inc (renamed from etc/inc/gmirror.inc)0
-rw-r--r--src/etc/inc/growl.class (renamed from etc/inc/growl.class)0
-rw-r--r--src/etc/inc/gwlb.inc (renamed from etc/inc/gwlb.inc)0
-rw-r--r--src/etc/inc/interfaces.inc (renamed from etc/inc/interfaces.inc)0
-rw-r--r--src/etc/inc/ipsec.attributes.php (renamed from etc/inc/ipsec.attributes.php)0
-rwxr-xr-xsrc/etc/inc/ipsec.auth-user.php (renamed from etc/inc/ipsec.auth-user.php)0
-rw-r--r--src/etc/inc/ipsec.inc (renamed from etc/inc/ipsec.inc)0
-rw-r--r--src/etc/inc/itemid.inc (renamed from etc/inc/itemid.inc)0
-rw-r--r--src/etc/inc/led.inc (renamed from etc/inc/led.inc)0
-rw-r--r--src/etc/inc/login_sasl_client.inc (renamed from etc/inc/login_sasl_client.inc)0
-rw-r--r--src/etc/inc/meta.inc (renamed from etc/inc/meta.inc)0
-rw-r--r--src/etc/inc/notices.inc (renamed from etc/inc/notices.inc)0
-rw-r--r--src/etc/inc/ntlm_sasl_client.inc (renamed from etc/inc/ntlm_sasl_client.inc)0
-rw-r--r--src/etc/inc/openvpn.attributes.php (renamed from etc/inc/openvpn.attributes.php)0
-rw-r--r--src/etc/inc/openvpn.auth-user.php (renamed from etc/inc/openvpn.auth-user.php)0
-rw-r--r--src/etc/inc/openvpn.inc (renamed from etc/inc/openvpn.inc)0
-rw-r--r--src/etc/inc/openvpn.tls-verify.php (renamed from etc/inc/openvpn.tls-verify.php)0
-rw-r--r--src/etc/inc/pfsense-utils.inc (renamed from etc/inc/pfsense-utils.inc)0
-rw-r--r--src/etc/inc/pkg-utils.inc (renamed from etc/inc/pkg-utils.inc)0
-rw-r--r--src/etc/inc/plain_sasl_client.inc (renamed from etc/inc/plain_sasl_client.inc)0
-rw-r--r--src/etc/inc/priv.defs.inc (renamed from etc/inc/priv.defs.inc)0
-rw-r--r--src/etc/inc/priv.inc (renamed from etc/inc/priv.inc)0
-rw-r--r--src/etc/inc/priv/user.priv.inc (renamed from etc/inc/priv/user.priv.inc)0
-rw-r--r--src/etc/inc/r53.class (renamed from etc/inc/r53.class)0
-rw-r--r--src/etc/inc/radius.inc (renamed from etc/inc/radius.inc)0
-rw-r--r--src/etc/inc/rrd.inc (renamed from etc/inc/rrd.inc)0
-rw-r--r--src/etc/inc/sasl.inc (renamed from etc/inc/sasl.inc)0
-rw-r--r--src/etc/inc/service-utils.inc (renamed from etc/inc/service-utils.inc)0
-rw-r--r--src/etc/inc/services.inc (renamed from etc/inc/services.inc)0
-rw-r--r--src/etc/inc/shaper.inc (renamed from etc/inc/shaper.inc)0
-rw-r--r--src/etc/inc/simplepie/LICENSE.txt (renamed from etc/inc/simplepie/LICENSE.txt)0
-rw-r--r--src/etc/inc/simplepie/simplepie.inc (renamed from etc/inc/simplepie/simplepie.inc)0
-rw-r--r--src/etc/inc/smtp.inc (renamed from etc/inc/smtp.inc)0
-rw-r--r--src/etc/inc/system.inc (renamed from etc/inc/system.inc)0
-rw-r--r--src/etc/inc/unbound.inc (renamed from etc/inc/unbound.inc)0
-rw-r--r--src/etc/inc/upgrade_config.inc (renamed from etc/inc/upgrade_config.inc)9
-rw-r--r--src/etc/inc/util.inc (renamed from etc/inc/util.inc)0
-rw-r--r--src/etc/inc/uuid.php (renamed from etc/inc/uuid.php)0
-rw-r--r--src/etc/inc/voucher.inc (renamed from etc/inc/voucher.inc)0
-rw-r--r--src/etc/inc/vpn.inc (renamed from etc/inc/vpn.inc)0
-rw-r--r--src/etc/inc/vslb.inc (renamed from etc/inc/vslb.inc)0
-rw-r--r--src/etc/inc/wizardapp.inc (renamed from etc/inc/wizardapp.inc)0
-rw-r--r--src/etc/inc/xmlparse.inc (renamed from etc/inc/xmlparse.inc)0
-rw-r--r--src/etc/inc/xmlparse_attr.inc (renamed from etc/inc/xmlparse_attr.inc)0
-rw-r--r--src/etc/inc/xmlreader.inc (renamed from etc/inc/xmlreader.inc)0
-rw-r--r--src/etc/inc/xmlrpc.inc (renamed from etc/inc/xmlrpc.inc)0
-rw-r--r--src/etc/inc/xmlrpc_client.inc (renamed from etc/inc/xmlrpc_client.inc)0
-rw-r--r--src/etc/inc/xmlrpc_server.inc (renamed from etc/inc/xmlrpc_server.inc)0
-rw-r--r--src/etc/inc/zeromq.inc (renamed from etc/inc/zeromq.inc)0
-rw-r--r--src/etc/inetd.conf (renamed from etc/inetd.conf)0
-rw-r--r--src/etc/login.conf (renamed from etc/login.conf)0
-rw-r--r--src/etc/master.passwd (renamed from etc/master.passwd)0
-rw-r--r--src/etc/motd (renamed from etc/motd)0
-rw-r--r--src/etc/mtree/BSD.local.dist (renamed from etc/mtree/BSD.local.dist)0
-rw-r--r--src/etc/networks (renamed from etc/networks)0
-rw-r--r--src/etc/passwd (renamed from etc/passwd)0
-rw-r--r--src/etc/pf.os (renamed from etc/pf.os)0
-rw-r--r--src/etc/pfSense.obsoletedfiles (renamed from etc/pfSense.obsoletedfiles)0
-rw-r--r--src/etc/phpshellsessions/changepassword (renamed from etc/phpshellsessions/changepassword)0
-rw-r--r--src/etc/phpshellsessions/disablecarp (renamed from etc/phpshellsessions/disablecarp)0
-rw-r--r--src/etc/phpshellsessions/disabledhcpd (renamed from etc/phpshellsessions/disabledhcpd)0
-rw-r--r--src/etc/phpshellsessions/disablereferercheck (renamed from etc/phpshellsessions/disablereferercheck)0
-rw-r--r--src/etc/phpshellsessions/enableallowallwan (renamed from etc/phpshellsessions/enableallowallwan)0
-rw-r--r--src/etc/phpshellsessions/enablecarp (renamed from etc/phpshellsessions/enablecarp)0
-rw-r--r--src/etc/phpshellsessions/enablesshd (renamed from etc/phpshellsessions/enablesshd)0
-rw-r--r--src/etc/phpshellsessions/externalconfiglocator (renamed from etc/phpshellsessions/externalconfiglocator)0
-rw-r--r--src/etc/phpshellsessions/generateguicert (renamed from etc/phpshellsessions/generateguicert)0
-rw-r--r--src/etc/phpshellsessions/gitsync (renamed from etc/phpshellsessions/gitsync)0
-rw-r--r--src/etc/phpshellsessions/installpkg (renamed from etc/phpshellsessions/installpkg)0
-rw-r--r--src/etc/phpshellsessions/listpkg (renamed from etc/phpshellsessions/listpkg)0
-rw-r--r--src/etc/phpshellsessions/removepkgconfig (renamed from etc/phpshellsessions/removepkgconfig)0
-rw-r--r--src/etc/phpshellsessions/removeshaper (renamed from etc/phpshellsessions/removeshaper)0
-rw-r--r--src/etc/phpshellsessions/restartdhcpd (renamed from etc/phpshellsessions/restartdhcpd)0
-rw-r--r--src/etc/phpshellsessions/restartipsec (renamed from etc/phpshellsessions/restartipsec)0
-rw-r--r--src/etc/phpshellsessions/svc (renamed from etc/phpshellsessions/svc)0
-rw-r--r--src/etc/phpshellsessions/uninstallpkg (renamed from etc/phpshellsessions/uninstallpkg)0
-rw-r--r--src/etc/platform (renamed from etc/platform)0
-rw-r--r--src/etc/printcap (renamed from etc/printcap)0
-rw-r--r--src/etc/protocols (renamed from etc/protocols)0
-rw-r--r--src/etc/pubkey.pem (renamed from etc/pubkey.pem)0
-rwxr-xr-xsrc/etc/rc (renamed from etc/rc)0
-rwxr-xr-xsrc/etc/rc.backup_dhcpleases.sh (renamed from etc/rc.backup_dhcpleases.sh)0
-rwxr-xr-xsrc/etc/rc.backup_rrd.sh (renamed from etc/rc.backup_rrd.sh)0
-rwxr-xr-xsrc/etc/rc.banner (renamed from etc/rc.banner)0
-rwxr-xr-xsrc/etc/rc.bootup (renamed from etc/rc.bootup)0
-rwxr-xr-xsrc/etc/rc.captiveportal_configure (renamed from etc/rc.captiveportal_configure)0
-rwxr-xr-xsrc/etc/rc.captiveportal_configure_mac (renamed from etc/rc.captiveportal_configure_mac)0
-rwxr-xr-xsrc/etc/rc.carpbackup (renamed from etc/rc.carpbackup)0
-rwxr-xr-xsrc/etc/rc.carpmaster (renamed from etc/rc.carpmaster)0
-rwxr-xr-xsrc/etc/rc.cdrom (renamed from etc/rc.cdrom)0
-rw-r--r--src/etc/rc.conf (renamed from etc/rc.conf)0
-rwxr-xr-xsrc/etc/rc.conf_mount_ro (renamed from etc/rc.conf_mount_ro)0
-rwxr-xr-xsrc/etc/rc.conf_mount_rw (renamed from etc/rc.conf_mount_rw)0
-rwxr-xr-xsrc/etc/rc.create_full_backup (renamed from etc/rc.create_full_backup)0
-rwxr-xr-xsrc/etc/rc.d/etcmfs (renamed from etc/rc.d/etcmfs)0
-rwxr-xr-xsrc/etc/rc.d/hostid (renamed from etc/rc.d/hostid)0
-rwxr-xr-xsrc/etc/rc.d/varmfs (renamed from etc/rc.d/varmfs)0
-rwxr-xr-xsrc/etc/rc.dhclient_cron (renamed from etc/rc.dhclient_cron)0
-rwxr-xr-xsrc/etc/rc.disable_hdd_apm (renamed from etc/rc.disable_hdd_apm)0
-rwxr-xr-xsrc/etc/rc.dumpon (renamed from etc/rc.dumpon)0
-rwxr-xr-xsrc/etc/rc.dyndns.update (renamed from etc/rc.dyndns.update)0
-rwxr-xr-xsrc/etc/rc.embedded (renamed from etc/rc.embedded)0
-rwxr-xr-xsrc/etc/rc.expireaccounts (renamed from etc/rc.expireaccounts)0
-rwxr-xr-xsrc/etc/rc.filter_configure (renamed from etc/rc.filter_configure)0
-rwxr-xr-xsrc/etc/rc.filter_configure_sync (renamed from etc/rc.filter_configure_sync)0
-rwxr-xr-xsrc/etc/rc.filter_configure_xmlrpc (renamed from etc/rc.filter_configure_xmlrpc)0
-rwxr-xr-xsrc/etc/rc.filter_synchronize (renamed from etc/rc.filter_synchronize)0
-rwxr-xr-xsrc/etc/rc.firmware (renamed from etc/rc.firmware)0
-rwxr-xr-xsrc/etc/rc.firmware_auto (renamed from etc/rc.firmware_auto)0
-rwxr-xr-xsrc/etc/rc.halt (renamed from etc/rc.halt)0
-rwxr-xr-xsrc/etc/rc.initial (renamed from etc/rc.initial)0
-rwxr-xr-xsrc/etc/rc.initial.defaults (renamed from etc/rc.initial.defaults)0
-rwxr-xr-xsrc/etc/rc.initial.firmware_update (renamed from etc/rc.initial.firmware_update)0
-rwxr-xr-xsrc/etc/rc.initial.halt (renamed from etc/rc.initial.halt)0
-rwxr-xr-xsrc/etc/rc.initial.password (renamed from etc/rc.initial.password)0
-rwxr-xr-xsrc/etc/rc.initial.ping (renamed from etc/rc.initial.ping)0
-rwxr-xr-xsrc/etc/rc.initial.reboot (renamed from etc/rc.initial.reboot)0
-rwxr-xr-xsrc/etc/rc.initial.setlanip (renamed from etc/rc.initial.setlanip)0
-rwxr-xr-xsrc/etc/rc.initial.setports (renamed from etc/rc.initial.setports)0
-rwxr-xr-xsrc/etc/rc.initial.store_config_to_removable_device (renamed from etc/rc.initial.store_config_to_removable_device)0
-rwxr-xr-xsrc/etc/rc.initial.toggle_sshd (renamed from etc/rc.initial.toggle_sshd)0
-rwxr-xr-xsrc/etc/rc.interfaces_carp_configure (renamed from etc/rc.interfaces_carp_configure)0
-rwxr-xr-xsrc/etc/rc.interfaces_lan_configure (renamed from etc/rc.interfaces_lan_configure)0
-rwxr-xr-xsrc/etc/rc.interfaces_opt_configure (renamed from etc/rc.interfaces_opt_configure)0
-rwxr-xr-xsrc/etc/rc.interfaces_wan_configure (renamed from etc/rc.interfaces_wan_configure)0
-rwxr-xr-xsrc/etc/rc.kill_states (renamed from etc/rc.kill_states)0
-rwxr-xr-xsrc/etc/rc.linkup (renamed from etc/rc.linkup)0
-rwxr-xr-xsrc/etc/rc.nanobsd_switch_boot_slice (renamed from etc/rc.nanobsd_switch_boot_slice)0
-rwxr-xr-xsrc/etc/rc.newipsecdns (renamed from etc/rc.newipsecdns)0
-rwxr-xr-xsrc/etc/rc.newroutedns (renamed from etc/rc.newroutedns)0
-rwxr-xr-xsrc/etc/rc.newwanip (renamed from etc/rc.newwanip)0
-rwxr-xr-xsrc/etc/rc.newwanipv6 (renamed from etc/rc.newwanipv6)0
-rwxr-xr-xsrc/etc/rc.notify_message (renamed from etc/rc.notify_message)0
-rwxr-xr-xsrc/etc/rc.ntpdate (renamed from etc/rc.ntpdate)0
-rwxr-xr-xsrc/etc/rc.openvpn (renamed from etc/rc.openvpn)0
-rwxr-xr-xsrc/etc/rc.packages (renamed from etc/rc.packages)0
-rwxr-xr-xsrc/etc/rc.php-fpm_restart (renamed from etc/rc.php-fpm_restart)0
-rwxr-xr-xsrc/etc/rc.php_ini_setup (renamed from etc/rc.php_ini_setup)0
-rwxr-xr-xsrc/etc/rc.prunecaptiveportal (renamed from etc/rc.prunecaptiveportal)0
-rwxr-xr-xsrc/etc/rc.reboot (renamed from etc/rc.reboot)0
-rwxr-xr-xsrc/etc/rc.reload_all (renamed from etc/rc.reload_all)0
-rwxr-xr-xsrc/etc/rc.reload_interfaces (renamed from etc/rc.reload_interfaces)0
-rwxr-xr-xsrc/etc/rc.resolv_conf_generate (renamed from etc/rc.resolv_conf_generate)0
-rwxr-xr-xsrc/etc/rc.restart_webgui (renamed from etc/rc.restart_webgui)0
-rwxr-xr-xsrc/etc/rc.restore_config_backup (renamed from etc/rc.restore_config_backup)0
-rwxr-xr-xsrc/etc/rc.restore_full_backup (renamed from etc/rc.restore_full_backup)0
-rwxr-xr-xsrc/etc/rc.savecore (renamed from etc/rc.savecore)0
-rwxr-xr-xsrc/etc/rc.savevoucher (renamed from etc/rc.savevoucher)0
-rwxr-xr-xsrc/etc/rc.shutdown (renamed from etc/rc.shutdown)0
-rwxr-xr-xsrc/etc/rc.start_packages (renamed from etc/rc.start_packages)0
-rwxr-xr-xsrc/etc/rc.stop_packages (renamed from etc/rc.stop_packages)0
-rwxr-xr-xsrc/etc/rc.update_alias_url_data (renamed from etc/rc.update_alias_url_data)0
-rwxr-xr-xsrc/etc/rc.update_bogons.sh (renamed from etc/rc.update_bogons.sh)0
-rwxr-xr-xsrc/etc/rc.update_urltables (renamed from etc/rc.update_urltables)0
-rw-r--r--src/etc/services (renamed from etc/services)0
-rw-r--r--src/etc/shells (renamed from etc/shells)0
-rw-r--r--src/etc/skel/dot.profile (renamed from etc/skel/dot.profile)0
-rw-r--r--src/etc/skel/dot.shrc (renamed from etc/skel/dot.shrc)0
-rw-r--r--src/etc/skel/dot.tcshrc (renamed from etc/skel/dot.tcshrc)0
-rw-r--r--src/etc/ssh/sshd_config (renamed from etc/ssh/sshd_config)0
-rwxr-xr-xsrc/etc/sshd (renamed from etc/sshd)0
-rw-r--r--src/etc/ssl/openssl.cnf (renamed from etc/ssl/openssl.cnf)0
-rw-r--r--src/etc/syslog.conf (renamed from etc/syslog.conf)0
-rw-r--r--src/etc/ttys (renamed from etc/ttys)0
-rw-r--r--src/etc/version (renamed from etc/version)0
-rw-r--r--src/home/.empty (renamed from home/.empty)0
-rw-r--r--src/root/.gitsync_merge.sample (renamed from root/.gitsync_merge.sample)0
-rw-r--r--src/root/.hushlogin (renamed from root/.hushlogin)0
-rw-r--r--src/root/.profile (renamed from root/.profile)0
-rw-r--r--src/root/.shrc (renamed from root/.shrc)0
-rw-r--r--src/root/.tcshrc (renamed from root/.tcshrc)0
-rwxr-xr-xsrc/sbin/athctrl.sh (renamed from sbin/athctrl.sh)0
-rwxr-xr-xsrc/sbin/dhclient-script (renamed from sbin/dhclient-script)0
-rwxr-xr-xsrc/usr/local/bin/3gstats.php (renamed from usr/local/bin/3gstats.php)0
-rwxr-xr-xsrc/usr/local/bin/beep.sh (renamed from usr/local/bin/beep.sh)0
-rw-r--r--src/usr/local/bin/captiveportal_gather_stats.php (renamed from usr/local/bin/captiveportal_gather_stats.php)0
-rwxr-xr-xsrc/usr/local/bin/easyrule (renamed from usr/local/bin/easyrule)0
-rwxr-xr-xsrc/usr/local/bin/filterparser.php (renamed from usr/local/bin/filterparser.php)0
-rwxr-xr-xsrc/usr/local/bin/mail.php (renamed from usr/local/bin/mail.php)0
-rwxr-xr-xsrc/usr/local/bin/ping_hosts.sh (renamed from usr/local/bin/ping_hosts.sh)0
-rwxr-xr-xsrc/usr/local/bin/runmsntp.sh (renamed from usr/local/bin/runmsntp.sh)0
-rwxr-xr-xsrc/usr/local/bin/slowdownpipe.sh (renamed from usr/local/bin/slowdownpipe.sh)0
-rwxr-xr-xsrc/usr/local/bin/viconfig (renamed from usr/local/bin/viconfig)0
-rw-r--r--src/usr/local/captiveportal/index.php (renamed from usr/local/captiveportal/index.php)19
-rw-r--r--src/usr/local/captiveportal/radius_accounting.inc (renamed from usr/local/captiveportal/radius_accounting.inc)0
-rw-r--r--src/usr/local/captiveportal/radius_authentication.inc (renamed from usr/local/captiveportal/radius_authentication.inc)0
l---------src/usr/local/openssl/openssl.cnf1
-rw-r--r--src/usr/local/pkg/miniupnpd.inc (renamed from usr/local/pkg/miniupnpd.inc)0
-rw-r--r--src/usr/local/pkg/miniupnpd.xml (renamed from usr/local/pkg/miniupnpd.xml)0
-rwxr-xr-xsrc/usr/local/sbin/cleargmirror.sh (renamed from usr/local/sbin/cleargmirror.sh)0
-rwxr-xr-xsrc/usr/local/sbin/cleargpt.sh (renamed from usr/local/sbin/cleargpt.sh)0
-rw-r--r--src/usr/local/sbin/gmirror_status_check.php (renamed from usr/local/sbin/gmirror_status_check.php)0
-rw-r--r--src/usr/local/sbin/mpd.script (renamed from usr/local/sbin/mpd.script)0
-rwxr-xr-xsrc/usr/local/sbin/ntpdate_sync_once.sh (renamed from usr/local/sbin/ntpdate_sync_once.sh)0
-rwxr-xr-xsrc/usr/local/sbin/openvpn.attributes.sh (renamed from usr/local/sbin/openvpn.attributes.sh)0
-rwxr-xr-xsrc/usr/local/sbin/ovpn-linkdown (renamed from usr/local/sbin/ovpn-linkdown)0
-rwxr-xr-xsrc/usr/local/sbin/ovpn-linkup (renamed from usr/local/sbin/ovpn-linkup)0
-rwxr-xr-xsrc/usr/local/sbin/ovpn_auth_verify (renamed from usr/local/sbin/ovpn_auth_verify)0
-rwxr-xr-xsrc/usr/local/sbin/pfSsh.php (renamed from usr/local/sbin/pfSsh.php)0
-rwxr-xr-xsrc/usr/local/sbin/ppp-linkdown (renamed from usr/local/sbin/ppp-linkdown)0
-rwxr-xr-xsrc/usr/local/sbin/ppp-linkup (renamed from usr/local/sbin/ppp-linkup)0
-rwxr-xr-xsrc/usr/local/sbin/ppp-log-uptime.sh (renamed from usr/local/sbin/ppp-log-uptime.sh)0
-rwxr-xr-xsrc/usr/local/sbin/ppp-uptime.sh (renamed from usr/local/sbin/ppp-uptime.sh)0
-rw-r--r--src/usr/local/sbin/prefixes.php (renamed from usr/local/sbin/prefixes.php)0
-rwxr-xr-xsrc/usr/local/sbin/show_filter_reload_status.php (renamed from usr/local/sbin/show_filter_reload_status.php)0
-rwxr-xr-xsrc/usr/local/sbin/ufslabels.sh (renamed from usr/local/sbin/ufslabels.sh)0
-rwxr-xr-xsrc/usr/local/sbin/vpn-linkdown (renamed from usr/local/sbin/vpn-linkdown)0
-rwxr-xr-xsrc/usr/local/sbin/vpn-linkup (renamed from usr/local/sbin/vpn-linkup)0
-rw-r--r--src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot (renamed from usr/local/share/locale/en/LC_MESSAGES/pfSense.pot)0
-rw-r--r--src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po (renamed from usr/local/share/locale/ja/LC_MESSAGES/pfSense.po)0
-rw-r--r--src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.mo (renamed from usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.mo)bin651246 -> 651246 bytes
-rw-r--r--src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po (renamed from usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po)0
-rw-r--r--src/usr/local/share/locale/tr/LC_MESSAGES/pfSense.mo (renamed from usr/local/share/locale/tr/LC_MESSAGES/pfSense.mo)bin578231 -> 578231 bytes
-rw-r--r--src/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po (renamed from usr/local/share/locale/tr/LC_MESSAGES/pfSense.po)0
-rwxr-xr-xsrc/usr/local/share/mobile-broadband-provider-info/iso_3166-1_list_en.xml (renamed from usr/local/share/mobile-broadband-provider-info/iso_3166-1_list_en.xml)0
-rw-r--r--src/usr/local/share/mobile-broadband-provider-info/serviceproviders.xml (renamed from usr/local/share/mobile-broadband-provider-info/serviceproviders.xml)0
-rw-r--r--src/usr/local/share/pbi-keys/pfSense-BETA.ssl (renamed from usr/local/share/pbi-keys/pfSense-BETA.ssl)0
-rwxr-xr-xsrc/usr/local/share/pfSense/post_upgrade_command (renamed from usr/local/share/pfSense/post_upgrade_command)0
-rwxr-xr-xsrc/usr/local/share/pfSense/post_upgrade_command.php (renamed from usr/local/share/pfSense/post_upgrade_command.php)0
-rw-r--r--src/usr/local/share/pfSense/pre_upgrade_command (renamed from usr/local/share/pfSense/pre_upgrade_command)0
-rw-r--r--src/usr/local/share/protocols/100bao.pat (renamed from usr/local/share/protocols/100bao.pat)0
-rw-r--r--src/usr/local/share/protocols/EAOrigin.pat (renamed from usr/local/share/protocols/EAOrigin.pat)0
-rw-r--r--src/usr/local/share/protocols/LICENSE (renamed from usr/local/share/protocols/LICENSE)0
-rw-r--r--src/usr/local/share/protocols/aim.pat (renamed from usr/local/share/protocols/aim.pat)0
-rw-r--r--src/usr/local/share/protocols/aimwebcontent.pat (renamed from usr/local/share/protocols/aimwebcontent.pat)0
-rw-r--r--src/usr/local/share/protocols/any.pat (renamed from usr/local/share/protocols/any.pat)0
-rw-r--r--src/usr/local/share/protocols/applejuice.pat (renamed from usr/local/share/protocols/applejuice.pat)0
-rw-r--r--src/usr/local/share/protocols/ares.pat (renamed from usr/local/share/protocols/ares.pat)0
-rw-r--r--src/usr/local/share/protocols/armagetron.pat (renamed from usr/local/share/protocols/armagetron.pat)0
-rw-r--r--src/usr/local/share/protocols/audiogalaxy.pat (renamed from usr/local/share/protocols/audiogalaxy.pat)0
-rw-r--r--src/usr/local/share/protocols/battlefield1942.pat (renamed from usr/local/share/protocols/battlefield1942.pat)0
-rw-r--r--src/usr/local/share/protocols/battlefield2.pat (renamed from usr/local/share/protocols/battlefield2.pat)0
-rw-r--r--src/usr/local/share/protocols/battlefield2142.pat (renamed from usr/local/share/protocols/battlefield2142.pat)0
-rw-r--r--src/usr/local/share/protocols/bgp.pat (renamed from usr/local/share/protocols/bgp.pat)0
-rw-r--r--src/usr/local/share/protocols/biff.pat (renamed from usr/local/share/protocols/biff.pat)0
-rw-r--r--src/usr/local/share/protocols/bittorrent.pat (renamed from usr/local/share/protocols/bittorrent.pat)0
-rw-r--r--src/usr/local/share/protocols/chikka.pat (renamed from usr/local/share/protocols/chikka.pat)0
-rw-r--r--src/usr/local/share/protocols/cimd.pat (renamed from usr/local/share/protocols/cimd.pat)0
-rw-r--r--src/usr/local/share/protocols/ciscovpn.pat (renamed from usr/local/share/protocols/ciscovpn.pat)0
-rw-r--r--src/usr/local/share/protocols/citrix.pat (renamed from usr/local/share/protocols/citrix.pat)0
-rw-r--r--src/usr/local/share/protocols/code_red.pat (renamed from usr/local/share/protocols/code_red.pat)0
-rw-r--r--src/usr/local/share/protocols/counterstrike-source.pat (renamed from usr/local/share/protocols/counterstrike-source.pat)0
-rw-r--r--src/usr/local/share/protocols/cvs.pat (renamed from usr/local/share/protocols/cvs.pat)0
-rw-r--r--src/usr/local/share/protocols/dayofdefeat-source.pat (renamed from usr/local/share/protocols/dayofdefeat-source.pat)0
-rw-r--r--src/usr/local/share/protocols/dazhihui.pat (renamed from usr/local/share/protocols/dazhihui.pat)0
-rw-r--r--src/usr/local/share/protocols/dhcp.pat (renamed from usr/local/share/protocols/dhcp.pat)0
-rw-r--r--src/usr/local/share/protocols/directconnect.pat (renamed from usr/local/share/protocols/directconnect.pat)0
-rw-r--r--src/usr/local/share/protocols/dns.pat (renamed from usr/local/share/protocols/dns.pat)0
-rw-r--r--src/usr/local/share/protocols/doom3.pat (renamed from usr/local/share/protocols/doom3.pat)0
-rw-r--r--src/usr/local/share/protocols/edonkey.pat (renamed from usr/local/share/protocols/edonkey.pat)0
-rw-r--r--src/usr/local/share/protocols/exe.pat (renamed from usr/local/share/protocols/exe.pat)0
-rw-r--r--src/usr/local/share/protocols/fasttrack.pat (renamed from usr/local/share/protocols/fasttrack.pat)0
-rw-r--r--src/usr/local/share/protocols/finger.pat (renamed from usr/local/share/protocols/finger.pat)0
-rw-r--r--src/usr/local/share/protocols/flash.pat (renamed from usr/local/share/protocols/flash.pat)0
-rw-r--r--src/usr/local/share/protocols/freenet.pat (renamed from usr/local/share/protocols/freenet.pat)0
-rw-r--r--src/usr/local/share/protocols/ftp.pat (renamed from usr/local/share/protocols/ftp.pat)0
-rw-r--r--src/usr/local/share/protocols/gif.pat (renamed from usr/local/share/protocols/gif.pat)0
-rw-r--r--src/usr/local/share/protocols/gkrellm.pat (renamed from usr/local/share/protocols/gkrellm.pat)0
-rw-r--r--src/usr/local/share/protocols/gnucleuslan.pat (renamed from usr/local/share/protocols/gnucleuslan.pat)0
-rw-r--r--src/usr/local/share/protocols/gnutella.pat (renamed from usr/local/share/protocols/gnutella.pat)0
-rw-r--r--src/usr/local/share/protocols/goboogy.pat (renamed from usr/local/share/protocols/goboogy.pat)0
-rw-r--r--src/usr/local/share/protocols/gopher.pat (renamed from usr/local/share/protocols/gopher.pat)0
-rw-r--r--src/usr/local/share/protocols/gtalk.pat (renamed from usr/local/share/protocols/gtalk.pat)0
-rw-r--r--src/usr/local/share/protocols/guildwars.pat (renamed from usr/local/share/protocols/guildwars.pat)0
-rw-r--r--src/usr/local/share/protocols/h323.pat (renamed from usr/local/share/protocols/h323.pat)0
-rw-r--r--src/usr/local/share/protocols/halflife2-deathmatch.pat (renamed from usr/local/share/protocols/halflife2-deathmatch.pat)0
-rw-r--r--src/usr/local/share/protocols/hddtemp.pat (renamed from usr/local/share/protocols/hddtemp.pat)0
-rw-r--r--src/usr/local/share/protocols/hotline.pat (renamed from usr/local/share/protocols/hotline.pat)0
-rw-r--r--src/usr/local/share/protocols/html.pat (renamed from usr/local/share/protocols/html.pat)0
-rw-r--r--src/usr/local/share/protocols/http-dap.pat (renamed from usr/local/share/protocols/http-dap.pat)0
-rw-r--r--src/usr/local/share/protocols/http-freshdownload.pat (renamed from usr/local/share/protocols/http-freshdownload.pat)0
-rw-r--r--src/usr/local/share/protocols/http-itunes.pat (renamed from usr/local/share/protocols/http-itunes.pat)0
-rw-r--r--src/usr/local/share/protocols/http-rtsp.pat (renamed from usr/local/share/protocols/http-rtsp.pat)0
-rw-r--r--src/usr/local/share/protocols/http.pat (renamed from usr/local/share/protocols/http.pat)0
-rw-r--r--src/usr/local/share/protocols/httpaudio.pat (renamed from usr/local/share/protocols/httpaudio.pat)0
-rw-r--r--src/usr/local/share/protocols/httpcachehit.pat (renamed from usr/local/share/protocols/httpcachehit.pat)0
-rw-r--r--src/usr/local/share/protocols/httpcachemiss.pat (renamed from usr/local/share/protocols/httpcachemiss.pat)0
-rw-r--r--src/usr/local/share/protocols/httpvideo.pat (renamed from usr/local/share/protocols/httpvideo.pat)0
-rw-r--r--src/usr/local/share/protocols/ident.pat (renamed from usr/local/share/protocols/ident.pat)0
-rw-r--r--src/usr/local/share/protocols/imap.pat (renamed from usr/local/share/protocols/imap.pat)0
-rw-r--r--src/usr/local/share/protocols/imesh.pat (renamed from usr/local/share/protocols/imesh.pat)0
-rw-r--r--src/usr/local/share/protocols/ipp.pat (renamed from usr/local/share/protocols/ipp.pat)0
-rw-r--r--src/usr/local/share/protocols/irc.pat (renamed from usr/local/share/protocols/irc.pat)0
-rw-r--r--src/usr/local/share/protocols/jabber.pat (renamed from usr/local/share/protocols/jabber.pat)0
-rw-r--r--src/usr/local/share/protocols/jpeg.pat (renamed from usr/local/share/protocols/jpeg.pat)0
-rw-r--r--src/usr/local/share/protocols/kugoo.pat (renamed from usr/local/share/protocols/kugoo.pat)0
-rw-r--r--src/usr/local/share/protocols/live365.pat (renamed from usr/local/share/protocols/live365.pat)0
-rw-r--r--src/usr/local/share/protocols/liveforspeed.pat (renamed from usr/local/share/protocols/liveforspeed.pat)0
-rw-r--r--src/usr/local/share/protocols/lpd.pat (renamed from usr/local/share/protocols/lpd.pat)0
-rw-r--r--src/usr/local/share/protocols/mohaa.pat (renamed from usr/local/share/protocols/mohaa.pat)0
-rw-r--r--src/usr/local/share/protocols/mp3.pat (renamed from usr/local/share/protocols/mp3.pat)0
-rw-r--r--src/usr/local/share/protocols/msn-filetransfer.pat (renamed from usr/local/share/protocols/msn-filetransfer.pat)0
-rw-r--r--src/usr/local/share/protocols/msnmessenger.pat (renamed from usr/local/share/protocols/msnmessenger.pat)0
-rw-r--r--src/usr/local/share/protocols/mute.pat (renamed from usr/local/share/protocols/mute.pat)0
-rw-r--r--src/usr/local/share/protocols/napster.pat (renamed from usr/local/share/protocols/napster.pat)0
-rw-r--r--src/usr/local/share/protocols/nbns.pat (renamed from usr/local/share/protocols/nbns.pat)0
-rw-r--r--src/usr/local/share/protocols/ncp.pat (renamed from usr/local/share/protocols/ncp.pat)0
-rw-r--r--src/usr/local/share/protocols/netbios.pat (renamed from usr/local/share/protocols/netbios.pat)0
-rw-r--r--src/usr/local/share/protocols/nimda.pat (renamed from usr/local/share/protocols/nimda.pat)0
-rw-r--r--src/usr/local/share/protocols/nntp.pat (renamed from usr/local/share/protocols/nntp.pat)0
-rw-r--r--src/usr/local/share/protocols/ntp.pat (renamed from usr/local/share/protocols/ntp.pat)0
-rw-r--r--src/usr/local/share/protocols/ogg.pat (renamed from usr/local/share/protocols/ogg.pat)0
-rw-r--r--src/usr/local/share/protocols/openft.pat (renamed from usr/local/share/protocols/openft.pat)0
-rw-r--r--src/usr/local/share/protocols/pcanywhere.pat (renamed from usr/local/share/protocols/pcanywhere.pat)0
-rw-r--r--src/usr/local/share/protocols/pdf.pat (renamed from usr/local/share/protocols/pdf.pat)0
-rw-r--r--src/usr/local/share/protocols/perl.pat (renamed from usr/local/share/protocols/perl.pat)0
-rw-r--r--src/usr/local/share/protocols/png.pat (renamed from usr/local/share/protocols/png.pat)0
-rw-r--r--src/usr/local/share/protocols/poco.pat (renamed from usr/local/share/protocols/poco.pat)0
-rw-r--r--src/usr/local/share/protocols/pop3.pat (renamed from usr/local/share/protocols/pop3.pat)0
-rw-r--r--src/usr/local/share/protocols/postscript.pat (renamed from usr/local/share/protocols/postscript.pat)0
-rw-r--r--src/usr/local/share/protocols/pplive.pat (renamed from usr/local/share/protocols/pplive.pat)0
-rw-r--r--src/usr/local/share/protocols/pressplay.pat (renamed from usr/local/share/protocols/pressplay.pat)0
-rw-r--r--src/usr/local/share/protocols/qq.pat (renamed from usr/local/share/protocols/qq.pat)0
-rw-r--r--src/usr/local/share/protocols/quake-halflife.pat (renamed from usr/local/share/protocols/quake-halflife.pat)0
-rw-r--r--src/usr/local/share/protocols/quake1.pat (renamed from usr/local/share/protocols/quake1.pat)0
-rw-r--r--src/usr/local/share/protocols/quicktime.pat (renamed from usr/local/share/protocols/quicktime.pat)0
-rw-r--r--src/usr/local/share/protocols/radmin.pat (renamed from usr/local/share/protocols/radmin.pat)0
-rw-r--r--src/usr/local/share/protocols/rar.pat (renamed from usr/local/share/protocols/rar.pat)0
-rw-r--r--src/usr/local/share/protocols/rdp.pat (renamed from usr/local/share/protocols/rdp.pat)0
-rw-r--r--src/usr/local/share/protocols/replaytv-ivs.pat (renamed from usr/local/share/protocols/replaytv-ivs.pat)0
-rw-r--r--src/usr/local/share/protocols/rlogin.pat (renamed from usr/local/share/protocols/rlogin.pat)0
-rw-r--r--src/usr/local/share/protocols/rpm.pat (renamed from usr/local/share/protocols/rpm.pat)0
-rw-r--r--src/usr/local/share/protocols/rtf.pat (renamed from usr/local/share/protocols/rtf.pat)0
-rw-r--r--src/usr/local/share/protocols/rtmp.pat (renamed from usr/local/share/protocols/rtmp.pat)0
-rw-r--r--src/usr/local/share/protocols/rtp.pat (renamed from usr/local/share/protocols/rtp.pat)0
-rw-r--r--src/usr/local/share/protocols/rtsp.pat (renamed from usr/local/share/protocols/rtsp.pat)0
-rw-r--r--src/usr/local/share/protocols/runesofmagic.pat (renamed from usr/local/share/protocols/runesofmagic.pat)0
-rw-r--r--src/usr/local/share/protocols/shoutcast.pat (renamed from usr/local/share/protocols/shoutcast.pat)0
-rw-r--r--src/usr/local/share/protocols/sip.pat (renamed from usr/local/share/protocols/sip.pat)0
-rw-r--r--src/usr/local/share/protocols/skypeout.pat (renamed from usr/local/share/protocols/skypeout.pat)0
-rw-r--r--src/usr/local/share/protocols/skypetoskype.pat (renamed from usr/local/share/protocols/skypetoskype.pat)0
-rw-r--r--src/usr/local/share/protocols/smb.pat (renamed from usr/local/share/protocols/smb.pat)0
-rw-r--r--src/usr/local/share/protocols/smtp.pat (renamed from usr/local/share/protocols/smtp.pat)0
-rw-r--r--src/usr/local/share/protocols/snmp-mon.pat (renamed from usr/local/share/protocols/snmp-mon.pat)0
-rw-r--r--src/usr/local/share/protocols/snmp-trap.pat (renamed from usr/local/share/protocols/snmp-trap.pat)0
-rw-r--r--src/usr/local/share/protocols/snmp.pat (renamed from usr/local/share/protocols/snmp.pat)0
-rw-r--r--src/usr/local/share/protocols/socks.pat (renamed from usr/local/share/protocols/socks.pat)0
-rw-r--r--src/usr/local/share/protocols/soribada.pat (renamed from usr/local/share/protocols/soribada.pat)0
-rw-r--r--src/usr/local/share/protocols/soulseek.pat (renamed from usr/local/share/protocols/soulseek.pat)0
-rw-r--r--src/usr/local/share/protocols/ssdp.pat (renamed from usr/local/share/protocols/ssdp.pat)0
-rw-r--r--src/usr/local/share/protocols/ssh.pat (renamed from usr/local/share/protocols/ssh.pat)0
-rw-r--r--src/usr/local/share/protocols/ssl.pat (renamed from usr/local/share/protocols/ssl.pat)0
-rw-r--r--src/usr/local/share/protocols/stun.pat (renamed from usr/local/share/protocols/stun.pat)0
-rw-r--r--src/usr/local/share/protocols/subspace.pat (renamed from usr/local/share/protocols/subspace.pat)0
-rw-r--r--src/usr/local/share/protocols/subversion.pat (renamed from usr/local/share/protocols/subversion.pat)0
-rw-r--r--src/usr/local/share/protocols/swf.pat (renamed from usr/local/share/protocols/swf.pat)0
-rw-r--r--src/usr/local/share/protocols/tar.pat (renamed from usr/local/share/protocols/tar.pat)0
-rw-r--r--src/usr/local/share/protocols/teamfortress2.pat (renamed from usr/local/share/protocols/teamfortress2.pat)0
-rw-r--r--src/usr/local/share/protocols/teamspeak.pat (renamed from usr/local/share/protocols/teamspeak.pat)0
-rw-r--r--src/usr/local/share/protocols/telnet.pat (renamed from usr/local/share/protocols/telnet.pat)0
-rw-r--r--src/usr/local/share/protocols/tesla.pat (renamed from usr/local/share/protocols/tesla.pat)0
-rw-r--r--src/usr/local/share/protocols/tftp.pat (renamed from usr/local/share/protocols/tftp.pat)0
-rw-r--r--src/usr/local/share/protocols/thecircle.pat (renamed from usr/local/share/protocols/thecircle.pat)0
-rw-r--r--src/usr/local/share/protocols/tonghuashun.pat (renamed from usr/local/share/protocols/tonghuashun.pat)0
-rw-r--r--src/usr/local/share/protocols/tor.pat (renamed from usr/local/share/protocols/tor.pat)0
-rw-r--r--src/usr/local/share/protocols/tsp.pat (renamed from usr/local/share/protocols/tsp.pat)0
-rw-r--r--src/usr/local/share/protocols/unset.pat (renamed from usr/local/share/protocols/unset.pat)0
-rw-r--r--src/usr/local/share/protocols/uucp.pat (renamed from usr/local/share/protocols/uucp.pat)0
-rw-r--r--src/usr/local/share/protocols/validcertssl.pat (renamed from usr/local/share/protocols/validcertssl.pat)0
-rw-r--r--src/usr/local/share/protocols/ventrilo.pat (renamed from usr/local/share/protocols/ventrilo.pat)0
-rw-r--r--src/usr/local/share/protocols/vnc.pat (renamed from usr/local/share/protocols/vnc.pat)0
-rw-r--r--src/usr/local/share/protocols/whois.pat (renamed from usr/local/share/protocols/whois.pat)0
-rw-r--r--src/usr/local/share/protocols/worldofwarcraft.pat (renamed from usr/local/share/protocols/worldofwarcraft.pat)0
-rw-r--r--src/usr/local/share/protocols/x11.pat (renamed from usr/local/share/protocols/x11.pat)0
-rw-r--r--src/usr/local/share/protocols/xboxlive.pat (renamed from usr/local/share/protocols/xboxlive.pat)0
-rw-r--r--src/usr/local/share/protocols/xunlei.pat (renamed from usr/local/share/protocols/xunlei.pat)0
-rw-r--r--src/usr/local/share/protocols/yahoo.pat (renamed from usr/local/share/protocols/yahoo.pat)0
-rw-r--r--src/usr/local/share/protocols/zip.pat (renamed from usr/local/share/protocols/zip.pat)0
-rw-r--r--src/usr/local/share/protocols/zmaap.pat (renamed from usr/local/share/protocols/zmaap.pat)0
-rw-r--r--src/usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf (renamed from usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf)bin60444 -> 60444 bytes
-rwxr-xr-xsrc/usr/local/www/apple-touch-icon.png (renamed from usr/local/www/apple-touch-icon.png)bin4068 -> 4068 bytes
-rwxr-xr-xsrc/usr/local/www/bandwidth_by_ip.php (renamed from usr/local/www/bandwidth_by_ip.php)0
-rw-r--r--src/usr/local/www/bootstrap/css/bootstrap-theme.min.css (renamed from usr/local/www/bootstrap/css/bootstrap-theme.min.css)0
-rw-r--r--src/usr/local/www/bootstrap/css/bootstrap.min.css (renamed from usr/local/www/bootstrap/css/bootstrap.min.css)0
-rw-r--r--src/usr/local/www/bootstrap/css/pfSense.css (renamed from usr/local/www/bootstrap/css/pfSense.css)0
-rw-r--r--src/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.css (renamed from usr/local/www/bootstrap/glyphicons/glyphicons-halflings.css)0
-rw-r--r--src/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.png (renamed from usr/local/www/bootstrap/glyphicons/glyphicons-halflings.png)bin12799 -> 12799 bytes
-rw-r--r--src/usr/local/www/bootstrap/js/bootstrap.min.js (renamed from usr/local/www/bootstrap/js/bootstrap.min.js)0
-rw-r--r--src/usr/local/www/carp_status.php (renamed from usr/local/www/carp_status.php)0
-rw-r--r--src/usr/local/www/classes/Form.class.php (renamed from usr/local/www/classes/Form.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/Button.class.php (renamed from usr/local/www/classes/Form/Button.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/Checkbox.class.php (renamed from usr/local/www/classes/Form/Checkbox.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/Element.class.php (renamed from usr/local/www/classes/Form/Element.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/Group.class.php (renamed from usr/local/www/classes/Form/Group.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/Input.class.php (renamed from usr/local/www/classes/Form/Input.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/IpAddress.class.php (renamed from usr/local/www/classes/Form/IpAddress.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/MultiCheckbox.class.php (renamed from usr/local/www/classes/Form/MultiCheckbox.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php (renamed from usr/local/www/classes/Form/MultiCheckboxGroup.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/Section.class.php (renamed from usr/local/www/classes/Form/Section.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/Select.class.php (renamed from usr/local/www/classes/Form/Select.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/StaticText.class.php (renamed from usr/local/www/classes/Form/StaticText.class.php)0
-rw-r--r--src/usr/local/www/classes/Form/Textarea.class.php (renamed from usr/local/www/classes/Form/Textarea.class.php)0
-rw-r--r--src/usr/local/www/classes/Modal.class.php (renamed from usr/local/www/classes/Modal.class.php)0
-rw-r--r--src/usr/local/www/copyright-master.txt (renamed from usr/local/www/copyright-master.txt)0
-rw-r--r--src/usr/local/www/crash_reporter.php (renamed from usr/local/www/crash_reporter.php)0
-rw-r--r--src/usr/local/www/csrf/csrf-magic.js (renamed from usr/local/www/csrf/csrf-magic.js)0
-rw-r--r--src/usr/local/www/csrf/csrf-magic.php (renamed from usr/local/www/csrf/csrf-magic.php)0
-rw-r--r--src/usr/local/www/d3pie/d3.min.js (renamed from usr/local/www/d3pie/d3.min.js)0
-rw-r--r--src/usr/local/www/d3pie/d3pie.min.js (renamed from usr/local/www/d3pie/d3pie.min.js)0
-rw-r--r--src/usr/local/www/diag_arp.php (renamed from usr/local/www/diag_arp.php)0
-rw-r--r--src/usr/local/www/diag_authentication.php (renamed from usr/local/www/diag_authentication.php)0
-rw-r--r--src/usr/local/www/diag_backup.php (renamed from usr/local/www/diag_backup.php)0
-rw-r--r--src/usr/local/www/diag_confbak.php (renamed from usr/local/www/diag_confbak.php)0
-rwxr-xr-xsrc/usr/local/www/diag_defaults.php (renamed from usr/local/www/diag_defaults.php)0
-rwxr-xr-xsrc/usr/local/www/diag_dns.php (renamed from usr/local/www/diag_dns.php)0
-rwxr-xr-xsrc/usr/local/www/diag_dump_states.php (renamed from usr/local/www/diag_dump_states.php)0
-rw-r--r--src/usr/local/www/diag_dump_states_sources.php (renamed from usr/local/www/diag_dump_states_sources.php)0
-rw-r--r--src/usr/local/www/diag_gmirror.php (renamed from usr/local/www/diag_gmirror.php)0
-rw-r--r--src/usr/local/www/diag_ipsec.php (renamed from usr/local/www/diag_ipsec.php)0
-rw-r--r--src/usr/local/www/diag_ipsec_leases.php (renamed from usr/local/www/diag_ipsec_leases.php)0
-rw-r--r--src/usr/local/www/diag_ipsec_sad.php (renamed from usr/local/www/diag_ipsec_sad.php)0
-rw-r--r--src/usr/local/www/diag_ipsec_spd.php (renamed from usr/local/www/diag_ipsec_spd.php)0
-rw-r--r--src/usr/local/www/diag_ipsec_xml.php (renamed from usr/local/www/diag_ipsec_xml.php)0
-rw-r--r--src/usr/local/www/diag_limiter_info.php (renamed from usr/local/www/diag_limiter_info.php)0
-rwxr-xr-xsrc/usr/local/www/diag_logs.php (renamed from usr/local/www/diag_logs.php)0
-rw-r--r--src/usr/local/www/diag_logs_filter.php (renamed from usr/local/www/diag_logs_filter.php)0
-rwxr-xr-xsrc/usr/local/www/diag_logs_filter_dynamic.php (renamed from usr/local/www/diag_logs_filter_dynamic.php)0
-rw-r--r--src/usr/local/www/diag_logs_filter_summary.php (renamed from usr/local/www/diag_logs_filter_summary.php)0
-rw-r--r--src/usr/local/www/diag_logs_settings.php (renamed from usr/local/www/diag_logs_settings.php)0
-rwxr-xr-xsrc/usr/local/www/diag_logs_vpn.php (renamed from usr/local/www/diag_logs_vpn.php)0
-rw-r--r--src/usr/local/www/diag_nanobsd.php (renamed from usr/local/www/diag_nanobsd.php)0
-rw-r--r--src/usr/local/www/diag_ndp.php (renamed from usr/local/www/diag_ndp.php)0
-rw-r--r--src/usr/local/www/diag_packet_capture.php (renamed from usr/local/www/diag_packet_capture.php)0
-rw-r--r--src/usr/local/www/diag_patterns.php (renamed from usr/local/www/diag_patterns.php)0
-rw-r--r--src/usr/local/www/diag_pf_info.php (renamed from usr/local/www/diag_pf_info.php)0
-rw-r--r--src/usr/local/www/diag_ping.php (renamed from usr/local/www/diag_ping.php)0
-rwxr-xr-xsrc/usr/local/www/diag_pkglogs.php (renamed from usr/local/www/diag_pkglogs.php)0
-rw-r--r--src/usr/local/www/diag_resetstate.php (renamed from usr/local/www/diag_resetstate.php)0
-rw-r--r--src/usr/local/www/diag_routes.php (renamed from usr/local/www/diag_routes.php)0
-rw-r--r--src/usr/local/www/diag_smart.php (renamed from usr/local/www/diag_smart.php)0
-rw-r--r--src/usr/local/www/diag_sockets.php (renamed from usr/local/www/diag_sockets.php)0
-rw-r--r--src/usr/local/www/diag_states_summary.php (renamed from usr/local/www/diag_states_summary.php)0
-rw-r--r--src/usr/local/www/diag_system_activity.php (renamed from usr/local/www/diag_system_activity.php)0
-rw-r--r--src/usr/local/www/diag_system_pftop.php (renamed from usr/local/www/diag_system_pftop.php)0
-rw-r--r--src/usr/local/www/diag_tables.php (renamed from usr/local/www/diag_tables.php)0
-rw-r--r--src/usr/local/www/diag_testport.php (renamed from usr/local/www/diag_testport.php)0
-rw-r--r--src/usr/local/www/diag_traceroute.php (renamed from usr/local/www/diag_traceroute.php)0
-rw-r--r--src/usr/local/www/easyrule.php (renamed from usr/local/www/easyrule.php)0
-rw-r--r--src/usr/local/www/edit.php (renamed from usr/local/www/edit.php)0
-rw-r--r--src/usr/local/www/exec.php (renamed from usr/local/www/exec.php)0
-rwxr-xr-xsrc/usr/local/www/favicon.icobin0 -> 1406 bytes
-rw-r--r--src/usr/local/www/fbegin.inc (renamed from usr/local/www/fbegin.inc)0
-rw-r--r--src/usr/local/www/fend.inc (renamed from usr/local/www/fend.inc)0
-rw-r--r--src/usr/local/www/filebrowser/browser.js (renamed from usr/local/www/filebrowser/browser.js)0
-rw-r--r--src/usr/local/www/filebrowser/browser.php (renamed from usr/local/www/filebrowser/browser.php)0
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_code.gif (renamed from usr/local/www/filebrowser/images/file_code.gif)bin610 -> 610 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_database.gif (renamed from usr/local/www/filebrowser/images/file_database.gif)bin621 -> 621 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_doc.gif (renamed from usr/local/www/filebrowser/images/file_doc.gif)bin1061 -> 1061 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_flash.gif (renamed from usr/local/www/filebrowser/images/file_flash.gif)bin627 -> 627 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_generic.gif (renamed from usr/local/www/filebrowser/images/file_generic.gif)bin1068 -> 1068 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_image.gif (renamed from usr/local/www/filebrowser/images/file_image.gif)bin608 -> 608 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_js.gif (renamed from usr/local/www/filebrowser/images/file_js.gif)bin1077 -> 1077 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_pdf.gif (renamed from usr/local/www/filebrowser/images/file_pdf.gif)bin603 -> 603 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_php.gif (renamed from usr/local/www/filebrowser/images/file_php.gif)bin603 -> 603 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_ppt.gif (renamed from usr/local/www/filebrowser/images/file_ppt.gif)bin1071 -> 1071 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_system.gif (renamed from usr/local/www/filebrowser/images/file_system.gif)bin601 -> 601 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_xls.gif (renamed from usr/local/www/filebrowser/images/file_xls.gif)bin1060 -> 1060 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/file_zip.gif (renamed from usr/local/www/filebrowser/images/file_zip.gif)bin612 -> 612 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/folder_generic.gif (renamed from usr/local/www/filebrowser/images/folder_generic.gif)bin996 -> 996 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/icon_cancel.gif (renamed from usr/local/www/filebrowser/images/icon_cancel.gif)bin1024 -> 1024 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/icon_contract.gif (renamed from usr/local/www/filebrowser/images/icon_contract.gif)bin599 -> 599 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/icon_expand.gif (renamed from usr/local/www/filebrowser/images/icon_expand.gif)bin613 -> 613 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/icon_home.gif (renamed from usr/local/www/filebrowser/images/icon_home.gif)bin1027 -> 1027 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/icon_left.gif (renamed from usr/local/www/filebrowser/images/icon_left.gif)bin306 -> 306 bytes
-rwxr-xr-xsrc/usr/local/www/filebrowser/images/icon_magnifier.gif (renamed from usr/local/www/filebrowser/images/icon_magnifier.gif)bin568 -> 568 bytes
-rw-r--r--src/usr/local/www/firewall_aliases.php (renamed from usr/local/www/firewall_aliases.php)0
-rwxr-xr-xsrc/usr/local/www/firewall_aliases_edit.php (renamed from usr/local/www/firewall_aliases_edit.php)0
-rwxr-xr-xsrc/usr/local/www/firewall_aliases_import.php (renamed from usr/local/www/firewall_aliases_import.php)0
-rw-r--r--src/usr/local/www/firewall_nat.php (renamed from usr/local/www/firewall_nat.php)0
-rw-r--r--src/usr/local/www/firewall_nat_1to1.php (renamed from usr/local/www/firewall_nat_1to1.php)0
-rw-r--r--src/usr/local/www/firewall_nat_1to1_edit.php (renamed from usr/local/www/firewall_nat_1to1_edit.php)0
-rw-r--r--src/usr/local/www/firewall_nat_edit.php (renamed from usr/local/www/firewall_nat_edit.php)0
-rw-r--r--src/usr/local/www/firewall_nat_npt.php (renamed from usr/local/www/firewall_nat_npt.php)0
-rw-r--r--src/usr/local/www/firewall_nat_npt_edit.php (renamed from usr/local/www/firewall_nat_npt_edit.php)0
-rw-r--r--src/usr/local/www/firewall_nat_out.php (renamed from usr/local/www/firewall_nat_out.php)0
-rw-r--r--src/usr/local/www/firewall_nat_out_edit.php (renamed from usr/local/www/firewall_nat_out_edit.php)0
-rw-r--r--src/usr/local/www/firewall_rules.php (renamed from usr/local/www/firewall_rules.php)0
-rw-r--r--src/usr/local/www/firewall_rules_edit.php (renamed from usr/local/www/firewall_rules_edit.php)0
-rw-r--r--src/usr/local/www/firewall_schedule.php (renamed from usr/local/www/firewall_schedule.php)0
-rw-r--r--src/usr/local/www/firewall_schedule_edit.php (renamed from usr/local/www/firewall_schedule_edit.php)0
-rw-r--r--src/usr/local/www/firewall_shaper.php (renamed from usr/local/www/firewall_shaper.php)0
-rw-r--r--src/usr/local/www/firewall_shaper_layer7.php (renamed from usr/local/www/firewall_shaper_layer7.php)0
-rw-r--r--src/usr/local/www/firewall_shaper_queues.php (renamed from usr/local/www/firewall_shaper_queues.php)0
-rw-r--r--src/usr/local/www/firewall_shaper_vinterface.php (renamed from usr/local/www/firewall_shaper_vinterface.php)0
-rw-r--r--src/usr/local/www/firewall_shaper_wizards.php (renamed from usr/local/www/firewall_shaper_wizards.php)0
-rw-r--r--src/usr/local/www/firewall_virtual_ip.php (renamed from usr/local/www/firewall_virtual_ip.php)0
-rw-r--r--src/usr/local/www/firewall_virtual_ip_edit.php (renamed from usr/local/www/firewall_virtual_ip_edit.php)0
-rwxr-xr-xsrc/usr/local/www/foot.inc (renamed from usr/local/www/foot.inc)0
-rw-r--r--src/usr/local/www/getserviceproviders.php (renamed from usr/local/www/getserviceproviders.php)0
-rw-r--r--src/usr/local/www/getstats.php (renamed from usr/local/www/getstats.php)0
-rwxr-xr-xsrc/usr/local/www/graph.php (renamed from usr/local/www/graph.php)0
-rw-r--r--src/usr/local/www/graph_cpu.php (renamed from usr/local/www/graph_cpu.php)0
-rw-r--r--src/usr/local/www/guiconfig.inc (renamed from usr/local/www/guiconfig.inc)0
-rwxr-xr-xsrc/usr/local/www/halt.php (renamed from usr/local/www/halt.php)0
-rwxr-xr-xsrc/usr/local/www/head.inc (renamed from usr/local/www/head.inc)0
-rw-r--r--src/usr/local/www/help.php (renamed from usr/local/www/help.php)0
-rw-r--r--src/usr/local/www/ifstats.php (renamed from usr/local/www/ifstats.php)0
-rw-r--r--src/usr/local/www/includes/functions.inc.php (renamed from usr/local/www/includes/functions.inc.php)0
-rw-r--r--src/usr/local/www/index.php (renamed from usr/local/www/index.php)0
-rw-r--r--src/usr/local/www/interfaces.php (renamed from usr/local/www/interfaces.php)0
-rw-r--r--src/usr/local/www/interfaces_assign.php (renamed from usr/local/www/interfaces_assign.php)0
-rw-r--r--src/usr/local/www/interfaces_bridge.php (renamed from usr/local/www/interfaces_bridge.php)0
-rw-r--r--src/usr/local/www/interfaces_bridge_edit.php (renamed from usr/local/www/interfaces_bridge_edit.php)0
-rw-r--r--src/usr/local/www/interfaces_gif.php (renamed from usr/local/www/interfaces_gif.php)0
-rw-r--r--src/usr/local/www/interfaces_gif_edit.php (renamed from usr/local/www/interfaces_gif_edit.php)0
-rw-r--r--src/usr/local/www/interfaces_gre.php (renamed from usr/local/www/interfaces_gre.php)0
-rw-r--r--src/usr/local/www/interfaces_gre_edit.php (renamed from usr/local/www/interfaces_gre_edit.php)0
-rw-r--r--src/usr/local/www/interfaces_groups.php (renamed from usr/local/www/interfaces_groups.php)0
-rw-r--r--src/usr/local/www/interfaces_groups_edit.php (renamed from usr/local/www/interfaces_groups_edit.php)0
-rw-r--r--src/usr/local/www/interfaces_lagg.php (renamed from usr/local/www/interfaces_lagg.php)0
-rw-r--r--src/usr/local/www/interfaces_lagg_edit.php (renamed from usr/local/www/interfaces_lagg_edit.php)0
-rw-r--r--src/usr/local/www/interfaces_ppps.php (renamed from usr/local/www/interfaces_ppps.php)0
-rw-r--r--src/usr/local/www/interfaces_ppps_edit.php (renamed from usr/local/www/interfaces_ppps_edit.php)0
-rw-r--r--src/usr/local/www/interfaces_qinq.php (renamed from usr/local/www/interfaces_qinq.php)0
-rw-r--r--src/usr/local/www/interfaces_qinq_edit.php (renamed from usr/local/www/interfaces_qinq_edit.php)0
-rw-r--r--src/usr/local/www/interfaces_vlan.php (renamed from usr/local/www/interfaces_vlan.php)0
-rw-r--r--src/usr/local/www/interfaces_vlan_edit.php (renamed from usr/local/www/interfaces_vlan_edit.php)0
-rw-r--r--src/usr/local/www/interfaces_wireless.php (renamed from usr/local/www/interfaces_wireless.php)0
-rw-r--r--src/usr/local/www/interfaces_wireless_edit.php (renamed from usr/local/www/interfaces_wireless_edit.php)0
-rw-r--r--src/usr/local/www/jquery/jquery-1.11.2.min.js (renamed from usr/local/www/jquery/jquery-1.11.2.min.js)0
-rw-r--r--src/usr/local/www/jquery/jquery-ui-1.11.2.min.js (renamed from usr/local/www/jquery/jquery-ui-1.11.2.min.js)0
-rw-r--r--src/usr/local/www/jquery/pfSense.js (renamed from usr/local/www/jquery/pfSense.js)0
-rw-r--r--src/usr/local/www/license.php (renamed from usr/local/www/license.php)0
-rw-r--r--src/usr/local/www/load_balancer_monitor.php (renamed from usr/local/www/load_balancer_monitor.php)0
-rw-r--r--src/usr/local/www/load_balancer_monitor_edit.php (renamed from usr/local/www/load_balancer_monitor_edit.php)0
-rw-r--r--src/usr/local/www/load_balancer_pool.php (renamed from usr/local/www/load_balancer_pool.php)0
-rw-r--r--src/usr/local/www/load_balancer_pool_edit.php (renamed from usr/local/www/load_balancer_pool_edit.php)0
-rw-r--r--src/usr/local/www/load_balancer_setting.php (renamed from usr/local/www/load_balancer_setting.php)0
-rw-r--r--src/usr/local/www/load_balancer_virtual_server.php (renamed from usr/local/www/load_balancer_virtual_server.php)0
-rw-r--r--src/usr/local/www/load_balancer_virtual_server_edit.php (renamed from usr/local/www/load_balancer_virtual_server_edit.php)0
-rw-r--r--src/usr/local/www/logo-black.png (renamed from usr/local/www/logo-black.png)bin8367 -> 8367 bytes
-rw-r--r--src/usr/local/www/logo.png (renamed from usr/local/www/logo.png)bin4055 -> 4055 bytes
-rwxr-xr-xsrc/usr/local/www/pkg.php (renamed from usr/local/www/pkg.php)0
-rw-r--r--src/usr/local/www/pkg_edit.php (renamed from usr/local/www/pkg_edit.php)0
-rw-r--r--src/usr/local/www/pkg_mgr.php (renamed from usr/local/www/pkg_mgr.php)0
-rw-r--r--src/usr/local/www/pkg_mgr_install.php (renamed from usr/local/www/pkg_mgr_install.php)0
-rw-r--r--src/usr/local/www/pkg_mgr_installed.php (renamed from usr/local/www/pkg_mgr_installed.php)0
-rw-r--r--src/usr/local/www/pkg_mgr_settings.php (renamed from usr/local/www/pkg_mgr_settings.php)0
-rwxr-xr-xsrc/usr/local/www/reboot.php (renamed from usr/local/www/reboot.php)0
-rw-r--r--src/usr/local/www/restart_httpd.php (renamed from usr/local/www/restart_httpd.php)0
-rw-r--r--src/usr/local/www/services_captiveportal.php (renamed from usr/local/www/services_captiveportal.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_filemanager.php (renamed from usr/local/www/services_captiveportal_filemanager.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_hostname.php (renamed from usr/local/www/services_captiveportal_hostname.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_hostname_edit.php (renamed from usr/local/www/services_captiveportal_hostname_edit.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_ip.php (renamed from usr/local/www/services_captiveportal_ip.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_ip_edit.php (renamed from usr/local/www/services_captiveportal_ip_edit.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_mac.php (renamed from usr/local/www/services_captiveportal_mac.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_mac_edit.php (renamed from usr/local/www/services_captiveportal_mac_edit.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_vouchers.php (renamed from usr/local/www/services_captiveportal_vouchers.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_vouchers_edit.php (renamed from usr/local/www/services_captiveportal_vouchers_edit.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_zones.php (renamed from usr/local/www/services_captiveportal_zones.php)0
-rw-r--r--src/usr/local/www/services_captiveportal_zones_edit.php (renamed from usr/local/www/services_captiveportal_zones_edit.php)0
-rw-r--r--src/usr/local/www/services_dhcp.php (renamed from usr/local/www/services_dhcp.php)0
-rw-r--r--src/usr/local/www/services_dhcp_edit.php (renamed from usr/local/www/services_dhcp_edit.php)0
-rw-r--r--src/usr/local/www/services_dhcp_relay.php (renamed from usr/local/www/services_dhcp_relay.php)0
-rw-r--r--src/usr/local/www/services_dhcpv6.php (renamed from usr/local/www/services_dhcpv6.php)0
-rw-r--r--src/usr/local/www/services_dhcpv6_edit.php (renamed from usr/local/www/services_dhcpv6_edit.php)0
-rw-r--r--src/usr/local/www/services_dhcpv6_relay.php (renamed from usr/local/www/services_dhcpv6_relay.php)0
-rw-r--r--src/usr/local/www/services_dnsmasq.php (renamed from usr/local/www/services_dnsmasq.php)0
-rw-r--r--src/usr/local/www/services_dnsmasq_domainoverride_edit.php (renamed from usr/local/www/services_dnsmasq_domainoverride_edit.php)0
-rw-r--r--src/usr/local/www/services_dnsmasq_edit.php (renamed from usr/local/www/services_dnsmasq_edit.php)0
-rw-r--r--src/usr/local/www/services_dyndns.php (renamed from usr/local/www/services_dyndns.php)0
-rw-r--r--src/usr/local/www/services_dyndns_edit.php (renamed from usr/local/www/services_dyndns_edit.php)0
-rw-r--r--src/usr/local/www/services_igmpproxy.php (renamed from usr/local/www/services_igmpproxy.php)0
-rw-r--r--src/usr/local/www/services_igmpproxy_edit.php (renamed from usr/local/www/services_igmpproxy_edit.php)0
-rw-r--r--src/usr/local/www/services_ntpd.php (renamed from usr/local/www/services_ntpd.php)0
-rw-r--r--src/usr/local/www/services_ntpd_gps.php (renamed from usr/local/www/services_ntpd_gps.php)0
-rw-r--r--src/usr/local/www/services_ntpd_pps.php (renamed from usr/local/www/services_ntpd_pps.php)0
-rw-r--r--src/usr/local/www/services_rfc2136.php (renamed from usr/local/www/services_rfc2136.php)0
-rw-r--r--src/usr/local/www/services_rfc2136_edit.php (renamed from usr/local/www/services_rfc2136_edit.php)0
-rw-r--r--src/usr/local/www/services_router_advertisements.php (renamed from usr/local/www/services_router_advertisements.php)0
-rw-r--r--src/usr/local/www/services_snmp.php (renamed from usr/local/www/services_snmp.php)0
-rw-r--r--src/usr/local/www/services_unbound.php (renamed from usr/local/www/services_unbound.php)0
-rw-r--r--src/usr/local/www/services_unbound_acls.php (renamed from usr/local/www/services_unbound_acls.php)0
-rw-r--r--src/usr/local/www/services_unbound_advanced.php (renamed from usr/local/www/services_unbound_advanced.php)0
-rw-r--r--src/usr/local/www/services_unbound_domainoverride_edit.php (renamed from usr/local/www/services_unbound_domainoverride_edit.php)0
-rw-r--r--src/usr/local/www/services_unbound_host_edit.php (renamed from usr/local/www/services_unbound_host_edit.php)0
-rw-r--r--src/usr/local/www/services_wol.php (renamed from usr/local/www/services_wol.php)0
-rw-r--r--src/usr/local/www/services_wol_edit.php (renamed from usr/local/www/services_wol_edit.php)0
-rw-r--r--src/usr/local/www/shortcuts.inc (renamed from usr/local/www/shortcuts.inc)0
-rw-r--r--src/usr/local/www/shortcuts/pgk_upnp.php (renamed from usr/local/www/shortcuts/pgk_upnp.php)0
-rw-r--r--src/usr/local/www/stats.php (renamed from usr/local/www/stats.php)0
-rwxr-xr-xsrc/usr/local/www/status.php (renamed from usr/local/www/status.php)0
-rw-r--r--src/usr/local/www/status_captiveportal.php (renamed from usr/local/www/status_captiveportal.php)0
-rw-r--r--src/usr/local/www/status_captiveportal_expire.php (renamed from usr/local/www/status_captiveportal_expire.php)0
-rw-r--r--src/usr/local/www/status_captiveportal_test.php (renamed from usr/local/www/status_captiveportal_test.php)0
-rw-r--r--src/usr/local/www/status_captiveportal_voucher_rolls.php (renamed from usr/local/www/status_captiveportal_voucher_rolls.php)0
-rw-r--r--src/usr/local/www/status_captiveportal_vouchers.php (renamed from usr/local/www/status_captiveportal_vouchers.php)0
-rw-r--r--src/usr/local/www/status_dhcp_leases.php (renamed from usr/local/www/status_dhcp_leases.php)0
-rw-r--r--src/usr/local/www/status_dhcpv6_leases.php (renamed from usr/local/www/status_dhcpv6_leases.php)0
-rw-r--r--src/usr/local/www/status_filter_reload.php (renamed from usr/local/www/status_filter_reload.php)0
-rwxr-xr-xsrc/usr/local/www/status_gateway_groups.php (renamed from usr/local/www/status_gateway_groups.php)0
-rw-r--r--src/usr/local/www/status_gateways.php (renamed from usr/local/www/status_gateways.php)0
-rw-r--r--src/usr/local/www/status_graph.php (renamed from usr/local/www/status_graph.php)0
-rw-r--r--src/usr/local/www/status_graph_cpu.php (renamed from usr/local/www/status_graph_cpu.php)0
-rw-r--r--src/usr/local/www/status_interfaces.php (renamed from usr/local/www/status_interfaces.php)0
-rw-r--r--src/usr/local/www/status_lb_pool.php (renamed from usr/local/www/status_lb_pool.php)0
-rw-r--r--src/usr/local/www/status_lb_vs.php (renamed from usr/local/www/status_lb_vs.php)0
-rw-r--r--src/usr/local/www/status_ntpd.php (renamed from usr/local/www/status_ntpd.php)0
-rw-r--r--src/usr/local/www/status_openvpn.php (renamed from usr/local/www/status_openvpn.php)0
-rw-r--r--src/usr/local/www/status_queues.php (renamed from usr/local/www/status_queues.php)0
-rw-r--r--src/usr/local/www/status_rrd_graph.php (renamed from usr/local/www/status_rrd_graph.php)0
-rw-r--r--src/usr/local/www/status_rrd_graph_img.php (renamed from usr/local/www/status_rrd_graph_img.php)0
-rw-r--r--src/usr/local/www/status_rrd_graph_settings.php (renamed from usr/local/www/status_rrd_graph_settings.php)0
-rwxr-xr-xsrc/usr/local/www/status_services.php (renamed from usr/local/www/status_services.php)0
-rw-r--r--src/usr/local/www/status_upnp.php (renamed from usr/local/www/status_upnp.php)0
-rw-r--r--src/usr/local/www/status_wireless.php (renamed from usr/local/www/status_wireless.php)0
-rw-r--r--src/usr/local/www/system.php (renamed from usr/local/www/system.php)0
-rw-r--r--src/usr/local/www/system_advanced_admin.php (renamed from usr/local/www/system_advanced_admin.php)0
-rw-r--r--src/usr/local/www/system_advanced_firewall.php (renamed from usr/local/www/system_advanced_firewall.php)0
-rw-r--r--src/usr/local/www/system_advanced_misc.php (renamed from usr/local/www/system_advanced_misc.php)0
-rw-r--r--src/usr/local/www/system_advanced_network.php (renamed from usr/local/www/system_advanced_network.php)0
-rw-r--r--src/usr/local/www/system_advanced_notifications.php (renamed from usr/local/www/system_advanced_notifications.php)0
-rw-r--r--src/usr/local/www/system_advanced_sysctl.php (renamed from usr/local/www/system_advanced_sysctl.php)0
-rw-r--r--src/usr/local/www/system_authservers.php (renamed from usr/local/www/system_authservers.php)0
-rw-r--r--src/usr/local/www/system_camanager.php (renamed from usr/local/www/system_camanager.php)0
-rw-r--r--src/usr/local/www/system_certmanager.php (renamed from usr/local/www/system_certmanager.php)0
-rw-r--r--src/usr/local/www/system_crlmanager.php (renamed from usr/local/www/system_crlmanager.php)0
-rw-r--r--src/usr/local/www/system_firmware.php (renamed from usr/local/www/system_firmware.php)0
-rwxr-xr-xsrc/usr/local/www/system_firmware_auto.php (renamed from usr/local/www/system_firmware_auto.php)0
-rw-r--r--src/usr/local/www/system_firmware_check.php (renamed from usr/local/www/system_firmware_check.php)0
-rw-r--r--src/usr/local/www/system_firmware_restorefullbackup.php (renamed from usr/local/www/system_firmware_restorefullbackup.php)0
-rw-r--r--src/usr/local/www/system_firmware_settings.php (renamed from usr/local/www/system_firmware_settings.php)0
-rw-r--r--src/usr/local/www/system_gateway_groups.php (renamed from usr/local/www/system_gateway_groups.php)0
-rw-r--r--src/usr/local/www/system_gateway_groups_edit.php (renamed from usr/local/www/system_gateway_groups_edit.php)0
-rw-r--r--src/usr/local/www/system_gateways.php (renamed from usr/local/www/system_gateways.php)0
-rw-r--r--src/usr/local/www/system_gateways_edit.php (renamed from usr/local/www/system_gateways_edit.php)0
-rw-r--r--src/usr/local/www/system_groupmanager.php (renamed from usr/local/www/system_groupmanager.php)0
-rw-r--r--src/usr/local/www/system_groupmanager_addprivs.php (renamed from usr/local/www/system_groupmanager_addprivs.php)0
-rwxr-xr-xsrc/usr/local/www/system_hasync.php (renamed from usr/local/www/system_hasync.php)0
-rw-r--r--src/usr/local/www/system_routes.php (renamed from usr/local/www/system_routes.php)0
-rw-r--r--src/usr/local/www/system_routes_edit.php (renamed from usr/local/www/system_routes_edit.php)0
-rw-r--r--src/usr/local/www/system_usermanager.php (renamed from usr/local/www/system_usermanager.php)0
-rw-r--r--src/usr/local/www/system_usermanager_addprivs.php (renamed from usr/local/www/system_usermanager_addprivs.php)0
-rw-r--r--src/usr/local/www/system_usermanager_passwordmg.php (renamed from usr/local/www/system_usermanager_passwordmg.php)0
-rw-r--r--src/usr/local/www/system_usermanager_settings.php (renamed from usr/local/www/system_usermanager_settings.php)0
-rw-r--r--src/usr/local/www/system_usermanager_settings_ldapacpicker.php (renamed from usr/local/www/system_usermanager_settings_ldapacpicker.php)0
-rwxr-xr-xsrc/usr/local/www/system_usermanager_settings_test.php (renamed from usr/local/www/system_usermanager_settings_test.php)0
-rwxr-xr-xsrc/usr/local/www/tree/i-bottom.gif (renamed from usr/local/www/tree/i-bottom.gif)bin125 -> 125 bytes
-rwxr-xr-xsrc/usr/local/www/tree/i-repeater.gif (renamed from usr/local/www/tree/i-repeater.gif)bin91 -> 91 bytes
-rwxr-xr-xsrc/usr/local/www/tree/index.html (renamed from usr/local/www/tree/index.html)0
-rwxr-xr-xsrc/usr/local/www/tree/l.gif (renamed from usr/local/www/tree/l.gif)bin131 -> 131 bytes
-rwxr-xr-xsrc/usr/local/www/tree/minus.gif (renamed from usr/local/www/tree/minus.gif)bin146 -> 146 bytes
-rwxr-xr-xsrc/usr/local/www/tree/page-file.png (renamed from usr/local/www/tree/page-file.png)bin211 -> 211 bytes
-rwxr-xr-xsrc/usr/local/www/tree/page-file_play.gif (renamed from usr/local/www/tree/page-file_play.gif)bin1021 -> 1021 bytes
-rwxr-xr-xsrc/usr/local/www/tree/page-file_x.gif (renamed from usr/local/www/tree/page-file_x.gif)bin630 -> 630 bytes
-rwxr-xr-xsrc/usr/local/www/tree/page-foldericon.png (renamed from usr/local/www/tree/page-foldericon.png)bin210 -> 210 bytes
-rwxr-xr-xsrc/usr/local/www/tree/page-openfoldericon.png (renamed from usr/local/www/tree/page-openfoldericon.png)bin219 -> 219 bytes
-rwxr-xr-xsrc/usr/local/www/tree/plus.gif (renamed from usr/local/www/tree/plus.gif)bin149 -> 149 bytes
-rwxr-xr-xsrc/usr/local/www/tree/t.gif (renamed from usr/local/www/tree/t.gif)bin141 -> 141 bytes
-rwxr-xr-xsrc/usr/local/www/tree/tree.css (renamed from usr/local/www/tree/tree.css)0
-rwxr-xr-xsrc/usr/local/www/tree/tree.js (renamed from usr/local/www/tree/tree.js)0
-rw-r--r--src/usr/local/www/uploadconfig.php (renamed from usr/local/www/uploadconfig.php)0
-rw-r--r--src/usr/local/www/vpn_ipsec.php (renamed from usr/local/www/vpn_ipsec.php)0
-rw-r--r--src/usr/local/www/vpn_ipsec_keys.php (renamed from usr/local/www/vpn_ipsec_keys.php)0
-rw-r--r--src/usr/local/www/vpn_ipsec_keys_edit.php (renamed from usr/local/www/vpn_ipsec_keys_edit.php)0
-rw-r--r--src/usr/local/www/vpn_ipsec_mobile.php (renamed from usr/local/www/vpn_ipsec_mobile.php)0
-rw-r--r--src/usr/local/www/vpn_ipsec_phase1.php (renamed from usr/local/www/vpn_ipsec_phase1.php)0
-rw-r--r--src/usr/local/www/vpn_ipsec_phase2.php (renamed from usr/local/www/vpn_ipsec_phase2.php)0
-rw-r--r--src/usr/local/www/vpn_ipsec_settings.php (renamed from usr/local/www/vpn_ipsec_settings.php)0
-rw-r--r--src/usr/local/www/vpn_l2tp.php (renamed from usr/local/www/vpn_l2tp.php)0
-rw-r--r--src/usr/local/www/vpn_l2tp_users.php (renamed from usr/local/www/vpn_l2tp_users.php)0
-rw-r--r--src/usr/local/www/vpn_l2tp_users_edit.php (renamed from usr/local/www/vpn_l2tp_users_edit.php)0
-rw-r--r--src/usr/local/www/vpn_openvpn_client.php (renamed from usr/local/www/vpn_openvpn_client.php)0
-rw-r--r--src/usr/local/www/vpn_openvpn_csc.php (renamed from usr/local/www/vpn_openvpn_csc.php)0
-rw-r--r--src/usr/local/www/vpn_openvpn_server.php (renamed from usr/local/www/vpn_openvpn_server.php)0
-rw-r--r--src/usr/local/www/vpn_pppoe.php (renamed from usr/local/www/vpn_pppoe.php)0
-rw-r--r--src/usr/local/www/vpn_pppoe_edit.php (renamed from usr/local/www/vpn_pppoe_edit.php)0
-rw-r--r--src/usr/local/www/vpn_pptp.php (renamed from usr/local/www/vpn_pptp.php)0
-rw-r--r--src/usr/local/www/vpn_pptp_users.php (renamed from usr/local/www/vpn_pptp_users.php)0
-rw-r--r--src/usr/local/www/vpn_pptp_users_edit.php (renamed from usr/local/www/vpn_pptp_users_edit.php)0
-rw-r--r--src/usr/local/www/widgets/include/captiveportal.inc (renamed from usr/local/www/widgets/include/captiveportal.inc)0
-rw-r--r--src/usr/local/www/widgets/include/carp_status.inc (renamed from usr/local/www/widgets/include/carp_status.inc)0
-rw-r--r--src/usr/local/www/widgets/include/dyn_dns_status.inc (renamed from usr/local/www/widgets/include/dyn_dns_status.inc)0
-rw-r--r--src/usr/local/www/widgets/include/gateways.inc (renamed from usr/local/www/widgets/include/gateways.inc)0
-rw-r--r--src/usr/local/www/widgets/include/gmirror_status.inc (renamed from usr/local/www/widgets/include/gmirror_status.inc)0
-rw-r--r--src/usr/local/www/widgets/include/installed_packages.inc (renamed from usr/local/www/widgets/include/installed_packages.inc)0
-rw-r--r--src/usr/local/www/widgets/include/interface_statistics.inc (renamed from usr/local/www/widgets/include/interface_statistics.inc)0
-rw-r--r--src/usr/local/www/widgets/include/interfaces.inc (renamed from usr/local/www/widgets/include/interfaces.inc)0
-rw-r--r--src/usr/local/www/widgets/include/ipsec.inc (renamed from usr/local/www/widgets/include/ipsec.inc)0
-rw-r--r--src/usr/local/www/widgets/include/load_balancer.inc (renamed from usr/local/www/widgets/include/load_balancer.inc)0
-rw-r--r--src/usr/local/www/widgets/include/log.inc (renamed from usr/local/www/widgets/include/log.inc)0
-rw-r--r--src/usr/local/www/widgets/include/ntp_status.inc (renamed from usr/local/www/widgets/include/ntp_status.inc)0
-rw-r--r--src/usr/local/www/widgets/include/openvpn.inc (renamed from usr/local/www/widgets/include/openvpn.inc)0
-rw-r--r--src/usr/local/www/widgets/include/services_status.inc (renamed from usr/local/www/widgets/include/services_status.inc)0
-rw-r--r--src/usr/local/www/widgets/include/smart_status.inc (renamed from usr/local/www/widgets/include/smart_status.inc)0
-rw-r--r--src/usr/local/www/widgets/include/thermal_sensors.inc (renamed from usr/local/www/widgets/include/thermal_sensors.inc)0
-rw-r--r--src/usr/local/www/widgets/include/traffic_graph.inc (renamed from usr/local/www/widgets/include/traffic_graph.inc)0
-rw-r--r--src/usr/local/www/widgets/include/wake_on_lan.inc (renamed from usr/local/www/widgets/include/wake_on_lan.inc)0
-rw-r--r--src/usr/local/www/widgets/javascript/cpu_graphs.js (renamed from usr/local/www/widgets/javascript/cpu_graphs.js)0
-rw-r--r--src/usr/local/www/widgets/javascript/ipsec.js (renamed from usr/local/www/widgets/javascript/ipsec.js)0
-rw-r--r--src/usr/local/www/widgets/javascript/thermal_sensors.js (renamed from usr/local/www/widgets/javascript/thermal_sensors.js)0
-rw-r--r--src/usr/local/www/widgets/javascript/traffic_graph.js (renamed from usr/local/www/widgets/javascript/traffic_graph.js)0
-rw-r--r--src/usr/local/www/widgets/widgets/captive_portal_status.widget.php (renamed from usr/local/www/widgets/widgets/captive_portal_status.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/carp_status.widget.php (renamed from usr/local/www/widgets/widgets/carp_status.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/deactivated/cpu_graphs.widget.php (renamed from usr/local/www/widgets/widgets/deactivated/cpu_graphs.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php (renamed from usr/local/www/widgets/widgets/dyn_dns_status.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/gateways.widget.php (renamed from usr/local/www/widgets/widgets/gateways.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/gmirror_status.widget.php (renamed from usr/local/www/widgets/widgets/gmirror_status.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/installed_packages.widget.php (renamed from usr/local/www/widgets/widgets/installed_packages.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/interface_statistics.widget.php (renamed from usr/local/www/widgets/widgets/interface_statistics.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/interfaces.widget.php (renamed from usr/local/www/widgets/widgets/interfaces.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/ipsec.widget.php (renamed from usr/local/www/widgets/widgets/ipsec.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/load_balancer_status.widget.php (renamed from usr/local/www/widgets/widgets/load_balancer_status.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/log.widget.php (renamed from usr/local/www/widgets/widgets/log.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/ntp_status.widget.php (renamed from usr/local/www/widgets/widgets/ntp_status.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/openvpn.widget.php (renamed from usr/local/www/widgets/widgets/openvpn.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/picture.widget.php (renamed from usr/local/www/widgets/widgets/picture.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/rss.widget.php (renamed from usr/local/www/widgets/widgets/rss.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/services_status.widget.php (renamed from usr/local/www/widgets/widgets/services_status.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/smart_status.widget.php (renamed from usr/local/www/widgets/widgets/smart_status.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/system_information.widget.php (renamed from usr/local/www/widgets/widgets/system_information.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/thermal_sensors.widget.php (renamed from usr/local/www/widgets/widgets/thermal_sensors.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/traffic_graphs.widget.php (renamed from usr/local/www/widgets/widgets/traffic_graphs.widget.php)0
-rw-r--r--src/usr/local/www/widgets/widgets/wake_on_lan.widget.php (renamed from usr/local/www/widgets/widgets/wake_on_lan.widget.php)0
-rw-r--r--src/usr/local/www/wizard.php (renamed from usr/local/www/wizard.php)0
-rw-r--r--src/usr/local/www/wizards/openvpn_wizard.inc (renamed from usr/local/www/wizards/openvpn_wizard.inc)0
-rw-r--r--src/usr/local/www/wizards/openvpn_wizard.xml (renamed from usr/local/www/wizards/openvpn_wizard.xml)0
-rw-r--r--src/usr/local/www/wizards/setup_wizard.xml (renamed from usr/local/www/wizards/setup_wizard.xml)0
-rw-r--r--src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc (renamed from usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc)0
-rwxr-xr-xsrc/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml (renamed from usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml)0
-rw-r--r--src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc (renamed from usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc)0
-rwxr-xr-xsrc/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml (renamed from usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml)0
-rwxr-xr-xsrc/usr/local/www/xmlrpc.php (renamed from usr/local/www/xmlrpc.php)0
-rw-r--r--src/usr/share/doc/legal/intel_ipw/LICENSE (renamed from usr/share/doc/legal/intel_ipw/LICENSE)0
-rw-r--r--src/usr/share/doc/legal/intel_iwi/LICENSE (renamed from usr/share/doc/legal/intel_iwi/LICENSE)0
-rw-r--r--src/usr/share/doc/legal/intel_wpi/LICENSE (renamed from usr/share/doc/legal/intel_wpi/LICENSE)0
-rw-r--r--src/usr/share/zoneinfo.tgz (renamed from usr/share/zoneinfo.tgz)bin194726 -> 194726 bytes
-rwxr-xr-xtools/build_snapshots.sh384
-rw-r--r--tools/builder_common.sh1977
-rw-r--r--tools/builder_defaults.sh319
-rw-r--r--tools/conf/ovf/pfSense.ovf136
-rw-r--r--tools/conf/pfPorts/make.conf125
-rw-r--r--tools/conf/pfPorts/poudriere_bulk47
-rw-r--r--tools/conf/pfPorts/poudriere_bulk.arm.armv61
-rwxr-xr-xtools/scripts/generate-privdefs.php216
-rwxr-xr-xtools/scripts/update_package_pfPorts.php433
-rw-r--r--tools/templates/core_pkg/base/exclude_files26
-rw-r--r--tools/templates/core_pkg/base/metadir/+DESC3
-rw-r--r--tools/templates/core_pkg/base/metadir/+MANIFEST15
-rw-r--r--tools/templates/core_pkg/base/pkg-plist2
-rw-r--r--tools/templates/core_pkg/default-config-serial/metadir/+DESC3
-rw-r--r--tools/templates/core_pkg/default-config-serial/metadir/+INSTALL15
-rw-r--r--tools/templates/core_pkg/default-config-serial/metadir/+MANIFEST15
-rw-r--r--tools/templates/core_pkg/default-config-serial/pkg-plist2
-rw-r--r--tools/templates/core_pkg/default-config/metadir/+DESC3
-rw-r--r--tools/templates/core_pkg/default-config/metadir/+INSTALL15
-rw-r--r--tools/templates/core_pkg/default-config/metadir/+MANIFEST15
-rw-r--r--tools/templates/core_pkg/default-config/pkg-plist1
-rw-r--r--tools/templates/core_pkg/kernel/metadir/+DEINSTALL19
-rw-r--r--tools/templates/core_pkg/kernel/metadir/+DESC3
-rw-r--r--tools/templates/core_pkg/kernel/metadir/+MANIFEST15
-rw-r--r--tools/templates/pkg-deinstall.in3
-rw-r--r--tools/templates/pkg-install.in7
-rw-r--r--usr/local/openssl/openssl.cnf309
-rwxr-xr-xusr/local/www/favicon.icobin4286 -> 0 bytes
800 files changed, 4297 insertions, 311 deletions
diff --git a/.gitignore b/.gitignore
index 7bdd0ef..d24ef4f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,8 @@
.DS_Store
_notes/
+/tmp/
+/logs/
+/build.conf
# Ignore Vim swap files
.*.swp
upload.sh
diff --git a/build.conf.sample b/build.conf.sample
new file mode 100644
index 0000000..1d1a247
--- /dev/null
+++ b/build.conf.sample
@@ -0,0 +1,81 @@
+#
+# Copyright (c) 2015 Electric Sheep Fencing, LLC. 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 acknowledgment:
+# "This product includes software developed by the pfSense Project
+# for use in the pfSense® software distribution. (http://www.pfsense.org/).
+#
+# 4. The names "pfSense" and "pfSense Project" must not be used to
+# endorse or promote products derived from this software without
+# prior written permission. For written permission, please contact
+# coreteam@pfsense.org.
+#
+# 5. Products derived from this software may not be called "pfSense"
+# nor may "pfSense" appear in their names without prior written
+# permission of the Electric Sheep Fencing, LLC.
+#
+# 6. Redistributions of any form whatsoever must retain the following
+# acknowledgment:
+#
+# "This product includes software developed by the pfSense Project
+# for use in the pfSense software distribution (http://www.pfsense.org/).
+#
+# THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+# EXPRESSED 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 pfSense PROJECT OR
+# ITS 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.
+#
+
+# Name of the product you are building, only ESF can build and distribute
+# pfSense® software
+export PRODUCT_NAME="nonSense"
+export PRODUCT_URL="https://PRODUCT_URL/"
+
+# Define FreeBSD repository, branch and specific commit
+#export FREEBSD_REPO_BASE=https://github.com/freebsd/freebsd.git
+#export FREEBSD_BRANCH=stable/10
+#export GIT_FREEBSD_COSHA1=##HASH##
+
+# Do not clean FreeBSD obj dirs
+#export NO_CLEAN_FREEBSD_OBJ=YES
+
+# Do not clean FreeBSD src dir
+#export NO_CLEAN_FREEBSD_SRC=YES
+
+# rsync data to upload snapshots
+#export RSYNCIP="your.snapshot.server"
+#export RSYNCUSER="username"
+#export RSYNCPATH="/usr/local/www/snapshots"
+#export RSYNCLOGS="/usr/local/www/snapshots/logs"
+
+# rsync data to upload pkg repo
+#export PKG_RSYNC_HOSTNAME="pkg_repo_hostname"
+#export PKG_RSYNC_USERNAME="username"
+#export PKG_RSYNC_SSH_PORT="22"
+#export PKG_RSYNC_DESTDIR="/usr/local/www/beta/packages"
+
+# pkg repo URL
+#export PKG_REPO_SERVER="pkg+http://beta.pfsense.org/packages"
+
+# Branch to replace pkg.conf template, defaults to $GIT_REPO_BRANCH_OR_TAG
+#export PKG_REPO_CONF_BRANCH="BRANCH"
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..174dbfd
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,373 @@
+#!/bin/sh
+#
+# build.sh
+#
+# Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. 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 acknowledgment:
+# "This product includes software developed by the pfSense Project
+# for use in the pfSense® software distribution. (http://www.pfsense.org/).
+#
+# 4. The names "pfSense" and "pfSense Project" must not be used to
+# endorse or promote products derived from this software without
+# prior written permission. For written permission, please contact
+# coreteam@pfsense.org.
+#
+# 5. Products derived from this software may not be called "pfSense"
+# nor may "pfSense" appear in their names without prior written
+# permission of the Electric Sheep Fencing, LLC.
+#
+# 6. Redistributions of any form whatsoever must retain the following
+# acknowledgment:
+#
+# "This product includes software developed by the pfSense Project
+# for use in the pfSense software distribution (http://www.pfsense.org/).
+#
+# THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+# EXPRESSED 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 pfSense PROJECT OR
+# ITS 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.
+#
+
+set +e
+usage() {
+ echo "Usage $0 [options] [ iso | nanobsd | ova | nanobsd-vga | memstick | memstickserial | memstickadi | fullupdate | all ]"
+ echo " all = iso nanobsd nanobsd-vga memstick memstickserial memstickadi fullupdate"
+ echo " [ options ]: "
+ echo " --flash-size|-f size(s) - a list of flash sizes to build with nanobsd i.e. '512m 1g'. Default: 512m"
+ echo " --no-buildworld|-c - Will set NO_BUILDWORLD NO_BUILDKERNEL to not build kernel and world"
+ echo " --no-cleanobjdir|--no-cleanrepos|-d - Will not clean FreeBSD object built dir to allow restarting a build with NO_CLEAN"
+ echo " --resume-image-build|-r - Includes -c -d and also will just move directly to image creation using pre-staged data"
+ echo " --setup - Install required repo and ports builder require to work"
+ echo " --update-sources - Refetch FreeBSD sources"
+ echo " --print-flags - Show current builder configuration"
+ echo " --clean-builder - clean all builder used data/resources"
+ echo " --build-kernels - build all configured kernels"
+ echo " --build-kernel argument - build specified kernel. Example --build-kernel KERNEL_NAME"
+ echo " --install-extra-kernels argument - Put extra kernel(s) under /kernel image directory. Example --install-extra-kernels KERNEL_NAME_WRAP"
+ echo " --enable-memorydisks - This will put stage_dir and iso_dir as MFS filesystems"
+ echo " --disable-memorydisks - Will just teardown these filesystems created by --enable-memorydisks"
+ echo " --setup-poudriere - Install poudriere and create necessary jails and ports tree"
+ echo " --create-unified-patch - Create a big patch with all changes done on FreeBSD"
+ echo " --update-poudriere-jails [-a ARCH_LIST] - Update poudriere jails using current patch versions"
+ echo " --update-poudriere-ports - Update poudriere ports tree"
+ echo " --update-pkg-repo - Rebuild necessary ports on poudriere and update pkg repo"
+ echo " --do-not-upload|-U - Do not send updated pkg repo to PKG_RSYNC_HOSTNAME"
+ echo " -V VARNAME - print value of variable VARNAME"
+ exit 1
+}
+
+export BUILDER_ROOT=$(realpath $(dirname ${0}))
+export BUILDER_TOOLS="${BUILDER_ROOT}/tools"
+
+unset _SKIP_REBUILD_PRESTAGE
+unset _USE_OLD_DATESTRING
+unset pfPORTTOBUILD
+unset IMAGETYPE
+unset DO_NOT_UPLOAD
+BUILDACTION="images"
+
+# Maybe use options for nocleans etc?
+while test "$1" != ""; do
+ case "${1}" in
+ --no-buildworld|-c)
+ export NO_BUILDWORLD=YES
+ export NO_BUILDKERNEL=YES
+ ;;
+ --no-cleanobjdir|--no-cleanrepos|-d)
+ export NO_CLEAN_FREEBSD_OBJ=YES
+ export NO_CLEAN_FREEBSD_SRC=YES
+ ;;
+ --flash-size|-f)
+ shift
+ if [ $# -eq 0 ]; then
+ echo "--flash-size needs extra parameter."
+ echo
+ usage
+ fi
+ export FLASH_SIZE="${1}"
+ ;;
+ --resume-image-build|-r)
+ export NO_BUILDWORLD=YES
+ export NO_BUILDKERNEL=YES
+ export NO_CLEAN_FREEBSD_OBJ=YES
+ export NO_CLEAN_FREEBSD_SRC=YES
+ _SKIP_REBUILD_PRESTAGE=YES
+ _USE_OLD_DATESTRING=YES
+ ;;
+ --setup)
+ BUILDACTION="builder_setup"
+ ;;
+ --build-kernels)
+ BUILDACTION="buildkernels"
+ ;;
+ --install-extra-kernels)
+ shift
+ if [ $# -eq 0 ]; then
+ echo "--build-kernel needs extra parameter."
+ echo
+ usage
+ fi
+ export INSTALL_EXTRA_KERNELS="${1}"
+ ;;
+ --build-kernel)
+ BUILDACTION="buildkernel"
+ shift
+ if [ $# -eq 0 ]; then
+ echo "--build-kernel needs extra parameter."
+ echo
+ usage
+ fi
+ export BUILD_KERNELS="${1}"
+ ;;
+ --update-sources)
+ BUILDACTION="updatesources"
+ ;;
+ --print-flags)
+ BUILDACTION="printflags"
+ ;;
+ --clean-builder)
+ BUILDACTION="cleanbuilder"
+ ;;
+ --enable-memorydisks)
+ BUILDACTION="enablememorydisk"
+ ;;
+ --disable-memorydisks)
+ BUILDACTION="disablememorydisk"
+ ;;
+ --setup-poudriere)
+ BUILDACTION="setup_poudriere"
+ ;;
+ --create-unified-patch)
+ BUILDACTION="create_unified_patch"
+ ;;
+ --update-poudriere-jails)
+ BUILDACTION="update_poudriere_jails"
+ shift
+ unset ARCH_LIST
+ if [ "${1}" = "-a" ]; then
+ shift
+ if [ $# -eq 0 ]; then
+ echo "-a needs extra parameter."
+ echo
+ usage
+ fi
+ export ARCH_LIST="${1}"
+ fi
+ ;;
+ --update-poudriere-ports)
+ BUILDACTION="update_poudriere_ports"
+ ;;
+ --update-pkg-repo)
+ BUILDACTION="update_pkg_repo"
+ ;;
+ --do-not-upload|-U)
+ export DO_NOT_UPLOAD=1
+ ;;
+ all|*iso*|*ova*|*memstick*|*memstickserial*|*memstickadi*|*nanobsd*|*nanobsd-vga*|*fullupdate*)
+ BUILDACTION="images"
+ IMAGETYPE="${1}"
+ ;;
+ -V)
+ shift
+ [ -n "${1}" ] \
+ && var_to_print="${1}"
+ ;;
+ *)
+ usage
+ esac
+ shift
+done
+
+# Suck in local vars
+. ${BUILDER_TOOLS}/builder_defaults.sh
+
+# Suck in script helper functions
+. ${BUILDER_TOOLS}/builder_common.sh
+
+# Print var required with -V and exit
+if [ -n "${var_to_print}" ]; then
+ eval "echo \$${var_to_print}"
+ exit 0
+fi
+
+# This should be run first
+launch
+
+case $BUILDACTION in
+ builder_setup)
+ update_freebsd_sources
+ builder_setup
+ ;;
+ buildkernels)
+ update_freebsd_sources
+ build_all_kernels
+ ;;
+ buildkernel)
+ update_freebsd_sources
+ build_all_kernels
+ ;;
+ cleanbuilder)
+ clean_builder
+ ;;
+ printflags)
+ print_flags
+ ;;
+ images)
+ # It will be handled below
+ ;;
+ updatesources)
+ update_freebsd_sources
+ ;;
+ enablememorydisk)
+ prestage_on_ram_setup
+ ;;
+ disablememorydisk)
+ prestage_on_ram_cleanup
+ ;;
+ setup_poudriere)
+ poudriere_init
+ ;;
+ create_unified_patch)
+ poudriere_create_patch
+ ;;
+ update_poudriere_jails)
+ poudriere_update_jails
+ ;;
+ update_poudriere_ports)
+ poudriere_update_ports
+ ;;
+ update_pkg_repo)
+ poudriere_bulk
+ ;;
+ *)
+ usage
+ ;;
+esac
+
+if [ "${BUILDACTION}" != "images" ]; then
+ finish
+ exit 0
+fi
+
+if [ $# -gt 1 ]; then
+ echo "ERROR: Too many arguments given."
+ echo
+ usage
+fi
+if [ -z "${IMAGETYPE}" ]; then
+ echo "ERROR: Need to specify image type to build."
+ echo
+ usage
+fi
+
+if [ "$IMAGETYPE" = "all" ]; then
+ _IMAGESTOBUILD="iso fullupdate nanobsd nanobsd-vga memstick memstickserial"
+ if [ "${TARGET}" = "amd64" ]; then
+ _IMAGESTOBUILD="${_IMAGESTOBUILD} memstickadi"
+ fi
+else
+ _IMAGESTOBUILD="${IMAGETYPE}"
+fi
+
+echo ">>> Building image type(s): ${_IMAGESTOBUILD}"
+
+if [ -z "${_SKIP_REBUILD_PRESTAGE}" ]; then
+ [ -n "${CORE_PKG_TMP}" -a -d "${CORE_PKG_TMP}" ] \
+ && rm -rf ${CORE_PKG_TMP}
+ [ -n "${CORE_PKG_PATH}" -a -d "${CORE_PKG_PATH}" ] \
+ && rm -rf ${CORE_PKG_PATH}
+
+ # Cleanup environment before start
+ clean_builder
+
+ # Make sure source directories are present.
+ update_freebsd_sources
+ git_last_commit
+
+ # Ensure binaries are present that builder system requires
+ builder_setup
+
+ # Output build flags
+ print_flags
+
+ # Check to see if pre-staging will be hosted on ram
+ prestage_on_ram_setup
+
+ # Build world, kernel and install
+ echo ">>> Building world for ISO... $FREEBSD_BRANCH ..."
+ make_world
+
+ # Build kernels
+ echo ">>> Building kernel configs: $BUILD_KERNELS for FreeBSD: $FREEBSD_BRANCH ..."
+ build_all_kernels
+
+ # Prepare pre-final staging area
+ clone_to_staging_area
+
+ # Install packages needed for Product
+ install_pkg_install_ports
+fi
+
+export DEFAULT_KERNEL=${DEFAULT_KERNEL_ISO:-"${PRODUCT_NAME}"}
+
+for _IMGTOBUILD in $_IMAGESTOBUILD; do
+ # Clean up items that should be cleaned each run
+ staginareas_clean_each_run
+
+ if [ "${_IMGTOBUILD}" = "iso" ]; then
+ (create_iso_image)
+ elif [ "${_IMGTOBUILD}" = "memstick" ]; then
+ (create_memstick_image)
+ elif [ "${_IMGTOBUILD}" = "memstickserial" ]; then
+ (create_memstick_serial_image)
+ elif [ "${_IMGTOBUILD}" = "memstickadi" ]; then
+ (create_memstick_adi_image)
+ elif [ "${_IMGTOBUILD}" = "fullupdate" ]; then
+ create_Full_update_tarball
+ elif [ "${_IMGTOBUILD}" = "nanobsd" -o "${_IMGTOBUILD}" = "nanobsd-vga" ]; then
+ if [ "${TARGET}" = "i386" -a "${_IMGTOBUILD}" = "nanobsd" ]; then
+ export DEFAULT_KERNEL=${DEFAULT_KERNEL_NANOBSD:-"${PRODUCT_NAME}_wrap"}
+ elif [ "${TARGET}" = "i386" -a "${_IMGTOBUILD}" = "nanobsd-vga" ]; then
+ export DEFAULT_KERNEL=${DEFAULT_KERNEL_NANOBSDVGA:-"${PRODUCT_NAME}_wrap_vga"}
+ elif [ "${TARGET}" = "amd64" ]; then
+ export DEFAULT_KERNEL=${DEFAULT_KERNEL_NANOBSD:-"${PRODUCT_NAME}"}
+ fi
+ # Create the NanoBSD disk image
+ create_nanobsd_diskimage ${_IMGTOBUILD} "${FLASH_SIZE}"
+ elif [ "${_IMGTOBUILD}" = "ova" ]; then
+ install_pkg_install_ports ${PRODUCT_NAME}-vm
+ (create_ova_image)
+ install_pkg_install_ports
+ fi
+done
+
+echo ">>> NOTE: waiting for jobs: `jobs -l` to finish..."
+wait
+
+echo ">>> ${IMAGES_FINAL_DIR} now contains:"
+ls -lah ${IMAGES_FINAL_DIR}
+
+set -e
+# Run final finish routines
+finish
diff --git a/cf/conf/trigger_initial_wizard b/src/cf/conf/trigger_initial_wizard
index e69de29..e69de29 100644
--- a/cf/conf/trigger_initial_wizard
+++ b/src/cf/conf/trigger_initial_wizard
diff --git a/conf.default/config.xml b/src/conf.default/config.xml
index e16800e..e16800e 100644
--- a/conf.default/config.xml
+++ b/src/conf.default/config.xml
diff --git a/etc/ascii-art/pfsense-logo-small.txt b/src/etc/ascii-art/pfsense-logo-small.txt
index 01d8bc5..01d8bc5 100644
--- a/etc/ascii-art/pfsense-logo-small.txt
+++ b/src/etc/ascii-art/pfsense-logo-small.txt
diff --git a/etc/bogons b/src/etc/bogons
index 9be218d..9be218d 100644
--- a/etc/bogons
+++ b/src/etc/bogons
diff --git a/etc/bogonsv6 b/src/etc/bogonsv6
index e69de29..e69de29 100644
--- a/etc/bogonsv6
+++ b/src/etc/bogonsv6
diff --git a/etc/ca_countries b/src/etc/ca_countries
index 1a9ca9e..1a9ca9e 100644
--- a/etc/ca_countries
+++ b/src/etc/ca_countries
diff --git a/etc/crontab b/src/etc/crontab
index 8be8494..8be8494 100644
--- a/etc/crontab
+++ b/src/etc/crontab
diff --git a/etc/ddb.conf b/src/etc/ddb.conf
index 65f49c2..65f49c2 100644
--- a/etc/ddb.conf
+++ b/src/etc/ddb.conf
diff --git a/etc/devd.conf b/src/etc/devd.conf
index ea67ba6..ea67ba6 100644
--- a/etc/devd.conf
+++ b/src/etc/devd.conf
diff --git a/etc/dh-parameters.1024 b/src/etc/dh-parameters.1024
index 3148f4c..3148f4c 100644
--- a/etc/dh-parameters.1024
+++ b/src/etc/dh-parameters.1024
diff --git a/etc/dh-parameters.2048 b/src/etc/dh-parameters.2048
index f0e1a5d..f0e1a5d 100644
--- a/etc/dh-parameters.2048
+++ b/src/etc/dh-parameters.2048
diff --git a/etc/dh-parameters.4096 b/src/etc/dh-parameters.4096
index 30058a1..30058a1 100644
--- a/etc/dh-parameters.4096
+++ b/src/etc/dh-parameters.4096
diff --git a/etc/disktab b/src/etc/disktab
index 5726c4d..5726c4d 100644
--- a/etc/disktab
+++ b/src/etc/disktab
diff --git a/etc/ecl.php b/src/etc/ecl.php
index 15205f1..15205f1 100755
--- a/etc/ecl.php
+++ b/src/etc/ecl.php
diff --git a/etc/fbtab b/src/etc/fbtab
index 06d2d61..06d2d61 100644
--- a/etc/fbtab
+++ b/src/etc/fbtab
diff --git a/etc/gettytab b/src/etc/gettytab
index 5af5aae..5af5aae 100644
--- a/etc/gettytab
+++ b/src/etc/gettytab
diff --git a/etc/group b/src/etc/group
index a0ca8ce..a0ca8ce 100644
--- a/etc/group
+++ b/src/etc/group
diff --git a/etc/host.conf b/src/etc/host.conf
index 6643c7f..6643c7f 100644
--- a/etc/host.conf
+++ b/src/etc/host.conf
diff --git a/etc/hosts.allow b/src/etc/hosts.allow
index ab11cc0..ab11cc0 100644
--- a/etc/hosts.allow
+++ b/src/etc/hosts.allow
diff --git a/etc/inc/CHAP.inc b/src/etc/inc/CHAP.inc
index 6eb22f7..6eb22f7 100644
--- a/etc/inc/CHAP.inc
+++ b/src/etc/inc/CHAP.inc
diff --git a/etc/inc/IPv6.inc b/src/etc/inc/IPv6.inc
index faacb8d..faacb8d 100644
--- a/etc/inc/IPv6.inc
+++ b/src/etc/inc/IPv6.inc
diff --git a/etc/inc/PEAR.inc b/src/etc/inc/PEAR.inc
index a280602..a280602 100644
--- a/etc/inc/PEAR.inc
+++ b/src/etc/inc/PEAR.inc
diff --git a/etc/inc/auth.inc b/src/etc/inc/auth.inc
index ad98c5c..ad98c5c 100644
--- a/etc/inc/auth.inc
+++ b/src/etc/inc/auth.inc
diff --git a/etc/inc/authgui.inc b/src/etc/inc/authgui.inc
index 721be47..721be47 100644
--- a/etc/inc/authgui.inc
+++ b/src/etc/inc/authgui.inc
diff --git a/etc/inc/basic_sasl_client.inc b/src/etc/inc/basic_sasl_client.inc
index c817664..c817664 100644
--- a/etc/inc/basic_sasl_client.inc
+++ b/src/etc/inc/basic_sasl_client.inc
diff --git a/etc/inc/captiveportal.inc b/src/etc/inc/captiveportal.inc
index bd294e4..e95cc75 100644
--- a/etc/inc/captiveportal.inc
+++ b/src/etc/inc/captiveportal.inc
@@ -2406,4 +2406,15 @@ function captiveportal_send_server_accounting($off = false) {
$racct->close();
return $retvalue;
}
+
+function captiveportal_isip_logged($clientip) {
+ global $g, $cpzone;
+
+ /* read in client database */
+ $query = "WHERE ip = '{$clientip}'";
+ $cpdb = captiveportal_read_db($query);
+ foreach ($cpdb as $cpentry) {
+ return $cpentry;
+ }
+}
?>
diff --git a/etc/inc/certs.inc b/src/etc/inc/certs.inc
index 9c99952..9c99952 100644
--- a/etc/inc/certs.inc
+++ b/src/etc/inc/certs.inc
diff --git a/etc/inc/config.console.inc b/src/etc/inc/config.console.inc
index df3fa6f..df3fa6f 100644
--- a/etc/inc/config.console.inc
+++ b/src/etc/inc/config.console.inc
diff --git a/etc/inc/config.gui.inc b/src/etc/inc/config.gui.inc
index 56b5555..56b5555 100644
--- a/etc/inc/config.gui.inc
+++ b/src/etc/inc/config.gui.inc
diff --git a/etc/inc/config.inc b/src/etc/inc/config.inc
index 4792ac3..4792ac3 100644
--- a/etc/inc/config.inc
+++ b/src/etc/inc/config.inc
diff --git a/etc/inc/config.lib.inc b/src/etc/inc/config.lib.inc
index 222d9d8..222d9d8 100644
--- a/etc/inc/config.lib.inc
+++ b/src/etc/inc/config.lib.inc
diff --git a/etc/inc/cram_md5_sasl_client.inc b/src/etc/inc/cram_md5_sasl_client.inc
index 69bd625..69bd625 100644
--- a/etc/inc/cram_md5_sasl_client.inc
+++ b/src/etc/inc/cram_md5_sasl_client.inc
diff --git a/etc/inc/crypt.inc b/src/etc/inc/crypt.inc
index 8d96b26..8d96b26 100644
--- a/etc/inc/crypt.inc
+++ b/src/etc/inc/crypt.inc
diff --git a/etc/inc/digest_sasl_client.inc b/src/etc/inc/digest_sasl_client.inc
index 924887d..924887d 100644
--- a/etc/inc/digest_sasl_client.inc
+++ b/src/etc/inc/digest_sasl_client.inc
diff --git a/etc/inc/dot.hushlogin b/src/etc/inc/dot.hushlogin
index e69de29..e69de29 100644
--- a/etc/inc/dot.hushlogin
+++ b/src/etc/inc/dot.hushlogin
diff --git a/etc/inc/dyndns.class b/src/etc/inc/dyndns.class
index cb21fb5..cb21fb5 100644
--- a/etc/inc/dyndns.class
+++ b/src/etc/inc/dyndns.class
diff --git a/etc/inc/easyrule.inc b/src/etc/inc/easyrule.inc
index c46e84d..c46e84d 100644
--- a/etc/inc/easyrule.inc
+++ b/src/etc/inc/easyrule.inc
diff --git a/etc/inc/filter.inc b/src/etc/inc/filter.inc
index 36bbe2b..36bbe2b 100644
--- a/etc/inc/filter.inc
+++ b/src/etc/inc/filter.inc
diff --git a/etc/inc/filter_log.inc b/src/etc/inc/filter_log.inc
index 11ee6de..11ee6de 100644
--- a/etc/inc/filter_log.inc
+++ b/src/etc/inc/filter_log.inc
diff --git a/etc/inc/functions.inc b/src/etc/inc/functions.inc
index 2c8f4c8..2c8f4c8 100644
--- a/etc/inc/functions.inc
+++ b/src/etc/inc/functions.inc
diff --git a/etc/inc/globals.inc b/src/etc/inc/globals.inc
index 1ca696f..66107c0 100644
--- a/etc/inc/globals.inc
+++ b/src/etc/inc/globals.inc
@@ -74,7 +74,7 @@ $g = array(
"disablecrashreporter" => false,
"crashreporterurl" => "https://crashreporter.pfsense.org/crash_reporter.php",
"debug" => false,
- "latest_config" => "11.9",
+ "latest_config" => "12.1",
"nopkg_platforms" => array("cdrom"),
"minimum_ram_warning" => "101",
"minimum_ram_warning_text" => "128 MB",
diff --git a/etc/inc/gmirror.inc b/src/etc/inc/gmirror.inc
index 24508e9..24508e9 100644
--- a/etc/inc/gmirror.inc
+++ b/src/etc/inc/gmirror.inc
diff --git a/etc/inc/growl.class b/src/etc/inc/growl.class
index 8f639e5..8f639e5 100644
--- a/etc/inc/growl.class
+++ b/src/etc/inc/growl.class
diff --git a/etc/inc/gwlb.inc b/src/etc/inc/gwlb.inc
index 9880cdc..9880cdc 100644
--- a/etc/inc/gwlb.inc
+++ b/src/etc/inc/gwlb.inc
diff --git a/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc
index 4d9389a..4d9389a 100644
--- a/etc/inc/interfaces.inc
+++ b/src/etc/inc/interfaces.inc
diff --git a/etc/inc/ipsec.attributes.php b/src/etc/inc/ipsec.attributes.php
index 8a8ed5f..8a8ed5f 100644
--- a/etc/inc/ipsec.attributes.php
+++ b/src/etc/inc/ipsec.attributes.php
diff --git a/etc/inc/ipsec.auth-user.php b/src/etc/inc/ipsec.auth-user.php
index 2589598..2589598 100755
--- a/etc/inc/ipsec.auth-user.php
+++ b/src/etc/inc/ipsec.auth-user.php
diff --git a/etc/inc/ipsec.inc b/src/etc/inc/ipsec.inc
index 6654166..6654166 100644
--- a/etc/inc/ipsec.inc
+++ b/src/etc/inc/ipsec.inc
diff --git a/etc/inc/itemid.inc b/src/etc/inc/itemid.inc
index c698cfa..c698cfa 100644
--- a/etc/inc/itemid.inc
+++ b/src/etc/inc/itemid.inc
diff --git a/etc/inc/led.inc b/src/etc/inc/led.inc
index a08eef4..a08eef4 100644
--- a/etc/inc/led.inc
+++ b/src/etc/inc/led.inc
diff --git a/etc/inc/login_sasl_client.inc b/src/etc/inc/login_sasl_client.inc
index f5cc050..f5cc050 100644
--- a/etc/inc/login_sasl_client.inc
+++ b/src/etc/inc/login_sasl_client.inc
diff --git a/etc/inc/meta.inc b/src/etc/inc/meta.inc
index ac8bdfc..ac8bdfc 100644
--- a/etc/inc/meta.inc
+++ b/src/etc/inc/meta.inc
diff --git a/etc/inc/notices.inc b/src/etc/inc/notices.inc
index 891c18b..891c18b 100644
--- a/etc/inc/notices.inc
+++ b/src/etc/inc/notices.inc
diff --git a/etc/inc/ntlm_sasl_client.inc b/src/etc/inc/ntlm_sasl_client.inc
index 18e5658..18e5658 100644
--- a/etc/inc/ntlm_sasl_client.inc
+++ b/src/etc/inc/ntlm_sasl_client.inc
diff --git a/etc/inc/openvpn.attributes.php b/src/etc/inc/openvpn.attributes.php
index 467d691..467d691 100644
--- a/etc/inc/openvpn.attributes.php
+++ b/src/etc/inc/openvpn.attributes.php
diff --git a/etc/inc/openvpn.auth-user.php b/src/etc/inc/openvpn.auth-user.php
index e108a4f..e108a4f 100644
--- a/etc/inc/openvpn.auth-user.php
+++ b/src/etc/inc/openvpn.auth-user.php
diff --git a/etc/inc/openvpn.inc b/src/etc/inc/openvpn.inc
index 945e7ff..945e7ff 100644
--- a/etc/inc/openvpn.inc
+++ b/src/etc/inc/openvpn.inc
diff --git a/etc/inc/openvpn.tls-verify.php b/src/etc/inc/openvpn.tls-verify.php
index 9e21342..9e21342 100644
--- a/etc/inc/openvpn.tls-verify.php
+++ b/src/etc/inc/openvpn.tls-verify.php
diff --git a/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc
index 2cedc52..2cedc52 100644
--- a/etc/inc/pfsense-utils.inc
+++ b/src/etc/inc/pfsense-utils.inc
diff --git a/etc/inc/pkg-utils.inc b/src/etc/inc/pkg-utils.inc
index d18efe8..d18efe8 100644
--- a/etc/inc/pkg-utils.inc
+++ b/src/etc/inc/pkg-utils.inc
diff --git a/etc/inc/plain_sasl_client.inc b/src/etc/inc/plain_sasl_client.inc
index 691580c..691580c 100644
--- a/etc/inc/plain_sasl_client.inc
+++ b/src/etc/inc/plain_sasl_client.inc
diff --git a/etc/inc/priv.defs.inc b/src/etc/inc/priv.defs.inc
index 7d2154f..7d2154f 100644
--- a/etc/inc/priv.defs.inc
+++ b/src/etc/inc/priv.defs.inc
diff --git a/etc/inc/priv.inc b/src/etc/inc/priv.inc
index 851643b..851643b 100644
--- a/etc/inc/priv.inc
+++ b/src/etc/inc/priv.inc
diff --git a/etc/inc/priv/user.priv.inc b/src/etc/inc/priv/user.priv.inc
index 6414008..6414008 100644
--- a/etc/inc/priv/user.priv.inc
+++ b/src/etc/inc/priv/user.priv.inc
diff --git a/etc/inc/r53.class b/src/etc/inc/r53.class
index 89faa26..89faa26 100644
--- a/etc/inc/r53.class
+++ b/src/etc/inc/r53.class
diff --git a/etc/inc/radius.inc b/src/etc/inc/radius.inc
index ac610bd..ac610bd 100644
--- a/etc/inc/radius.inc
+++ b/src/etc/inc/radius.inc
diff --git a/etc/inc/rrd.inc b/src/etc/inc/rrd.inc
index 86148d6..86148d6 100644
--- a/etc/inc/rrd.inc
+++ b/src/etc/inc/rrd.inc
diff --git a/etc/inc/sasl.inc b/src/etc/inc/sasl.inc
index a9582da..a9582da 100644
--- a/etc/inc/sasl.inc
+++ b/src/etc/inc/sasl.inc
diff --git a/etc/inc/service-utils.inc b/src/etc/inc/service-utils.inc
index 2fa75cf..2fa75cf 100644
--- a/etc/inc/service-utils.inc
+++ b/src/etc/inc/service-utils.inc
diff --git a/etc/inc/services.inc b/src/etc/inc/services.inc
index 333261d..333261d 100644
--- a/etc/inc/services.inc
+++ b/src/etc/inc/services.inc
diff --git a/etc/inc/shaper.inc b/src/etc/inc/shaper.inc
index f5c91b0..f5c91b0 100644
--- a/etc/inc/shaper.inc
+++ b/src/etc/inc/shaper.inc
diff --git a/etc/inc/simplepie/LICENSE.txt b/src/etc/inc/simplepie/LICENSE.txt
index a822a4b..a822a4b 100644
--- a/etc/inc/simplepie/LICENSE.txt
+++ b/src/etc/inc/simplepie/LICENSE.txt
diff --git a/etc/inc/simplepie/simplepie.inc b/src/etc/inc/simplepie/simplepie.inc
index 32f158e..32f158e 100644
--- a/etc/inc/simplepie/simplepie.inc
+++ b/src/etc/inc/simplepie/simplepie.inc
diff --git a/etc/inc/smtp.inc b/src/etc/inc/smtp.inc
index 035a30a..035a30a 100644
--- a/etc/inc/smtp.inc
+++ b/src/etc/inc/smtp.inc
diff --git a/etc/inc/system.inc b/src/etc/inc/system.inc
index 41e798e..41e798e 100644
--- a/etc/inc/system.inc
+++ b/src/etc/inc/system.inc
diff --git a/etc/inc/unbound.inc b/src/etc/inc/unbound.inc
index 043ced2..043ced2 100644
--- a/etc/inc/unbound.inc
+++ b/src/etc/inc/unbound.inc
diff --git a/etc/inc/upgrade_config.inc b/src/etc/inc/upgrade_config.inc
index 03a9642..f5268d2 100644
--- a/etc/inc/upgrade_config.inc
+++ b/src/etc/inc/upgrade_config.inc
@@ -3821,4 +3821,13 @@ function upgrade_119_to_120() {
}
}
+function upgrade_120_to_121() {
+ global $config;
+ foreach ($config['system']['user'] as &$user) {
+ if (isset($user['nt-hash'])) {
+ unset($user['nt-hash']);
+ }
+ }
+}
+
?>
diff --git a/etc/inc/util.inc b/src/etc/inc/util.inc
index b2c797b..b2c797b 100644
--- a/etc/inc/util.inc
+++ b/src/etc/inc/util.inc
diff --git a/etc/inc/uuid.php b/src/etc/inc/uuid.php
index 700f392..700f392 100644
--- a/etc/inc/uuid.php
+++ b/src/etc/inc/uuid.php
diff --git a/etc/inc/voucher.inc b/src/etc/inc/voucher.inc
index 7075fa6..7075fa6 100644
--- a/etc/inc/voucher.inc
+++ b/src/etc/inc/voucher.inc
diff --git a/etc/inc/vpn.inc b/src/etc/inc/vpn.inc
index 2820822..2820822 100644
--- a/etc/inc/vpn.inc
+++ b/src/etc/inc/vpn.inc
diff --git a/etc/inc/vslb.inc b/src/etc/inc/vslb.inc
index 05bef31..05bef31 100644
--- a/etc/inc/vslb.inc
+++ b/src/etc/inc/vslb.inc
diff --git a/etc/inc/wizardapp.inc b/src/etc/inc/wizardapp.inc
index bf9f699..bf9f699 100644
--- a/etc/inc/wizardapp.inc
+++ b/src/etc/inc/wizardapp.inc
diff --git a/etc/inc/xmlparse.inc b/src/etc/inc/xmlparse.inc
index 08d9b19..08d9b19 100644
--- a/etc/inc/xmlparse.inc
+++ b/src/etc/inc/xmlparse.inc
diff --git a/etc/inc/xmlparse_attr.inc b/src/etc/inc/xmlparse_attr.inc
index ab90e98..ab90e98 100644
--- a/etc/inc/xmlparse_attr.inc
+++ b/src/etc/inc/xmlparse_attr.inc
diff --git a/etc/inc/xmlreader.inc b/src/etc/inc/xmlreader.inc
index 960acb1..960acb1 100644
--- a/etc/inc/xmlreader.inc
+++ b/src/etc/inc/xmlreader.inc
diff --git a/etc/inc/xmlrpc.inc b/src/etc/inc/xmlrpc.inc
index e96e783..e96e783 100644
--- a/etc/inc/xmlrpc.inc
+++ b/src/etc/inc/xmlrpc.inc
diff --git a/etc/inc/xmlrpc_client.inc b/src/etc/inc/xmlrpc_client.inc
index fbbf977..fbbf977 100644
--- a/etc/inc/xmlrpc_client.inc
+++ b/src/etc/inc/xmlrpc_client.inc
diff --git a/etc/inc/xmlrpc_server.inc b/src/etc/inc/xmlrpc_server.inc
index f4d8a46..f4d8a46 100644
--- a/etc/inc/xmlrpc_server.inc
+++ b/src/etc/inc/xmlrpc_server.inc
diff --git a/etc/inc/zeromq.inc b/src/etc/inc/zeromq.inc
index 6b513d3..6b513d3 100644
--- a/etc/inc/zeromq.inc
+++ b/src/etc/inc/zeromq.inc
diff --git a/etc/inetd.conf b/src/etc/inetd.conf
index 0ff37ae..0ff37ae 100644
--- a/etc/inetd.conf
+++ b/src/etc/inetd.conf
diff --git a/etc/login.conf b/src/etc/login.conf
index 1e61a9f..1e61a9f 100644
--- a/etc/login.conf
+++ b/src/etc/login.conf
diff --git a/etc/master.passwd b/src/etc/master.passwd
index bb46954..bb46954 100644
--- a/etc/master.passwd
+++ b/src/etc/master.passwd
diff --git a/etc/motd b/src/etc/motd
index e69de29..e69de29 100644
--- a/etc/motd
+++ b/src/etc/motd
diff --git a/etc/mtree/BSD.local.dist b/src/etc/mtree/BSD.local.dist
index e69de29..e69de29 100644
--- a/etc/mtree/BSD.local.dist
+++ b/src/etc/mtree/BSD.local.dist
diff --git a/etc/networks b/src/etc/networks
index 92982b5..92982b5 100644
--- a/etc/networks
+++ b/src/etc/networks
diff --git a/etc/passwd b/src/etc/passwd
index 040f3e5..040f3e5 100644
--- a/etc/passwd
+++ b/src/etc/passwd
diff --git a/etc/pf.os b/src/etc/pf.os
index 56c7cbf..56c7cbf 100644
--- a/etc/pf.os
+++ b/src/etc/pf.os
diff --git a/etc/pfSense.obsoletedfiles b/src/etc/pfSense.obsoletedfiles
index cae1bcf..cae1bcf 100644
--- a/etc/pfSense.obsoletedfiles
+++ b/src/etc/pfSense.obsoletedfiles
diff --git a/etc/phpshellsessions/changepassword b/src/etc/phpshellsessions/changepassword
index 6243fb8..6243fb8 100644
--- a/etc/phpshellsessions/changepassword
+++ b/src/etc/phpshellsessions/changepassword
diff --git a/etc/phpshellsessions/disablecarp b/src/etc/phpshellsessions/disablecarp
index 1673269..1673269 100644
--- a/etc/phpshellsessions/disablecarp
+++ b/src/etc/phpshellsessions/disablecarp
diff --git a/etc/phpshellsessions/disabledhcpd b/src/etc/phpshellsessions/disabledhcpd
index 4dc029c..4dc029c 100644
--- a/etc/phpshellsessions/disabledhcpd
+++ b/src/etc/phpshellsessions/disabledhcpd
diff --git a/etc/phpshellsessions/disablereferercheck b/src/etc/phpshellsessions/disablereferercheck
index 97d444a..97d444a 100644
--- a/etc/phpshellsessions/disablereferercheck
+++ b/src/etc/phpshellsessions/disablereferercheck
diff --git a/etc/phpshellsessions/enableallowallwan b/src/etc/phpshellsessions/enableallowallwan
index 5ce4f0f..5ce4f0f 100644
--- a/etc/phpshellsessions/enableallowallwan
+++ b/src/etc/phpshellsessions/enableallowallwan
diff --git a/etc/phpshellsessions/enablecarp b/src/etc/phpshellsessions/enablecarp
index 276f29a..276f29a 100644
--- a/etc/phpshellsessions/enablecarp
+++ b/src/etc/phpshellsessions/enablecarp
diff --git a/etc/phpshellsessions/enablesshd b/src/etc/phpshellsessions/enablesshd
index 0dc76de..0dc76de 100644
--- a/etc/phpshellsessions/enablesshd
+++ b/src/etc/phpshellsessions/enablesshd
diff --git a/etc/phpshellsessions/externalconfiglocator b/src/etc/phpshellsessions/externalconfiglocator
index 84534b3..84534b3 100644
--- a/etc/phpshellsessions/externalconfiglocator
+++ b/src/etc/phpshellsessions/externalconfiglocator
diff --git a/etc/phpshellsessions/generateguicert b/src/etc/phpshellsessions/generateguicert
index 925ab60..925ab60 100644
--- a/etc/phpshellsessions/generateguicert
+++ b/src/etc/phpshellsessions/generateguicert
diff --git a/etc/phpshellsessions/gitsync b/src/etc/phpshellsessions/gitsync
index aced804..aced804 100644
--- a/etc/phpshellsessions/gitsync
+++ b/src/etc/phpshellsessions/gitsync
diff --git a/etc/phpshellsessions/installpkg b/src/etc/phpshellsessions/installpkg
index 1ac71bf..1ac71bf 100644
--- a/etc/phpshellsessions/installpkg
+++ b/src/etc/phpshellsessions/installpkg
diff --git a/etc/phpshellsessions/listpkg b/src/etc/phpshellsessions/listpkg
index ed2c793..ed2c793 100644
--- a/etc/phpshellsessions/listpkg
+++ b/src/etc/phpshellsessions/listpkg
diff --git a/etc/phpshellsessions/removepkgconfig b/src/etc/phpshellsessions/removepkgconfig
index ea365bf..ea365bf 100644
--- a/etc/phpshellsessions/removepkgconfig
+++ b/src/etc/phpshellsessions/removepkgconfig
diff --git a/etc/phpshellsessions/removeshaper b/src/etc/phpshellsessions/removeshaper
index 298e618..298e618 100644
--- a/etc/phpshellsessions/removeshaper
+++ b/src/etc/phpshellsessions/removeshaper
diff --git a/etc/phpshellsessions/restartdhcpd b/src/etc/phpshellsessions/restartdhcpd
index e24c842..e24c842 100644
--- a/etc/phpshellsessions/restartdhcpd
+++ b/src/etc/phpshellsessions/restartdhcpd
diff --git a/etc/phpshellsessions/restartipsec b/src/etc/phpshellsessions/restartipsec
index ebbe9b3..ebbe9b3 100644
--- a/etc/phpshellsessions/restartipsec
+++ b/src/etc/phpshellsessions/restartipsec
diff --git a/etc/phpshellsessions/svc b/src/etc/phpshellsessions/svc
index ee1ab40..ee1ab40 100644
--- a/etc/phpshellsessions/svc
+++ b/src/etc/phpshellsessions/svc
diff --git a/etc/phpshellsessions/uninstallpkg b/src/etc/phpshellsessions/uninstallpkg
index 9030e56..9030e56 100644
--- a/etc/phpshellsessions/uninstallpkg
+++ b/src/etc/phpshellsessions/uninstallpkg
diff --git a/etc/platform b/src/etc/platform
index 8443722..8443722 100644
--- a/etc/platform
+++ b/src/etc/platform
diff --git a/etc/printcap b/src/etc/printcap
index e69de29..e69de29 100644
--- a/etc/printcap
+++ b/src/etc/printcap
diff --git a/etc/protocols b/src/etc/protocols
index 763cbcd..763cbcd 100644
--- a/etc/protocols
+++ b/src/etc/protocols
diff --git a/etc/pubkey.pem b/src/etc/pubkey.pem
index 7dd575d..7dd575d 100644
--- a/etc/pubkey.pem
+++ b/src/etc/pubkey.pem
diff --git a/etc/rc b/src/etc/rc
index 1215883..1215883 100755
--- a/etc/rc
+++ b/src/etc/rc
diff --git a/etc/rc.backup_dhcpleases.sh b/src/etc/rc.backup_dhcpleases.sh
index 73f83a8..73f83a8 100755
--- a/etc/rc.backup_dhcpleases.sh
+++ b/src/etc/rc.backup_dhcpleases.sh
diff --git a/etc/rc.backup_rrd.sh b/src/etc/rc.backup_rrd.sh
index c14ffc7..c14ffc7 100755
--- a/etc/rc.backup_rrd.sh
+++ b/src/etc/rc.backup_rrd.sh
diff --git a/etc/rc.banner b/src/etc/rc.banner
index 5e64dae..5e64dae 100755
--- a/etc/rc.banner
+++ b/src/etc/rc.banner
diff --git a/etc/rc.bootup b/src/etc/rc.bootup
index d27f795..d27f795 100755
--- a/etc/rc.bootup
+++ b/src/etc/rc.bootup
diff --git a/etc/rc.captiveportal_configure b/src/etc/rc.captiveportal_configure
index 45c26bf..45c26bf 100755
--- a/etc/rc.captiveportal_configure
+++ b/src/etc/rc.captiveportal_configure
diff --git a/etc/rc.captiveportal_configure_mac b/src/etc/rc.captiveportal_configure_mac
index b0daf68..b0daf68 100755
--- a/etc/rc.captiveportal_configure_mac
+++ b/src/etc/rc.captiveportal_configure_mac
diff --git a/etc/rc.carpbackup b/src/etc/rc.carpbackup
index 6961bc8..6961bc8 100755
--- a/etc/rc.carpbackup
+++ b/src/etc/rc.carpbackup
diff --git a/etc/rc.carpmaster b/src/etc/rc.carpmaster
index 022fe8f..022fe8f 100755
--- a/etc/rc.carpmaster
+++ b/src/etc/rc.carpmaster
diff --git a/etc/rc.cdrom b/src/etc/rc.cdrom
index 5e8d80f..5e8d80f 100755
--- a/etc/rc.cdrom
+++ b/src/etc/rc.cdrom
diff --git a/etc/rc.conf b/src/etc/rc.conf
index 01cd50f..01cd50f 100644
--- a/etc/rc.conf
+++ b/src/etc/rc.conf
diff --git a/etc/rc.conf_mount_ro b/src/etc/rc.conf_mount_ro
index 6beb5e8..6beb5e8 100755
--- a/etc/rc.conf_mount_ro
+++ b/src/etc/rc.conf_mount_ro
diff --git a/etc/rc.conf_mount_rw b/src/etc/rc.conf_mount_rw
index b153e36..b153e36 100755
--- a/etc/rc.conf_mount_rw
+++ b/src/etc/rc.conf_mount_rw
diff --git a/etc/rc.create_full_backup b/src/etc/rc.create_full_backup
index 048e68b..048e68b 100755
--- a/etc/rc.create_full_backup
+++ b/src/etc/rc.create_full_backup
diff --git a/etc/rc.d/etcmfs b/src/etc/rc.d/etcmfs
index 7e50427..7e50427 100755
--- a/etc/rc.d/etcmfs
+++ b/src/etc/rc.d/etcmfs
diff --git a/etc/rc.d/hostid b/src/etc/rc.d/hostid
index 37ea173..37ea173 100755
--- a/etc/rc.d/hostid
+++ b/src/etc/rc.d/hostid
diff --git a/etc/rc.d/varmfs b/src/etc/rc.d/varmfs
index 2921a1a..2921a1a 100755
--- a/etc/rc.d/varmfs
+++ b/src/etc/rc.d/varmfs
diff --git a/etc/rc.dhclient_cron b/src/etc/rc.dhclient_cron
index a38932d..a38932d 100755
--- a/etc/rc.dhclient_cron
+++ b/src/etc/rc.dhclient_cron
diff --git a/etc/rc.disable_hdd_apm b/src/etc/rc.disable_hdd_apm
index e9b3ba5..e9b3ba5 100755
--- a/etc/rc.disable_hdd_apm
+++ b/src/etc/rc.disable_hdd_apm
diff --git a/etc/rc.dumpon b/src/etc/rc.dumpon
index 1ad40bb..1ad40bb 100755
--- a/etc/rc.dumpon
+++ b/src/etc/rc.dumpon
diff --git a/etc/rc.dyndns.update b/src/etc/rc.dyndns.update
index 543b5a0..543b5a0 100755
--- a/etc/rc.dyndns.update
+++ b/src/etc/rc.dyndns.update
diff --git a/etc/rc.embedded b/src/etc/rc.embedded
index 663822d..663822d 100755
--- a/etc/rc.embedded
+++ b/src/etc/rc.embedded
diff --git a/etc/rc.expireaccounts b/src/etc/rc.expireaccounts
index 3befa17..3befa17 100755
--- a/etc/rc.expireaccounts
+++ b/src/etc/rc.expireaccounts
diff --git a/etc/rc.filter_configure b/src/etc/rc.filter_configure
index 2c996e9..2c996e9 100755
--- a/etc/rc.filter_configure
+++ b/src/etc/rc.filter_configure
diff --git a/etc/rc.filter_configure_sync b/src/etc/rc.filter_configure_sync
index 86ab309..86ab309 100755
--- a/etc/rc.filter_configure_sync
+++ b/src/etc/rc.filter_configure_sync
diff --git a/etc/rc.filter_configure_xmlrpc b/src/etc/rc.filter_configure_xmlrpc
index 584cc9c..584cc9c 100755
--- a/etc/rc.filter_configure_xmlrpc
+++ b/src/etc/rc.filter_configure_xmlrpc
diff --git a/etc/rc.filter_synchronize b/src/etc/rc.filter_synchronize
index f31fa34..f31fa34 100755
--- a/etc/rc.filter_synchronize
+++ b/src/etc/rc.filter_synchronize
diff --git a/etc/rc.firmware b/src/etc/rc.firmware
index e8d549f..e8d549f 100755
--- a/etc/rc.firmware
+++ b/src/etc/rc.firmware
diff --git a/etc/rc.firmware_auto b/src/etc/rc.firmware_auto
index 5b355df..5b355df 100755
--- a/etc/rc.firmware_auto
+++ b/src/etc/rc.firmware_auto
diff --git a/etc/rc.halt b/src/etc/rc.halt
index fd6318b..fd6318b 100755
--- a/etc/rc.halt
+++ b/src/etc/rc.halt
diff --git a/etc/rc.initial b/src/etc/rc.initial
index b103bf7..b103bf7 100755
--- a/etc/rc.initial
+++ b/src/etc/rc.initial
diff --git a/etc/rc.initial.defaults b/src/etc/rc.initial.defaults
index 6901dae..6901dae 100755
--- a/etc/rc.initial.defaults
+++ b/src/etc/rc.initial.defaults
diff --git a/etc/rc.initial.firmware_update b/src/etc/rc.initial.firmware_update
index 2dff066..2dff066 100755
--- a/etc/rc.initial.firmware_update
+++ b/src/etc/rc.initial.firmware_update
diff --git a/etc/rc.initial.halt b/src/etc/rc.initial.halt
index 9ff189b..9ff189b 100755
--- a/etc/rc.initial.halt
+++ b/src/etc/rc.initial.halt
diff --git a/etc/rc.initial.password b/src/etc/rc.initial.password
index b5e01ed..b5e01ed 100755
--- a/etc/rc.initial.password
+++ b/src/etc/rc.initial.password
diff --git a/etc/rc.initial.ping b/src/etc/rc.initial.ping
index 055d556..055d556 100755
--- a/etc/rc.initial.ping
+++ b/src/etc/rc.initial.ping
diff --git a/etc/rc.initial.reboot b/src/etc/rc.initial.reboot
index 38f9e3b..38f9e3b 100755
--- a/etc/rc.initial.reboot
+++ b/src/etc/rc.initial.reboot
diff --git a/etc/rc.initial.setlanip b/src/etc/rc.initial.setlanip
index e33a05a..e33a05a 100755
--- a/etc/rc.initial.setlanip
+++ b/src/etc/rc.initial.setlanip
diff --git a/etc/rc.initial.setports b/src/etc/rc.initial.setports
index 147912f..147912f 100755
--- a/etc/rc.initial.setports
+++ b/src/etc/rc.initial.setports
diff --git a/etc/rc.initial.store_config_to_removable_device b/src/etc/rc.initial.store_config_to_removable_device
index a40df6f..a40df6f 100755
--- a/etc/rc.initial.store_config_to_removable_device
+++ b/src/etc/rc.initial.store_config_to_removable_device
diff --git a/etc/rc.initial.toggle_sshd b/src/etc/rc.initial.toggle_sshd
index 695a6c1..695a6c1 100755
--- a/etc/rc.initial.toggle_sshd
+++ b/src/etc/rc.initial.toggle_sshd
diff --git a/etc/rc.interfaces_carp_configure b/src/etc/rc.interfaces_carp_configure
index 33a0b38..33a0b38 100755
--- a/etc/rc.interfaces_carp_configure
+++ b/src/etc/rc.interfaces_carp_configure
diff --git a/etc/rc.interfaces_lan_configure b/src/etc/rc.interfaces_lan_configure
index 2924cf9..2924cf9 100755
--- a/etc/rc.interfaces_lan_configure
+++ b/src/etc/rc.interfaces_lan_configure
diff --git a/etc/rc.interfaces_opt_configure b/src/etc/rc.interfaces_opt_configure
index c00877a..c00877a 100755
--- a/etc/rc.interfaces_opt_configure
+++ b/src/etc/rc.interfaces_opt_configure
diff --git a/etc/rc.interfaces_wan_configure b/src/etc/rc.interfaces_wan_configure
index 9b064d0..9b064d0 100755
--- a/etc/rc.interfaces_wan_configure
+++ b/src/etc/rc.interfaces_wan_configure
diff --git a/etc/rc.kill_states b/src/etc/rc.kill_states
index 715c860..715c860 100755
--- a/etc/rc.kill_states
+++ b/src/etc/rc.kill_states
diff --git a/etc/rc.linkup b/src/etc/rc.linkup
index 153cd49..153cd49 100755
--- a/etc/rc.linkup
+++ b/src/etc/rc.linkup
diff --git a/etc/rc.nanobsd_switch_boot_slice b/src/etc/rc.nanobsd_switch_boot_slice
index 58dbcc6..58dbcc6 100755
--- a/etc/rc.nanobsd_switch_boot_slice
+++ b/src/etc/rc.nanobsd_switch_boot_slice
diff --git a/etc/rc.newipsecdns b/src/etc/rc.newipsecdns
index 7c5428a..7c5428a 100755
--- a/etc/rc.newipsecdns
+++ b/src/etc/rc.newipsecdns
diff --git a/etc/rc.newroutedns b/src/etc/rc.newroutedns
index de3a081..de3a081 100755
--- a/etc/rc.newroutedns
+++ b/src/etc/rc.newroutedns
diff --git a/etc/rc.newwanip b/src/etc/rc.newwanip
index 01d211c..01d211c 100755
--- a/etc/rc.newwanip
+++ b/src/etc/rc.newwanip
diff --git a/etc/rc.newwanipv6 b/src/etc/rc.newwanipv6
index 1030d96..1030d96 100755
--- a/etc/rc.newwanipv6
+++ b/src/etc/rc.newwanipv6
diff --git a/etc/rc.notify_message b/src/etc/rc.notify_message
index fec1949..fec1949 100755
--- a/etc/rc.notify_message
+++ b/src/etc/rc.notify_message
diff --git a/etc/rc.ntpdate b/src/etc/rc.ntpdate
index 4bdc647..4bdc647 100755
--- a/etc/rc.ntpdate
+++ b/src/etc/rc.ntpdate
diff --git a/etc/rc.openvpn b/src/etc/rc.openvpn
index cda8067..cda8067 100755
--- a/etc/rc.openvpn
+++ b/src/etc/rc.openvpn
diff --git a/etc/rc.packages b/src/etc/rc.packages
index cdca880..cdca880 100755
--- a/etc/rc.packages
+++ b/src/etc/rc.packages
diff --git a/etc/rc.php-fpm_restart b/src/etc/rc.php-fpm_restart
index 6ce04c6..6ce04c6 100755
--- a/etc/rc.php-fpm_restart
+++ b/src/etc/rc.php-fpm_restart
diff --git a/etc/rc.php_ini_setup b/src/etc/rc.php_ini_setup
index 0013b58..0013b58 100755
--- a/etc/rc.php_ini_setup
+++ b/src/etc/rc.php_ini_setup
diff --git a/etc/rc.prunecaptiveportal b/src/etc/rc.prunecaptiveportal
index c4b760a..c4b760a 100755
--- a/etc/rc.prunecaptiveportal
+++ b/src/etc/rc.prunecaptiveportal
diff --git a/etc/rc.reboot b/src/etc/rc.reboot
index afdc93c..afdc93c 100755
--- a/etc/rc.reboot
+++ b/src/etc/rc.reboot
diff --git a/etc/rc.reload_all b/src/etc/rc.reload_all
index 162553c..162553c 100755
--- a/etc/rc.reload_all
+++ b/src/etc/rc.reload_all
diff --git a/etc/rc.reload_interfaces b/src/etc/rc.reload_interfaces
index e34588f..e34588f 100755
--- a/etc/rc.reload_interfaces
+++ b/src/etc/rc.reload_interfaces
diff --git a/etc/rc.resolv_conf_generate b/src/etc/rc.resolv_conf_generate
index e37203b..e37203b 100755
--- a/etc/rc.resolv_conf_generate
+++ b/src/etc/rc.resolv_conf_generate
diff --git a/etc/rc.restart_webgui b/src/etc/rc.restart_webgui
index 7a0bcd3..7a0bcd3 100755
--- a/etc/rc.restart_webgui
+++ b/src/etc/rc.restart_webgui
diff --git a/etc/rc.restore_config_backup b/src/etc/rc.restore_config_backup
index b64e023..b64e023 100755
--- a/etc/rc.restore_config_backup
+++ b/src/etc/rc.restore_config_backup
diff --git a/etc/rc.restore_full_backup b/src/etc/rc.restore_full_backup
index dc44c19..dc44c19 100755
--- a/etc/rc.restore_full_backup
+++ b/src/etc/rc.restore_full_backup
diff --git a/etc/rc.savecore b/src/etc/rc.savecore
index 1612a40..1612a40 100755
--- a/etc/rc.savecore
+++ b/src/etc/rc.savecore
diff --git a/etc/rc.savevoucher b/src/etc/rc.savevoucher
index 22e592d..22e592d 100755
--- a/etc/rc.savevoucher
+++ b/src/etc/rc.savevoucher
diff --git a/etc/rc.shutdown b/src/etc/rc.shutdown
index aa6468a..aa6468a 100755
--- a/etc/rc.shutdown
+++ b/src/etc/rc.shutdown
diff --git a/etc/rc.start_packages b/src/etc/rc.start_packages
index 3d8bbbc..3d8bbbc 100755
--- a/etc/rc.start_packages
+++ b/src/etc/rc.start_packages
diff --git a/etc/rc.stop_packages b/src/etc/rc.stop_packages
index 995248a..995248a 100755
--- a/etc/rc.stop_packages
+++ b/src/etc/rc.stop_packages
diff --git a/etc/rc.update_alias_url_data b/src/etc/rc.update_alias_url_data
index fd56b43..fd56b43 100755
--- a/etc/rc.update_alias_url_data
+++ b/src/etc/rc.update_alias_url_data
diff --git a/etc/rc.update_bogons.sh b/src/etc/rc.update_bogons.sh
index 85cb7df..85cb7df 100755
--- a/etc/rc.update_bogons.sh
+++ b/src/etc/rc.update_bogons.sh
diff --git a/etc/rc.update_urltables b/src/etc/rc.update_urltables
index c4dfeb1..c4dfeb1 100755
--- a/etc/rc.update_urltables
+++ b/src/etc/rc.update_urltables
diff --git a/etc/services b/src/etc/services
index 1f85da0..1f85da0 100644
--- a/etc/services
+++ b/src/etc/services
diff --git a/etc/shells b/src/etc/shells
index 3ccb4dc..3ccb4dc 100644
--- a/etc/shells
+++ b/src/etc/shells
diff --git a/etc/skel/dot.profile b/src/etc/skel/dot.profile
index 700597a..700597a 100644
--- a/etc/skel/dot.profile
+++ b/src/etc/skel/dot.profile
diff --git a/etc/skel/dot.shrc b/src/etc/skel/dot.shrc
index 6f3c2fc..6f3c2fc 100644
--- a/etc/skel/dot.shrc
+++ b/src/etc/skel/dot.shrc
diff --git a/etc/skel/dot.tcshrc b/src/etc/skel/dot.tcshrc
index 38cf897..38cf897 100644
--- a/etc/skel/dot.tcshrc
+++ b/src/etc/skel/dot.tcshrc
diff --git a/etc/ssh/sshd_config b/src/etc/ssh/sshd_config
index f2f288b..f2f288b 100644
--- a/etc/ssh/sshd_config
+++ b/src/etc/ssh/sshd_config
diff --git a/etc/sshd b/src/etc/sshd
index 05ddb63..05ddb63 100755
--- a/etc/sshd
+++ b/src/etc/sshd
diff --git a/etc/ssl/openssl.cnf b/src/etc/ssl/openssl.cnf
index 41664e6..41664e6 100644
--- a/etc/ssl/openssl.cnf
+++ b/src/etc/ssl/openssl.cnf
diff --git a/etc/syslog.conf b/src/etc/syslog.conf
index 6f29538..6f29538 100644
--- a/etc/syslog.conf
+++ b/src/etc/syslog.conf
diff --git a/etc/ttys b/src/etc/ttys
index 382c6a7..382c6a7 100644
--- a/etc/ttys
+++ b/src/etc/ttys
diff --git a/etc/version b/src/etc/version
index d5221db..d5221db 100644
--- a/etc/version
+++ b/src/etc/version
diff --git a/home/.empty b/src/home/.empty
index e69de29..e69de29 100644
--- a/home/.empty
+++ b/src/home/.empty
diff --git a/root/.gitsync_merge.sample b/src/root/.gitsync_merge.sample
index 1c2606c..1c2606c 100644
--- a/root/.gitsync_merge.sample
+++ b/src/root/.gitsync_merge.sample
diff --git a/root/.hushlogin b/src/root/.hushlogin
index e69de29..e69de29 100644
--- a/root/.hushlogin
+++ b/src/root/.hushlogin
diff --git a/root/.profile b/src/root/.profile
index 700597a..700597a 100644
--- a/root/.profile
+++ b/src/root/.profile
diff --git a/root/.shrc b/src/root/.shrc
index 6f3c2fc..6f3c2fc 100644
--- a/root/.shrc
+++ b/src/root/.shrc
diff --git a/root/.tcshrc b/src/root/.tcshrc
index 38cf897..38cf897 100644
--- a/root/.tcshrc
+++ b/src/root/.tcshrc
diff --git a/sbin/athctrl.sh b/src/sbin/athctrl.sh
index 6ba35ff..6ba35ff 100755
--- a/sbin/athctrl.sh
+++ b/src/sbin/athctrl.sh
diff --git a/sbin/dhclient-script b/src/sbin/dhclient-script
index 9d71aaf..9d71aaf 100755
--- a/sbin/dhclient-script
+++ b/src/sbin/dhclient-script
diff --git a/usr/local/bin/3gstats.php b/src/usr/local/bin/3gstats.php
index cc385fc..cc385fc 100755
--- a/usr/local/bin/3gstats.php
+++ b/src/usr/local/bin/3gstats.php
diff --git a/usr/local/bin/beep.sh b/src/usr/local/bin/beep.sh
index ed9382d..ed9382d 100755
--- a/usr/local/bin/beep.sh
+++ b/src/usr/local/bin/beep.sh
diff --git a/usr/local/bin/captiveportal_gather_stats.php b/src/usr/local/bin/captiveportal_gather_stats.php
index 23d6b5d..23d6b5d 100644
--- a/usr/local/bin/captiveportal_gather_stats.php
+++ b/src/usr/local/bin/captiveportal_gather_stats.php
diff --git a/usr/local/bin/easyrule b/src/usr/local/bin/easyrule
index 8461a7a..8461a7a 100755
--- a/usr/local/bin/easyrule
+++ b/src/usr/local/bin/easyrule
diff --git a/usr/local/bin/filterparser.php b/src/usr/local/bin/filterparser.php
index fa60262..fa60262 100755
--- a/usr/local/bin/filterparser.php
+++ b/src/usr/local/bin/filterparser.php
diff --git a/usr/local/bin/mail.php b/src/usr/local/bin/mail.php
index 130d9e0..130d9e0 100755
--- a/usr/local/bin/mail.php
+++ b/src/usr/local/bin/mail.php
diff --git a/usr/local/bin/ping_hosts.sh b/src/usr/local/bin/ping_hosts.sh
index eef64f3..eef64f3 100755
--- a/usr/local/bin/ping_hosts.sh
+++ b/src/usr/local/bin/ping_hosts.sh
diff --git a/usr/local/bin/runmsntp.sh b/src/usr/local/bin/runmsntp.sh
index d770632..d770632 100755
--- a/usr/local/bin/runmsntp.sh
+++ b/src/usr/local/bin/runmsntp.sh
diff --git a/usr/local/bin/slowdownpipe.sh b/src/usr/local/bin/slowdownpipe.sh
index 13b9e8d..13b9e8d 100755
--- a/usr/local/bin/slowdownpipe.sh
+++ b/src/usr/local/bin/slowdownpipe.sh
diff --git a/usr/local/bin/viconfig b/src/usr/local/bin/viconfig
index 93618f2..93618f2 100755
--- a/usr/local/bin/viconfig
+++ b/src/usr/local/bin/viconfig
diff --git a/usr/local/captiveportal/index.php b/src/usr/local/captiveportal/index.php
index d450233..b851e91 100644
--- a/usr/local/captiveportal/index.php
+++ b/src/usr/local/captiveportal/index.php
@@ -71,8 +71,25 @@ if (!$clientip) {
return;
}
+$cpsession = captiveportal_isip_logged($clientip);
$ourhostname = portal_hostname_from_client_ip($clientip);
-if ($orig_host != $ourhostname) {
+/* Automatically switching to the logout page requires a custom logout page to be present. */
+if ((!empty($cpsession)) && (! $_POST['logout_id']) && (!empty($cpcfg['page']['logouttext']))) {
+ /* if client already logged in so show logout page */
+ $protocol = (isset($config['captiveportal'][$cpzone]['httpslogin'])) ? 'https://' : 'http://';
+ $logouturl = "{$protocol}{$ourhostname}/";
+
+ $sessionid = $cpsession['sessionid'];
+ $attributes = array();
+ if (!empty($cpsession['session_timeout']))
+ $attributes['session_timeout'] = $cpsession['session_timeout'];
+ if (!empty($cpsession['session_terminate_time']))
+ $attributes['session_terminate_time'] = $cpsession['session_terminate_time'];
+
+ include("{$g['varetc_path']}/captiveportal-{$cpzone}-logout.html");
+ ob_flush();
+ return;
+} else if ($orig_host != $ourhostname) {
/* the client thinks it's connected to the desired web server, but instead
it's connected to us. Issue a redirect... */
$protocol = (isset($cpcfg['httpslogin'])) ? 'https://' : 'http://';
diff --git a/usr/local/captiveportal/radius_accounting.inc b/src/usr/local/captiveportal/radius_accounting.inc
index 2d9c97e..2d9c97e 100644
--- a/usr/local/captiveportal/radius_accounting.inc
+++ b/src/usr/local/captiveportal/radius_accounting.inc
diff --git a/usr/local/captiveportal/radius_authentication.inc b/src/usr/local/captiveportal/radius_authentication.inc
index 9938e24..9938e24 100644
--- a/usr/local/captiveportal/radius_authentication.inc
+++ b/src/usr/local/captiveportal/radius_authentication.inc
diff --git a/src/usr/local/openssl/openssl.cnf b/src/usr/local/openssl/openssl.cnf
new file mode 120000
index 0000000..f95d25b
--- /dev/null
+++ b/src/usr/local/openssl/openssl.cnf
@@ -0,0 +1 @@
+../../../etc/ssl/openssl.cnf \ No newline at end of file
diff --git a/usr/local/pkg/miniupnpd.inc b/src/usr/local/pkg/miniupnpd.inc
index 4ea768c..4ea768c 100644
--- a/usr/local/pkg/miniupnpd.inc
+++ b/src/usr/local/pkg/miniupnpd.inc
diff --git a/usr/local/pkg/miniupnpd.xml b/src/usr/local/pkg/miniupnpd.xml
index 33d8ac4..33d8ac4 100644
--- a/usr/local/pkg/miniupnpd.xml
+++ b/src/usr/local/pkg/miniupnpd.xml
diff --git a/usr/local/sbin/cleargmirror.sh b/src/usr/local/sbin/cleargmirror.sh
index a00cc93..a00cc93 100755
--- a/usr/local/sbin/cleargmirror.sh
+++ b/src/usr/local/sbin/cleargmirror.sh
diff --git a/usr/local/sbin/cleargpt.sh b/src/usr/local/sbin/cleargpt.sh
index 07d530a..07d530a 100755
--- a/usr/local/sbin/cleargpt.sh
+++ b/src/usr/local/sbin/cleargpt.sh
diff --git a/usr/local/sbin/gmirror_status_check.php b/src/usr/local/sbin/gmirror_status_check.php
index f19a5d1..f19a5d1 100644
--- a/usr/local/sbin/gmirror_status_check.php
+++ b/src/usr/local/sbin/gmirror_status_check.php
diff --git a/usr/local/sbin/mpd.script b/src/usr/local/sbin/mpd.script
index 28054d7..28054d7 100644
--- a/usr/local/sbin/mpd.script
+++ b/src/usr/local/sbin/mpd.script
diff --git a/usr/local/sbin/ntpdate_sync_once.sh b/src/usr/local/sbin/ntpdate_sync_once.sh
index c183b79..c183b79 100755
--- a/usr/local/sbin/ntpdate_sync_once.sh
+++ b/src/usr/local/sbin/ntpdate_sync_once.sh
diff --git a/usr/local/sbin/openvpn.attributes.sh b/src/usr/local/sbin/openvpn.attributes.sh
index add8e32..add8e32 100755
--- a/usr/local/sbin/openvpn.attributes.sh
+++ b/src/usr/local/sbin/openvpn.attributes.sh
diff --git a/usr/local/sbin/ovpn-linkdown b/src/usr/local/sbin/ovpn-linkdown
index 708d507..708d507 100755
--- a/usr/local/sbin/ovpn-linkdown
+++ b/src/usr/local/sbin/ovpn-linkdown
diff --git a/usr/local/sbin/ovpn-linkup b/src/usr/local/sbin/ovpn-linkup
index 1164835..1164835 100755
--- a/usr/local/sbin/ovpn-linkup
+++ b/src/usr/local/sbin/ovpn-linkup
diff --git a/usr/local/sbin/ovpn_auth_verify b/src/usr/local/sbin/ovpn_auth_verify
index b38fcb9..b38fcb9 100755
--- a/usr/local/sbin/ovpn_auth_verify
+++ b/src/usr/local/sbin/ovpn_auth_verify
diff --git a/usr/local/sbin/pfSsh.php b/src/usr/local/sbin/pfSsh.php
index 8bfc909..8bfc909 100755
--- a/usr/local/sbin/pfSsh.php
+++ b/src/usr/local/sbin/pfSsh.php
diff --git a/usr/local/sbin/ppp-linkdown b/src/usr/local/sbin/ppp-linkdown
index 62d07ed..62d07ed 100755
--- a/usr/local/sbin/ppp-linkdown
+++ b/src/usr/local/sbin/ppp-linkdown
diff --git a/usr/local/sbin/ppp-linkup b/src/usr/local/sbin/ppp-linkup
index 2d1eb33..2d1eb33 100755
--- a/usr/local/sbin/ppp-linkup
+++ b/src/usr/local/sbin/ppp-linkup
diff --git a/usr/local/sbin/ppp-log-uptime.sh b/src/usr/local/sbin/ppp-log-uptime.sh
index 6fd8def..6fd8def 100755
--- a/usr/local/sbin/ppp-log-uptime.sh
+++ b/src/usr/local/sbin/ppp-log-uptime.sh
diff --git a/usr/local/sbin/ppp-uptime.sh b/src/usr/local/sbin/ppp-uptime.sh
index d7a8441..d7a8441 100755
--- a/usr/local/sbin/ppp-uptime.sh
+++ b/src/usr/local/sbin/ppp-uptime.sh
diff --git a/usr/local/sbin/prefixes.php b/src/usr/local/sbin/prefixes.php
index 118bd9e..118bd9e 100644
--- a/usr/local/sbin/prefixes.php
+++ b/src/usr/local/sbin/prefixes.php
diff --git a/usr/local/sbin/show_filter_reload_status.php b/src/usr/local/sbin/show_filter_reload_status.php
index e66c890..e66c890 100755
--- a/usr/local/sbin/show_filter_reload_status.php
+++ b/src/usr/local/sbin/show_filter_reload_status.php
diff --git a/usr/local/sbin/ufslabels.sh b/src/usr/local/sbin/ufslabels.sh
index bded665..bded665 100755
--- a/usr/local/sbin/ufslabels.sh
+++ b/src/usr/local/sbin/ufslabels.sh
diff --git a/usr/local/sbin/vpn-linkdown b/src/usr/local/sbin/vpn-linkdown
index b6d033c..b6d033c 100755
--- a/usr/local/sbin/vpn-linkdown
+++ b/src/usr/local/sbin/vpn-linkdown
diff --git a/usr/local/sbin/vpn-linkup b/src/usr/local/sbin/vpn-linkup
index bca7b6e..bca7b6e 100755
--- a/usr/local/sbin/vpn-linkup
+++ b/src/usr/local/sbin/vpn-linkup
diff --git a/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot b/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
index 7c01160..7c01160 100644
--- a/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
+++ b/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
diff --git a/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po b/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
index 6b417dc..6b417dc 100644
--- a/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
+++ b/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
diff --git a/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.mo b/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.mo
index c2da72c..c2da72c 100644
--- a/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.mo
+++ b/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.mo
Binary files differ
diff --git a/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po b/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po
index a4f299d..a4f299d 100644
--- a/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po
+++ b/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po
diff --git a/usr/local/share/locale/tr/LC_MESSAGES/pfSense.mo b/src/usr/local/share/locale/tr/LC_MESSAGES/pfSense.mo
index bf252ab..bf252ab 100644
--- a/usr/local/share/locale/tr/LC_MESSAGES/pfSense.mo
+++ b/src/usr/local/share/locale/tr/LC_MESSAGES/pfSense.mo
Binary files differ
diff --git a/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po b/src/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po
index 3e9674a..3e9674a 100644
--- a/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po
+++ b/src/usr/local/share/locale/tr/LC_MESSAGES/pfSense.po
diff --git a/usr/local/share/mobile-broadband-provider-info/iso_3166-1_list_en.xml b/src/usr/local/share/mobile-broadband-provider-info/iso_3166-1_list_en.xml
index 44c5a62..44c5a62 100755
--- a/usr/local/share/mobile-broadband-provider-info/iso_3166-1_list_en.xml
+++ b/src/usr/local/share/mobile-broadband-provider-info/iso_3166-1_list_en.xml
diff --git a/usr/local/share/mobile-broadband-provider-info/serviceproviders.xml b/src/usr/local/share/mobile-broadband-provider-info/serviceproviders.xml
index a109fa4..a109fa4 100644
--- a/usr/local/share/mobile-broadband-provider-info/serviceproviders.xml
+++ b/src/usr/local/share/mobile-broadband-provider-info/serviceproviders.xml
diff --git a/usr/local/share/pbi-keys/pfSense-BETA.ssl b/src/usr/local/share/pbi-keys/pfSense-BETA.ssl
index 69ced3a..69ced3a 100644
--- a/usr/local/share/pbi-keys/pfSense-BETA.ssl
+++ b/src/usr/local/share/pbi-keys/pfSense-BETA.ssl
diff --git a/usr/local/share/pfSense/post_upgrade_command b/src/usr/local/share/pfSense/post_upgrade_command
index 097bc5c..097bc5c 100755
--- a/usr/local/share/pfSense/post_upgrade_command
+++ b/src/usr/local/share/pfSense/post_upgrade_command
diff --git a/usr/local/share/pfSense/post_upgrade_command.php b/src/usr/local/share/pfSense/post_upgrade_command.php
index 4a0215a..4a0215a 100755
--- a/usr/local/share/pfSense/post_upgrade_command.php
+++ b/src/usr/local/share/pfSense/post_upgrade_command.php
diff --git a/usr/local/share/pfSense/pre_upgrade_command b/src/usr/local/share/pfSense/pre_upgrade_command
index 2ad365f..2ad365f 100644
--- a/usr/local/share/pfSense/pre_upgrade_command
+++ b/src/usr/local/share/pfSense/pre_upgrade_command
diff --git a/usr/local/share/protocols/100bao.pat b/src/usr/local/share/protocols/100bao.pat
index a03a891..a03a891 100644
--- a/usr/local/share/protocols/100bao.pat
+++ b/src/usr/local/share/protocols/100bao.pat
diff --git a/usr/local/share/protocols/EAOrigin.pat b/src/usr/local/share/protocols/EAOrigin.pat
index 391be72..391be72 100644
--- a/usr/local/share/protocols/EAOrigin.pat
+++ b/src/usr/local/share/protocols/EAOrigin.pat
diff --git a/usr/local/share/protocols/LICENSE b/src/usr/local/share/protocols/LICENSE
index 49395f6..49395f6 100644
--- a/usr/local/share/protocols/LICENSE
+++ b/src/usr/local/share/protocols/LICENSE
diff --git a/usr/local/share/protocols/aim.pat b/src/usr/local/share/protocols/aim.pat
index 5c43930..5c43930 100644
--- a/usr/local/share/protocols/aim.pat
+++ b/src/usr/local/share/protocols/aim.pat
diff --git a/usr/local/share/protocols/aimwebcontent.pat b/src/usr/local/share/protocols/aimwebcontent.pat
index bc9a22d..bc9a22d 100644
--- a/usr/local/share/protocols/aimwebcontent.pat
+++ b/src/usr/local/share/protocols/aimwebcontent.pat
diff --git a/usr/local/share/protocols/any.pat b/src/usr/local/share/protocols/any.pat
index 56d8134..56d8134 100644
--- a/usr/local/share/protocols/any.pat
+++ b/src/usr/local/share/protocols/any.pat
diff --git a/usr/local/share/protocols/applejuice.pat b/src/usr/local/share/protocols/applejuice.pat
index eb552dc..eb552dc 100644
--- a/usr/local/share/protocols/applejuice.pat
+++ b/src/usr/local/share/protocols/applejuice.pat
diff --git a/usr/local/share/protocols/ares.pat b/src/usr/local/share/protocols/ares.pat
index 32dc70d..32dc70d 100644
--- a/usr/local/share/protocols/ares.pat
+++ b/src/usr/local/share/protocols/ares.pat
diff --git a/usr/local/share/protocols/armagetron.pat b/src/usr/local/share/protocols/armagetron.pat
index a032410..a032410 100644
--- a/usr/local/share/protocols/armagetron.pat
+++ b/src/usr/local/share/protocols/armagetron.pat
diff --git a/usr/local/share/protocols/audiogalaxy.pat b/src/usr/local/share/protocols/audiogalaxy.pat
index db1999a..db1999a 100644
--- a/usr/local/share/protocols/audiogalaxy.pat
+++ b/src/usr/local/share/protocols/audiogalaxy.pat
diff --git a/usr/local/share/protocols/battlefield1942.pat b/src/usr/local/share/protocols/battlefield1942.pat
index ed7a7bf..ed7a7bf 100644
--- a/usr/local/share/protocols/battlefield1942.pat
+++ b/src/usr/local/share/protocols/battlefield1942.pat
diff --git a/usr/local/share/protocols/battlefield2.pat b/src/usr/local/share/protocols/battlefield2.pat
index e2d8791..e2d8791 100644
--- a/usr/local/share/protocols/battlefield2.pat
+++ b/src/usr/local/share/protocols/battlefield2.pat
diff --git a/usr/local/share/protocols/battlefield2142.pat b/src/usr/local/share/protocols/battlefield2142.pat
index 4c0e42b..4c0e42b 100644
--- a/usr/local/share/protocols/battlefield2142.pat
+++ b/src/usr/local/share/protocols/battlefield2142.pat
diff --git a/usr/local/share/protocols/bgp.pat b/src/usr/local/share/protocols/bgp.pat
index 61e417f..61e417f 100644
--- a/usr/local/share/protocols/bgp.pat
+++ b/src/usr/local/share/protocols/bgp.pat
diff --git a/usr/local/share/protocols/biff.pat b/src/usr/local/share/protocols/biff.pat
index 91e8bbf..91e8bbf 100644
--- a/usr/local/share/protocols/biff.pat
+++ b/src/usr/local/share/protocols/biff.pat
diff --git a/usr/local/share/protocols/bittorrent.pat b/src/usr/local/share/protocols/bittorrent.pat
index c66f867..c66f867 100644
--- a/usr/local/share/protocols/bittorrent.pat
+++ b/src/usr/local/share/protocols/bittorrent.pat
diff --git a/usr/local/share/protocols/chikka.pat b/src/usr/local/share/protocols/chikka.pat
index a97ef28..a97ef28 100644
--- a/usr/local/share/protocols/chikka.pat
+++ b/src/usr/local/share/protocols/chikka.pat
diff --git a/usr/local/share/protocols/cimd.pat b/src/usr/local/share/protocols/cimd.pat
index f508350..f508350 100644
--- a/usr/local/share/protocols/cimd.pat
+++ b/src/usr/local/share/protocols/cimd.pat
diff --git a/usr/local/share/protocols/ciscovpn.pat b/src/usr/local/share/protocols/ciscovpn.pat
index d3dd7a6..d3dd7a6 100644
--- a/usr/local/share/protocols/ciscovpn.pat
+++ b/src/usr/local/share/protocols/ciscovpn.pat
diff --git a/usr/local/share/protocols/citrix.pat b/src/usr/local/share/protocols/citrix.pat
index fa73ce1..fa73ce1 100644
--- a/usr/local/share/protocols/citrix.pat
+++ b/src/usr/local/share/protocols/citrix.pat
diff --git a/usr/local/share/protocols/code_red.pat b/src/usr/local/share/protocols/code_red.pat
index df0beee..df0beee 100644
--- a/usr/local/share/protocols/code_red.pat
+++ b/src/usr/local/share/protocols/code_red.pat
diff --git a/usr/local/share/protocols/counterstrike-source.pat b/src/usr/local/share/protocols/counterstrike-source.pat
index 8ebd627..8ebd627 100644
--- a/usr/local/share/protocols/counterstrike-source.pat
+++ b/src/usr/local/share/protocols/counterstrike-source.pat
diff --git a/usr/local/share/protocols/cvs.pat b/src/usr/local/share/protocols/cvs.pat
index fc084d3..fc084d3 100644
--- a/usr/local/share/protocols/cvs.pat
+++ b/src/usr/local/share/protocols/cvs.pat
diff --git a/usr/local/share/protocols/dayofdefeat-source.pat b/src/usr/local/share/protocols/dayofdefeat-source.pat
index 42b24bb..42b24bb 100644
--- a/usr/local/share/protocols/dayofdefeat-source.pat
+++ b/src/usr/local/share/protocols/dayofdefeat-source.pat
diff --git a/usr/local/share/protocols/dazhihui.pat b/src/usr/local/share/protocols/dazhihui.pat
index 032440c..032440c 100644
--- a/usr/local/share/protocols/dazhihui.pat
+++ b/src/usr/local/share/protocols/dazhihui.pat
diff --git a/usr/local/share/protocols/dhcp.pat b/src/usr/local/share/protocols/dhcp.pat
index 426480d..426480d 100644
--- a/usr/local/share/protocols/dhcp.pat
+++ b/src/usr/local/share/protocols/dhcp.pat
diff --git a/usr/local/share/protocols/directconnect.pat b/src/usr/local/share/protocols/directconnect.pat
index 13be4a1..13be4a1 100644
--- a/usr/local/share/protocols/directconnect.pat
+++ b/src/usr/local/share/protocols/directconnect.pat
diff --git a/usr/local/share/protocols/dns.pat b/src/usr/local/share/protocols/dns.pat
index c351831..c351831 100644
--- a/usr/local/share/protocols/dns.pat
+++ b/src/usr/local/share/protocols/dns.pat
diff --git a/usr/local/share/protocols/doom3.pat b/src/usr/local/share/protocols/doom3.pat
index 7d32d6f..7d32d6f 100644
--- a/usr/local/share/protocols/doom3.pat
+++ b/src/usr/local/share/protocols/doom3.pat
diff --git a/usr/local/share/protocols/edonkey.pat b/src/usr/local/share/protocols/edonkey.pat
index bc2522e..bc2522e 100644
--- a/usr/local/share/protocols/edonkey.pat
+++ b/src/usr/local/share/protocols/edonkey.pat
diff --git a/usr/local/share/protocols/exe.pat b/src/usr/local/share/protocols/exe.pat
index 0a16e2a..0a16e2a 100644
--- a/usr/local/share/protocols/exe.pat
+++ b/src/usr/local/share/protocols/exe.pat
diff --git a/usr/local/share/protocols/fasttrack.pat b/src/usr/local/share/protocols/fasttrack.pat
index 6ed8ff1..6ed8ff1 100644
--- a/usr/local/share/protocols/fasttrack.pat
+++ b/src/usr/local/share/protocols/fasttrack.pat
diff --git a/usr/local/share/protocols/finger.pat b/src/usr/local/share/protocols/finger.pat
index f567f8c..f567f8c 100644
--- a/usr/local/share/protocols/finger.pat
+++ b/src/usr/local/share/protocols/finger.pat
diff --git a/usr/local/share/protocols/flash.pat b/src/usr/local/share/protocols/flash.pat
index 23e5d74..23e5d74 100644
--- a/usr/local/share/protocols/flash.pat
+++ b/src/usr/local/share/protocols/flash.pat
diff --git a/usr/local/share/protocols/freenet.pat b/src/usr/local/share/protocols/freenet.pat
index c62ad57..c62ad57 100644
--- a/usr/local/share/protocols/freenet.pat
+++ b/src/usr/local/share/protocols/freenet.pat
diff --git a/usr/local/share/protocols/ftp.pat b/src/usr/local/share/protocols/ftp.pat
index 44d97c4..44d97c4 100644
--- a/usr/local/share/protocols/ftp.pat
+++ b/src/usr/local/share/protocols/ftp.pat
diff --git a/usr/local/share/protocols/gif.pat b/src/usr/local/share/protocols/gif.pat
index d54ed91..d54ed91 100644
--- a/usr/local/share/protocols/gif.pat
+++ b/src/usr/local/share/protocols/gif.pat
diff --git a/usr/local/share/protocols/gkrellm.pat b/src/usr/local/share/protocols/gkrellm.pat
index 73eb537..73eb537 100644
--- a/usr/local/share/protocols/gkrellm.pat
+++ b/src/usr/local/share/protocols/gkrellm.pat
diff --git a/usr/local/share/protocols/gnucleuslan.pat b/src/usr/local/share/protocols/gnucleuslan.pat
index ae5895b..ae5895b 100644
--- a/usr/local/share/protocols/gnucleuslan.pat
+++ b/src/usr/local/share/protocols/gnucleuslan.pat
diff --git a/usr/local/share/protocols/gnutella.pat b/src/usr/local/share/protocols/gnutella.pat
index 770ed43..770ed43 100644
--- a/usr/local/share/protocols/gnutella.pat
+++ b/src/usr/local/share/protocols/gnutella.pat
diff --git a/usr/local/share/protocols/goboogy.pat b/src/usr/local/share/protocols/goboogy.pat
index d88d00b..d88d00b 100644
--- a/usr/local/share/protocols/goboogy.pat
+++ b/src/usr/local/share/protocols/goboogy.pat
diff --git a/usr/local/share/protocols/gopher.pat b/src/usr/local/share/protocols/gopher.pat
index 773016f..773016f 100644
--- a/usr/local/share/protocols/gopher.pat
+++ b/src/usr/local/share/protocols/gopher.pat
diff --git a/usr/local/share/protocols/gtalk.pat b/src/usr/local/share/protocols/gtalk.pat
index aa538ca..aa538ca 100644
--- a/usr/local/share/protocols/gtalk.pat
+++ b/src/usr/local/share/protocols/gtalk.pat
diff --git a/usr/local/share/protocols/guildwars.pat b/src/usr/local/share/protocols/guildwars.pat
index 65d2b92..65d2b92 100644
--- a/usr/local/share/protocols/guildwars.pat
+++ b/src/usr/local/share/protocols/guildwars.pat
diff --git a/usr/local/share/protocols/h323.pat b/src/usr/local/share/protocols/h323.pat
index 75b1a39..75b1a39 100644
--- a/usr/local/share/protocols/h323.pat
+++ b/src/usr/local/share/protocols/h323.pat
diff --git a/usr/local/share/protocols/halflife2-deathmatch.pat b/src/usr/local/share/protocols/halflife2-deathmatch.pat
index 45d0bb0..45d0bb0 100644
--- a/usr/local/share/protocols/halflife2-deathmatch.pat
+++ b/src/usr/local/share/protocols/halflife2-deathmatch.pat
diff --git a/usr/local/share/protocols/hddtemp.pat b/src/usr/local/share/protocols/hddtemp.pat
index cdd908c..cdd908c 100644
--- a/usr/local/share/protocols/hddtemp.pat
+++ b/src/usr/local/share/protocols/hddtemp.pat
diff --git a/usr/local/share/protocols/hotline.pat b/src/usr/local/share/protocols/hotline.pat
index 20ec6de..20ec6de 100644
--- a/usr/local/share/protocols/hotline.pat
+++ b/src/usr/local/share/protocols/hotline.pat
diff --git a/usr/local/share/protocols/html.pat b/src/usr/local/share/protocols/html.pat
index d834a96..d834a96 100644
--- a/usr/local/share/protocols/html.pat
+++ b/src/usr/local/share/protocols/html.pat
diff --git a/usr/local/share/protocols/http-dap.pat b/src/usr/local/share/protocols/http-dap.pat
index 216d8d6..216d8d6 100644
--- a/usr/local/share/protocols/http-dap.pat
+++ b/src/usr/local/share/protocols/http-dap.pat
diff --git a/usr/local/share/protocols/http-freshdownload.pat b/src/usr/local/share/protocols/http-freshdownload.pat
index a342e86..a342e86 100644
--- a/usr/local/share/protocols/http-freshdownload.pat
+++ b/src/usr/local/share/protocols/http-freshdownload.pat
diff --git a/usr/local/share/protocols/http-itunes.pat b/src/usr/local/share/protocols/http-itunes.pat
index fd44ee4..fd44ee4 100644
--- a/usr/local/share/protocols/http-itunes.pat
+++ b/src/usr/local/share/protocols/http-itunes.pat
diff --git a/usr/local/share/protocols/http-rtsp.pat b/src/usr/local/share/protocols/http-rtsp.pat
index 73ef926..73ef926 100644
--- a/usr/local/share/protocols/http-rtsp.pat
+++ b/src/usr/local/share/protocols/http-rtsp.pat
diff --git a/usr/local/share/protocols/http.pat b/src/usr/local/share/protocols/http.pat
index 5122310..5122310 100644
--- a/usr/local/share/protocols/http.pat
+++ b/src/usr/local/share/protocols/http.pat
diff --git a/usr/local/share/protocols/httpaudio.pat b/src/usr/local/share/protocols/httpaudio.pat
index c6cdd9a..c6cdd9a 100644
--- a/usr/local/share/protocols/httpaudio.pat
+++ b/src/usr/local/share/protocols/httpaudio.pat
diff --git a/usr/local/share/protocols/httpcachehit.pat b/src/usr/local/share/protocols/httpcachehit.pat
index 41cb099..41cb099 100644
--- a/usr/local/share/protocols/httpcachehit.pat
+++ b/src/usr/local/share/protocols/httpcachehit.pat
diff --git a/usr/local/share/protocols/httpcachemiss.pat b/src/usr/local/share/protocols/httpcachemiss.pat
index 09ac6cd..09ac6cd 100644
--- a/usr/local/share/protocols/httpcachemiss.pat
+++ b/src/usr/local/share/protocols/httpcachemiss.pat
diff --git a/usr/local/share/protocols/httpvideo.pat b/src/usr/local/share/protocols/httpvideo.pat
index 4a75ce0..4a75ce0 100644
--- a/usr/local/share/protocols/httpvideo.pat
+++ b/src/usr/local/share/protocols/httpvideo.pat
diff --git a/usr/local/share/protocols/ident.pat b/src/usr/local/share/protocols/ident.pat
index 3205e5e..3205e5e 100644
--- a/usr/local/share/protocols/ident.pat
+++ b/src/usr/local/share/protocols/ident.pat
diff --git a/usr/local/share/protocols/imap.pat b/src/usr/local/share/protocols/imap.pat
index 3f989c0..3f989c0 100644
--- a/usr/local/share/protocols/imap.pat
+++ b/src/usr/local/share/protocols/imap.pat
diff --git a/usr/local/share/protocols/imesh.pat b/src/usr/local/share/protocols/imesh.pat
index 4cb7ac7..4cb7ac7 100644
--- a/usr/local/share/protocols/imesh.pat
+++ b/src/usr/local/share/protocols/imesh.pat
diff --git a/usr/local/share/protocols/ipp.pat b/src/usr/local/share/protocols/ipp.pat
index 15540d0..15540d0 100644
--- a/usr/local/share/protocols/ipp.pat
+++ b/src/usr/local/share/protocols/ipp.pat
diff --git a/usr/local/share/protocols/irc.pat b/src/usr/local/share/protocols/irc.pat
index b922b3e..b922b3e 100644
--- a/usr/local/share/protocols/irc.pat
+++ b/src/usr/local/share/protocols/irc.pat
diff --git a/usr/local/share/protocols/jabber.pat b/src/usr/local/share/protocols/jabber.pat
index 7c32890..7c32890 100644
--- a/usr/local/share/protocols/jabber.pat
+++ b/src/usr/local/share/protocols/jabber.pat
diff --git a/usr/local/share/protocols/jpeg.pat b/src/usr/local/share/protocols/jpeg.pat
index fd1a249..fd1a249 100644
--- a/usr/local/share/protocols/jpeg.pat
+++ b/src/usr/local/share/protocols/jpeg.pat
diff --git a/usr/local/share/protocols/kugoo.pat b/src/usr/local/share/protocols/kugoo.pat
index c478317..c478317 100644
--- a/usr/local/share/protocols/kugoo.pat
+++ b/src/usr/local/share/protocols/kugoo.pat
diff --git a/usr/local/share/protocols/live365.pat b/src/usr/local/share/protocols/live365.pat
index 144ac50..144ac50 100644
--- a/usr/local/share/protocols/live365.pat
+++ b/src/usr/local/share/protocols/live365.pat
diff --git a/usr/local/share/protocols/liveforspeed.pat b/src/usr/local/share/protocols/liveforspeed.pat
index ad32e9a..ad32e9a 100644
--- a/usr/local/share/protocols/liveforspeed.pat
+++ b/src/usr/local/share/protocols/liveforspeed.pat
diff --git a/usr/local/share/protocols/lpd.pat b/src/usr/local/share/protocols/lpd.pat
index 4b78dfe..4b78dfe 100644
--- a/usr/local/share/protocols/lpd.pat
+++ b/src/usr/local/share/protocols/lpd.pat
diff --git a/usr/local/share/protocols/mohaa.pat b/src/usr/local/share/protocols/mohaa.pat
index 00b6c07..00b6c07 100644
--- a/usr/local/share/protocols/mohaa.pat
+++ b/src/usr/local/share/protocols/mohaa.pat
diff --git a/usr/local/share/protocols/mp3.pat b/src/usr/local/share/protocols/mp3.pat
index 1b60a4c..1b60a4c 100644
--- a/usr/local/share/protocols/mp3.pat
+++ b/src/usr/local/share/protocols/mp3.pat
diff --git a/usr/local/share/protocols/msn-filetransfer.pat b/src/usr/local/share/protocols/msn-filetransfer.pat
index 797edb4..797edb4 100644
--- a/usr/local/share/protocols/msn-filetransfer.pat
+++ b/src/usr/local/share/protocols/msn-filetransfer.pat
diff --git a/usr/local/share/protocols/msnmessenger.pat b/src/usr/local/share/protocols/msnmessenger.pat
index 11dfc10..11dfc10 100644
--- a/usr/local/share/protocols/msnmessenger.pat
+++ b/src/usr/local/share/protocols/msnmessenger.pat
diff --git a/usr/local/share/protocols/mute.pat b/src/usr/local/share/protocols/mute.pat
index 53f2e23..53f2e23 100644
--- a/usr/local/share/protocols/mute.pat
+++ b/src/usr/local/share/protocols/mute.pat
diff --git a/usr/local/share/protocols/napster.pat b/src/usr/local/share/protocols/napster.pat
index d7ef032..d7ef032 100644
--- a/usr/local/share/protocols/napster.pat
+++ b/src/usr/local/share/protocols/napster.pat
diff --git a/usr/local/share/protocols/nbns.pat b/src/usr/local/share/protocols/nbns.pat
index ca114de..ca114de 100644
--- a/usr/local/share/protocols/nbns.pat
+++ b/src/usr/local/share/protocols/nbns.pat
diff --git a/usr/local/share/protocols/ncp.pat b/src/usr/local/share/protocols/ncp.pat
index 55792b2..55792b2 100644
--- a/usr/local/share/protocols/ncp.pat
+++ b/src/usr/local/share/protocols/ncp.pat
diff --git a/usr/local/share/protocols/netbios.pat b/src/usr/local/share/protocols/netbios.pat
index a0314b1..a0314b1 100644
--- a/usr/local/share/protocols/netbios.pat
+++ b/src/usr/local/share/protocols/netbios.pat
diff --git a/usr/local/share/protocols/nimda.pat b/src/usr/local/share/protocols/nimda.pat
index 86c7ce1..86c7ce1 100644
--- a/usr/local/share/protocols/nimda.pat
+++ b/src/usr/local/share/protocols/nimda.pat
diff --git a/usr/local/share/protocols/nntp.pat b/src/usr/local/share/protocols/nntp.pat
index 7a30578..7a30578 100644
--- a/usr/local/share/protocols/nntp.pat
+++ b/src/usr/local/share/protocols/nntp.pat
diff --git a/usr/local/share/protocols/ntp.pat b/src/usr/local/share/protocols/ntp.pat
index 760cfdb..760cfdb 100644
--- a/usr/local/share/protocols/ntp.pat
+++ b/src/usr/local/share/protocols/ntp.pat
diff --git a/usr/local/share/protocols/ogg.pat b/src/usr/local/share/protocols/ogg.pat
index d9ba377..d9ba377 100644
--- a/usr/local/share/protocols/ogg.pat
+++ b/src/usr/local/share/protocols/ogg.pat
diff --git a/usr/local/share/protocols/openft.pat b/src/usr/local/share/protocols/openft.pat
index 09fa852..09fa852 100644
--- a/usr/local/share/protocols/openft.pat
+++ b/src/usr/local/share/protocols/openft.pat
diff --git a/usr/local/share/protocols/pcanywhere.pat b/src/usr/local/share/protocols/pcanywhere.pat
index 60b50a7..60b50a7 100644
--- a/usr/local/share/protocols/pcanywhere.pat
+++ b/src/usr/local/share/protocols/pcanywhere.pat
diff --git a/usr/local/share/protocols/pdf.pat b/src/usr/local/share/protocols/pdf.pat
index 0c0e5f9..0c0e5f9 100644
--- a/usr/local/share/protocols/pdf.pat
+++ b/src/usr/local/share/protocols/pdf.pat
diff --git a/usr/local/share/protocols/perl.pat b/src/usr/local/share/protocols/perl.pat
index 822986b..822986b 100644
--- a/usr/local/share/protocols/perl.pat
+++ b/src/usr/local/share/protocols/perl.pat
diff --git a/usr/local/share/protocols/png.pat b/src/usr/local/share/protocols/png.pat
index 33aafda..33aafda 100644
--- a/usr/local/share/protocols/png.pat
+++ b/src/usr/local/share/protocols/png.pat
diff --git a/usr/local/share/protocols/poco.pat b/src/usr/local/share/protocols/poco.pat
index c7ce686..c7ce686 100644
--- a/usr/local/share/protocols/poco.pat
+++ b/src/usr/local/share/protocols/poco.pat
diff --git a/usr/local/share/protocols/pop3.pat b/src/usr/local/share/protocols/pop3.pat
index 47a8252..47a8252 100644
--- a/usr/local/share/protocols/pop3.pat
+++ b/src/usr/local/share/protocols/pop3.pat
diff --git a/usr/local/share/protocols/postscript.pat b/src/usr/local/share/protocols/postscript.pat
index 456ac21..456ac21 100644
--- a/usr/local/share/protocols/postscript.pat
+++ b/src/usr/local/share/protocols/postscript.pat
diff --git a/usr/local/share/protocols/pplive.pat b/src/usr/local/share/protocols/pplive.pat
index 42fef72..42fef72 100644
--- a/usr/local/share/protocols/pplive.pat
+++ b/src/usr/local/share/protocols/pplive.pat
diff --git a/usr/local/share/protocols/pressplay.pat b/src/usr/local/share/protocols/pressplay.pat
index cd814cc..cd814cc 100644
--- a/usr/local/share/protocols/pressplay.pat
+++ b/src/usr/local/share/protocols/pressplay.pat
diff --git a/usr/local/share/protocols/qq.pat b/src/usr/local/share/protocols/qq.pat
index 08db802..08db802 100644
--- a/usr/local/share/protocols/qq.pat
+++ b/src/usr/local/share/protocols/qq.pat
diff --git a/usr/local/share/protocols/quake-halflife.pat b/src/usr/local/share/protocols/quake-halflife.pat
index bc05b8f..bc05b8f 100644
--- a/usr/local/share/protocols/quake-halflife.pat
+++ b/src/usr/local/share/protocols/quake-halflife.pat
diff --git a/usr/local/share/protocols/quake1.pat b/src/usr/local/share/protocols/quake1.pat
index 46bdebd..46bdebd 100644
--- a/usr/local/share/protocols/quake1.pat
+++ b/src/usr/local/share/protocols/quake1.pat
diff --git a/usr/local/share/protocols/quicktime.pat b/src/usr/local/share/protocols/quicktime.pat
index 5a6273d..5a6273d 100644
--- a/usr/local/share/protocols/quicktime.pat
+++ b/src/usr/local/share/protocols/quicktime.pat
diff --git a/usr/local/share/protocols/radmin.pat b/src/usr/local/share/protocols/radmin.pat
index d13aa65..d13aa65 100644
--- a/usr/local/share/protocols/radmin.pat
+++ b/src/usr/local/share/protocols/radmin.pat
diff --git a/usr/local/share/protocols/rar.pat b/src/usr/local/share/protocols/rar.pat
index 1332af1..1332af1 100644
--- a/usr/local/share/protocols/rar.pat
+++ b/src/usr/local/share/protocols/rar.pat
diff --git a/usr/local/share/protocols/rdp.pat b/src/usr/local/share/protocols/rdp.pat
index 44b853f..44b853f 100644
--- a/usr/local/share/protocols/rdp.pat
+++ b/src/usr/local/share/protocols/rdp.pat
diff --git a/usr/local/share/protocols/replaytv-ivs.pat b/src/usr/local/share/protocols/replaytv-ivs.pat
index aaf9255..aaf9255 100644
--- a/usr/local/share/protocols/replaytv-ivs.pat
+++ b/src/usr/local/share/protocols/replaytv-ivs.pat
diff --git a/usr/local/share/protocols/rlogin.pat b/src/usr/local/share/protocols/rlogin.pat
index 42c4f7e..42c4f7e 100644
--- a/usr/local/share/protocols/rlogin.pat
+++ b/src/usr/local/share/protocols/rlogin.pat
diff --git a/usr/local/share/protocols/rpm.pat b/src/usr/local/share/protocols/rpm.pat
index 0302839..0302839 100644
--- a/usr/local/share/protocols/rpm.pat
+++ b/src/usr/local/share/protocols/rpm.pat
diff --git a/usr/local/share/protocols/rtf.pat b/src/usr/local/share/protocols/rtf.pat
index 676cb1a..676cb1a 100644
--- a/usr/local/share/protocols/rtf.pat
+++ b/src/usr/local/share/protocols/rtf.pat
diff --git a/usr/local/share/protocols/rtmp.pat b/src/usr/local/share/protocols/rtmp.pat
index 2c7adad..2c7adad 100644
--- a/usr/local/share/protocols/rtmp.pat
+++ b/src/usr/local/share/protocols/rtmp.pat
diff --git a/usr/local/share/protocols/rtp.pat b/src/usr/local/share/protocols/rtp.pat
index 61fcd8e..61fcd8e 100644
--- a/usr/local/share/protocols/rtp.pat
+++ b/src/usr/local/share/protocols/rtp.pat
diff --git a/usr/local/share/protocols/rtsp.pat b/src/usr/local/share/protocols/rtsp.pat
index 1013ae3..1013ae3 100644
--- a/usr/local/share/protocols/rtsp.pat
+++ b/src/usr/local/share/protocols/rtsp.pat
diff --git a/usr/local/share/protocols/runesofmagic.pat b/src/usr/local/share/protocols/runesofmagic.pat
index 6fbfea4..6fbfea4 100644
--- a/usr/local/share/protocols/runesofmagic.pat
+++ b/src/usr/local/share/protocols/runesofmagic.pat
diff --git a/usr/local/share/protocols/shoutcast.pat b/src/usr/local/share/protocols/shoutcast.pat
index e78883c..e78883c 100644
--- a/usr/local/share/protocols/shoutcast.pat
+++ b/src/usr/local/share/protocols/shoutcast.pat
diff --git a/usr/local/share/protocols/sip.pat b/src/usr/local/share/protocols/sip.pat
index 2728009..2728009 100644
--- a/usr/local/share/protocols/sip.pat
+++ b/src/usr/local/share/protocols/sip.pat
diff --git a/usr/local/share/protocols/skypeout.pat b/src/usr/local/share/protocols/skypeout.pat
index 55e4e10..55e4e10 100644
--- a/usr/local/share/protocols/skypeout.pat
+++ b/src/usr/local/share/protocols/skypeout.pat
diff --git a/usr/local/share/protocols/skypetoskype.pat b/src/usr/local/share/protocols/skypetoskype.pat
index ed1103a..ed1103a 100644
--- a/usr/local/share/protocols/skypetoskype.pat
+++ b/src/usr/local/share/protocols/skypetoskype.pat
diff --git a/usr/local/share/protocols/smb.pat b/src/usr/local/share/protocols/smb.pat
index c1f8b0a..c1f8b0a 100644
--- a/usr/local/share/protocols/smb.pat
+++ b/src/usr/local/share/protocols/smb.pat
diff --git a/usr/local/share/protocols/smtp.pat b/src/usr/local/share/protocols/smtp.pat
index 2f5d195..2f5d195 100644
--- a/usr/local/share/protocols/smtp.pat
+++ b/src/usr/local/share/protocols/smtp.pat
diff --git a/usr/local/share/protocols/snmp-mon.pat b/src/usr/local/share/protocols/snmp-mon.pat
index fe22662..fe22662 100644
--- a/usr/local/share/protocols/snmp-mon.pat
+++ b/src/usr/local/share/protocols/snmp-mon.pat
diff --git a/usr/local/share/protocols/snmp-trap.pat b/src/usr/local/share/protocols/snmp-trap.pat
index e8ba19a..e8ba19a 100644
--- a/usr/local/share/protocols/snmp-trap.pat
+++ b/src/usr/local/share/protocols/snmp-trap.pat
diff --git a/usr/local/share/protocols/snmp.pat b/src/usr/local/share/protocols/snmp.pat
index a7186b2..a7186b2 100644
--- a/usr/local/share/protocols/snmp.pat
+++ b/src/usr/local/share/protocols/snmp.pat
diff --git a/usr/local/share/protocols/socks.pat b/src/usr/local/share/protocols/socks.pat
index 54189fd..54189fd 100644
--- a/usr/local/share/protocols/socks.pat
+++ b/src/usr/local/share/protocols/socks.pat
diff --git a/usr/local/share/protocols/soribada.pat b/src/usr/local/share/protocols/soribada.pat
index e1c0c56..e1c0c56 100644
--- a/usr/local/share/protocols/soribada.pat
+++ b/src/usr/local/share/protocols/soribada.pat
diff --git a/usr/local/share/protocols/soulseek.pat b/src/usr/local/share/protocols/soulseek.pat
index ebc06ab..ebc06ab 100644
--- a/usr/local/share/protocols/soulseek.pat
+++ b/src/usr/local/share/protocols/soulseek.pat
diff --git a/usr/local/share/protocols/ssdp.pat b/src/usr/local/share/protocols/ssdp.pat
index d2de92d..d2de92d 100644
--- a/usr/local/share/protocols/ssdp.pat
+++ b/src/usr/local/share/protocols/ssdp.pat
diff --git a/usr/local/share/protocols/ssh.pat b/src/usr/local/share/protocols/ssh.pat
index 5e32f5c..5e32f5c 100644
--- a/usr/local/share/protocols/ssh.pat
+++ b/src/usr/local/share/protocols/ssh.pat
diff --git a/usr/local/share/protocols/ssl.pat b/src/usr/local/share/protocols/ssl.pat
index ae30ee4..ae30ee4 100644
--- a/usr/local/share/protocols/ssl.pat
+++ b/src/usr/local/share/protocols/ssl.pat
diff --git a/usr/local/share/protocols/stun.pat b/src/usr/local/share/protocols/stun.pat
index 3bfc3ab..3bfc3ab 100644
--- a/usr/local/share/protocols/stun.pat
+++ b/src/usr/local/share/protocols/stun.pat
diff --git a/usr/local/share/protocols/subspace.pat b/src/usr/local/share/protocols/subspace.pat
index 0a1b174..0a1b174 100644
--- a/usr/local/share/protocols/subspace.pat
+++ b/src/usr/local/share/protocols/subspace.pat
diff --git a/usr/local/share/protocols/subversion.pat b/src/usr/local/share/protocols/subversion.pat
index 8769a19..8769a19 100644
--- a/usr/local/share/protocols/subversion.pat
+++ b/src/usr/local/share/protocols/subversion.pat
diff --git a/usr/local/share/protocols/swf.pat b/src/usr/local/share/protocols/swf.pat
index af03086..af03086 100644
--- a/usr/local/share/protocols/swf.pat
+++ b/src/usr/local/share/protocols/swf.pat
diff --git a/usr/local/share/protocols/tar.pat b/src/usr/local/share/protocols/tar.pat
index d3ea987..d3ea987 100644
--- a/usr/local/share/protocols/tar.pat
+++ b/src/usr/local/share/protocols/tar.pat
diff --git a/usr/local/share/protocols/teamfortress2.pat b/src/usr/local/share/protocols/teamfortress2.pat
index 337af39..337af39 100644
--- a/usr/local/share/protocols/teamfortress2.pat
+++ b/src/usr/local/share/protocols/teamfortress2.pat
diff --git a/usr/local/share/protocols/teamspeak.pat b/src/usr/local/share/protocols/teamspeak.pat
index 8b2155e..8b2155e 100644
--- a/usr/local/share/protocols/teamspeak.pat
+++ b/src/usr/local/share/protocols/teamspeak.pat
diff --git a/usr/local/share/protocols/telnet.pat b/src/usr/local/share/protocols/telnet.pat
index cf10d0e..cf10d0e 100644
--- a/usr/local/share/protocols/telnet.pat
+++ b/src/usr/local/share/protocols/telnet.pat
diff --git a/usr/local/share/protocols/tesla.pat b/src/usr/local/share/protocols/tesla.pat
index 1f4ee86..1f4ee86 100644
--- a/usr/local/share/protocols/tesla.pat
+++ b/src/usr/local/share/protocols/tesla.pat
diff --git a/usr/local/share/protocols/tftp.pat b/src/usr/local/share/protocols/tftp.pat
index 1782ff5..1782ff5 100644
--- a/usr/local/share/protocols/tftp.pat
+++ b/src/usr/local/share/protocols/tftp.pat
diff --git a/usr/local/share/protocols/thecircle.pat b/src/usr/local/share/protocols/thecircle.pat
index d5e2b80..d5e2b80 100644
--- a/usr/local/share/protocols/thecircle.pat
+++ b/src/usr/local/share/protocols/thecircle.pat
diff --git a/usr/local/share/protocols/tonghuashun.pat b/src/usr/local/share/protocols/tonghuashun.pat
index 45f838b..45f838b 100644
--- a/usr/local/share/protocols/tonghuashun.pat
+++ b/src/usr/local/share/protocols/tonghuashun.pat
diff --git a/usr/local/share/protocols/tor.pat b/src/usr/local/share/protocols/tor.pat
index 7e4f707..7e4f707 100644
--- a/usr/local/share/protocols/tor.pat
+++ b/src/usr/local/share/protocols/tor.pat
diff --git a/usr/local/share/protocols/tsp.pat b/src/usr/local/share/protocols/tsp.pat
index 7751df9..7751df9 100644
--- a/usr/local/share/protocols/tsp.pat
+++ b/src/usr/local/share/protocols/tsp.pat
diff --git a/usr/local/share/protocols/unset.pat b/src/usr/local/share/protocols/unset.pat
index b9c1244..b9c1244 100644
--- a/usr/local/share/protocols/unset.pat
+++ b/src/usr/local/share/protocols/unset.pat
diff --git a/usr/local/share/protocols/uucp.pat b/src/usr/local/share/protocols/uucp.pat
index f7ef22c..f7ef22c 100644
--- a/usr/local/share/protocols/uucp.pat
+++ b/src/usr/local/share/protocols/uucp.pat
diff --git a/usr/local/share/protocols/validcertssl.pat b/src/usr/local/share/protocols/validcertssl.pat
index 7aa1812..7aa1812 100644
--- a/usr/local/share/protocols/validcertssl.pat
+++ b/src/usr/local/share/protocols/validcertssl.pat
diff --git a/usr/local/share/protocols/ventrilo.pat b/src/usr/local/share/protocols/ventrilo.pat
index 74e588c..74e588c 100644
--- a/usr/local/share/protocols/ventrilo.pat
+++ b/src/usr/local/share/protocols/ventrilo.pat
diff --git a/usr/local/share/protocols/vnc.pat b/src/usr/local/share/protocols/vnc.pat
index 79d0ae8..79d0ae8 100644
--- a/usr/local/share/protocols/vnc.pat
+++ b/src/usr/local/share/protocols/vnc.pat
diff --git a/usr/local/share/protocols/whois.pat b/src/usr/local/share/protocols/whois.pat
index 6abf0e8..6abf0e8 100644
--- a/usr/local/share/protocols/whois.pat
+++ b/src/usr/local/share/protocols/whois.pat
diff --git a/usr/local/share/protocols/worldofwarcraft.pat b/src/usr/local/share/protocols/worldofwarcraft.pat
index 4136d79..4136d79 100644
--- a/usr/local/share/protocols/worldofwarcraft.pat
+++ b/src/usr/local/share/protocols/worldofwarcraft.pat
diff --git a/usr/local/share/protocols/x11.pat b/src/usr/local/share/protocols/x11.pat
index 2028ee7..2028ee7 100644
--- a/usr/local/share/protocols/x11.pat
+++ b/src/usr/local/share/protocols/x11.pat
diff --git a/usr/local/share/protocols/xboxlive.pat b/src/usr/local/share/protocols/xboxlive.pat
index d04d9a7..d04d9a7 100644
--- a/usr/local/share/protocols/xboxlive.pat
+++ b/src/usr/local/share/protocols/xboxlive.pat
diff --git a/usr/local/share/protocols/xunlei.pat b/src/usr/local/share/protocols/xunlei.pat
index f7814c7..f7814c7 100644
--- a/usr/local/share/protocols/xunlei.pat
+++ b/src/usr/local/share/protocols/xunlei.pat
diff --git a/usr/local/share/protocols/yahoo.pat b/src/usr/local/share/protocols/yahoo.pat
index 17595b8..17595b8 100644
--- a/usr/local/share/protocols/yahoo.pat
+++ b/src/usr/local/share/protocols/yahoo.pat
diff --git a/usr/local/share/protocols/zip.pat b/src/usr/local/share/protocols/zip.pat
index e001354..e001354 100644
--- a/usr/local/share/protocols/zip.pat
+++ b/src/usr/local/share/protocols/zip.pat
diff --git a/usr/local/share/protocols/zmaap.pat b/src/usr/local/share/protocols/zmaap.pat
index e741eca..e741eca 100644
--- a/usr/local/share/protocols/zmaap.pat
+++ b/src/usr/local/share/protocols/zmaap.pat
diff --git a/usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf b/src/usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
index 691c8d6..691c8d6 100644
--- a/usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
+++ b/src/usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
Binary files differ
diff --git a/usr/local/www/apple-touch-icon.png b/src/usr/local/www/apple-touch-icon.png
index 7a4b975..7a4b975 100755
--- a/usr/local/www/apple-touch-icon.png
+++ b/src/usr/local/www/apple-touch-icon.png
Binary files differ
diff --git a/usr/local/www/bandwidth_by_ip.php b/src/usr/local/www/bandwidth_by_ip.php
index 9f8cc6c..9f8cc6c 100755
--- a/usr/local/www/bandwidth_by_ip.php
+++ b/src/usr/local/www/bandwidth_by_ip.php
diff --git a/usr/local/www/bootstrap/css/bootstrap-theme.min.css b/src/usr/local/www/bootstrap/css/bootstrap-theme.min.css
index cefa3d1..cefa3d1 100644
--- a/usr/local/www/bootstrap/css/bootstrap-theme.min.css
+++ b/src/usr/local/www/bootstrap/css/bootstrap-theme.min.css
diff --git a/usr/local/www/bootstrap/css/bootstrap.min.css b/src/usr/local/www/bootstrap/css/bootstrap.min.css
index cd1c616..cd1c616 100644
--- a/usr/local/www/bootstrap/css/bootstrap.min.css
+++ b/src/usr/local/www/bootstrap/css/bootstrap.min.css
diff --git a/usr/local/www/bootstrap/css/pfSense.css b/src/usr/local/www/bootstrap/css/pfSense.css
index 1384543..1384543 100644
--- a/usr/local/www/bootstrap/css/pfSense.css
+++ b/src/usr/local/www/bootstrap/css/pfSense.css
diff --git a/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.css b/src/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.css
index 3794571..3794571 100644
--- a/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.css
+++ b/src/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.css
diff --git a/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.png b/src/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.png
index a996999..a996999 100644
--- a/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.png
+++ b/src/usr/local/www/bootstrap/glyphicons/glyphicons-halflings.png
Binary files differ
diff --git a/usr/local/www/bootstrap/js/bootstrap.min.js b/src/usr/local/www/bootstrap/js/bootstrap.min.js
index c8f82e5..c8f82e5 100644
--- a/usr/local/www/bootstrap/js/bootstrap.min.js
+++ b/src/usr/local/www/bootstrap/js/bootstrap.min.js
diff --git a/usr/local/www/carp_status.php b/src/usr/local/www/carp_status.php
index 6ba07fa..6ba07fa 100644
--- a/usr/local/www/carp_status.php
+++ b/src/usr/local/www/carp_status.php
diff --git a/usr/local/www/classes/Form.class.php b/src/usr/local/www/classes/Form.class.php
index b489a72..b489a72 100644
--- a/usr/local/www/classes/Form.class.php
+++ b/src/usr/local/www/classes/Form.class.php
diff --git a/usr/local/www/classes/Form/Button.class.php b/src/usr/local/www/classes/Form/Button.class.php
index 32876a7..32876a7 100644
--- a/usr/local/www/classes/Form/Button.class.php
+++ b/src/usr/local/www/classes/Form/Button.class.php
diff --git a/usr/local/www/classes/Form/Checkbox.class.php b/src/usr/local/www/classes/Form/Checkbox.class.php
index e0734de..e0734de 100644
--- a/usr/local/www/classes/Form/Checkbox.class.php
+++ b/src/usr/local/www/classes/Form/Checkbox.class.php
diff --git a/usr/local/www/classes/Form/Element.class.php b/src/usr/local/www/classes/Form/Element.class.php
index d3ad142..d3ad142 100644
--- a/usr/local/www/classes/Form/Element.class.php
+++ b/src/usr/local/www/classes/Form/Element.class.php
diff --git a/usr/local/www/classes/Form/Group.class.php b/src/usr/local/www/classes/Form/Group.class.php
index 4ddf70d..4ddf70d 100644
--- a/usr/local/www/classes/Form/Group.class.php
+++ b/src/usr/local/www/classes/Form/Group.class.php
diff --git a/usr/local/www/classes/Form/Input.class.php b/src/usr/local/www/classes/Form/Input.class.php
index ec1cdca..ec1cdca 100644
--- a/usr/local/www/classes/Form/Input.class.php
+++ b/src/usr/local/www/classes/Form/Input.class.php
diff --git a/usr/local/www/classes/Form/IpAddress.class.php b/src/usr/local/www/classes/Form/IpAddress.class.php
index 759b65d..759b65d 100644
--- a/usr/local/www/classes/Form/IpAddress.class.php
+++ b/src/usr/local/www/classes/Form/IpAddress.class.php
diff --git a/usr/local/www/classes/Form/MultiCheckbox.class.php b/src/usr/local/www/classes/Form/MultiCheckbox.class.php
index 9310977..9310977 100644
--- a/usr/local/www/classes/Form/MultiCheckbox.class.php
+++ b/src/usr/local/www/classes/Form/MultiCheckbox.class.php
diff --git a/usr/local/www/classes/Form/MultiCheckboxGroup.class.php b/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php
index c04bf07..c04bf07 100644
--- a/usr/local/www/classes/Form/MultiCheckboxGroup.class.php
+++ b/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php
diff --git a/usr/local/www/classes/Form/Section.class.php b/src/usr/local/www/classes/Form/Section.class.php
index b1dfb22..b1dfb22 100644
--- a/usr/local/www/classes/Form/Section.class.php
+++ b/src/usr/local/www/classes/Form/Section.class.php
diff --git a/usr/local/www/classes/Form/Select.class.php b/src/usr/local/www/classes/Form/Select.class.php
index 1c4594d..1c4594d 100644
--- a/usr/local/www/classes/Form/Select.class.php
+++ b/src/usr/local/www/classes/Form/Select.class.php
diff --git a/usr/local/www/classes/Form/StaticText.class.php b/src/usr/local/www/classes/Form/StaticText.class.php
index b6f7983..b6f7983 100644
--- a/usr/local/www/classes/Form/StaticText.class.php
+++ b/src/usr/local/www/classes/Form/StaticText.class.php
diff --git a/usr/local/www/classes/Form/Textarea.class.php b/src/usr/local/www/classes/Form/Textarea.class.php
index 8c1c157..8c1c157 100644
--- a/usr/local/www/classes/Form/Textarea.class.php
+++ b/src/usr/local/www/classes/Form/Textarea.class.php
diff --git a/usr/local/www/classes/Modal.class.php b/src/usr/local/www/classes/Modal.class.php
index e77c608..e77c608 100644
--- a/usr/local/www/classes/Modal.class.php
+++ b/src/usr/local/www/classes/Modal.class.php
diff --git a/usr/local/www/copyright-master.txt b/src/usr/local/www/copyright-master.txt
index 5bfc17c..5bfc17c 100644
--- a/usr/local/www/copyright-master.txt
+++ b/src/usr/local/www/copyright-master.txt
diff --git a/usr/local/www/crash_reporter.php b/src/usr/local/www/crash_reporter.php
index dc0a7c9..dc0a7c9 100644
--- a/usr/local/www/crash_reporter.php
+++ b/src/usr/local/www/crash_reporter.php
diff --git a/usr/local/www/csrf/csrf-magic.js b/src/usr/local/www/csrf/csrf-magic.js
index d358b0f..d358b0f 100644
--- a/usr/local/www/csrf/csrf-magic.js
+++ b/src/usr/local/www/csrf/csrf-magic.js
diff --git a/usr/local/www/csrf/csrf-magic.php b/src/usr/local/www/csrf/csrf-magic.php
index 58f4eba..58f4eba 100644
--- a/usr/local/www/csrf/csrf-magic.php
+++ b/src/usr/local/www/csrf/csrf-magic.php
diff --git a/usr/local/www/d3pie/d3.min.js b/src/usr/local/www/d3pie/d3.min.js
index 7b7b9b1..7b7b9b1 100644
--- a/usr/local/www/d3pie/d3.min.js
+++ b/src/usr/local/www/d3pie/d3.min.js
diff --git a/usr/local/www/d3pie/d3pie.min.js b/src/usr/local/www/d3pie/d3pie.min.js
index 8bf6e37..8bf6e37 100644
--- a/usr/local/www/d3pie/d3pie.min.js
+++ b/src/usr/local/www/d3pie/d3pie.min.js
diff --git a/usr/local/www/diag_arp.php b/src/usr/local/www/diag_arp.php
index 01d1ef0..01d1ef0 100644
--- a/usr/local/www/diag_arp.php
+++ b/src/usr/local/www/diag_arp.php
diff --git a/usr/local/www/diag_authentication.php b/src/usr/local/www/diag_authentication.php
index 503f5a3..503f5a3 100644
--- a/usr/local/www/diag_authentication.php
+++ b/src/usr/local/www/diag_authentication.php
diff --git a/usr/local/www/diag_backup.php b/src/usr/local/www/diag_backup.php
index 39bcc70..39bcc70 100644
--- a/usr/local/www/diag_backup.php
+++ b/src/usr/local/www/diag_backup.php
diff --git a/usr/local/www/diag_confbak.php b/src/usr/local/www/diag_confbak.php
index bc9cc51..bc9cc51 100644
--- a/usr/local/www/diag_confbak.php
+++ b/src/usr/local/www/diag_confbak.php
diff --git a/usr/local/www/diag_defaults.php b/src/usr/local/www/diag_defaults.php
index 79786ad..79786ad 100755
--- a/usr/local/www/diag_defaults.php
+++ b/src/usr/local/www/diag_defaults.php
diff --git a/usr/local/www/diag_dns.php b/src/usr/local/www/diag_dns.php
index a1267e2..a1267e2 100755
--- a/usr/local/www/diag_dns.php
+++ b/src/usr/local/www/diag_dns.php
diff --git a/usr/local/www/diag_dump_states.php b/src/usr/local/www/diag_dump_states.php
index 9bd63f1..9bd63f1 100755
--- a/usr/local/www/diag_dump_states.php
+++ b/src/usr/local/www/diag_dump_states.php
diff --git a/usr/local/www/diag_dump_states_sources.php b/src/usr/local/www/diag_dump_states_sources.php
index 04c8c03..04c8c03 100644
--- a/usr/local/www/diag_dump_states_sources.php
+++ b/src/usr/local/www/diag_dump_states_sources.php
diff --git a/usr/local/www/diag_gmirror.php b/src/usr/local/www/diag_gmirror.php
index 17fbed8..17fbed8 100644
--- a/usr/local/www/diag_gmirror.php
+++ b/src/usr/local/www/diag_gmirror.php
diff --git a/usr/local/www/diag_ipsec.php b/src/usr/local/www/diag_ipsec.php
index f5a83c8..f5a83c8 100644
--- a/usr/local/www/diag_ipsec.php
+++ b/src/usr/local/www/diag_ipsec.php
diff --git a/usr/local/www/diag_ipsec_leases.php b/src/usr/local/www/diag_ipsec_leases.php
index 0bf5012..0bf5012 100644
--- a/usr/local/www/diag_ipsec_leases.php
+++ b/src/usr/local/www/diag_ipsec_leases.php
diff --git a/usr/local/www/diag_ipsec_sad.php b/src/usr/local/www/diag_ipsec_sad.php
index 2a9579f..2a9579f 100644
--- a/usr/local/www/diag_ipsec_sad.php
+++ b/src/usr/local/www/diag_ipsec_sad.php
diff --git a/usr/local/www/diag_ipsec_spd.php b/src/usr/local/www/diag_ipsec_spd.php
index c952188..c952188 100644
--- a/usr/local/www/diag_ipsec_spd.php
+++ b/src/usr/local/www/diag_ipsec_spd.php
diff --git a/usr/local/www/diag_ipsec_xml.php b/src/usr/local/www/diag_ipsec_xml.php
index e495685..e495685 100644
--- a/usr/local/www/diag_ipsec_xml.php
+++ b/src/usr/local/www/diag_ipsec_xml.php
diff --git a/usr/local/www/diag_limiter_info.php b/src/usr/local/www/diag_limiter_info.php
index 8c7cd1f..8c7cd1f 100644
--- a/usr/local/www/diag_limiter_info.php
+++ b/src/usr/local/www/diag_limiter_info.php
diff --git a/usr/local/www/diag_logs.php b/src/usr/local/www/diag_logs.php
index 69422cc..69422cc 100755
--- a/usr/local/www/diag_logs.php
+++ b/src/usr/local/www/diag_logs.php
diff --git a/usr/local/www/diag_logs_filter.php b/src/usr/local/www/diag_logs_filter.php
index fd4df31..fd4df31 100644
--- a/usr/local/www/diag_logs_filter.php
+++ b/src/usr/local/www/diag_logs_filter.php
diff --git a/usr/local/www/diag_logs_filter_dynamic.php b/src/usr/local/www/diag_logs_filter_dynamic.php
index ca32b46..ca32b46 100755
--- a/usr/local/www/diag_logs_filter_dynamic.php
+++ b/src/usr/local/www/diag_logs_filter_dynamic.php
diff --git a/usr/local/www/diag_logs_filter_summary.php b/src/usr/local/www/diag_logs_filter_summary.php
index 8d88310..8d88310 100644
--- a/usr/local/www/diag_logs_filter_summary.php
+++ b/src/usr/local/www/diag_logs_filter_summary.php
diff --git a/usr/local/www/diag_logs_settings.php b/src/usr/local/www/diag_logs_settings.php
index b195714..b195714 100644
--- a/usr/local/www/diag_logs_settings.php
+++ b/src/usr/local/www/diag_logs_settings.php
diff --git a/usr/local/www/diag_logs_vpn.php b/src/usr/local/www/diag_logs_vpn.php
index e5ce76b..e5ce76b 100755
--- a/usr/local/www/diag_logs_vpn.php
+++ b/src/usr/local/www/diag_logs_vpn.php
diff --git a/usr/local/www/diag_nanobsd.php b/src/usr/local/www/diag_nanobsd.php
index 7479693..7479693 100644
--- a/usr/local/www/diag_nanobsd.php
+++ b/src/usr/local/www/diag_nanobsd.php
diff --git a/usr/local/www/diag_ndp.php b/src/usr/local/www/diag_ndp.php
index 1fe0b24..1fe0b24 100644
--- a/usr/local/www/diag_ndp.php
+++ b/src/usr/local/www/diag_ndp.php
diff --git a/usr/local/www/diag_packet_capture.php b/src/usr/local/www/diag_packet_capture.php
index d4adee8..d4adee8 100644
--- a/usr/local/www/diag_packet_capture.php
+++ b/src/usr/local/www/diag_packet_capture.php
diff --git a/usr/local/www/diag_patterns.php b/src/usr/local/www/diag_patterns.php
index 8386f25..8386f25 100644
--- a/usr/local/www/diag_patterns.php
+++ b/src/usr/local/www/diag_patterns.php
diff --git a/usr/local/www/diag_pf_info.php b/src/usr/local/www/diag_pf_info.php
index 881da29..881da29 100644
--- a/usr/local/www/diag_pf_info.php
+++ b/src/usr/local/www/diag_pf_info.php
diff --git a/usr/local/www/diag_ping.php b/src/usr/local/www/diag_ping.php
index cb4bf2e..cb4bf2e 100644
--- a/usr/local/www/diag_ping.php
+++ b/src/usr/local/www/diag_ping.php
diff --git a/usr/local/www/diag_pkglogs.php b/src/usr/local/www/diag_pkglogs.php
index e02cfff..e02cfff 100755
--- a/usr/local/www/diag_pkglogs.php
+++ b/src/usr/local/www/diag_pkglogs.php
diff --git a/usr/local/www/diag_resetstate.php b/src/usr/local/www/diag_resetstate.php
index 7dff11c..7dff11c 100644
--- a/usr/local/www/diag_resetstate.php
+++ b/src/usr/local/www/diag_resetstate.php
diff --git a/usr/local/www/diag_routes.php b/src/usr/local/www/diag_routes.php
index 3b8e3ab..3b8e3ab 100644
--- a/usr/local/www/diag_routes.php
+++ b/src/usr/local/www/diag_routes.php
diff --git a/usr/local/www/diag_smart.php b/src/usr/local/www/diag_smart.php
index d09a891..d09a891 100644
--- a/usr/local/www/diag_smart.php
+++ b/src/usr/local/www/diag_smart.php
diff --git a/usr/local/www/diag_sockets.php b/src/usr/local/www/diag_sockets.php
index 84c9642..84c9642 100644
--- a/usr/local/www/diag_sockets.php
+++ b/src/usr/local/www/diag_sockets.php
diff --git a/usr/local/www/diag_states_summary.php b/src/usr/local/www/diag_states_summary.php
index 587ddcd..587ddcd 100644
--- a/usr/local/www/diag_states_summary.php
+++ b/src/usr/local/www/diag_states_summary.php
diff --git a/usr/local/www/diag_system_activity.php b/src/usr/local/www/diag_system_activity.php
index 488f69f..488f69f 100644
--- a/usr/local/www/diag_system_activity.php
+++ b/src/usr/local/www/diag_system_activity.php
diff --git a/usr/local/www/diag_system_pftop.php b/src/usr/local/www/diag_system_pftop.php
index be2a493..be2a493 100644
--- a/usr/local/www/diag_system_pftop.php
+++ b/src/usr/local/www/diag_system_pftop.php
diff --git a/usr/local/www/diag_tables.php b/src/usr/local/www/diag_tables.php
index 762b83e..762b83e 100644
--- a/usr/local/www/diag_tables.php
+++ b/src/usr/local/www/diag_tables.php
diff --git a/usr/local/www/diag_testport.php b/src/usr/local/www/diag_testport.php
index 5ff0140..5ff0140 100644
--- a/usr/local/www/diag_testport.php
+++ b/src/usr/local/www/diag_testport.php
diff --git a/usr/local/www/diag_traceroute.php b/src/usr/local/www/diag_traceroute.php
index f82b963..f82b963 100644
--- a/usr/local/www/diag_traceroute.php
+++ b/src/usr/local/www/diag_traceroute.php
diff --git a/usr/local/www/easyrule.php b/src/usr/local/www/easyrule.php
index 9f58af0..9f58af0 100644
--- a/usr/local/www/easyrule.php
+++ b/src/usr/local/www/easyrule.php
diff --git a/usr/local/www/edit.php b/src/usr/local/www/edit.php
index aedf9ed..aedf9ed 100644
--- a/usr/local/www/edit.php
+++ b/src/usr/local/www/edit.php
diff --git a/usr/local/www/exec.php b/src/usr/local/www/exec.php
index a7d9cfd..a7d9cfd 100644
--- a/usr/local/www/exec.php
+++ b/src/usr/local/www/exec.php
diff --git a/src/usr/local/www/favicon.ico b/src/usr/local/www/favicon.ico
new file mode 100755
index 0000000..3440bf2
--- /dev/null
+++ b/src/usr/local/www/favicon.ico
Binary files differ
diff --git a/usr/local/www/fbegin.inc b/src/usr/local/www/fbegin.inc
index 20a0066..20a0066 100644
--- a/usr/local/www/fbegin.inc
+++ b/src/usr/local/www/fbegin.inc
diff --git a/usr/local/www/fend.inc b/src/usr/local/www/fend.inc
index 262aeb7..262aeb7 100644
--- a/usr/local/www/fend.inc
+++ b/src/usr/local/www/fend.inc
diff --git a/usr/local/www/filebrowser/browser.js b/src/usr/local/www/filebrowser/browser.js
index 2769db3..2769db3 100644
--- a/usr/local/www/filebrowser/browser.js
+++ b/src/usr/local/www/filebrowser/browser.js
diff --git a/usr/local/www/filebrowser/browser.php b/src/usr/local/www/filebrowser/browser.php
index 8ab05db..8ab05db 100644
--- a/usr/local/www/filebrowser/browser.php
+++ b/src/usr/local/www/filebrowser/browser.php
diff --git a/usr/local/www/filebrowser/images/file_code.gif b/src/usr/local/www/filebrowser/images/file_code.gif
index f06a205..f06a205 100755
--- a/usr/local/www/filebrowser/images/file_code.gif
+++ b/src/usr/local/www/filebrowser/images/file_code.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_database.gif b/src/usr/local/www/filebrowser/images/file_database.gif
index d479c91..d479c91 100755
--- a/usr/local/www/filebrowser/images/file_database.gif
+++ b/src/usr/local/www/filebrowser/images/file_database.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_doc.gif b/src/usr/local/www/filebrowser/images/file_doc.gif
index 222c31b..222c31b 100755
--- a/usr/local/www/filebrowser/images/file_doc.gif
+++ b/src/usr/local/www/filebrowser/images/file_doc.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_flash.gif b/src/usr/local/www/filebrowser/images/file_flash.gif
index e565c37..e565c37 100755
--- a/usr/local/www/filebrowser/images/file_flash.gif
+++ b/src/usr/local/www/filebrowser/images/file_flash.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_generic.gif b/src/usr/local/www/filebrowser/images/file_generic.gif
index 5f39482..5f39482 100755
--- a/usr/local/www/filebrowser/images/file_generic.gif
+++ b/src/usr/local/www/filebrowser/images/file_generic.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_image.gif b/src/usr/local/www/filebrowser/images/file_image.gif
index 4960683..4960683 100755
--- a/usr/local/www/filebrowser/images/file_image.gif
+++ b/src/usr/local/www/filebrowser/images/file_image.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_js.gif b/src/usr/local/www/filebrowser/images/file_js.gif
index 9b6601f..9b6601f 100755
--- a/usr/local/www/filebrowser/images/file_js.gif
+++ b/src/usr/local/www/filebrowser/images/file_js.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_pdf.gif b/src/usr/local/www/filebrowser/images/file_pdf.gif
index b01bb23..b01bb23 100755
--- a/usr/local/www/filebrowser/images/file_pdf.gif
+++ b/src/usr/local/www/filebrowser/images/file_pdf.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_php.gif b/src/usr/local/www/filebrowser/images/file_php.gif
index ab7f459..ab7f459 100755
--- a/usr/local/www/filebrowser/images/file_php.gif
+++ b/src/usr/local/www/filebrowser/images/file_php.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_ppt.gif b/src/usr/local/www/filebrowser/images/file_ppt.gif
index 0383c98..0383c98 100755
--- a/usr/local/www/filebrowser/images/file_ppt.gif
+++ b/src/usr/local/www/filebrowser/images/file_ppt.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_system.gif b/src/usr/local/www/filebrowser/images/file_system.gif
index f1997c7..f1997c7 100755
--- a/usr/local/www/filebrowser/images/file_system.gif
+++ b/src/usr/local/www/filebrowser/images/file_system.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_xls.gif b/src/usr/local/www/filebrowser/images/file_xls.gif
index d004013..d004013 100755
--- a/usr/local/www/filebrowser/images/file_xls.gif
+++ b/src/usr/local/www/filebrowser/images/file_xls.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/file_zip.gif b/src/usr/local/www/filebrowser/images/file_zip.gif
index ec98255..ec98255 100755
--- a/usr/local/www/filebrowser/images/file_zip.gif
+++ b/src/usr/local/www/filebrowser/images/file_zip.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/folder_generic.gif b/src/usr/local/www/filebrowser/images/folder_generic.gif
index 45b191d..45b191d 100755
--- a/usr/local/www/filebrowser/images/folder_generic.gif
+++ b/src/usr/local/www/filebrowser/images/folder_generic.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/icon_cancel.gif b/src/usr/local/www/filebrowser/images/icon_cancel.gif
index 246a819..246a819 100755
--- a/usr/local/www/filebrowser/images/icon_cancel.gif
+++ b/src/usr/local/www/filebrowser/images/icon_cancel.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/icon_contract.gif b/src/usr/local/www/filebrowser/images/icon_contract.gif
index cf82159..cf82159 100755
--- a/usr/local/www/filebrowser/images/icon_contract.gif
+++ b/src/usr/local/www/filebrowser/images/icon_contract.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/icon_expand.gif b/src/usr/local/www/filebrowser/images/icon_expand.gif
index 06c0c68..06c0c68 100755
--- a/usr/local/www/filebrowser/images/icon_expand.gif
+++ b/src/usr/local/www/filebrowser/images/icon_expand.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/icon_home.gif b/src/usr/local/www/filebrowser/images/icon_home.gif
index f888434..f888434 100755
--- a/usr/local/www/filebrowser/images/icon_home.gif
+++ b/src/usr/local/www/filebrowser/images/icon_home.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/icon_left.gif b/src/usr/local/www/filebrowser/images/icon_left.gif
index 0d1137c..0d1137c 100755
--- a/usr/local/www/filebrowser/images/icon_left.gif
+++ b/src/usr/local/www/filebrowser/images/icon_left.gif
Binary files differ
diff --git a/usr/local/www/filebrowser/images/icon_magnifier.gif b/src/usr/local/www/filebrowser/images/icon_magnifier.gif
index e96e548..e96e548 100755
--- a/usr/local/www/filebrowser/images/icon_magnifier.gif
+++ b/src/usr/local/www/filebrowser/images/icon_magnifier.gif
Binary files differ
diff --git a/usr/local/www/firewall_aliases.php b/src/usr/local/www/firewall_aliases.php
index c7be7d9..c7be7d9 100644
--- a/usr/local/www/firewall_aliases.php
+++ b/src/usr/local/www/firewall_aliases.php
diff --git a/usr/local/www/firewall_aliases_edit.php b/src/usr/local/www/firewall_aliases_edit.php
index 84d9d96..84d9d96 100755
--- a/usr/local/www/firewall_aliases_edit.php
+++ b/src/usr/local/www/firewall_aliases_edit.php
diff --git a/usr/local/www/firewall_aliases_import.php b/src/usr/local/www/firewall_aliases_import.php
index 0199426..0199426 100755
--- a/usr/local/www/firewall_aliases_import.php
+++ b/src/usr/local/www/firewall_aliases_import.php
diff --git a/usr/local/www/firewall_nat.php b/src/usr/local/www/firewall_nat.php
index 651428d..651428d 100644
--- a/usr/local/www/firewall_nat.php
+++ b/src/usr/local/www/firewall_nat.php
diff --git a/usr/local/www/firewall_nat_1to1.php b/src/usr/local/www/firewall_nat_1to1.php
index 753d030..753d030 100644
--- a/usr/local/www/firewall_nat_1to1.php
+++ b/src/usr/local/www/firewall_nat_1to1.php
diff --git a/usr/local/www/firewall_nat_1to1_edit.php b/src/usr/local/www/firewall_nat_1to1_edit.php
index ba92003..ba92003 100644
--- a/usr/local/www/firewall_nat_1to1_edit.php
+++ b/src/usr/local/www/firewall_nat_1to1_edit.php
diff --git a/usr/local/www/firewall_nat_edit.php b/src/usr/local/www/firewall_nat_edit.php
index 2b15c80..2b15c80 100644
--- a/usr/local/www/firewall_nat_edit.php
+++ b/src/usr/local/www/firewall_nat_edit.php
diff --git a/usr/local/www/firewall_nat_npt.php b/src/usr/local/www/firewall_nat_npt.php
index aedb2dc..aedb2dc 100644
--- a/usr/local/www/firewall_nat_npt.php
+++ b/src/usr/local/www/firewall_nat_npt.php
diff --git a/usr/local/www/firewall_nat_npt_edit.php b/src/usr/local/www/firewall_nat_npt_edit.php
index 7e385e5..7e385e5 100644
--- a/usr/local/www/firewall_nat_npt_edit.php
+++ b/src/usr/local/www/firewall_nat_npt_edit.php
diff --git a/usr/local/www/firewall_nat_out.php b/src/usr/local/www/firewall_nat_out.php
index 8f3d458..8f3d458 100644
--- a/usr/local/www/firewall_nat_out.php
+++ b/src/usr/local/www/firewall_nat_out.php
diff --git a/usr/local/www/firewall_nat_out_edit.php b/src/usr/local/www/firewall_nat_out_edit.php
index 4d85609..4d85609 100644
--- a/usr/local/www/firewall_nat_out_edit.php
+++ b/src/usr/local/www/firewall_nat_out_edit.php
diff --git a/usr/local/www/firewall_rules.php b/src/usr/local/www/firewall_rules.php
index cf5497b..cf5497b 100644
--- a/usr/local/www/firewall_rules.php
+++ b/src/usr/local/www/firewall_rules.php
diff --git a/usr/local/www/firewall_rules_edit.php b/src/usr/local/www/firewall_rules_edit.php
index 1f6c1d1..1f6c1d1 100644
--- a/usr/local/www/firewall_rules_edit.php
+++ b/src/usr/local/www/firewall_rules_edit.php
diff --git a/usr/local/www/firewall_schedule.php b/src/usr/local/www/firewall_schedule.php
index f3e2062..f3e2062 100644
--- a/usr/local/www/firewall_schedule.php
+++ b/src/usr/local/www/firewall_schedule.php
diff --git a/usr/local/www/firewall_schedule_edit.php b/src/usr/local/www/firewall_schedule_edit.php
index bec4029..bec4029 100644
--- a/usr/local/www/firewall_schedule_edit.php
+++ b/src/usr/local/www/firewall_schedule_edit.php
diff --git a/usr/local/www/firewall_shaper.php b/src/usr/local/www/firewall_shaper.php
index 5050f9a..5050f9a 100644
--- a/usr/local/www/firewall_shaper.php
+++ b/src/usr/local/www/firewall_shaper.php
diff --git a/usr/local/www/firewall_shaper_layer7.php b/src/usr/local/www/firewall_shaper_layer7.php
index db350bd..db350bd 100644
--- a/usr/local/www/firewall_shaper_layer7.php
+++ b/src/usr/local/www/firewall_shaper_layer7.php
diff --git a/usr/local/www/firewall_shaper_queues.php b/src/usr/local/www/firewall_shaper_queues.php
index 5d1bbb7..5d1bbb7 100644
--- a/usr/local/www/firewall_shaper_queues.php
+++ b/src/usr/local/www/firewall_shaper_queues.php
diff --git a/usr/local/www/firewall_shaper_vinterface.php b/src/usr/local/www/firewall_shaper_vinterface.php
index da5ae24..da5ae24 100644
--- a/usr/local/www/firewall_shaper_vinterface.php
+++ b/src/usr/local/www/firewall_shaper_vinterface.php
diff --git a/usr/local/www/firewall_shaper_wizards.php b/src/usr/local/www/firewall_shaper_wizards.php
index 18cc97e..18cc97e 100644
--- a/usr/local/www/firewall_shaper_wizards.php
+++ b/src/usr/local/www/firewall_shaper_wizards.php
diff --git a/usr/local/www/firewall_virtual_ip.php b/src/usr/local/www/firewall_virtual_ip.php
index e321603..e321603 100644
--- a/usr/local/www/firewall_virtual_ip.php
+++ b/src/usr/local/www/firewall_virtual_ip.php
diff --git a/usr/local/www/firewall_virtual_ip_edit.php b/src/usr/local/www/firewall_virtual_ip_edit.php
index caac6d3..caac6d3 100644
--- a/usr/local/www/firewall_virtual_ip_edit.php
+++ b/src/usr/local/www/firewall_virtual_ip_edit.php
diff --git a/usr/local/www/foot.inc b/src/usr/local/www/foot.inc
index f5108dd..f5108dd 100755
--- a/usr/local/www/foot.inc
+++ b/src/usr/local/www/foot.inc
diff --git a/usr/local/www/getserviceproviders.php b/src/usr/local/www/getserviceproviders.php
index c38d356..c38d356 100644
--- a/usr/local/www/getserviceproviders.php
+++ b/src/usr/local/www/getserviceproviders.php
diff --git a/usr/local/www/getstats.php b/src/usr/local/www/getstats.php
index 42f61bf..42f61bf 100644
--- a/usr/local/www/getstats.php
+++ b/src/usr/local/www/getstats.php
diff --git a/usr/local/www/graph.php b/src/usr/local/www/graph.php
index f9ccb98..f9ccb98 100755
--- a/usr/local/www/graph.php
+++ b/src/usr/local/www/graph.php
diff --git a/usr/local/www/graph_cpu.php b/src/usr/local/www/graph_cpu.php
index 75b8ad7..75b8ad7 100644
--- a/usr/local/www/graph_cpu.php
+++ b/src/usr/local/www/graph_cpu.php
diff --git a/usr/local/www/guiconfig.inc b/src/usr/local/www/guiconfig.inc
index b214c0d..b214c0d 100644
--- a/usr/local/www/guiconfig.inc
+++ b/src/usr/local/www/guiconfig.inc
diff --git a/usr/local/www/halt.php b/src/usr/local/www/halt.php
index efa6dce..efa6dce 100755
--- a/usr/local/www/halt.php
+++ b/src/usr/local/www/halt.php
diff --git a/usr/local/www/head.inc b/src/usr/local/www/head.inc
index 5316ee2..5316ee2 100755
--- a/usr/local/www/head.inc
+++ b/src/usr/local/www/head.inc
diff --git a/usr/local/www/help.php b/src/usr/local/www/help.php
index a59c521..a59c521 100644
--- a/usr/local/www/help.php
+++ b/src/usr/local/www/help.php
diff --git a/usr/local/www/ifstats.php b/src/usr/local/www/ifstats.php
index fe6ce70..fe6ce70 100644
--- a/usr/local/www/ifstats.php
+++ b/src/usr/local/www/ifstats.php
diff --git a/usr/local/www/includes/functions.inc.php b/src/usr/local/www/includes/functions.inc.php
index 2c48543..2c48543 100644
--- a/usr/local/www/includes/functions.inc.php
+++ b/src/usr/local/www/includes/functions.inc.php
diff --git a/usr/local/www/index.php b/src/usr/local/www/index.php
index 9f3b625..9f3b625 100644
--- a/usr/local/www/index.php
+++ b/src/usr/local/www/index.php
diff --git a/usr/local/www/interfaces.php b/src/usr/local/www/interfaces.php
index 9533b8b..9533b8b 100644
--- a/usr/local/www/interfaces.php
+++ b/src/usr/local/www/interfaces.php
diff --git a/usr/local/www/interfaces_assign.php b/src/usr/local/www/interfaces_assign.php
index 1e38812..1e38812 100644
--- a/usr/local/www/interfaces_assign.php
+++ b/src/usr/local/www/interfaces_assign.php
diff --git a/usr/local/www/interfaces_bridge.php b/src/usr/local/www/interfaces_bridge.php
index df28e78..df28e78 100644
--- a/usr/local/www/interfaces_bridge.php
+++ b/src/usr/local/www/interfaces_bridge.php
diff --git a/usr/local/www/interfaces_bridge_edit.php b/src/usr/local/www/interfaces_bridge_edit.php
index c38afb6..c38afb6 100644
--- a/usr/local/www/interfaces_bridge_edit.php
+++ b/src/usr/local/www/interfaces_bridge_edit.php
diff --git a/usr/local/www/interfaces_gif.php b/src/usr/local/www/interfaces_gif.php
index 8b62154..8b62154 100644
--- a/usr/local/www/interfaces_gif.php
+++ b/src/usr/local/www/interfaces_gif.php
diff --git a/usr/local/www/interfaces_gif_edit.php b/src/usr/local/www/interfaces_gif_edit.php
index 7600717..7600717 100644
--- a/usr/local/www/interfaces_gif_edit.php
+++ b/src/usr/local/www/interfaces_gif_edit.php
diff --git a/usr/local/www/interfaces_gre.php b/src/usr/local/www/interfaces_gre.php
index 7d77c66..7d77c66 100644
--- a/usr/local/www/interfaces_gre.php
+++ b/src/usr/local/www/interfaces_gre.php
diff --git a/usr/local/www/interfaces_gre_edit.php b/src/usr/local/www/interfaces_gre_edit.php
index 8a6497b..8a6497b 100644
--- a/usr/local/www/interfaces_gre_edit.php
+++ b/src/usr/local/www/interfaces_gre_edit.php
diff --git a/usr/local/www/interfaces_groups.php b/src/usr/local/www/interfaces_groups.php
index a6a2c32..a6a2c32 100644
--- a/usr/local/www/interfaces_groups.php
+++ b/src/usr/local/www/interfaces_groups.php
diff --git a/usr/local/www/interfaces_groups_edit.php b/src/usr/local/www/interfaces_groups_edit.php
index 8e7b6da..8e7b6da 100644
--- a/usr/local/www/interfaces_groups_edit.php
+++ b/src/usr/local/www/interfaces_groups_edit.php
diff --git a/usr/local/www/interfaces_lagg.php b/src/usr/local/www/interfaces_lagg.php
index 6724e1e..6724e1e 100644
--- a/usr/local/www/interfaces_lagg.php
+++ b/src/usr/local/www/interfaces_lagg.php
diff --git a/usr/local/www/interfaces_lagg_edit.php b/src/usr/local/www/interfaces_lagg_edit.php
index 3a03172..3a03172 100644
--- a/usr/local/www/interfaces_lagg_edit.php
+++ b/src/usr/local/www/interfaces_lagg_edit.php
diff --git a/usr/local/www/interfaces_ppps.php b/src/usr/local/www/interfaces_ppps.php
index 966a6ca..966a6ca 100644
--- a/usr/local/www/interfaces_ppps.php
+++ b/src/usr/local/www/interfaces_ppps.php
diff --git a/usr/local/www/interfaces_ppps_edit.php b/src/usr/local/www/interfaces_ppps_edit.php
index 62363a7..62363a7 100644
--- a/usr/local/www/interfaces_ppps_edit.php
+++ b/src/usr/local/www/interfaces_ppps_edit.php
diff --git a/usr/local/www/interfaces_qinq.php b/src/usr/local/www/interfaces_qinq.php
index f68ac54..f68ac54 100644
--- a/usr/local/www/interfaces_qinq.php
+++ b/src/usr/local/www/interfaces_qinq.php
diff --git a/usr/local/www/interfaces_qinq_edit.php b/src/usr/local/www/interfaces_qinq_edit.php
index 9460884..9460884 100644
--- a/usr/local/www/interfaces_qinq_edit.php
+++ b/src/usr/local/www/interfaces_qinq_edit.php
diff --git a/usr/local/www/interfaces_vlan.php b/src/usr/local/www/interfaces_vlan.php
index d7a8ae2..d7a8ae2 100644
--- a/usr/local/www/interfaces_vlan.php
+++ b/src/usr/local/www/interfaces_vlan.php
diff --git a/usr/local/www/interfaces_vlan_edit.php b/src/usr/local/www/interfaces_vlan_edit.php
index 0bf223a..0bf223a 100644
--- a/usr/local/www/interfaces_vlan_edit.php
+++ b/src/usr/local/www/interfaces_vlan_edit.php
diff --git a/usr/local/www/interfaces_wireless.php b/src/usr/local/www/interfaces_wireless.php
index cb90387..cb90387 100644
--- a/usr/local/www/interfaces_wireless.php
+++ b/src/usr/local/www/interfaces_wireless.php
diff --git a/usr/local/www/interfaces_wireless_edit.php b/src/usr/local/www/interfaces_wireless_edit.php
index 52d26ff..52d26ff 100644
--- a/usr/local/www/interfaces_wireless_edit.php
+++ b/src/usr/local/www/interfaces_wireless_edit.php
diff --git a/usr/local/www/jquery/jquery-1.11.2.min.js b/src/usr/local/www/jquery/jquery-1.11.2.min.js
index e6a051d..e6a051d 100644
--- a/usr/local/www/jquery/jquery-1.11.2.min.js
+++ b/src/usr/local/www/jquery/jquery-1.11.2.min.js
diff --git a/usr/local/www/jquery/jquery-ui-1.11.2.min.js b/src/usr/local/www/jquery/jquery-ui-1.11.2.min.js
index 17eab79..17eab79 100644
--- a/usr/local/www/jquery/jquery-ui-1.11.2.min.js
+++ b/src/usr/local/www/jquery/jquery-ui-1.11.2.min.js
diff --git a/usr/local/www/jquery/pfSense.js b/src/usr/local/www/jquery/pfSense.js
index 15a518e..15a518e 100644
--- a/usr/local/www/jquery/pfSense.js
+++ b/src/usr/local/www/jquery/pfSense.js
diff --git a/usr/local/www/license.php b/src/usr/local/www/license.php
index ed1256d..ed1256d 100644
--- a/usr/local/www/license.php
+++ b/src/usr/local/www/license.php
diff --git a/usr/local/www/load_balancer_monitor.php b/src/usr/local/www/load_balancer_monitor.php
index 2dd9f31..2dd9f31 100644
--- a/usr/local/www/load_balancer_monitor.php
+++ b/src/usr/local/www/load_balancer_monitor.php
diff --git a/usr/local/www/load_balancer_monitor_edit.php b/src/usr/local/www/load_balancer_monitor_edit.php
index b7134db..b7134db 100644
--- a/usr/local/www/load_balancer_monitor_edit.php
+++ b/src/usr/local/www/load_balancer_monitor_edit.php
diff --git a/usr/local/www/load_balancer_pool.php b/src/usr/local/www/load_balancer_pool.php
index dbdbb1c..dbdbb1c 100644
--- a/usr/local/www/load_balancer_pool.php
+++ b/src/usr/local/www/load_balancer_pool.php
diff --git a/usr/local/www/load_balancer_pool_edit.php b/src/usr/local/www/load_balancer_pool_edit.php
index 876abe5..876abe5 100644
--- a/usr/local/www/load_balancer_pool_edit.php
+++ b/src/usr/local/www/load_balancer_pool_edit.php
diff --git a/usr/local/www/load_balancer_setting.php b/src/usr/local/www/load_balancer_setting.php
index 371c91f..371c91f 100644
--- a/usr/local/www/load_balancer_setting.php
+++ b/src/usr/local/www/load_balancer_setting.php
diff --git a/usr/local/www/load_balancer_virtual_server.php b/src/usr/local/www/load_balancer_virtual_server.php
index dec55f1..dec55f1 100644
--- a/usr/local/www/load_balancer_virtual_server.php
+++ b/src/usr/local/www/load_balancer_virtual_server.php
diff --git a/usr/local/www/load_balancer_virtual_server_edit.php b/src/usr/local/www/load_balancer_virtual_server_edit.php
index 39bc6c9..39bc6c9 100644
--- a/usr/local/www/load_balancer_virtual_server_edit.php
+++ b/src/usr/local/www/load_balancer_virtual_server_edit.php
diff --git a/usr/local/www/logo-black.png b/src/usr/local/www/logo-black.png
index 124d674..124d674 100644
--- a/usr/local/www/logo-black.png
+++ b/src/usr/local/www/logo-black.png
Binary files differ
diff --git a/usr/local/www/logo.png b/src/usr/local/www/logo.png
index 9362fcb..9362fcb 100644
--- a/usr/local/www/logo.png
+++ b/src/usr/local/www/logo.png
Binary files differ
diff --git a/usr/local/www/pkg.php b/src/usr/local/www/pkg.php
index c56ece5..c56ece5 100755
--- a/usr/local/www/pkg.php
+++ b/src/usr/local/www/pkg.php
diff --git a/usr/local/www/pkg_edit.php b/src/usr/local/www/pkg_edit.php
index 0b01a28..0b01a28 100644
--- a/usr/local/www/pkg_edit.php
+++ b/src/usr/local/www/pkg_edit.php
diff --git a/usr/local/www/pkg_mgr.php b/src/usr/local/www/pkg_mgr.php
index aa0ee0f..aa0ee0f 100644
--- a/usr/local/www/pkg_mgr.php
+++ b/src/usr/local/www/pkg_mgr.php
diff --git a/usr/local/www/pkg_mgr_install.php b/src/usr/local/www/pkg_mgr_install.php
index afad62f..afad62f 100644
--- a/usr/local/www/pkg_mgr_install.php
+++ b/src/usr/local/www/pkg_mgr_install.php
diff --git a/usr/local/www/pkg_mgr_installed.php b/src/usr/local/www/pkg_mgr_installed.php
index 91c90be..91c90be 100644
--- a/usr/local/www/pkg_mgr_installed.php
+++ b/src/usr/local/www/pkg_mgr_installed.php
diff --git a/usr/local/www/pkg_mgr_settings.php b/src/usr/local/www/pkg_mgr_settings.php
index da3c393..da3c393 100644
--- a/usr/local/www/pkg_mgr_settings.php
+++ b/src/usr/local/www/pkg_mgr_settings.php
diff --git a/usr/local/www/reboot.php b/src/usr/local/www/reboot.php
index dc4b2c6..dc4b2c6 100755
--- a/usr/local/www/reboot.php
+++ b/src/usr/local/www/reboot.php
diff --git a/usr/local/www/restart_httpd.php b/src/usr/local/www/restart_httpd.php
index 2f59bbf..2f59bbf 100644
--- a/usr/local/www/restart_httpd.php
+++ b/src/usr/local/www/restart_httpd.php
diff --git a/usr/local/www/services_captiveportal.php b/src/usr/local/www/services_captiveportal.php
index 04a9e20..04a9e20 100644
--- a/usr/local/www/services_captiveportal.php
+++ b/src/usr/local/www/services_captiveportal.php
diff --git a/usr/local/www/services_captiveportal_filemanager.php b/src/usr/local/www/services_captiveportal_filemanager.php
index afd1610..afd1610 100644
--- a/usr/local/www/services_captiveportal_filemanager.php
+++ b/src/usr/local/www/services_captiveportal_filemanager.php
diff --git a/usr/local/www/services_captiveportal_hostname.php b/src/usr/local/www/services_captiveportal_hostname.php
index 0256fc2..0256fc2 100644
--- a/usr/local/www/services_captiveportal_hostname.php
+++ b/src/usr/local/www/services_captiveportal_hostname.php
diff --git a/usr/local/www/services_captiveportal_hostname_edit.php b/src/usr/local/www/services_captiveportal_hostname_edit.php
index 2bd49ff..2bd49ff 100644
--- a/usr/local/www/services_captiveportal_hostname_edit.php
+++ b/src/usr/local/www/services_captiveportal_hostname_edit.php
diff --git a/usr/local/www/services_captiveportal_ip.php b/src/usr/local/www/services_captiveportal_ip.php
index dd449c4..dd449c4 100644
--- a/usr/local/www/services_captiveportal_ip.php
+++ b/src/usr/local/www/services_captiveportal_ip.php
diff --git a/usr/local/www/services_captiveportal_ip_edit.php b/src/usr/local/www/services_captiveportal_ip_edit.php
index 0db6df5..0db6df5 100644
--- a/usr/local/www/services_captiveportal_ip_edit.php
+++ b/src/usr/local/www/services_captiveportal_ip_edit.php
diff --git a/usr/local/www/services_captiveportal_mac.php b/src/usr/local/www/services_captiveportal_mac.php
index fdf82d3..fdf82d3 100644
--- a/usr/local/www/services_captiveportal_mac.php
+++ b/src/usr/local/www/services_captiveportal_mac.php
diff --git a/usr/local/www/services_captiveportal_mac_edit.php b/src/usr/local/www/services_captiveportal_mac_edit.php
index 4f28531..4f28531 100644
--- a/usr/local/www/services_captiveportal_mac_edit.php
+++ b/src/usr/local/www/services_captiveportal_mac_edit.php
diff --git a/usr/local/www/services_captiveportal_vouchers.php b/src/usr/local/www/services_captiveportal_vouchers.php
index b80d3a0..b80d3a0 100644
--- a/usr/local/www/services_captiveportal_vouchers.php
+++ b/src/usr/local/www/services_captiveportal_vouchers.php
diff --git a/usr/local/www/services_captiveportal_vouchers_edit.php b/src/usr/local/www/services_captiveportal_vouchers_edit.php
index cc05aee..cc05aee 100644
--- a/usr/local/www/services_captiveportal_vouchers_edit.php
+++ b/src/usr/local/www/services_captiveportal_vouchers_edit.php
diff --git a/usr/local/www/services_captiveportal_zones.php b/src/usr/local/www/services_captiveportal_zones.php
index 6d956b5..6d956b5 100644
--- a/usr/local/www/services_captiveportal_zones.php
+++ b/src/usr/local/www/services_captiveportal_zones.php
diff --git a/usr/local/www/services_captiveportal_zones_edit.php b/src/usr/local/www/services_captiveportal_zones_edit.php
index 340b684..340b684 100644
--- a/usr/local/www/services_captiveportal_zones_edit.php
+++ b/src/usr/local/www/services_captiveportal_zones_edit.php
diff --git a/usr/local/www/services_dhcp.php b/src/usr/local/www/services_dhcp.php
index 3061812..3061812 100644
--- a/usr/local/www/services_dhcp.php
+++ b/src/usr/local/www/services_dhcp.php
diff --git a/usr/local/www/services_dhcp_edit.php b/src/usr/local/www/services_dhcp_edit.php
index 1ab0987..1ab0987 100644
--- a/usr/local/www/services_dhcp_edit.php
+++ b/src/usr/local/www/services_dhcp_edit.php
diff --git a/usr/local/www/services_dhcp_relay.php b/src/usr/local/www/services_dhcp_relay.php
index 8559f4b..8559f4b 100644
--- a/usr/local/www/services_dhcp_relay.php
+++ b/src/usr/local/www/services_dhcp_relay.php
diff --git a/usr/local/www/services_dhcpv6.php b/src/usr/local/www/services_dhcpv6.php
index b8a4909..b8a4909 100644
--- a/usr/local/www/services_dhcpv6.php
+++ b/src/usr/local/www/services_dhcpv6.php
diff --git a/usr/local/www/services_dhcpv6_edit.php b/src/usr/local/www/services_dhcpv6_edit.php
index a6df8db..a6df8db 100644
--- a/usr/local/www/services_dhcpv6_edit.php
+++ b/src/usr/local/www/services_dhcpv6_edit.php
diff --git a/usr/local/www/services_dhcpv6_relay.php b/src/usr/local/www/services_dhcpv6_relay.php
index 2fdbcbc..2fdbcbc 100644
--- a/usr/local/www/services_dhcpv6_relay.php
+++ b/src/usr/local/www/services_dhcpv6_relay.php
diff --git a/usr/local/www/services_dnsmasq.php b/src/usr/local/www/services_dnsmasq.php
index ac6b44c..ac6b44c 100644
--- a/usr/local/www/services_dnsmasq.php
+++ b/src/usr/local/www/services_dnsmasq.php
diff --git a/usr/local/www/services_dnsmasq_domainoverride_edit.php b/src/usr/local/www/services_dnsmasq_domainoverride_edit.php
index 3bc37fa..3bc37fa 100644
--- a/usr/local/www/services_dnsmasq_domainoverride_edit.php
+++ b/src/usr/local/www/services_dnsmasq_domainoverride_edit.php
diff --git a/usr/local/www/services_dnsmasq_edit.php b/src/usr/local/www/services_dnsmasq_edit.php
index f9513d9..f9513d9 100644
--- a/usr/local/www/services_dnsmasq_edit.php
+++ b/src/usr/local/www/services_dnsmasq_edit.php
diff --git a/usr/local/www/services_dyndns.php b/src/usr/local/www/services_dyndns.php
index c605241..c605241 100644
--- a/usr/local/www/services_dyndns.php
+++ b/src/usr/local/www/services_dyndns.php
diff --git a/usr/local/www/services_dyndns_edit.php b/src/usr/local/www/services_dyndns_edit.php
index 750cd9b..750cd9b 100644
--- a/usr/local/www/services_dyndns_edit.php
+++ b/src/usr/local/www/services_dyndns_edit.php
diff --git a/usr/local/www/services_igmpproxy.php b/src/usr/local/www/services_igmpproxy.php
index 2953337..2953337 100644
--- a/usr/local/www/services_igmpproxy.php
+++ b/src/usr/local/www/services_igmpproxy.php
diff --git a/usr/local/www/services_igmpproxy_edit.php b/src/usr/local/www/services_igmpproxy_edit.php
index cbe8307..cbe8307 100644
--- a/usr/local/www/services_igmpproxy_edit.php
+++ b/src/usr/local/www/services_igmpproxy_edit.php
diff --git a/usr/local/www/services_ntpd.php b/src/usr/local/www/services_ntpd.php
index 412678b..412678b 100644
--- a/usr/local/www/services_ntpd.php
+++ b/src/usr/local/www/services_ntpd.php
diff --git a/usr/local/www/services_ntpd_gps.php b/src/usr/local/www/services_ntpd_gps.php
index 9bf100d..9bf100d 100644
--- a/usr/local/www/services_ntpd_gps.php
+++ b/src/usr/local/www/services_ntpd_gps.php
diff --git a/usr/local/www/services_ntpd_pps.php b/src/usr/local/www/services_ntpd_pps.php
index c8d817b..c8d817b 100644
--- a/usr/local/www/services_ntpd_pps.php
+++ b/src/usr/local/www/services_ntpd_pps.php
diff --git a/usr/local/www/services_rfc2136.php b/src/usr/local/www/services_rfc2136.php
index a73880a..a73880a 100644
--- a/usr/local/www/services_rfc2136.php
+++ b/src/usr/local/www/services_rfc2136.php
diff --git a/usr/local/www/services_rfc2136_edit.php b/src/usr/local/www/services_rfc2136_edit.php
index 53445bb..53445bb 100644
--- a/usr/local/www/services_rfc2136_edit.php
+++ b/src/usr/local/www/services_rfc2136_edit.php
diff --git a/usr/local/www/services_router_advertisements.php b/src/usr/local/www/services_router_advertisements.php
index 3cf9dbb..3cf9dbb 100644
--- a/usr/local/www/services_router_advertisements.php
+++ b/src/usr/local/www/services_router_advertisements.php
diff --git a/usr/local/www/services_snmp.php b/src/usr/local/www/services_snmp.php
index ec94af7..ec94af7 100644
--- a/usr/local/www/services_snmp.php
+++ b/src/usr/local/www/services_snmp.php
diff --git a/usr/local/www/services_unbound.php b/src/usr/local/www/services_unbound.php
index 57f72e5..57f72e5 100644
--- a/usr/local/www/services_unbound.php
+++ b/src/usr/local/www/services_unbound.php
diff --git a/usr/local/www/services_unbound_acls.php b/src/usr/local/www/services_unbound_acls.php
index c0ca3b8..c0ca3b8 100644
--- a/usr/local/www/services_unbound_acls.php
+++ b/src/usr/local/www/services_unbound_acls.php
diff --git a/usr/local/www/services_unbound_advanced.php b/src/usr/local/www/services_unbound_advanced.php
index 26a9732..26a9732 100644
--- a/usr/local/www/services_unbound_advanced.php
+++ b/src/usr/local/www/services_unbound_advanced.php
diff --git a/usr/local/www/services_unbound_domainoverride_edit.php b/src/usr/local/www/services_unbound_domainoverride_edit.php
index 2f8533c..2f8533c 100644
--- a/usr/local/www/services_unbound_domainoverride_edit.php
+++ b/src/usr/local/www/services_unbound_domainoverride_edit.php
diff --git a/usr/local/www/services_unbound_host_edit.php b/src/usr/local/www/services_unbound_host_edit.php
index ed3bbb2..ed3bbb2 100644
--- a/usr/local/www/services_unbound_host_edit.php
+++ b/src/usr/local/www/services_unbound_host_edit.php
diff --git a/usr/local/www/services_wol.php b/src/usr/local/www/services_wol.php
index 40917d9..40917d9 100644
--- a/usr/local/www/services_wol.php
+++ b/src/usr/local/www/services_wol.php
diff --git a/usr/local/www/services_wol_edit.php b/src/usr/local/www/services_wol_edit.php
index 2c750ed..2c750ed 100644
--- a/usr/local/www/services_wol_edit.php
+++ b/src/usr/local/www/services_wol_edit.php
diff --git a/usr/local/www/shortcuts.inc b/src/usr/local/www/shortcuts.inc
index c4bf48e..c4bf48e 100644
--- a/usr/local/www/shortcuts.inc
+++ b/src/usr/local/www/shortcuts.inc
diff --git a/usr/local/www/shortcuts/pgk_upnp.php b/src/usr/local/www/shortcuts/pgk_upnp.php
index 3ee7f81..3ee7f81 100644
--- a/usr/local/www/shortcuts/pgk_upnp.php
+++ b/src/usr/local/www/shortcuts/pgk_upnp.php
diff --git a/usr/local/www/stats.php b/src/usr/local/www/stats.php
index 6f34673..6f34673 100644
--- a/usr/local/www/stats.php
+++ b/src/usr/local/www/stats.php
diff --git a/usr/local/www/status.php b/src/usr/local/www/status.php
index e8c92fe..e8c92fe 100755
--- a/usr/local/www/status.php
+++ b/src/usr/local/www/status.php
diff --git a/usr/local/www/status_captiveportal.php b/src/usr/local/www/status_captiveportal.php
index efe6851..efe6851 100644
--- a/usr/local/www/status_captiveportal.php
+++ b/src/usr/local/www/status_captiveportal.php
diff --git a/usr/local/www/status_captiveportal_expire.php b/src/usr/local/www/status_captiveportal_expire.php
index 0e0631f..0e0631f 100644
--- a/usr/local/www/status_captiveportal_expire.php
+++ b/src/usr/local/www/status_captiveportal_expire.php
diff --git a/usr/local/www/status_captiveportal_test.php b/src/usr/local/www/status_captiveportal_test.php
index 6a7993e..6a7993e 100644
--- a/usr/local/www/status_captiveportal_test.php
+++ b/src/usr/local/www/status_captiveportal_test.php
diff --git a/usr/local/www/status_captiveportal_voucher_rolls.php b/src/usr/local/www/status_captiveportal_voucher_rolls.php
index f7f3ac9..f7f3ac9 100644
--- a/usr/local/www/status_captiveportal_voucher_rolls.php
+++ b/src/usr/local/www/status_captiveportal_voucher_rolls.php
diff --git a/usr/local/www/status_captiveportal_vouchers.php b/src/usr/local/www/status_captiveportal_vouchers.php
index 8ff5c20..8ff5c20 100644
--- a/usr/local/www/status_captiveportal_vouchers.php
+++ b/src/usr/local/www/status_captiveportal_vouchers.php
diff --git a/usr/local/www/status_dhcp_leases.php b/src/usr/local/www/status_dhcp_leases.php
index c961eca..c961eca 100644
--- a/usr/local/www/status_dhcp_leases.php
+++ b/src/usr/local/www/status_dhcp_leases.php
diff --git a/usr/local/www/status_dhcpv6_leases.php b/src/usr/local/www/status_dhcpv6_leases.php
index 925f2da..925f2da 100644
--- a/usr/local/www/status_dhcpv6_leases.php
+++ b/src/usr/local/www/status_dhcpv6_leases.php
diff --git a/usr/local/www/status_filter_reload.php b/src/usr/local/www/status_filter_reload.php
index 434336a..434336a 100644
--- a/usr/local/www/status_filter_reload.php
+++ b/src/usr/local/www/status_filter_reload.php
diff --git a/usr/local/www/status_gateway_groups.php b/src/usr/local/www/status_gateway_groups.php
index fa57d66..fa57d66 100755
--- a/usr/local/www/status_gateway_groups.php
+++ b/src/usr/local/www/status_gateway_groups.php
diff --git a/usr/local/www/status_gateways.php b/src/usr/local/www/status_gateways.php
index 71d25d2..71d25d2 100644
--- a/usr/local/www/status_gateways.php
+++ b/src/usr/local/www/status_gateways.php
diff --git a/usr/local/www/status_graph.php b/src/usr/local/www/status_graph.php
index 5f2dbbb..5f2dbbb 100644
--- a/usr/local/www/status_graph.php
+++ b/src/usr/local/www/status_graph.php
diff --git a/usr/local/www/status_graph_cpu.php b/src/usr/local/www/status_graph_cpu.php
index 43c37e0..43c37e0 100644
--- a/usr/local/www/status_graph_cpu.php
+++ b/src/usr/local/www/status_graph_cpu.php
diff --git a/usr/local/www/status_interfaces.php b/src/usr/local/www/status_interfaces.php
index 017c205..017c205 100644
--- a/usr/local/www/status_interfaces.php
+++ b/src/usr/local/www/status_interfaces.php
diff --git a/usr/local/www/status_lb_pool.php b/src/usr/local/www/status_lb_pool.php
index 50d42e8..50d42e8 100644
--- a/usr/local/www/status_lb_pool.php
+++ b/src/usr/local/www/status_lb_pool.php
diff --git a/usr/local/www/status_lb_vs.php b/src/usr/local/www/status_lb_vs.php
index 953c710..953c710 100644
--- a/usr/local/www/status_lb_vs.php
+++ b/src/usr/local/www/status_lb_vs.php
diff --git a/usr/local/www/status_ntpd.php b/src/usr/local/www/status_ntpd.php
index bf00ced..bf00ced 100644
--- a/usr/local/www/status_ntpd.php
+++ b/src/usr/local/www/status_ntpd.php
diff --git a/usr/local/www/status_openvpn.php b/src/usr/local/www/status_openvpn.php
index 8c765d9..8c765d9 100644
--- a/usr/local/www/status_openvpn.php
+++ b/src/usr/local/www/status_openvpn.php
diff --git a/usr/local/www/status_queues.php b/src/usr/local/www/status_queues.php
index 42789bf..42789bf 100644
--- a/usr/local/www/status_queues.php
+++ b/src/usr/local/www/status_queues.php
diff --git a/usr/local/www/status_rrd_graph.php b/src/usr/local/www/status_rrd_graph.php
index 037f521..037f521 100644
--- a/usr/local/www/status_rrd_graph.php
+++ b/src/usr/local/www/status_rrd_graph.php
diff --git a/usr/local/www/status_rrd_graph_img.php b/src/usr/local/www/status_rrd_graph_img.php
index d28472f..d28472f 100644
--- a/usr/local/www/status_rrd_graph_img.php
+++ b/src/usr/local/www/status_rrd_graph_img.php
diff --git a/usr/local/www/status_rrd_graph_settings.php b/src/usr/local/www/status_rrd_graph_settings.php
index 359c548..359c548 100644
--- a/usr/local/www/status_rrd_graph_settings.php
+++ b/src/usr/local/www/status_rrd_graph_settings.php
diff --git a/usr/local/www/status_services.php b/src/usr/local/www/status_services.php
index 3dcf4cf..3dcf4cf 100755
--- a/usr/local/www/status_services.php
+++ b/src/usr/local/www/status_services.php
diff --git a/usr/local/www/status_upnp.php b/src/usr/local/www/status_upnp.php
index abf53dc..abf53dc 100644
--- a/usr/local/www/status_upnp.php
+++ b/src/usr/local/www/status_upnp.php
diff --git a/usr/local/www/status_wireless.php b/src/usr/local/www/status_wireless.php
index 798cc5d..798cc5d 100644
--- a/usr/local/www/status_wireless.php
+++ b/src/usr/local/www/status_wireless.php
diff --git a/usr/local/www/system.php b/src/usr/local/www/system.php
index cd028a4..cd028a4 100644
--- a/usr/local/www/system.php
+++ b/src/usr/local/www/system.php
diff --git a/usr/local/www/system_advanced_admin.php b/src/usr/local/www/system_advanced_admin.php
index 5691034..5691034 100644
--- a/usr/local/www/system_advanced_admin.php
+++ b/src/usr/local/www/system_advanced_admin.php
diff --git a/usr/local/www/system_advanced_firewall.php b/src/usr/local/www/system_advanced_firewall.php
index a31bfab..a31bfab 100644
--- a/usr/local/www/system_advanced_firewall.php
+++ b/src/usr/local/www/system_advanced_firewall.php
diff --git a/usr/local/www/system_advanced_misc.php b/src/usr/local/www/system_advanced_misc.php
index 17676a8..17676a8 100644
--- a/usr/local/www/system_advanced_misc.php
+++ b/src/usr/local/www/system_advanced_misc.php
diff --git a/usr/local/www/system_advanced_network.php b/src/usr/local/www/system_advanced_network.php
index c770603..c770603 100644
--- a/usr/local/www/system_advanced_network.php
+++ b/src/usr/local/www/system_advanced_network.php
diff --git a/usr/local/www/system_advanced_notifications.php b/src/usr/local/www/system_advanced_notifications.php
index 91a3f70..91a3f70 100644
--- a/usr/local/www/system_advanced_notifications.php
+++ b/src/usr/local/www/system_advanced_notifications.php
diff --git a/usr/local/www/system_advanced_sysctl.php b/src/usr/local/www/system_advanced_sysctl.php
index 9e7da14..9e7da14 100644
--- a/usr/local/www/system_advanced_sysctl.php
+++ b/src/usr/local/www/system_advanced_sysctl.php
diff --git a/usr/local/www/system_authservers.php b/src/usr/local/www/system_authservers.php
index 52e9715..52e9715 100644
--- a/usr/local/www/system_authservers.php
+++ b/src/usr/local/www/system_authservers.php
diff --git a/usr/local/www/system_camanager.php b/src/usr/local/www/system_camanager.php
index f2bb3e5..f2bb3e5 100644
--- a/usr/local/www/system_camanager.php
+++ b/src/usr/local/www/system_camanager.php
diff --git a/usr/local/www/system_certmanager.php b/src/usr/local/www/system_certmanager.php
index b26d857..b26d857 100644
--- a/usr/local/www/system_certmanager.php
+++ b/src/usr/local/www/system_certmanager.php
diff --git a/usr/local/www/system_crlmanager.php b/src/usr/local/www/system_crlmanager.php
index 868d383..868d383 100644
--- a/usr/local/www/system_crlmanager.php
+++ b/src/usr/local/www/system_crlmanager.php
diff --git a/usr/local/www/system_firmware.php b/src/usr/local/www/system_firmware.php
index 4a6cc5a..4a6cc5a 100644
--- a/usr/local/www/system_firmware.php
+++ b/src/usr/local/www/system_firmware.php
diff --git a/usr/local/www/system_firmware_auto.php b/src/usr/local/www/system_firmware_auto.php
index d57d8d0..d57d8d0 100755
--- a/usr/local/www/system_firmware_auto.php
+++ b/src/usr/local/www/system_firmware_auto.php
diff --git a/usr/local/www/system_firmware_check.php b/src/usr/local/www/system_firmware_check.php
index c2cc9a1..c2cc9a1 100644
--- a/usr/local/www/system_firmware_check.php
+++ b/src/usr/local/www/system_firmware_check.php
diff --git a/usr/local/www/system_firmware_restorefullbackup.php b/src/usr/local/www/system_firmware_restorefullbackup.php
index 54ba297..54ba297 100644
--- a/usr/local/www/system_firmware_restorefullbackup.php
+++ b/src/usr/local/www/system_firmware_restorefullbackup.php
diff --git a/usr/local/www/system_firmware_settings.php b/src/usr/local/www/system_firmware_settings.php
index e43ca1c..e43ca1c 100644
--- a/usr/local/www/system_firmware_settings.php
+++ b/src/usr/local/www/system_firmware_settings.php
diff --git a/usr/local/www/system_gateway_groups.php b/src/usr/local/www/system_gateway_groups.php
index 7abe04c..7abe04c 100644
--- a/usr/local/www/system_gateway_groups.php
+++ b/src/usr/local/www/system_gateway_groups.php
diff --git a/usr/local/www/system_gateway_groups_edit.php b/src/usr/local/www/system_gateway_groups_edit.php
index 70d46e8..70d46e8 100644
--- a/usr/local/www/system_gateway_groups_edit.php
+++ b/src/usr/local/www/system_gateway_groups_edit.php
diff --git a/usr/local/www/system_gateways.php b/src/usr/local/www/system_gateways.php
index 86786a4..86786a4 100644
--- a/usr/local/www/system_gateways.php
+++ b/src/usr/local/www/system_gateways.php
diff --git a/usr/local/www/system_gateways_edit.php b/src/usr/local/www/system_gateways_edit.php
index abc0870..abc0870 100644
--- a/usr/local/www/system_gateways_edit.php
+++ b/src/usr/local/www/system_gateways_edit.php
diff --git a/usr/local/www/system_groupmanager.php b/src/usr/local/www/system_groupmanager.php
index 77384e3..77384e3 100644
--- a/usr/local/www/system_groupmanager.php
+++ b/src/usr/local/www/system_groupmanager.php
diff --git a/usr/local/www/system_groupmanager_addprivs.php b/src/usr/local/www/system_groupmanager_addprivs.php
index d9134bf..d9134bf 100644
--- a/usr/local/www/system_groupmanager_addprivs.php
+++ b/src/usr/local/www/system_groupmanager_addprivs.php
diff --git a/usr/local/www/system_hasync.php b/src/usr/local/www/system_hasync.php
index 47f6ea6..47f6ea6 100755
--- a/usr/local/www/system_hasync.php
+++ b/src/usr/local/www/system_hasync.php
diff --git a/usr/local/www/system_routes.php b/src/usr/local/www/system_routes.php
index 600d872..600d872 100644
--- a/usr/local/www/system_routes.php
+++ b/src/usr/local/www/system_routes.php
diff --git a/usr/local/www/system_routes_edit.php b/src/usr/local/www/system_routes_edit.php
index 1a8974f..1a8974f 100644
--- a/usr/local/www/system_routes_edit.php
+++ b/src/usr/local/www/system_routes_edit.php
diff --git a/usr/local/www/system_usermanager.php b/src/usr/local/www/system_usermanager.php
index 4a3802b..4a3802b 100644
--- a/usr/local/www/system_usermanager.php
+++ b/src/usr/local/www/system_usermanager.php
diff --git a/usr/local/www/system_usermanager_addprivs.php b/src/usr/local/www/system_usermanager_addprivs.php
index 2e05769..2e05769 100644
--- a/usr/local/www/system_usermanager_addprivs.php
+++ b/src/usr/local/www/system_usermanager_addprivs.php
diff --git a/usr/local/www/system_usermanager_passwordmg.php b/src/usr/local/www/system_usermanager_passwordmg.php
index cb02942..cb02942 100644
--- a/usr/local/www/system_usermanager_passwordmg.php
+++ b/src/usr/local/www/system_usermanager_passwordmg.php
diff --git a/usr/local/www/system_usermanager_settings.php b/src/usr/local/www/system_usermanager_settings.php
index a89970e..a89970e 100644
--- a/usr/local/www/system_usermanager_settings.php
+++ b/src/usr/local/www/system_usermanager_settings.php
diff --git a/usr/local/www/system_usermanager_settings_ldapacpicker.php b/src/usr/local/www/system_usermanager_settings_ldapacpicker.php
index 068142e..068142e 100644
--- a/usr/local/www/system_usermanager_settings_ldapacpicker.php
+++ b/src/usr/local/www/system_usermanager_settings_ldapacpicker.php
diff --git a/usr/local/www/system_usermanager_settings_test.php b/src/usr/local/www/system_usermanager_settings_test.php
index f2cdef8..f2cdef8 100755
--- a/usr/local/www/system_usermanager_settings_test.php
+++ b/src/usr/local/www/system_usermanager_settings_test.php
diff --git a/usr/local/www/tree/i-bottom.gif b/src/usr/local/www/tree/i-bottom.gif
index f07fa99..f07fa99 100755
--- a/usr/local/www/tree/i-bottom.gif
+++ b/src/usr/local/www/tree/i-bottom.gif
Binary files differ
diff --git a/usr/local/www/tree/i-repeater.gif b/src/usr/local/www/tree/i-repeater.gif
index d5ab089..d5ab089 100755
--- a/usr/local/www/tree/i-repeater.gif
+++ b/src/usr/local/www/tree/i-repeater.gif
Binary files differ
diff --git a/usr/local/www/tree/index.html b/src/usr/local/www/tree/index.html
index f2c45d4..f2c45d4 100755
--- a/usr/local/www/tree/index.html
+++ b/src/usr/local/www/tree/index.html
diff --git a/usr/local/www/tree/l.gif b/src/usr/local/www/tree/l.gif
index 1e8c707..1e8c707 100755
--- a/usr/local/www/tree/l.gif
+++ b/src/usr/local/www/tree/l.gif
Binary files differ
diff --git a/usr/local/www/tree/minus.gif b/src/usr/local/www/tree/minus.gif
index 7a7fd3b..7a7fd3b 100755
--- a/usr/local/www/tree/minus.gif
+++ b/src/usr/local/www/tree/minus.gif
Binary files differ
diff --git a/usr/local/www/tree/page-file.png b/src/usr/local/www/tree/page-file.png
index d3bb119..d3bb119 100755
--- a/usr/local/www/tree/page-file.png
+++ b/src/usr/local/www/tree/page-file.png
Binary files differ
diff --git a/usr/local/www/tree/page-file_play.gif b/src/usr/local/www/tree/page-file_play.gif
index 0c8e9ff..0c8e9ff 100755
--- a/usr/local/www/tree/page-file_play.gif
+++ b/src/usr/local/www/tree/page-file_play.gif
Binary files differ
diff --git a/usr/local/www/tree/page-file_x.gif b/src/usr/local/www/tree/page-file_x.gif
index 504f06e..504f06e 100755
--- a/usr/local/www/tree/page-file_x.gif
+++ b/src/usr/local/www/tree/page-file_x.gif
Binary files differ
diff --git a/usr/local/www/tree/page-foldericon.png b/src/usr/local/www/tree/page-foldericon.png
index d26f2dc..d26f2dc 100755
--- a/usr/local/www/tree/page-foldericon.png
+++ b/src/usr/local/www/tree/page-foldericon.png
Binary files differ
diff --git a/usr/local/www/tree/page-openfoldericon.png b/src/usr/local/www/tree/page-openfoldericon.png
index 8d00c39..8d00c39 100755
--- a/usr/local/www/tree/page-openfoldericon.png
+++ b/src/usr/local/www/tree/page-openfoldericon.png
Binary files differ
diff --git a/usr/local/www/tree/plus.gif b/src/usr/local/www/tree/plus.gif
index 3530f59..3530f59 100755
--- a/usr/local/www/tree/plus.gif
+++ b/src/usr/local/www/tree/plus.gif
Binary files differ
diff --git a/usr/local/www/tree/t.gif b/src/usr/local/www/tree/t.gif
index a92da2a..a92da2a 100755
--- a/usr/local/www/tree/t.gif
+++ b/src/usr/local/www/tree/t.gif
Binary files differ
diff --git a/usr/local/www/tree/tree.css b/src/usr/local/www/tree/tree.css
index 31b7979..31b7979 100755
--- a/usr/local/www/tree/tree.css
+++ b/src/usr/local/www/tree/tree.css
diff --git a/usr/local/www/tree/tree.js b/src/usr/local/www/tree/tree.js
index 8e9651e..8e9651e 100755
--- a/usr/local/www/tree/tree.js
+++ b/src/usr/local/www/tree/tree.js
diff --git a/usr/local/www/uploadconfig.php b/src/usr/local/www/uploadconfig.php
index 35e7c55..35e7c55 100644
--- a/usr/local/www/uploadconfig.php
+++ b/src/usr/local/www/uploadconfig.php
diff --git a/usr/local/www/vpn_ipsec.php b/src/usr/local/www/vpn_ipsec.php
index cfe6bf9..cfe6bf9 100644
--- a/usr/local/www/vpn_ipsec.php
+++ b/src/usr/local/www/vpn_ipsec.php
diff --git a/usr/local/www/vpn_ipsec_keys.php b/src/usr/local/www/vpn_ipsec_keys.php
index d5ae312..d5ae312 100644
--- a/usr/local/www/vpn_ipsec_keys.php
+++ b/src/usr/local/www/vpn_ipsec_keys.php
diff --git a/usr/local/www/vpn_ipsec_keys_edit.php b/src/usr/local/www/vpn_ipsec_keys_edit.php
index d4037c4..d4037c4 100644
--- a/usr/local/www/vpn_ipsec_keys_edit.php
+++ b/src/usr/local/www/vpn_ipsec_keys_edit.php
diff --git a/usr/local/www/vpn_ipsec_mobile.php b/src/usr/local/www/vpn_ipsec_mobile.php
index 503b2b2..503b2b2 100644
--- a/usr/local/www/vpn_ipsec_mobile.php
+++ b/src/usr/local/www/vpn_ipsec_mobile.php
diff --git a/usr/local/www/vpn_ipsec_phase1.php b/src/usr/local/www/vpn_ipsec_phase1.php
index 588b4dd..588b4dd 100644
--- a/usr/local/www/vpn_ipsec_phase1.php
+++ b/src/usr/local/www/vpn_ipsec_phase1.php
diff --git a/usr/local/www/vpn_ipsec_phase2.php b/src/usr/local/www/vpn_ipsec_phase2.php
index 4edecd4..4edecd4 100644
--- a/usr/local/www/vpn_ipsec_phase2.php
+++ b/src/usr/local/www/vpn_ipsec_phase2.php
diff --git a/usr/local/www/vpn_ipsec_settings.php b/src/usr/local/www/vpn_ipsec_settings.php
index c6fe0ad..c6fe0ad 100644
--- a/usr/local/www/vpn_ipsec_settings.php
+++ b/src/usr/local/www/vpn_ipsec_settings.php
diff --git a/usr/local/www/vpn_l2tp.php b/src/usr/local/www/vpn_l2tp.php
index bb61217..bb61217 100644
--- a/usr/local/www/vpn_l2tp.php
+++ b/src/usr/local/www/vpn_l2tp.php
diff --git a/usr/local/www/vpn_l2tp_users.php b/src/usr/local/www/vpn_l2tp_users.php
index 3ec4408..3ec4408 100644
--- a/usr/local/www/vpn_l2tp_users.php
+++ b/src/usr/local/www/vpn_l2tp_users.php
diff --git a/usr/local/www/vpn_l2tp_users_edit.php b/src/usr/local/www/vpn_l2tp_users_edit.php
index c6ee99b..c6ee99b 100644
--- a/usr/local/www/vpn_l2tp_users_edit.php
+++ b/src/usr/local/www/vpn_l2tp_users_edit.php
diff --git a/usr/local/www/vpn_openvpn_client.php b/src/usr/local/www/vpn_openvpn_client.php
index 41296a3..41296a3 100644
--- a/usr/local/www/vpn_openvpn_client.php
+++ b/src/usr/local/www/vpn_openvpn_client.php
diff --git a/usr/local/www/vpn_openvpn_csc.php b/src/usr/local/www/vpn_openvpn_csc.php
index d3ffd22..d3ffd22 100644
--- a/usr/local/www/vpn_openvpn_csc.php
+++ b/src/usr/local/www/vpn_openvpn_csc.php
diff --git a/usr/local/www/vpn_openvpn_server.php b/src/usr/local/www/vpn_openvpn_server.php
index bdbd08c..bdbd08c 100644
--- a/usr/local/www/vpn_openvpn_server.php
+++ b/src/usr/local/www/vpn_openvpn_server.php
diff --git a/usr/local/www/vpn_pppoe.php b/src/usr/local/www/vpn_pppoe.php
index 726cfaf..726cfaf 100644
--- a/usr/local/www/vpn_pppoe.php
+++ b/src/usr/local/www/vpn_pppoe.php
diff --git a/usr/local/www/vpn_pppoe_edit.php b/src/usr/local/www/vpn_pppoe_edit.php
index e4617a8..e4617a8 100644
--- a/usr/local/www/vpn_pppoe_edit.php
+++ b/src/usr/local/www/vpn_pppoe_edit.php
diff --git a/usr/local/www/vpn_pptp.php b/src/usr/local/www/vpn_pptp.php
index fc918b4..fc918b4 100644
--- a/usr/local/www/vpn_pptp.php
+++ b/src/usr/local/www/vpn_pptp.php
diff --git a/usr/local/www/vpn_pptp_users.php b/src/usr/local/www/vpn_pptp_users.php
index da62e6a..da62e6a 100644
--- a/usr/local/www/vpn_pptp_users.php
+++ b/src/usr/local/www/vpn_pptp_users.php
diff --git a/usr/local/www/vpn_pptp_users_edit.php b/src/usr/local/www/vpn_pptp_users_edit.php
index 5c5d787..5c5d787 100644
--- a/usr/local/www/vpn_pptp_users_edit.php
+++ b/src/usr/local/www/vpn_pptp_users_edit.php
diff --git a/usr/local/www/widgets/include/captiveportal.inc b/src/usr/local/www/widgets/include/captiveportal.inc
index 3714209..3714209 100644
--- a/usr/local/www/widgets/include/captiveportal.inc
+++ b/src/usr/local/www/widgets/include/captiveportal.inc
diff --git a/usr/local/www/widgets/include/carp_status.inc b/src/usr/local/www/widgets/include/carp_status.inc
index 79d3c03..79d3c03 100644
--- a/usr/local/www/widgets/include/carp_status.inc
+++ b/src/usr/local/www/widgets/include/carp_status.inc
diff --git a/usr/local/www/widgets/include/dyn_dns_status.inc b/src/usr/local/www/widgets/include/dyn_dns_status.inc
index 8116fe7..8116fe7 100644
--- a/usr/local/www/widgets/include/dyn_dns_status.inc
+++ b/src/usr/local/www/widgets/include/dyn_dns_status.inc
diff --git a/usr/local/www/widgets/include/gateways.inc b/src/usr/local/www/widgets/include/gateways.inc
index 4666689..4666689 100644
--- a/usr/local/www/widgets/include/gateways.inc
+++ b/src/usr/local/www/widgets/include/gateways.inc
diff --git a/usr/local/www/widgets/include/gmirror_status.inc b/src/usr/local/www/widgets/include/gmirror_status.inc
index 6547d4d..6547d4d 100644
--- a/usr/local/www/widgets/include/gmirror_status.inc
+++ b/src/usr/local/www/widgets/include/gmirror_status.inc
diff --git a/usr/local/www/widgets/include/installed_packages.inc b/src/usr/local/www/widgets/include/installed_packages.inc
index a978191..a978191 100644
--- a/usr/local/www/widgets/include/installed_packages.inc
+++ b/src/usr/local/www/widgets/include/installed_packages.inc
diff --git a/usr/local/www/widgets/include/interface_statistics.inc b/src/usr/local/www/widgets/include/interface_statistics.inc
index c789418..c789418 100644
--- a/usr/local/www/widgets/include/interface_statistics.inc
+++ b/src/usr/local/www/widgets/include/interface_statistics.inc
diff --git a/usr/local/www/widgets/include/interfaces.inc b/src/usr/local/www/widgets/include/interfaces.inc
index 6c19a6b..6c19a6b 100644
--- a/usr/local/www/widgets/include/interfaces.inc
+++ b/src/usr/local/www/widgets/include/interfaces.inc
diff --git a/usr/local/www/widgets/include/ipsec.inc b/src/usr/local/www/widgets/include/ipsec.inc
index 6df0a7c..6df0a7c 100644
--- a/usr/local/www/widgets/include/ipsec.inc
+++ b/src/usr/local/www/widgets/include/ipsec.inc
diff --git a/usr/local/www/widgets/include/load_balancer.inc b/src/usr/local/www/widgets/include/load_balancer.inc
index 367ea46..367ea46 100644
--- a/usr/local/www/widgets/include/load_balancer.inc
+++ b/src/usr/local/www/widgets/include/load_balancer.inc
diff --git a/usr/local/www/widgets/include/log.inc b/src/usr/local/www/widgets/include/log.inc
index 7ad453a..7ad453a 100644
--- a/usr/local/www/widgets/include/log.inc
+++ b/src/usr/local/www/widgets/include/log.inc
diff --git a/usr/local/www/widgets/include/ntp_status.inc b/src/usr/local/www/widgets/include/ntp_status.inc
index 1115095..1115095 100644
--- a/usr/local/www/widgets/include/ntp_status.inc
+++ b/src/usr/local/www/widgets/include/ntp_status.inc
diff --git a/usr/local/www/widgets/include/openvpn.inc b/src/usr/local/www/widgets/include/openvpn.inc
index 075d0e5..075d0e5 100644
--- a/usr/local/www/widgets/include/openvpn.inc
+++ b/src/usr/local/www/widgets/include/openvpn.inc
diff --git a/usr/local/www/widgets/include/services_status.inc b/src/usr/local/www/widgets/include/services_status.inc
index 685aee4..685aee4 100644
--- a/usr/local/www/widgets/include/services_status.inc
+++ b/src/usr/local/www/widgets/include/services_status.inc
diff --git a/usr/local/www/widgets/include/smart_status.inc b/src/usr/local/www/widgets/include/smart_status.inc
index bbfa274..bbfa274 100644
--- a/usr/local/www/widgets/include/smart_status.inc
+++ b/src/usr/local/www/widgets/include/smart_status.inc
diff --git a/usr/local/www/widgets/include/thermal_sensors.inc b/src/usr/local/www/widgets/include/thermal_sensors.inc
index a6e727a..a6e727a 100644
--- a/usr/local/www/widgets/include/thermal_sensors.inc
+++ b/src/usr/local/www/widgets/include/thermal_sensors.inc
diff --git a/usr/local/www/widgets/include/traffic_graph.inc b/src/usr/local/www/widgets/include/traffic_graph.inc
index 3901db6..3901db6 100644
--- a/usr/local/www/widgets/include/traffic_graph.inc
+++ b/src/usr/local/www/widgets/include/traffic_graph.inc
diff --git a/usr/local/www/widgets/include/wake_on_lan.inc b/src/usr/local/www/widgets/include/wake_on_lan.inc
index af3229c..af3229c 100644
--- a/usr/local/www/widgets/include/wake_on_lan.inc
+++ b/src/usr/local/www/widgets/include/wake_on_lan.inc
diff --git a/usr/local/www/widgets/javascript/cpu_graphs.js b/src/usr/local/www/widgets/javascript/cpu_graphs.js
index 1fc690a..1fc690a 100644
--- a/usr/local/www/widgets/javascript/cpu_graphs.js
+++ b/src/usr/local/www/widgets/javascript/cpu_graphs.js
diff --git a/usr/local/www/widgets/javascript/ipsec.js b/src/usr/local/www/widgets/javascript/ipsec.js
index d38f6cd..d38f6cd 100644
--- a/usr/local/www/widgets/javascript/ipsec.js
+++ b/src/usr/local/www/widgets/javascript/ipsec.js
diff --git a/usr/local/www/widgets/javascript/thermal_sensors.js b/src/usr/local/www/widgets/javascript/thermal_sensors.js
index 7415b01..7415b01 100644
--- a/usr/local/www/widgets/javascript/thermal_sensors.js
+++ b/src/usr/local/www/widgets/javascript/thermal_sensors.js
diff --git a/usr/local/www/widgets/javascript/traffic_graph.js b/src/usr/local/www/widgets/javascript/traffic_graph.js
index 383a549..383a549 100644
--- a/usr/local/www/widgets/javascript/traffic_graph.js
+++ b/src/usr/local/www/widgets/javascript/traffic_graph.js
diff --git a/usr/local/www/widgets/widgets/captive_portal_status.widget.php b/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php
index 4f067a0..4f067a0 100644
--- a/usr/local/www/widgets/widgets/captive_portal_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php
diff --git a/usr/local/www/widgets/widgets/carp_status.widget.php b/src/usr/local/www/widgets/widgets/carp_status.widget.php
index a44ddd8..a44ddd8 100644
--- a/usr/local/www/widgets/widgets/carp_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/carp_status.widget.php
diff --git a/usr/local/www/widgets/widgets/deactivated/cpu_graphs.widget.php b/src/usr/local/www/widgets/widgets/deactivated/cpu_graphs.widget.php
index 09723d7..09723d7 100644
--- a/usr/local/www/widgets/widgets/deactivated/cpu_graphs.widget.php
+++ b/src/usr/local/www/widgets/widgets/deactivated/cpu_graphs.widget.php
diff --git a/usr/local/www/widgets/widgets/dyn_dns_status.widget.php b/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php
index 7839e6e..7839e6e 100644
--- a/usr/local/www/widgets/widgets/dyn_dns_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php
diff --git a/usr/local/www/widgets/widgets/gateways.widget.php b/src/usr/local/www/widgets/widgets/gateways.widget.php
index 7087cf2..7087cf2 100644
--- a/usr/local/www/widgets/widgets/gateways.widget.php
+++ b/src/usr/local/www/widgets/widgets/gateways.widget.php
diff --git a/usr/local/www/widgets/widgets/gmirror_status.widget.php b/src/usr/local/www/widgets/widgets/gmirror_status.widget.php
index c8dad84..c8dad84 100644
--- a/usr/local/www/widgets/widgets/gmirror_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/gmirror_status.widget.php
diff --git a/usr/local/www/widgets/widgets/installed_packages.widget.php b/src/usr/local/www/widgets/widgets/installed_packages.widget.php
index b6e01bc..b6e01bc 100644
--- a/usr/local/www/widgets/widgets/installed_packages.widget.php
+++ b/src/usr/local/www/widgets/widgets/installed_packages.widget.php
diff --git a/usr/local/www/widgets/widgets/interface_statistics.widget.php b/src/usr/local/www/widgets/widgets/interface_statistics.widget.php
index 166aa80..166aa80 100644
--- a/usr/local/www/widgets/widgets/interface_statistics.widget.php
+++ b/src/usr/local/www/widgets/widgets/interface_statistics.widget.php
diff --git a/usr/local/www/widgets/widgets/interfaces.widget.php b/src/usr/local/www/widgets/widgets/interfaces.widget.php
index 85cfda1..85cfda1 100644
--- a/usr/local/www/widgets/widgets/interfaces.widget.php
+++ b/src/usr/local/www/widgets/widgets/interfaces.widget.php
diff --git a/usr/local/www/widgets/widgets/ipsec.widget.php b/src/usr/local/www/widgets/widgets/ipsec.widget.php
index 76ed282..76ed282 100644
--- a/usr/local/www/widgets/widgets/ipsec.widget.php
+++ b/src/usr/local/www/widgets/widgets/ipsec.widget.php
diff --git a/usr/local/www/widgets/widgets/load_balancer_status.widget.php b/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php
index 0613713..0613713 100644
--- a/usr/local/www/widgets/widgets/load_balancer_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php
diff --git a/usr/local/www/widgets/widgets/log.widget.php b/src/usr/local/www/widgets/widgets/log.widget.php
index 00b668a..00b668a 100644
--- a/usr/local/www/widgets/widgets/log.widget.php
+++ b/src/usr/local/www/widgets/widgets/log.widget.php
diff --git a/usr/local/www/widgets/widgets/ntp_status.widget.php b/src/usr/local/www/widgets/widgets/ntp_status.widget.php
index 48d3755..48d3755 100644
--- a/usr/local/www/widgets/widgets/ntp_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/ntp_status.widget.php
diff --git a/usr/local/www/widgets/widgets/openvpn.widget.php b/src/usr/local/www/widgets/widgets/openvpn.widget.php
index 4dc386c..4dc386c 100644
--- a/usr/local/www/widgets/widgets/openvpn.widget.php
+++ b/src/usr/local/www/widgets/widgets/openvpn.widget.php
diff --git a/usr/local/www/widgets/widgets/picture.widget.php b/src/usr/local/www/widgets/widgets/picture.widget.php
index 6b19ab6..6b19ab6 100644
--- a/usr/local/www/widgets/widgets/picture.widget.php
+++ b/src/usr/local/www/widgets/widgets/picture.widget.php
diff --git a/usr/local/www/widgets/widgets/rss.widget.php b/src/usr/local/www/widgets/widgets/rss.widget.php
index e84bae2..e84bae2 100644
--- a/usr/local/www/widgets/widgets/rss.widget.php
+++ b/src/usr/local/www/widgets/widgets/rss.widget.php
diff --git a/usr/local/www/widgets/widgets/services_status.widget.php b/src/usr/local/www/widgets/widgets/services_status.widget.php
index a0f7e54..a0f7e54 100644
--- a/usr/local/www/widgets/widgets/services_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/services_status.widget.php
diff --git a/usr/local/www/widgets/widgets/smart_status.widget.php b/src/usr/local/www/widgets/widgets/smart_status.widget.php
index 175a185..175a185 100644
--- a/usr/local/www/widgets/widgets/smart_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/smart_status.widget.php
diff --git a/usr/local/www/widgets/widgets/system_information.widget.php b/src/usr/local/www/widgets/widgets/system_information.widget.php
index c9aab04..c9aab04 100644
--- a/usr/local/www/widgets/widgets/system_information.widget.php
+++ b/src/usr/local/www/widgets/widgets/system_information.widget.php
diff --git a/usr/local/www/widgets/widgets/thermal_sensors.widget.php b/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php
index 875ccb2..875ccb2 100644
--- a/usr/local/www/widgets/widgets/thermal_sensors.widget.php
+++ b/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php
diff --git a/usr/local/www/widgets/widgets/traffic_graphs.widget.php b/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php
index 2689e32..2689e32 100644
--- a/usr/local/www/widgets/widgets/traffic_graphs.widget.php
+++ b/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php
diff --git a/usr/local/www/widgets/widgets/wake_on_lan.widget.php b/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php
index 5715044..5715044 100644
--- a/usr/local/www/widgets/widgets/wake_on_lan.widget.php
+++ b/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php
diff --git a/usr/local/www/wizard.php b/src/usr/local/www/wizard.php
index adab493..adab493 100644
--- a/usr/local/www/wizard.php
+++ b/src/usr/local/www/wizard.php
diff --git a/usr/local/www/wizards/openvpn_wizard.inc b/src/usr/local/www/wizards/openvpn_wizard.inc
index ee530a2..ee530a2 100644
--- a/usr/local/www/wizards/openvpn_wizard.inc
+++ b/src/usr/local/www/wizards/openvpn_wizard.inc
diff --git a/usr/local/www/wizards/openvpn_wizard.xml b/src/usr/local/www/wizards/openvpn_wizard.xml
index 6aea7fd..6aea7fd 100644
--- a/usr/local/www/wizards/openvpn_wizard.xml
+++ b/src/usr/local/www/wizards/openvpn_wizard.xml
diff --git a/usr/local/www/wizards/setup_wizard.xml b/src/usr/local/www/wizards/setup_wizard.xml
index 9da0509..9da0509 100644
--- a/usr/local/www/wizards/setup_wizard.xml
+++ b/src/usr/local/www/wizards/setup_wizard.xml
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
index d984fed..d984fed 100644
--- a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
+++ b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
index c86a72a..c86a72a 100755
--- a/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
+++ b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
index 3f68869..3f68869 100644
--- a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
+++ b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
diff --git a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
index e94256b..e94256b 100755
--- a/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
+++ b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
diff --git a/usr/local/www/xmlrpc.php b/src/usr/local/www/xmlrpc.php
index 5fd022a..5fd022a 100755
--- a/usr/local/www/xmlrpc.php
+++ b/src/usr/local/www/xmlrpc.php
diff --git a/usr/share/doc/legal/intel_ipw/LICENSE b/src/usr/share/doc/legal/intel_ipw/LICENSE
index a3e83f5..a3e83f5 100644
--- a/usr/share/doc/legal/intel_ipw/LICENSE
+++ b/src/usr/share/doc/legal/intel_ipw/LICENSE
diff --git a/usr/share/doc/legal/intel_iwi/LICENSE b/src/usr/share/doc/legal/intel_iwi/LICENSE
index fa26c67..fa26c67 100644
--- a/usr/share/doc/legal/intel_iwi/LICENSE
+++ b/src/usr/share/doc/legal/intel_iwi/LICENSE
diff --git a/usr/share/doc/legal/intel_wpi/LICENSE b/src/usr/share/doc/legal/intel_wpi/LICENSE
index c2a84d4..c2a84d4 100644
--- a/usr/share/doc/legal/intel_wpi/LICENSE
+++ b/src/usr/share/doc/legal/intel_wpi/LICENSE
diff --git a/usr/share/zoneinfo.tgz b/src/usr/share/zoneinfo.tgz
index 410a41f..410a41f 100644
--- a/usr/share/zoneinfo.tgz
+++ b/src/usr/share/zoneinfo.tgz
Binary files differ
diff --git a/tools/build_snapshots.sh b/tools/build_snapshots.sh
new file mode 100755
index 0000000..2d053f5
--- /dev/null
+++ b/tools/build_snapshots.sh
@@ -0,0 +1,384 @@
+#!/bin/sh
+#
+# build_snapshots.sh
+#
+# Copyright (c) 2007-2015 Electric Sheep Fencing, LLC
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+# EXPRESSED 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 pfSense PROJECT OR
+# ITS 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.
+#
+
+export BUILDER_TOOLS=$(realpath $(dirname ${0}))
+export BUILDER_ROOT=$(realpath "${BUILDER_TOOLS}/..")
+
+NO_UPLOAD=""
+LOOPED_SNAPSHOTS=""
+
+# Handle command line arguments
+while test "$1" != "" ; do
+ case $1 in
+ --noupload|-u)
+ NO_UPLOAD="-u"
+ ;;
+ --looped)
+ LOOPED_SNAPSHOTS="true"
+ esac
+ shift
+done
+
+# Source ${PRODUCT_NAME} / FreeSBIE variables
+# *** DO NOT SOURCE BUILDER_COMMON.SH!
+# *** IT WILL BREAK EVERYTHING FOR
+# *** SOME UNKNOWN LAYERING REASON.
+# *** 04/07/2008, 11/04/2009
+echo ">>> Execing build.conf"
+. ${BUILDER_TOOLS}/builder_defaults.sh
+
+if [ -z "${RSYNCIP}" -a -z "${NO_UPLOAD}" ]; then
+ echo ">>> ERROR: RSYNCIP is not defined"
+ exit 1
+fi
+
+if [ -z "${RSYNCUSER}" -a -z "${NO_UPLOAD}" ]; then
+ echo ">>> ERROR: RSYNCUSER is not defined"
+ exit 1
+fi
+
+if [ -z "${RSYNCPATH}" -a -z "${NO_UPLOAD}" ]; then
+ echo ">>> ERROR: RSYNCPATH is not defined"
+ exit 1
+fi
+
+if [ -z "${RSYNCLOGS}" -a -z "${NO_UPLOAD}" ]; then
+ echo ">>> ERROR: RSYNCLOGS is not defined"
+ exit 1
+fi
+
+# Keeps track of how many time builder has looped
+BUILDCOUNTER=0
+
+# Local variables that are used by builder scripts
+STAGINGAREA=${SCRATCHDIR}/staging
+RSYNCKBYTELIMIT="248000"
+
+export SNAPSHOTSLOGFILE=${SNAPSHOTSLOGFILE:-"$SCRATCHDIR/snapshots-build.log"}
+export SNAPSHOTSLASTUPDATE=${SNAPSHOTSLASTUPDATE:-"$SCRATCHDIR/snapshots-lastupdate.log"}
+
+# Ensure directories exist
+mkdir -p $STAGINGAREA
+
+echo "" > $SNAPSHOTSLOGFILE
+echo "" > $SNAPSHOTSLASTUPDATE
+
+git_last_commit() {
+ if [ -d "${1}/.git" ]; then
+ git -C "${1}" pull -q
+ git -C "${1}" log -1 --format='%H'
+ fi
+}
+
+# This routine is called in between runs. We
+# will sleep for a bit and check for new commits
+# in between sleeping for short durations.
+sleep_between_runs() {
+ COUNTER=0
+ while [ $COUNTER -lt $maxsleepvalue ]; do
+ sleep 60
+ CURRENT_COMMIT=$(git_last_commit "${BUILDER_ROOT}")
+ if [ "${LAST_COMMIT}" != "${CURRENT_COMMIT}" ]; then
+ update_status ">>> New commit: $CURRENT_AUTHOR - $CURRENT_COMMIT .. No longer sleepy."
+ COUNTER=$(($maxsleepvalue + 60))
+ export LAST_COMMIT="${CURRENT_COMMIT}"
+ fi
+ COUNTER=$(($COUNTER + 60))
+ done
+ if [ $COUNTER -ge $maxsleepvalue ]; then
+ update_status ">>> Sleep timer expired. Restarting build."
+ maxsleepvalue=0
+ COUNTER=0
+ fi
+}
+
+# This routine is called to write out to stdout
+# a string. The string is appended to $SNAPSHOTSLOGFILE
+# and we scp the log file to the builder host if
+# needed for the real time logging functions.
+update_status() {
+ if [ "$1" = "" ]; then
+ return
+ fi
+ echo $1
+ echo "`date` -|- $1" >> $SNAPSHOTSLOGFILE
+ if [ -z "${NO_UPLOAD}" ]; then
+ LU=`cat $SNAPSHOTSLASTUPDATE`
+ CT=`date "+%H%M%S"`
+ # Only update every minute
+ if [ "$LU" != "$CT" ]; then
+ ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCLOGS}"
+ scp -q $SNAPSHOTSLOGFILE ${RSYNCUSER}@${RSYNCIP}:${RSYNC_LOGS}/build.log
+ date "+%H%M%S" > $SNAPSHOTSLASTUPDATE
+ fi
+ fi
+}
+
+# Copy the current log file to $filename.old on
+# the snapshot www server (real time logs)
+rotate_logfile() {
+ if [ -n "$MASTER_BUILDER_SSH_LOG_DEST" -a -z "${NO_UPLOAD}" ]; then
+ scp -q $SNAPSHOTSLOGFILE ${RSYNCUSER}@${RSYNCIP}:${RSYNC_LOGS}/build.log.old
+ fi
+
+ # Cleanup log file
+ echo "" > $SNAPSHOTSLOGFILE
+}
+
+dobuilds() {
+ # Build images
+ (cd ${BUILDER_ROOT} && ./build.sh --flash-size '1g 2g 4g' "iso memstick memstickserial memstickadi fullupdate nanobsd nanobsd-vga")
+ # Copy files
+ copy_to_staging_iso_updates
+ copy_to_staging_nanobsd '1g 2g 4g'
+}
+
+copy_to_staging_nanobsd() {
+ for NANOTYPE in nanobsd nanobsd-vga; do
+ for FILESIZE in ${1}; do
+ FILENAMEFULL="${PRODUCT_NAME}-${PRODUCT_VERSION}-${FILESIZE}-${TARGET}-${NANOTYPE}-${DATESTRING}.img.gz"
+ FILENAMEUPGRADE="${PRODUCT_NAME}-${PRODUCT_VERSION}-${FILESIZE}-${TARGET}-${NANOTYPE}-upgrade-${DATESTRING}.img.gz"
+ mkdir -p $STAGINGAREA/nanobsd
+ mkdir -p $STAGINGAREA/nanobsdupdates
+
+ cp $IMAGES_FINAL_DIR/$FILENAMEFULL $STAGINGAREA/nanobsd/ 2>/dev/null
+ cp $IMAGES_FINAL_DIR/$FILENAMEUPGRADE $STAGINGAREA/nanobsdupdates 2>/dev/null
+
+ if [ -f $STAGINGAREA/nanobsd/$FILENAMEFULL ]; then
+ md5 $STAGINGAREA/nanobsd/$FILENAMEFULL > $STAGINGAREA/nanobsd/$FILENAMEFULL.md5 2>/dev/null
+ sha256 $STAGINGAREA/nanobsd/$FILENAMEFULL > $STAGINGAREA/nanobsd/$FILENAMEFULL.sha256 2>/dev/null
+ fi
+ if [ -f $STAGINGAREA/nanobsdupdates/$FILENAMEUPGRADE ]; then
+ md5 $STAGINGAREA/nanobsdupdates/$FILENAMEUPGRADE > $STAGINGAREA/nanobsdupdates/$FILENAMEUPGRADE.md5 2>/dev/null
+ sha256 $STAGINGAREA/nanobsdupdates/$FILENAMEUPGRADE > $STAGINGAREA/nanobsdupdates/$FILENAMEUPGRADE.sha256 2>/dev/null
+ fi
+
+ # Copy NanoBSD auto update:
+ if [ -f $STAGINGAREA/nanobsdupdates/$FILENAMEUPGRADE ]; then
+ cp $STAGINGAREA/nanobsdupdates/$FILENAMEUPGRADE $STAGINGAREA/latest-${NANOTYPE}-$FILESIZE.img.gz 2>/dev/null
+ sha256 $STAGINGAREA/latest-${NANOTYPE}-$FILESIZE.img.gz > $STAGINGAREA/latest-${NANOTYPE}-$FILESIZE.img.gz.sha256 2>/dev/null
+ # NOTE: Updates need a file with output similar to date output
+ # Use the file generated at start of dobuilds() to be consistent on times
+ cp $BUILTDATESTRINGFILE $STAGINGAREA/version-${NANOTYPE}-$FILESIZE
+ fi
+ done
+ done
+}
+
+copy_to_staging_iso_updates() {
+ # Copy ISOs
+ md5 ${ISOPATH}.gz > ${ISOPATH}.md5
+ sha256 ${ISOPATH}.gz > ${ISOPATH}.sha256
+ cp ${ISOPATH}* $STAGINGAREA/ 2>/dev/null
+
+ # Copy memstick items
+ md5 ${MEMSTICKPATH}.gz > ${MEMSTICKPATH}.md5
+ sha256 ${MEMSTICKPATH}.gz > ${MEMSTICKPATH}.sha256
+ cp ${MEMSTICKPATH}* $STAGINGAREA/ 2>/dev/null
+
+ md5 ${MEMSTICKSERIALPATH}.gz > ${MEMSTICKSERIALPATH}.md5
+ sha256 ${MEMSTICKSERIALPATH}.gz > ${MEMSTICKSERIALPATH}.sha256
+ cp ${MEMSTICKSERIALPATH}* $STAGINGAREA/ 2>/dev/null
+
+ md5 ${MEMSTICKADIPATH}.gz > ${MEMSTICKADIPATH}.md5
+ sha256 ${MEMSTICKADIPATH}.gz > ${MEMSTICKADIPATH}.sha256
+ cp ${MEMSTICKADIPATH}* $STAGINGAREA/ 2>/dev/null
+
+ md5 ${UPDATES_TARBALL_FILENAME} > ${UPDATES_TARBALL_FILENAME}.md5
+ sha256 ${UPDATES_TARBALL_FILENAME} > ${UPDATES_TARBALL_FILENAME}.sha256
+ cp ${UPDATES_TARBALL_FILENAME}* $STAGINGAREA/ 2>/dev/null
+ # NOTE: Updates need a file with output similar to date output
+ # Use the file generated at start of dobuilds() to be consistent on times
+ cp $BUILTDATESTRINGFILE $STAGINGAREA/version 2>/dev/null
+}
+
+scp_files() {
+ if [ -z "${RSYNC_COPY_ARGUMENTS:-}" ]; then
+ RSYNC_COPY_ARGUMENTS="-ave ssh --timeout=60 --bwlimit=${RSYNCKBYTELIMIT}" #--bwlimit=50
+ fi
+ update_status ">>> Copying files to ${RSYNCIP}"
+
+ rm -f $SCRATCHDIR/ssh-snapshots*
+
+ # Ensure directory(s) are available
+ ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCPATH}/livecd_installer"
+ ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCPATH}/updates"
+ ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCPATH}/nanobsd"
+ if [ -d $STAGINGAREA/virtualization ]; then
+ ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCPATH}/virtualization"
+ fi
+ ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCPATH}/.updaters"
+ # ensure permissions are correct for r+w
+ ssh ${RSYNCUSER}@${RSYNCIP} "chmod -R ug+rw /usr/local/www/snapshots/FreeBSD_${FREEBSD_PARENT_BRANCH}/${TARGET}/."
+ ssh ${RSYNCUSER}@${RSYNCIP} "chmod -R ug+rw ${RSYNCPATH}/."
+ ssh ${RSYNCUSER}@${RSYNCIP} "chmod -R ug+rw ${RSYNCPATH}/*/."
+ rsync $RSYNC_COPY_ARGUMENTS $STAGINGAREA/${PRODUCT_NAME}-*iso* \
+ ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/livecd_installer/
+ rsync $RSYNC_COPY_ARGUMENTS $STAGINGAREA/${PRODUCT_NAME}-memstick* \
+ ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/livecd_installer/
+ rsync $RSYNC_COPY_ARGUMENTS $STAGINGAREA/${PRODUCT_NAME}-*Update* \
+ ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/updates/
+ rsync $RSYNC_COPY_ARGUMENTS $STAGINGAREA/nanobsd/* \
+ ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/nanobsd/
+ rsync $RSYNC_COPY_ARGUMENTS $STAGINGAREA/nanobsdupdates/* \
+ ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/updates/
+ if [ -d $STAGINGAREA/virtualization ]; then
+ rsync $RSYNC_COPY_ARGUMENTS $STAGINGAREA/virtualization/* \
+ ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/virtualization/
+ fi
+
+ # Rather than copy these twice, use ln to link to the latest one.
+
+ ssh ${RSYNCUSER}@${RSYNCIP} "rm -f ${RSYNCPATH}/.updaters/latest.tgz"
+ ssh ${RSYNCUSER}@${RSYNCIP} "rm -f ${RSYNCPATH}/.updaters/latest.tgz.sha256"
+
+ LATESTFILENAME="`ls $UPDATESDIR/*.tgz | grep Full | grep -v md5 | grep -v sha256 | tail -n1`"
+ LATESTFILENAME=`basename ${LATESTFILENAME}`
+ ssh ${RSYNCUSER}@${RSYNCIP} "ln -s ${RSYNCPATH}/updates/${LATESTFILENAME} \
+ ${RSYNCPATH}/.updaters/latest.tgz"
+ ssh ${RSYNCUSER}@${RSYNCIP} "ln -s ${RSYNCPATH}/updates/${LATESTFILENAME}.sha256 \
+ ${RSYNCPATH}/.updaters/latest.tgz.sha256"
+
+ for i in 1g 2g 4g
+ do
+ ssh ${RSYNCUSER}@${RSYNCIP} "rm -f ${RSYNCPATH}/.updaters/latest-nanobsd-${i}.img.gz"
+ ssh ${RSYNCUSER}@${RSYNCIP} "rm -f ${RSYNCPATH}/.updaters/latest-nanobsd-${i}.img.gz.sha256"
+ ssh ${RSYNCUSER}@${RSYNCIP} "rm -f ${RSYNCPATH}/.updaters/latest-nanobsd-vga-${i}.img.gz"
+ ssh ${RSYNCUSER}@${RSYNCIP} "rm -f ${RSYNCPATH}/.updaters/latest-nanobsd-vga-${i}.img.gz.sha256"
+
+ FILENAMEUPGRADE="${PRODUCT_NAME}-${PRODUCT_VERSION}-${i}-${TARGET}-nanobsd-upgrade-${DATESTRING}.img.gz"
+ ssh ${RSYNCUSER}@${RSYNCIP} "ln -s ${RSYNCPATH}/updates/${FILENAMEUPGRADE} \
+ ${RSYNCPATH}/.updaters/latest-nanobsd-${i}.img.gz"
+ ssh ${RSYNCUSER}@${RSYNCIP} "ln -s ${RSYNCPATH}/updates/${FILENAMEUPGRADE}.sha256 \
+ ${RSYNCPATH}/.updaters/latest-nanobsd-${i}.img.gz.sha256"
+
+ FILENAMEUPGRADE="${PRODUCT_NAME}-${PRODUCT_VERSION}-${i}-${TARGET}-nanobsd-vga-upgrade-${DATESTRING}.img.gz"
+ ssh ${RSYNCUSER}@${RSYNCIP} "ln -s ${RSYNCPATH}/updates/${FILENAMEUPGRADE} \
+ ${RSYNCPATH}/.updaters/latest-nanobsd-vga-${i}.img.gz"
+ ssh ${RSYNCUSER}@${RSYNCIP} "ln -s ${RSYNCPATH}/updates/${FILENAMEUPGRADE}.sha256 \
+ ${RSYNCPATH}/.updaters/latest-nanobsd-vga-${i}.img.gz.sha256"
+ done
+
+ rsync $RSYNC_COPY_ARGUMENTS $STAGINGAREA/version* \
+ ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/.updaters
+ update_status ">>> Finished copying files."
+}
+
+cleanup_builds() {
+ # Remove prior builds
+ update_status ">>> Cleaning up after prior builds..."
+ rm -rf $STAGINGAREA/*
+ rm -rf $IMAGES_FINAL_DIR/*
+ (cd ${BUILDER_ROOT} && ./build.sh --clean-builder)
+}
+
+build_loop_operations() {
+ update_status ">>> Starting build loop operations"
+ # --- Items we need to run for a complete build run ---
+ # Cleanup prior builds
+ cleanup_builds
+ # Update pkgs if necessary
+ if pkg update -r ${PRODUCT_NAME} >/dev/null 2>&1; then
+ update_status ">>> Updating builder packages... "
+ pkg upgrade -r ${PRODUCT_NAME} -y -q >/dev/null 2>&1
+ fi
+ # Do the builds
+ dobuilds
+ # SCP files to snapshot web hosting area
+ if [ -z "${NO_UPLOAD}" ]; then
+ scp_files
+ fi
+ # Alert the world that we have some snapshots ready.
+ update_status ">>> Builder run is complete."
+}
+
+if [ -z "${LOOPED_SNAPSHOTS}" ]; then
+ build_loop_operations
+else
+ # Main builder loop
+ while [ /bin/true ]; do
+ BUILDCOUNTER=`expr $BUILDCOUNTER + 1`
+ update_status ">>> Starting builder run #${BUILDCOUNTER}..."
+
+ # Launch the snapshots builder script and pipe its
+ # contents to the while loop so we can record the
+ # script progress in real time to the public facing
+ # snapshot server (${RSYNCIP}).
+ ( build_loop_operations ) | while read LINE
+ do
+ update_status "$LINE"
+ done
+
+ export minsleepvalue=28800
+ export maxsleepvalue=86400
+
+ # Initialize variables that keep track of last commit
+ [ -z "${LAST_COMMIT}" ] \
+ && export LAST_COMMIT="$(git -C ${BUILDER_ROOT} log | head -n1 | cut -d' ' -f2)"
+
+ update_status ">>> Sleeping for at least $minsleepvalue, at most $maxsleepvalue in between snapshot builder runs. Last known commit ${LAST_COMMIT}"
+ update_status ">>> Freezing build process at `date`."
+ sleep $minsleepvalue
+ update_status ">>> Thawing build process and resuming checks for pending commits at `date`."
+
+ # Count some sheep or wait until a new commit turns up
+ # for one days time. We will wake up if a new commit
+ # is detected during sleepy time.
+ sleep_between_runs $maxsleepvalue
+
+ # If REBOOT_AFTER_SNAPSHOT_RUN is defined reboot
+ # the box after the run.
+ if [ ! -z "${REBOOT_AFTER_SNAPSHOT_RUN:-}" ]; then
+ update_status ">>> Rebooting `hostname` due to \$REBOOT_AFTER_SNAPSHOT_RUN"
+ shutdown -r now
+ kill $$
+ fi
+ # Rotate log file (.old)
+ rotate_logfile
+
+ # Set a common DATESTRING for the build if not set from builder_defaults.sh.
+ # Rely on builder_defaults.sh doing the right job the first time included from this script.
+ # NOTE: This is needed to have autoupdate detect a new version.
+ # Override it here to have continuous builds with proper labels
+ rm -f $DATESTRINGFILE
+ rm -f $BUILTDATESTRINGFILE
+ unset DATESTRING
+ unset BUILTDATESTRING
+ unset ISOPATH
+ unset MEMSTICKPATH
+ unset MEMSTICKSERIALPATH
+ unset MEMSTICKADIPATH
+ unset UPDATES_TARBALL_FILENAME
+ # builder_defaults.sh will set variables with correct timestamp
+ . ${BUILDER_TOOLS}/builder_defaults.sh
+ done
+fi
diff --git a/tools/builder_common.sh b/tools/builder_common.sh
new file mode 100644
index 0000000..6405620
--- /dev/null
+++ b/tools/builder_common.sh
@@ -0,0 +1,1977 @@
+#!/bin/sh
+#
+# builder_common.sh
+#
+# Copyright (c) 2004-2015 Electric Sheep Fencing, LLC
+# Copyright (C) 2014 Ermal Luçi
+# All rights reserved.
+#
+# NanoBSD portions of the code
+# Copyright (c) 2005 Poul-Henning Kamp.
+# and copied from nanobsd.sh
+# All rights reserved.
+#
+# FreeSBIE portions of the code
+# Copyright (c) 2005 Dario Freni
+# and copied from FreeSBIE project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+# EXPRESSED 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 pfSense PROJECT OR
+# ITS 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.
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+
+if [ -n "${IMAGES_FINAL_DIR}" -a "${IMAGES_FINAL_DIR}" != "/" ]; then
+ mkdir -p ${IMAGES_FINAL_DIR}
+else
+ echo "IMAGES_FINAL_DIR is not defined"
+ print_error_pfS
+fi
+
+lc() {
+ echo "${1}" | tr '[[:upper:]]' '[[:lower:]]'
+}
+
+git_last_commit() {
+ CURRENT_COMMIT=$(git -C ${BUILDER_ROOT} log -1 --format='%H')
+ CURRENT_AUTHOR=$(git -C ${BUILDER_ROOT} log -1 --format='%an')
+ echo ">>> Last known commit $CURRENT_AUTHOR - $CURRENT_COMMIT"
+ echo "$CURRENT_COMMIT" > $SCRATCHDIR/build_commit_info.txt
+}
+
+# Create core pkg (base, kernel)
+core_pkg_create() {
+ local _template="${1}"
+ local _flavor="${2}"
+ local _version="${3}"
+ local _root="${4}"
+
+ [ -d "${CORE_PKG_TMP}" ] \
+ && rm -rf ${CORE_PKG_TMP}
+
+ local _templates_path=${BUILDER_TOOLS}/templates/core_pkg/${_template}
+ local _template_metadir=${_templates_path}/metadir
+ local _metadir=${CORE_PKG_TMP}/${_template}_metadir
+
+ if [ ! -d ${_template_metadir} ]; then
+ echo "ERROR: Template dir not found for pkg ${_template}"
+ exit
+ fi
+
+ mkdir -p ${CORE_PKG_TMP}
+
+ cp -r ${_template_metadir} ${_metadir}
+
+ local _manifest=${_metadir}/+MANIFEST
+ local _plist=${CORE_PKG_TMP}/${_template}_plist
+ local _exclude_plist=${CORE_PKG_TMP}/${_template}_exclude_plist
+
+ if [ -f "${_templates_path}/pkg-plist" ]; then
+ cp ${_templates_path}/pkg-plist ${_plist}
+ else
+ (cd ${_root} && find . -type f -or -type l | sed 's,^.,,' | sort -u) > ${_plist}
+ fi
+
+ if [ -f "${_templates_path}/exclude_plist" ]; then
+ cp ${_templates_path}/exclude_plist ${_exclude_plist}
+ else
+ touch ${_exclude_plist}
+ fi
+
+ sed \
+ -i '' \
+ -e "s,%%PRODUCT_NAME%%,${PRODUCT_NAME},g" \
+ -e "s,%%PRODUCT_URL%%,${PRODUCT_URL},g" \
+ -e "s,%%FLAVOR%%,${_flavor},g" \
+ -e "s,%%VERSION%%,${_version},g" \
+ ${_metadir}/* \
+ ${_plist} \
+ ${exclude_plist}
+
+ if [ -f "${_exclude_plist}" ]; then
+ sort -u ${_exclude_plist} > ${_plist}.exclude
+ mv ${_plist} ${_plist}.tmp
+ comm -23 ${_plist}.tmp ${_plist}.exclude > ${_plist}
+ rm -f ${_plist}.tmp ${plist}.exclude
+ fi
+
+ mkdir -p ${CORE_PKG_PATH}
+ if ! pkg create -o ${CORE_PKG_PATH} -p ${_plist} -r ${_root} -m ${_metadir}; then
+ echo ">>> ERROR: Error building package ${_template} ${_flavor}"
+ print_error_pfS
+ fi
+}
+
+# This routine will output that something went wrong
+print_error_pfS() {
+ echo
+ echo "####################################"
+ echo "Something went wrong, check errors!" >&2
+ echo "####################################"
+ echo
+ echo "NOTE: a lot of times you can run './build.sh --clean-builder' to resolve."
+ echo
+ if [ "$1" != "" ]; then
+ echo $1
+ fi
+ [ -n "${LOGFILE:-}" -a -f "${LOGFILE}" ] && \
+ echo "Log saved on ${LOGFILE}" && \
+ tail -n20 ${LOGFILE} >&2
+ echo
+ echo "Press enter to continue."
+ read ans
+ kill $$
+ exit 1
+}
+
+prestage_on_ram_setup() {
+ [ -d "${STAGE_CHROOT_DIR}" ] \
+ || mkdir -p ${STAGE_CHROOT_DIR}
+ [ -d "${FINAL_CHROOT_DIR}" ] \
+ || mkdir -p ${FINAL_CHROOT_DIR}
+
+ _AVAIL_MEM=$(($(sysctl -n hw.usermem) / 1024 / 1024))
+ if [ $_AVAIL_MEM -lt 2000 ]; then
+ echo ">>> Builder has less than 2GiB RAM skipping memory disks"
+ return
+ else
+ echo "######################################################################################"
+ echo
+ echo ">>> Builder has more than 1.4GiB RAM enabling memory disks"
+ echo ">>> WARNING: Remember to remove these memory disks by running $0 --disable-memorydisks"
+ echo
+ echo "######################################################################################"
+ fi
+
+ if df /dev/ufs/prestagebacking >/dev/null 2>&1; then
+ echo ">>> Detected preexisting memory disk enabled for ${STAGE_CHROOT_DIR}."
+ else
+ mdconfig -a -t swap -u 10001 -s ${MEMORYDISK_SIZE}
+ newfs -L prestagebacking -U /dev/md10001
+ mount /dev/ufs/prestagebacking ${STAGE_CHROOT_DIR}
+ fi
+
+ if df /dev/ufs/finalstagebacking >/dev/null 2>&1; then
+ echo ">>> Detected preexisting memory disk enabled for ${FINAL_CHROOT_DIR}."
+ else
+ mdconfig -a -t swap -u 10002 -s ${MEMORYDISK_SIZE}
+ newfs -L finalstagebacking -U /dev/md10002
+ mount /dev/ufs/finalstagebacking ${FINAL_CHROOT_DIR}
+ fi
+}
+
+prestage_on_ram_cleanup() {
+ if [ -c /dev/md10001 ]; then
+ if [ -d ${STAGE_CHROOT_DIR} ]; then
+ umount ${STAGE_CHROOT_DIR}
+ fi
+ mdconfig -d -u 10001
+ fi
+ if [ -c /dev/md10002 ]; then
+ if [ -d ${FINAL_CHROOT_DIR} ]; then
+ umount ${FINAL_CHROOT_DIR}
+ fi
+ mdconfig -d -u 10002
+ fi
+}
+
+# This routine will verify that the kernel has been
+# installed OK to the staging area.
+ensure_kernel_exists() {
+ if [ ! -f "$1/boot/kernel/kernel.gz" ]; then
+ echo ">>> ERROR: Could not locate $1/boot/kernel.gz"
+ print_error_pfS
+ fi
+ KERNEL_SIZE=$(stat -f "%z" $1/boot/kernel/kernel.gz)
+ if [ "$KERNEL_SIZE" -lt 3500 ]; then
+ echo ">>> ERROR: Kernel $1/boot/kernel.gz appears to be smaller than it should be: $KERNEL_SIZE"
+ print_error_pfS
+ fi
+}
+
+get_pkg_name() {
+ echo "${PRODUCT_NAME}-${1}-${CORE_PKG_VERSION}"
+}
+
+# This routine builds all related kernels
+build_all_kernels() {
+ # Set KERNEL_BUILD_PATH if it has not been set
+ if [ -z "${KERNEL_BUILD_PATH}" ]; then
+ KERNEL_BUILD_PATH=$SCRATCHDIR/kernels
+ echo ">>> KERNEL_BUILD_PATH has not been set. Setting to ${KERNEL_BUILD_PATH}!"
+ fi
+
+ [ -d "${KERNEL_BUILD_PATH}" ] \
+ && rm -rf ${KERNEL_BUILD_PATH}
+
+ # Build embedded kernel
+ for BUILD_KERNEL in $BUILD_KERNELS; do
+ unset KERNCONF
+ unset KERNEL_DESTDIR
+ unset KERNELCONF
+ unset KERNEL_NAME
+ export KERNCONF=$BUILD_KERNEL
+ export KERNEL_DESTDIR="$KERNEL_BUILD_PATH/$BUILD_KERNEL"
+ export KERNELCONF="${FREEBSD_SRC_DIR}/sys/${TARGET}/conf/$BUILD_KERNEL"
+ export KERNEL_NAME=${BUILD_KERNEL}
+
+ LOGFILE="${BUILDER_LOGS}/kernel.${KERNCONF}.${TARGET}.log"
+ echo ">>> Building $BUILD_KERNEL kernel." | tee -a ${LOGFILE}
+
+ if [ ! -e "${FREEBSD_SRC_DIR}/sys/${TARGET}/conf/${BUILD_KERNEL}" ]; then
+ echo ">>> ERROR: Could not find $KERNELCONF"
+ print_error_pfS
+ fi
+
+ if [ -n "${NO_BUILDKERNEL:-}" -a -f "${CORE_PKG_PATH}/$(get_pkg_name kernel-${KERNEL_NAME}).txz" ]; then
+ echo ">>> NO_BUILDKERNEL set, skipping build" | tee -a ${LOGFILE}
+ continue
+ fi
+
+ export SRC_CONF=${SRC_CONF}
+ buildkernel
+
+ echo ">>> Staging $BUILD_KERNEL kernel..." | tee -a ${LOGFILE}
+ installkernel
+
+ ensure_kernel_exists $KERNEL_DESTDIR
+
+ echo -n ">>> Creating pkg of $KERNEL_NAME kernel to staging area..." | tee -a ${LOGFILE}
+ core_pkg_create kernel ${KERNEL_NAME} ${CORE_PKG_VERSION} ${KERNEL_DESTDIR}
+
+ rm -rf $KERNEL_DESTDIR 2>&1 1>/dev/null
+
+ echo ".Done" | tee -a ${LOGFILE}
+ done
+}
+
+install_default_kernel() {
+ if [ -z "${1}" ]; then
+ echo ">>> ERROR: install_default_kernel called without a kernel config name"| tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ export KERNEL_NAME="${1}"
+
+ echo -n ">>> Installing kernel to be used by image ${KERNEL_NAME}..." | tee -a ${LOGFILE}
+
+ # Copy kernel package to chroot, otherwise pkg won't find it to install
+ if ! pkg_chroot_add ${FINAL_CHROOT_DIR} kernel-${KERNEL_NAME}; then
+ echo ">>> ERROR: Error installing kernel package $(get_pkg_name kernel-${KERNEL_NAME}).txz" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ # Lock kernel to avoid user end up removing it for any reason
+ pkg_chroot ${FINAL_CHROOT_DIR} lock -q -y $(get_pkg_name kernel-${KERNEL_NAME})
+
+ if [ ! -f $FINAL_CHROOT_DIR/boot/kernel/kernel.gz ]; then
+ echo ">>> ERROR: No kernel installed on $FINAL_CHROOT_DIR and the resulting image will be unusable. STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ mkdir -p $FINAL_CHROOT_DIR/pkgs
+ if [ -z "${2}" -o -n "${INSTALL_EXTRA_KERNELS}" ]; then
+ cp ${CORE_PKG_PATH}/$(get_pkg_name kernel-${KERNEL_NAME}).txz $FINAL_CHROOT_DIR/pkgs
+ if [ -n "${INSTALL_EXTRA_KERNELS}" ]; then
+ for _EXTRA_KERNEL in $INSTALL_EXTRA_KERNELS; do
+ _EXTRA_KERNEL_PATH=${CORE_PKG_PATH}/$(get_pkg_name kernel-${_EXTRA_KERNEL}).txz
+ if [ -f "${_EXTRA_KERNEL_PATH}" ]; then
+ echo -n ". adding ${_EXTRA_KERNEL_PATH} on image /pkgs folder"
+ cp ${_EXTRA_KERNEL_PATH} $FINAL_CHROOT_DIR/pkgs
+ else
+ echo ">>> ERROR: Requested kernel $(get_pkg_name kernel-${_EXTRA_KERNEL}).txz was not found to be put on image /pkgs folder!"
+ print_error_pfS
+ fi
+ done
+ fi
+ fi
+ echo "Done." | tee -a ${LOGFILE}
+
+ unset KERNEL_NAME
+}
+
+# Items that need to be fixed up that are
+# specific to nanobsd builds
+cust_fixup_nanobsd() {
+ local _NANO_WITH_VGA="${1}"
+
+ echo ">>> Fixing up NanoBSD Specific items..." | tee -a ${LOGFILE}
+
+ echo "nanobsd" > $FINAL_CHROOT_DIR/etc/platform
+
+ local BOOTCONF=${FINAL_CHROOT_DIR}/boot.config
+ local LOADERCONF=${FINAL_CHROOT_DIR}/boot/loader.conf
+
+ if [ "${_NANO_WITH_VGA}" = "nanobsd" ]; then
+ # Tell loader to use serial console early.
+ echo "-S115200 -h" >> ${BOOTCONF}
+ else
+ # Empty file to identify nanobsd_vga images
+ touch ${FINAL_CHROOT_DIR}/etc/nano_use_vga.txt
+ fi
+
+ # Remove old console options if present.
+ [ -f "${LOADERCONF}" ] \
+ && sed -i "" -Ee "/(console|boot_multicons|boot_serial|hint.uart)/d" ${LOADERCONF}
+ # Activate serial console+video console in loader.conf
+ echo 'autoboot_delay="5"' >> ${LOADERCONF}
+ echo 'loader_color="NO"' >> ${LOADERCONF}
+ echo 'beastie_disable="YES"' >> ${LOADERCONF}
+ echo 'boot_serial="YES"' >> ${LOADERCONF}
+ echo 'console="comconsole"' >> ${LOADERCONF}
+ echo 'comconsole_speed="115200"' >> ${LOADERCONF}
+}
+
+# Creates a full update file
+create_Full_update_tarball() {
+ mkdir -p $UPDATESDIR
+
+ customize_stagearea_for_image "fullupdate"
+ install_default_kernel ${DEFAULT_KERNEL}
+
+ rm -rf ${FINAL_CHROOT_DIR}/cf
+ rm -rf ${FINAL_CHROOT_DIR}/conf
+ rm -f ${FINAL_CHROOT_DIR}/etc/rc.conf
+ rm -f ${FINAL_CHROOT_DIR}/etc/pwd.db 2>/dev/null
+ rm -f ${FINAL_CHROOT_DIR}/etc/group 2>/dev/null
+ rm -f ${FINAL_CHROOT_DIR}/etc/spwd.db 2>/dev/null
+ rm -f ${FINAL_CHROOT_DIR}/etc/passwd 2>/dev/null
+ rm -f ${FINAL_CHROOT_DIR}/etc/master.passwd 2>/dev/null
+ rm -f ${FINAL_CHROOT_DIR}/etc/fstab 2>/dev/null
+ rm -f ${FINAL_CHROOT_DIR}/etc/bogons 2>/dev/null
+ # Remove loader.conf and friends. Ticket #560
+ rm ${FINAL_CHROOT_DIR}/boot/loader.conf 2>/dev/null
+ rm ${FINAL_CHROOT_DIR}/boot/loader.conf.local 2>/dev/null
+
+ echo ">>> Creating ${UPDATES_TARBALL_FILENAME} ..." | tee -a ${LOGFILE}
+ tar --exclude=./dev -czPf ${UPDATES_TARBALL_FILENAME} -C ${FINAL_CHROOT_DIR} .
+}
+
+# Outputs various set variables aka env
+print_flags() {
+
+ echo
+ printf " Product version: %s\n" $PRODUCT_VERSION
+ printf " Stage DIR: %s\n" $STAGE_CHROOT_DIR
+ printf " Updates dir: %s\n" $UPDATESDIR
+ printf " Image Preparation Stage DIR: %s\n" $FINAL_CHROOT_DIR
+ printf " Source DIR: %s\n" $FREEBSD_SRC_DIR
+ printf " FreeBSD repository: %s\n" $FREEBSD_REPO_BASE
+ printf " FreeBSD-src branch: %s\n" $FREEBSD_BRANCH
+ printf " FreeBSD original branch: %s\n" $FREEBSD_PARENT_BRANCH
+ printf " BUILD_KERNELS: %s\n" $BUILD_KERNELS
+ printf " Git Branch or Tag: %s\n" $GIT_REPO_BRANCH_OR_TAG
+ printf " MODULES_OVERRIDE: %s\n" $MODULES_OVERRIDE
+ printf " OVADISKSIZE: %s\n" $OVADISKSIZE
+ printf " OVABLOCKSIZE: %s\n" $OVABLOCKSIZE
+ printf " OVA_FIRST_PART_SIZE: %s\n" $OVA_FIRST_PART_SIZE
+ printf " OVA_SWAP_PART_SIZE: %s\n" $OVA_SWAP_PART_SIZE
+ printf " OVFFILE: %s\n" $OVFFILE
+ printf " OVFVMDK: %s\n" $OVFVMDK
+ printf " OVFCERT: %s\n" $OVFCERT
+ printf " SRC_CONF: %s\n" $SRC_CONF
+ printf " ISOPATH: %s\n" $ISOPATH
+ printf " MEMSTICKPATH: %s\n" $MEMSTICKPATH
+ printf " UPDATES_TARBALL_FILENAME: %s\n" $UPDATES_TARBALL_FILENAME
+if [ -n "$SHOW_ENV" ]; then
+ for LINE in $(env | egrep -v '(terminal|PASS|NAME|USER|SSH|GROUP|HOST)'); do
+ echo "SHOW_ENV: $LINE"
+ done
+fi
+ echo
+}
+
+# This builds FreeBSD (make buildworld)
+# Imported from FreeSBIE
+make_world() {
+
+ LOGFILE=${BUILDER_LOGS}/buildworld.${TARGET}
+ if [ -n "${NO_BUILDWORLD:-}" ]; then
+ echo ">>> NO_BUILDWORLD set, skipping build" | tee -a ${LOGFILE}
+ return
+ fi
+
+ # Set SRC_CONF variable if it's not already set.
+ if [ -z "${SRC_CONF:-}" ]; then
+ echo ">>> SRC_CONF is unset make sure this is what you want!" | tee -a ${LOGFILE}
+ else
+ echo ">>> Setting SRC_CONF to $SRC_CONF" | tee -a ${LOGFILE}
+ fi
+
+ # Set default parameters
+ export MAKE_ARGS="${MAKEJ_WORLD:-} __MAKE_CONF=${MAKE_CONF} SRCCONF=${SRC_CONF} TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH}"
+
+ echo ">>> LOGFILE set to $LOGFILE." | tee -a ${LOGFILE}
+ makeargs="${MAKE_ARGS}"
+ echo ">>> Building world for ${TARGET} architecture... (Starting - $(LC_ALL=C date))" | tee -a ${LOGFILE}
+ echo ">>> Builder is running the command: env LOCAL_ITOOLS=\"${EXTRA_TOOLS}\" script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR} -DNO_CLEAN ${makeargs:-} buildworld" | tee -a ${LOGFILE}
+ (env LOCAL_ITOOLS="${EXTRA_TOOLS}" script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR} -DNO_CLEAN ${makeargs:-} buildworld || print_error_pfS;) | egrep '^>>>' | tee -a ${LOGFILE}
+ echo ">>> Building world for ${TARGET} architecture... (Finished - $(LC_ALL=C date))" | tee -a ${LOGFILE}
+
+ LOGFILE=${BUILDER_LOGS}/installworld.${TARGET}
+ echo ">>> LOGFILE set to $LOGFILE." | tee -a ${LOGFILE}
+ # Create if cleaned up
+ makeargs="${MAKE_ARGS} DESTDIR=${STAGE_CHROOT_DIR} WITHOUT_TOOLCHAIN=1"
+ echo ">>> Installing world for ${TARGET} architecture... (Starting - $(LC_ALL=C date))" | tee -a ${LOGFILE}
+ echo ">>> Builder is running the command: env LOCAL_ITOOLS=\"${EXTRA_TOOLS}\" script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR} ${makeargs:-} installworld" | tee -a ${LOGFILE}
+ (env LOCAL_ITOOLS="${EXTRA_TOOLS}" script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR} ${makeargs:-} installworld || print_error_pfS;) | egrep '^>>>' | tee -a ${LOGFILE}
+ echo ">>> Installing world for ${TARGET} architecture... (Finished - $(LC_ALL=C date))" | tee -a ${LOGFILE}
+
+ makeargs="${MAKE_ARGS} DESTDIR=${STAGE_CHROOT_DIR}"
+ echo ">>> Distribution world for ${TARGET} architecture... (Starting - $(LC_ALL=C date))" | tee -a ${LOGFILE}
+ echo ">>> Builder is running the command: script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR} ${makeargs:-} distribution " | tee -a ${LOGFILE}
+ (script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR} ${makeargs:-} distribution || print_error_pfS;) | egrep '^>>>' | tee -a ${LOGFILE}
+ echo ">>> Distribution world for ${TARGET} architecture... (Finished - $(LC_ALL=C date))" | tee -a ${LOGFILE}
+
+ [ -d "${STAGE_CHROOT_DIR}/usr/local/bin" ] \
+ || mkdir -p ${STAGE_CHROOT_DIR}/usr/local/bin
+ makeargs="${MAKE_ARGS} DESTDIR=${STAGE_CHROOT_DIR}"
+ echo ">>> Building and installing crypto tools and athstats for ${TARGET} architecture... (Starting - $(LC_ALL=C date))" | tee -a ${LOGFILE}
+ echo ">>> Builder is running the command: script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR}/tools/tools/crypto ${makeargs:-} clean all install " | tee -a ${LOGFILE}
+ (script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR}/tools/tools/crypto ${makeargs:-} clean all install || print_error_pfS;) | egrep '^>>>' | tee -a ${LOGFILE}
+ echo ">>> Builder is running the command: script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR}/tools/tools/ath/athstats ${makeargs:-} clean" | tee -a ${LOGFILE}
+ (script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR}/tools/tools/ath/athstats ${makeargs:-} clean || print_error_pfS;) | egrep '^>>>' | tee -a ${LOGFILE}
+ echo ">>> Builder is running the command: script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR}/tools/tools/ath/athstats ${makeargs:-} all" | tee -a ${LOGFILE}
+ (script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR}/tools/tools/ath/athstats ${makeargs:-} all || print_error_pfS;) | egrep '^>>>' | tee -a ${LOGFILE}
+ echo ">>> Builder is running the command: script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR}/tools/tools/ath/athstats ${makeargs:-} install" | tee -a ${LOGFILE}
+ (script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR}/tools/tools/ath/athstats ${makeargs:-} install || print_error_pfS;) | egrep '^>>>' | tee -a ${LOGFILE}
+ echo ">>> Building and installing crypto tools and athstats for ${TARGET} architecture... (Finished - $(LC_ALL=C date))" | tee -a ${LOGFILE}
+
+ unset makeargs
+}
+
+# This routine originated in nanobsd.sh
+nanobsd_set_flash_details () {
+ a1=$(echo $1 | tr '[:upper:]' '[:lower:]')
+
+ # Source:
+ # SanDisk CompactFlash Memory Card
+ # Product Manual
+ # Version 10.9
+ # Document No. 20-10-00038
+ # April 2005
+ # Table 2-7
+ # NB: notice math error in SDCFJ-4096-388 line.
+ #
+ case "${a1}" in
+ 1024|1024m|1024mb|1g)
+ NANO_MEDIASIZE=$((997129216/512))
+ ;;
+ 2048|2048m|2048mb|2g)
+ NANO_MEDIASIZE=$((1989999616/512))
+ ;;
+ 4096|4096m|4096mb|4g)
+ NANO_MEDIASIZE=$((3989999616/512))
+ ;;
+ 8192|8192m|8192mb|8g)
+ NANO_MEDIASIZE=$((7989999616/512))
+ ;;
+ 16384|16384m|16384mb|16g)
+ NANO_MEDIASIZE=$((15989999616/512))
+ ;;
+ *)
+ echo "Unknown Flash capacity"
+ exit 2
+ ;;
+ esac
+
+ NANO_HEADS=16
+ NANO_SECTS=63
+
+ echo ">>> [nanoo] $1"
+ echo ">>> [nanoo] NANO_MEDIASIZE: $NANO_MEDIASIZE"
+ echo ">>> [nanoo] NANO_HEADS: $NANO_HEADS"
+ echo ">>> [nanoo] NANO_SECTS: $NANO_SECTS"
+ echo ">>> [nanoo] NANO_BOOT0CFG: $NANO_BOOT0CFG"
+}
+
+# This routine originated in nanobsd.sh
+create_nanobsd_diskimage () {
+ if [ -z "${1}" ]; then
+ echo ">>> ERROR: Type of image has not been specified"
+ print_error_pfS
+ fi
+ if [ -z "${2}" ]; then
+ echo ">>> ERROR: Size of image has not been specified"
+ print_error_pfS
+ fi
+
+ if [ "${1}" = "nanobsd" ]; then
+ # It's serial
+ export NANO_BOOTLOADER="boot/boot0sio"
+ elif [ "${1}" = "nanobsd-vga" ]; then
+ # It's vga
+ export NANO_BOOTLOADER="boot/boot0"
+ else
+ echo ">>> ERROR: Type of image to create unknown"
+ print_error_pfS
+ fi
+
+ if [ -z "${2}" ]; then
+ echo ">>> ERROR: Media size(s) not specified."
+ print_error_pfS
+ fi
+
+ if [ -z "${2}" ]; then
+ echo ">>> ERROR: FLASH_SIZE is not set."
+ print_error_pfS
+ fi
+
+ LOGFILE=${BUILDER_LOGS}/${1}.${TARGET}
+ # Prepare folder to be put in image
+ customize_stagearea_for_image "${1}"
+ install_default_kernel ${DEFAULT_KERNEL} "no"
+
+ # Must be run after customize_stagearea_for_image
+ cust_fixup_nanobsd ${1}
+
+ for _NANO_MEDIASIZE in ${2}; do
+ if [ -z "${_NANO_MEDIASIZE}" ]; then
+ continue;
+ fi
+
+ echo ">>> building NanoBSD(${1}) disk image with size ${_NANO_MEDIASIZE} for platform (${TARGET})..." | tee -a ${LOGFILE}
+ echo "" > $BUILDER_LOGS/nanobsd_cmds.sh
+
+ IMG="${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-${PRODUCT_VERSION}-${_NANO_MEDIASIZE}-${TARGET}-${1}-${DATESTRING}.img"
+ IMGUPDATE="${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-${PRODUCT_VERSION}-${_NANO_MEDIASIZE}-${TARGET}-${1}-upgrade-${DATESTRING}.img"
+
+ nanobsd_set_flash_details ${_NANO_MEDIASIZE}
+
+ # These are defined in FlashDevice and on builder_default.sh
+ echo $NANO_MEDIASIZE \
+ $NANO_IMAGES \
+ $NANO_SECTS \
+ $NANO_HEADS \
+ $NANO_CODESIZE \
+ $NANO_CONFSIZE \
+ $NANO_DATASIZE |
+awk '
+{
+ printf "# %s\n", $0
+
+ # size of cylinder in sectors
+ cs = $3 * $4
+
+ # number of full cylinders on media
+ cyl = int ($1 / cs)
+
+ # output fdisk geometry spec, truncate cyls to 1023
+ if (cyl <= 1023)
+ print "g c" cyl " h" $4 " s" $3
+ else
+ print "g c" 1023 " h" $4 " s" $3
+
+ if ($7 > 0) {
+ # size of data partition in full cylinders
+ dsl = int (($7 + cs - 1) / cs)
+ } else {
+ dsl = 0;
+ }
+
+ # size of config partition in full cylinders
+ csl = int (($6 + cs - 1) / cs)
+
+ if ($5 == 0) {
+ # size of image partition(s) in full cylinders
+ isl = int ((cyl - dsl - csl) / $2)
+ } else {
+ isl = int (($5 + cs - 1) / cs)
+ }
+
+ # First image partition start at second track
+ print "p 1 165 " $3, isl * cs - $3
+ c = isl * cs;
+
+ # Second image partition (if any) also starts offset one
+ # track to keep them identical.
+ if ($2 > 1) {
+ print "p 2 165 " $3 + c, isl * cs - $3
+ c += isl * cs;
+ }
+
+ # Config partition starts at cylinder boundary.
+ print "p 3 165 " c, csl * cs
+ c += csl * cs
+
+ # Data partition (if any) starts at cylinder boundary.
+ if ($7 > 0) {
+ print "p 4 165 " c, dsl * cs
+ } else if ($7 < 0 && $1 > c) {
+ print "p 4 165 " c, $1 - c
+ } else if ($1 < c) {
+ print "Disk space overcommitted by", \
+ c - $1, "sectors" > "/dev/stderr"
+ exit 2
+ }
+
+ # Force slice 1 to be marked active. This is necessary
+ # for booting the image from a USB device to work.
+ print "a 1"
+}
+ ' > ${IMAGES_FINAL_DIR}/_.fdisk
+
+ MNT=${IMAGES_FINAL_DIR}/_.mnt
+ mkdir -p ${MNT}
+
+ dd if=/dev/zero of=${IMG} bs=${NANO_SECTS}b \
+ count=0 seek=$((${NANO_MEDIASIZE}/${NANO_SECTS})) 2>&1 >> ${LOGFILE}
+
+ MD=$(mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} -y ${NANO_HEADS})
+ trap "mdconfig -d -u ${MD}; return" 1 2 15 EXIT
+
+ fdisk -i -f ${IMAGES_FINAL_DIR}/_.fdisk ${MD} 2>&1 >> ${LOGFILE}
+ fdisk ${MD} 2>&1 >> ${LOGFILE}
+
+ boot0cfg -B -b ${FINAL_CHROOT_DIR}/${NANO_BOOTLOADER} ${NANO_BOOT0CFG} ${MD} 2>&1 >> ${LOGFILE}
+
+ # Create first image
+ bsdlabel -m i386 -w -B -b ${FINAL_CHROOT_DIR}/boot/boot ${MD}s1 2>&1 >> ${LOGFILE}
+ bsdlabel -m i386 ${MD}s1 2>&1 >> ${LOGFILE}
+ local _label=$(lc ${PRODUCT_NAME})
+ newfs -L ${_label}0 ${NANO_NEWFS} /dev/${MD}s1a 2>&1 >> ${LOGFILE}
+ mount /dev/ufs/${_label}0 ${MNT}
+ if [ $? -ne 0 ]; then
+ echo ">>> ERROR: Something wrong happened during mount of first slice image creation. STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ # Consider the unmounting as well
+ trap "umount /dev/ufs/${_label}0; mdconfig -d -u ${MD}; return" 1 2 15 EXIT
+
+ clone_directory_contents ${FINAL_CHROOT_DIR} ${MNT}
+
+ # Set NanoBSD image size
+ echo "${_NANO_MEDIASIZE}" > ${MNT}/etc/nanosize.txt
+ rm -f $MNT/cf/conf/* 2>/dev/null
+
+ echo "/dev/ufs/${_label}0 / ufs ro,sync,noatime 1 1" > ${MNT}/etc/fstab
+ if [ $NANO_CONFSIZE -gt 0 ] ; then
+ echo "/dev/ufs/cf /cf ufs ro,sync,noatime 1 1" >> ${MNT}/etc/fstab
+ fi
+
+ umount ${MNT}
+ sync
+ # Restore the original trap
+ trap "mdconfig -d -u ${MD}; return" 1 2 15 EXIT
+
+ # Setting NANO_IMAGES to 1 and NANO_INIT_IMG2 will tell
+ # NanoBSD to only create one partition. We default to 2
+ # partitions in case anything happens to the first the
+ # operator can boot from the 2nd and should be OK.
+
+ # Before just going to use dd for duplicate think!
+ # The images are created as sparse so lets take advantage
+ # of that by just exec some commands.
+ if [ $NANO_IMAGES -gt 1 -a $NANO_INIT_IMG2 -gt 0 ] ; then
+ # Duplicate to second image (if present)
+ echo ">>> Creating NanoBSD second slice by duplicating first slice." | tee -a ${LOGFILE}
+ # Create second image
+ dd if=/dev/${MD}s1 of=/dev/${MD}s2 conv=sparse bs=64k 2>&1 >> ${LOGFILE}
+ tunefs -L ${_label}1 /dev/${MD}s2a 2>&1 >> ${LOGFILE}
+ mount /dev/ufs/${_label}1 ${MNT}
+ if [ $? -ne 0 ]; then
+ echo ">>> ERROR: Something wrong happened during mount of second slice image creation. STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ # Consider the unmounting as well
+ trap "umount /dev/ufs/${_label}1; mdconfig -d -u ${MD}; return" 1 2 15 EXIT
+
+ echo "/dev/ufs/${_label}1 / ufs ro,sync,noatime 1 1" > ${MNT}/etc/fstab
+ if [ $NANO_CONFSIZE -gt 0 ] ; then
+ echo "/dev/ufs/cf /cf ufs ro,sync,noatime 1 1" >> ${MNT}/etc/fstab
+ fi
+
+ umount ${MNT}
+ # Restore the trap back
+ trap "mdconfig -d -u ${MD}; return" 1 2 15 EXIT
+ fi
+
+ # Create Data slice, if any.
+ # Note the changing of the variable to NANO_CONFSIZE
+ # from NANO_DATASIZE. We also added glabel support
+ # and populate the Product configuration from the /cf
+ # directory located in FINAL_CHROOT_DIR
+ if [ $NANO_CONFSIZE -gt 0 ] ; then
+ echo ">>> Creating /cf area to hold config.xml"
+ newfs -L cf ${NANO_NEWFS} /dev/${MD}s3 2>&1 >> ${LOGFILE}
+ # Mount data partition and copy contents of /cf
+ # Can be used later to create custom default config.xml while building
+ mount /dev/ufs/cf ${MNT}
+ if [ $? -ne 0 ]; then
+ echo ">>> ERROR: Something wrong happened during mount of cf slice image creation. STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ # Consider the unmounting as well
+ trap "umount /dev/ufs/cf; mdconfig -d -u ${MD}; return" 1 2 15 EXIT
+
+ clone_directory_contents ${FINAL_CHROOT_DIR}/cf ${MNT}
+
+ umount ${MNT}
+ # Restore the trap back
+ trap "mdconfig -d -u ${MD}; return" 1 2 15 EXIT
+ else
+ ">>> [nanoo] NANO_CONFSIZE is not set. Not adding a /conf partition.. You sure about this??" | tee -a ${LOGFILE}
+ fi
+
+ echo ">>> [nanoo] Creating NanoBSD upgrade file from first slice..." | tee -a ${LOGFILE}
+ dd if=/dev/${MD}s1 of=$IMGUPDATE conv=sparse bs=64k 2>&1 >> ${LOGFILE}
+
+ mdconfig -d -u $MD
+ # Restore default action
+ trap "-" 1 2 15 EXIT
+
+ # Check each image and ensure that they are over
+ # 3 megabytes. If either image is under 20 megabytes
+ # in size then error out.
+ IMGSIZE=$(stat -f "%z" ${IMG})
+ IMGUPDATESIZE=$(stat -f "%z" ${IMGUPDATE})
+ CHECKSIZE="20040710"
+ if [ "$IMGSIZE" -lt "$CHECKSIZE" ]; then
+ echo ">>> ERROR: Something went wrong when building NanoBSD. The image size is under 20 megabytes!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ if [ "$IMGUPDATESIZE" -lt "$CHECKSIZE" ]; then
+ echo ">>> ERROR: Something went wrong when building NanoBSD upgrade image. The image size is under 20 megabytes!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ # Wrap up the show, Johnny
+ echo ">>> NanoBSD Image completed for size: $_NANO_MEDIASIZE." | tee -a ${LOGFILE}
+
+ gzip -f $IMG &
+ gzip -f $IMGUPDATE &
+ done
+
+ unset IMG
+ unset IMGUPDATE
+ unset IMGUPDATESIZE
+ unset IMGSIZE
+
+ ls -lah $IMAGES_FINAL_DIR
+}
+
+# This routine creates a ova image that contains
+# a ovf and vmdk file. These files can be imported
+# right into vmware or virtual box.
+# (and many other emulation platforms)
+# http://www.vmware.com/pdf/ovf_whitepaper_specification.pdf
+create_ova_image() {
+ # XXX create a .ovf php creator that you can pass:
+ # 1. populatedSize
+ # 2. license
+ # 3. product name
+ # 4. version
+ # 5. number of network interface cards
+ # 6. allocationUnits
+ # 7. capacity
+ # 8. capacityAllocationUnits
+
+ LOGFILE=${BUILDER_LOGS}/ova.${TARGET}.log
+
+ # Prepare folder to be put in image
+ customize_stagearea_for_image "ova"
+ install_default_kernel ${DEFAULT_KERNEL} "no"
+
+ ova_prereq_check
+ ova_remove_old_tmp_files
+ ova_setup_ovf_file
+ ova_create_raw_backed_file
+ /bin/echo -n ">>> Creating mdconfig image ${OVFPATH}/${OVFVMDK}.raw... " | tee -a ${LOGFILE}
+ MD=$(mdconfig -a -t vnode -f ${OVFPATH}/${OVFVMDK}.raw)
+ # Just in case
+ trap "mdconfig -d -u ${MD}" 1 2 15 EXIT
+
+ # comment out if using pc-sysinstall
+ ova_partition_gpart $MD
+ ova_mount_mnt $MD
+ ova_cpdup_files
+ ova_setup_platform_specific # after cpdup
+ ova_calculate_mnt_size
+ ova_umount_mnt $MD
+ # Restore default action
+ trap "-" 1 2 15 EXIT
+ ova_umount_mdconfig $MD
+ # We use vbox because it compresses the vmdk on export
+ ova_create_vbox_image
+ # We repack the file with a more universal xml file that
+ # works in both virtual box and esx server
+ ova_repack_vbox_image
+}
+
+ova_repack_vbox_image() {
+ BUILDPLATFORM=$(uname -p)
+ POPULATEDSIZE=$(du -d0 -m $FINAL_CHROOT_DIR | awk '{ print \$1 }')
+ POPULATEDSIZEBYTES=$(echo "${POPULATEDSIZE}*1024^2" | bc)
+ REFERENCESSIZE=$(stat -f "%z" ${OVFPATH}/${OVFVMDK})
+ echo ">>> Setting REFERENCESSIZE to ${REFERENCESSIZE}..." | tee -a ${LOGFILE}
+ file_search_replace REFERENCESSIZE ${REFERENCESSIZE} ${OVFPATH}/${PRODUCT_NAME}.ovf
+ echo ">>> Setting POPULATEDSIZEBYTES to ${POPULATEDSIZEBYTES}..." | tee -a ${LOGFILE}
+ # OperatingSystemSection (${PRODUCT_NAME}.ovf)
+ # 42 FreeBSD 32-Bit
+ # 78 FreeBSD 64-Bit
+ if [ "$BUILDPLATFORM" = "i386" ]; then
+ file_search_replace '"101"' '"42"' ${OVFPATH}/${PRODUCT_NAME}.ovf
+ file_search_replace 'FreeBSD XX-Bit' 'FreeBSD' ${OVFPATH}/${PRODUCT_NAME}.ovf
+ fi
+ if [ "$BUILDPLATFORM" = "amd64" ]; then
+ file_search_replace '"101"' '"78"' ${OVFPATH}/${PRODUCT_NAME}.ovf
+ file_search_replace 'FreeBSD XX-Bit' 'FreeBSD 64-Bit' ${OVFPATH}/${PRODUCT_NAME}.ovf
+ fi
+ file_search_replace DISKSECTIONPOPULATEDSIZE $POPULATEDSIZEBYTES ${OVFPATH}/${PRODUCT_NAME}.ovf
+ # 10737254400 = 10240MB = virtual box vmdk file size XXX grab this value from vbox creation
+ # 10737418240 = 10GB
+ echo ">>> Setting DISKSECTIONALLOCATIONUNITS to 10737254400..." | tee -a ${LOGFILE}
+ file_search_replace DISKSECTIONALLOCATIONUNITS $OVA_DISKSECTIONALLOCATIONUNITS ${OVFPATH}/${PRODUCT_NAME}.ovf
+ echo ">>> Setting DISKSECTIONCAPACITY to 10737418240..." | tee -a ${LOGFILE}
+ file_search_replace DISKSECTIONCAPACITY $OVADISKSIZE ${OVFPATH}/${PRODUCT_NAME}.ovf
+ echo ">>> Repacking OVA with universal OVF file..." | tee -a ${LOGFILE}
+ mv ${OVFPATH}/${OVFVMDK} ${OVFPATH}/${PRODUCT_NAME}-disk1.vmdk
+ gtar -C ${OVFPATH} -cpf ${PRODUCT_NAME}.ova ${PRODUCT_NAME}.ovf ${PRODUCT_NAME}-disk1.vmdk
+ rm $OVFPATH/${PRODUCT_NAME}-disk1.vmdk
+ ls -lah ${OVFPATH}/${PRODUCT_NAME}*ov*
+}
+
+# called from create_ova_image
+ova_umount_mnt() {
+ # Unmount /dev/mdX
+ umount /mnt
+ sync ; sync
+}
+
+# called from create_ova_image
+ova_umount_mdconfig() {
+ MD=$1
+ # Show gpart info
+ gpart show $MD
+ echo ">>> Unmounting ${MD}..." | tee -a ${LOGFILE}
+ mdconfig -d -u $MD
+ sync ; sync
+}
+
+# called from create_ova_image
+ova_mount_mnt() {
+ MD=$1
+ echo ">>> Mounting image to /mnt..." | tee -a ${LOGFILE}
+ mount -o rw /dev/${MD}p2 /mnt/
+}
+
+# called from create_ova_image
+ova_setup_ovf_file() {
+ if [ -f ${OVFFILE} ]; then
+ cp ${OVFFILE} ${OVFPATH}/${PRODUCT_NAME}.ovf
+ fi
+
+ if [ ! -f ${OVFPATH}/${PRODUCT_NAME}.ovf ]; then
+ cp ${BUILDER_TOOLS}/conf/ovf/${PRODUCT_NAME}.ovf ${OVFPATH}/${PRODUCT_NAME}.ovf
+ file_search_replace PRODUCT_VERSION $PRODUCT_VERSION ${OVFPATH}/${PRODUCT_NAME}.ovf
+ file_search_replace PRODUCT_URL $PRODUCT_URL ${OVFPATH}/${PRODUCT_NAME}.ovf
+ fi
+}
+
+# called from create_ova_image
+ova_prereq_check() {
+ if [ ! -f /usr/local/bin/vmdktool ]; then
+ echo ">>> ERROR: vmdktool is not present please check port sysutils/vmdktool installation" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ sysctl kern.geom.debugflags=16
+}
+
+# called from create_ova_image
+ova_calculate_mnt_size() {
+ /bin/echo -n ">>> Calculating size of /mnt..." | tee -a ${LOFGILE}
+ INSTALLSIZE=$(du -s /mnt/ | awk '{ print $1 }')
+ INSTALLSIZEH=$(du -d0 -h /mnt/ | awk '{ print $1 }')
+ echo $INSTALLSIZEH
+}
+
+# called from create_ova_image
+ova_create_raw_backed_file() {
+ DISKSIZE=$OVADISKSIZE
+ BLOCKSIZE=$OVABLOCKSIZE
+ COUNT=$((${DISKSIZE}/${BLOCKSIZE}))
+ DISKFILE=${OVFPATH}/${OVFVMDK}.raw
+ echo ">>> Creating raw backing file ${DISKFILE} (Disk Size: ${DISKSIZE}, Block Size: ${BLOCKSIZE}, Count: ${COUNT})..." | tee -a ${LOGFILE}
+ dd if=/dev/zero of=$DISKFILE bs=$BLOCKSIZE count=0 seek=$COUNT
+}
+
+# called from create_ova_image
+ova_remove_old_tmp_files() {
+ rm ${OVFPATH}/*.ovf.final 2>/dev/null
+ rm ${OVFPATH}/*.ova 2>/dev/null
+}
+
+# called from create_ova_image
+ova_create_vbox_image() {
+ # VirtualBox
+ echo ">>> Creating image using vmdktool..." | tee -a ${LOGFILE}
+ rm ${OVFPATH}/${OVFVMDK} 2>/dev/null
+ vmdktool -v ${OVFPATH}/${OVFVMDK} ${OVFPATH}/${OVFVMDK}.raw
+ rm -rf ${OVFPATH}/${OVFVMDK}.raw
+ echo ">>> ${OVFPATH}/${OVFVMDK} created." | tee -a ${LOGFILE}
+}
+
+# called from create_ova_image
+ova_cpdup_files() {
+ echo ">>> Populating vmdk staging area..."
+ cpdup -o ${FINAL_CHROOT_DIR}/COPYRIGHT /mnt/COPYRIGHT
+ cpdup -o ${FINAL_CHROOT_DIR}/boot /mnt/boot
+ cpdup -o ${FINAL_CHROOT_DIR}/bin /mnt/bin
+ cpdup -o ${FINAL_CHROOT_DIR}/cf/conf /mnt/cf/conf
+ cpdup -o ${FINAL_CHROOT_DIR}/conf.default /mnt/conf.default
+ cpdup -o ${FINAL_CHROOT_DIR}/dev /mnt/dev
+ cpdup -o ${FINAL_CHROOT_DIR}/etc /mnt/etc
+ cpdup -o ${FINAL_CHROOT_DIR}/home /mnt/home
+ cpdup -o ${FINAL_CHROOT_DIR}/pkgs /mnt/pkgs
+ cpdup -o ${FINAL_CHROOT_DIR}/libexec /mnt/libexec
+ cpdup -o ${FINAL_CHROOT_DIR}/lib /mnt/lib
+ cpdup -o ${FINAL_CHROOT_DIR}/root /mnt/root
+ cpdup -o ${FINAL_CHROOT_DIR}/sbin /mnt/sbin
+ cpdup -o ${FINAL_CHROOT_DIR}/usr /mnt/usr
+ cpdup -o ${FINAL_CHROOT_DIR}/var /mnt/var
+ sync ; sync ; sync ; sync
+}
+
+ova_setup_platform_specific() {
+ echo ">>> Installing platform specific items..." | tee -a ${LOGFILE}
+ echo "/dev/label/${PRODUCT_NAME} / ufs rw 0 0" > /mnt/etc/fstab
+ echo "/dev/label/swap0 none swap sw 0 0" >> /mnt/etc/fstab
+ echo ${PRODUCT_NAME} > /mnt/etc/platform
+ rmdir /mnt/conf
+ mkdir -p /mnt/cf
+ mkdir -p /mnt/cf/conf
+ cp /mnt/conf.default/config.xml /mnt/cf/conf/
+ chroot /mnt /bin/ln -s /cf/conf /conf
+ mkdir -p /mnt/tmp
+}
+
+# called from create_ova_image
+ova_partition_gpart() {
+ # XXX: Switch to mkimg tool!!
+ MD=$1
+ echo ">>> Creating GPT..." | tee -a ${LOGFILE}
+ gpart create -s gpt $MD
+ echo ">>> Embedding GPT bootstrap into protective MBR..." | tee -a ${LOGFILE}
+ gpart bootcode -b /boot/pmbr $MD
+ echo ">>> Creating GPT boot partition..." | tee -a ${LOGFILE}
+ gpart add -b 34 -s 128 -t freebsd-boot $MD
+ gpart bootcode -p /boot/gptboot -i 1 $MD
+ echo ">>> Setting up disk slices: ${MD}p2 (Size: ${OVA_FIRST_PART_SIZE})..." | tee -a ${LOGFILE}
+ gpart add -s $OVA_FIRST_PART_SIZE -t freebsd-ufs -i 2 $MD
+ echo ">>> Setting up disk slices: ${MD}p3 (swap) (Size: ${OVA_SWAP_PART_SIZE})..." | tee -a ${LOGFILE}
+ gpart add -s $OVA_SWAP_PART_SIZE -t freebsd-swap -i 3 $MD
+ echo ">>> Running newfs..." | tee -a ${LOGFILE}
+ newfs -U /dev/${MD}p2
+ sync ; sync ; sync ; sync
+ echo ">>> Labeling partitions: ${MD}p2..." | tee -a ${LOGFILE}
+ glabel label ${PRODUCT_NAME} ${MD}p2
+ sync ; sync
+ echo ">>> Labeling partitions: ${MD}p3..." | tee -a ${LOGFILE}
+ glabel label swap0 ${MD}p3
+ sync ; sync
+}
+
+# called from create_ova_image
+# This routine will replace a string in a file
+file_search_replace() {
+ local SEARCH="$1"
+ local REPLACE="$2"
+ local FILENAME="$3"
+
+ if [ -f "${FILENAME}" ]; then
+ sed -i '' -e "s/${SEARCH}/${REPLACE}/g" ${FILENAME}
+ fi
+}
+
+# Cleans up previous builds
+clean_builder() {
+ # Clean out directories
+ echo ">>> Cleaning up previous build environment...Please wait!"
+
+ staginareas_clean_each_run
+
+ if [ -d "${STAGE_CHROOT_DIR}" ]; then
+ BASENAME=$(basename ${STAGE_CHROOT_DIR})
+ echo -n ">>> Cleaning ${STAGE_CHROOT_DIR} ..."
+ chflags -R noschg ${STAGE_CHROOT_DIR} 2>&1 >/dev/null
+ rm -rf ${STAGE_CHROOT_DIR}/* 2>/dev/null
+ echo "Done."
+ fi
+
+ if [ -z "${NO_CLEAN_FREEBSD_OBJ}" -a -d "${FREEBSD_SRC_DIR}" ]; then
+ OBJTREE=$(env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} make -C ${FREEBSD_SRC_DIR} -V OBJTREE)
+ if [ -d "${OBJTREE}" ]; then
+ echo -n ">>> Cleaning FreeBSD objects dir staging..."
+ echo -n "."
+ chflags -R noschg ${OBJTREE} 2>&1 >/dev/null
+ echo -n "."
+ rm -rf ${OBJTREE}/*
+ echo "Done!"
+ fi
+ if [ -d "${KERNEL_BUILD_PATH}" ]; then
+ echo -n ">>> Cleaning previously built kernel stage area..."
+ rm -rf $KERNEL_BUILD_PATH/*
+ echo "Done!"
+ fi
+ fi
+ mkdir -p $KERNEL_BUILD_PATH
+
+ echo -n ">>> Cleaning previously built images..."
+ rm -rf $IMAGES_FINAL_DIR/*
+ echo "Done!"
+
+ if [ -z "${NO_CLEAN_FREEBSD_SRC}" ]; then
+ if [ -d "$FREEBSD_SRC_DIR" ]; then
+ echo -n ">>> Ensuring $FREEBSD_SRC_DIR is clean..."
+ rm -rf ${FREEBSD_SRC_DIR}
+ echo "Done!"
+ fi
+ fi
+
+ echo -n ">>> Cleaning previous builder logs..."
+ if [ -d "$BUILDER_LOGS" ]; then
+ rm -rf ${BUILDER_LOGS}
+ fi
+ mkdir -p ${BUILDER_LOGS}
+
+ echo "Done!"
+
+ echo ">>> Cleaning of builder environment has finished."
+}
+
+clone_directory_contents() {
+ if [ ! -d "$1" -o ! -d "$2" ]; then
+ if [ -z "${LOGFILE}" ]; then
+ echo ">>> ERROR: Argument $1 supplied is not a directory!"
+ else
+ echo ">>> ERROR: Argument $1 supplied is not a directory!" | tee -a ${LOGFILE}
+ fi
+ print_error_pfS
+ fi
+ echo -n ">>> Using TAR to clone $1 to $2 ..."
+ tar -C ${1} -c -f - . | tar -C ${2} -x -p -f -
+ echo "Done!"
+}
+
+clone_to_staging_area() {
+ # Clone everything to the final staging area
+ echo -n ">>> Cloning everything to ${STAGE_CHROOT_DIR} staging area..."
+ LOGFILE=${BUILDER_LOGS}/cloning.${TARGET}.log
+
+ tar -C ${PRODUCT_SRC} -c -f - . | \
+ tar -C ${STAGE_CHROOT_DIR} -x -p -f -
+
+ if [ -f ${STAGE_CHROOT_DIR}/etc/master.passwd ]; then
+ chroot ${STAGE_CHROOT_DIR} cap_mkdb /etc/master.passwd
+ chroot ${STAGE_CHROOT_DIR} pwd_mkdb /etc/master.passwd
+ fi
+ mkdir -p ${STAGE_CHROOT_DIR}/etc/mtree
+ mtree -Pcp ${STAGE_CHROOT_DIR}/var > ${STAGE_CHROOT_DIR}/etc/mtree/var.dist
+ mtree -Pcp ${STAGE_CHROOT_DIR}/etc > ${STAGE_CHROOT_DIR}/etc/mtree/etc.dist
+ if [ -d ${STAGE_CHROOT_DIR}/usr/local/etc ]; then
+ mtree -Pcp ${STAGE_CHROOT_DIR}/usr/local/etc > ${STAGE_CHROOT_DIR}/etc/mtree/localetc.dist
+ fi
+
+ ## Add buildtime and lastcommit information
+ # This is used for detecting updates.
+ echo "$BUILTDATESTRING" > $STAGE_CHROOT_DIR/etc/version.buildtime
+ # Record last commit info if it is available.
+ if [ -f $SCRATCHDIR/build_commit_info.txt ]; then
+ cp $SCRATCHDIR/build_commit_info.txt $STAGE_CHROOT_DIR/etc/version.lastcommit
+ fi
+
+ local _exclude_files="${CORE_PKG_TMP}/base_exclude_files"
+ sed \
+ -e "s,%%PRODUCT_NAME%%,${PRODUCT_NAME},g" \
+ -e "s,%%FLAVOR%%,${_flavor},g" \
+ -e "s,%%VERSION%%,${_version},g" \
+ ${BUILDER_TOOLS}/templates/core_pkg/base/exclude_files \
+ > ${_exclude_files}
+
+ mkdir -p ${STAGE_CHROOT_DIR}/usr/local/share/${PRODUCT_NAME} >/dev/null 2>&1
+ mtree \
+ -c \
+ -k uid,gid,mode,size,flags,sha256digest \
+ -p ${STAGE_CHROOT_DIR} \
+ -X ${_exclude_files} \
+ > ${STAGE_CHROOT_DIR}/usr/local/share/${PRODUCT_NAME}/base.mtree
+ tar \
+ -C ${STAGE_CHROOT_DIR} \
+ -cJf ${STAGE_CHROOT_DIR}/usr/local/share/${PRODUCT_NAME}/base.txz \
+ -X ${_exclude_files} \
+ .
+
+ core_pkg_create base "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
+ core_pkg_create default-config "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
+
+ local DEFAULTCONF=${STAGE_CHROOT_DIR}/conf.default/config.xml
+ # Activate serial console in config.xml
+ # If it was there before, clear the setting to be sure we don't add it twice.
+ sed -i "" -e "/ <enableserial\/>/d" ${DEFAULTCONF}
+ # Enable serial in the config
+ sed -i "" -e "s/ <\/system>/ <enableserial\/>\\$(echo -e \\\n) <\/system>/" ${DEFAULTCONF}
+
+ echo force > ${STAGE_CHROOT_DIR}/cf/conf/enableserial_force
+
+ core_pkg_create default-config-serial "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
+
+ rm -f ${STAGE_CHROOT_DIR}/cf/conf/enableserial_force
+ rm -f ${STAGE_CHROOT_DIR}/cf/conf/config.xml
+
+ # Make sure pkg is present
+ pkg_bootstrap ${STAGE_CHROOT_DIR}
+
+ pkg_chroot_add ${STAGE_CHROOT_DIR} base
+
+ echo "Done!"
+}
+
+create_final_staging_area() {
+ if [ -z "${FINAL_CHROOT_DIR}" ]; then
+ echo ">>> ERROR: FINAL_CHROOT_DIR is not set, cannot continue!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ if [ -d "${FINAL_CHROOT_DIR}" ]; then
+ echo -n ">>> Previous ${FINAL_CHROOT_DIR} detected cleaning up..." | tee -a ${LOGFILE}
+ chflags -R noschg ${FINAL_CHROOT_DIR} 2>&1 1>/dev/null
+ rm -rf ${FINAL_CHROOT_DIR}/* 2>&1 1>/dev/null
+ echo "Done." | tee -a ${LOGFILE}
+ fi
+
+ echo ">>> Preparing Final image staging area: $(LC_ALL=C date)" 2>&1 | tee -a ${LOGFILE}
+ echo ">>> Cloning ${STAGE_CHROOT_DIR} to ${FINAL_CHROOT_DIR}" 2>&1 | tee -a ${LOGFILE}
+ clone_directory_contents ${STAGE_CHROOT_DIR} ${FINAL_CHROOT_DIR}
+
+ if [ ! -f $FINAL_CHROOT_DIR/sbin/init ]; then
+ echo ">>> ERROR: Something went wrong during cloning -- Please verify!" 2>&1 | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+}
+
+customize_stagearea_for_image() {
+ # Prepare final stage area
+ create_final_staging_area
+
+ if [ "${1}" = "iso" -o \
+ "${1}" = "memstick" -o \
+ "${1}" = "memstickserial" -o \
+ "${1}" = "memstickadi" ]; then
+ install_bsdinstaller
+ mkdir -p ${FINAL_CHROOT_DIR}/pkgs
+ cp ${CORE_PKG_PATH}/*default-config*.txz ${FINAL_CHROOT_DIR}/pkgs
+ fi
+
+ if [ "${1}" = "nanobsd" -o \
+ "${1}" = "memstickserial" -o \
+ "${1}" = "memstickadi" ]; then
+ pkg_chroot_add ${FINAL_CHROOT_DIR} default-config-serial
+ else
+ pkg_chroot_add ${FINAL_CHROOT_DIR} default-config
+ fi
+}
+
+create_distribution_tarball() {
+ mkdir -p ${FINAL_CHROOT_DIR}/install
+
+ tar -C ${FINAL_CHROOT_DIR} --exclude ./install --exclude ./pkgs -cJf ${FINAL_CHROOT_DIR}/install/${PRODUCT_NAME}.txz .
+}
+
+create_iso_image() {
+ LOGFILE=${BUILDER_LOGS}/isoimage.${TARGET}
+ echo ">>> Building bootable ISO image for ${TARGET}" | tee -a ${LOGFILE}
+ if [ -z "${DEFAULT_KERNEL}" ]; then
+ echo ">>> ERROR: Could not identify DEFAULT_KERNEL to install on image!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ customize_stagearea_for_image "iso"
+ install_default_kernel ${DEFAULT_KERNEL}
+
+ echo cdrom > $FINAL_CHROOT_DIR/etc/platform
+
+ FSLABEL=$(echo ${PRODUCT_NAME} | tr '[:lower:]' '[:upper:]')
+ echo "/dev/iso9660/${FSLABEL} / cd9660 ro 0 0" > ${FINAL_CHROOT_DIR}/etc/fstab
+
+ # This check is for supporting create memstick/ova images
+ echo -n ">>> Running command: script -aq $LOGFILE makefs -t cd9660 -o bootimage=\"i386;${FINAL_CHROOT_DIR}/boot/cdboot \"-o no-emul-boot -o rockridge " | tee -a ${LOGFILE}
+ echo "-o label=${FSLABEL} -o publisher=\"${PRODUCT_NAME} project.\" $ISOPATH ${FINAL_CHROOT_DIR}" | tee -a ${LOGFILE}
+
+ create_distribution_tarball
+
+ # Remove /rescue from iso since cd9660 cannot deal with hardlinks
+ rm -rf ${FINAL_CHROOT_DIR}/rescue
+
+ makefs -t cd9660 -o bootimage="i386;${FINAL_CHROOT_DIR}/boot/cdboot" -o no-emul-boot -o rockridge \
+ -o label=${FSLABEL} -o publisher="${PRODUCT_NAME} project." $ISOPATH ${FINAL_CHROOT_DIR} 2>&1 >> ${LOGFILE}
+ if [ $? -ne 0 -o ! -f $ISOPATH ]; then
+ if [ -f ${ISOPATH} ]; then
+ rm -f $ISOPATH
+ fi
+ echo ">>> ERROR: Something wrong happened during ISO image creation. STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ gzip -qf $ISOPATH &
+
+ echo ">>> ISO created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
+}
+
+create_memstick_image() {
+
+ LOGFILE=${BUILDER_LOGS}/memstick.${TARGET}
+ if [ "${MEMSTICKPATH}" = "" ]; then
+ echo ">>> MEMSTICKPATH is empty skipping generation of memstick image!" | tee -a ${LOGFILE}
+ return
+ fi
+
+ if [ ! -d ${FINAL_CHROOT_DIR}/boot ]; then
+ customize_stagearea_for_image "memstick"
+ install_default_kernel ${DEFAULT_KERNEL}
+ fi
+
+ echo cdrom > $FINAL_CHROOT_DIR/etc/platform
+
+ echo ">>> Creating memstick to ${MEMSTICKPATH}." 2>&1 | tee -a ${LOGFILE}
+ echo "/dev/ufs/${PRODUCT_NAME} / ufs ro 0 0" > ${FINAL_CHROOT_DIR}/etc/fstab
+ echo "kern.cam.boot_delay=10000" >> ${FINAL_CHROOT_DIR}/boot/loader.conf.local
+
+ create_distribution_tarball
+
+ makefs -B little -o label=${PRODUCT_NAME} ${MEMSTICKPATH} ${FINAL_CHROOT_DIR}
+ if [ $? -ne 0 ]; then
+ if [ -f ${MEMSTICKPATH} ]; then
+ rm -f $MEMSTICKPATH
+ fi
+ echo ">>> ERROR: Something wrong happened during MEMSTICK image creation. STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ MD=$(mdconfig -a -t vnode -f $MEMSTICKPATH)
+ # Just in case
+ trap "mdconfig -d -u ${MD}" 1 2 15 EXIT
+ gpart create -s BSD ${MD} 2>&1 >> ${LOGFILE}|
+ gpart bootcode -b ${FINAL_CHROOT_DIR}/boot/boot ${MD} 2>&1 >> ${LOGFILE}
+ gpart add -t freebsd-ufs ${MD} 2>&1 >> ${LOGFILE}
+ trap "-" 1 2 15 EXIT
+ mdconfig -d -u ${MD} 2>&1 | tee -a ${LOGFILE}
+ gzip -qf $MEMSTICKPATH &
+
+ echo ">>> MEMSTICK created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
+}
+
+create_memstick_serial_image() {
+ LOGFILE=${BUILDER_LOGS}/memstickserial.${TARGET}
+ if [ "${MEMSTICKSERIALPATH}" = "" ]; then
+ echo ">>> MEMSTICKSERIALPATH is empty skipping generation of memstick image!" | tee -a ${LOGFILE}
+ return
+ fi
+
+ if [ ! -d ${FINAL_CHROOT_DIR}/boot ]; then
+ customize_stagearea_for_image "memstickserial"
+ install_default_kernel ${DEFAULT_KERNEL}
+ fi
+
+ echo cdrom > $FINAL_CHROOT_DIR/etc/platform
+
+ echo "/dev/ufs/${PRODUCT_NAME} / ufs ro 0 0" > ${FINAL_CHROOT_DIR}/etc/fstab
+ echo "kern.cam.boot_delay=10000" >> ${FINAL_CHROOT_DIR}/boot/loader.conf.local
+
+ echo ">>> Creating serial memstick to ${MEMSTICKSERIALPATH}." 2>&1 | tee -a ${LOGFILE}
+
+ BOOTCONF=${FINAL_CHROOT_DIR}/boot.config
+ LOADERCONF=${FINAL_CHROOT_DIR}/boot/loader.conf
+
+ echo ">>> Activating serial console..." 2>&1 | tee -a ${LOGFILE}
+ # Activate serial console in boot.config
+ if [ -f ${BOOTCONF} ]; then
+ sed -i "" '/-D$/d' ${BOOTCONF}
+ fi
+ echo "-S115200 -D" >> ${BOOTCONF}
+
+ # Remove old console options if present.
+ [ -f "${LOADERCONF}" ] \
+ && sed -i "" -Ee "/(console|boot_multicons|boot_serial)/d" ${LOADERCONF}
+ # Activate serial console+video console in loader.conf
+ echo 'boot_multicons="YES"' >> ${LOADERCONF}
+ echo 'boot_serial="YES"' >> ${LOADERCONF}
+ echo 'console="comconsole,vidconsole"' >> ${LOADERCONF}
+ echo 'comconsole_speed="115200"' >> ${LOADERCONF}
+
+ create_distribution_tarball
+
+ makefs -B little -o label=${PRODUCT_NAME} ${MEMSTICKSERIALPATH} ${FINAL_CHROOT_DIR}
+ if [ $? -ne 0 ]; then
+ if [ -f ${MEMSTICKSERIALPATH} ]; then
+ rm -f $MEMSTICKSERIALPATH
+ fi
+ echo ">>> ERROR: Something wrong happened during MEMSTICKSERIAL image creation. STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ MD=$(mdconfig -a -t vnode -f $MEMSTICKSERIALPATH)
+ # Just in case
+ trap "mdconfig -d -u ${MD}" 1 2 15 EXIT
+ gpart create -s BSD ${MD} 2>&1 >> ${LOGFILE}
+ gpart bootcode -b ${FINAL_CHROOT_DIR}/boot/boot ${MD} 2>&1 >> ${LOGFILE}
+ gpart add -t freebsd-ufs ${MD} 2>&1 >> ${LOGFILE}
+ trap "-" 1 2 15 EXIT
+ mdconfig -d -u ${MD} 2>&1 >> ${LOGFILE}
+ gzip -qf $MEMSTICKSERIALPATH &
+
+ echo ">>> MEMSTICKSERIAL created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
+}
+
+create_memstick_adi_image() {
+ LOGFILE=${BUILDER_LOGS}/memstickadi${TARGET}
+ if [ "${MEMSTICKADIPATH}" = "" ]; then
+ echo ">>> MEMSTICKADIPATH is empty skipping generation of memstick image!" | tee -a ${LOGFILE}
+ return
+ fi
+
+ if [ ! -d ${FINAL_CHROOT_DIR}/boot ]; then
+ customize_stagearea_for_image "memstickadi"
+ install_default_kernel ${DEFAULT_KERNEL}
+ fi
+
+ echo cdrom > $FINAL_CHROOT_DIR/etc/platform
+
+ echo "/dev/ufs/${PRODUCT_NAME} / ufs ro 0 0" > ${FINAL_CHROOT_DIR}/etc/fstab
+ echo "kern.cam.boot_delay=10000" >> ${FINAL_CHROOT_DIR}/boot/loader.conf.local
+
+ echo ">>> Creating serial memstick to ${MEMSTICKADIPATH}." 2>&1 | tee -a ${LOGFILE}
+
+ BOOTCONF=${FINAL_CHROOT_DIR}/boot.config
+ LOADERCONF=${FINAL_CHROOT_DIR}/boot/loader.conf
+
+ echo ">>> Activating serial console..." 2>&1 | tee -a ${LOGFILE}
+ # Activate serial console in boot.config
+ if [ -f ${BOOTCONF} ]; then
+ sed -i "" '/-[Dh]$/d' ${BOOTCONF}
+ fi
+ echo "-S115200 -h" >> ${BOOTCONF}
+
+ # Remove old console options if present.
+ [ -f "${LOADERCONF}" ] \
+ && sed -i "" -Ee "/(console|boot_multicons|boot_serial|hint.uart)/d" ${LOADERCONF}
+ # Activate serial console+video console in loader.conf
+ echo 'boot_serial="YES"' >> ${LOADERCONF}
+ echo 'console="comconsole"' >> ${LOADERCONF}
+ echo 'comconsole_speed="115200"' >> ${LOADERCONF}
+ echo 'comconsole_port="0x2F8"' >> ${LOADERCONF}
+ echo 'hint.uart.0.flags="0x00"' >> ${LOADERCONF}
+ echo 'hint.uart.1.flags="0x10"' >> ${LOADERCONF}
+
+ create_distribution_tarball
+
+ makefs -B little -o label=${PRODUCT_NAME} ${MEMSTICKADIPATH} ${FINAL_CHROOT_DIR}
+ if [ $? -ne 0 ]; then
+ if [ -f ${MEMSTICKADIPATH} ]; then
+ rm -f $MEMSTICKADIPATH
+ fi
+ echo ">>> ERROR: Something wrong happened during MEMSTICKADI image creation. STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ MD=$(mdconfig -a -t vnode -f $MEMSTICKADIPATH)
+ # Just in case
+ trap "mdconfig -d -u ${MD}" 1 2 15 EXIT
+ gpart create -s BSD ${MD} 2>&1 >> ${LOGFILE}
+ gpart bootcode -b ${FINAL_CHROOT_DIR}/boot/boot ${MD} 2>&1 >> ${LOGFILE}
+ gpart add -t freebsd-ufs ${MD} 2>&1 >> ${LOGFILE}
+ trap "-" 1 2 15 EXIT
+ mdconfig -d -u ${MD} 2>&1 >> ${LOGFILE}
+ gzip -qf $MEMSTICKADIPATH &
+
+ echo ">>> MEMSTICKADI created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
+}
+
+# Create pkg conf on desired place with desired arch/branch
+setup_pkg_repo() {
+ if [ -z "${4}" ]; then
+ return
+ fi
+
+ local _target="${1}"
+ local _arch="${2}"
+ local _target_arch="${3}"
+ local _branch="${4}"
+
+ mkdir -p $(dirname ${_target}) >/dev/null 2>&1
+
+ sed \
+ -e "s/%%ARCH%%/${_arch}_${_target_arch}/" \
+ -e "s/%%GIT_REPO_BRANCH_OR_TAG%%/${_branch}/g" \
+ -e "s,%%PKG_REPO_SERVER%%,${PKG_REPO_SERVER},g" \
+ -e "s/%%PRODUCT_NAME%%/${PRODUCT_NAME}/g" \
+ ${FREEBSD_SRC_DIR}/release/pkg_repos/${PRODUCT_NAME}.conf.template \
+ > ${_target}
+}
+
+# This routine ensures any ports / binaries that the builder
+# system needs are on disk and ready for execution.
+builder_setup() {
+ # If Product-builder is already installed, just leave
+ if pkg info -e -q ${PRODUCT_NAME}-builder; then
+ return
+ fi
+
+ if [ ! -f /usr/local/etc/pkg/repos/${PRODUCT_NAME}.conf ]; then
+ [ -d /usr/local/etc/pkg/repos ] \
+ || mkdir -p /usr/local/etc/pkg/repos
+
+ local _arch=$(uname -m)
+ setup_pkg_repo /usr/local/etc/pkg/repos/${PRODUCT_NAME}.conf ${_arch} ${_arch} ${PKG_REPO_CONF_BRANCH}
+ fi
+
+ pkg install ${PRODUCT_NAME}-builder
+}
+
+# Updates FreeBSD sources
+update_freebsd_sources() {
+ if [ "${1}" = "full" ]; then
+ local _full=1
+ local _clone_params=""
+ else
+ local _full=0
+ local _clone_params="--depth 1 --single-branch"
+ fi
+
+ if [ ! -d "${FREEBSD_SRC_DIR}" ]; then
+ mkdir -p ${FREEBSD_SRC_DIR}
+ fi
+
+ if [ -n "${NO_BUILDWORLD:-}" -a -n "${NO_BUILDKERNEL:-}" ]; then
+ echo ">>> NO_BUILDWORLD and NO_BUILDKERNEL set, skipping update of freebsd sources" | tee -a ${LOGFILE}
+ return
+ fi
+
+ echo -n ">>> Obtaining FreeBSD sources ${FREEBSD_BRANCH}..."
+ local _FREEBSD_BRANCH=${FREEBSD_BRANCH:-"devel"}
+ local _CLONE=1
+
+ if [ -d "${FREEBSD_SRC_DIR}/.git" ]; then
+ CUR_BRANCH=$(cd ${FREEBSD_SRC_DIR} && git branch | grep '^\*' | cut -d' ' -f2)
+ if [ ${_full} -eq 0 -a "${CUR_BRANCH}" = "${_FREEBSD_BRANCH}" ]; then
+ _CLONE=0
+ ( cd ${FREEBSD_SRC_DIR} && git clean -fxd; git fetch origin; git reset --hard origin/${_FREEBSD_BRANCH} ) 2>&1 | grep -C3 -i -E 'error|fatal'
+ else
+ rm -rf ${FREEBSD_SRC_DIR}
+ fi
+ fi
+
+ if [ ${_CLONE} -eq 1 ]; then
+ ( git clone --branch ${_FREEBSD_BRANCH} ${_clone_params} ${FREEBSD_REPO_BASE} ${FREEBSD_SRC_DIR} ) 2>&1 | grep -C3 -i -E 'error|fatal'
+ fi
+
+ if [ ! -d "${FREEBSD_SRC_DIR}/.git" ]; then
+ echo ">>> ERROR: It was not possible to clone FreeBSD src repo"
+ print_error_pfS
+ fi
+
+ if [ -n "${GIT_FREEBSD_COSHA1}" ]; then
+ ( cd ${FREEBSD_SRC_DIR} && git checkout ${GIT_FREEBSD_COSHA1} ) 2>&1 | grep -C3 -i -E 'error|fatal'
+ fi
+ echo "Done!"
+}
+
+pkg_chroot() {
+ local _root="${1}"
+ shift
+
+ if [ $# -eq 0 ]; then
+ return -1
+ fi
+
+ if [ -z "${_root}" -o "${_root}" = "/" -o ! -d "${_root}" ]; then
+ return -1
+ fi
+
+ mkdir -p \
+ ${SCRATCHDIR}/pkg_cache \
+ ${_root}/var/cache/pkg \
+ ${_root}/dev
+
+ /sbin/mount -t nullfs ${SCRATCHDIR}/pkg_cache ${_root}/var/cache/pkg
+ /sbin/mount -t devfs devfs ${_root}/dev
+ cp -f /etc/resolv.conf ${_root}/etc/resolv.conf
+ touch ${BUILDER_LOGS}/install_pkg_install_ports.txt
+ script -aq ${BUILDER_LOGS}/install_pkg_install_ports.txt pkg -c ${_root} $@ >/dev/null 2>&1
+ rm -f ${_root}/etc/resolv.conf
+ /sbin/umount -f ${_root}/dev
+ /sbin/umount -f ${_root}/var/cache/pkg
+}
+
+
+pkg_chroot_add() {
+ if [ -z "${1}" -o -z "${2}" ]; then
+ return 1
+ fi
+
+ local _target="${1}"
+ local _pkg="$(get_pkg_name ${2}).txz"
+
+ if [ ! -d "${_target}" ]; then
+ echo ">>> ERROR: Target dir ${_target} not found"
+ print_error_pfS
+ fi
+
+ if [ ! -f ${CORE_PKG_PATH}/${_pkg} ]; then
+ echo ">>> ERROR: Package ${_pkg} not found"
+ print_error_pfS
+ fi
+
+ cp ${CORE_PKG_PATH}/${_pkg} ${_target}
+ pkg_chroot ${_target} add /${_pkg}
+ rm -f ${_target}/${_pkg}
+}
+
+pkg_bootstrap() {
+ local _root=${1:-"${STAGE_CHROOT_DIR}"}
+
+ setup_pkg_repo ${_root}/usr/local/etc/pkg/repos/${PRODUCT_NAME}.conf ${TARGET} ${TARGET_ARCH} ${PKG_REPO_CONF_BRANCH}
+
+ pkg_chroot ${_root} bootstrap -f
+}
+
+# This routine assists with installing various
+# freebsd ports files into the pfsenese-fs staging
+# area.
+install_pkg_install_ports() {
+ local MAIN_PKG="${1}"
+
+ if [ -z "${MAIN_PKG}" ]; then
+ MAIN_PKG=${PRODUCT_NAME}
+ fi
+
+ echo ">>> Installing pkg repository in chroot (${STAGE_CHROOT_DIR})..."
+
+ [ -d ${STAGE_CHROOT_DIR}/var/cache/pkg ] || \
+ mkdir -p ${STAGE_CHROOT_DIR}/var/cache/pkg
+
+ [ -d ${SCRATCHDIR}/pkg_cache ] || \
+ mkdir -p ${SCRATCHDIR}/pkg_cache
+
+ echo ">>> Installing built ports (packages) in chroot (${STAGE_CHROOT_DIR})... (starting)"
+ pkg_chroot ${STAGE_CHROOT_DIR} install ${MAIN_PKG} ${custom_package_list}
+ pkg_chroot ${STAGE_CHROOT_DIR} autoremove
+ echo ">>> Installing built ports (packages) in chroot (${STAGE_CHROOT_DIR})... (finshied)"
+}
+
+install_bsdinstaller() {
+ echo ">>> Installing BSDInstaller in chroot (${FINAL_CHROOT_DIR})... (starting)"
+ pkg_chroot ${FINAL_CHROOT_DIR} install -f bsdinstaller ${MAIN_PKG} ${custom_package_list}
+ echo ">>> Installing BSDInstaller in chroot (${FINAL_CHROOT_DIR})... (finished)"
+}
+
+staginareas_clean_each_run() {
+ echo -n ">>> Cleaning build directories: "
+ if [ -d "${FINAL_CHROOT_DIR}" ]; then
+ BASENAME=$(basename ${FINAL_CHROOT_DIR})
+ echo -n "$BASENAME "
+ chflags -R noschg ${FINAL_CHROOT_DIR} 2>&1 >/dev/null
+ rm -rf ${FINAL_CHROOT_DIR}/* 2>/dev/null
+ fi
+ echo "Done!"
+}
+
+# Imported from FreeSBIE
+buildkernel() {
+ if [ -n "${NO_BUILDKERNEL:-}" ]; then
+ echo ">>> NO_BUILDKERNEL set, skipping build" | tee -a ${LOGFILE}
+ return
+ fi
+
+ if [ -z "${KERNCONF:-}" ]; then
+ echo ">>> ERROR: No kernel configuration defined probably this is not what you want! STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ if [ -n "${KERNELCONF:-}" ]; then
+ export KERNCONFDIR=$(dirname ${KERNELCONF})
+ export KERNCONF=$(basename ${KERNELCONF})
+ fi
+
+ SRCCONFBASENAME=$(basename ${SRC_CONF})
+ echo ">>> KERNCONFDIR: ${KERNCONFDIR}"
+ echo ">>> ARCH: ${TARGET}"
+ echo ">>> SRC_CONF: ${SRCCONFBASENAME}"
+
+ makeargs="${MAKEJ_KERNEL:-} SRCCONF=${SRC_CONF} __MAKE_CONF=${MAKE_CONF} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET}"
+ echo ">>> Builder is running the command: script -aq $LOGFILE make -DNO_KERNELCLEAN $makeargs buildkernel KERNCONF=${KERNCONF}" | tee -a $LOGFILE
+ (script -q $LOGFILE make -C ${FREEBSD_SRC_DIR} -DNO_KERNELCLEAN $makeargs buildkernel KERNCONF=${KERNCONF} || print_error_pfS;) | egrep '^>>>'
+}
+
+# Imported from FreeSBIE
+installkernel() {
+ if [ -z "${KERNCONF:-}" ]; then
+ echo ">>> ERROR: No kernel configuration defined probably this is not what you want! STOPPING!" | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ if [ -n "${KERNELCONF:-}" ]; then
+ export KERNCONFDIR=$(dirname ${KERNELCONF})
+ export KERNCONF=$(basename ${KERNELCONF})
+ fi
+
+ mkdir -p ${STAGE_CHROOT_DIR}/boot
+ makeargs="${MAKEJ_KERNEL:-} SRCCONF=${SRC_CONF} __MAKE_CONF=${MAKE_CONF} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET} DESTDIR=${KERNEL_DESTDIR}"
+ echo ">>> Builder is running the command: script -aq $LOGFILE make ${makeargs:-} installkernel KERNCONF=${KERNCONF}" | tee -a $LOGFILE
+ (script -aq $LOGFILE make -C ${FREEBSD_SRC_DIR} ${makeargs:-} installkernel KERNCONF=${KERNCONF} || print_error_pfS;) | egrep '^>>>'
+ gzip -f9 $KERNEL_DESTDIR/boot/kernel/kernel
+}
+
+# Launch is ran first to setup a few variables that we need
+# Imported from FreeSBIE
+launch() {
+ if [ "$(id -u)" != "0" ]; then
+ echo "Sorry, this must be done as root."
+ fi
+
+ echo ">>> Operation $0 has started at $(date)"
+}
+
+finish() {
+ echo ">>> Operation $0 has ended at $(date)"
+}
+
+poudriere_create_patch() {
+ local _jail_patch="${SCRATCHDIR}/poudriere_jail.${GIT_REPO_BRANCH_OR_TAG}.patch"
+
+ if [ -z "${FREEBSD_PARENT_BRANCH}" ]; then
+ echo ">>> ERROR: FREEBSD_PARENT_BRANCH is not set"
+ fi
+
+ LOGFILE=${BUILDER_LOGS}/poudriere.log
+
+ # Get FreeBSD source and apply patches
+ update_freebsd_sources full
+
+ [ -f "${_jail_patch}" ] && \
+ rm -f "${_jail_patch}"
+
+ # Create a big patch with all our changes to use on jail
+ ( \
+ cd ${FREEBSD_SRC_DIR} && \
+ git diff $(git merge-base origin/${FREEBSD_PARENT_BRANCH} ${FREEBSD_BRANCH}) > ${_jail_patch}
+ ) >/dev/null 2>&1
+
+ # Check if patch was created
+ if [ ! -s "${_jail_patch}" ]; then
+ echo ">>> ERROR: Patch does not exist or is empty, aborting..." | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+}
+
+poudriere_possible_archs() {
+ local _arch=$(uname -m)
+ local _archs="i386.i386"
+
+ # IF host is amd64, we'll create both repos, and if possible armv6
+ if [ "${_arch}" = "amd64" ]; then
+ _archs="amd64.amd64 ${_archs}"
+
+ if [ -f /usr/local/bin/qemu-arm-static ]; then
+ # Make sure binmiscctl is ok
+ /usr/local/etc/rc.d/qemu_user_static forcestart >/dev/null 2>&1
+
+ if binmiscctl lookup armv6 >/dev/null 2>&1; then
+ _archs="${_archs} arm.armv6"
+ fi
+ fi
+ fi
+
+ echo ${_archs}
+}
+
+poudriere_jail_name() {
+ local _jail_arch="${1}"
+
+ if [ -z "${_jail_arch}" ]; then
+ return 1
+ fi
+
+ # Poudriere doesn't like periods in jail names
+ _jail_arch=$(echo "${_jail_arch}" | tr '.' '_')
+
+ echo "${PRODUCT_NAME}_${GIT_REPO_BRANCH_OR_TAG}_${_jail_arch}"
+}
+
+poudriere_create_ports_tree() {
+ LOGFILE=${BUILDER_LOGS}/poudriere.log
+
+ if ! poudriere ports -l | grep -q -E "^${POUDRIERE_PORTS_NAME}[[:blank:]]"; then
+ local _branch=""
+ if [ -z "${POUDRIERE_PORTS_GIT_URL}" ]; then
+ echo ">>> ERROR: POUDRIERE_PORTS_GIT_URL is not defined"
+ print_error_pfS
+ fi
+ if [ -n "${POUDRIERE_PORTS_GIT_BRANCH}" ]; then
+ _branch="-B ${POUDRIERE_PORTS_GIT_BRANCH}"
+ fi
+ echo -n ">>> Creating poudriere ports tree, it may take some time... " | tee -a ${LOGFILE}
+ if ! script -aq ${LOGFILE} poudriere ports -c -p "${POUDRIERE_PORTS_NAME}" -m git ${_branch} >/dev/null 2>&1; then
+ echo "" | tee -a ${LOGFILE}
+ echo ">>> ERROR: Error creating poudriere ports tree, aborting..." | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ echo "Done!" | tee -a ${LOGFILE}
+ fi
+}
+
+poudriere_init() {
+ local _error=0
+ local _archs=$(poudriere_possible_archs)
+ local _jail_patch="${SCRATCHDIR}/poudriere_jail.${GIT_REPO_BRANCH_OR_TAG}.patch"
+
+ LOGFILE=${BUILDER_LOGS}/poudriere.log
+
+ # Sanity checks
+ if [ -z "${ZFS_TANK}" ]; then
+ echo ">>> ERROR: \$ZFS_TANK is empty" | tee -a ${LOGFILE}
+ error=1
+ fi
+
+ if [ -z "${ZFS_ROOT}" ]; then
+ echo ">>> ERROR: \$ZFS_ROOT is empty" | tee -a ${LOGFILE}
+ error=1
+ fi
+
+ if [ -z "${POUDRIERE_PORTS_NAME}" ]; then
+ echo ">>> ERROR: \$POUDRIERE_PORTS_NAME is empty" | tee -a ${LOGFILE}
+ error=1
+ fi
+
+ if [ ${_error} -eq 1 ]; then
+ print_error_pfS
+ fi
+
+ # Check if zpool exists
+ if ! zpool list ${ZFS_TANK} >/dev/null 2>&1; then
+ echo ">>> ERROR: ZFS tank ${ZFS_TANK} not found, please create it and try again..." | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ # Check if zfs rootfs exists
+ if ! zfs list ${ZFS_TANK}${ZFS_ROOT} >/dev/null 2>&1; then
+ echo ">>> ERROR: ZFS filesystem ${ZFS_TANK}${ZFS_ROOT} not found, please create it and try again..." | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+
+ # Make sure poudriere is installed
+ if ! pkg info --quiet poudriere; then
+ echo ">>> Installing poudriere..." | tee -a ${LOGFILE}
+ if ! pkg install poudriere >/dev/null 2>&1; then
+ echo ">>> ERROR: poudriere was not installed, aborting..." | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ fi
+
+ # Create poudriere.conf
+ if [ -z "${POUDRIERE_PORTS_GIT_URL}" ]; then
+ echo ">>> ERROR: POUDRIERE_PORTS_GIT_URL is not defined"
+ print_error_pfS
+ fi
+ echo ">>> Creating poudriere.conf" | tee -a ${LOGFILE}
+ cat <<EOF >/usr/local/etc/poudriere.conf
+ZPOOL=${ZFS_TANK}
+ZROOTFS=${ZFS_ROOT}
+RESOLV_CONF=/etc/resolv.conf
+BASEFS=/usr/local/poudriere
+USE_PORTLINT=no
+USE_TMPFS=yes
+NOLINUX=yes
+DISTFILES_CACHE=/usr/ports/distfiles
+CHECK_CHANGED_OPTIONS=yes
+CHECK_CHANGED_DEPS=yes
+ATOMIC_PACKAGE_REPOSITORY=yes
+COMMIT_PACKAGES_ON_FAILURE=no
+GIT_URL="${POUDRIERE_PORTS_GIT_URL}"
+EOF
+
+ # Remove old jails
+ for jail_arch in ${_archs}; do
+ jail_name=$(poudriere_jail_name ${jail_arch})
+
+ if poudriere jail -i -j "${jail_name}" >/dev/null 2>&1; then
+ echo ">>> Poudriere jail ${jail_name} already exists, deleting it..." | tee -a ${LOGFILE}
+ poudriere jail -d -j "${jail_name}" >/dev/null 2>&1
+ fi
+ done
+
+ # Remove old ports tree
+ if poudriere ports -l | grep -q -E "^${POUDRIERE_PORTS_NAME}[[:blank:]]"; then
+ echo ">>> Poudriere ports tree ${POUDRIERE_PORTS_NAME} already exists, deleting it..." | tee -a ${LOGFILE}
+ poudriere ports -d -p "${POUDRIERE_PORTS_NAME}"
+ fi
+
+ poudriere_create_patch
+
+ local native_xtools=""
+ # Now we are ready to create jails
+ for jail_arch in ${_archs}; do
+ jail_name=$(poudriere_jail_name ${jail_arch})
+
+ if [ "${jail_arch}" = "arm.armv6" ]; then
+ native_xtools="-x"
+ else
+ native_xtools=""
+ fi
+
+ echo -n ">>> Creating jail ${jail_name}, it may take some time... " | tee -a ${LOGFILE}
+ # XXX: Change -m to git when it's available in poudriere
+ if ! script -aq ${LOGFILE} poudriere jail -c -j "${jail_name}" -v ${FREEBSD_PARENT_BRANCH} \
+ -a ${jail_arch} -m svn -P ${_jail_patch} ${native_xtools} >/dev/null 2>&1; then
+ echo "" | tee -a ${LOGFILE}
+ echo ">>> ERROR: Error creating jail ${jail_name}, aborting..." | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ echo "Done!" | tee -a ${LOGFILE}
+ done
+
+ poudriere_create_ports_tree
+
+ echo ">>> Poudriere is now configured!" | tee -a ${LOGFILE}
+}
+
+poudriere_update_jails() {
+ local _archs=$(poudriere_possible_archs)
+ local _jail_patch="${SCRATCHDIR}/poudriere_jail.${GIT_REPO_BRANCH_OR_TAG}.patch"
+
+ LOGFILE=${BUILDER_LOGS}/poudriere.log
+
+ poudriere_create_patch
+
+ local native_xtools=""
+ for jail_arch in ${_archs}; do
+ local _run=0
+ if [ -n "${ARCH_LIST}" ]; then
+ for _arch in ${ARCH_LIST}; do
+ if [ "${jail_arch##*.}" = "${_arch}" ]; then
+ _run=1
+ fi
+ done
+ else
+ _run=1
+ fi
+
+ [ ${_run} -eq 0 ] \
+ && continue
+
+ jail_name=$(poudriere_jail_name ${jail_arch})
+
+ if ! poudriere jail -i -j "${jail_name}" >/dev/null 2>&1; then
+ echo ">>> Poudriere jail ${jail_name} not found, skipping..." | tee -a ${LOGFILE}
+ continue
+ fi
+
+ if [ "${jail_arch}" = "arm.armv6" ]; then
+ native_xtools="-x"
+ else
+ native_xtools=""
+ fi
+
+ echo -n ">>> Updating jail ${jail_name}, it may take some time... " | tee -a ${LOGFILE}
+ if ! script -aq ${LOGFILE} poudriere jail -u -j "${jail_name}" -P ${_jail_patch} ${native_xtools} >/dev/null 2>&1; then
+ echo "" | tee -a ${LOGFILE}
+ echo ">>> ERROR: Error updating jail ${jail_name}, aborting..." | tee -a ${LOGFILE}
+ print_error_pfS
+ fi
+ echo "Done!" | tee -a ${LOGFILE}
+ done
+}
+
+poudriere_update_ports() {
+ LOGFILE=${BUILDER_LOGS}/poudriere.log
+
+ # Create ports tree if necessary
+ if ! poudriere ports -l | grep -q -E "^${POUDRIERE_PORTS_NAME}[[:blank:]]"; then
+ poudriere_create_ports_tree
+ else
+ echo -n ">>> Updating ports tree ${POUDRIERE_PORTS_NAME}... " | tee -a ${LOGFILE}
+ script -aq ${LOGFILE} poudriere ports -u -p "${POUDRIERE_PORTS_NAME}" >/dev/null 2>&1
+ echo "Done!" | tee -a ${LOGFILE}
+ fi
+}
+
+poudriere_bulk() {
+ local _archs=$(poudriere_possible_archs)
+
+ LOGFILE=${BUILDER_LOGS}/poudriere.log
+
+ if [ -z "${DO_NOT_UPLOAD}" -a -z "${PKG_RSYNC_HOSTNAME}" ]; then
+ echo ">>> ERROR: PKG_RSYNC_HOSTNAME is not set"
+ print_error_pfS
+ fi
+
+ poudriere_create_ports_tree
+
+ [ -d /usr/local/etc/poudriere.d ] || \
+ mkdir -p /usr/local/etc/poudriere.d
+
+ if [ -f "${BUILDER_TOOLS}/conf/pfPorts/make.conf" ]; then
+ cp -f "${BUILDER_TOOLS}/conf/pfPorts/make.conf" /usr/local/etc/poudriere.d/${POUDRIERE_PORTS_NAME}-make.conf
+ fi
+
+ for jail_arch in ${_archs}; do
+ jail_name=$(poudriere_jail_name ${jail_arch})
+
+ if ! poudriere jail -i -j "${jail_name}" >/dev/null 2>&1; then
+ echo ">>> Poudriere jail ${jail_name} not found, skipping..." | tee -a ${LOGFILE}
+ continue
+ fi
+
+ if [ -f "${POUDRIERE_BULK}.${jail_arch}" ]; then
+ _ref_bulk="${POUDRIERE_BULK}.${jail_arch}"
+ else
+ _ref_bulk="${POUDRIERE_BULK}"
+ fi
+
+ _bulk=${SCRATCHDIR}/poudriere_bulk.${GIT_REPO_BRANCH_OR_TAG}
+ sed -e "s,%%PRODUCT_NAME%%,${PRODUCT_NAME},g" ${_ref_bulk} > ${_bulk}
+
+ if ! poudriere bulk -f ${_bulk} -j ${jail_name} -p ${POUDRIERE_PORTS_NAME}; then
+ echo ">>> ERROR: Something went wrong..."
+ print_error_pfS
+ fi
+
+ echo ">>> Cleaning up old packages from repo..."
+ if ! poudriere pkgclean -f ${_bulk} -j ${jail_name} -p ${POUDRIERE_PORTS_NAME} -y; then
+ echo ">>> ERROR: Something went wrong..."
+ print_error_pfS
+ fi
+
+ # ./ is intentional, it's a rsync trick to make it chdir to directory before send it
+ REPO_PATH="/usr/local/poudriere/data/packages/./${jail_name}-${POUDRIERE_PORTS_NAME}"
+ if [ -z "${DO_NOT_UPLOAD}" -a -d "${REPO_PATH}" ]; then
+ echo -n ">>> Sending updated repository to ${PKG_RSYNC_HOSTNAME}... " | tee -a ${LOGFILE}
+ if script -aq ${LOGFILE} rsync -ave "ssh -p ${PKG_RSYNC_SSH_PORT}" \
+ --timeout=60 --delete-delay ${REPO_PATH} \
+ ${PKG_RSYNC_USERNAME}@${PKG_RSYNC_HOSTNAME}:${PKG_RSYNC_DESTDIR} >/dev/null 2>&1
+ then
+ echo "Done!" | tee -a ${LOGFILE}
+ else
+ echo "Failed!" | tee -a ${LOGFILE}
+ echo ">>> ERROR: An error occurred sending repo to remote hostname"
+ print_error_pfS
+ fi
+ fi
+ done
+}
diff --git a/tools/builder_defaults.sh b/tools/builder_defaults.sh
new file mode 100644
index 0000000..eaac73f
--- /dev/null
+++ b/tools/builder_defaults.sh
@@ -0,0 +1,319 @@
+#!/bin/sh
+#
+# build.sh
+#
+# Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. 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 acknowledgment:
+# "This product includes software developed by the pfSense Project
+# for use in the pfSense® software distribution. (http://www.pfsense.org/).
+#
+# 4. The names "pfSense" and "pfSense Project" must not be used to
+# endorse or promote products derived from this software without
+# prior written permission. For written permission, please contact
+# coreteam@pfsense.org.
+#
+# 5. Products derived from this software may not be called "pfSense"
+# nor may "pfSense" appear in their names without prior written
+# permission of the Electric Sheep Fencing, LLC.
+#
+# 6. Redistributions of any form whatsoever must retain the following
+# acknowledgment:
+#
+# "This product includes software developed by the pfSense Project
+# for use in the pfSense software distribution (http://www.pfsense.org/).
+#
+# THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+# EXPRESSED 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 pfSense PROJECT OR
+# ITS 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.
+#
+
+###########################################
+# Product builder configuration file #
+# Please don't modify this file, you #
+# can put your settings and options #
+# in build.conf, which is sourced at the #
+# beginning of this file #
+###########################################
+
+if [ -z "${BUILDER_ROOT}" ]; then
+ echo ">>> ERROR: BUILDER_ROOT must be defined by script that includes builder_defaults.sh"
+ exit 1
+fi
+
+if [ ! -d "${BUILDER_ROOT}" ]; then
+ echo ">>> ERROR: BUILDER_ROOT is invalid"
+ exit 1
+fi
+
+export BUILDER_TOOLS=${BUILDER_TOOLS:-"${BUILDER_ROOT}/tools"}
+
+if [ ! -d "${BUILDER_TOOLS}" ]; then
+ echo ">>> ERROR: BUILDER_TOOLS is invalid"
+ exit 1
+fi
+
+BUILD_CONF="${BUILDER_ROOT}/build.conf"
+
+# Ensure file exists
+if [ -f ${BUILD_CONF} ]; then
+ . ${BUILD_CONF}
+fi
+
+# Make sure pkg will not be interactive
+export ASSUME_ALWAYS_YES=true
+
+# Architecture, supported ARCH values are:
+# Tier 1: i386, AMD64, and PC98
+# Tier 2: ARM, PowerPC, ia64, Sparc64 and sun4v
+# Tier 3: MIPS and S/390
+# Tier 4: None at the moment
+# Source: http://www.freebsd.org/doc/en/articles/committers-guide/archs.html
+export TARGET=${TARGET:-"`uname -m`"}
+export TARGET_ARCH=${TARGET_ARCH:-${TARGET}}
+# Set TARGET_ARCH_CONF_DIR
+if [ "$TARGET_ARCH" = "" ]; then
+ export TARGET_ARCH=`uname -p`
+fi
+
+# Directory to be used for writing temporary information
+export SCRATCHDIR=${SCRATCHDIR:-"${BUILDER_ROOT}/tmp"}
+if [ ! -d ${SCRATCHDIR} ]; then
+ mkdir -p ${SCRATCHDIR}
+fi
+
+# Product details
+export PRODUCT_NAME=${PRODUCT_NAME:-"nonSense"}
+export PRODUCT_URL=${PRODUCT_VERSION:-""}
+export PRODUCT_SRC=${PRODUCT_SRC:-"${BUILDER_ROOT}/src"}
+
+if [ "${PRODUCT_NAME}" = "pfSense" -a "${BUILD_AUTHORIZED_BY_ELECTRIC_SHEEP_FENCING}" != "yes" ]; then
+ echo ">>>ERROR: According the following license, only Electric Sheep Fencing can build genuine pfSense® software"
+ echo ""
+ cat ${BUILDER_ROOT}/license.txt
+ exit 1
+fi
+
+if [ -z "${PRODUCT_VERSION}" ]; then
+ if [ ! -f ${PRODUCT_SRC}/etc/version ]; then
+ echo ">>> ERROR: PRODUCT_VERSION is not defined and ${PRODUCT_SRC}/etc/version was not found"
+ print_error_pfS
+ fi
+
+ export PRODUCT_VERSION=$(head -n 1 ${PRODUCT_SRC}/etc/version)
+fi
+
+# Product repository tag to build
+_cur_git_repo_branch_or_tag=$(git -C ${BUILDER_ROOT} rev-parse --abbrev-ref HEAD)
+if [ "${_cur_git_repo_branch_or_tag}" = "HEAD" ]; then
+ # We are on a tag, lets find out its name
+ export GIT_REPO_BRANCH_OR_TAG=$(git -C ${BUILDER_ROOT} describe --tags)
+else
+ export GIT_REPO_BRANCH_OR_TAG="${_cur_git_repo_branch_or_tag}"
+fi
+
+# This is used for using svn for retrieving src
+export FREEBSD_REPO_BASE=${FREEBSD_REPO_BASE:-"git@git.pfmechanics.com:pfsense/freebsd-src.git"}
+export FREEBSD_BRANCH=${FREEBSD_BRANCH:-"devel"}
+export FREEBSD_PARENT_BRANCH=${FREEBSD_PARENT_BRANCH:-"stable/10"}
+export FREEBSD_SRC_DIR=${FREEBSD_SRC_DIR:-"${SCRATCHDIR}/FreeBSD-src"}
+
+if [ "${TARGET}" = "i386" ]; then
+ export BUILD_KERNELS=${BUILD_KERNELS:-"${PRODUCT_NAME} ${PRODUCT_NAME}_wrap ${PRODUCT_NAME}_wrap_vga"}
+else
+ export BUILD_KERNELS=${BUILD_KERNELS:-"${PRODUCT_NAME}"}
+fi
+
+# Leave this alone.
+export SRC_CONF=${SRC_CONF:-"${FREEBSD_SRC_DIR}/release/conf/${PRODUCT_NAME}_src.conf"}
+export MAKE_CONF=${MAKE_CONF:-"${FREEBSD_SRC_DIR}/release/conf/${PRODUCT_NAME}_make.conf"}
+
+# Extra tools to be added to ITOOLS
+export EXTRA_TOOLS=${EXTRA_TOOLS:-"uuencode uudecode ex"}
+
+# Path to kernel files being built
+export KERNEL_BUILD_PATH=${KERNEL_BUILD_PATH:-"${SCRATCHDIR}/kernels"}
+
+# Controls how many concurrent make processes are run for each stage
+_CPUS=""
+if [ -z "${NO_MAKEJ}" ]; then
+ _CPUS=$(expr $(sysctl -n kern.smp.cpus) '*' 2)
+ if [ -n "${_CPUS}" ]; then
+ _CPUS="-j${_CPUS}"
+ fi
+fi
+
+export MAKEJ_WORLD=${MAKEJ_WORLD:-"${_CPUS}"}
+export MAKEJ_KERNEL=${MAKEJ_KERNEL:-"${_CPUS}"}
+
+if [ "${TARGET}" = "i386" ]; then
+ export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi ndis ipfw ipdivert dummynet fdescfs opensolaris zfs glxsb if_stf coretemp amdtemp hwpmc"}
+else
+ export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi ndis ipfw ipdivert dummynet fdescfs opensolaris zfs glxsb if_stf coretemp amdtemp aesni sfxge hwpmc"}
+fi
+
+# Area that the final image will appear in
+export IMAGES_FINAL_DIR=${IMAGES_FINAL_DIR:-"${SCRATCHDIR}/${PRODUCT_NAME}/"}
+
+export BUILDER_LOGS=${BUILDER_LOGS:-"${BUILDER_ROOT}/logs"}
+if [ ! -d ${BUILDER_LOGS} ]; then
+ mkdir -p ${BUILDER_LOGS}
+fi
+
+# This is where files will be staged
+export STAGE_CHROOT_DIR=${STAGE_CHROOT_DIR:-"${SCRATCHDIR}/stage-dir"}
+
+# Directory that will clone to in order to create
+# iso staging area.
+export FINAL_CHROOT_DIR=${FINAL_CHROOT_DIR:-"${SCRATCHDIR}/final-dir"}
+
+# 400M is not enough for amd64
+export MEMORYDISK_SIZE=${MEMORYDISK_SIZE:-"768M"}
+
+# OVF/vmdk parms
+export OVFPATH=${OVFPATH:-"${IMAGES_FINAL_DIR}"}
+# Name of ovf file included inside OVA archive
+export OVFFILE=${OVFFILE:-"${PRODUCT_NAME}.ovf"}
+# On disk name of VMDK file included in OVA
+export OVFVMDK=${OVFVMDK:-"${PRODUCT_NAME}.vmdk"}
+# optional
+export OVFCERT=${OVFCERT:-""}
+# 10 gigabyte on disk VMDK size
+export OVADISKSIZE=${OVADISKSIZE:-"10737418240"}
+# dd buffering size when creating raw backed VMDK
+export OVABLOCKSIZE=${OVABLOCKSIZE:-"409600"}
+# first partition size (freebsd-ufs) GPT
+export OVA_FIRST_PART_SIZE=${OVA_FIRST_PART_SIZE:-"8G"}
+# swap partition size (freebsd-swap) GPT -
+# remaining space of 10G-8G - 128 block beginning/loader
+export OVA_SWAP_PART_SIZE=${OVA_SWAP_PART_SIZE:-"4193725"}
+# 10737254400 = 10240MB = virtual box vmdk file size XXX grab this value from vbox creation
+export OVA_DISKSECTIONALLOCATIONUNITS=${OVA_DISKSECTIONALLOCATIONUNITS:-"10737254400"}
+# end of OVF
+
+# Number of code images on media (1 or 2)
+export NANO_IMAGES=2
+# 0 -> Leave second image all zeroes so it compresses better.
+# 1 -> Initialize second image with a copy of the first
+export NANO_INIT_IMG2=1
+export NANO_NEWFS="-b 4096 -f 512 -i 8192 -O1"
+export FLASH_SIZE=${FLASH_SIZE:-"1g"}
+# Size of code file system in 512 bytes sectors
+# If zero, size will be as large as possible.
+export NANO_CODESIZE=0
+# Size of data file system in 512 bytes sectors
+# If zero: no partition configured.
+# If negative: max size possible
+export NANO_DATASIZE=0
+# Size of Product /conf partition # 102400 = 50 megabytes.
+export NANO_CONFSIZE=102400
+# packet is OK for 90% of embedded
+export NANO_BOOT0CFG="-o packet -s 1 -m 3"
+
+# NOTE: Date string is used for creating file names of images
+# The file is used for sharing the same value with build_snapshots.sh
+_BUILDER_EPOCH=$(date +"%s")
+export DATESTRINGFILE=${DATESTRINGFILE:-"$SCRATCHDIR/version.snapshots"}
+if [ "${DATESTRING}" = "" ]; then
+ if [ -f $DATESTRINGFILE ]; then
+ # If the file is more than 30 minutes old regenerate it
+ TMPDATESTRINGFILE=$(($_BUILDER_EPOCH - `stat -f %m $DATESTRINGFILE`))
+ if [ -z "${_USE_OLD_DATESTRING}" -a $TMPDATESTRINGFILE -gt 1800 ]; then
+ export DATESTRING=`date "+%Y%m%d-%H%M"`
+ else
+ export DATESTRING=`cat $DATESTRINGFILE`
+ fi
+ unset TMPDATESTRINGFILE
+ else
+ export DATESTRING=`date "+%Y%m%d-%H%M"`
+ fi
+ echo "$DATESTRING" > $DATESTRINGFILE
+fi
+
+# NOTE: Date string is placed on the final image etc folder to help detect new updates
+# The file is used for sharing the same value with build_snapshots.sh
+export BUILTDATESTRINGFILE=${BUILTDATESTRINGFILE:-"$SCRATCHDIR/version.buildtime"}
+if [ "${BUILTDATESTRING}" = "" ]; then
+ if [ -f $BUILTDATESTRINGFILE ]; then
+ # If the file is more than 30 minutes old regenerate it
+ TMPBUILTDATESTRINGFILE=$(($_BUILDER_EPOCH - `stat -f %m $BUILTDATESTRINGFILE`))
+ if [ $TMPBUILTDATESTRINGFILE -gt 1800 ]; then
+ export BUILTDATESTRING=`date "+%a %b %d %T %Z %Y"`
+ else
+ export BUILTDATESTRING=`cat $BUILTDATESTRINGFILE`
+ fi
+ unset TMPBUILTDATESTRINGFILE
+ else
+ export BUILTDATESTRING=`date "+%a %b %d %T %Z %Y"`
+ fi
+ echo "$BUILTDATESTRING" > $BUILTDATESTRINGFILE
+fi
+
+# Poudriere
+export ZFS_TANK=${ZFS_TANK:-"tank"}
+export ZFS_ROOT=${ZFS_ROOT:-"/poudriere"}
+export POUDRIERE_PORTS_NAME=${POUDRIERE_PORTS_NAME:-"${PRODUCT_NAME}_${GIT_REPO_BRANCH_OR_TAG}"}
+
+export POUDRIERE_BULK=${POUDRIERE_BULK:-"${BUILDER_TOOLS}/conf/pfPorts/poudriere_bulk"}
+export POUDRIERE_PORTS_GIT_URL=${POUDRIERE_PORTS_GIT_URL:-"git@git.pfmechanics.com:pfsense/freebsd-ports.git"}
+export POUDRIERE_PORTS_GIT_BRANCH=${POUDRIERE_PORTS_GIT_BRANCH:-"devel"}
+
+# Host to rsync pkg repos from poudriere
+export PKG_RSYNC_USERNAME=${PKG_RSYNC_USERNAME:-"wwwsync"}
+export PKG_RSYNC_SSH_PORT=${PKG_RSYNC_SSH_PORT:-"22"}
+export PKG_RSYNC_DESTDIR=${PKG_RSYNC_DESTDIR:-"/usr/local/www/beta/packages"}
+export PKG_REPO_SERVER=${PKG_REPO_SERVER:-"pkg+http://beta.pfsense.org/packages"}
+export PKG_REPO_CONF_BRANCH=${PKG_REPO_CONF_BRANCH:-"${GIT_REPO_BRANCH_OR_TAG}"}
+
+# Define base package version, based on date for snaps
+CORE_PKG_VERSION=${PRODUCT_VERSION%%-*}
+if echo "${PRODUCT_VERSION}" | grep -qv -- '-RELEASE'; then
+ CORE_PKG_VERSION="${CORE_PKG_VERSION}.${DATESTRING}"
+fi
+export CORE_PKG_PATH=${CORE_PKG_PATH:-"${SCRATCHDIR}/core_pkg"}
+export CORE_PKG_TMP=${CORE_PKG_TMP:-"${SCRATCHDIR}/core_pkg_tmp"}
+
+# Package overlay. This gives people a chance to build product
+# installable image that already contains certain extra packages.
+#
+# Needs to contain comma separated package names. Of course
+# package names must be valid. Using non existent
+# package name would yield an error.
+#
+#export custom_package_list=""
+
+# General builder output filenames
+export UPDATESDIR=${UPDATESDIR:-"${IMAGES_FINAL_DIR}/updates"}
+export ISOPATH=${ISOPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-LiveCD-${PRODUCT_VERSION}-${TARGET}-${DATESTRING}.iso"}
+export MEMSTICKPATH=${MEMSTICKPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-memstick-${PRODUCT_VERSION}-${TARGET}-${DATESTRING}.img"}
+export MEMSTICKSERIALPATH=${MEMSTICKSERIALPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-memstick-serial-${PRODUCT_VERSION}-${TARGET}-${DATESTRING}.img"}
+export MEMSTICKADIPATH=${MEMSTICKADIPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-memstick-ADI-${PRODUCT_VERSION}-${TARGET}-${DATESTRING}.img"}
+
+# set full-update update filename
+export UPDATES_TARBALL_FILENAME=${UPDATES_TARBALL_FILENAME:-"${UPDATESDIR}/${PRODUCT_NAME}-Full-Update-${PRODUCT_VERSION}-${TARGET}-${DATESTRING}.tgz"}
+
+# Rsync data to send snapshots
+export RSYNCUSER=${RSYNCUSER:-"snapshots"}
+export RSYNCPATH=${RSYNCPATH:-"/usr/local/www/snapshots/${TARGET}/${PRODUCT_NAME}_${GIT_REPO_BRANCH_OR_TAG}"}
+export RSYNCLOGS=${RSYNCLOGS:-"/usr/local/www/snapshots/logs/${PRODUCT_NAME}_${GIT_REPO_BRANCH_OR_TAG}/${TARGET}"}
diff --git a/tools/conf/ovf/pfSense.ovf b/tools/conf/ovf/pfSense.ovf
new file mode 100644
index 0000000..aeb82d3
--- /dev/null
+++ b/tools/conf/ovf/pfSense.ovf
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Envelope vmw:buildId="build-171294" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <References>
+ <File ovf:href="pfSense-disk1.vmdk" ovf:id="file1" ovf:size="REFERENCESSIZE"/>
+ </References>
+ <DiskSection>
+ <Info>List of the virtual disks used in the package</Info>
+ <Disk ovf:capacityAllocationUnits="byte" ovf:allocationUnits="DISKSECTIONALLOCATIONUNITS" ovf:capacity="DISKSECTIONCAPACITY" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" populatedSize="DISKSECTIONPOPULATEDSIZE"/>
+ </DiskSection>
+ <NetworkSection>
+ <Info>The list of logical networks</Info>
+ <Network ovf:name="VM Network">
+ <Description>The VM Network network</Description>
+ </Network>
+ </NetworkSection>
+ <VirtualSystem ovf:id="pfSense">
+ <Info>pfSense virtual machine</Info>
+ <Name>pfSense</Name>
+ <OperatingSystemSection ovf:id="101" vmw:osType="FreeBSD XX-Bit">
+ <Info>FreeBSD XX-Bit</Info>
+ <Description>FreeBSD XX-Bit (pfSense)</Description>
+ </OperatingSystemSection>
+ <VirtualHardwareSection>
+ <Info>Virtual hardware requirements</Info>
+ <System>
+ <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
+ <vssd:InstanceID>0</vssd:InstanceID>
+ <vssd:VirtualSystemIdentifier>pfSense</vssd:VirtualSystemIdentifier>
+ <vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType>
+ </System>
+ <Item>
+ <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
+ <rasd:Description>Number of Virtual CPUs</rasd:Description>
+ <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>
+ <rasd:InstanceID>1</rasd:InstanceID>
+ <rasd:ResourceType>3</rasd:ResourceType>
+ <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
+ </Item>
+ <Item>
+ <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
+ <rasd:Description>Memory Size</rasd:Description>
+ <rasd:ElementName>1024MB of memory</rasd:ElementName>
+ <rasd:InstanceID>2</rasd:InstanceID>
+ <rasd:ResourceType>4</rasd:ResourceType>
+ <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>
+ </Item>
+ <Item>
+ <rasd:Address>0</rasd:Address>
+ <rasd:Description>SCSI Controller</rasd:Description>
+ <rasd:ElementName>scsi0</rasd:ElementName>
+ <rasd:InstanceID>3</rasd:InstanceID>
+ <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
+ <rasd:ResourceType>6</rasd:ResourceType>
+ </Item>
+ <Item>
+ <rasd:Address>1</rasd:Address>
+ <rasd:Description>IDE Controller</rasd:Description>
+ <rasd:ElementName>VirtualIDEController 1</rasd:ElementName>
+ <rasd:InstanceID>4</rasd:InstanceID>
+ <rasd:ResourceType>5</rasd:ResourceType>
+ </Item>
+ <Item>
+ <rasd:Address>0</rasd:Address>
+ <rasd:Description>IDE Controller</rasd:Description>
+ <rasd:ElementName>VirtualIDEController 0</rasd:ElementName>
+ <rasd:InstanceID>5</rasd:InstanceID>
+ <rasd:ResourceType>5</rasd:ResourceType>
+ </Item>
+ <Item>
+ <rasd:AddressOnParent>7</rasd:AddressOnParent>
+ <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
+ <rasd:Connection>VM Network</rasd:Connection>
+ <rasd:Description>E1000 ethernet adapter on &quot;VM Network&quot;</rasd:Description>
+ <rasd:ElementName>ethernet0</rasd:ElementName>
+ <rasd:InstanceID>6</rasd:InstanceID>
+ <rasd:ResourceSubType>E1000</rasd:ResourceSubType>
+ <rasd:ResourceType>10</rasd:ResourceType>
+ </Item>
+ <Item>
+ <rasd:AddressOnParent>8</rasd:AddressOnParent>
+ <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
+ <rasd:Connection>VM Network</rasd:Connection>
+ <rasd:Description>E1000 ethernet adapter on &quot;VM Network&quot;</rasd:Description>
+ <rasd:ElementName>ethernet0</rasd:ElementName>
+ <rasd:InstanceID>7</rasd:InstanceID>
+ <rasd:ResourceSubType>E1000</rasd:ResourceSubType>
+ <rasd:ResourceType>10</rasd:ResourceType>
+ </Item>
+ <Item>
+ <rasd:AddressOnParent>0</rasd:AddressOnParent>
+ <rasd:ElementName>scsi0:0</rasd:ElementName>
+ <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
+ <rasd:InstanceID>8</rasd:InstanceID>
+ <rasd:Parent>3</rasd:Parent>
+ <rasd:ResourceType>17</rasd:ResourceType>
+ </Item>
+ </VirtualHardwareSection>
+ <ProductSection xsi:type="ovf:ProductSection_Type">
+ <Info>Describes product information for the service</Info>
+ <Product>pfSense</Product>
+ <Vendor>Electric Sheep Fencing, LLC</Vendor>
+ <Version>PRODUCT_VERSION</Version>
+ <ProductUrl>PRODUCT_URL</ProductUrl>
+ <VendorUrl>PRODUCT_URL</VendorUrl>
+ </ProductSection>
+ <AnnotationSection xsi:type="ovf:AnnotationSection_Type">
+ <Info>An annotation</Info>
+ <Annotation>pfSense is a free, open source customized distribution of FreeBSD tailored for use as a firewall and router. In addition to being a powerful, flexible firewalling and routing platform, it includes a long list of related features and a package system allowing further expandability without adding bloat and potential security vulnerabilities to the base distribution. pfSense is a popular project with more than 1 million downloads since its inception, and proven in countless installations ranging from small home networks protecting a PC and an Xbox to large corporations, universities and other organizations protecting thousands of network devices.</Annotation>
+ </AnnotationSection>
+ <EulaSection>
+ <Info>The End User License Agreement</Info>
+ <License>
+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 ``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 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.
+ </License>
+ </EulaSection>
+ </VirtualSystem>
+</Envelope>
diff --git a/tools/conf/pfPorts/make.conf b/tools/conf/pfPorts/make.conf
new file mode 100644
index 0000000..bd716a2
--- /dev/null
+++ b/tools/conf/pfPorts/make.conf
@@ -0,0 +1,125 @@
+# Generic options
+OPTIONS_UNSET_FORCE= X11 DOCS EXAMPLES MAN INFO MANPAGES
+
+# Individual ports options
+net_apinger_SET_FORCE= IPV6
+
+www_elinks_UNSET_FORCE= FASTMEM
+
+www_lighttpd_SET_FORCE= NODELAY
+
+net_miniupnpd_SET_FORCE= PF_ENABLE_FILTER_RULES
+
+security_openssl_SET_FORCE= PADLOCK
+
+security_openvpn_SET_FORCE= PW_SAVE ENGINEFIX2
+security_openvpn_UNSET_FORCE= EASYRSA
+
+net_relayd_SET_FORCE= LIBEVENT_STATIC
+
+databases_rrdtool12_UNSET_FORCE= PERL
+
+security_snortsam_UNSET_FORCE= IPFW
+
+emulators_qemu_UNSET_FORCE= SDL
+
+security_ca_root_nss_SET_FORCE= ETCSYMLINK
+
+security_strongswan_SET_FORCE= CURL EAPDYNAMIC EAPRADIUS EAPSIMFILE \
+ IKEv1 UNBOUND XAUTH IPSECKEY SMP PKI UNITY
+security_strongswan_UNSET_FORCE= EAPAKA3GPP2
+
+dns_unbound_SET_FORCE= LIBEVENT
+
+.if ${.CURDIR:N*net/rsync*}==""
+CFLAGS+= -static
+.endif
+
+.if ${.CURDIR:N*security/openiked*}==""
+CONFIGURE_ARGS= --without-openssl-header-check
+.endif
+
+.if ${.CURDIR:N*security/strongswan*}==""
+ETCDIR= /var/etc/ipsec/strongswan
+.endif
+
+# OS version specific options
+OSRELDATE!= /sbin/sysctl -n kern.osreldate
+.if ${OSRELDATE} >= 1000000
+DEFAULT_VERSIONS= php=55
+WITH_OPENSSL_BASE= yes
+sysutils_syslog-ng_SET_FORCE= SYS_SSL
+sysutils_syslog-ng_UNSET_FORCE= PORTS_SSL
+lang_php55_SET_FORCE= FPM
+
+. if ${.CURDIR:N*sysutils/check_reload_status*}==""
+WITH_DEBUG= yes
+. endif
+
+.endif
+
+# Options for packages
+sysutils_apcupsd_SET_FORCE=APCDUMB_DRV APCSMART_DRV PCNET_DRV SNMP_DRV TCP_WRAPPERS USB
+sysutils_apcupsd_UNSET_FORCE=CGI CLIENT_ONLY GAPCMON SNMP_DRV_OLD TEST_DRV
+
+devel_apr1_SET_FORCE=IPV6 SQLITE SSL THREADS
+devel_apr1_UNSET_FORCE=BDB MYSQL NSS PGSQL
+
+net_asterisk_SET_FORCE=SRTP
+net_asterisk_UNSET_FORCE=FREETDS PGSQL
+
+net_avahi_UNSET_FORCE=GTK
+
+security_barnyard2_SET_FORCE=BRO GRE IPV6 MPLS MYSQL PORT_PCAP
+security_barnyard2_UNSET_FORCE=ODBC PGSQL PRELUDE
+
+dns_bind99_SET_FORCE=DLZ_FILESYSTEM FILTER_AAAA IPV6 LINKS RRL SIGCHASE SSL THREADS XML
+dns_bind99_UNSET_FORCE=FIXED_RRSET GSSAPI IDN LARGE_FILE REPLACE_BASE
+
+www_c-icap_SET_FORCE=LARGE_FILES
+www_c-icap_UNSET_FORCE=IPV6
+
+graphics_cairo_UNSET_FORCE=X11 XCB OPENGL
+
+net_freeradius2_SET_FORCE=KERBEROS LDAP MYSQL PERL PGSQL PYTHON SSL_PORT
+
+lang_gcc_UNSET_FORCE=JAVA
+
+devel_git_SET_FORCE=CONTRIB CURL ETCSHELLS ICONV NLS PERL
+devel_git_UNSET_FORCE=CVS GITWEB GUI HTMLDOCS P4 SVN
+
+graphics_graphviz_SET_FORCE=ICONV NLS
+graphics_graphviz_UNSET_FORCE=DIGCOLA IPSEPCOLA PANGOCAIRO XPM
+
+net_haproxy_SET_FORCE=OPENSSL SPCRE LUA
+net_haproxy_UNSET_FORCE=DPCRE
+
+net_haproxy-devel_SET_FORCE=OPENSSL SPCRE LUA
+net_haproxy-devel_UNSET_FORCE=DPCRE
+
+graphics_gd_SET_FORCE=ICONV
+graphics_gd_UNSET_FORCE=FONTCONFIG XPM
+
+net_libpcap_SET_FORCE=IPV6
+net_libpcap_UNSET_FORCE=DAG
+
+www_lightsquid_SET_FORCE=GD
+
+net_mtr_UNSET_FORCE=X11
+
+security_snort_SET_FORCE=APPID BARNYARD GRE IPV6 NORMALIZER PERFPROFILE SOURCEFIRE
+security_snort_UNSET_FORCE=FILEINSPECT HA PULLEDPORK
+
+www_squidguard_SET_FORCE=DNS_BL LDAP STRIP_NTDOMAIN
+www_squidguard_UNSET_FORCE=QUOTE_STRING
+
+www_squid_SET_FORCE=ARP_ACL AUTH_LDAP AUTH_NIS AUTH_SASL CACHE_DIGESTS DELAY_POOLS FOLLOW_XFF FS_AUFS FS_DISKD GSSAPI_MIT HTCP ICAP ICMP IDENT IPV6 KQUEUE LARGEFILE LAX_HTTP SNMP SSL SSL_CRTD TP_PF WCCP WCCPV2
+www_squid_UNSET_FORCE=AUTH_SMB AUTH_SQL DEBUG DNS_HELPER ECAP ESI FS_ROCK GSSAPI_NONE GSSAPI_BASE GSSAPI_HEIMDAL STACKTRACES TP_IPF TP_IPFW VIA_DB
+
+security_suricata_SET_FORCE=GEOIP HTP_PORT IPFW JSON LUAJIT NSS PORTS_PCAP
+security_suricata_UNSET_FORCE=LUA PRELUDE SC TESTS
+
+net-mgmt_zabbix22-agent_SET_FORCE=IPV6 SQLITE
+
+net-mgmt_zabbix22-proxy_SET_FORCE=IPV6 SQLITE
+net-mgmt_zabbix22-proxy_UNSET_FORCE=GSSAPI JABBER MYSQL
diff --git a/tools/conf/pfPorts/poudriere_bulk b/tools/conf/pfPorts/poudriere_bulk
new file mode 100644
index 0000000..58fcb25
--- /dev/null
+++ b/tools/conf/pfPorts/poudriere_bulk
@@ -0,0 +1,47 @@
+benchmarks/iperf
+benchmarks/iperf3
+security/%%PRODUCT_NAME%%
+security/%%PRODUCT_NAME%%-vm
+sysutils/%%PRODUCT_NAME%%-builder
+sysutils/bsdinstaller
+net/%%PRODUCT_NAME%%-pkg-pfBlockerNG
+net/%%PRODUCT_NAME%%-pkg-haproxy
+net/%%PRODUCT_NAME%%-pkg-haproxy-devel
+net/%%PRODUCT_NAME%%-pkg-Avahi
+sysutils/%%PRODUCT_NAME%%-pkg-Notes
+sysutils/%%PRODUCT_NAME%%-pkg-Backup
+sysutils/%%PRODUCT_NAME%%-pkg-Cron
+security/%%PRODUCT_NAME%%-pkg-snort
+sysutils/%%PRODUCT_NAME%%-pkg-Shellcmd
+net/%%PRODUCT_NAME%%-pkg-routed
+net/%%PRODUCT_NAME%%-pkg-siproxd
+net/%%PRODUCT_NAME%%-pkg-OpenBGPD
+www/%%PRODUCT_NAME%%-pkg-Lightsquid
+emulators/%%PRODUCT_NAME%%-pkg-Open-VM-Tools
+sysutils/%%PRODUCT_NAME%%-pkg-AutoConfigBackup
+net/%%PRODUCT_NAME%%-pkg-arping
+security/%%PRODUCT_NAME%%-pkg-nmap
+net-mgmt/%%PRODUCT_NAME%%-pkg-darkstat
+benchmarks/%%PRODUCT_NAME%%-pkg-iperf
+net/%%PRODUCT_NAME%%-pkg-mtr-nox11
+www/%%PRODUCT_NAME%%-pkg-squidGuard
+security/%%PRODUCT_NAME%%-pkg-openvpn-client-export
+sysutils/%%PRODUCT_NAME%%-pkg-blinkled
+sysutils/%%PRODUCT_NAME%%-pkg-gwled
+mail/%%PRODUCT_NAME%%-pkg-mailreport
+sysutils/%%PRODUCT_NAME%%-pkg-RRD_Summary
+net/%%PRODUCT_NAME%%-pkg-Quagga_OSPF
+net-mgmt/%%PRODUCT_NAME%%-pkg-iftop
+sysutils/%%PRODUCT_NAME%%-pkg-System_Patches
+net-mgmt/%%PRODUCT_NAME%%-pkg-softflowd
+security/%%PRODUCT_NAME%%-pkg-sudo
+sysutils/%%PRODUCT_NAME%%-pkg-Service_Watchdog
+ftp/%%PRODUCT_NAME%%-pkg-FTP_Client_Proxy
+security/%%PRODUCT_NAME%%-pkg-suricata
+www/%%PRODUCT_NAME%%-pkg-squid
+#net/%%PRODUCT_NAME%%-pkg-ntopng
+net-mgmt/%%PRODUCT_NAME%%-pkg-zabbix-agent
+net-mgmt/%%PRODUCT_NAME%%-pkg-zabbix-proxy
+net/%%PRODUCT_NAME%%-pkg-LADVD
+net/%%PRODUCT_NAME%%-pkg-freeradius2
+sysutils/%%PRODUCT_NAME%%-pkg-syslog-ng
diff --git a/tools/conf/pfPorts/poudriere_bulk.arm.armv6 b/tools/conf/pfPorts/poudriere_bulk.arm.armv6
new file mode 100644
index 0000000..37cfafb
--- /dev/null
+++ b/tools/conf/pfPorts/poudriere_bulk.arm.armv6
@@ -0,0 +1 @@
+security/%%PRODUCT_NAME%%
diff --git a/tools/scripts/generate-privdefs.php b/tools/scripts/generate-privdefs.php
new file mode 100755
index 0000000..917a94d
--- /dev/null
+++ b/tools/scripts/generate-privdefs.php
@@ -0,0 +1,216 @@
+#!/usr/local/bin/php -f
+<?php
+/* ====================================================================
+ * Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. 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 acknowledgment:
+ * "This product includes software developed by the pfSense Project
+ * for use in the pfSense® software distribution. (http://www.pfsense.org/).
+ *
+ * 4. The names "pfSense" and "pfSense Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * coreteam@pfsense.org.
+ *
+ * 5. Products derived from this software may not be called "pfSense"
+ * nor may "pfSense" appear in their names without prior written
+ * permission of the Electric Sheep Fencing, LLC.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ *
+ * "This product includes software developed by the pfSense Project
+ * for use in the pfSense software distribution (http://www.pfsense.org/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+ * EXPRESSED 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 pfSense PROJECT OR
+ * ITS 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.
+ * ====================================================================
+ */
+
+/*
+ * This utility processes the <prefix>/usr/local/www
+ * directory and builds a privilege definition file
+ * based on the embedded metadata tags. For more info
+ * please see <prefix>/etc/inc/meta.inc
+ */
+
+if (count($argv) < 2) {
+ echo "usage: generate-privdefs <prefix>\n";
+ echo "\n";
+ echo "This utility generates privilege definitions and writes them to\n";
+ echo "'<prefix>/etc/inc/priv.defs.inc'. The <prefix> parameter should\n";
+ echo "be specified as your base pfSense working directory.\n";
+ echo "\n";
+ echo "Examples:\n";
+ echo "#generate-privdefs /\n";
+ echo "#generate-privdefs /home/pfsense/RELENG_1/pfSense/\n";
+ echo "\n";
+ exit -1;
+}
+
+$prefix = $argv[1];
+if (!file_exists($prefix)) {
+ echo "prefix {$prefix} is invalid";
+ exit -1;
+}
+
+$metainc = $prefix."etc/inc/meta.inc";
+
+if (!file_exists($metainc)) {
+ echo "unable to locate {$metainc} file\n";
+ exit -1;
+}
+
+require_once($metainc);
+
+echo "--Locating www php files--\n";
+
+$path = $prefix."/usr/local/www";
+list_phpfiles($path, $found);
+
+echo "--Gathering privilege metadata--\n";
+
+$data;
+foreach ($found as $fname)
+ read_file_metadata($path."/".$fname, $data, "PRIV");
+
+echo "--Generating privilege definitions--\n";
+$privdef = $prefix."etc/inc/priv.defs.inc";
+
+$fp = fopen($privdef,"w");
+if (!$fp) {
+ echo "unable to open {$privdef}\n";
+ exit -2;
+}
+
+$pdata;
+$pdata = "<?php\n";
+$pdata .= "/*\n";
+$pdata .= " * priv.defs.inc - Generated privilege definitions\n";
+$pdata .= " *\n";
+$pdata .= " */\n";
+$pdata .= "\n";
+$pdata .= "\$priv_list = array();\n";
+$pdata .= "\n";
+$pdata .= "\$priv_list['page-all'] = array();\n";
+$pdata .= "\$priv_list['page-all']['name'] = \"WebCfg - All pages\";\n";
+$pdata .= "\$priv_list['page-all']['descr'] = \"Allow access to all pages\";\n";
+$pdata .= "\$priv_list['page-all']['match'] = array();\n";
+$pdata .= "\$priv_list['page-all']['match'][] = \"*\";\n";
+$pdata .= "\n";
+
+foreach ($data as $fname => $tags) {
+
+ foreach ($tags as $tname => $vals) {
+
+ $ident = "";
+ $name = "";
+ $descr = "";
+ $match = array();
+
+ foreach ($vals as $vname => $vlist) {
+
+ switch ($vname) {
+ case "IDENT":
+ $ident = $vlist[0];
+ break;
+ case "NAME":
+ $name = $vlist[0];
+ break;
+ case "DESCR":
+ $descr = $vlist[0];
+ break;
+ case "MATCH":
+ $match = $vlist;
+ break;
+ }
+ }
+
+ if (!$ident) {
+ echo "invalid IDENT in {$fname} privilege\n";
+ continue;
+ }
+
+ if (!count($match)) {
+ echo "invalid MATCH in {$fname} privilege\n";
+ continue;
+ }
+
+ $pdata .= "\$priv_list['{$ident}'] = array();\n";
+ $pdata .= "\$priv_list['{$ident}']['name'] = \"WebCfg - {$name}\";\n";
+ $pdata .= "\$priv_list['{$ident}']['descr'] = \"{$descr}\";\n";
+ $pdata .= "\$priv_list['{$ident}']['match'] = array();\n";
+
+ foreach ($match as $url)
+ $pdata .= "\$priv_list['{$ident}']['match'][] = \"{$url}\";\n";
+
+ $pdata .= "\n";
+ }
+}
+
+$pdata .= "\n";
+$pdata .= "\$priv_rmvd = array();\n";
+$pdata .= "\n";
+
+$pdata .= "?>\n";
+fwrite($fp, $pdata);
+
+fclose($fp);
+
+/*
+ * TODO : Build additional functionality
+ *
+
+echo "--Checking for pages without privilege definitions--\n";
+
+foreach ($found as $fname) {
+ $match = false;
+ foreach ($pages_current as $pname => $pdesc) {
+ if (!strcmp($pname,$fname)) {
+ $match = true;
+ break;
+ }
+ }
+ if (!$match)
+ echo "missing: $fname\n";
+}
+
+echo "--Checking for stale privilege definitions--\n";
+
+foreach ($pages_current as $pname => $pdesc) {
+ $match = false;
+ foreach ($found as $fname) {
+ if (!strncmp($fname,$pname,strlen($fname))) {
+ $match = true;
+ break;
+ }
+ }
+ if (!$match)
+ echo "stale: $pname\n";
+}
+
+ */
+
+?>
diff --git a/tools/scripts/update_package_pfPorts.php b/tools/scripts/update_package_pfPorts.php
new file mode 100755
index 0000000..178a282
--- /dev/null
+++ b/tools/scripts/update_package_pfPorts.php
@@ -0,0 +1,433 @@
+#!/usr/local/bin/php -q
+<?php
+/* ====================================================================
+ * Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. 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 acknowledgment:
+ * "This product includes software developed by the pfSense Project
+ * for use in the pfSense® software distribution. (http://www.pfsense.org/).
+ *
+ * 4. The names "pfSense" and "pfSense Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * coreteam@pfsense.org.
+ *
+ * 5. Products derived from this software may not be called "pfSense"
+ * nor may "pfSense" appear in their names without prior written
+ * permission of the Electric Sheep Fencing, LLC.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ *
+ * "This product includes software developed by the pfSense Project
+ * for use in the pfSense software distribution (http://www.pfsense.org/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+ * EXPRESSED 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 pfSense PROJECT OR
+ * ITS 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.
+ * ====================================================================
+ */
+
+$opts = "x:"; // Path to XML file
+$opts .= "p:"; // Package name to build (optional)
+$opts .= "t:"; // Path to ports tree repo
+
+$options = getopt($opts);
+
+if(!isset($options['x']))
+ usage();
+
+// Set the XML filename that we are processing
+$xml_filename = $options['x'];
+
+if (!file_exists($xml_filename))
+ die("Package XML file not found");
+
+$scripts_dir = realpath(dirname($argv[0]));
+$tools_dir = realpath($scripts_dir . '/..');
+$builder_dir = realpath($tools_dir . '/..');
+$src_dir = realpath($builder_dir . '/src');
+$packages_dir = dirname(realpath($xml_filename));
+$ports_dir = $options['t'];
+
+if (!file_exists($ports_dir) || !is_dir($ports_dir))
+ die("Ports tree {$ports_dir} not found!\n");
+
+$product_name = trim(shell_exec("cd {$builder_dir} && ./build.sh -V PRODUCT_NAME"));
+
+if (is_dir("{$src_dir}/etc/inc")) {
+ require_once("{$src_dir}/etc/inc/util.inc");
+ require_once("{$src_dir}/etc/inc/pfsense-utils.inc");
+ require_once("{$src_dir}/etc/inc/xmlparse.inc");
+} else {
+ die("Missing include directories\n");
+}
+
+$pkgs = parse_xml_config_pkg($xml_filename, "pfsensepkgs");
+if(!$pkgs) {
+ echo "!!! An error occurred while trying to process {$xml_filename}. Exiting.\n";
+ exit;
+}
+
+unset($pkg_list);
+if (isset($options['p'])) {
+ $pkg_list = array();
+ if (is_string($options['p']))
+ $pkg_list[] = strtolower($options['p']);
+ else if (is_array($options['p']))
+ $pkg_list = array_map('strtolower', $options['p']);
+}
+
+$pfs_version = trim(file_get_contents("{$src_dir}/etc/version"));
+
+foreach($pkgs['packages']['package'] as $pkg) {
+ if (isset($pkg_list) && !in_array(strtolower($pkg['name']), $pkg_list))
+ continue;
+
+ if (isset($pkg['maximum_version']) && !empty($pkg['maximum_version'])) {
+ if (version_compare_numeric($pfs_version, $pkg['maximum_version']) > 0) {
+ echo "!!! Ignoring {$pkg['name']}, maximum version is {$pkg['maximum_version']}\n";
+ continue;
+ }
+ }
+
+ if (isset($pkg['required_version']) && !empty($pkg['required_version'])) {
+ if (version_compare_numeric($pfs_version, $pkg['required_version']) < 0) {
+ echo "!!! Ignoring {$pkg['name']}, required version is {$pkg['required_version']}\n";
+ continue;
+ }
+ }
+
+ create_port($pkg);
+}
+
+function fix_php_calls($file) {
+ if (!file_exists($file)) {
+ return;
+ }
+
+ if (!preg_match('/\.(php|inc)$/', $file)) {
+ return;
+ }
+
+ $content = file_get_contents($file);
+ $new_content = preg_replace('/\/usr\/local\/bin\/php/', '/usr/local/bin/php-cgi', $content);
+ file_put_contents($file, $new_content);
+ unset($content, $new_content);
+}
+
+function create_port($pkg) {
+ global $ports_dir, $tools_dir, $packages_dir, $product_name;
+
+ if (isset($pkg['internal_name'])) {
+ $pkg_name = $pkg['internal_name'];
+ } else {
+ $pkg_name = $pkg['name'];
+ }
+
+ if (empty($pkg_name)) {
+ echo "!!! Error: Package name cannot be empty\n";
+ exit(1);
+ }
+
+ if (!preg_match('/^[a-zA-Z0-9\.\-_]+$/', $pkg_name)) {
+ echo "!!! Error: Package name '{$pkg_name}' is invalid\n";
+ exit(1);
+ }
+
+ if (isset($pkg['port_category']) && !empty($pkg['port_category']))
+ $category = $pkg['port_category'];
+ else
+ $category = 'sysutils';
+
+ $port_name_prefix = $product_name . '-pkg-';
+ $port_name = $port_name_prefix . $pkg_name;
+ $port_path = $ports_dir . '/' . $category . '/' . $port_name;
+
+ if (is_dir($port_path)) {
+ $_gb = exec("rm -rf {$port_path}");
+ }
+
+ mkdir($port_path . "/files", 0755, true);
+
+ if (isset($pkg['descr']) && !empty($pkg['descr'])) {
+ $pkg_descr = $pkg['descr'];
+ } else {
+ /* provide a generic description when it's not available */
+ $pkg_descr = "{$pkg_name} {$product_name} package";
+ }
+
+ if (isset($pkg['pkginfolink']) && !empty($pkg['pkginfolink'])) {
+ $pkg_descr .= "\n\nWWW: {$pkg['pkginfolink']}";
+ }
+ $pkg_descr .= "\n";
+
+ file_put_contents($port_path . "/pkg-descr.tmp", $pkg_descr);
+ unset($pkg_descr);
+
+ $_gb = exec("/usr/bin/fmt -w 80 {$port_path}/pkg-descr.tmp > {$port_path}/pkg-descr 2>/dev/null");
+ @unlink("{$port_path}/pkg-descr.tmp");
+
+ if (isset($pkg['after_install_info']) && !empty($pkg['after_install_info'])) {
+ file_put_contents($port_path . "/pkg-message", $pkg['after_install_info'] . "\n");
+ }
+
+ $pkg_install = file_get_contents($tools_dir . "/templates/pkg-install.in");
+ file_put_contents($port_path . "/files/pkg-install.in", $pkg_install);
+ unset($pkg_install);
+
+ $pkg_deinstall = file_get_contents($tools_dir . "/templates/pkg-deinstall.in");
+ file_put_contents($port_path . "/files/pkg-deinstall.in", $pkg_deinstall);
+ unset($pkg_deinstall);
+
+ $config_file = preg_replace('/^https*:\/\/[^\/]+\/packages\//', '', $pkg['config_file']);
+
+ if (!file_exists($packages_dir . '/' . $config_file)) {
+ echo "!!! Error, config file {$config_file} not found\n";
+ exit(1);
+ }
+
+ $pkg_config = parse_xml_config_pkg($packages_dir . '/' . $config_file, "packagegui");
+
+ if (empty($pkg_config)) {
+ echo "!!! Error, config file {$config_file} is invalid\n";
+ exit(1);
+ }
+
+ if (!is_dir($port_path . '/files/usr/local/pkg')) {
+ mkdir($port_path . '/files/usr/local/pkg', 0755, true);
+ }
+ copy($packages_dir . '/' . $config_file, $port_path . '/files/usr/local/pkg/' . basename($config_file));
+
+ $plist_files = array('pkg/' . basename($config_file));
+ $plist_dirs = array();
+ $mkdirs = array('${MKDIR} ${STAGEDIR}${PREFIX}/pkg');
+ $install = array('${INSTALL_DATA} -m 0644 ${FILESDIR}${PREFIX}/pkg/' . basename($config_file) . " \\\n\t\t" . '${STAGEDIR}${PREFIX}/pkg');
+ if (!empty($pkg_config['additional_files_needed'])) {
+ foreach ($pkg_config['additional_files_needed'] as $item) {
+ if (is_array($item['item'])) {
+ $item['item'] = $item['item'][0];
+ }
+ if (isset($item['do_not_add_to_port']))
+ continue;
+ $file_relpath = preg_replace('/^https*:\/\/[^\/]+\/packages\//', '', $item['item']);
+ if (!file_exists($packages_dir . '/' . $file_relpath)) {
+ echo "!!! Error: Additional file needed {$file_relpath} not found\n";
+ exit(1);
+ }
+
+ if (!is_dir($port_path . '/files' . $item['prefix'])) {
+ mkdir($port_path . '/files' . $item['prefix'], 0755, true);
+ }
+
+ copy($packages_dir . '/' . $file_relpath, $port_path . '/files' . $item['prefix'] . '/' . basename($file_relpath));
+ fix_php_calls($port_path . '/files' . $item['prefix'] . '/' . basename($file_relpath));
+ /* Remove /usr/local/ from prefix */
+ $plist_entry = preg_replace('/^\/usr\/local\//', '', $item['prefix']);
+ $plist_entry = preg_replace('/\/*$/', '', $plist_entry);
+
+ if (substr($plist_entry, 0, 1) == '/' &&
+ !in_array("@dir {$plist_entry}", $plist_dirs)) {
+ $plist_dirs[] = "@dir {$plist_entry}";
+ }
+
+ $plist_entry .= '/' . basename($item['item']);
+ if (!in_array($plist_entry, $plist_files)) {
+ $plist_files[] = $plist_entry;
+ }
+ unset($plist_entry);
+
+ if (preg_match('/^\/usr\/local\//', $item['prefix'])) {
+ $mkdirs_entry = preg_replace('/^\/usr\/local\//', '${PREFIX}/', $item['prefix']);
+ } else {
+ $mkdirs_entry = $item['prefix'];
+ }
+ $mkdirs_entry = preg_replace('/\/*$/', '', $mkdirs_entry);
+
+ $install_entry = '${INSTALL_DATA} ';
+
+ if (isset($item['chmod']) && !empty($item['chmod'])) {
+ $install_entry .= "-m {$item['chmod']} ";
+ }
+
+ $install_entry .= '${FILESDIR}' . $mkdirs_entry . '/' . basename($item['item']) . " \\\n\t\t";
+ $install_entry .= '${STAGEDIR}' . $mkdirs_entry;
+ $mkdirs_entry = '${MKDIR} ${STAGEDIR}' . $mkdirs_entry;
+
+ if (!in_array($mkdirs_entry, $mkdirs)) {
+ $mkdirs[] = $mkdirs_entry;
+ }
+ if (!in_array($install_entry, $install)) {
+ $install[] = $install_entry;
+ }
+
+ unset($install_entry, $mkdirs_entry);
+ }
+ }
+
+ if (!is_dir($port_path . '/files/usr/local/share/' . $port_name)) {
+ mkdir($port_path . '/files/usr/local/share/' . $port_name, 0755, true);
+ }
+
+ $info['package'][] = $pkg;
+ $info_xml = dump_xml_config($info, 'pfsensepkgs');
+ file_put_contents($port_path . '/files/usr/local/share/' . $port_name . '/info.xml', $info_xml);
+ unset($info, $info_xml);
+ $plist_files[] = '%%DATADIR%%/info.xml';
+ $mkdirs[] = '${MKDIR} ${STAGEDIR}${DATADIR}';
+ $install[] = '${INSTALL_DATA} ${FILESDIR}${DATADIR}/info.xml ' . "\\\n\t\t" . '${STAGEDIR}${DATADIR}';
+
+ $version = $pkg['version'];
+
+ /* Detect PORTEPOCH */
+ if (($pos = strpos($version, ',')) != FALSE) {
+ $epoch = substr($version, $pos+1);
+ $version = substr($version, 0, $pos);
+ }
+
+ /* Detect PORTREVISION */
+ if (($pos = strpos($version, '_')) != FALSE) {
+ $revision = substr($version, $pos+1);
+ $version = substr($version, 0, $pos);
+ }
+
+ $makefile = array();
+ $makefile[] = '# $FreeBSD$';
+ $makefile[] = '';
+ $makefile[] = "PORTNAME=\t{$port_name}";
+ $makefile[] = "PORTVERSION=\t{$version}";
+ if (isset($revision)) {
+ $makefile[] = "PORTREVISION=\t{$revision}";
+ }
+ if (isset($epoch)) {
+ $makefile[] = "PORTEPOCH=\t{$epoch}";
+ }
+ // XXX: use categories from xml */
+ $makefile[] = "CATEGORIES=\t{$category}";
+ $makefile[] = "MASTER_SITES=\t# empty";
+ $makefile[] = "DISTFILES=\t# empty";
+ $makefile[] = "EXTRACT_ONLY=\t# empty";
+ $makefile[] = "";
+ $makefile[] = "MAINTAINER=\tcoreteam@pfsense.org";
+ // XXX: Provide comment on xml */
+ $makefile[] = "COMMENT=\t{$product_name} package {$pkg_name}";
+ if (isset($pkg['run_depends']) && !empty($pkg['run_depends'])) {
+ $run_depends = array();
+ foreach (preg_split('/\s+/', trim($pkg['run_depends'])) as $depend) {
+ list($file_depend, $port_depend) = explode(':', $depend);
+ $file_depend = '${LOCALBASE}/' . $file_depend;
+ $port_depend = '${PORTSDIR}/' . $port_depend;
+ $run_depends[] = $file_depend . ':' . $port_depend;
+ }
+ if (!empty($run_depends)) {
+ $makefile[] = "";
+ $first = true;
+ foreach ($run_depends as $run_depend) {
+ if ($first) {
+ $makefile_entry = "RUN_DEPENDS=\t" . $run_depend;
+ $first = false;
+ } else {
+ $makefile_entry .= " \\\n\t\t" . $run_depend;
+ }
+ }
+ $makefile[] = $makefile_entry;
+ unset($makefile_entry);
+ }
+ unset($run_depends);
+ }
+ if (isset($pkg['lib_depends']) && !empty($pkg['lib_depends'])) {
+ $lib_depends = array();
+ foreach (preg_split('/\s+/', trim($pkg['lib_depends'])) as $depend) {
+ list($lib_depend, $port_depend) = explode(':', $depend);
+ $port_depend = '${PORTSDIR}/' . $port_depend;
+ $lib_depends[] = $lib_depend . ':' . $port_depend;
+ }
+ if (!empty($lib_depends)) {
+ $makefile[] = "";
+ $first = true;
+ foreach ($lib_depends as $lib_depend) {
+ if ($first) {
+ $makefile_entry = "LIB_DEPENDS=\t" . $lib_depend;
+ $first = false;
+ } else {
+ $makefile_entry .= " \\\n\t\t" . $lib_depend;
+ }
+ }
+ $makefile[] = $makefile_entry;
+ unset($makefile_entry);
+ }
+ unset($run_depends);
+ }
+ if (isset($pkg['port_uses']) && !empty($pkg['port_uses'])) {
+ $makefile[] = "";
+ foreach (preg_split('/\s+/', trim($pkg['port_uses'])) as $port_use) {
+ $port_use = preg_replace('/=/', "=\t", $port_use);
+ $makefile[] = $port_use;
+ }
+ }
+ if (isset($pkg['conflicts']) && !empty($pkg['conflicts'])) {
+ $makefile[] = "";
+ $makefile[] = "CONFLICTS=\t" . $port_name_prefix . $pkg['conflicts'] . '-[0-9]*';
+ }
+ $makefile[] = "";
+ $makefile[] = "NO_BUILD=\tyes";
+ $makefile[] = "NO_MTREE=\tyes";
+ $makefile[] = "";
+ $makefile[] = "SUB_FILES=\tpkg-install pkg-deinstall";
+ $makefile[] = "SUB_LIST=\tPORTNAME=\${PORTNAME}";
+ $makefile[] = "";
+ $makefile[] = "do-extract:";
+ $makefile[] = "\t\${MKDIR} \${WRKSRC}";
+ $makefile[] = "";
+ $makefile[] = "do-install:";
+ foreach ($mkdirs as $item) {
+ $makefile[] = "\t" . $item;
+ }
+ foreach ($install as $item) {
+ $makefile[] = "\t" . $item;
+ }
+ $makefile[] = "";
+ $makefile[] = ".include <bsd.port.mk>";
+
+ file_put_contents($port_path . '/Makefile', implode("\n", $makefile) . "\n");
+ unset($makefile);
+
+ file_put_contents($port_path . '/pkg-plist', implode("\n", $plist_files) . "\n");
+ if (!empty($plist_dirs)) {
+ file_put_contents($port_path . '/pkg-plist', implode("\n", $plist_dirs) . "\n", FILE_APPEND);
+ }
+ unset($plist_files, $plist_dirs);
+}
+
+function usage() {
+ global $argv;
+ echo "Usage: {$argv[0]} -x <path to pkg xml> [-p <package name>]\n";
+ echo " Flags:\n";
+ echo " -s Product version to pass to set_version.sh during chroot build\n";
+ echo " -U Do NOT run build.sh --update-sources\n";
+ echo " Examples:\n";
+ echo " {$argv[0]} -x /home/packages/pkg_info.10.xml -p squid -s RELENG_2_2\n";
+ exit;
+}
+?>
diff --git a/tools/templates/core_pkg/base/exclude_files b/tools/templates/core_pkg/base/exclude_files
new file mode 100644
index 0000000..d21c093
--- /dev/null
+++ b/tools/templates/core_pkg/base/exclude_files
@@ -0,0 +1,26 @@
+./boot.config
+./boot/loader.conf
+./boot/loader.conf.local
+./boot/modules/bwi_v3_ucode.ko
+./cf/conf/config.xml
+./cf/conf/enableserial_force
+./cf/conf/trigger_initial_wizard
+./conf.default/config.xml
+./etc/bogons
+./etc/bogonsv6
+./etc/fstab
+./etc/group
+./etc/master.passwd
+./etc/master.passwd.db
+./etc/passwd
+./etc/platform
+./etc/pwd.db
+./etc/rc.conf
+./etc/spwd.db
+./media
+./mnt
+./proc
+./sys
+./tmp
+./usr/local/share/%%PRODUCT_NAME%%/base.mtree
+./usr/local/share/%%PRODUCT_NAME%%/base.txz
diff --git a/tools/templates/core_pkg/base/metadir/+DESC b/tools/templates/core_pkg/base/metadir/+DESC
new file mode 100644
index 0000000..34b9159
--- /dev/null
+++ b/tools/templates/core_pkg/base/metadir/+DESC
@@ -0,0 +1,3 @@
+%%PRODUCT_NAME%% core files
+
+WWW: %%PRODUCT_URL%%
diff --git a/tools/templates/core_pkg/base/metadir/+MANIFEST b/tools/templates/core_pkg/base/metadir/+MANIFEST
new file mode 100644
index 0000000..94b2057
--- /dev/null
+++ b/tools/templates/core_pkg/base/metadir/+MANIFEST
@@ -0,0 +1,15 @@
+name: "%%PRODUCT_NAME%%-base"
+version: "%%VERSION%%"
+origin: "security/%%PRODUCT_NAME%%-base"
+comment: <<EOD
+%%PRODUCT_NAME%% core files
+EOD
+maintainer: development@pfsense.org
+prefix: /usr/local
+deps: {
+
+}
+categories [ security, ]
+licenselogic: single
+licenses: [ BSD2CLAUSE, ]
+options: { }
diff --git a/tools/templates/core_pkg/base/pkg-plist b/tools/templates/core_pkg/base/pkg-plist
new file mode 100644
index 0000000..f531fae
--- /dev/null
+++ b/tools/templates/core_pkg/base/pkg-plist
@@ -0,0 +1,2 @@
+share/%%PRODUCT_NAME%%/base.txz
+share/%%PRODUCT_NAME%%/base.mtree
diff --git a/tools/templates/core_pkg/default-config-serial/metadir/+DESC b/tools/templates/core_pkg/default-config-serial/metadir/+DESC
new file mode 100644
index 0000000..0bde2a1
--- /dev/null
+++ b/tools/templates/core_pkg/default-config-serial/metadir/+DESC
@@ -0,0 +1,3 @@
+%%PRODUCT_NAME%% default config (serial)
+
+WWW: %%PRODUCT_URL%%
diff --git a/tools/templates/core_pkg/default-config-serial/metadir/+INSTALL b/tools/templates/core_pkg/default-config-serial/metadir/+INSTALL
new file mode 100644
index 0000000..11c69cd
--- /dev/null
+++ b/tools/templates/core_pkg/default-config-serial/metadir/+INSTALL
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+if [ "${2}" != "POST-INSTALL" ]; then
+ exit 0
+fi
+
+if [ ! -f /cf/conf/config.xml ]; then
+ cp /conf.default/config.xml /cf/conf/config.xml
+fi
+
+if [ ! -L /conf ]; then
+ ln -sf /cf/conf /conf
+fi
+
+exit 0
diff --git a/tools/templates/core_pkg/default-config-serial/metadir/+MANIFEST b/tools/templates/core_pkg/default-config-serial/metadir/+MANIFEST
new file mode 100644
index 0000000..2931328
--- /dev/null
+++ b/tools/templates/core_pkg/default-config-serial/metadir/+MANIFEST
@@ -0,0 +1,15 @@
+name: "%%PRODUCT_NAME%%-default-config-serial"
+version: "%%VERSION%%"
+origin: "security/%%PRODUCT_NAME%%-default-config-serial"
+comment: <<EOD
+%%PRODUCT_NAME%% default config (serial)
+EOD
+maintainer: development@pfsense.org
+prefix: /
+deps: {
+
+}
+categories [ security, ]
+licenselogic: single
+licenses: [ BSD2CLAUSE, ]
+options: { }
diff --git a/tools/templates/core_pkg/default-config-serial/pkg-plist b/tools/templates/core_pkg/default-config-serial/pkg-plist
new file mode 100644
index 0000000..ddc4f46
--- /dev/null
+++ b/tools/templates/core_pkg/default-config-serial/pkg-plist
@@ -0,0 +1,2 @@
+/conf.default/config.xml
+/cf/conf/enableserial_force
diff --git a/tools/templates/core_pkg/default-config/metadir/+DESC b/tools/templates/core_pkg/default-config/metadir/+DESC
new file mode 100644
index 0000000..692d63e
--- /dev/null
+++ b/tools/templates/core_pkg/default-config/metadir/+DESC
@@ -0,0 +1,3 @@
+%%PRODUCT_NAME%% default config
+
+WWW: %%PRODUCT_URL%%
diff --git a/tools/templates/core_pkg/default-config/metadir/+INSTALL b/tools/templates/core_pkg/default-config/metadir/+INSTALL
new file mode 100644
index 0000000..11c69cd
--- /dev/null
+++ b/tools/templates/core_pkg/default-config/metadir/+INSTALL
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+if [ "${2}" != "POST-INSTALL" ]; then
+ exit 0
+fi
+
+if [ ! -f /cf/conf/config.xml ]; then
+ cp /conf.default/config.xml /cf/conf/config.xml
+fi
+
+if [ ! -L /conf ]; then
+ ln -sf /cf/conf /conf
+fi
+
+exit 0
diff --git a/tools/templates/core_pkg/default-config/metadir/+MANIFEST b/tools/templates/core_pkg/default-config/metadir/+MANIFEST
new file mode 100644
index 0000000..d385eda
--- /dev/null
+++ b/tools/templates/core_pkg/default-config/metadir/+MANIFEST
@@ -0,0 +1,15 @@
+name: "%%PRODUCT_NAME%%-default-config"
+version: "%%VERSION%%"
+origin: "security/%%PRODUCT_NAME%%-default-config"
+comment: <<EOD
+%%PRODUCT_NAME%% default config
+EOD
+maintainer: development@pfsense.org
+prefix: /
+deps: {
+
+}
+categories [ security, ]
+licenselogic: single
+licenses: [ BSD2CLAUSE, ]
+options: { }
diff --git a/tools/templates/core_pkg/default-config/pkg-plist b/tools/templates/core_pkg/default-config/pkg-plist
new file mode 100644
index 0000000..b6fe8df
--- /dev/null
+++ b/tools/templates/core_pkg/default-config/pkg-plist
@@ -0,0 +1 @@
+/conf.default/config.xml
diff --git a/tools/templates/core_pkg/kernel/metadir/+DEINSTALL b/tools/templates/core_pkg/kernel/metadir/+DEINSTALL
new file mode 100644
index 0000000..2ecfa6e
--- /dev/null
+++ b/tools/templates/core_pkg/kernel/metadir/+DEINSTALL
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+if [ "${2}" != "DEINSTALL" ]; then
+ exit 0
+fi
+
+echo "===> Keeping a copy of current kernel in /boot/kernel.old"
+
+# Check if there is a current kernel to be moved
+if [ ! -f /boot/kernel/kernel.gz ]; then
+ echo "ERROR: Current kernel not found"
+ exit 1
+fi
+
+[ -d /boot/kernel.old ] \
+ rm -rf /boot/kernel.old
+
+cp -r /boot/kernel /boot/kernel.old
+exit $?
diff --git a/tools/templates/core_pkg/kernel/metadir/+DESC b/tools/templates/core_pkg/kernel/metadir/+DESC
new file mode 100644
index 0000000..14c9552
--- /dev/null
+++ b/tools/templates/core_pkg/kernel/metadir/+DESC
@@ -0,0 +1,3 @@
+%%PRODUCT_NAME%% kernel
+
+WWW: %%PRODUCT_URL%%
diff --git a/tools/templates/core_pkg/kernel/metadir/+MANIFEST b/tools/templates/core_pkg/kernel/metadir/+MANIFEST
new file mode 100644
index 0000000..1770333
--- /dev/null
+++ b/tools/templates/core_pkg/kernel/metadir/+MANIFEST
@@ -0,0 +1,15 @@
+name: "%%PRODUCT_NAME%%-kernel-%%FLAVOR%%"
+version: "%%VERSION%%"
+origin: "security/%%PRODUCT_NAME%%-kernel"
+comment: <<EOD
+%%PRODUCT_NAME%% kernel
+EOD
+maintainer: development@pfsense.org
+prefix: /
+deps: {
+
+}
+categories [ security, ]
+licenselogic: single
+licenses: [ BSD2CLAUSE, ]
+options: { }
diff --git a/tools/templates/pkg-deinstall.in b/tools/templates/pkg-deinstall.in
new file mode 100644
index 0000000..0ea6111
--- /dev/null
+++ b/tools/templates/pkg-deinstall.in
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/local/sbin/fcgicli -f /etc/rc.packages -d "pkg=%%PORTNAME%%&when=${2}"
diff --git a/tools/templates/pkg-install.in b/tools/templates/pkg-install.in
new file mode 100644
index 0000000..d9217e6
--- /dev/null
+++ b/tools/templates/pkg-install.in
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ "${2}" != "POST-INSTALL" ]; then
+ exit 0
+fi
+
+/usr/local/sbin/fcgicli -f /etc/rc.packages -d "pkg=%%PORTNAME%%&when=${2}"
diff --git a/usr/local/openssl/openssl.cnf b/usr/local/openssl/openssl.cnf
deleted file mode 100644
index 5f612fb..0000000
--- a/usr/local/openssl/openssl.cnf
+++ /dev/null
@@ -1,309 +0,0 @@
-# $FreeBSD: src/crypto/openssl/apps/openssl.cnf,v 1.6 2004/03/17 17:44:38 nectar Exp $
-#
-# OpenSSL example configuration file.
-# This is mostly being used for generation of certificate requests.
-#
-#
-# This definition stops the following lines choking if HOME isn't
-# defined.
-HOME = .
-RANDFILE = $ENV::HOME/.rnd
-
-# default SAN value if $ENV::SAN is not defined
-#
-SAN =
-
-# Extra OBJECT IDENTIFIER info:
-#oid_file = $ENV::HOME/.oid
-oid_section = new_oids
-
-# To use this configuration file with the "-extfile" option of the
-# "openssl x509" utility, name here the section containing the
-# X.509v3 extensions to use:
-# extensions =
-# (Alternatively, use a configuration file that has only
-# X.509v3 extensions in its main [= default] section.)
-
-[ new_oids ]
-
-# We can add new OIDs in here for use by 'ca' and 'req'.
-# Add a simple OID like this:
-# testoid1=1.2.3.4
-# Or use config file substitution like this:
-# testoid2=${testoid1}.5.6
-
-####################################################################
-[ ca ]
-default_ca = CA_default # The default ca section
-
-####################################################################
-[ CA_default ]
-
-dir = ./demoCA # Where everything is kept
-certs = $dir/certs # Where the issued certs are kept
-crl_dir = $dir/crl # Where the issued crl are kept
-database = $dir/index.txt # database index file.
-#unique_subject = no # Set to 'no' to allow creation of
- # several ctificates with same subject.
-new_certs_dir = $dir/newcerts # default place for new certs.
-
-certificate = $dir/cacert.pem # The CA certificate
-serial = $dir/serial # The current serial number
-#crlnumber = $dir/crlnumber # the current crl number
- # must be commented out to leave a V1 CRL
-crl = $dir/crl.pem # The current CRL
-private_key = $dir/private/cakey.pem# The private key
-RANDFILE = $dir/private/.rand # private random number file
-
-x509_extensions = usr_cert # The extentions to add to the cert
-
-# Comment out the following two lines for the "traditional"
-# (and highly broken) format.
-name_opt = ca_default # Subject Name options
-cert_opt = ca_default # Certificate field options
-
-# Extension copying option: use with caution.
-# copy_extensions = copy
-
-# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
-# so this is commented out by default to leave a V1 CRL.
-# crlnumber must also be commented out to leave a V1 CRL.
-# crl_extensions = crl_ext
-
-default_days = 365 # how long to certify for
-default_crl_days= 30 # how long before next CRL
-default_md = md5 # which md to use.
-preserve = no # keep passed DN ordering
-
-# A few difference way of specifying how similar the request should look
-# For type CA, the listed attributes must be the same, and the optional
-# and supplied fields are just that :-)
-policy = policy_match
-
-# For the CA policy
-[ policy_match ]
-countryName = match
-stateOrProvinceName = match
-organizationName = match
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-# For the 'anything' policy
-# At this point in time, you must list all acceptable 'object'
-# types.
-[ policy_anything ]
-countryName = optional
-stateOrProvinceName = optional
-localityName = optional
-organizationName = optional
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-####################################################################
-[ req ]
-distinguished_name=req_distinguished_name
-req_extensions = v3_req
-prompt=no
-
-default_bits = 2048
-default_keyfile = privkey.pem
-distinguished_name = req_distinguished_name
-attributes = req_attributes
-x509_extensions = v3_ca # The extentions to add to the self signed cert
-
-# Passwords for private keys if not present they will be prompted for
-#input_password=""
-#output_password=""
-
-# This sets a mask for permitted string types. There are several options.
-# default: PrintableString, T61String, BMPString.
-# pkix : PrintableString, BMPString.
-# utf8only: only UTF8Strings.
-# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
-# MASK:XXXX a literal mask value.
-# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
-# so use this option with caution!
-string_mask = nombstr
-
-# req_extensions = v3_req # The extensions to add to a certificate request
-
-[ req_distinguished_name ]
-countryName = US
-#countryName_default = AU
-#countryName_min = 2
-#countryName_max = 2
-
-stateOrProvinceName = Somewhere
-#stateOrProvinceName_default = Somestate
-
-localityName = Somecity
-
-0.organizationName = CompanyName
-#0.organizationName_default = SampleNameDefault
-
-# we can do this but it is not needed normally :-)
-#1.organizationName = Second Organization Name (eg, company)
-#1.organizationName_default = World Wide Web Pty Ltd
-
-organizationalUnitName = Organizational Unit Name (eg, section)
-#organizationalUnitName_default =
-
-commonName = Common Name (eg, YOUR name)
-#commonName_max = 64
-
-emailAddress = Email Address
-#emailAddress_max = 64
-
-# SET-ex3 = SET extension number 3
-
-[ req_attributes ]
-challengePassword = A challenge password
-#challengePassword_min = 4
-#challengePassword_max = 20
-
-unstructuredName = An optional company name
-
-[ usr_cert ]
-
-# These extensions are added when 'ca' signs a request.
-
-# This goes against PKIX guidelines but some CAs do it and some software
-# requires this to avoid interpreting an end user certificate as a CA.
-
-basicConstraints=CA:FALSE
-
-# Here are some examples of the usage of nsCertType. If it is omitted
-# the certificate can be used for anything *except* object signing.
-
-# This is OK for an SSL server.
-# nsCertType = server
-
-# For an object signing certificate this would be used.
-# nsCertType = objsign
-
-# For normal client use this is typical
-# nsCertType = client, email
-
-# and for everything including object signing:
-# nsCertType = client, email, objsign
-
-# This is typical in keyUsage for a client certificate.
-# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-
-# This will be displayed in Netscape's comment listbox.
-nsComment = "OpenSSL Generated User Certificate"
-
-# PKIX recommendations harmless if included in all certificates.
-subjectKeyIdentifier=hash
-authorityKeyIdentifier=keyid,issuer:always
-
-# This stuff is for subjectAltName and issuerAltname.
-# Import the email address.
-# subjectAltName=email:copy
-# An alternative to produce certificates that aren't
-# deprecated according to PKIX.
-# subjectAltName=email:move
-
-# Copy subject details
-# issuerAltName=issuer:copy
-
-#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
-#nsBaseUrl
-#nsRevocationUrl
-#nsRenewalUrl
-#nsCaPolicyUrl
-#nsSslServerName
-
-[ usr_cert_san ]
-
-# copy of [ usr_cert ] plus nonempty Subject Alternative Names
-basicConstraints=CA:FALSE
-nsComment = "OpenSSL Generated User Certificate"
-subjectKeyIdentifier=hash
-authorityKeyIdentifier=keyid,issuer:always
-subjectAltName=$ENV::SAN
-
-[ server ]
-
-# Make a cert with nsCertType=server
-basicConstraints=CA:FALSE
-nsCertType = server
-nsComment = "OpenSSL Generated Server Certificate"
-subjectKeyIdentifier=hash
-authorityKeyIdentifier=keyid,issuer:always
-extendedKeyUsage=serverAuth
-keyUsage = digitalSignature, keyEncipherment
-
-[ server_san ]
-
-# copy of [ server ] plus nonempty Subject Alternative Names
-basicConstraints=CA:FALSE
-nsCertType = server
-nsComment = "OpenSSL Generated Server Certificate"
-subjectKeyIdentifier=hash
-authorityKeyIdentifier=keyid,issuer:always
-extendedKeyUsage=serverAuth
-keyUsage = digitalSignature, keyEncipherment
-subjectAltName=$ENV::SAN
-
-[ v3_req ]
-
-# Extensions to add to a certificate request
-
-basicConstraints = CA:FALSE
-keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-
-[ v3_ca ]
-
-
-# Extensions for a typical CA
-
-
-# PKIX recommendation.
-
-subjectKeyIdentifier=hash
-
-authorityKeyIdentifier=keyid:always,issuer:always
-
-# This is what PKIX recommends but some broken software chokes on critical
-# extensions.
-#basicConstraints = critical,CA:true
-# So we do this instead.
-basicConstraints = CA:true
-
-# Key usage: this is typical for a CA certificate. However since it will
-# prevent it being used as an test self-signed certificate it is best
-# left out by default.
-# keyUsage = cRLSign, keyCertSign
-
-# Some might want this also
-# nsCertType = sslCA, emailCA
-
-# Include email address in subject alt name: another PKIX recommendation
-# subjectAltName=email:copy
-# Copy issuer details
-# issuerAltName=issuer:copy
-
-# DER hex encoding of an extension: beware experts only!
-# obj=DER:02:03
-# Where 'obj' is a standard or added object
-# You can even override a supported extension:
-# basicConstraints= critical, DER:30:03:01:01:FF
-
-[ v3_ca_san ]
-
-# copy of [ v3_ca ] plus nonempty Subject Alternative Names
-subjectKeyIdentifier=hash
-authorityKeyIdentifier=keyid:always,issuer:always
-basicConstraints = CA:true
-subjectAltName=$ENV::SAN
-
-[ crl_ext ]
-
-# CRL extensions.
-# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
-
-# issuerAltName=issuer:copy
-authorityKeyIdentifier=keyid:always,issuer:always
diff --git a/usr/local/www/favicon.ico b/usr/local/www/favicon.ico
deleted file mode 100755
index 7cbef42..0000000
--- a/usr/local/www/favicon.ico
+++ /dev/null
Binary files differ
OpenPOWER on IntegriCloud