initial dev version

This commit is contained in:
Ad Schellevis 2014-10-27 18:58:51 +01:00
commit f35608bf30
200 changed files with 29446 additions and 0 deletions

64
build_iso.sh Executable file
View File

@ -0,0 +1,64 @@
#!/bin/sh
# import settings
. conf/buildtools/opnsense-build.conf
. conf/buildtools/opnsense-build-defaults.conf
# import modules
for module in `ls modules/*.sh`
do
. $module
done
(
echo "[`date`] start ( $ARCH )"
# setup/configure build environment ( modules/configure.sh )
# installs ports from conf/env_ports/builder_required_ports to local system
run_configure
# setup required software and packages ( modules/software.sh )
# - deploy custom / opnsense ports to local system ( ../opnsense-ports/deploy.sh )
# - build all required ports for opnsense ( conf/ports/buildports )
# retry 4 times if necessary ( fix dependancy issues )
for i in 1 2 3 4
do
setup_software
error_cnt=`print_missing_ports | grep "build failed" | wc -l`
if [ "$error_cnt" -eq "0" ]; then
break
else
echo ">>> retry build ports ($i)"
fi
done
# during our install we've seemed to miss some files from ports, copy manually to right location
# todo: check and remove fixes
fix_ports_install
# checkout / prepare freebsd sources ( one time only )
if [ ! -d $SRCDIR ]; then
run_freebsd_source
fi
# setup staging area ($CUSTOMROOT)
setup_staging_area
# build environment ( compile freebsd + kernels )
run_freesbie_build
# setup installer
setup_installer
# build iso file
freesbie_build_iso
# list missing opnSense ports
echo ">>> List missing opnsense ports "
print_missing_ports
echo "[`date`] done "
) | tee $BUILDER_LOGS/build_iso.log
echo "log : $BUILDER_LOGS/build_iso.log"

33
clean_build.sh Executable file
View File

@ -0,0 +1,33 @@
#!/bin/sh
# import settings
. conf/buildtools/opnsense-build.conf
. conf/buildtools/opnsense-build-defaults.conf
# import modules
for module in `ls modules/*.sh`
do
. $module
done
echo "cleanup all opnSense files"
if [ -d $OPNSENSEBASEDIR ]; then
echo "remove $OPNSENSEBASEDIR"
chflags -R noschg $OPNSENSEBASEDIR
rm -rf $OPNSENSEBASEDIR
fi
if [ -d $CLONEDIR ]; then
echo "remove $CLONEDIR"
chflags -R noschg $CLONEDIR
rm -rf $CLONEDIR
fi
if [ -d $SRCDIR ]; then
echo "remove $SRCDIR"
chflags -R noschg $SRCDIR
rm -rf $SRCDIR
fi

View File

@ -0,0 +1,35 @@
# $Id$
# Defaults settings for the build scripts.
# NOTE: There should be NO NEED to edit this file directly!
# Instead, create a file build.conf with your own overrides.
export FREEBSD_VERSION=10
export CVSDIR=${CVSDIR:-<opnsense_BUILD_HOME>/work} # local cvs checkout dir
export CVSMODULE=${CVSMODULE:-installer} # cvs module name
export TMPDIR=${TMPDIR:-/tmp} # dir for temp files
export NRELEASEDIR=${NRELEASEDIR:-/usr/src/nrelease} # where 'nrelease' lives
export PORTSDIR=${PORTSDIR:-/usr/ports} # system ports dir
export DISTFILESDIR=${DISTFILESDIR:-${PORTSDIR}/distfiles} # distfiles dir
export PACKAGESDIR=${PACKAGESDIR:-${PORTSDIR}/packages/All} # pkgs dir
export ISOROOT=${ISOROOT:-/usr/release/root} # root of ISO-to-be tree
export PORTS_FLAGS=${PORTS_FLAGS:-} # additional flags/vars
export REMOVEOLDPKGS=${REMOVEOLDPKGS:-YES} # Remove old non-RELEASEBUILD
export REMOVEOLDDISTFILES=${REMOVEOLDDISTFILES:-YES} # pkgs/dstfls when making new
export RELEASEBUILD=${RELEASEBUILD:-NO} # NO = tack date on pkg vers
export ROOTSKEL=${ROOTSKEL:-${NRELEASEDIR}/installer} # default installer skeleton
export EXTRA_ROOTSKELS=${EXTRA_ROOTSKELS:-} # extra root skeletons
export INSTALL_DFUIFE_QT=${INSTALL_DFUIFE_QT:-NO} # build & install Qt frontend
export INSTALL_DFUIBE_LUA=${INSTALL_DFUIBE_LUA:-YES} # build & install Lua backend
export INSTALL_DFUIBE_INSTALLER=${INSTALL_DFUIBE_INSTALLER:-NO} # ditto C backend
export WITH_NLS=NO # build pkgs with i18n
export WITH_X11=${WITH_X11:-NO} # build X11 support pkgs
export WITH_DEBUG_INFO=${WITH_DEBUG_INFO:-NO} # leave debug info in binaries
export WITH_DEBUG=${WITH_DEBUG:-NO} # build debug-enabled pkgs
export ONE_BIG_PKG=${ONE_BIG_PKG:-YES} # build & install one big pkg?

View File

@ -0,0 +1,49 @@
# architecture selection, crossbuilding not supported
export ARCH=`uname -m`
# tools location
export BUILD_HOME=${BUILD_HOME:-`pwd`}
export OPNSENSE_PORTS=${OPNSENSE_PORTS:-`pwd`/../opnsense-ports}
export CUSTOMROOT=${CUSTOMROOT:-$BUILD_HOME/work/opnSense}
export CLONEDIR=${OPNSENSEISODIR:-/usr/local/opnsense-clone}
# pcbsd
export PCBSD_PATH=${PCBSD_PATH:-$BUILD_HOME/work/pcbsd}
export PCBSD_REPO=${PCBSD_REPO:-https://github.com/pcbsd/pcbsd.git}
export PCBSD_BRANCH=${PCBSD_BRANCH:-master}
# temp directory
export BUILD_TMP=${BUILD_TMP:-/tmp/opnsense}
# Product settings
export PRODUCT_NAME=${PRODUCT_NAME:-opnSense}
# general build settings
export OPNSENSEBASEDIR=${OPNSENSEBASEDIR:-/usr/local/opnsense-fs}
export FREESBIE_PATH=${FREESBIE_PATH:-`pwd`/freesbie2}
# KERNEL/Build settings use by freesbie2
export CPUS=${CPUS:-`sysctl kern.smp.cpus | cut -d' ' -f2`}
export SRCDIR=${SRCDIR:-/usr/opnsensesrc/src}
export SRC_CONF=${SRC_CONF:-"`pwd`/conf/src/src.conf.$FREEBSD_VERSION"}
export SRC_CONF_INSTALL=${SRC_CONF_INSTALL:-"`pwd`/conf/src/src.conf.$FREEBSD_VERSION.install"}
export KERNEL_BUILD_PATH=${KERNEL_BUILD_PATH:-"/tmp/kernels"}
export BUILD_KERNELS=${BUILD_KERNELS:-"opnsense_SMP.${FREEBSD_VERSION} "}
export DEFAULT_KERNEL=${DEFAULT_KERNEL:-"opnsense_SMP.${FREEBSD_VERSION}"}
export MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX:-/usr/obj.${PRODUCT_NAME}}
export MAKEJ_WORLD=${MAKEJ_WORLD:-"-j$CPUS"}
export MAKEJ_PORTS=${MAKEJ_PORTS:-""}
export CFLAGS=${CFLAGS:-""}
# export variables used by freesbie2
export FREESBIE_CONF=${FREESBIE_CONF:-/dev/null} # No configuration file should be override our variables
export BASEDIR=${OPNSENSEBASEDIR:-/usr/local/opnsense-fs}
export CLONEDIR=${OPNSENSEISODIR:-/usr/local/opnsense-clone}
export FREESBIE_LABEL=${FREESBIE_LABEL:-${PRODUCT_NAME}}
export EXTRAPLUGINS=${EXTRAPLUGINS:-"customroot customscripts pkgnginstall"}
export PRUNE_LIST=${PRUNE_LIST:-"`pwd`/conf/rmlist/remove.list.iso.${FREEBSD_VERSION}"}
# logging
export BUILDER_LOGS=${BUILDER_LOGS:-`pwd`/logs}

View File

@ -0,0 +1,7 @@
#
export FREEBSD_REPO_BASE=https://github.com/freebsd/freebsd.git
export SVN_BRANCH=releng/10.1
export OSPATCHFILE=`pwd`/conf/patchlist/patches.RELENG_10_0
export OSPATCHDIR=`pwd`/patches/RELENG_10_0
export FREEBSD_VERSION=10

756
conf/copylist/copy.list Executable file
View File

@ -0,0 +1,756 @@
usr/local/sbin/clog
usr/local/bin/rate
usr/local/sbin/apinger
usr/local/sbin/syslog-ng
usr/local/sbin/radvd
usr/local/sbin/slbd.sh
usr/local/bin/athstats
usr/local/bin/beep
usr/local/bin/cpdup
usr/local/bin/gogoc
usr/local/bin/minicron
usr/local/bin/voucher
usr/local/bin/verifysig
usr/local/bin/lua50
usr/local/bin/links
usr/local/bin/php
usr/local/sbin/php-fpm
usr/local/bin/php-cgi
usr/local/bin/radns
usr/local/bin/rrdtool
usr/local/bin/sqlite3
usr/local/bin/zmq_forwarder
usr/local/bin/zmq_streamer
usr/local/bin/zmq_queue
usr/local/sbin/expiretable
usr/local/sbin/dhclient
usr/local/sbin/dhcpleases
usr/local/sbin/dhcpleases6
usr/local/sbin/bpalogin
usr/local/sbin/choparp
usr/local/sbin/dhcpd
usr/local/sbin/pfSctl
usr/local/sbin/dhcrelay
usr/local/sbin/dhcp6c
usr/local/sbin/dnsmasq
usr/local/sbin/igmpproxy
usr/local/sbin/gzsig
usr/local/sbin/filterdns
usr/local/sbin/filterlog
usr/local/sbin/lighttpd
usr/local/sbin/ssh_tunnel_shell
usr/local/sbin/miniupnpd
usr/local/sbin/mpd4
usr/local/sbin/mpd5
usr/local/sbin/openvpn
usr/local/sbin/pftop
usr/local/sbin/haproxy
usr/local/sbin/relayctl
usr/local/sbin/relayd
usr/local/sbin/ipfw-classifyd
usr/local/sbin/sshlockout_pf
usr/local/sbin/wrapresetbtn
usr/local/sbin/alixresetbtn
usr/local/sbin/qstats
usr/local/lib/lighttpd/mod_auth.so
usr/local/lib/lighttpd/mod_proxy.so
usr/local/lib/lighttpd/mod_access.so
usr/local/lib/lighttpd/mod_accesslog.so
usr/local/lib/lighttpd/mod_fastcgi.so
usr/local/lib/lighttpd/mod_cgi.so
usr/local/lib/lighttpd/mod_indexfile.so
usr/local/lib/lighttpd/mod_dirlisting.so
usr/local/lib/lighttpd/mod_staticfile.so
usr/local/lib/lighttpd/mod_expire.so
usr/local/lib/lighttpd/mod_compress.so
usr/local/lib/lighttpd/mod_rewrite.so
usr/local/lib/lighttpd/mod_redirect.so
usr/local/lib/lighttpd/mod_evasive.so
usr/local/lib/php/20121212/apc.so
usr/local/lib/php/20121212/pcre.so
usr/local/lib/php/20121212/bz2.so
usr/local/lib/php/20121212/bcmath.so
usr/local/lib/php/20121212/ctype.so
usr/local/lib/php/20121212/curl.so
usr/local/lib/php/20121212/dom.so
usr/local/lib/php/20121212/gettext.so
usr/local/lib/php/20121212/json.so
usr/local/lib/php/20121212/mbstring.so
usr/local/lib/php/20121212/mcrypt.so
usr/local/lib/php/20121212/hash.so
usr/local/lib/php/20121212/mysql.so
usr/local/lib/php/20121212/openssl.so
usr/local/lib/php/20121212/pfSense.so
usr/local/lib/php/20121212/pcntl.so
usr/local/lib/php/20121212/spl.so
usr/local/lib/php/20121212/pdo.so
usr/local/lib/php/20121212/pdo_sqlite.so
usr/local/lib/php/20121212/posix.so
usr/local/lib/php/20121212/radius.so
usr/local/lib/php/20121212/readline.so
usr/local/lib/php/20121212/session.so
usr/local/lib/php/20121212/shmop.so
usr/local/lib/php/20121212/simplexml.so
usr/local/lib/php/20121212/sockets.so
usr/local/lib/php/20121212/spl.so
usr/local/lib/php/20121212/pdo.so
usr/local/lib/php/20121212/ssh2.so
usr/local/lib/php/20121212/sysvmsg.so
usr/local/lib/php/20121212/sysvsem.so
usr/local/lib/php/20121212/sysvshm.so
usr/local/lib/php/20121212/sqlite3.so
usr/local/lib/php/20121212/suhosin.so
usr/local/lib/php/20121212/tokenizer.so
usr/local/lib/php/20121212/xml.so
usr/local/lib/php/20121212/ldap.so
usr/local/lib/php/20121212/zlib.so
usr/local/lib/php/20121212/xmlreader.so
usr/local/lib/php/20121212/xmlwriter.so
usr/local/lib/php/20121212/xdebug.so
usr/local/lib/php/20121212/zmq.so
usr/local/lib/php/20121212/pdo_pgsql.so
usr/local/lib/php/20121212/ioncube/ioncube_loader.so
usr/local/lib/php/20121212/ioncube/ioncube_loader_ts.so
usr/local/lib/php/20121212/filter.so
usr/local/lib/libmhash.so.2
usr/local/lib/libmcrypt.so.8
usr/local/lib/libltdl.so.7
usr/local/lib/mysql/libmysqlclient.so.15
usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
usr/local/bin/wol
usr/local/sbin/smartctl
usr/local/sbin/smartd
usr/local/share/smartmontools/drivedb.h
usr/local/sbin/ataidle
usr/local/bin/3gstat
boot/modules/bwi_v3_ucode.ko
usr/local/bin/cryptokeytest
usr/local/bin/cryptostats
usr/local/bin/cryptotest
usr/local/bin/hifnstats
usr/local/bin/ipsecstats
usr/local/bin/safestats
usr/local/bin/ubsecstats
usr/local/sbin/cpustats
usr/local/bin/xmllint
usr/share/doc/legal/intel_ipw/LICENSE
usr/share/doc/legal/intel_iwi/LICENSE
usr/share/doc/legal/intel_wpi/LICENSE
usr/local/sbin/ntp-keygen
usr/local/sbin/ntp-wait
usr/local/sbin/ntpd
usr/local/sbin/ntpdate
usr/local/sbin/ntpdc
usr/local/sbin/ntpq
usr/local/sbin/ntptime
usr/local/sbin/ntptrace
usr/local/sbin/sntp
usr/local/sbin/ipfw_context
usr/local/lib/snmp_regex.a
usr/local/lib/snmp_regex.la
usr/local/lib/snmp_regex.so
usr/local/lib/snmp_regex.so.0
usr/local/lib/snmp_ucd.a
usr/local/lib/snmp_ucd.la
usr/local/lib/snmp_ucd.so
usr/local/lib/snmp_ucd.so.1
usr/local/share/certs/ca-root-nss.crt
usr/bin/getopt
usr/sbin/ifmcstat
usr/local/bin/nsupdate
usr/pbi/.pbime
usr/pbi/.pbimount
usr/pbi/.ldconfig
usr/pbi/.pbisyslisten
usr/pbi/.pbisyscmd
usr/pbi/.mount_nullfs
usr/pbi/.pbi-wrapper-amd64
usr/pbi/.pbi-wrapper-i386
usr/local/sbin/pbi_create
usr/local/sbin/pbi_add
usr/local/sbin/pbi_addrepo
usr/local/sbin/pbi_browser
usr/local/sbin/pbi_autobuild
usr/local/sbin/pbi_delete
usr/local/sbin/pbi_deleterepo
usr/local/sbin/pbi_icon
usr/local/sbin/pbi_info
usr/local/sbin/pbi_indextool
usr/local/sbin/pbi_listrepo
usr/local/sbin/pbi_makepatch
usr/local/sbin/pbi_makeport
usr/local/sbin/pbi_makerepo
usr/local/sbin/pbi_metatool
usr/local/sbin/pbi_patch
usr/local/sbin/pbi_update
usr/local/sbin/pbi_update_hashdir
usr/local/sbin/pbi-crashhandler
usr/local/sbin/app
usr/local/sbin/pbi
usr/local/share/pcbsd/scripts/functions.sh
usr/local/sbin/ipsec
usr/local/libexec/ipsec/_copyright
usr/local/libexec/ipsec/_updown
usr/local/libexec/ipsec/_updown_espmark
usr/local/libexec/ipsec/charon
usr/local/libexec/ipsec/starter
usr/local/libexec/ipsec/stroke
usr/local/libexec/ipsec/whitelist
usr/local/lib/ipsec/libcharon.so
usr/local/lib/ipsec/libcharon.so.0
usr/local/lib/ipsec/libhydra.so
usr/local/lib/ipsec/libhydra.so.0
usr/local/lib/ipsec/libradius.so
usr/local/lib/ipsec/libradius.so.0
usr/local/lib/ipsec/libsimaka.so
usr/local/lib/ipsec/libsimaka.so.0
usr/local/lib/ipsec/libstrongswan.so
usr/local/lib/ipsec/libstrongswan.so.0
usr/local/lib/ipsec/libtls.so
usr/local/lib/ipsec/libtls.so.0
usr/local/lib/ipsec/plugins/libstrongswan-addrblock.so
usr/local/lib/ipsec/plugins/libstrongswan-aes.so
usr/local/lib/ipsec/plugins/libstrongswan-attr.so
usr/local/lib/ipsec/plugins/libstrongswan-blowfish.so
usr/local/lib/ipsec/plugins/libstrongswan-cmac.so
usr/local/lib/ipsec/plugins/libstrongswan-constraints.so
usr/local/lib/ipsec/plugins/libstrongswan-curl.so
usr/local/lib/ipsec/plugins/libstrongswan-des.so
usr/local/lib/ipsec/plugins/libstrongswan-dnskey.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-aka-3gpp2.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-aka.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-dynamic.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-identity.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-md5.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-mschapv2.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-peap.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-radius.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-sim-file.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-sim.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-tls.so
usr/local/lib/ipsec/plugins/libstrongswan-eap-ttls.so
usr/local/lib/ipsec/plugins/libstrongswan-fips-prf.so
usr/local/lib/ipsec/plugins/libstrongswan-gmp.so
usr/local/lib/ipsec/plugins/libstrongswan-hmac.so
usr/local/lib/ipsec/plugins/libstrongswan-ipseckey.so
usr/local/lib/ipsec/plugins/libstrongswan-kernel-pfkey.so
usr/local/lib/ipsec/plugins/libstrongswan-kernel-pfroute.so
usr/local/lib/ipsec/plugins/libstrongswan-md4.so
usr/local/lib/ipsec/plugins/libstrongswan-md5.so
usr/local/lib/ipsec/plugins/libstrongswan-nonce.so
usr/local/lib/ipsec/plugins/libstrongswan-openssl.so
usr/local/lib/ipsec/plugins/libstrongswan-pem.so
usr/local/lib/ipsec/plugins/libstrongswan-pgp.so
usr/local/lib/ipsec/plugins/libstrongswan-pkcs1.so
usr/local/lib/ipsec/plugins/libstrongswan-pkcs12.so
usr/local/lib/ipsec/plugins/libstrongswan-pkcs7.so
usr/local/lib/ipsec/plugins/libstrongswan-pkcs8.so
usr/local/lib/ipsec/plugins/libstrongswan-pubkey.so
usr/local/lib/ipsec/plugins/libstrongswan-random.so
usr/local/lib/ipsec/plugins/libstrongswan-rc2.so
usr/local/lib/ipsec/plugins/libstrongswan-resolve.so
usr/local/lib/ipsec/plugins/libstrongswan-revocation.so
usr/local/lib/ipsec/plugins/libstrongswan-sha1.so
usr/local/lib/ipsec/plugins/libstrongswan-sha2.so
usr/local/lib/ipsec/plugins/libstrongswan-socket-default.so
usr/local/lib/ipsec/plugins/libstrongswan-sshkey.so
usr/local/lib/ipsec/plugins/libstrongswan-stroke.so
usr/local/lib/ipsec/plugins/libstrongswan-unbound.so
usr/local/lib/ipsec/plugins/libstrongswan-updown.so
usr/local/lib/ipsec/plugins/libstrongswan-whitelist.so
usr/local/lib/ipsec/plugins/libstrongswan-x509.so
usr/local/lib/ipsec/plugins/libstrongswan-xauth-eap.so
usr/local/lib/ipsec/plugins/libstrongswan-xauth-generic.so
usr/local/lib/ipsec/plugins/libstrongswan-xcbc.so
usr/local/bin/joe
#
# Added 13/10/2014
#
usr/local/bin/lua50c
usr/local/share/gettext/intl/osdep.c
usr/local/bin/gettext.sh
usr/local/share/locale/id/LC_MESSAGES/gettext-runtime.mo
usr/local/lib/lua/5.0/lmime.so
usr/local/share/locale/sl/LC_MESSAGES/gettext-tools.mo
usr/share/dtrace/toolkit/execsnoop
usr/local/bin/pki
usr/local/share/gettext/intl/config.charset
usr/lib/dtrace/ip.d
usr/local/share/dfuibe_lua/install/main.lua
usr/local/share/gettext/po/Makevars.template
usr/local/share/gettext/projects/KDE/trigger
usr/local/share/lua/5.0/app.lua
usr/local/man/man1/envsubst.1.gz
usr/local/share/gettext/intl/ref-del.sin
usr/local/share/dfuibe_lua/configure/400_mount_target_system.lua
usr/local/share/lua/5.0/pty.lua
usr/local/lib/libaura.so.3
usr/local/share/aclocal/iconv.m4
usr/local/share/locale/eu/LC_MESSAGES/gettext-tools.mo
lib/libdtrace.so.2
usr/local/share/locale/et/LC_MESSAGES/gettext-runtime.mo
usr/lib/libzfs.so
usr/local/man/man1/msgen.1.gz
usr/local/share/dfuibe_lua/upgrade/300_select_part.lua
usr/local/bin/msgmerge
usr/local/share/dfuibe_lua/configure/550_write_configuration.lua
usr/local/share/dfuibe_lua/upgrade/600_unmount_target_system.lua
usr/local/bin/autopoint
usr/local/man/man3/ngettext.3.gz
usr/local/share/gettext/intl/vasnwprintf.h
usr/local/share/locale/zh_TW/LC_MESSAGES/gettext-tools.mo
usr/local/share/gettext/intl/COPYING.LIB
usr/local/share/locale/nb/LC_MESSAGES/gettext-runtime.mo
usr/local/share/gettext/intl/localename.c
usr/local/share/gettext/intl/loadmsgcat.c
usr/local/share/locale/ja/LC_MESSAGES/gettext-tools.mo
usr/bin/zinject
usr/local/man/man1/msgfmt.1.gz
usr/local/share/gettext/intl/version.c
usr/local/share/gettext/po/insert-header.sin
usr/local/share/gettext/intl/ChangeLog
usr/local/share/gettext/config.rpath
usr/local/lib/libgettextsrc.so
lib/libzpool.so.2
usr/local/share/aclocal/wint_t.m4
usr/local/share/dfuibe_lua/install/100_welcome.lua
usr/local/share/aclocal/lib-ld.m4
usr/local/share/locale/da/LC_MESSAGES/gettext-runtime.mo
usr/local/share/locale/gl/LC_MESSAGES/gettext-tools.mo
usr/local/share/dfuibe_lua/upgrade/500_perform_upgrade.lua
usr/local/share/gettext/styles/po-emacs-xterm.css
usr/local/share/aclocal/intdiv0.m4
usr/local/share/gettext/intl/xsize.h
usr/local/share/gettext/intl/xsize.c
usr/local/lib/lua/5.0/lcurses.so
boot/kernel/sfxge.ko.symbols
usr/local/bin/msggrep
usr/local/share/dfuibe_lua/lib/storage.lua
usr/local/www/fred.png
usr/local/share/dfuibe_lua/configure/menu/100_set_root_password.lua
usr/local/share/dfuife_curses/fred.txt
usr/local/share/locale/nl/LC_MESSAGES/gettext-runtime.mo
usr/local/bin/msgconv
usr/local/share/gettext/styles/po-emacs-x.css
usr/local/share/dfuibe_lua/600_upgrade.lua
boot/gptzfsboot
usr/local/share/locale/nn/LC_MESSAGES/gettext-runtime.mo
usr/local/lib/libintl.a
usr/local/lib/libgettextpo.a
usr/local/man/man1/gettextize.1.gz
lib/libavl.so.2
usr/local/share/dfuibe_lua/configure/300_select_part.lua
usr/local/share/dfuibe_lua/configure/menu/400_change_console_settings.lua
usr/local/share/dfuibe_lua/configure/main.lua
usr/lib/libzpool.so
usr/local/share/locale/en@quot/LC_MESSAGES/gettext-runtime.mo
usr/share/dtrace/toolkit/hotkernel
usr/local/lib/lua/5.0/lposix.so
usr/local/man/man3/dcgettext.3.gz
usr/local/lib/libaura.a
usr/local/share/locale/cs/LC_MESSAGES/gettext-tools.mo
usr/lib32/libutil.so.9
usr/local/share/locale/tr/LC_MESSAGES/gettext-tools.mo
usr/local/share/gettext/intl/gmo.h
usr/local/share/aclocal/intldir.m4
usr/local/lib/libdfui.so
usr/local/share/locale/sk/LC_MESSAGES/gettext-tools.mo
usr/local/share/locale/ko/LC_MESSAGES/gettext-tools.mo
usr/local/share/gettext/archive.dir.tar.xz
usr/local/bin/msgexec
usr/local/share/gettext/intl/tsearch.c
usr/local/share/gettext/intl/tsearch.h
usr/local/share/gettext/intl/hash-string.c
usr/local/share/gettext/intl/hash-string.h
usr/local/share/dfuibe_lua/install/270_install_bootblocks.lua
usr/local/share/gettext/intl/printf-args.h
usr/local/share/gettext/intl/printf-args.c
usr/local/www/dfly-pg.gif
usr/local/man/man3/bind_textdomain_codeset.3.gz
usr/local/info/autosprintf.info
lib/libzfs.so.2
usr/local/include/dfui/lang.h
usr/local/share/lua/5.0/curses.lua
usr/lib/libzpool.a
usr/local/share/lua/5.0/ftp.lua
usr/local/share/locale/es/LC_MESSAGES/gettext-tools.mo
usr/lib/libavl.so
usr/local/bin/gettextize
usr/local/man/man3/dngettext.3.gz
usr/local/share/dfuibe_lua/configure/600_unmount_target_system.lua
usr/local/share/gettext/intl/localealias.c
usr/lib/libctf.so
usr/local/share/locale/ja/LC_MESSAGES/gettext-runtime.mo
usr/local/share/locale/ca/LC_MESSAGES/gettext-runtime.mo
usr/local/share/gettext/intl/langprefs.c
usr/local/share/locale/zh_CN/LC_MESSAGES/gettext-runtime.mo
usr/local/share/dfuibe_lua/configure/200_select_disk.lua
usr/local/share/aclocal/intmax.m4
usr/local/share/gettext/projects/TP/teams.url
usr/local/share/locale/en@boldquot/LC_MESSAGES/gettext-runtime.mo
usr/local/include/libintl.h
usr/local/sbin/dfuife_curses
usr/local/share/locale/ga/LC_MESSAGES/gettext-runtime.mo
usr/local/share/dfuibe_lua/install/200_select_disk.lua
usr/local/share/gettext/intl/relocatable.h
usr/local/share/gettext/intl/relocatable.c
usr/local/share/dfuibe_lua/pit/050_welcome.lua
usr/local/share/locale/be/LC_MESSAGES/gettext-tools.mo
usr/local/share/locale/en@boldquot/LC_MESSAGES/gettext-tools.mo
usr/lib/libnvpair.so
usr/local/bin/envsubst
usr/local/share/locale/pt/LC_MESSAGES/gettext-tools.mo
usr/local/man/man1/autopoint.1.gz
usr/local/share/dfuibe_lua/install/250_partition_disk.lua
usr/local/share/gettext/intl/os2compat.h
usr/local/share/gettext/intl/os2compat.c
usr/local/man/man1/msgcomm.1.gz
usr/local/share/dfuibe_lua/lib/cmdchain.lua
usr/local/bin/msgfmt
usr/bin/ctfdump
usr/local/share/dfuibe_lua/upgrade/400_mount_target_system.lua
usr/local/share/gettext/projects/GNOME/team-address
usr/local/lib/libgettextpo.so.5
usr/local/share/dfuibe_lua/lib/network.lua
usr/local/share/aclocal/progtest.m4
usr/local/share/aclocal/size_max.m4
usr/local/share/locale/gl/LC_MESSAGES/gettext-runtime.mo
usr/local/share/aclocal/codeset.m4
usr/local/lib/libdfui.so.4
usr/local/share/gettext/intl/bindtextdom.c
usr/local/share/locale/fr/LC_MESSAGES/gettext-tools.mo
usr/local/share/gettext/intl/ngettext.c
usr/local/bin/recode-sr-latin
usr/local/share/gettext/intl/dngettext.c
usr/local/share/gettext/msgunfmt.tcl
usr/local/share/lua/5.0/compat-5.1.lua
usr/local/share/gettext/styles/po-emacs-xterm256.css
usr/bin/zstreamdump
usr/local/share/aclocal/gettext.m4
usr/local/share/aclocal/lib-prefix.m4
usr/local/share/locale/uk/LC_MESSAGES/gettext-tools.mo
usr/local/share/dfuibe_lua/configure/500_menu.lua
usr/local/share/dfuibe_lua/lib/package_ui.lua
usr/local/include/dfui/dfui.h
usr/local/share/gettext/po/boldquot.sed
usr/local/man/man1/ngettext.1.gz
usr/lib/libuutil.so
usr/share/dtrace/toolkit/procsystime
usr/local/lib/libgettextsrc-0.18.3.so
usr/local/share/locale/de/LC_MESSAGES/gettext-runtime.mo
usr/bin/sgsmsg
usr/local/share/gettext/projects/team-address
usr/local/share/dfuibe_lua/lib/target_system_ui.lua
usr/local/share/locale/sl/LC_MESSAGES/gettext-runtime.mo
usr/local/share/lua/5.0/posix.lua
var/log/ppp.log
usr/local/share/gettext/projects/KDE/teams.url
usr/local/man/man3/textdomain.3.gz
usr/local/share/gettext/intl/intl-exports.c
usr/local/share/aclocal/visibility.m4
usr/local/share/aclocal/po.m4
usr/lib/libnvpair.a
usr/lib/libzfs_core.so
usr/local/share/locale/uk/LC_MESSAGES/gettext-runtime.mo
usr/local/share/locale/it/LC_MESSAGES/gettext-tools.mo
usr/local/share/dfuibe_lua/configure/menu/500_install_packages.lua
usr/local/bin/msginit
usr/lib/dtrace/psinfo.d
usr/local/share/gettext/intl/libintl.rc
usr/local/share/locale/nn/LC_MESSAGES/gettext-tools.mo
usr/local/include/aura/popen.h
usr/local/lib/libgettextlib.la
usr/local/lib/libintl.la
usr/local/share/locale/ro/LC_MESSAGES/gettext-tools.mo
sbin/zpool
boot/kernel/opensolaris.ko
usr/local/share/gettext/intl/localcharset.h
usr/local/share/gettext/intl/localcharset.c
usr/local/share/locale/vi/LC_MESSAGES/gettext-tools.mo
usr/local/share/gettext/intl/plural.y
usr/local/share/gettext/intl/setlocale.c
usr/local/share/gettext/intl/plural.c
usr/local/share/gettext/projects/KDE/team-address
usr/lib/libumem.so
usr/local/share/locale/sr/LC_MESSAGES/gettext-tools.mo
usr/local/share/gettext/projects/GNOME/teams.html
usr/lib/dtrace/tcp.d
usr/local/bin/ngettext
usr/local/share/dfuibe_lua/conf/BSDInstaller.lua
usr/local/share/dfuibe_lua/lib/target_system.lua
usr/bin/ctfmerge
usr/local/share/aclocal/glibc21.m4
usr/local/share/dfuibe_lua/configure/menu/300_set_timezone.lua
usr/local/share/locale/el/LC_MESSAGES/gettext-tools.mo
usr/local/share/locale/pt_BR/LC_MESSAGES/gettext-tools.mo
usr/local/share/dfuibe_lua/lib/menu.lua
usr/local/include/aura/dict.h
usr/local/share/dfuibe_lua/pit/150_configure_console.lua
usr/local/share/aclocal/printf-posix.m4
usr/local/share/gettext/intl/Makefile.in
usr/local/share/gettext/intl/lock.c
usr/local/share/gettext/intl/lock.h
usr/local/share/gettext/ABOUT-NLS
usr/local/lib/libasprintf.so
usr/local/share/locale/sv/LC_MESSAGES/gettext-tools.mo
usr/share/dtrace/toolkit/opensnoop
usr/local/share/dfuibe_lua/800_netboot.lua
usr/local/share/dfuibe_lua/lib/flow.lua
usr/local/share/dfuibe_lua/upgrade/550_upgrade_configuration.lua
usr/local/lib/libasprintf.so.0
usr/local/share/aclocal/stdint_h.m4
usr/local/share/locale/vi/LC_MESSAGES/gettext-runtime.mo
usr/local/bin/msgfilter
usr/lib/libavl.a
usr/local/man/man1/msgfilter.1.gz
usr/local/share/lua/5.0/ltn12.lua
usr/local/share/dfuibe_lua/install/220_format_disk.lua
usr/local/share/gettext/intl/plural-exp.h
usr/local/share/gettext/intl/plural-exp.c
usr/local/share/dfuibe_lua/install/405_warn_omitted_subparts.lua
usr/local/share/locale/ko/LC_MESSAGES/gettext-runtime.mo
usr/local/share/dfuibe_lua/upgrade/main.lua
usr/local/share/dfuibe_lua/configure/menu/main.lua
usr/local/www/dfuife.cgi
usr/local/share/dfuibe_lua/configure/menu/350_set_datetime.lua
usr/local/share/locale/cs/LC_MESSAGES/gettext-runtime.mo
usr/local/share/dfuibe_lua/netboot/main.lua
usr/local/man/man1/msgcmp.1.gz
usr/local/lib/gettext/project-id
usr/local/bin/msgen
lib/libnvpair.so.2
usr/local/share/dfuibe_lua/lib/storage_ui.lua
usr/sbin/lockstat
lib/libctf.so.2
usr/local/share/gettext/styles/po-emacs-xterm16.css
usr/lib32/libc.so.7
usr/local/share/gettext/po/remove-potcdate.sin
usr/local/share/locale/tr/LC_MESSAGES/gettext-runtime.mo
usr/local/share/aclocal/fcntl-o.m4
usr/local/share/gettext/intl/locale.alias
usr/local/include/dfui/dump.h
usr/local/share/locale/ru/LC_MESSAGES/dfuife_curses.mo
etc/periodic/daily/404.status-zfs
usr/local/share/gettext/po/en@quot.header
usr/local/share/locale/ca/LC_MESSAGES/gettext-tools.mo
usr/local/share/lua/5.0/mime.lua
lib/libzfs_core.so.2
usr/local/share/dfuibe_lua/main.lua
usr/local/www/dfuife.css
usr/local/share/gettext/intl/gettextP.h
usr/local/share/locale/es/LC_MESSAGES/gettext-runtime.mo
usr/local/share/dfuibe_lua/netboot/500_setup_server.lua
usr/local/share/gettext/intl/log.c
usr/local/share/locale/be/LC_MESSAGES/gettext-runtime.mo
usr/local/share/gettext/projects/TP/trigger
usr/local/share/lua/5.0/filename.lua
usr/local/share/locale/ru/LC_MESSAGES/gettext-tools.mo
usr/local/share/locale/bg/LC_MESSAGES/gettext-tools.mo
usr/lib/dtrace/udp.d
usr/local/share/dfuibe_lua/lib/network_ui.lua
usr/lib/dtrace/regs_x86.d
usr/local/share/aclocal/inttypes-pri.m4
usr/local/share/aclocal/glibc2.m4
usr/local/bin/msgattrib
usr/local/share/dfuibe_lua/install/800_finished.lua
usr/lib/libdtrace.a
usr/local/share/gettext/projects/TP/team-address
usr/local/lib/libintl.so
usr/local/www/index.html
usr/local/share/lua/5.0/tp.lua
lib/libumem.so.2
usr/local/man/man1/msggrep.1.gz
usr/local/share/aclocal/uintmax_t.m4
usr/local/share/locale/zh_CN/LC_MESSAGES/gettext-tools.mo
usr/local/share/gettext/intl/verify.h
usr/lib/dtrace/signal.d
usr/local/share/gettext/intl/dcigettext.c
usr/local/bin/msgcat
usr/local/lib/gettext/hostname
usr/local/lib/libgettextpo.la
usr/local/lib/libgettextlib-0.18.3.so
usr/local/lib/libaura.so
usr/local/lib/libgettextsrc.la
usr/local/lib/libgettextpo.so
usr/local/share/dfuibe_lua/install/300_select_part.lua
usr/local/share/aclocal/lock.m4
usr/local/share/locale/locale.alias
usr/local/share/dfuibe_lua/lib/configvars.lua
usr/lib/libzfs_core.a
usr/local/share/dfuibe_lua/install/450_select_packages.lua
usr/local/man/man1/msginit.1.gz
usr/local/share/gettext/javaversion.class
usr/local/share/dfuibe_lua/install/407_create_subparts.lua
usr/local/share/locale/nl/LC_MESSAGES/gettext-tools.mo
usr/local/share/dfuibe_lua/install/410_select_additional_filesystems.lua
usr/local/share/locale/sv/LC_MESSAGES/gettext-runtime.mo
usr/sbin/dtruss
usr/local/share/lua/5.0/smtp.lua
usr/local/share/locale/it/LC_MESSAGES/gettext-runtime.mo
usr/local/lib/gettext/user-email
usr/local/share/dfuibe_lua/install/420_preselect_packages.lua
usr/local/share/aclocal/nls.m4
boot/kernel/zfs.ko
usr/local/share/lua/5.0/http.lua
usr/local/share/gettext/intl/export.h
usr/local/share/locale/sr/LC_MESSAGES/gettext-runtime.mo
usr/local/lib/gettext/urlget
usr/lib/dtrace/drti.o
usr/local/share/gettext/intl/explodename.c
usr/local/share/dfuibe_lua/install/500_install_os.lua
usr/local/bin/msgcomm
usr/local/share/locale/pa/LC_MESSAGES/gettext-tools.mo
usr/local/share/gettext/po/Makefile.in.in
usr/local/lib/libdfui.a
usr/local/bin/msgcmp
usr/local/share/gettext/intl/l10nflist.c
usr/local/share/gettext/intl/eval-plural.h
usr/local/share/gettext/intl/textdomain.c
usr/local/share/locale/zh_HK/LC_MESSAGES/gettext-runtime.mo
usr/local/man/man1/msgmerge.1.gz
usr/local/share/gettext/intl/printf-parse.h
usr/local/share/gettext/intl/printf-parse.c
usr/local/share/locale/pl/LC_MESSAGES/gettext-runtime.mo
usr/sbin/dtrace
usr/bin/ctfconvert
usr/local/share/gettext/styles/po-vim.css
usr/local/share/dfuibe_lua/pit/100_select_language.lua
usr/local/share/aclocal/intl.m4
usr/lib/libdtrace.so
usr/local/share/dfuibe_lua/lib/uinav.lua
usr/local/lib/liblualib50.so
usr/local/share/gettext/intl/threadlib.c
usr/local/info/gettext.info
usr/local/share/dfuibe_lua/configure/450_init_configuration.lua
usr/sbin/zdb
usr/local/share/locale/et/LC_MESSAGES/gettext-tools.mo
usr/local/share/locale/hr/LC_MESSAGES/gettext-runtime.mo
usr/local/share/gettext/gettext.h
usr/local/share/gettext/projects/TP/teams.html
usr/local/share/gettext/intl/wprintf-parse.h
usr/local/share/lua/5.0/dfui.lua
usr/local/lib/libgettextlib.so
usr/local/include/autosprintf.h
usr/local/include/gettext-po.h
usr/local/bin/lua50c51
usr/local/lib/libasprintf.a
usr/local/share/aclocal/lib-link.m4
usr/local/share/dfuibe_lua/pit/400_load_kernel_modules.lua
usr/local/man/man3/dcngettext.3.gz
usr/local/man/man1/recode-sr-latin.1.gz
usr/local/share/locale/eo/LC_MESSAGES/gettext-runtime.mo
usr/local/share/gettext/po/Rules-quot
usr/local/share/locale/de/LC_MESSAGES/gettext-tools.mo
usr/local/share/dfuibe_lua/conf/OpenBSD.lua
usr/local/share/dfuibe_lua/400_configure.lua
usr/local/share/dfuibe_lua/install/900_reboot.lua
usr/local/share/gettext/styles/po-default.css
usr/local/share/locale/id/LC_MESSAGES/gettext-tools.mo
usr/local/include/aura/buffer.h
usr/local/share/gettext/intl/gettext.c
usr/local/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo
usr/local/share/gettext/intl/finddomain.c
usr/local/share/dfuibe_lua/lib/bitwise.lua
usr/local/share/gettext/projects/index
usr/local/share/aclocal/xsize.m4
usr/local/share/aclocal/intlmacosx.m4
usr/local/man/man3/gettext.3.gz
usr/lib/libzfs.a
usr/local/bin/msgunfmt
usr/local/share/lua/5.0/gettext.lua
usr/local/lib/libasprintf.la
usr/local/man/man1/xgettext.1.gz
usr/local/man/man3/bindtextdomain.3.gz
usr/local/share/locale/sk/LC_MESSAGES/gettext-runtime.mo
usr/local/share/dfuibe_lua/upgrade/100_begin_upgrade.lua
usr/local/share/locale/fi/LC_MESSAGES/gettext-runtime.mo
usr/local/share/aclocal/inttypes_h.m4
usr/local/share/dfuibe_lua/install/400_select_subparts.lua
usr/local/man/man1/msgcat.1.gz
usr/local/share/gettext/projects/GNOME/teams.url
usr/local/share/dfuibe_lua/configure/100_choose_where_from.lua
usr/local/include/dfui/system.h
usr/local/share/locale/fi/LC_MESSAGES/gettext-tools.mo
usr/local/lib/liblua50.so
usr/local/share/gettext/intl/vasnprintf.c
usr/local/share/gettext/intl/vasnprintf.h
usr/local/lib/lua/5.0/lpty.so
usr/local/share/locale/nb/LC_MESSAGES/gettext-tools.mo
usr/local/share/locale/ru/LC_MESSAGES/dfuibe_lua.mo
sbin/zfs
usr/local/share/locale/fr/LC_MESSAGES/gettext-runtime.mo
usr/local/share/locale/bg/LC_MESSAGES/gettext-runtime.mo
usr/local/include/aura/fspred.h
usr/local/share/gettext/intl/intl-compat.c
usr/local/share/gettext/projects/GNOME/trigger
usr/local/share/locale/en@quot/LC_MESSAGES/gettext-tools.mo
usr/local/lib/lua/5.0/lgettext.so
usr/local/share/aclocal/wchar_t.m4
usr/local/share/gettext/intl/dcngettext.c
usr/local/share/dfuibe_lua/lib/package.lua
usr/local/include/aura/mem.h
usr/local/share/locale/pt/LC_MESSAGES/gettext-runtime.mo
usr/local/share/dfuibe_lua/install/490_confirm_install_os.lua
usr/local/share/lua/5.0/transceiver.lua
usr/lib/libctf.a
boot/zfsloader
usr/local/share/gettext/po/quot.sed
usr/local/man/man1/msgexec.1.gz
usr/local/share/gettext/intl/ref-add.sin
lib/libuutil.so.2
usr/local/share/dfuibe_lua/conf/NetBSD.lua
usr/local/share/locale/zh_TW/LC_MESSAGES/gettext-runtime.mo
usr/lib/libuutil.a
usr/local/share/dfuibe_lua/pit/main.lua
usr/local/share/gettext/intl/dgettext.c
usr/lib/dtrace/errno.d
usr/local/share/dfuibe_lua/pit/800_configure_network.lua
usr/local/man/man1/msgunfmt.1.gz
usr/local/share/aclocal/longlong.m4
usr/local/share/locale/el/LC_MESSAGES/gettext-runtime.mo
usr/local/share/dfuibe_lua/upgrade/200_select_disk.lua
usr/local/share/locale/pl/LC_MESSAGES/gettext-tools.mo
usr/sbin/zhack
usr/local/share/locale/ro/LC_MESSAGES/gettext-runtime.mo
usr/local/bin/gettext
usr/local/share/dfuibe_lua/conf/FreeBSD.lua
usr/local/man/man1/msgconv.1.gz
usr/local/man/man1/msgattrib.1.gz
usr/lib/libumem.a
usr/local/share/gettext/intl/printf.c
usr/local/share/gettext/intl/dcgettext.c
usr/local/share/dfuibe_lua/configure/menu/550_remove_packages.lua
usr/lib/dtrace/io.d
usr/local/share/locale/ru/LC_MESSAGES/gettext-runtime.mo
etc/periodic/daily/800.scrub-zfs
usr/local/share/dfuibe_lua/conf/DragonFly.lua
usr/local/man/man1/gettext.1.gz
usr/local/bin/msguniq
boot/zfsboot
usr/local/lib/lua/5.0/lsocket.so
usr/local/lib/lua/5.0/ldfui.so
usr/local/share/gettext/intl/VERSION
usr/local/share/gettext/po/en@boldquot.header
usr/share/dtrace/toolkit/hotuser
usr/local/share/gettext/intl/libgnuintl.in.h
usr/local/share/locale/da/LC_MESSAGES/gettext-tools.mo
usr/local/share/dfuibe_lua/configure/menu/200_add_user.lua
usr/local/www/dfuife.js
sbin/setkey
usr/local/share/lua/5.0/url.lua
usr/local/share/aclocal/lcmessage.m4
usr/local/share/gettext/intl/loadinfo.h
usr/local/share/lua/5.0/socket.lua
usr/local/share/aclocal/threadlib.m4
usr/local/man/man1/msguniq.1.gz
usr/lib/dtrace/unistd.d
usr/local/bin/xgettext
usr/local/man/man3/dgettext.3.gz
usr/bin/ztest
usr/local/www/fred-bg.gif
usr/local/share/gettext/projects/KDE/teams.html
usr/local/bin/ipmitool
usr/local/bin/python2.7-config
usr/local/bin/python2.7
usr/local/bin/python
usr/local/lib/python2.7

View File

@ -0,0 +1,10 @@
/usr/local/sbin/portmaster /usr/ports/ports-mgmt/portmaster
/usr/local/bin/mkisofs /usr/ports/sysutils/cdrtools
/usr/local/lib/libpcre.so.3 /usr/ports/devel/pcre
/usr/local/bin/curl /usr/ports/ftp/curl
/usr/local/bin/rsync /usr/ports/net/rsync
/usr/local/bin/cpdup /usr/ports/sysutils/cpdup
/usr/local/bin/git /usr/ports/devel/git
/usr/local/bin/screen /usr/ports/sysutils/screen
/usr/local/bin/openssl /usr/ports/security/openssl
#/usr/local/bin/qemu-img /usr/ports/emulators/qemu

218
conf/kernel/opnsense_SMP.10 Executable file
View File

@ -0,0 +1,218 @@
include GENERIC
options KDB
nooptions KDB_TRACE
options DDB # Support DDB.
nooptions GDB # Support remote GDB.
nooptions DEADLKRES
nooptions INVARIANTS
nooptions INVARIANT_SUPPORT
nooptions WITNESS
nooptions WITNESS_SKIPSPIN
nooptions MALLOC_DEBUG_MAXZONES
nomakeoptions DEBUG
#makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
ident pfSense8_SMP
nooptions MAC # TrustedBSD MAC Framework
nooptions COMPAT_43TTY # BSD 4.3 TTY compat (sgtty)
nooptions COMPAT_FREEBSD4 # Compatible with FreeBSD4
nooptions COMPAT_FREEBSD5 # Compatible with FreeBSD5
nooptions COMPAT_FREEBSD6 # Compatible with FreeBSD6
nooptions FLOWTABLE
nooptions SCHED_4BSD
options SCHED_ULE # add inULE scheduler
# IPSEC filtering interface
device enc
options GEOM_MIRROR
options GEOM_UZIP
options GEOM_LABEL
nooption GEOM_MBR
options GEOM_PART_MBR
options GEOM_PART_BSD
options GEOM_ELI
options GEOM_BDE
# Need for LiveCD's
options CD9660
# Wireless
device wlan
device wlan_wep
device wlan_ccmp
device wlan_tkip
device wlan_xauth
device wlan_acl
device wlan_amrr
device iwi # Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 driver
device ipw # Intel PRO/Wireless 2100 IEEE 802.11 driver
device ipwfw # Firmware for Intel PRO/Wireless 2100 IEEE 802.11 driver
device wpi # Intel 3945ABG Wireless LAN IEEE 802.11 driver
device wpifw # Firmware for Intel 3945ABG Wireless LAN IEEE 802.11 driver
device iwn # Intel Wireless WiFi Link 4965AGN IEEE 802.11n driver
device iwnfw # Firmware for Intel Wireless WiFi Link 4965AGN IEEE 802.11n driver
device alc # Atheros IEEE 802.11 wireless network driver
device ath # Atheros IEEE 802.11 wireless network driver
device ath_hal
options AH_SUPPORT_AR5416
device ath_rate_sample
device uath # Atheros USB IEEE 802.11a/b/g wireless network device
device an # Aironet 4500/4800 802.11 wireless NICs.
device ral # Ralink Technology RT2500 wireless NICs.
device ralfw # Firmware for Ralink Technology RT2500 wireless NICs.
device ural # Ralink Technology RT2500USB IEEE 802.11 driver
device urtw # Realtek RTL8187B/L USB IEEE 802.11b/g wireless network device
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
device rum # Ralink Technology USB IEEE 802.11a/b/g wireless network device
device mwl # Marvell 88W8363 IEEE 802.11n wireless network driver
device mwlfw # Firmware for Marvell 88W8363 IEEE 802.11n wireless network driver
device zyd # ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless network device
device malo # Marvell Libertas IEEE 802.11b/g wireless network driver
device upgt # Conexant/Intersil PrismGT SoftMAC USB IEEE 802.11b/g wireless
device bwi # Broadcom BCM43xx IEEE 802.11b/g wireless network driver
# Only for 8.1+
device siba_bwn # Broadcom BCM43xx IEEE 802.11b/g wireless network driver
device bwn # Broadcom BCM43xx IEEE 802.11b/g wireless network driver
device run # Ralink RT2700U/RT2800U/RT3000U USB 802.11agn
options UNIONFS # Union filesystem
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT
device bpf
device carp
device pf
device pflog
device pfsync
device vlan
device gre
options IPSTEALTH
options INCLUDE_CONFIG_FILE
options NETGRAPH #netgraph(4) system
options NETGRAPH_VLAN
options NETGRAPH_L2TP
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_BRIDGE
options NETGRAPH_CISCO
options NETGRAPH_ECHO
options NETGRAPH_ETHER
options NETGRAPH_FRAME_RELAY
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_EIFACE
options NETGRAPH_KSOCKET
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
options NETGRAPH_TCPMSS
options NETGRAPH_PIPE
options NETGRAPH_CAR
options NETGRAPH_DEFLATE
options NETGRAPH_PRED1
# 3G devices
device ubsa
device ufoma
#device umsm
device ucom
device uplcom
device ubsa
device umct
device uvisor
device uark
device uftdi
device uvscom
device umodem
device ufoma
device u3g
device ucom
options IPSEC
options IPSEC_NAT_T
options TCP_SIGNATURE #include support for RFC 2385
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
# Bridging
device if_bridge
# Squid related settings
options MSGMNB=8192 # max # of bytes in a queue
options MSGMNI=40 # number of message queue identifiers
options MSGSEG=512 # number of message segments per queue
options MSGSSZ=32 # size of a message segment
options MSGTQL=2048 # max messages in system
device tap
device hme
# Needed for FreeSBIE 2
options NULLFS
device speaker
options DEVICE_POLLING
device lagg
options MROUTING
# Additional cards
device bktr # bktr -- Brooktree Bt848/849/878/879 and Pinnacle PCTV video capture
device ale # ale -- Atheros AR8121/AR8113/AR8114 Gigabit/Fast Ethernet driver
device safe # safe -- SafeNet crypto accelerator
device et # et(4) for AGERE ET1310 fastE and gigE
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device mxge # mxge - Myricom Myri10GE 10 Gigabit Ethernet adapter driver
device cxgb # cxgb -- Chelsio T3 10 Gigabit Ethernet adapter driver
device igb # igb -- Intel(R) PRO/1000 PCI Express Gigabit Ethernet adapter driver
device ixgbe # http://www.nabble.com/kern-130476:-Error-in-compiling-kernel-with-device-ixgbe-td21424560.html
device ae # ae -- Attansic/Atheros L2 FastEthernet controller driver
device cas # Sun Cassini/Cassini+ and National Semiconductor DP83065 Saturn
device crypto # core crypto support
device cryptodev # /dev/crypto for access to h/w
device hifn # Hifn 7951, 7781, etc.
device ubsec # Broadcom 5501, 5601, 58xx
device udav # Davicom DM9601 USB Ethernet driver
#options HIFN_DEBUG # enable debugging support: hw.hifn.debug
#options HIFN_RNDTEST # enable rndtest support
#device rndtest # FIPS 140-2 entropy tester
options IPSEC_NAT_T
#options ALTQ_FAIRQ
options COMPAT_FREEBSD7
#options PRINTF_BUFR_SIZE # fights garble printf on shutdown
#options FLOWTABLE
device padlock
options PPS_SYNC
options TCP_SIGNATURE

View File

@ -0,0 +1,67 @@
~~~/sys/contrib/pf/net/pf_ftp.c~
~~~/usr.sbin/syslogd/clog.h~
~~~/sbin/ifconfig/ifstf.c~
-p1~~altq_max_queues.diff~
-p1~~dscp.RELENG_10.diff~
-p1~~hfscconfig.RELENG_10.diff~
-p1~~get_tag_altq_ids.RELENG_10.diff~
-p1~~reply-to.RELENG_10.diff~
-p1~~binat.RELENG_10.diff~
-p1~~pfil.RELENG_10.diff~
-p1~~ipfw_dummynet_bandwidth.diff~
-p1~~ng_iface.RELENG_10.diff~
-p1~~ng_eiface.RELENG_10.diff~
-p1~~lib386boot.diff~
-p1~~syslogd.c.diff~
-p1~~if_ethersubr.c.diff~
-p1~~ip_carp.c.diff~
-p1~~wpa_correct_mac_address.RELENG_10.diff~
-p1~~ng_ether_attach_command.diff~
-p1~~carp_correct_mac.diff~
-p1~~pfvar_addr_compare.RELENG_10.diff~
-p1~~carp_replay_protection.diff~
-p1~~if_bridge_gif_mtu.diff~
-p1~~pfaltq_interface_bw.diff~
-p1~~scrub_FIN+SYN_drop.diff~
-p1~~ifqueue_maxlen.diff~
-p1~~netisr_default_values.diff~
-p1~~ip_dstchng_fix.diff~
-p1~~if_pfsync.diff~
-p1~~route.diff~
-p1~~tun_optimization.diff~
~~pam_remove_nullok.diff~
~~beastie.4th.diff~
~~menu-commands.4th.diff~
~~brand.4th.diff~
~~loader.conf.diff~
-p1~~pf_tags_alloc.diff~
-p1~~sfxge_compile_i386.diff~
-p1~~set_ifaddr_first.diff~
#-p1~~CP_multi_instance_ipfw.diff~
#~~menu.4th.diff~
#~~openssl_head.tgz~
#~~~/sbin/ipfw/context.c~
#-p1~~pf_route_to_daemon_friendly.RELENG_10.diff~
#-p1~~dummynet.RELENG_10.diff~
#-p1~~schedule_label.RELENG_10.diff~
#-p1~~fairq.RELENG_10.diff~
#-p1~~netstat_ifname_size.diff~
#-p1~~route-to_without_gw.diff~
#-p1~~carp_livelock_fixes.diff~
#-p1~~pf_match.diff~
#-p1~~pf_stickies_fix2.diff~
#-p1~~pf_802.1p.diff~
#-p1~~divert.RELENG_10.diff~
#-p1~~CP_speedup.diff~
#-p1~~stf_6rd.diff~
#-p1~~ipsec_improvement.diff~
#-p1~~IPSEC_sysctl.RELENG_10.diff~
#-p1~~altq_codel.diff~
#-p1~~killifstates.RELENG_10.diff~
#-p1~~pf_static_tracker.diff~
#-p1~~ipsec_altq.RELENG_10.diff~
#~~~/sys/contrib/altq/altq/altq_fairq.h~
#~~~/sys/contrib/altq/altq/altq_fairq.c~
#~~~/sys/contrib/altq/altq/altq_codel.h~
#~~~/sys/contrib/altq/altq/altq_codel.c~
#~~makefile.inc1.diff~

109
conf/ports/buildports Normal file
View File

@ -0,0 +1,109 @@
docbook /usr/ports/textproc/docbook /usr/local/share/xml/docbook/xhtml/docbook.xsl
docbook-xsl /usr/ports/textproc/docbook-xsl /usr/local/share/xsl/docbook/xhtml/docbook.xsl
#COMPATpfflowd-0.8 /usr/ports/net/pfflowd-0.8 /usr/local/sbin/pfflowd
strongswan /usr/ports/security/strongswan /usr/local/sbin/ipsec
#COMPATopeniked /usr/ports/security/openiked /usr/local/sbin/iked
ipfw-classifyd /usr/ports/net/ipfw-classifyd /usr/local/sbin/ipfw-classifyd
dhcpleases /usr/ports/sysutils/dhcpleases /usr/local/sbin/dhcpleases
dhcpleases6 /usr/ports/sysutils/dhcpleases6 /usr/local/sbin/dhcpleases6
filterdns /usr/ports/net/filterdns /usr/local/sbin/filterdns
apinger /usr/ports/net/apinger /usr/local/sbin/apinger
rrdtool12 /usr/ports/databases/rrdtool12 /usr/local/bin/rrdtool
cpdup /usr/ports/sysutils/cpdup /usr/local/bin/cpdup
cpustats /usr/ports/sysutils/cpustats /usr/local/sbin/cpustats
beep /usr/ports/audio/beep /usr/local/bin/beep
choparp /usr/ports/net-mgmt/choparp /usr/local/sbin/choparp
dnsmasq /usr/ports/dns/dnsmasq /usr/local/sbin/dnsmasq
expiretable /usr/ports/security/expiretable /usr/local/sbin/expiretable
ifstated /usr/ports/net/ifstated /usr/local/sbin/ifstated
igmpproxy /usr/ports/net/igmpproxy /usr/local/sbin/igmpproxy
bind /usr/ports/dns/bind99 /usr/local/bin/nsupdate
isc-dhcp42-server /usr/ports/net/isc-dhcp42-server /usr/local/sbin/dhcpd
isc-dhcp42-client /usr/ports/net/isc-dhcp42-client /usr/local/sbin/dhclient
isc-dhcp42-relay /usr/ports/net/isc-dhcp42-relay /usr/local/sbin/dhcrelay
lighttpd /usr/ports/www/lighttpd /usr/local/sbin/lighttpd
miniupnpd /usr/ports/net/miniupnpd /usr/local/sbin/miniupnpd
mpd4 /usr/ports/net/mpd4 /usr/local/sbin/mpd4
mpd5 /usr/ports/net/mpd5 /usr/local/sbin/mpd5
pftop /usr/ports/sysutils/pftop /usr/local/sbin/pftop
libevent /usr/ports/devel/libevent /usr/local/lib/libevent.so
relayd /usr/ports/net/relayd /usr/local/sbin/relayd
fping /usr/ports/net/fping /usr/local/sbin/fping
minicron /usr/ports/sysutils/minicron /usr/local/bin/minicron
php55 /usr/ports/lang/php55 /usr/local/bin/php
##OLDpecl-APC /usr/ports/www/pecl-APC /usr/local/lib/php/20121212/apc.so
php55-bcmath /usr/ports/math/php55-bcmath /usr/local/lib/php/20121212/bcmath.so
php55-bz2 /usr/ports/archivers/php55-bz2 /usr/local/lib/php/20121212/bz2.so
php55-ctype /usr/ports/textproc/php55-ctype /usr/local/lib/php/20121212/ctype.so
php55-curl /usr/ports/ftp/php55-curl /usr/local/lib/php/20121212/curl.so
php55-gettext /usr/ports/devel/php55-gettext /usr/local/lib/php/20121212/gettext.so
php55-hash /usr/ports/security/php55-hash /usr/local/lib/php/20121212/hash.so
php55-ldap /usr/ports/net/php55-ldap /usr/local/lib/php/20121212/ldap.so
php55-mbstring /usr/ports/converters/php55-mbstring /usr/local/lib/php/20121212/mbstring.so
php55-mcrypt /usr/ports/security/php55-mcrypt /usr/local/lib/php/20121212/mcrypt.so
php55-mysql /usr/ports/databases/php55-mysql /usr/local/lib/php/20121212/mysql.so
php55-openssl /usr/ports/security/php55-openssl /usr/local/lib/php/20121212/openssl.so
php55-pcntl /usr/ports/devel/php55-pcntl /usr/local/lib/php/20121212/pcntl.so
php55-posix /usr/ports/sysutils/php55-posix /usr/local/lib/php/20121212/posix.so
php55-pdo /usr/ports/databases/php55-pdo /usr/local/lib/php/20121212/pdo.so
php55-pdo_sqlite /usr/ports/databases/php55-pdo_sqlite /usr/local/lib/php/20121212/pdo_sqlite.so
pecl-radius /usr/ports/net/pecl-radius /usr/local/lib/php/20121212/radius.so
php55-pfSense-module /usr/ports/devel/php55-pfSense-module /usr/local/lib/php/20121212/pfSense.so
php55-readline /usr/ports/devel/php55-readline /usr/local/lib/php/20121212/readline.so
php55-session /usr/ports/www/php55-session /usr/local/lib/php/20121212/session.so
php55-simplexml /usr/ports/textproc/php55-simplexml /usr/local/lib/php/20121212/simplexml.so
php55-sockets /usr/ports/net/php55-sockets /usr/local/lib/php/20121212/sockets.so
php55-shmop /usr/ports/devel/php55-shmop /usr/local/lib/php/20121212/shmop.so
php55-sysvmsg /usr/ports/devel/php55-sysvmsg /usr/local/lib/php/20121212/sysvmsg.so
php55-sysvsem /usr/ports/devel/php55-sysvsem /usr/local/lib/php/20121212/sysvsem.so
php55-sysvshm /usr/ports/devel/php55-sysvshm /usr/local/lib/php/20121212/sysvshm.so
php55-sqlite /usr/ports/databases/php55-sqlite /usr/local/lib/php/20121212/pdo_sqlite.so
php55-tokenizer /usr/ports/devel/php55-tokenizer /usr/local/lib/php/20121212/tokenizer.so
php55-xml /usr/ports/textproc/php55-xml /usr/local/lib/php/20121212/xml.so
php55-zlib /usr/ports/archivers/php55-zlib /usr/local/lib/php/20121212/zlib.so
php55-xmlreader /usr/ports/textproc/php55-xmlreader /usr/local/lib/php/20121212/xmlreader.so
php55-xmlwriter /usr/ports/textproc/php55-xmlwriter /usr/local/lib/php/20121212/xmlwriter.so
##OLDpecl-inclued /usr/ports/devel/pecl-inclued /usr/local/lib/php/20121212/inclued.so
zmq /usr/ports/net/libzmq2 /usr/local/lib/libzmq.so.1
php55-zmq /usr/ports/devel/php55-zmq /usr/local/lib/php/20121212/zmq.so
php-xdebug /usr/ports/devel/php-xdebug /usr/local/lib/php/20121212/xdebug.so
php-suhosin /usr/ports/security/php-suhosin /usr/local/lib/php/20121212/suhosin.so
openvpn /usr/ports/security/openvpn /usr/local/sbin/openvpn
syslog-ng /usr/ports/sysutils/syslog-ng /usr/local/sbin/syslog-ng
zip /usr/ports/archivers/zip /usr/local/bin/zip
links /usr/ports/www/links /usr/local/bin/links
elinks /usr/ports/www/elinks /usr/local/bin/elinks
ntp /usr/ports/net/ntp-devel /usr/local/sbin/ntpd
php55-json /usr/ports/devel/php55-json /usr/local/lib/php/20121212/json.so
rate /usr/ports/net-mgmt/rate /usr/local/bin/rate
wol /usr/ports/net/wol /usr/local/bin/wol
dhcp6 /usr/ports/net/dhcp6 /usr/local/sbin/dhcp6c
3gstat_um175 /usr/ports/comms/3gstat_um175 /usr/local/bin/3gstat
#OLDwrapalixresetbutton /usr/ports/sysutils/wrapalixresetbutton /usr/local/sbin/alixresetbtn
b43-fwcutter /usr/ports/sysutils/b43-fwcutter /usr/local/bin/b43-fwcutter
bwi-firmware-kmod /usr/ports/net/bwi-firmware-kmod /boot/modules/bwi_v3_ucode.ko
voucher /usr/ports/sysutils/voucher /usr/local/bin/voucher
gzsig /usr/ports/sysutils/gzsig /usr/local/sbin/gzsig
#COMPATssh_tunnel_shell /usr/ports/sysutils/ssh_tunnel_shell /usr/local/sbin/ssh_tunnel_shell
#COMPATsshlockout_pf /usr/ports/sysutils/sshlockout_pf /usr/local/sbin/sshlockout_pf
smartmontools /usr/ports/sysutils/smartmontools /usr/local/sbin/smartctl
ataidle /usr/ports/sysutils/ataidle /usr/local/sbin/ataidle
syslogd /usr/ports/sysutils/syslogd /usr/sbin/syslogd
clog /usr/ports/sysutils/clog /usr/local/sbin/clog
pecl-ssh2 /usr/ports/security/pecl-ssh2 /usr/local/lib/php/20121212/ssh2.so
autoconf-wrapper /usr/ports/devel/autoconf-wrapper /usr/local/bin/autoconf-wrapper
rsync /usr/ports/net/rsync /usr/local/bin/rsync
#DEFECTqstats /usr/ports/sysutils/qstats /usr/local/sbin/qstats
gogoc /usr/ports/net/gogoc /usr/local/bin/gogoc
radvd /usr/ports/net/radvd /usr/local/sbin/radvd
ca_root_nss /usr/ports/security/ca_root_nss /usr/local/share/certs/ca-root-nss.crt
bsnmp-ucd /usr/ports/net-mgmt/bsnmp-ucd /usr/local/lib/snmp_ucd.so
bsnmp-regex /usr/ports/net-mgmt/bsnmp-regex /usr/local/lib/snmp_regex.so
svnup /usr/ports/net/svnup /usr/local/bin/svnup
filterlog /usr/ports/sysutils/filterlog /usr/local/sbin/filterlog
ipmitool /usr/ports/sysutils/ipmitool /usr/local/bin/ipmitool
dmidecode /usr/ports/sysutils/dmidecode /usr/local/sbin/dmidecode
check_reload_status /usr/ports/sysutils/check_reload_status /usr/local/sbin/pfSctl
php55-sqlite3 /usr/ports/databases/php55-sqlite3 /usr/local/lib/php/20121212/sqlite3.so
php55-filter /usr/ports/security/php55-filter /usr/local/lib/php/20121212/filter.so
python2 /usr/ports/lang/python2 /usr/local/bin/python2

52
conf/ports/make.conf Normal file
View File

@ -0,0 +1,52 @@
# Generic options
OPTIONS_UNSET_FORCE= X11 DOCS EXAMPLES MAN INFO
# Individual ports options
apinger_SET_FORCE= IPV6
elinks_UNSET_FORCE= FASTMEM
lighttpd_SET_FORCE= NODELAY
miniupnpd_SET_FORCE= PF_ENABLE_FILTER_RULES
openssl_SET_FORCE= PADLOCK
openvpn_SET_FORCE= PW_SAVE
openvpn_UNSET_FORCE= EASYRSA
rrdtool_UNSET_FORCE= PERL
qemu_UNSET_FORCE= SDL
strongswan_SET_FORCE= CURL EAPAKA3GPP2 EAPDYNAMIC EAPRADIUS EAPSIMFILE IKEv1 UNBOUND XAUTH IPSECKEY
.if ${.CURDIR:N*net/rsync*}==""
CFLAGS+= -static
.endif
.if ${.CURDIR:N*security/openiked*}==""
CONFIGURE_ARGS= --without-openssl-header-check
.endif
# OS version specific options
OSRELDATE!= /sbin/sysctl -n kern.osreldate
.if ${OSRELDATE} >= 1000000
#WITH_OPENSSL_BASE= yes
WITH_OPENSSL_PORT= yes
#syslog-ng_SET_FORCE= SYS_SSL
syslog-ng_UNSET_FORCE= SYS_SSL
#syslog-ng_UNSET_FORCE= PORTS_SSL
syslog-ng_SET_FORCE= PORTS_SSL
php55_SET_FORCE= FPM
#. if ${.CURDIR:N*sysutils/check_reload_status*}==""
#WITH_DEBUG= yes
#. endif
.else
WITH_OPENSSL_PORT= yes
syslog-ng_UNSET_FORCE= SYS_SSL
syslog-ng_SET_FORCE= PORTS_SSL
.endif

852
conf/rmlist/remove.list.iso.10 Executable file
View File

@ -0,0 +1,852 @@
./bin/chio
./bin/ed
./bin/getfacl
./bin/rcp
./bin/red
./bin/setfacl
./boot/kernel/acpi_*.ko
./boot/device.hints_wrap
./boot/loader.conf_wrap
./etc/bluetooth
./etc/gnats
./etc/isdn
./etc/mail/mailer.conf
./etc/mail/aliases
./etc/mail
./etc/amd.map
./etc/pam.d/README
./etc/pam.d/ftpd
./etc/pam.d/gdm
./etc/pam.d/imap
./etc/pam.d/kde
./etc/pam.d/pop3
./etc/pam.d/rsh
./etc/pam.d/telnetd
./etc/pam.d/xdm
./etc/pamd.conf
./etc/periodic/daily/*
./etc/periodic/monthly/*
./etc/periodic/security/*
./etc/periodic/weekly/*
./lib/libcam.so.3
./root/.xcustom.sh
./sbin/badsect
./sbin/ccdconfig
./sbin/clri
./sbin/comcontrol
./sbin/ffsinfo
./sbin/fsdb
./sbin/fsirand
./sbin/gconcat
./sbin/ggatec
./sbin/ggated
./sbin/ggatel
./sbin/gnop
./sbin/graid3
./sbin/gshsec
./sbin/gstripe
./sbin/gvinum
./sbin/mksnap_ffs
./sbin/mount_ext2fs
./sbin/mount_linprocfs
./sbin/mount_ntfs
./sbin/mount_reiserfs
./sbin/mount_std
./sbin/mount_udf
./sbin/mount_umapfs
./sbin/natd
./sbin/nfsiod
./sbin/nos-tun
./sbin/quotacheck
./sbin/rdump
./sbin/restore
./sbin/rrestore
./sbin/sconfig
./sbin/setkey
./sbin/slattach
./sbin/spppcontrol
./sbin/startslip
./sbin/sunlabel
./usr/bin/Mail
./usr/bin/alias
./usr/bin/apply
./usr/bin/apropos
./usr/bin/asa
./usr/bin/atq
./usr/bin/atrm
./usr/bin/b64decode
./usr/bin/b64encode
./usr/bin/banner
./usr/bin/batch
./usr/bin/bdes
./usr/bin/bg
./usr/bin/biff
./usr/bin/brandelf
./usr/bin/bzegrep
./usr/bin/bzfgrep
./usr/bin/bzgrep
./usr/bin/bzip2recover
./usr/bin/bzless
./usr/bin/cal
./usr/bin/calendar
./usr/bin/checknr
./usr/bin/chkey
./usr/bin/ci
./usr/bin/co
./usr/bin/col
./usr/bin/colcrt
./usr/bin/colldef
./usr/bin/colrm
./usr/bin/column
./usr/bin/comm
./usr/bin/command
./usr/bin/compile_et
./usr/bin/compress
./usr/bin/crunchgen
./usr/bin/crunchide
./usr/bin/crypt
./usr/bin/csplit
./usr/bin/ctags
./usr/bin/dc
./usr/bin/edit
./usr/bin/elf2aout
./usr/bin/elfdump
./usr/bin/enigma
./usr/bin/ex
./usr/bin/expand
./usr/bin/fc
./usr/bin/fg
./usr/bin/file2c
./usr/bin/finger
./usr/bin/fmt
./usr/bin/fold
./usr/bin/from
./usr/bin/fsync
./usr/bin/gate-ftp
./usr/bin/gcore
./usr/bin/gencat
./usr/bin/getconf
./usr/bin/gzexe
./usr/bin/hd
./usr/bin/hesinfo
./usr/bin/ident
./usr/bin/indent
./usr/bin/info
./usr/bin/infokey
./usr/bin/ipcrm
./usr/bin/ipcs
./usr/bin/jobs
./usr/bin/join
./usr/bin/kdump
./usr/bin/keylogin
./usr/bin/keylogout
./usr/bin/ktrace
./usr/bin/ktrdump
./usr/bin/lam
./usr/bin/last
./usr/bin/lastcomm
./usr/bin/leave
./usr/bin/locale
./usr/bin/locate
./usr/bin/logins
./usr/bin/logname
./usr/bin/look
./usr/bin/lorder
./usr/bin/lsvfs
./usr/bin/m4
./usr/bin/mail
./usr/bin/mailx
./usr/bin/make
./usr/bin/makeinfo
./usr/bin/makewhatis
./usr/bin/merge
./usr/bin/mesg
./usr/bin/mkdep
./usr/bin/mklocale
./usr/bin/mkstr
./usr/bin/mkuzip
./usr/bin/msgs
./usr/bin/mt
./usr/bin/ncal
./usr/bin/ncplist
./usr/bin/ncplogin
./usr/bin/ncplogout
./usr/bin/newgrp
./usr/bin/newkey
./usr/bin/nex
./usr/bin/nfsstat
./usr/bin/nl
./usr/bin/nvi
./usr/bin/nview
./usr/bin/objformat
./usr/bin/opieinfo
./usr/bin/opiekey
./usr/bin/opiepasswd
./usr/bin/otp-md4
./usr/bin/otp-md5
./usr/bin/otp-sha
./usr/bin/pagesize
./usr/bin/paste
./usr/bin/pathchk
./usr/bin/pawd
./usr/bin/pftp
./usr/bin/pr
./usr/bin/printenv
./usr/bin/quota
./usr/bin/rcs
./usr/bin/rcsclean
./usr/bin/rcsdiff
./usr/bin/rcsfreeze
./usr/bin/rcsmerge
./usr/bin/read
./usr/bin/ree
./usr/bin/rlog
./usr/bin/rlogin
./usr/bin/rpcgen
./usr/bin/rpcinfo
./usr/bin/rs
./usr/bin/rsh
./usr/bin/rup
./usr/bin/ruptime
./usr/bin/rusers
./usr/bin/rwall
./usr/bin/rwho
./usr/bin/script
./usr/bin/sdiff
./usr/bin/send-pr
./usr/bin/sendbug
./usr/bin/shar
./usr/bin/showmount
./usr/bin/slogin
./usr/bin/smbutil
./usr/bin/split
./usr/bin/tabs
./usr/bin/talk
./usr/bin/tcopy
./usr/bin/tftp
./usr/bin/truncate
./usr/bin/tset
./usr/bin/tsort
./usr/bin/ul
./usr/bin/unalias
./usr/bin/uncompress
./usr/bin/unexpand
./usr/bin/unifdef
./usr/bin/unifdefall
./usr/bin/units
./usr/bin/unvis
./usr/bin/users
./usr/bin/uudecode
./usr/bin/uuencode
./usr/bin/uuidgen
./usr/bin/vgrind
./usr/bin/view
./usr/bin/vis
./usr/bin/wait
./usr/bin/what
./usr/bin/whatis
./usr/bin/whereis
./usr/bin/whois
./usr/bin/window
./usr/bin/write
./usr/bin/xstr
./usr/bin/zcmp
./usr/bin/zdiff
./usr/bin/zegrep
./usr/bin/zfgrep
./usr/bin/zforce
./usr/bin/zgrep
./usr/bin/zless
./usr/bin/zmore
./usr/bin/znew
./usr/games
./usr/lib/*.a
./usr/lib/*.o
./usr/lib/libcalendar.so*
./usr/lib/libcam.so*
./usr/lib/libcom_err.so*
./usr/lib/libdevstat.so*
./usr/lib/libform.so*
./usr/lib/libftpio.so*
./usr/lib/libhistory.so*
./usr/lib/libkiconv.so*
./usr/lib/libmenu.so*
./usr/lib/libmytinfo.so*
./usr/lib/libncp.so*
./usr/lib/libopie.so*
./usr/lib/libpanel.so*
./usr/lib/libpmc.so*
./usr/lib/librpcsvc.so*
./usr/lib/libsmb.so*
./usr/lib/libtacplus.so*
./usr/lib/libtermcap.so*
./usr/lib/libtermlib.so*
./usr/lib/libthr.so*
./usr/lib/libthread_db.so*
./usr/lib/libtinfo.so*
./usr/lib/libugidfw.so*
./usr/lib/libvgl.so*
./usr/lib/pam_*
./usr/libdata
./usr/libexec/bootpd
./usr/libexec/bootpgw
./usr/libexec/comsat
./usr/libexec/fingerd
./usr/libexec/ftp-proxy
./usr/libexec/ftpd
./usr/libexec/locate.bigram
./usr/libexec/locate.code
./usr/libexec/locate.concatdb
./usr/libexec/locate.mklocatedb
./usr/libexec/locate.updatedb
./usr/libexec/lpr
./usr/libexec/lpr/ru
./usr/libexec/lukemftpd
./usr/libexec/makekey
./usr/libexec/makewhatis.local
./usr/libexec/ntalkd
./usr/libexec/phttpget
./usr/libexec/pt_chown
./usr/libexec/rbootd
./usr/libexec/revnetgroup
./usr/libexec/rlogind
./usr/libexec/rpc.rquotad
./usr/libexec/rpc.rstatd
./usr/libexec/rpc.rusersd
./usr/libexec/rpc.rwalld
./usr/libexec/rpc.sprayd
./usr/libexec/rshd
./usr/libexec/sendmail
./usr/libexec/sm.bin
./usr/libexec/tcpd
./usr/libexec/telnetd
./usr/libexec/vfontedpr
./usr/include
./usr/sbin/IPXrouted
./usr/sbin/ac
./usr/sbin/accton
./usr/sbin/acpiconf
./usr/sbin/acpidb
./usr/sbin/acpidump
./usr/sbin/adduser
./usr/sbin/amd
./usr/sbin/amq
./usr/sbin/apm
./usr/sbin/asf
./usr/sbin/bootparamd
./usr/sbin/bootpef
./usr/sbin/bootptest
./usr/sbin/btxld
./usr/sbin/burncd
./usr/sbin/callbootd
./usr/sbin/chkgrp
./usr/sbin/ckdist
./usr/sbin/config
./usr/sbin/ctm
./usr/sbin/ctm_dequeue
./usr/sbin/ctm_rmail
./usr/sbin/ctm_smail
./usr/sbin/cursor
./usr/sbin/dconschat
./usr/sbin/edquota
./usr/sbin/extattrctl
./usr/sbin/fdcontrol
./usr/sbin/fdformat
./usr/sbin/fdread
./usr/sbin/fdwrite
./usr/sbin/fixmount
./usr/sbin/flowctl
./usr/sbin/fontedit
./usr/sbin/fsinfo
./usr/sbin/fwcontrol
./usr/sbin/getfmac
./usr/sbin/getpmac
./usr/sbin/gstat
./usr/sbin/hlfsd
./usr/sbin/iasl
./usr/sbin/idprio
./usr/sbin/kcon
./usr/sbin/keyserv
./usr/sbin/kgmon
./usr/sbin/kgzip
./usr/sbin/lastlogin
./usr/sbin/loadfont
./usr/sbin/lptcontrol
./usr/sbin/lsextattr
./usr/sbin/map-mbone
./usr/sbin/memcontrol
./usr/sbin/mergemaster
./usr/sbin/mixer
./usr/sbin/mk-amd-map
./usr/sbin/mld6query
./usr/sbin/mlxcontrol
./usr/sbin/mount_nwfs
./usr/sbin/mount_portalfs
./usr/sbin/mount_smbfs
./usr/sbin/moused
./usr/sbin/mptable
./usr/sbin/mrinfo
./usr/sbin/mrouted
./usr/sbin/mtest
./usr/sbin/mtrace
./usr/sbin/newsyslog
./usr/sbin/pccardc
./usr/sbin/periodic
./usr/sbin/pmccontrol
./usr/sbin/pmcstat
./usr/sbin/pnpinfo
./usr/sbin/portsnap
./usr/sbin/procctl
./usr/sbin/moused
./usr/sbin/quot
./usr/sbin/quotaoff
./usr/sbin/quotaon
./usr/sbin/rarpd
./usr/sbin/raycontrol
./usr/sbin/repquota
./usr/sbin/rip6query
./usr/sbin/rmextattr
./usr/sbin/rmt
./usr/sbin/rmuser
./usr/sbin/route6d
./usr/sbin/rpc.lockd
./usr/sbin/rpc.statd
./usr/sbin/rpc.umntall
./usr/sbin/rrenumd
./usr/sbin/rtprio
./usr/sbin/rwhod
./usr/sbin/sa
./usr/sbin/scon
./usr/sbin/setextattr
./usr/sbin/setfmac
./usr/sbin/setfsmac
./usr/sbin/setpmac
./usr/sbin/sicontrol
./usr/sbin/sliplogin
./usr/sbin/slstat
./usr/sbin/smbmsg
./usr/sbin/sntp
./usr/sbin/spkrtest
./usr/sbin/spray
./usr/sbin/sysinstall
./usr/sbin/tcpdchk
./usr/sbin/tcpdmatch
./usr/sbin/tcpdrop
./usr/sbin/tcpslice
./usr/sbin/timed
./usr/sbin/timedc
./usr/sbin/trpt
./usr/sbin/tzsetup
./usr/sbin/ugidfw
./usr/sbin/vnconfig
./usr/sbin/vt220keys
./usr/sbin/watch
./usr/sbin/wire-test
./usr/sbin/zdump
./usr/sbin/zic
./usr/sbin/zzz
./usr/share/calendar
./usr/share/dict
./usr/share/doc/IPv6
./usr/share/doc/atm
./usr/share/doc/bind9
./usr/share/doc/ncurses
./usr/share/doc/ntp
./usr/share/doc/papers
./usr/share/doc/psd
./usr/share/doc/smm
./usr/share/doc/usd
./usr/share/examples
./usr/share/games
./usr/share/groff_font
./usr/share/info
./usr/share/isdn
./usr/share/locale/af_ZA.ISO8859-1
./usr/share/locale/af_ZA.ISO8859-15
./usr/share/locale/af_ZA.UTF-8
./usr/share/locale/am_ET.UTF-8
./usr/share/locale/be_BY.CP1131
./usr/share/locale/be_BY.CP1251
./usr/share/locale/be_BY.ISO8859-5
./usr/share/locale/be_BY.UTF-8
./usr/share/locale/bg_BG.CP1251
./usr/share/locale/bg_BG.UTF-8
./usr/share/locale/ca_ES.ISO8859-1
./usr/share/locale/ca_ES.ISO8859-15
./usr/share/locale/ca_ES.UTF-8
./usr/share/locale/cs_CZ.ISO8859-2
./usr/share/locale/cs_CZ.UTF-8
./usr/share/locale/da_DK.ISO8859-1
./usr/share/locale/da_DK.ISO8859-15
./usr/share/locale/da_DK.UTF-8
./usr/share/locale/de_AT.ISO8859-1
./usr/share/locale/de_AT.ISO8859-15
./usr/share/locale/de_AT.UTF-8
./usr/share/locale/de_CH.ISO8859-1
./usr/share/locale/de_CH.ISO8859-15
./usr/share/locale/de_CH.UTF-8
./usr/share/locale/de_DE.ISO8859-1
./usr/share/locale/de_DE.ISO8859-15
./usr/share/locale/de_DE.UTF-8
./usr/share/locale/el_GR.ISO8859-7
./usr/share/locale/el_GR.UTF-8
./usr/share/locale/en_AU.ISO8859-1
./usr/share/locale/en_AU.ISO8859-15
./usr/share/locale/en_AU.US-ASCII
./usr/share/locale/en_AU.UTF-8
./usr/share/locale/en_CA.ISO8859-1
./usr/share/locale/en_CA.ISO8859-15
./usr/share/locale/en_CA.US-ASCII
./usr/share/locale/en_CA.UTF-8
./usr/share/locale/en_GB.ISO8859-1
./usr/share/locale/en_GB.ISO8859-15
./usr/share/locale/en_GB.US-ASCII
./usr/share/locale/en_GB.UTF-8
./usr/share/locale/en_IE.UTF-8
./usr/share/locale/en_NZ.ISO8859-1
./usr/share/locale/en_NZ.ISO8859-15
./usr/share/locale/en_NZ.US-ASCII
./usr/share/locale/en_NZ.UTF-8
./usr/share/locale/es_ES.ISO8859-1
./usr/share/locale/es_ES.ISO8859-15
./usr/share/locale/es_ES.UTF-8
./usr/share/locale/et_EE.ISO8859-15
./usr/share/locale/et_EE.UTF-8
./usr/share/locale/eu_ES.ISO8859-1
./usr/share/locale/eu_ES.ISO8859-15
./usr/share/locale/eu_ES.UTF-8
./usr/share/locale/fi_FI.ISO8859-1
./usr/share/locale/fi_FI.ISO8859-15
./usr/share/locale/fi_FI.UTF-8
./usr/share/locale/fr_BE.ISO8859-1
./usr/share/locale/fr_BE.ISO8859-15
./usr/share/locale/fr_BE.UTF-8
./usr/share/locale/fr_CA.ISO8859-1
./usr/share/locale/fr_CA.ISO8859-15
./usr/share/locale/fr_CA.UTF-8
./usr/share/locale/fr_CH.ISO8859-1
./usr/share/locale/fr_CH.ISO8859-15
./usr/share/locale/fr_CH.UTF-8
./usr/share/locale/fr_FR.ISO8859-1
./usr/share/locale/fr_FR.ISO8859-15
./usr/share/locale/fr_FR.UTF-8
./usr/share/locale/he_IL.UTF-8
./usr/share/locale/hi_IN.ISCII-DEV
./usr/share/locale/hr_HR.ISO8859-2
./usr/share/locale/hr_HR.UTF-8
./usr/share/locale/hu_HU.ISO8859-2
./usr/share/locale/hu_HU.UTF-8
./usr/share/locale/hy_AM.ARMSCII-8
./usr/share/locale/hy_AM.UTF-8
./usr/share/locale/is_IS.ISO8859-1
./usr/share/locale/is_IS.ISO8859-15
./usr/share/locale/is_IS.UTF-8
./usr/share/locale/it_CH.ISO8859-1
./usr/share/locale/it_CH.ISO8859-15
./usr/share/locale/it_CH.UTF-8
./usr/share/locale/it_IT.ISO8859-1
./usr/share/locale/it_IT.ISO8859-15
./usr/share/locale/it_IT.UTF-8
./usr/share/locale/ja_JP.SJIS
./usr/share/locale/ja_JP.UTF-8
./usr/share/locale/ja_JP.eucJP
./usr/share/locale/kk_KZ.PT154
./usr/share/locale/kk_KZ.UTF-8
./usr/share/locale/ko_KR.CP949
./usr/share/locale/ko_KR.UTF-8
./usr/share/locale/ko_KR.eucKR
./usr/share/locale/la_LN.ISO8859-15
./usr/share/locale/la_LN.ISO8859-4
./usr/share/locale/lt_LT.ISO8859-13
./usr/share/locale/lt_LT.ISO8859-4
./usr/share/locale/lt_LT.UTF-8
./usr/share/locale/nl_BE.ISO8859-1
./usr/share/locale/nl_BE.ISO8859-15
./usr/share/locale/nl_BE.UTF-8
./usr/share/locale/nl_NL.ISO8859-1
./usr/share/locale/nl_NL.ISO8859-15
./usr/share/locale/nl_NL.UTF-8
./usr/share/locale/no_NO.ISO8859-1
./usr/share/locale/no_NO.ISO8859-15
./usr/share/locale/no_NO.UTF-8
./usr/share/locale/pl_PL.ISO8859-2
./usr/share/locale/pl_PL.UTF-8
./usr/share/locale/pt_BR.ISO8859-1
./usr/share/locale/pt_BR.UTF-8
./usr/share/locale/pt_PT.ISO8859-1
./usr/share/locale/pt_PT.ISO8859-15
./usr/share/locale/pt_PT.UTF-8
./usr/share/locale/ro_RO.ISO8859-2
./usr/share/locale/ro_RO.UTF-8
./usr/share/locale/ru_RU.CP1251
./usr/share/locale/ru_RU.CP866
./usr/share/locale/ru_RU.ISO8859-5
./usr/share/locale/ru_RU.KOI8-R
./usr/share/locale/ru_RU.UTF-8
./usr/share/locale/sk_SK.ISO8859-2
./usr/share/locale/sk_SK.UTF-8
./usr/share/locale/sl_SI.ISO8859-2
./usr/share/locale/sl_SI.UTF-8
./usr/share/locale/sr_YU.ISO8859-2
./usr/share/locale/sr_YU.ISO8859-5
./usr/share/locale/sr_YU.UTF-8
./usr/share/locale/sv_SE.ISO8859-1
./usr/share/locale/sv_SE.ISO8859-15
./usr/share/locale/sv_SE.UTF-8
./usr/share/locale/tr_TR.ISO8859-9
./usr/share/locale/tr_TR.UTF-8
./usr/share/locale/uk_UA.CP1251
./usr/share/locale/uk_UA.ISO8859-5
./usr/share/locale/uk_UA.KOI8-U
./usr/share/locale/uk_UA.UTF-8
./usr/share/locale/zh_CN.GB18030
./usr/share/locale/zh_CN.GB2312
./usr/share/locale/zh_CN.GBK
./usr/share/locale/zh_CN.UTF-8
./usr/share/locale/zh_CN.eucCN
./usr/share/locale/zh_HK.UTF-8
./usr/share/locale/zh_HK.Big5HKSCS
./usr/share/locale/zh_TW.Big5
./usr/share/locale/zh_TW.UTF-8
./usr/share/me
./usr/share/misc/fonts
./usr/share/misc/pcvtfonts
./usr/share/misc/ascii
./usr/share/misc/birthtoken
./usr/share/misc/bsd-family-tree
./usr/share/misc/eqnchar
./usr/share/misc/flowers
./usr/share/misc/init.ee
./usr/share/misc/iso3166
./usr/share/misc/iso639
./usr/share/misc/latin1
./usr/share/misc/operator
./usr/share/misc/pci_vendors
./usr/share/misc/scsi_modes
./usr/share/misc/usb_hid_usages
./usr/share/misc/mail.help
./usr/share/misc/mail.tildehelp
./usr/share/misc/units.lib
./usr/share/misc/vgrindefs
./usr/share/misc/vgrindefs.db
./usr/share/misc/keycap.pcvt
./usr/share/mk
./usr/share/nls/af_ZA.ISO8859-1
./usr/share/nls/af_ZA.ISO8859-15
./usr/share/nls/af_ZA.UTF-8
./usr/share/nls/am_ET.UTF-8
./usr/share/nls/be_BY.CP1131
./usr/share/nls/be_BY.CP1251
./usr/share/nls/be_BY.ISO8859-5
./usr/share/nls/be_BY.UTF-8
./usr/share/nls/bg_BG.CP1251
./usr/share/nls/bg_BG.UTF-8
./usr/share/nls/ca_ES.ISO8859-1
./usr/share/nls/ca_ES.ISO8859-15
./usr/share/nls/ca_ES.UTF-8
./usr/share/nls/cs_CZ.ISO8859-2
./usr/share/nls/cs_CZ.UTF-8
./usr/share/nls/da_DK.ISO8859-1
./usr/share/nls/da_DK.ISO8859-15
./usr/share/nls/da_DK.UTF-8
./usr/share/nls/de_AT.ISO8859-1
./usr/share/nls/de_AT.ISO8859-15
./usr/share/nls/de_AT.UTF-8
./usr/share/nls/de_CH.ISO8859-1
./usr/share/nls/de_CH.ISO8859-15
./usr/share/nls/de_CH.UTF-8
./usr/share/nls/de_DE.ISO8859-1
./usr/share/nls/de_DE.ISO8859-15
./usr/share/nls/de_DE.UTF-8
./usr/share/nls/el_GR.ISO8859-7
./usr/share/nls/el_GR.UTF-8
./usr/share/nls/en_AU.ISO8859-1
./usr/share/nls/en_AU.ISO8859-15
./usr/share/nls/en_AU.US-ASCII
./usr/share/nls/en_AU.UTF-8
./usr/share/nls/en_CA.ISO8859-1
./usr/share/nls/en_CA.ISO8859-15
./usr/share/nls/en_CA.US-ASCII
./usr/share/nls/en_CA.UTF-8
./usr/share/nls/en_GB.ISO8859-1
./usr/share/nls/en_GB.ISO8859-15
./usr/share/nls/en_GB.US-ASCII
./usr/share/nls/en_GB.UTF-8
./usr/share/nls/en_IE.UTF-8
./usr/share/nls/en_NZ.ISO8859-1
./usr/share/nls/en_NZ.ISO8859-15
./usr/share/nls/en_NZ.US-ASCII
./usr/share/nls/en_NZ.UTF-8
./usr/share/nls/en_US.ISO8859-1
./usr/share/nls/en_US.ISO8859-15
./usr/share/nls/en_US.UTF-8
./usr/share/nls/es_ES.ISO8859-1
./usr/share/nls/es_ES.ISO8859-15
./usr/share/nls/es_ES.UTF-8
./usr/share/nls/et_EE.ISO8859-15
./usr/share/nls/et_EE.UTF-8
./usr/share/nls/fi_FI.ISO8859-1
./usr/share/nls/fi_FI.ISO8859-15
./usr/share/nls/fi_FI.UTF-8
./usr/share/nls/fr_BE.ISO8859-1
./usr/share/nls/fr_BE.ISO8859-15
./usr/share/nls/fr_BE.UTF-8
./usr/share/nls/fr_CA.ISO8859-1
./usr/share/nls/fr_CA.ISO8859-15
./usr/share/nls/fr_CA.UTF-8
./usr/share/nls/fr_CH.ISO8859-1
./usr/share/nls/fr_CH.ISO8859-15
./usr/share/nls/fr_CH.UTF-8
./usr/share/nls/fr_FR.ISO8859-1
./usr/share/nls/fr_FR.ISO8859-15
./usr/share/nls/fr_FR.UTF-8
./usr/share/nls/he_IL.UTF-8
./usr/share/nls/hi_IN.ISCII-DEV
./usr/share/nls/hr_HR.ISO8859-2
./usr/share/nls/hr_HR.UTF-8
./usr/share/nls/hu_HU.ISO8859-2
./usr/share/nls/hu_HU.UTF-8
./usr/share/nls/hy_AM.ARMSCII-8
./usr/share/nls/hy_AM.UTF-8
./usr/share/nls/is_IS.ISO8859-1
./usr/share/nls/is_IS.ISO8859-15
./usr/share/nls/is_IS.UTF-8
./usr/share/nls/it_CH.ISO8859-1
./usr/share/nls/it_CH.ISO8859-15
./usr/share/nls/it_CH.UTF-8
./usr/share/nls/it_IT.ISO8859-1
./usr/share/nls/it_IT.ISO8859-15
./usr/share/nls/it_IT.UTF-8
./usr/share/nls/ja_JP.SJIS
./usr/share/nls/ja_JP.UTF-8
./usr/share/nls/ja_JP.eucJP
./usr/share/nls/kk_KZ.PT154
./usr/share/nls/kk_KZ.UTF-8
./usr/share/nls/ko_KR.CP949
./usr/share/nls/ko_KR.UTF-8
./usr/share/nls/ko_KR.eucKR
./usr/share/nls/la_LN.ISO8859-1
./usr/share/nls/la_LN.ISO8859-15
./usr/share/nls/la_LN.ISO8859-2
./usr/share/nls/la_LN.ISO8859-4
./usr/share/nls/la_LN.US-ASCII
./usr/share/nls/lt_LT.ISO8859-13
./usr/share/nls/lt_LT.ISO8859-4
./usr/share/nls/lt_LT.UTF-8
./usr/share/nls/nl_BE.ISO8859-1
./usr/share/nls/nl_BE.ISO8859-15
./usr/share/nls/nl_BE.UTF-8
./usr/share/nls/nl_NL.ISO8859-1
./usr/share/nls/nl_NL.ISO8859-15
./usr/share/nls/nl_NL.UTF-8
./usr/share/nls/no_NO.ISO8859-1
./usr/share/nls/no_NO.ISO8859-15
./usr/share/nls/no_NO.UTF-8
./usr/share/nls/pl_PL.ISO8859-2
./usr/share/nls/pl_PL.UTF-8
./usr/share/nls/pt_BR.ISO8859-1
./usr/share/nls/pt_BR.UTF-8
./usr/share/nls/pt_PT.ISO8859-1
./usr/share/nls/pt_PT.ISO8859-15
./usr/share/nls/pt_PT.UTF-8
./usr/share/nls/ro_RO.ISO8859-2
./usr/share/nls/ro_RO.UTF-8
./usr/share/nls/ru_RU.CP1251
./usr/share/nls/ru_RU.CP866
./usr/share/nls/ru_RU.ISO8859-5
./usr/share/nls/ru_RU.KOI8-R
./usr/share/nls/ru_RU.UTF-8
./usr/share/nls/sk_SK.ISO8859-2
./usr/share/nls/sk_SK.UTF-8
./usr/share/nls/sl_SI.ISO8859-2
./usr/share/nls/sl_SI.UTF-8
./usr/share/nls/sr_YU.ISO8859-2
./usr/share/nls/sr_YU.ISO8859-5
./usr/share/nls/sr_YU.UTF-8
./usr/share/nls/sv_SE.ISO8859-1
./usr/share/nls/sv_SE.ISO8859-15
./usr/share/nls/sv_SE.UTF-8
./usr/share/nls/tr_TR.ISO8859-9
./usr/share/nls/tr_TR.UTF-8
./usr/share/nls/uk_UA.ISO8859-5
./usr/share/nls/uk_UA.KOI8-U
./usr/share/nls/uk_UA.UTF-8
./usr/share/nls/zh_CN.GB18030
./usr/share/nls/zh_CN.GB2312
./usr/share/nls/zh_CN.GBK
./usr/share/nls/zh_CN.UTF-8
./usr/share/nls/zh_CN.eucCN
./usr/share/nls/zh_HK.Big5HKSCS
./usr/share/nls/zh_HK.UTF-8
./usr/share/nls/zh_TW.Big5
./usr/share/nls/zh_TW.UTF-8
./usr/share/openssl
./usr/share/pcvt
./usr/share/security
./usr/share/sendmail
./usr/share/skel
./usr/share/tabset
./usr/share/tmac
./usr/share/vi/catalog/dutch
./usr/share/vi/catalog/english
./usr/share/vi/catalog/french
./usr/share/vi/catalog/german
./usr/share/vi/catalog/polish
./usr/share/vi/catalog/ru_RU.KOI8-R
./usr/share/vi/catalog/spanish
./usr/share/vi/catalog/swedish
./usr/share/vi/catalog/uk_UA.KOI8-U
./usr/share/vi/catalog/nl_NL.ISO8859-1
./usr/share/vi/catalog/nl_NL.ISO8859-15
./usr/share/vi/catalog/en_AU.ISO8859-1
./usr/share/vi/catalog/en_AU.ISO8859-15
./usr/share/vi/catalog/en_AU.US-ASCII
./usr/share/vi/catalog/en_CA.ISO8859-1
./usr/share/vi/catalog/en_CA.ISO8859-15
./usr/share/vi/catalog/en_CA.US-ASCII
./usr/share/vi/catalog/en_GB.ISO8859-1
./usr/share/vi/catalog/en_GB.ISO8859-15
./usr/share/vi/catalog/en_GB.US-ASCII
./usr/share/vi/catalog/en_NZ.ISO8859-1
./usr/share/vi/catalog/en_NZ.US-ASCII
./usr/share/vi/catalog/en_NZ.ISO8859-15
./usr/share/vi/catalog/fr_BE.ISO8859-1
./usr/share/vi/catalog/fr_BE.ISO8859-15
./usr/share/vi/catalog/fr_CA.ISO8859-1
./usr/share/vi/catalog/fr_CA.ISO8859-15
./usr/share/vi/catalog/fr_CH.ISO8859-1
./usr/share/vi/catalog/fr_CH.ISO8859-15
./usr/share/vi/catalog/fr_FR.ISO8859-1
./usr/share/vi/catalog/fr_FR.ISO8859-15
./usr/share/vi/catalog/de_AT.ISO8859-1
./usr/share/vi/catalog/de_AT.ISO8859-15
./usr/share/vi/catalog/de_CH.ISO8859-1
./usr/share/vi/catalog/de_CH.ISO8859-15
./usr/share/vi/catalog/de_DE.ISO8859-1
./usr/share/vi/catalog/de_DE.ISO8859-15
./usr/share/vi/catalog/es_ES.ISO8859-1
./usr/share/vi/catalog/es_ES.ISO8859-15
./usr/share/vi/catalog/sv_SE.ISO8859-1
./usr/share/vi/catalog/sv_SE.ISO8859-15
./usr/share/vi/catalog/pl_PL.ISO8859-2
./usr/share/zoneinfo/Africa
./usr/share/zoneinfo/America
./usr/share/zoneinfo/America/Argentina
./usr/share/zoneinfo/America/Indiana
./usr/share/zoneinfo/America/Kentucky
./usr/share/zoneinfo/America/North_Dakota
./usr/share/zoneinfo/Antarctica
./usr/share/zoneinfo/Arctic
./usr/share/zoneinfo/Asia
./usr/share/zoneinfo/Atlantic
./usr/share/zoneinfo/Australia
./usr/share/zoneinfo/Etc
./usr/share/zoneinfo/Europe
./usr/share/zoneinfo/Indian
./usr/share/zoneinfo/Pacific
./usr/share/zoneinfo/SystemV
./usr/src
./sys
./usr/local/www/index.html
./usr/local/www/dfuife.cgi
./usr/local/www/fred.png

90
conf/src/src.conf.10 Normal file
View File

@ -0,0 +1,90 @@
MALLOC_PRODUCTION=yes
WITHOUT_ATM=YES
WITHOUT_AUDIT=YES
WITHOUT_AUTHPF=YES
WITHOUT_BIND=YES
WITHOUT_BIND_DNSSEC=YES
WITHOUT_BIND_ETC=YES
WITHOUT_BIND_LIBS_LWRES=YES
WITHOUT_BIND_MTREE=YES
WITHOUT_BIND_NAMED=YES
WITHOUT_BIND_UTILS=YES
WITHOUT_BLUETOOTH=YES
WITHOUT_CALENDAR=YES
WITHOUT_CDDL=YES
WITH_CLANG=YES
WITH_CLANG_IS_CC=YES
WITHOUT_CLANG_FULL=YES
NO_CTF=YES
WITHOUT_CVS=YES
WITHOUT_DICT=YES
WITHOUT_FORTRAN=YES
WITHOUT_EXAMPLES=YES
WITHOUT_GAMES=YES
WITHOUT_GCOV=YES
WITHOUT_GDB=YES
WITHOUT_GPIB=YES
WITHOUT_HESIOD_LIBC=YES
WITHOUT_HTML=YES
WITHOUT_I4B=YES
#WITHOUT_CXX=YES
WITHOUT_INFO=YES
WITHOUT_IPFILTER=YES
WITHOUT_IPX=YES
WITHOUT_KERBEROS=YES
WITHOUT_LOCALES=YES
WITHOUT_LPR=YES
WITHOUT_MAILWRAPPER=YES
WITHOUT_MAIL=YES
WITHOUT_MAN=YES
WITHOUT_MODULES=YES
WITHOUT_NCP=YES
WITHOUT_NIS=YES
WITHOUT_NLS=YES
WITHOUT_NLS_CATALOGS=YES
WITHOUT_NS_CACHING=YES
WITHOUT_OBJC=YES
WITHOUT_P1003_1B=YES
WITHOUT_PROFILE=YES
WITHOUT_RCMDS=YES
WITHOUT_RCS=YES
WITHOUT_VINUM=YES
WITHOUT_RCMDS=YES
WITHOUT_SENDMAIL=YES
WITHOUT_SETUID_LOGIN=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_RESCUE=YES
WITHOUT_LIB32=YES
WITHOUT_DEBUG_FILES=yes
WITHOUT_OFED=yes
WITHOUT_RESCUE=yes
WITHOUT_ATF=yes
WITHOUT_PC_SYSINSTALL=yes
WITHOUT_SYSINSTALL=yes
WITHOUT_RCS=yes
WITHOUT_RCMDS=yes
WITHOUT_PORTSNAP=yes
IPFIREWALL_DEFAULT_TO_ACCEPT=yes
IP6FIREWALL_DEFAULT_TO_ACCEPT=yes
WITHOUT_ASSERT_DEBUG=YES
HOSTAPD_CFLAGS+=-DEAP_SERVER -DEAP_GTC -DEAP_AKA -DEAP_SIM -DEAP_GPSK
HOSTAPD_CFLAGS+=-DEAP_PAX -DEAP_SAKE -DCONFIG_RSN_PREAUTH
HOSTAPD_CONFIG_RSN_PREAUTH=YES
#WITH_OPENSSL=YES
WITH_OPENSSL_PORT=yes
MWL_DEBUG=YES
LOADER_ZFS_SUPPORT=YES
WITH_ZFS=YES
WITHOUT_NTP=YES
WITHOUT_INFO=YES
WITHOUT_SVN=YES
WITHOUT_SVNLITE=YES
WITHOUT_MAN_UTILS=YES
WITHOUT_LOCATE=YES
WITHOUT_QUOTAS=YES
WITHOUT_FREEBSD_UPDATE=YES
WITHOUT_NS_CACHING=YES
WITHOUT_GROFF=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_SYSCONS=YES
WITHOUT_NS_CACHING=YES

View File

@ -0,0 +1,85 @@
MALLOC_PRODUCTION=yes
WITHOUT_ATM=YES
WITHOUT_AUDIT=YES
WITHOUT_AUTHPF=YES
WITHOUT_BIND=YES
WITHOUT_BIND_DNSSEC=YES
WITHOUT_BIND_ETC=YES
WITHOUT_BIND_LIBS_LWRES=YES
WITHOUT_BIND_MTREE=YES
WITHOUT_BIND_NAMED=YES
WITHOUT_BIND_UTILS=YES
WITHOUT_BLUETOOTH=YES
WITHOUT_CALENDAR=YES
WITHOUT_CDDL=YES
WITH_CLANG=YES
WITH_CLANG_IS_CC=YES
WITHOUT_CLANG_FULL=YES
NO_CTF=YES
WITHOUT_CVS=YES
WITHOUT_DICT=YES
WITHOUT_FORTRAN=YES
WITHOUT_EXAMPLES=YES
WITHOUT_GAMES=YES
WITHOUT_GCOV=YES
WITHOUT_GDB=YES
WITHOUT_GPIB=YES
WITHOUT_HESIOD_LIBC=YES
WITHOUT_HTML=YES
WITHOUT_I4B=YES
#WITHOUT_CXX=YES
WITHOUT_INFO=YES
WITHOUT_IPFILTER=YES
WITHOUT_IPX=YES
WITHOUT_KERBEROS=YES
WITHOUT_LOCALES=YES
WITHOUT_LPR=YES
WITHOUT_MAILWRAPPER=YES
WITHOUT_MAIL=YES
WITHOUT_MAN=YES
WITHOUT_MODULES=YES
WITHOUT_NCP=YES
WITHOUT_NIS=YES
WITHOUT_NLS=YES
WITHOUT_NLS_CATALOGS=YES
WITHOUT_NS_CACHING=YES
WITHOUT_OBJC=YES
WITHOUT_P1003_1B=YES
WITHOUT_PROFILE=YES
WITHOUT_RCMDS=YES
WITHOUT_RCS=YES
WITHOUT_VINUM=YES
WITHOUT_RCMDS=YES
WITHOUT_SENDMAIL=YES
WITHOUT_SETUID_LOGIN=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_RESCUE=YES
WITHOUT_LIB32=YES
WITHOUT_DEBUG_FILES=yes
WITHOUT_OFED=yes
WITHOUT_RESCUE=yes
WITHOUT_ATF=yes
WITHOUT_PC_SYSINSTALL=yes
WITHOUT_RCS=yes
WITHOUT_RCMDS=yes
WITHOUT_PORTSNAP=yes
WITHOUT_SYSINSTALL=yes
IPFIREWALL_DEFAULT_TO_ACCEPT=yes
IP6FIREWALL_DEFAULT_TO_ACCEPT=yes
WITHOUT_ASSERT_DEBUG=YES
WITHOUT_TOOLCHAIN=YES
LOADER_ZFS_SUPPORT=YES
WITH_ZFS=YES
WITHOUT_NTP=YES
WITHOUT_INFO=YES
WITHOUT_SVN=YES
WITHOUT_SVNLITE=YES
WITHOUT_MAN_UTILS=YES
WITHOUT_LOCATE=YES
WITHOUT_QUOTAS=YES
WITHOUT_FREEBSD_UPDATE=YES
WITHOUT_NS_CACHING=YES
WITHOUT_GROFF=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_SYSCONS=YES
WITHOUT_NS_CACHING=YES

View File

@ -0,0 +1,87 @@
MALLOC_PRODUCTION=yes
WITHOUT_ATM=YES
WITHOUT_AUDIT=YES
WITHOUT_AUTHPF=YES
WITHOUT_BIND=YES
WITHOUT_BIND_DNSSEC=YES
WITHOUT_BIND_ETC=YES
WITHOUT_BIND_LIBS_LWRES=YES
WITHOUT_BIND_MTREE=YES
WITHOUT_BIND_NAMED=YES
WITHOUT_BIND_UTILS=YES
WITHOUT_BLUETOOTH=YES
WITHOUT_CALENDAR=YES
WITHOUT_CDDL=YES
WITH_CLANG=YES
WITH_CLANG_IS_CC=YES
WITHOUT_CLANG_FULL=YES
NO_CTF=YES
WITHOUT_CVS=YES
WITHOUT_DICT=YES
WITHOUT_FORTRAN=YES
WITHOUT_EXAMPLES=YES
WITHOUT_GAMES=YES
WITHOUT_GCOV=YES
WITHOUT_GDB=YES
WITHOUT_GPIB=YES
WITHOUT_HESIOD_LIBC=YES
WITHOUT_HTML=YES
WITHOUT_I4B=YES
#WITHOUT_CXX=YES
WITHOUT_INFO=YES
WITHOUT_IPFILTER=YES
WITHOUT_IPX=YES
WITHOUT_KERBEROS=YES
WITHOUT_LOCALES=YES
WITHOUT_LPR=YES
WITHOUT_MAILWRAPPER=YES
WITHOUT_MAIL=YES
WITHOUT_MAN=YES
WITHOUT_MODULES=YES
WITHOUT_NCP=YES
WITHOUT_NIS=YES
WITHOUT_NLS=YES
WITHOUT_NLS_CATALOGS=YES
WITHOUT_NS_CACHING=YES
WITHOUT_OBJC=YES
WITHOUT_P1003_1B=YES
WITHOUT_PROFILE=YES
WITHOUT_RCMDS=YES
WITHOUT_RCS=YES
WITHOUT_VINUM=YES
WITHOUT_RCMDS=YES
WITHOUT_SENDMAIL=YES
WITHOUT_SETUID_LOGIN=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_RESCUE=YES
WITHOUT_LIB32=YES
WITHOUT_DEBUG_FILES=yes
WITHOUT_OFED=yes
WITHOUT_RESCUE=yes
WITHOUT_ATF=yes
WITHOUT_PC_SYSINSTALL=yes
WITHOUT_SYSINSTALL=yes
WITHOUT_RCS=yes
WITHOUT_RCMDS=yes
WITHOUT_PORTSNAP=yes
IPFIREWALL_DEFAULT_TO_ACCEPT=yes
IP6FIREWALL_DEFAULT_TO_ACCEPT=yes
WITHOUT_ZFS=YES
WITHOUT_ASSERT_DEBUG=YES
HOSTAPD_CFLAGS+=-DEAP_SERVER -DEAP_GTC -DEAP_AKA -DEAP_SIM -DEAP_GPSK
HOSTAPD_CFLAGS+=-DEAP_PAX -DEAP_SAKE -DCONFIG_RSN_PREAUTH
HOSTAPD_CONFIG_RSN_PREAUTH=YES
#WITH_OPENSSL=YES
WITHOUT_NTP=YES
WITHOUT_INFO=YES
WITHOUT_SVN=YES
WITHOUT_SVNLITE=YES
WITHOUT_MAN_UTILS=YES
WITHOUT_LOCATE=YES
WITHOUT_QUOTAS=YES
WITHOUT_FREEBSD_UPDATE=YES
WITHOUT_NS_CACHING=YES
WITHOUT_GROFF=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_SYSCONS=YES
WITHOUT_NS_CACHING=YES

View File

@ -0,0 +1,85 @@
MALLOC_PRODUCTION=yes
WITHOUT_ATM=YES
WITHOUT_AUDIT=YES
WITHOUT_AUTHPF=YES
WITHOUT_BIND=YES
WITHOUT_BIND_DNSSEC=YES
WITHOUT_BIND_ETC=YES
WITHOUT_BIND_LIBS_LWRES=YES
WITHOUT_BIND_MTREE=YES
WITHOUT_BIND_NAMED=YES
WITHOUT_BIND_UTILS=YES
WITHOUT_BLUETOOTH=YES
WITHOUT_CALENDAR=YES
WITHOUT_CDDL=YES
WITH_CLANG=YES
WITH_CLANG_IS_CC=YES
WITHOUT_CLANG_FULL=YES
NO_CTF=YES
WITHOUT_CVS=YES
WITHOUT_DICT=YES
WITHOUT_FORTRAN=YES
WITHOUT_EXAMPLES=YES
WITHOUT_GAMES=YES
WITHOUT_GCOV=YES
WITHOUT_GDB=YES
WITHOUT_GPIB=YES
WITHOUT_HESIOD_LIBC=YES
WITHOUT_HTML=YES
WITHOUT_I4B=YES
#WITHOUT_CXX=YES
WITHOUT_INFO=YES
WITHOUT_IPFILTER=YES
WITHOUT_IPX=YES
WITHOUT_KERBEROS=YES
WITHOUT_LOCALES=YES
WITHOUT_LPR=YES
WITHOUT_MAILWRAPPER=YES
WITHOUT_MAIL=YES
WITHOUT_MAN=YES
WITHOUT_MODULES=YES
WITHOUT_NCP=YES
WITHOUT_NIS=YES
WITHOUT_NLS=YES
WITHOUT_NLS_CATALOGS=YES
WITHOUT_NS_CACHING=YES
WITHOUT_OBJC=YES
WITHOUT_P1003_1B=YES
WITHOUT_PROFILE=YES
WITHOUT_RCMDS=YES
WITHOUT_RCS=YES
WITHOUT_VINUM=YES
WITHOUT_RCMDS=YES
WITHOUT_SENDMAIL=YES
WITHOUT_SETUID_LOGIN=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_RESCUE=YES
WITHOUT_LIB32=YES
WITHOUT_DEBUG_FILES=yes
WITHOUT_OFED=yes
WITHOUT_RESCUE=yes
WITHOUT_ATF=yes
WITHOUT_PC_SYSINSTALL=yes
WITHOUT_SYSINSTALL=yes
WITHOUT_RCS=yes
WITHOUT_RCMDS=yes
WITHOUT_PORTSNAP=yes
IPFIREWALL_DEFAULT_TO_ACCEPT=yes
IP6FIREWALL_DEFAULT_TO_ACCEPT=yes
WITHOUT_ZFS=YES
WITHOUT_ASSERT_DEBUG=YES
#WITH_OPENSSL=YES
WITHOUT_NTP=YES
WITHOUT_INFO=YES
WITHOUT_SVN=YES
WITHOUT_SVNLITE=YES
WITHOUT_MAN_UTILS=YES
WITHOUT_LOCATE=YES
WITHOUT_QUOTAS=YES
WITHOUT_FREEBSD_UPDATE=YES
WITHOUT_NS_CACHING=YES
WITHOUT_GROFF=YES
WITHOUT_TOOLCHAIN=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_SYSCONS=YES
WITHOUT_NS_CACHING=YES

28
freesbie2/COPYING Executable file
View File

@ -0,0 +1,28 @@
/*-
* Copyright (c) 2005-2008 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
* $Id: COPYING,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
*/

161
freesbie2/Makefile Executable file
View File

@ -0,0 +1,161 @@
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: Makefile,v 1.3 2008/05/05 20:51:04 sullrich Exp $
#
# FreeSBIE makefile. Main targets are:
#
# iso: build an iso image
# img: build a loopback image
# flash: copy the built system on a device (interactive)
# freesbie: same of `iso'
#
# pkgselect: choose packages to include in the built system (interactive)
.if defined(MAKEOBJDIRPREFIX)
CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR}
.elif defined(MAKEOBJDIR)
CANONICALOBJDIR:=${MAKEOBJDIR}
.else
CANONICALOBJDIR:=/usr/obj${.CURDIR}
.endif
.if defined(CUSTOM_MAKEOBJDIRPREFIX)
PRE_LAUNCH=env MAKEOBJDIRPREFIX=${CUSTOM_MAKEOBJDIRPREFIX}
.endif
.if ${FREEBSD_VERSION} < 9
pkgtarget=pkginstall
.else
pkgtarget=pkgnginstall
.endif
all: freesbie
freesbie: iso
pkgselect: obj
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} pkgselect
obj: .done_objdir
.done_objdir:
@if ! test -d ${CANONICALOBJDIR}/; then \
mkdir -p ${CANONICALOBJDIR}; \
if ! test -d ${CANONICALOBJDIR}/; then \
${ECHO} ">>> Unable to create ${CANONICALOBJDIR}."; \
exit 1; \
fi; \
fi
@${ECHO} ">>> Setting CANONICALOBJDIR to ${CANONICALOBJDIR}."
@if ! test -f ${CANONICALOBJDIR}/.done_objdir; then \
touch ${CANONICALOBJDIR}/.done_objdir; \
fi
buildworld: .done_buildworld
.done_buildworld: .done_objdir
@-rm -f ${CANONICALOBJDIR}/.tmp_buildworld
@touch ${CANONICALOBJDIR}/.tmp_buildworld
@${ECHO} ">>> Starting buildworld `LC_ALL=C date`."
@${PRE_LAUNCH} sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} buildworld ${CANONICALOBJDIR}/.tmp_buildworld
@${ECHO} ">>> Finished buildworld `LC_ALL=C date`."
@mv ${CANONICALOBJDIR}/.tmp_buildworld ${CANONICALOBJDIR}/.done_buildworld
installworld: .done_installworld
.done_installworld: .done_buildworld
@-rm -f ${CANONICALOBJDIR}/.tmp_installworld
@touch ${CANONICALOBJDIR}/.tmp_installworld
@${ECHO} ">>> Starting installworld `LC_ALL=C date`."
@${PRE_LAUNCH} sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} installworld ${CANONICALOBJDIR}/.tmp_installworld
@${ECHO} ">>> Finished installworld `LC_ALL=C date`."
@mv ${CANONICALOBJDIR}/.tmp_installworld ${CANONICALOBJDIR}/.done_installworld
buildkernel: .done_buildkernel
.done_buildkernel: .done_buildworld
@-rm -f ${CANONICALOBJDIR}/.tmp_buildkernel
@touch ${CANONICALOBJDIR}/.tmp_buildkernel
@${PRE_LAUNCH} sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} buildkernel ${CANONICALOBJDIR}/.tmp_buildkernel
@mv ${CANONICALOBJDIR}/.tmp_buildkernel ${CANONICALOBJDIR}/.done_buildkernel
installkernel: .done_installkernel
.done_installkernel: .done_buildkernel .done_installworld
@-rm -f ${CANONICALOBJDIR}/.tmp_installkernel
@touch ${CANONICALOBJDIR}/.tmp_installkernel
@${PRE_LAUNCH} sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} installkernel ${CANONICALOBJDIR}/.tmp_installkernel
@mv ${CANONICALOBJDIR}/.tmp_installkernel ${CANONICALOBJDIR}/.done_installkernel
pkginstall: .done_pkginstall
.done_pkginstall: .done_installworld
@-rm -f ${CANONICALOBJDIR}/.tmp_pkginstall
@touch ${CANONICALOBJDIR}/.tmp_pkginstall
@${ECHO} ">>> Started pkginstall `LC_ALL=C date`."
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} pkginstall ${CANONICALOBJDIR}/.tmp_pkginstall
@${ECHO} ">>> Finished pkginstall `LC_ALL=C date`."
@mv ${CANONICALOBJDIR}/.tmp_pkginstall ${CANONICALOBJDIR}/.done_pkginstall
pkgnginstall: .done_pkgnginstall
.done_pkgnginstall: .done_installworld
@-rm -f ${CANONICALOBJDIR}/.tmp_pkgnginstall
@touch ${CANONICALOBJDIR}/.tmp_pkgnginstall
@${ECHO} ">>> Started pkgnginstall `LC_ALL=C date`."
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} pkgnginstall ${CANONICALOBJDIR}/.tmp_pkgnginstall
@${ECHO} ">>> Finished pkgnginstall `LC_ALL=C date`."
@mv ${CANONICALOBJDIR}/.tmp_pkgnginstall ${CANONICALOBJDIR}/.done_pkgnginstall
extra: .done_extra
.done_extra: .done_installworld
@-rm -f ${CANONICALOBJDIR}/.tmp_extra
@touch ${CANONICALOBJDIR}/.tmp_extra
@${ECHO} ">>> Started extra `LC_ALL=C date`."
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} extra ${CANONICALOBJDIR}/.tmp_extra
@${ECHO} ">>> Finished extra `LC_ALL=C date`."
@mv ${CANONICALOBJDIR}/.tmp_extra ${CANONICALOBJDIR}/.done_extra
clonefs: .done_clonefs
.done_clonefs: ${pkgtarget} .done_extra
@-rm -f ${CANONICALOBJDIR}/.tmp_clonefs
@touch ${CANONICALOBJDIR}/.tmp_clonefs
@${ECHO} ">>> Started clonefs `LC_ALL=C date`."
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} clonefs ${CANONICALOBJDIR}/.tmp_clonefs
@${ECHO} ">>> Finished clonefs `LC_ALL=C date`."
@mv ${CANONICALOBJDIR}/.tmp_clonefs ${CANONICALOBJDIR}/.done_clonefs
compressfs:
@${ECHO} ">>> Started compressfs `LC_ALL=C date`."
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} compressfs ${CANONICALOBJDIR}/.tmp_extra
@${ECHO} ">>> Finished compressfs `LC_ALL=C date`."
iso: .done_iso
.done_iso: .done_clonefs
@-rm -f ${CANONICALOBJDIR}/.tmp_iso
@touch ${CANONICALOBJDIR}/.tmp_iso
@${ECHO} ">>> Started iso `LC_ALL=C date`."
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} iso ${CANONICALOBJDIR}/.tmp_iso
@${ECHO} ">>> Finished iso `LC_ALL=C date`."
@mv ${CANONICALOBJDIR}/.tmp_iso ${CANONICALOBJDIR}/.done_iso
img: .done_img
.done_img: .done_clonefs
@-rm -f ${CANONICALOBJDIR}/.tmp_img
@touch ${CANONICALOBJDIR}/.tmp_img
@${ECHO} ">>> Started img `LC_ALL=C date`."
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} img ${CANONICALOBJDIR}/.tmp_img
@${ECHO} ">>> Finished img `LC_ALL=C date`."
@mv ${CANONICALOBJDIR}/.tmp_img ${CANONICALOBJDIR}/.done_img
flash: .done_flash
.done_flash: .done_clonefs
@-rm -f ${CANONICALOBJDIR}/.tmp_flash
@${ECHO} ">>> Started flash `LC_ALL=C date`."
@touch ${CANONICALOBJDIR}/.tmp_flash
@${ECHO} ">>> Finished flash `LC_ALL=C date`."
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} flash ${CANONICALOBJDIR}/.tmp_flash
@mv ${CANONICALOBJDIR}/.tmp_flash ${CANONICALOBJDIR}/.done_flash
clean:
@-rm -f .tmp* .done* > /dev/null 2>&1
cleandir: clean
@sh ${.CURDIR}/scripts/launch.sh ${.CURDIR} cleandir

3
freesbie2/README Executable file
View File

@ -0,0 +1,3 @@
This is a customized version of FreeSBIE originally
customized to pfSense by Dario Freni now maintained
as part of pfSense.

307
freesbie2/conf/amd64/FREESBIE Executable file
View File

@ -0,0 +1,307 @@
# $FreeBSD$
# $Id: FREESBIE,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
machine amd64
cpu HAMMER
ident FREESBIE
# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
options SCHED_ULE # ULE scheduler
#options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options NTFS # NT Filesystem
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # Needed by COMPAT_LINUX32
options COMPAT_IA32 # Compatible with i386 binaries
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options STOP_NMI # Stop CPUS using NMI instead of IPI
options UNIONFS # Union filesystem
options TMPFS # efficient memory filesystem
# Workarounds for some known-to-be-broken chipsets (nVidia nForce3-Pro150)
device atpic # 8259A compatability
# Enabling NO_MIXED_MODE gives a performance improvement on some motherboards
# but does not work with some boards (mostly nVidia chipset based).
#options NO_MIXED_MODE # Don't penalize working chipsets
# SMP kernel
options SMP # Symmetric MultiProcessor Kernel
# CPU frequency control
device cpufreq
# Bus supports
device acpi
device pci
# Floppy drives
device fdc
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID # Static device numbering
# SCSI Controllers
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Tekram DC-390(T))
device hptiop # Highpoint RocketRaid 3xxx series
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
#XXX pointer/int warnings
#device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device kbdmux # keyboard multiplexer
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) bus
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
device uart # Generic UART driver
# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da
# If you've got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to the sio and/or ppc drivers):
#device puc
# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit Ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nfe # nVidia nForce MCP on-board Ethernet
device nge # NatSemi DP83820 gigabit Ethernet
#device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100(precedence over 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (``Starfire'')
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 ``EPIC'')
device vge # VIA VT612x gigabit Ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# Wireless NIC cards
device wlan # 802.11 support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # 802.11 AMRR support
device wlan_amrr # AMRR transmit rate control algorithm
device wlan_scan_ap # 802.11 AP mode scanning
device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate tx rate control for ath
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device ural # Ralink Technology RT2500USB wireless NICs
device rum # Ralink Technology RT2501USB wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Serial devices
device ucom # Generic com ttys
device uark # Technologies ARK3116 based serial adapters
device ubsa # Belkin F5U103 and compatible serial adapters
device ubser # BWCT console serial adapters
device uftdi # For FTDI usb serial adapters
device uipaq # Some WinCE based devices
device uplcom # Prolific PL-2303 serial adapters
device uvisor # Visor and Palm devices
device uvscom # USB serial support for DDI pocket's PHS
# USB Ethernet, requires miibus
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
device udav # Davicom DM9601E USB
# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
device fwip # IP over FireWire (rfc2734 and rfc3146)
device dcons # Dumb console driver
device dcons_crom # Configuration ROM for dcons
device bktr
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #print information about
options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
device pf #PF OpenBSD packet-filter firewall
device pflog #logging support interface for PF
device pfsync #synchronization interface for PF
options IPSTEALTH
options IPDIVERT
options GEOM_UZIP # Read-only compressed disks
options SC_PIXEL_MODE # add support for the raster text mode

View File

@ -0,0 +1,132 @@
#!/bin/sh
#
# Default configuration file.
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for license terms.
#
# $FreeBSD$
# $Id: freesbie.defaults.conf,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# Don't modify this file, create your own conf/freesbie.conf instead,
# or set an environment variable called FREESBIE_CONF to the absolute
# path of your configuration file. Alternatively, you can set the
# variables you want to override as environment variables.
#
# Hint: when creating your own file, do not copy freesbie.defaults.conf,
# create it anew and override only the variables you need. Pay attention
# not to use the syntax
# BASEDIR=${BASEDIR:-"/foo/bla"}
# otherwise you'll end up using the default value of BASEDIR instead of
# "foo/bla" !
# Simply write:
# BASEDIR="/foo/bla"
# Variables
# Path where files are installed.
BASEDIR=${BASEDIR:-"/usr/local/freesbie-fs"}
# Temporary directory used when building images
CLONEDIR=${CLONEDIR:-"/usr/local/freesbie-clone"}
# Directory with system sources
SRCDIR=${SRCDIR:-"/usr/src"}
# Path of the built iso, use absolute path
ISOPATH=${ISOPATH:-"/usr/obj/FreeSBIE.iso"}
# Path of the built image, use absolute path
IMGPATH=${IMGPATH:-"/usr/obj/FreeSBIE.img"}
# Default parameters for the image, use diskinfo(1) to obtain yours
SECTS=${SECTS:-501760} # Total number of sectors
SECTT=${SECTT:-32} # Sectors/track
HEADS=${HEADS:-16} # Heads
#
# Optional variables
# Arguments passed to make(1) when building world and kernel.
# Cannot be an environment variable.
#
#MAKEJ_WORLD=${MAKEJ_WORLD:-"-j3"}
#MAKEJ_KERNEL=${MAKEJ_KERNEL:-"-j1"}
# Arguments passed to make(1) when building world and kernel.
# Can also be an environment variable.
#
#MAKEOPT="-DNO_CLEAN"
# Kernel configuration file, with complete path
#
#KERNELCONF=/complete/path/to/MYCUSTOMKERNEL
# If you want to use a custom make.conf, define it here. Otherwise,
# make.conf or make.conf.minimal under conf/ are used.
#
#SRCCONF=/etc/make.conf
# The src.conf file contains settings that will apply to every build
# involving the FreeBSD source tree; see build(7) and src.conf(5)
# only for 7.0-CURRENT
SRC_CONF=${SRC_CONF:-"/dev/null"}
# You can specify which files to add to your system one by one. Just
# put the list in a text file and set the absolute path in FILE_LIST
# variable
#
#FILE_LIST=/my/own/file_list.txt
# You can specify which files to remove from your built system. Just
# put the list in a text file and set the absolute path in PRUNE_LIST
# variable. Wildcards are also accepted
#
#PRUNE_LIST=/my/own/prune_em_all.txt
# Set PFSPKGFILE variable to a text file containing a list of packages to
# install in the built system. This file can be either a pkg_info(1)
# like output either a list of packages without version number. Please
# note that this file will be rewritten if you run `make pkgselect'
#
#PFSPKGFILE=/my/own/pkg_info_output.txt
# Set EXTRA variable to the additional plugins you want to run in your
# system. Please note that plugins are executed in the same order as
# listed in this variable
#
#EXTRA="customroot rootmfs etcmfs"
# Knobs
# Define MINIMAL to build a minimal world (i.e.: use
# make.conf.minimal, full of NO_* knobs.
#
#MINIMAL=YES
# Define NO_BUILDWORLD to avoid rebuilding world. Be sure you know
# what you're doing, you should have an already compiled world
#
#NO_BUILDWORLD=YES
# Define NO_BUILDKERNEL to avoid rebuilding kernel. Be sure you know
# what you're doing, you should have an already compiled kernel
#
#NO_BUILDKERNEL=YES
# Define MAKEOBJDIRPREFIX to use an object directory different than /usr/obj.
# Be sure you know what you're doing, it is easy to introduce suble bugs.
#
#MAKEOBJDIRPREFIX=/path/to/obj
# Define NO_COMPRESSEDFS if you don't want to have compressed fs
# inside the resulting image.
#
#NO_COMPRESSEDFS=YES
# Define NO_UNIONFS if you want to avoid using unionfs in the built
# system
#
NO_UNIONFS=YES # Unionfs is broken in > 6.0, so disable it by default

321
freesbie2/conf/i386/FREESBIE Executable file
View File

@ -0,0 +1,321 @@
$FreeBSD$
# $Id: FREESBIE,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
machine i386
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
ident FREESBIE
# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
options SCHED_ULE # ULE scheduler
#options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options STOP_NMI # Stop CPUS using NMI instead of IPI
options UNIONFS # Union filesystem
options TMPFS # efficient memory filesystem
# To make an SMP kernel, the next two lines are needed
options SMP # Symmetric MultiProcessor Kernel
device apic # I/O APIC
# CPU frequency control
device cpufreq
# Bus support. Do not remove isa, even if you have no isa slots
device eisa
device pci
device firmware
# Floppy drives
device fdc
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID # Static device numbering
# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Tekram DC-390(T))
device hptiop # Highpoint RocketRaid 3xxx series
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
# Power management support (see NOTES for more options)
#device apm
# Add suspend/resume support for the i8254.
device pmtimer
# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) bus
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
device uart # Generic UART driver
# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da
# If you've got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to the sio and/or ppc drivers):
#device puc
# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device le # AMD Am7900 LANCE and Am79C9xx PCnet
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit Ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nfe # nVidia nForce MCP on-board Ethernet
device nge # NatSemi DP83820 gigabit Ethernet
#device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100(precedence over 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (``Starfire'')
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 ``EPIC'')
device vge # VIA VT612x gigabit Ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# ISA devices that use the old ISA shims
#device le
# Wireless NIC cards
device wlan # 802.11 support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # 802.11 support
device wlan_scan_ap # 802.11 AP mode scanning
device wlan_scan_sta # 802.11 STA mode scanning
device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate tx rate control for ath
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.
# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device ural # Ralink Technology RT2500USB wireless NICs
device rum # Ralink Technology RT2501USB wireless NICs
device zyd # ZyDAS zb1211/zb1211b wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Serial devices
device ucom # Generic com ttys
device uark # Technologies ARK3116 based serial adapters
device ubsa # Belkin F5U103 and compatible serial adapters
device ubser # BWCT console serial adapters
device uftdi # For FTDI usb serial adapters
device uipaq # Some WinCE based devices
device uplcom # Prolific PL-2303 serial adapters
device uvisor # Visor and Palm devices
device uvscom # USB serial support for DDI pocket's PHS
# USB Ethernet, requires miibus
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
device fwip # IP over FireWire (rfc2734 and rfc3146)
device dcons # Dumb console driver
device dcons_crom # Configuration ROM for dcons
device bktr
device crypto # core crypto support
device cryptodev # /dev/crypto for access to h/w
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #print information about
options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
device pf #PF OpenBSD packet-filter firewall
device pflog #logging support interface for PF
device pfsync #synchronization interface for PF
options IPSTEALTH
options IPDIVERT
options GEOM_UZIP # Read-only compressed disks
options VESA
options SC_PIXEL_MODE

5
freesbie2/conf/make.conf Executable file
View File

@ -0,0 +1,5 @@
# $FreeBSD$
# $Id: make.conf,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
NO_PROFILE=TRUE
INSTALL_NODEBUG=TRUE

View File

@ -0,0 +1,52 @@
# $FreeBSD$
# $Id: make.conf.minimal,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
NO_ACPI=YES
NO_ATM=YES
NO_AUTHPF=YES
NO_BIND=YES
NO_BIND_DNSSEC=YES
NO_BIND_ETC=YES
NO_BIND_LIBS_LWRES=YES
NO_BIND_MTREE=YES
NO_BIND_NAMED=YES
NO_BIND_UTILS=YES
NO_BLUETOOTH=YES
NO_CVS=YES
NO_CXX=YES
NO_DICT=YES
NO_FORTRAN=YES
NO_GAMES=YES
NO_GCOV=YES
NO_GDB=YES
NO_GPIB=YES
NO_HESIOD_LIBC=YES
NO_HTML=YES
NO_I4B=YES
NO_INET6=YES
NO_INFO=YES
NO_IPFILTER=YES
NO_KERBEROS=YES
NO_KLDLOAD=YES
NO_LIBC_R=YES
NO_LIBPTHREAD=YES
NO_LIBTHR=YES
NO_LPR=YES
NO_MAILWRAPPER=YES
NO_MAN=YES
NO_MODULES=YES
NO_NETCAT=YES
NO_NETGRAPH=YES
NO_NIS=YES
NO_OBJC=YES
NO_P1003_1B=YES
NO_PAM=YES
NO_PF=YES
NO_PROFILE=YES
NO_RESCUE=YES
NO_TOOLCHAIN=YES
NO_USB=YES
NO_VINUM=YES
NO_SENDMAIL=YES
NO_SHAREDOCS=YES
PPP_NO_RADIUS=YES

142
freesbie2/conf/powerpc/FREESBIE Executable file
View File

@ -0,0 +1,142 @@
# $FreeBSD$
# $Id: FREESBIE,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
machine powerpc
cpu OEA
ident FREESBIE
#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints"
makeoptions WERROR=-Wno-error #XXX: We don't want -Werror just now
# Platform support
options POWERMAC #NewWorld Apple PowerMacs
options PSIM #GDB PSIM ppc simulator
#options SCHED_ULE #ULE scheduler
options SCHED_4BSD #4BSD scheduler
options INET #InterNETworking
options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem
options SOFTUPDATES #Enable FFS soft updates support
options UFS_ACL #Support for access control lists
options UFS_DIRHASH #Improve performance on big directories
options MD_ROOT #MD is a potential root device
options NFSCLIENT #Network Filesystem Client
options NFSSERVER #Network Filesystem Server
options NFS_ROOT #NFS usable as root device
options MSDOSFS #MSDOS Filesystem
options CD9660 #ISO 9660 Filesystem
options PROCFS #Process filesystem (requires PSEUDOFS)
options PSEUDOFS #Pseudo-filesystem framework
options GEOM_GPT #GUID Partition Tables.
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 #Keep this for a while
options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI
options KTRACE #ktrace(1) syscall trace support
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
# To make an SMP kernel, the next line is needed
#options SMP # Symmetric MultiProcessor Kernel
# Standard busses
device pci
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
#device atapifd # ATAPI floppy drives
#device atapist # ATAPI tape drives
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
# syscons is the default console driver, resembling an SCO console
device sc
options SC_OFWFB # OFW frame buffer
options SC_DFLT_FONT # compile font in
makeoptions SC_DFLT_FONT=cp437
# Serial (COM) ports
#device sio # 8250, 16[45]50 based serial ports
device zs # Zilog 8350 based serial ports
# PCI Ethernet NICs that use the common MII bus controller code.
device miibus # MII bus support
device gem # Sun GEM/Sun ERI/Apple GMAC
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
# Pseudo devices.
device loop # Network loopback
device mem # Memory and kernel memory devices
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device ofwd # Open Firmware disks
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying/(translation)
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf #Berkeley packet filter
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface
device usb # USB Bus (required)
device ugen # Generic
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da0
device ums # Mouse
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
options KTR
options KTR_COMPILE=0xffffffff
#options KTR_MASK=KTR_SIG
options KTR_VERBOSE
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #print information about
options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
device pf #PF OpenBSD packet-filter firewall
device pflog #logging support interface for PF
device pfsync #synchronization interface for PF
options IPSTEALTH
options IPDIVERT
options TCP_DROP_SYNFIN #drop TCP packets with SYN+FIN
options GEOM_UZIP # Read-only compressed disks
options GEOM_LABEL # Providers labelization.

40
freesbie2/conf/rc.d/unionfs Executable file
View File

@ -0,0 +1,40 @@
#!/bin/sh
#
# $FreeBSD$
# $Id: unionfs,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# PROVIDE: unionfs
# REQUIRE: disks
# BEFORE: hostid
# KEYWORD: nojail
. /etc/rc.subr
name="unionfs"
start_cmd="unionfs_start"
stop_cmd=""
unionfs_start() {
unionsize="$(($(sysctl -n hw.usermem) / 2))b"
device=$(mdconfig -a -t malloc -s ${unionsize})
newfs /dev/${device} > /dev/null 2>&1
mount /dev/${device} /mnt/union
# TMPFS does not support unionfs yet.
#mount -t tmpfs tmpfs /mnt/union
# Use TMPFS for /tmp
mount -t tmpfs tmpfs /tmp
while read uniondir; do
mkdir /mnt/union/${uniondir}
mount_unionfs -o copymode=transparent -o noatime /mnt/union/${uniondir} /${uniondir}
if [ -f /dist/${uniondir}.dirs ]; then
mtree -PU -p /${uniondir} < /dist/${uniondir}.dirs > /dev/null 2>&1
fi
done < /dist/uniondirs
}
load_rc_config $name
run_rc_command "$1"

42
freesbie2/conf/rc.d/uzip Executable file
View File

@ -0,0 +1,42 @@
#!/bin/sh
#
# $FreeBSD$
# $Id: uzip,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# PROVIDE: uzip
# BEFORE: disks
# KEYWORD: nojail
. /etc/rc.subr
name="uzip"
start_cmd="uzip_start"
stop_cmd="uzip_stop"
uzip_start() {
for loopfs in /uzip/*.uzip; do
if [ -f ${loopfs} ]; then
filename=${loopfs#/uzip/}
mountpoint=/${filename%.uzip}
device=/dev/$(mdconfig -a -t vnode -o readonly -f $loopfs)
sleep 1
if [ -c ${device} ]; then
mount -r ${device}.uzip ${mountpoint}
fi
fi
done
}
uzip_stop() {
for mounteddev in /dev/*.uzip; do
if [ -c ${mounteddev} ]; then
device=${mounteddev%.uzip}
umount ${mounteddev}
mdconfig -d -u ${device}
fi
done
}
load_rc_config $name
run_rc_command "$1"

59
freesbie2/extra/README Executable file
View File

@ -0,0 +1,59 @@
$Id: README,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
This directory contains files and subdirectories related to the
plugins'set. Available plugins and a brief description of each
follows.
adduser Add the user "freesbie" to the LiveCD (username can be
set using the FREESBIE_ADDUSER variable
autologin Enable autologin for the user "freesbie"
backup Add support for backup/restore files from a LiveCD
buildmodules Build modules listed in BUILDMODULES variable. Useful
in minimalenvironments when NO_MODULES is set.
comconsole Enable serial console at boot in addition to video
console. To use serial console only , the SERIAL_ONLY
variable should be set
customroot Install file in the customroot/ directory to the live
filesystem. This directory has to be considered as a
/ filesystem. Files are just copied to the livefs
directory after every other operation, just before
packing it into the final image. If a file is already
present in the live fs it will be overrided.
customscripts Run scripts found in the customscripts/ directory in
the livefs chroot, right before the iso is packed.
Useful to do internal operations such as adding users
or editing files in an automatic way.
etcmfs Add support for a /etc memory filesystem
installports Remount the ports' tree under ${BASEDIR}/usr/ports
and install ports listed in the INSTALL_PORTS variable
in the usual category/portname
l10n Set localization.
mountdisks Mount any UFS, FAT, NTFS slice found
pf Create basic PF rulesets at bootime
rootmfs Add support for a /root memory filesystem
sound Detect soundcard and load the correct kernel module.
swapfind Find swap partitions and use them.
varmfs Add support for a /var memory filesystem
xautostart Start X.org at bootime
xconfig Autoconfigure X.org at boottime using X.org
autoconfigure features
xconfig-probe Autoconfigure X.org at bootime using X.org -configure

69
freesbie2/extra/adduser.sh Executable file
View File

@ -0,0 +1,69 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: adduser.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
TMPFILE=$(mktemp -t adduser)
FREESBIE_ADDUSER="${FREESBIE_ADDUSER:-freesbie}"
# If directory /home exists, move it to /usr/home and do a symlink
if [ ! -L ${BASEDIR}/home -a -d ${BASEDIR}/home ]; then
mv ${BASEDIR}/home ${BASEDIR}/usr/home
fi
if [ ! -d ${BASEDIR}/usr/home ]; then
mkdir -p ${BASEDIR}/usr/home
fi
if [ ! -d ${BASEDIR}/usr/home/${FREESBIE_ADDUSER} ]; then
mkdir -p ${BASEDIR}/usr/home/${FREESBIE_ADDUSER}
fi
if [ ! -L ${BASEDIR}/home ]; then
ln -s usr/home ${BASEDIR}/home
fi
set +e
grep -q ^${FREESBIE_ADDUSER}: ${BASEDIR}/etc/master.passwd
if [ $? -ne 0 ]; then
chroot ${BASEDIR} pw useradd ${FREESBIE_ADDUSER} \
-u 1000 -c "FreeSBIE User" -d "/home/${FREESBIE_ADDUSER}" \
-g 0 -G 5 -m -s /bin/tcsh -k /usr/share/skel -w none
else
chroot ${BASEDIR} pw usermod ${FREESBIE_ADDUSER} \
-u 1000 -c "FreeSBIE User" -d "/home/${FREESBIE_ADDUSER}" \
-g 0 -G 5 -m -s /bin/tcsh -k /usr/share/skel -w none
fi
chroot ${BASEDIR} pw group mod operator -m ${FREESBIE_ADDUSER}
set -e
chown -R 1000:0 ${BASEDIR}/usr/home/${FREESBIE_ADDUSER}
if [ ! -z "${NO_UNIONFS:-}" ]; then
echo ">>> Adding init script for /home mfs"
cp ${LOCALDIR}/extra/adduser/homemfs.rc ${BASEDIR}/etc/rc.d/homemfs
chmod 555 ${BASEDIR}/etc/rc.d/homemfs
echo ">>> Saving mtree structure for /home/"
mtree -Pcp ${BASEDIR}/usr/home > ${TMPFILE}
mv ${TMPFILE} ${BASEDIR}/etc/mtree/home.dist
fi

View File

@ -0,0 +1,62 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
# 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD$
# $Id: homemfs.rc,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# PROVIDE: homemfs
# REQUIRE: mountcritlocal
# BEFORE: var
. /etc/rc.subr
name="homemfs"
kenvhomesize=`kenv -q freesbie.homesize`
homesize=${kenvhomesize:-"32m"}
load_rc_config $name
tempdir=/tmp
echo "Generating MFS /usr/home partition"
device=$(mdconfig -a -t malloc -o compress -s ${homesize})
bsdlabel -w ${device} auto
newfs -n -m 2 /dev/${device} > /dev/null 2>&1
mount -o noatime /dev/${device} ${tempdir}
back=$PWD
cd /usr/home
find . -print -depth | cpio -dump --quiet ${tempdir}
cd $back
mtree -PUer -q -p ${tempdir} < /etc/mtree/home.dist > /dev/null 2>&1
umount ${tempdir}
mount -o noatime /dev/${device} /usr/home

20
freesbie2/extra/autologin.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
#
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: autologin.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# Enable autologin of the $FREESBIE_ADDUSER user on the first terminal
#
FREESBIE_ADDUSER="${FREESBIE_ADDUSER:-freesbie}"
echo "# ${FREESBIE_ADDUSER} user autologin" >> ${BASEDIR}/etc/gettytab
echo "${FREESBIE_ADDUSER}:\\" >> ${BASEDIR}/etc/gettytab
echo ":al=${FREESBIE_ADDUSER}:ht:np:sp#115200:" >> ${BASEDIR}/etc/gettytab
sed -i "" "/ttyv0/s/Pc/${FREESBIE_ADDUSER}/" ${BASEDIR}/etc/ttys

26
freesbie2/extra/backup.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
#
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence terms.
#
# $Id: backup.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
# we use ".sh" in the destination so that the script will be sourced
# in the "main" shell
cp extra/backup/restorebackup.rc $BASEDIR/etc/rc.d/restorebackup
chmod 555 $BASEDIR/etc/rc.d/restorebackup
mkdir -p $BASEDIR/usr/local/bin
cp extra/backup/restorebackup.sh $BASEDIR/usr/local/sbin/restorebackup
chmod 555 $BASEDIR/usr/local/sbin/restorebackup
cp extra/backup/savebackup.sh $BASEDIR/usr/local/sbin/savebackup
chmod 555 $BASEDIR/usr/local/sbin/savebackup

View File

@ -0,0 +1,35 @@
#!/bin/sh
#
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence terms
#
# $Id: restorebackup.rc,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# PROVIDE: restorebackup
# REQUIRE: etcmfs varmfs rootmfs
# BEFORE: var mountdisks
. /etc/rc.subr
name="restorebackup"
start_cmd="do_restore"
stop_cmd=":"
restorescript="/usr/local/sbin/restorebackup"
do_restore()
{
backup_dev=`kenv -q freesbie.backup`
if [ "${backup_dev}" != "NO" -o "${backup_dev}" != "no" ]; then
if [ -z ${backup_dev} ]; then
${restorescript}
else
${restorescript} -d ${backup_dev}
fi
fi
}
load_rc_config $name
run_rc_command "$1"

View File

@ -0,0 +1,166 @@
#!/bin/sh
#
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence terms
#
# $Id: restorebackup.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
#tmpmntdir=$(mktemp -d -t fsbiebk)
tmpmntdir="/mnt"
_findfs() {
local offset=${1}
local value=${2}
[ -z "${offset}" -o -z "${value}" ] && return 1
local size=$((($(echo -n "${value}" | wc -c) + 1) / 2))
[ "$(hexdump -v -e '1/1 "%X"' -s "${offset}" -n "${size}" "${harddisk}" 2>/dev/null)" = "${value}" ]
return $?
}
findfs() {
harddisk=$1
while read x; do
local offset="$(echo "${x}" | cut -d : -f 2)"
local value="$(echo "${x}" | cut -d : -f 3)"
if _findfs "${offset}" "${value}"; then
local fs="$(echo "${x}" | cut -d : -f 1)"
echo "${fs}"
return 0
fi
#description:offset:value
done << EOF
UFS2:0x1055C:1915419
EXT:0x438:53EF
FAT16:54:4641543136202020
FAT32:82:4641543332202020
FAT12:54:4641543132202020
NTFS:3:4E54465320202020
ISO9660:0x8001:4344303031
XFS:0:42534658
REISERFS:0x10034:5265497345724673
REISERFS:0x10034:526549734572324673
HFS+:0x400:2B48
LINUXSWAP:0xFF6:53574150535041434532
EOF
return 1
}
find_backup_dev() {
devlist=`/sbin/camcontrol devlist | cut -d\( -f 2 | cut -d\) -f 1 \
| grep da | sed "s/.*da/da/" | sed "s/,.*//"`
if [ "x$devlist" != "x" ]; then
for i in ${devlist}; do
FS=`findfs /dev/$i`
case $FS in
FAT*)
mount_msdosfs /dev/$i ${tmpmntdir}
found=`ls ${tmpmntdir}/FreeSBIE/`
if [ -n "${found}" ]; then
backup_dev="/dev/$i"
umount ${tmpmntdir}
break
fi
;;
*)
;;
esac
done
fi
}
echo -n "Restoring backup: "
set +e
args=`getopt d:f:h`
if [ $? -ne 0 ]; then
usage
exit 2
fi
set -e
set -- $args
for i
do
case "$i"
in
-d)
backup_dev=$2
shift;
shift;
;;
-f)
archive=$2
shift;
shift;
;;
-h)
usage
exit 0
;;
--)
shift;
break
esac
done
if [ $# -gt 0 ] ; then
echo "$0: Extraneous arguments supplied"
usage
fi
if [ -z ${backup_dev} ]; then
find_backup_dev
fi
if [ "x$backup_dev" != "x" ]; then
FS=`findfs ${backup_dev}`
case $FS in
FAT*)
FSTYPE="msdosfs"
;;
UFS*)
FSTYPE="ufs"
;;
EXT)
FSTYPE="ext2fs"
;;
ISO*)
FSTYPE="cd9660"
;;
REISERFS*)
kldload reiserfs 2> /dev/null
FSTYPE="reiserfs"
;;
XFS)
kldload xfs 2> /dev/null
FSTYPE="xfs"
;;
NTFS)
FSTYPE="ntfs"
;;
*)
echo "Filesystem $FS not supported"
;;
esac
mount -t $FSTYPE ${backup_dev} ${tmpmntdir}
if [ -z ${archive} ]; then
archive=`find ${tmpmntdir}/FreeSBIE/ -name "*freesbie_*" | tail -1`
fi
echo -n "Found backup on ${backup_dev}: `basename ${archive}`...Restoring..."
tar -C / -xjPpf ${archive}
umount ${tmpmntdir}
echo "Done"
else
echo "No backup found"
fi

View File

@ -0,0 +1,143 @@
#! /bin/sh
#
# Copyright (c) 2006 Matteo Riondato <rionda@FreeSBIE.org>
#
# See COPYING for licence terms
#
# $Id: savebackup.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
TMPMNTDIR="/mnt"
ARCH_DIR="${TMPMNTDIR}/FreeSBIE/"
ARCH_NAME=`date "+freesbie_%Y%m%d_%H%M"`
ARCHIVE="${ARCH_DIR}${ARCH_NAME}.tar"
BKUP_LIST="/etc/backup.lst"
usage() {
echo "usage: $0 backup_device"
}
_findfs() {
local offset=${1}
local value=${2}
[ -z "${offset}" -o -z "${value}" ] && return 1
local size=$((($(echo -n "${value}" | wc -c) + 1) / 2))
[ "$(hexdump -v -e '1/1 "%X"' -s "${offset}" -n "${size}" "${harddisk}" 2>/dev/null)" = "${value}" ]
return $?
}
findfs() {
harddisk=${1}
while read x; do
local offset="$(echo "${x}" | cut -d : -f 2)"
local value="$(echo "${x}" | cut -d : -f 3)"
if _findfs "${offset}" "${value}"; then
local fs="$(echo "${x}" | cut -d : -f 1)"
echo "${fs}"
return 0
fi
#description:offset:value
done << EOF
UFS2:0x1055C:1915419
EXT:0x438:53EF
FAT16:54:4641543136202020
FAT32:82:4641543332202020
FAT12:54:4641543132202020
NTFS:3:4E54465320202020
EOF
return 1
}
echo "FreeSBIE Backup Script"
if [ $# -ne 1 ]; then
usage
exit 1
elif [ ! -c /dev/$1 ]; then
usage
exit 1
else
FS=`findfs /dev/$1`
case $FS in
UFS2)
FSTYPE="ufs"
;;
FAT*)
FSTYPE="msdosfs"
;;
*)
echo "Slice /dev/$1 has a $FS filesystem. FreeBSD cannot write on $FS."
echo "Please choose another slice"
exit
;;
esac
mount -t $FSTYPE /dev/$1 ${TMPMNTDIR}
if [ ! -e ${ARCH_DIR} ]; then
mkdir ${ARCH_DIR}
fi
fi
MARK=`cat ${BKUP_LIST} | grep -v "#" | grep -v "^-" | wc -l | awk '{print $1}'`
if [ ${MARK} -gt 10 ]; then
MARK=10
fi
BKUPPED="0"
NEXT_MARK="1"
add_to_archive() {
if [ -d $1 ]; then
FILE_LIST=`find $1 -print0 | xargs -0`
NEW_FILE_LIST=""
for i in `cat $BKUP_LIST | grep -v "#" | grep $1 \
| grep "^-" | sed 's/^-//g'`; do
for x in ${FILE_LIST}; do
if [ ${x} != ${i} ]; then
NEW_FILE_LIST=`echo $NEW_FILE_LIST $x`
fi
done
done
if [ "x$NEW_FILE_LIST" != "x" ]; then
FILE_LIST=$NEW_FILE_LIST
fi
else
FILE_LIST=$1
fi
BKUPPING=`echo ${FILE_LIST} | wc -w | awk '{print $1}'`
BKUPPED=$((${BKUPPED} + ${BKUPPING}))
i=0
while [ $i -lt $((${BKUPPING} / 5)) ]; do
echo -n "."
i=$(($i + 1))
done
if [ ${BKUPPED} -ge ${NEXT_MARK} ]; then
echo -n "."
while [ ${NEXT_MARK} -lt ${BKUPPED} ]; do
NEXT_MARK=$((${NEXT_MARK} + ${MARK}))
done
fi
if [ ! -e $ARCHIVE ]; then
tar ncpf $ARCHIVE $FILE_LIST 2> /dev/null
else
tar nrpf $ARCHIVE $FILE_LIST 2> /dev/null
fi
}
echo -n "Adding files: "
for i in `cat ${BKUP_LIST} | grep -v "#" | grep -v "^-"`; do
add_to_archive $i
done
echo " Done"
echo -n "Compressing the archive:"
bzip2 ${ARCHIVE}
echo " Done"
sync
umount ${TMPMNTDIR}

35
freesbie2/extra/buildmodules.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: buildmodules.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# Build modules listed in BUILDMODULES variable. Useful in minimal
# environments when NO_MODULES is set.
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
BUILDMODULES=${BUILDMODULES:-}
makecmd="make __SRCCONF=${SRC_CONF} SRCCONF=${SRC_CONF} TARGET_ARCH=${ARCH} DESTDIR=${BASEDIR}"
set +e # grep could fail.
for i in ${BUILDMODULES} ; do
(cd ${SRCDIR}/sys/modules/${i}/ && \
${makecmd} clean && \
${makecmd} depend && \
${makecmd} all && \
${makecmd} install DESTDIR=${BASEDIR} && \
${makecmd} clean) | grep '^====>'
done
return 0

47
freesbie2/extra/comconsole.sh Executable file
View File

@ -0,0 +1,47 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: comconsole.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# Enable serial console at boot, in addition to video console
# If you want to use only serial console, define the
# SERIAL_ONLY variable somewhere
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
TMPFILE=$(mktemp -t comconsole)
# Remove any existing line regarding console in loader.conf
touch ${BASEDIR}/boot/loader.conf
set +e # grep exit status depends on actual content of loader.conf
grep -v '^console=' ${BASEDIR}/boot/loader.conf > ${TMPFILE};
set -e
mv ${TMPFILE} ${BASEDIR}/boot/loader.conf
# Remove any existing line regarding console in ttys
set +e # grep exit status depends on actual content of ttys
grep -v '^ttyd0' ${BASEDIR}/etc/ttys > ${TMPFILE};
set -e
mv ${TMPFILE} ${BASEDIR}/etc/ttys
printf "ttyd0\t\"/usr/libexec/getty std.9600\"\tdialup\ton\tsecure\n" >> ${BASEDIR}/etc/ttys
if [ -z "${SERIAL_ONLY:-}" ]; then
echo "-D" > ${BASEDIR}/boot.config
echo 'console="vidconsole, comconsole"' >> ${BASEDIR}/boot/loader.conf
else
echo "-h" > ${BASEDIR}/boot.config
echo 'console="comconsole"' >> ${BASEDIR}/boot/loader.conf
fi
return 0

49
freesbie2/extra/customroot.sh Executable file
View File

@ -0,0 +1,49 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: customroot.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
CUSTOMROOT=${CUSTOMROOT:-extra/customroot}
cd ${CUSTOMROOT}
if [ $FREEBSD_VERSION -ge 8 ]; then
tar --exclude=\.git -c -f - * | ( cd /$BASEDIR; tar xfp -)
else
find . -not -name 'README' -not -path '*CVS*' | \
cpio -dump -R 0:0 -v ${BASEDIR} >> ${LOGFILE} 2>&1
fi
# Regenerate the password db if ${CUSTOMROOT}/etc/master.passwd exists
if [ -f etc/master.passwd ]; then
chroot ${BASEDIR} cap_mkdb /etc/master.passwd
chroot ${BASEDIR} pwd_mkdb /etc/master.passwd
fi
# Fix permissions of ssh keys
find ${BASEDIR}/etc/ssh -name 'ssh_host*key' -exec chmod 600 {} \;
# If CUSTOMROOT_MTREE is set, fix file properties using
# $CUSTOMROOT_MTREE file.
# You can easily create your mtree file using:
# mtree -Pcp /your/customrootdir > /your/customrootmtree
# You can also edit the resulting file
if [ ! -z "${CUSTOMROOT_MTREE:-}" ]; then
mtree -PUe -p ${BASEDIR} < ${CUSTOMROOT_MTREE}
fi
cd ${LOCALDIR}

View File

@ -0,0 +1,9 @@
$FreeBSD$
$Id: README,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
This directory contains the custom files to be included into the live
filesystem. It has to be considered as a / filesystem. Files are just
copied to the livefs directory after every other operation, just
before packing it into the final image. If a file is already present
in the live fs it will be overrided.

View File

@ -0,0 +1,28 @@
#!/bin/sh
#
# Copyright (c) 2005 Dominique Goncalves
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: customscripts.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
CUSTOMSCRIPTS=${CUSTOMSCRIPTS:-extra/customscripts}
cd ${CUSTOMSCRIPTS}
for script in `find . -type f -name "*.sh"` ; do
/bin/cp ${script} ${BASEDIR}/root
echo -n " ${script}"
/usr/sbin/chroot ${BASEDIR} /bin/sh /root/${script}
/bin/rm ${BASEDIR}/root/${script}
done
cd ${LOCALDIR}

View File

@ -0,0 +1,4 @@
This directory contains scripts to be executed in the livefs chroot
by customscripts plugin, right before the iso is packed. Useful to
do internal operations such as adding users or editing files in an
automatic way.

29
freesbie2/extra/etcmfs.sh Executable file
View File

@ -0,0 +1,29 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: etcmfs.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
TMPFILE=$(mktemp -t etcmfs)
cp ${LOCALDIR}/extra/etcmfs/etcmfs.rc ${BASEDIR}/etc/rc.d/etcmfs
chmod 555 ${BASEDIR}/etc/rc.d/etcmfs
mtree -Pcp ${BASEDIR}/etc > ${TMPFILE}
mv ${TMPFILE} ${BASEDIR}/etc/mtree/etc.dist
if [ -d ${BASEDIR}/usr/local/etc ]; then
mtree -Pcp ${BASEDIR}/usr/local/etc > ${TMPFILE}
mv ${TMPFILE} ${BASEDIR}/etc/mtree/localetc.dist
fi

View File

@ -0,0 +1,80 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
# 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD$
# $Id: etcmfs.rc,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# PROVIDE: etcmfs
# REQUIRE: mountcritlocal
# BEFORE: var
. /etc/rc.subr
name="etcmfs"
kenvetcsize=`kenv -q freesbie.etcsize`
etcsize=${kenvetcsize:-"10m"}
kenvlocaletcsize=`kenv -q freesbie.localetcsize`
localetcsize=${kenvlocaletcsize:-"32m"}
load_rc_config $name
tempdir=/tmp
echo "Generating MFS /etc partition"
device=$(mdconfig -a -t malloc -o compress -s ${etcsize})
bsdlabel -w ${device} auto
newfs -n -m 2 /dev/${device} > /dev/null 2>&1
mount -o noatime /dev/${device} ${tempdir}
back=$PWD
cd /etc
find . -print -depth | cpio -dump --quiet ${tempdir}
cd $back
mtree -PUer -q -p ${tempdir} < /etc/mtree/etc.dist > /dev/null 2>&1
umount ${tempdir}
mount -o noatime /dev/${device} /etc
if [ -f /etc/mtree/localetc.dist ]; then
device=$(mdconfig -a -t malloc -o compress -s ${localetcsize})
newfs /dev/${device} > /dev/null 2>&1
mount -o noatime /dev/${device} ${tempdir}
cd /usr/local/etc
find . -print -depth | cpio -dump --quiet ${tempdir}
cd $back
mtree -PUer -q -p ${tempdir} < /etc/mtree/localetc.dist > /dev/null 2>&1
umount ${tempdir}
mount -o noatime /dev/${device} /usr/local/etc
fi

75
freesbie2/extra/installports.sh Executable file
View File

@ -0,0 +1,75 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: installports.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# Remount the ports' tree under ${BASEDIR}/usr/ports and install ports
# listed in the INSTALL_PORTS variable in the usual category/portname
# form, e.g.: x11/nvidia-driver audio/emu10kx ...
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
INSTALL_PORTS=${INSTALL_PORTS:-}
if [ ! -z "${INSTALL_PORTS}" ]; then
echo -n ">>> Mounting ports' tree in the livefs chroot..."
set +e
if ! kldstat -v | grep -q nullfs; then
if ! kldload nullfs; then
echo "Cannot find nullfs support in kernel and cannot find the proper module, aborting"
exit 1
fi
fi
set -e
mkdir -p ${BASEDIR}/usr/ports ${BASEDIR}/usr/src
mount_nullfs ${PORTSDIR:-/usr/ports} ${BASEDIR}/usr/ports
mount_nullfs ${SRCDIR:-/usr/src} ${BASEDIR}/usr/src
mount_devfs none ${BASEDIR}/dev
print_error_umount() {
echo "Something went wrong, check errors!" >&2
[ -n "${LOGFILE:-}" ] && \
echo "Log saved on ${LOGFILE}" >&2
umount_null
kill $$ # XXX exit 1 won't work.
}
umount_null() {
umount ${BASEDIR}/usr/ports;
umount ${BASEDIR}/usr/src;
umount ${BASEDIR}/dev;
}
trap "umount_null; exit 1" INT
tmpmakeconf=$(TMPDIR=${BASEDIR}/tmp mktemp -t make.conf)
envvars="BATCH=true"
if [ ! -z "${SRCCONF:-}" ]; then
cat ${SRCCONF} > ${tmpmakeconf}
envvars="${envvars} __SRCCONF=${tmpmakeconf#$BASEDIR}"
fi
for i in ${INSTALL_PORTS}; do
echo "Compiling ${i}"
(script -aq ${LOGFILE} chroot ${BASEDIR} make -C /usr/ports/${i} \
${envvars} clean install clean || print_error_umount;) | grep '^===>'
done
umount_null
trap "" INT
fi
cd ${LOCALDIR}
echo "Done!"

19
freesbie2/extra/l10n.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/sh
#
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: l10n.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
cp ${LOCALDIR}/extra/l10n/l10n.rc ${BASEDIR}/etc/rc.d/l10n
chmod 555 ${BASEDIR}/etc/rc.d/l10n

229
freesbie2/extra/l10n/l10n.rc Executable file
View File

@ -0,0 +1,229 @@
#!/bin/sh
#
# Copyright (c) 2006 Mozhaisky Sergei
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence terms.
#
#
# $Id: l10n.rc,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# PROVIDE: l10n
# REQUIRE: etcmfs syscons xconfig
. /etc/rc.subr
name="l10n"
start_cmd="l10n_start"
stop_cmd=":"
FL=`kenv -q freesbie.lang`
SUPLANG="bg cs/cz de en es fr it pl ru sk ua"
# path
P="/etc"
F_CSHRC="${P}/csh.cshrc"
F_PROFILE="${P}/profile"
F_RC="${P}/rc.conf"
F_TTYS="${P}/ttys"
set_lang() {
case $1 in
# Bulgarian
bg)
X_LANG="cs_CZ.ISO8859-2"
X_MM_CHARSET="ISO-8859-2"
X_KEYMAP="bg.bds.ctrlcaps"
X_XORG_KEYMAP="bg"
;;
# Czech
cz|cs)
X_LANG="cs_CZ.ISO8859-2"
X_MM_CHARSET="ISO-8859-2"
X_KEYMAP="cz.iso2"
X_XORG_KEYMAP="cz"
;;
# German
de)
X_LANG="de_DE.ISO8859-1"
X_MM_CHARSET="ISO-8859-1"
X_KEYMAP="german.iso"
X_XORG_KEYMAP="de"
;;
# English
en)
;;
# Spanish
es)
X_LANG="es_ES.ISO8859-1"
X_MM_CHARSET="ISO-8859-1"
X_KEYMAP="spanish.iso"
X_XORG_KEYMAP="es"
;;
# French
fr)
X_LANG="fr_FR.ISO8859-1"
X_MM_CHARSET="ISO-8859-1"
X_KEYMAP="fr.iso"
X_XORG_KEYMAP="fr"
;;
# Italian
it)
X_LANG="it_IT.ISO8859-15"
X_MM_CHARSET="ISO-8859-15"
X_KEYMAP="it.iso"
X_XORG_KEYMAP="it"
;;
# Polski
pl)
X_LANG="pl_PL.ISO8859-2"
X_MM_CHARSET="ISO-8859-2"
X_KEYMAP="pl_PL.ISO8859-2"
X_XORG_KEYMAP="pl"
;;
# Russian
ru)
X_LANG="ru_RU.KOI8-R"
X_MM_CHARSET="KOI8-R"
X_KEYMAP="ru.koi8-r.win"
;;
# Slovak
sk)
X_LANG="sk_SK.ISO8859-2"
X_MM_CHARSET="ISO-8859-2"
X_KEYMAP="sk.iso2"
X_XORG_KEYMAP="sk"
;;
# Ukrainian
ua)
X_LANG="uk_UA.KOI8-U"
X_MM_CHARSET="KOI8-U"
X_KEYMAP="ua.koi8-u"
X_SCRNMAP="koi8-u2cp866u"
X_XORG_KEYMAP="ua(winkeys)"
;;
esac
}
set_tty()
{
case $1 in
ISO-8859-1|ISO-8859-15)
X_TTY="cons25l1"
;;
ISO-8859-2)
X_TTY="cons25l2"
;;
ISO-8859-7)
X_TTY="cons25l7"
;;
KOI8-R)
X_TTY="cons25r"
;;
KOI8-U)
X_TTY="cons25u"
;;
US-ASCII)
X_TTY="cons25w"
;;
*)
X_TTY="cons25"
;;
esac
}
set_font() {
case $1 in
ISO-8859-1)
X_FONT="iso"
;;
ISO-8859-15)
X_FONT="iso15"
;;
ISO-8859-2)
X_FONT="iso02"
;;
ISO-8859-7)
X_FONT="iso07"
;;
KOI8-R)
X_FONT="cp866"
#X_FONT="866-frenzy"
X_SCRNMAP="koi8-r2cp866"
;;
KOI8-U)
X_FONT="cp866u"
#X_FONT="866-frenzy"
X_SCRNMAP="koi8-r2cp866"
;;
KOI8-U)
X_FONT="cp866u"
#X_FONT="866-frenzy"
X_SCRNMAP="koi8-u2cp866u"
;;
US-ASCII)
X_FONT="iso"
;;
*)
X_FONT="cp437"
;;
esac
}
l10n_start() {
if [ -z ${FL} ]; then
exit 1
fi
echo -n "setting locale: "
set_lang ${FL}
set_tty ${X_MM_CHARSET}
set_font ${X_MM_CHARSET}
DATENOW=`date "+%Y-%m-%d %H:%M:%S"`
# set language
printf "
### locale # ${DATENOW} #
setenv LANG ${X_LANG}
setenv MM_CHARSET ${X_MM_CHARSET}
setenv LC_ALL ${X_LANG}
" >> ${F_CSHRC}
printf "
### locale # ${DATENOW} #
LANG=${X_LANG}; export LANG
MM_CHARSET=${X_MM_CHARSET}; export MM_CHARSET
LC_ALL=${X_LANG}; export LC_ALL
" >> ${F_PROFILE}
# patching ttys
TTY_C=`awk '/ttyv0/{print $4}' ${F_TTYS}`
sed -i "" "s/[[:<:]]${TTY_C}[[:>:]]/${X_TTY}/g" ${F_TTYS}
# patching rc.conf
printf "
### locale # ${DATENOW} #
keymap=\"${X_KEYMAP}\"
font8x16=\"${X_FONT}\"
" >> ${F_RC}
if [ "x${X_SCRNMAP}" != "x" ]; then
printf "
scrnmap=\"${X_SCRNMAP}\"
" >> ${F_RC}
fi
/etc/rc.d/syscons restart 2> /dev/null
# update Xorg keyboard info
if [ -e /etc/X11/xorg.conf ]; then
sed -i "" "s/\"us\"/\"${X_XORG_KEYMAP}\"/" /etc/X11/xorg.conf
fi
echo "."
}
load_rc_config $name
run_rc_command "$1"

31
freesbie2/extra/mountdisks.sh Executable file
View File

@ -0,0 +1,31 @@
#!/bin/sh
#
# Copyright (c) Matteo Riondato
#
# See COPYING for licence terms.
#
# $Id: mountdisks.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
mkdir -p $BASEDIR/mnt $BASEDIR/etc/rc.d/ $BASEDIR/usr/local/sbin/
cp extra/mountdisks/mountdisks.sh $BASEDIR/usr/local/sbin/mountdisks
chmod 555 $BASEDIR/usr/local/sbin/mountdisks
cp extra/mountdisks/mountdisksrc.sh $BASEDIR/etc/rc.d/mountdisks
chmod 555 $BASEDIR/etc/rc.d/mountdisks
for fs in dos ext2fs ntfs ufs reiser; do
for i in 1 2 3 4 5 6 7 8; do
mkdir -p $BASEDIR/mnt/$fs.$i
done
done

View File

@ -0,0 +1,160 @@
#!/bin/sh
#
# Copyright (c) Edson Branti
# Copyright (c) 2006 Timothy Redaelli - Matteo Riondato
#
#$Id: mountdisks.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
###############################################
# We will try to detect a set of disks and
# existing slices and try to mount every
# FAT16/32, NTFS, UFS, EXT2, ReiserFS partition we find.
###############################################
set -e -u
MOUNT_OPTION=
UFS_PART=1
MSDOS_PART=1
NTFS_PART=1
EXT2FS_PART=1
REISERFS_PART=1
UFS_TOO_MANY=0
MSDOS_TOO_MANY=0
NTFS_TOO_MANY=0
EXT2FS_TOO_MANY=0
REISERFS_TOO_MANY=0
#_swap() {
# data=${1}
# until [ -z "${data}" ]; do
# tmp="$(echo ${data} | cut -b -2)"
# data="$(echo ${data} | cut -b 3-)"
# buf="${tmp}${buf}"
# done
# echo ${buf}
#}
OPTION=`echo $@`
if [ "${OPTION}" != "rw" -a "${OPTION}" != "ro" ]; then
echo "Program: mountdisks.sh"
echo "Parameters:"
echo " - ro mounts partitions in READ ONLY mode;"
echo " - rw mounts partitions in READ/WRITE mode."
exit 1
fi
if [ "${OPTION}" = "ro" ]; then
MOUNT_OPTION="-r"
fi
_findfs() {
local offset=${1}
local value=${2}
[ -z "${offset}" -o -z "${value}" ] && return 1
local size=$((($(echo -n "${value}" | wc -c) + 1) / 2))
[ "$(hexdump -v -e '1/1 "%X"' -s "${offset}" -n "${size}" "${harddisk}" 2>/dev/null)" = "${value}" ]
return $?
}
findfs() {
harddisk=$1
while read x; do
local offset="$(echo "${x}" | cut -d : -f 2)"
local value="$(echo "${x}" | cut -d : -f 3)"
if _findfs "${offset}" "${value}"; then
local fs="$(echo "${x}" | cut -d : -f 1)"
echo "${fs}"
return 0
fi
#description:offset:value
done << EOF
UFS2:0x1055C:1915419
EXT:0x438:53EF
FAT16:54:4641543136202020
FAT32:82:4641543332202020
FAT12:54:4641543132202020
NTFS:3:4E54465320202020
ISO9660:0x8001:4344303031
XFS:0:42534658
REISERFS:0x10034:5265497345724673
REISERFS:0x10034:526549734572324673
HFS+:0x400:2B48
LINUXSWAP:0xFF6:53574150535041434532
EOF
return 1
}
for i in `egrep "^(aacd|ad|ar|amrd|da|fla|idad|ips|mlxd|mlyd|pst|twed|wd)[0-9]:" /var/run/dmesg.boot | cut -d':' -f1 | sort -u`; do
find "/dev" -name "${i}s?" | while read a; do
case `findfs ${a}` in
UFS*)
if [ ${UFS_PART} -le 8 ]; then
echo "UFS slice found at ${a}, detecting partitions..."
disklabel -r "${a}" 2>/dev/null | awk -F'[: ]' '/BSD/{print $3}' | while read j; do
if [ ${UFS_PART} -le 8 ]; then
echo "UFS partition found at ${a}${j}, mounting it under /mnt/ufs.${UFS_PART}"
mount ${MOUNT_OPTION} ${a}${j} /mnt/ufs.${UFS_PART} >/dev/null 2>&1
UFS_PART=$((${UFS_PART} + 1))
else
echo "Too many partitions found, only 8 can be mounted simultaneously."
fi
done
else
echo "Too many partitions found, only 8 can be mounted simultaneously."
fi
;;
EXT)
if [ ${EXT2FS_PART} -le 8 ]; then
echo "EXT2FS slice found at ${a}, mounting it under /mnt/ext2fs.${EXT2FS_PART} ..."
mount -t ext2fs ${MOUNT_OPTION} ${a} /mnt/ext2fs.${EXT2FS_PART} >/dev/null 2>&1
EXT2FS_PART=$(({EXT2FS_PART} + 1))
else
echo "Too many slices found, only 8 can be mounted simultaneously."
fi
;;
FAT*)
if [ ${MSDOS_PART} -le 8 ]; then
echo "FAT16/32 slice found at ${a}, mounting it under /mnt/dos.${MSDOS_PART} ..."
mount -t msdos ${MOUNT_OPTION} ${a} /mnt/dos.${MSDOS_PART} >/dev/null 2>&1
MSDOS_PART=$((${MSDOS_PART} + 1))
else
echo "Too many slices found, only 8 can be mounted simultaneously."
fi
;;
NTFS)
if [ ${NTFS_PART} -le 8 ]; then
echo "NTFS slice found at ${a}, mounting it under /mnt/ntfs.${NTFS_PART} ..."
mount -t ntfs ${a} /mnt/ntfs.${NTFS_PART} >/dev/null 2>&1
NTFS_PART=$((${NTFS_PART} + 1))
else
echo "Too many slices found, only 8 can be mounted simultaneously."
fi
;;
REISERFS)
if ! kldstat -q -m reiserfs ; then
kldload reiserfs
fi
if [ ${REISERFS_PART} -le 8 ]; then
echo "ReiserFS slice found at ${a}, mounting it under /mnt/reiser.${REISERFS_PART} ..."
mount -t reiserfs ${a} /mnt/reiser.${REISERFS_PART} >/dev/null 2>&1
REISERFS_PART=$((${REISERFS_PART} + 1))
else
echo "Too many slices found, only 8 can be mounted simultaneously."
fi
;;
*)
;;
esac
done
done

View File

@ -0,0 +1,27 @@
#!/bin/sh
#
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence details
#
# $Id: mountdisksrc.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# PROVIDE mountdisks
# REQUIRE mountcriticlocal dmesg
. /etc/rc.subr
name="mountdisks"
start_cmd="do_mountdisks"
stop_cmd=":"
do_mountdisks()
{
do_mount=`kenv -q freesbie.mountdisks`
if [ "${do_mount}" = "yes" -o "${do_mount}" = "YES" ]; then
sh /usr/local/sbin/mountdisks rw
fi
}
load_rc_config $name
run_rc_command "$1"

22
freesbie2/extra/pf.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
#
# Copyright (c) 2006 Dominique Goncalves
#
# See COPYING for licence terms.
#
#
# $Id: pf.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
echo "pf_rules_enable=\"YES\"" >> $BASEDIR/etc/rc.conf
echo "pf_enable=\"YES\"" >> $BASEDIR/etc/rc.conf
cp extra/pf/pf_rules.sh $BASEDIR/etc/rc.d/pf_rules
chmod 555 $BASEDIR/etc/rc.d/pf_rules

45
freesbie2/extra/pf/pf_rules.sh Executable file
View File

@ -0,0 +1,45 @@
#!/bin/sh
#
# Copyright (c) 2006 Dominique Goncalves
#
# See COPYING for licence terms.
#
# $Id: pf_rules.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
# Create a basic pf.conf.
# Block everything by default,
# Allow everything on lo0,
# Do not create rules on some interface ie: plip0,
# Allow all tcp and udp connections to outside with keep state flags,
# Allow icmp on all interfaces.
#
# PROVIDE: pf_rules
# REQUIRE: netif
# BEFORE: pf
. /etc/rc.subr
name="pf_rules"
rcvar=`set_rcvar`
start_cmd="create_rules"
required_files="$pf_rules"
create_rules ()
{
echo "Creating $pf_rules."
echo "scrub in all" > $pf_rules
echo "block drop all" >> $pf_rules
echo "pass quick on lo0 all" >> $pf_rules
for inf in `ifconfig -l` ; do
if echo $inf | egrep -qv 'lo|plip|gif|tun'; then
echo "pass on $inf proto icmp all" >> $pf_rules
echo "pass out on $inf proto {tcp,udp} from ($inf) to any keep state" >> $pf_rules
echo "pass in on $inf proto tcp from any to ($inf) port 22 keep state" >> $pf_rules
fi
done
}
load_rc_config $name
run_rc_command "$1"

24
freesbie2/extra/rootmfs.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: rootmfs.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
TMPFILE=$(mktemp -t rootmfs)
cp ${LOCALDIR}/extra/rootmfs/rootmfs.rc ${BASEDIR}/etc/rc.d/rootmfs
chmod 555 ${BASEDIR}/etc/rc.d/rootmfs
mtree -Pcp ${BASEDIR}/root > ${TMPFILE}
mv ${TMPFILE} ${BASEDIR}/etc/mtree/root.dist

View File

@ -0,0 +1,62 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
# 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD$
# $Id: rootmfs.rc,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# PROVIDE: rootmfs
# REQUIRE: mountcritlocal
# BEFORE: var
. /etc/rc.subr
name="rootmfs"
kenvrootsize=`kenv -q freesbie.rootsize`
rootsize=${kenvrootsize:-"20m"}
load_rc_config $name
tempdir=/tmp
echo "Generating MFS /root partition"
device=$(mdconfig -a -t malloc -o compress -s ${rootsize})
bsdlabel -w ${device} auto
newfs -n -m 2 /dev/${device} > /dev/null 2>&1
mount -o noatime /dev/${device} ${tempdir}
back=$PWD
cd /root
find . -print -depth | cpio -dump --quiet ${tempdir}
cd $back
mtree -PUer -q -p ${tempdir} < /etc/mtree/root.dist > /dev/null 2>&1
umount ${tempdir}
mount -o noatime /dev/${device} /root

23
freesbie2/extra/sound.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
#
# Copyright (c) 2005 Matteo Riondato
#
# See COPYING for licence terms.
#
#
# $Id: sound.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
mkdir -p $BASEDIR/usr/local/share/sound $BASEDIR/etc/rc.d
cp extra/sound/sound_detect.sh $BASEDIR/etc/rc.d/sound_detect
chmod 555 $BASEDIR/etc/rc.d/sound_detect
cp extra/sound/snd_card_ids.txt $BASEDIR/usr/local/share/sound/

View File

@ -0,0 +1,16 @@
#$Id: snd_card_ids.txt,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
snd_als4000:0x40004005
snd_aureal:0x000112eb
snd_cmi:0x011213f6,0x011113f6,0x010113f6,0x010013f6
snd_cs4281:0x60051013
snd_csa:0x60041013,0x60031013,0x60011013
snd_emu10k1:0x70021102,0x00041102,0x00021102
snd_es137x:0x89381102,0x58801274,0x13713274,0x13711274,0x50001274
snd_ich:0x746d1022,0x74451022,0x00ea10de,0x00da10de,0x008a10de,0x006a10de,0x01b110de,0x24858086,0x24458086,0x24258086,0x24158086,0x71958086,0x266e8086,0x24d58086,0x24c58086,0x70121039
snd_maestro:0x803c1033,0x80581033,0x1978125d,0x1968125d,0x01001285
snd_neomagic:0x800610c8,0x800510c8
snd_solo:0x1969125d
snd_t4dwave:0x70181039,0x545110b9,0x20011023,0x20001023
snd_via8233:0x30591106
snd_via82c686:0x30581106
snd_vibes:0xca005333

View File

@ -0,0 +1,37 @@
#!/bin/sh
#
# Copyright 2002-2005 G.U.F.I. All rights reserved.
# Copyright 2006 Timothy Redaelli
#
# See COPYING for licence terms
#
# $Id: sound_detect.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# Detect the audio card and load the appropriate driver
#
# PROVIDE: sound_detect
. /etc/rc.subr
name="sound_detect"
start_cmd="do_sound_detect"
stop_cmd=":"
do_sound_detect()
{
CARD_FILE=/usr/local/share/sound/snd_card_ids.txt
pciconf -lv | awk -F '[ =]' '/^none/{print $6}' | while read i
do
SND_DRIVER=`fgrep $i $CARD_FILE | cut -d: -f 1`
if [ "$SND_DRIVER" ]; then
echo -n "Loading $SND_DRIVER.ko... "
/sbin/kldload /boot/kernel/$SND_DRIVER.ko
echo "[OK]";
fi
done
}
load_rc_config $name
run_rc_command "$1"

24
freesbie2/extra/suid.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/sh
#
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: suid.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
SUIDFILES="/sbin/ping /sbin/ping6 /sbin/shutdown"
for i in $SUIDFILES ; do
mv ${BASEDIR}$i ${BASEDIR}/usr$i
chroot ${BASEDIR} ln -s /usr$i $i
done

20
freesbie2/extra/swapfind.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
#
# Copyright (c) 2005 Matteo Riondato
#
# See COPYING for licence terms.
#
#
# $Id: swapfind.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
cp extra/swapfind/swapfind.sh $BASEDIR/etc/rc.d/swapfind
chmod 555 $BASEDIR/etc/rc.d/swapfind

View File

@ -0,0 +1,44 @@
#!/bin/sh
#
# Copyright (c) 2005 Matteo Riondato
# Copyright (c) 2006 Timothy Redaelli
#
# See COPYING for licence terms.
#
#
# $Id: swapfind.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# PROVIDE: swapfind
# REQUIRE: mountcritlocal dmesg
. /etc/rc.subr
name="swapfind"
start_cmd="swapfind_start"
stop_cmd=":"
swapfind_start() {
awk -F: '/^(ad|ar|da)[0-9]:/ {print $1}' /var/run/dmesg.boot | sort -u | while read disk
do
slice=1
fdisk $disk | awk /sysid/'{print $2}' | while read sltype
do
if [ "$sltype" = "165" ]; then
bsdlabel -r /dev/${disk}s${slice} 2>/dev/null | awk -F '[ :]+' '/swap/{print $2}' | while read part
do
/sbin/swapon /dev/${disk}s${slice}${part}
done
fi
slice=$(($slice + 1))
done
done
}
load_rc_config $name
run_rc_command "$1"

30
freesbie2/extra/varmfs.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: varmfs.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
TMPFILE=$(mktemp -t varmfs)
cp ${LOCALDIR}/extra/varmfs/varmfs.rc ${BASEDIR}/etc/rc.d/varmfs
chmod 555 ${BASEDIR}/etc/rc.d/varmfs
mtree -Pcp ${BASEDIR}/var > ${TMPFILE}
mv ${TMPFILE} ${BASEDIR}/etc/mtree/var.dist
if [ $FREEBSD_VERSION -ge 9 ]; then
pkg -c ${BASEDIR} info > ${BASEDIR}/pkg_info.txt 2> /dev/null
else
chroot ${BASEDIR} pkg_info > ${BASEDIR}/pkg_info.txt 2>/dev/null
fi

View File

@ -0,0 +1,66 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
# 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD$
# $Id: varmfs.rc,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# PROVIDE: varmfs
# REQUIRE: mountcritlocal
# BEFORE: var
. /etc/rc.subr
name="varmfs"
kenvvarsize=`kenv -q freesbie.varsize`
varsize=${kenvvarsize:-"32m"}
load_rc_config $name
tempdir=/tmp
echo "Generating MFS /var partition"
device=$(mdconfig -a -t malloc -o compress -s ${varsize})
bsdlabel -w ${device} auto
newfs -n -m 2 /dev/${device} > /dev/null 2>&1
mount -o noatime /dev/${device} ${tempdir}
back=$PWD
cd /var
if [ -z "${VARMFS_COPYDBPKG:-}" ]; then
find . -not -path "*/db/pkg*" -print -depth | cpio -dump --quiet ${tempdir}
else
find . -print -depth | cpio -dump --quiet ${tempdir}
fi
cd $back
mtree -PUer -q -p ${tempdir} < /etc/mtree/var.dist > /dev/null 2>&1
umount ${tempdir}
mount -o noatime /dev/${device} /var

22
freesbie2/extra/xautostart.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
#
# Copyright (c) Matteo Riondato
#
# See COPYING for licence terms.
#
# $Id: xautostart.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
#
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
mkdir -p $BASEDIR/mnt $BASEDIR/etc/rc.d/ $BASEDIR/usr/local/sbin/
cp extra/xautostart/xautostart.rc $BASEDIR/etc/rc.d/xautostart
chmod 555 $BASEDIR/etc/rc.d/xautostart

View File

@ -0,0 +1,57 @@
#!/bin/sh
#
# Copyright (c) 2006 Matteo Riondato
#
# See COPYING for licence details
#
# $Id: xautostart.rc,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# PROVIDE xautostart
# REQUIRE homemfs xconfig
. /etc/rc.subr
name="xautostart"
start_cmd="do_xautostart"
stop_cmd=":"
do_xautostart()
{
winmanager=`kenv -q freesbie.wm`
for i in `ls /home`; do
case $winmanager in
xfce*)
wm_command="startxfce4"
;;
fluxbox)
wm_command="fluxbox"
;;
*)
wm_command=""
;;
esac
if [ "x$wm_command" != "x" ]; then
sed -i -e 1s/^.*$/exec\ $wm_command/ \
/home/${i}/.xinitrc
(
echo ""
echo "set XORG_ON=\`ps ac | grep Xorg\`"
echo "if ( \"\$XORG_ON\" != \"\" ) then"
echo "exit"
echo "endif"
echo ""
echo "if ( ! \$?DISPLAY ) then"
echo "set TTY_TYPE=\`echo \$tty | cut -c 4\`"
echo "if ( \$TTY_TYPE == \"v\" ) then"
echo "[ -x /usr/X11R6/bin/startx ] && startx"
echo "endif"
echo "endif"
) >> /home/${i}/.cshrc
fi
done
}
load_rc_config $name
run_rc_command "$1"

View File

@ -0,0 +1,25 @@
#!/bin/sh
#
# Copyright (c) 2005 Timothy Redaelli & Matteo Riondato & Dario Freni
#
# See COPYING for licence terms.
#
#
# $Id: xconfig-probe.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
mkdir -p $BASEDIR/usr/local/share/xconfig/ $BASEDIR/usr/local/etc/rc.d/ $BASEDIR/usr/local/sbin/
cp extra/xconfig-probe/xorg.conf.orig $BASEDIR/usr/local/share/xconfig/
install -C extra/xconfig-probe/xconfig-probe.sh $BASEDIR/usr/local/etc/rc.d/
# XXX Remember to trigger it on your login scripts or in rc.local
install -C extra/xconfig-probe/xkbdlayout.sh $BASEDIR/usr/local/sbin/

View File

@ -0,0 +1,35 @@
#!/bin/sh
# Copyright (c) 2005 Timothy Redaelli
#
# See COPYING for licence terms.
#
# $Id: xconfig-probe.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# Video Card Detection script
if [ ! -x /usr/X11R6/bin/X ]; then
exit
fi
echo "Creating xorg.conf..."
PATH_DEST=/etc/X11
PATH_ORIG=/usr/local/share/xconfig
X_CFG_ORIG=${PATH_ORIG}/xorg.conf.orig
X_CFG_AUTO=/root/xorg.conf.new
X_CFG=${PATH_DEST}/xorg.conf
if [ -f "${X_CFG}" ]; then
echo "xorg.conf found... skipping"
exit
fi
cp "${X_CFG_ORIG}" "${X_CFG}"
if /usr/X11R6/bin/X -configure; then
awk '/^Section "Device"/,/^EndSection/' "${X_CFG_ORIG}" >> "${X_CFG}"
rm -f "${X_CFG_ORIG}"
else
printf 'Section "Device"\n\tIdentifier "Card0"\n\tDriver "vesa"\nEndSection\n' >> "${X_CFG}"
fi

View File

@ -0,0 +1,75 @@
#!/bin/sh
#
# Copyright (c) 2002-2004 G.U.F.I.
# Copyright (c) 2005 Matteo Riondato & Dario Freni
#
# See COPYING for licence terms-
#
# $Id: xkbdlayout.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# X keyboard selection script
X11_ETCPATH=/etc/X11
LOCKFILE=${X11_ETCPATH}/.xkbdsel.keep
X_CFG=${X11_ETCPATH}/xorg.conf
if [ ! -f /usr/X11R6/bin/X -o ! -f ${X_CFG} ]; then
exit
fi
if [ ! -e ${LOCKFILE} ]; then
touch ${LOCKFILE}
else
exit
fi
# Create Xkbd Layout Dialog
DIALOG_FILE=$BASEDIR/usr/local/share/xconfig/xkbddialog.sh
LAYOUT_DIR="/usr/X11R6/lib/X11/xkb/rules/"
if [ -e $LAYOUT_DIR/xorg.lst ]; then
LAYOUT_FILE=$LAYOUT_DIR/xorg.lst
else
exit 1
fi
TMPFILE=$(mktemp -t xorg.lst)
awk 'BEGIN{ORS=" "}{
if ($1 == "!") {
if ($2 == "layout") {
getline;
while ($0 != "!" && $0 != "") {
print $1 " \"" $2 "\"";
getline;
}
}
}
}' $LAYOUT_FILE > $TMPFILE
ARG=$(cat $TMPFILE)
CMD='dialog --title "FreeSBIE X.org Layout" \
--menu "Choose your preferred keyboard layout" 22 50 15 \
'${ARG}'2> '$TMPFILE
set +e
# Running dialog, overwriting TMPFILE
eval "$CMD"
retval=$?
set -e
if [ $retval = 1 ]; then
echo "Canceled"
rm ${LOCKFILE}
exit 1
fi
LAYOUT=$(cat $TMPFILE)
#Re use the TMPFILE
cp ${X_CFG} ${TMPFILE}
sed "s/\"us\"/\"${LAYOUT}\"/" ${TMPFILE} > ${X_CFG}
rm ${TMPFILE}

26
freesbie2/extra/xconfig.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
#
# Copyright (c) 2005 Matteo Riondato & Dario Freni
#
# See COPYING for licence terms.
#
#
# $Id: xconfig.sh,v 1.1.1.1 2008/03/25 19:58:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
mkdir -p $BASEDIR/etc/X11/ $BASEDIR/etc/rc.d/ $BASEDIR/usr/local/sbin/
cp extra/xconfig/xorg.conf.orig $BASEDIR/etc/X11/
cp extra/xconfig/xconfig.sh $BASEDIR/etc/rc.d/xconfig
chmod 555 $BASEDIR/etc/rc.d/xconfig
# XXX Remember to trigger it on your login scripts or in rc.local
cp extra/xconfig/xkbdlayout.sh $BASEDIR/usr/local/sbin/

View File

@ -0,0 +1,73 @@
#!/bin/sh
#
# Copyright (c) 2002-2004 G.U.F.I.
# Copyright (c) 2005-2006 Matteo Riondato & Dario Freni
#
# See COPYING for licence terms.
#
# $Id: xconfig.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# Video Card Detection script
#
#
# PROVIDE: xconfig
# REQUIRE: etcmfs
. /etc/rc.subr
name="xconfig"
start_cmd="create_xorgconf"
stop_cmd=":"
create_xorgconf() {
if [ ! -f /usr/X11R6/bin/X ]; then
exit
fi
echo -n "Creating xorg.conf..."
PATH_DEST=/etc/X11
X_CFG_ORIG=${PATH_DEST}/xorg.conf.orig
X_CFG=${PATH_DEST}/xorg.conf
if [ -f ${X_CFG} ]; then
echo "xorg.conf found... skipping"
exit
fi
pciconf="/usr/sbin/pciconf -lv"
pciline=$(${pciconf} | grep -B 4 VGA | head -n 1)
vendor_id=$(echo ${pciline} | awk '{print "0x" substr($4,12)}')
device_id=$(echo ${pciline} | awk '{print substr($4,6,6)}')
revision=$(echo ${pciline} | awk '{print substr($5,5)}')
subsysvendor_id=$(echo ${pciline} | awk '{print "0x" substr($3,12)}')
subsys_id=$(echo ${pciline} | awk '{print substr($3,6,6)}')
class=$(echo ${pciline} | awk '{print substr($2,7,6)}')
DRIVER_STR=$(/usr/X11R6/bin/getconfig -X 60900000 -I /etc/X11,/usr/X11R6/etc/X11,/usr/X11R6/lib/modules,/usr/X11R6/lib/X11/getconfig -v ${vendor_id} -d ${device_id} -r ${revision} -s ${subsysvendor_id} -b ${subsys_id} -c ${class} 2> /dev/null)
echo -n " using \"${DRIVER_STR}\" driver..."
case "${DRIVER_STR:-NULL}" in
NULL)
echo "no drivers found... using vesa"
cp ${X_CFG_ORIG} ${X_CFG}
;;
vesa)
cp ${X_CFG_ORIG} ${X_CFG}
;;
*)
sed "s/vesa/${DRIVER_STR}/" < ${X_CFG_ORIG} > ${X_CFG}
;;
esac
echo " done."
}
load_rc_config $name
run_rc_command "$1"

View File

@ -0,0 +1,75 @@
#!/bin/sh
#
# Copyright (c) 2002-2004 G.U.F.I.
# Copyright (c) 2005 Matteo Riondato & Dario Freni
#
# See COPYING for licence terms-
#
# $Id: xkbdlayout.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
#
# X keyboard selection script
X11_ETCPATH=/etc/X11
LOCKFILE=${X11_ETCPATH}/.xkbdsel.keep
X_CFG=${X11_ETCPATH}/xorg.conf
if [ ! -f /usr/X11R6/bin/X -o ! -f ${X_CFG} ]; then
exit
fi
if [ ! -e ${LOCKFILE} ]; then
touch ${LOCKFILE}
else
exit
fi
# Create Xkbd Layout Dialog
DIALOG_FILE=$BASEDIR/usr/local/share/xconfig/xkbddialog.sh
LAYOUT_DIR="/usr/X11R6/lib/X11/xkb/rules/"
if [ -e $LAYOUT_DIR/xorg.lst ]; then
LAYOUT_FILE=$LAYOUT_DIR/xorg.lst
else
exit 1
fi
TMPFILE=$(mktemp -t xorg.lst)
awk 'BEGIN{ORS=" "}{
if ($1 == "!") {
if ($2 == "layout") {
getline;
while ($0 != "!" && $0 != "") {
print $1 " \"" $2 "\"";
getline;
}
}
}
}' $LAYOUT_FILE > $TMPFILE
ARG=$(cat $TMPFILE)
CMD='dialog --title "FreeSBIE X.org Layout" \
--menu "Choose your preferred keyboard layout" 22 50 15 \
'${ARG}'2> '$TMPFILE
set +e
# Running dialog, overwriting TMPFILE
eval "$CMD"
retval=$?
set -e
if [ $retval = 1 ]; then
echo "Canceled"
rm ${LOCKFILE}
exit 1
fi
LAYOUT=$(cat $TMPFILE)
#Re use the TMPFILE
cp ${X_CFG} ${TMPFILE}
sed "s/\"us\"/\"${LAYOUT}\"/" ${TMPFILE} > ${X_CFG}
rm ${TMPFILE}

0
freesbie2/pfSense_version Executable file
View File

113
freesbie2/scripts/buildkernel.sh Executable file
View File

@ -0,0 +1,113 @@
#!/bin/sh
#
# pfSense specific buildkernel.sh
#
# Copyright (c) 2009 Scott Ullrich
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms. (hint: BSD License)
#
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
sleep 999
exit 1
fi
if [ -z "${KERNELCONF:-}" ]; then
echo "KERNELCONF not set. Cannot continue."
sleep 999
exit 1
fi
if [ -z "${KERNCONF:-}" ]; then
echo "KERNCONF not set. Cannot continue."
sleep 999
exit 1
fi
if [ -n "${NO_BUILDKERNEL:-}" ]; then
echo "+++ NO_BUILDKERNEL set, skipping build" | tee -a ${LOGFILE}
return
fi
# Set SRC_CONF variable if it's not already set.
if [ -z "${SRC_CONF:-}" ]; then
if [ -n "${MINIMAL:-}" ]; then
SRC_CONF=${LOCALDIR}/conf/make.conf.minimal
else
SRC_CONF=${LOCALDIR}/conf/make.conf.${FREEBSD_VERSION}
fi
fi
# Set __MAKE_CONF variable if it's not already set.
if [ -z "${MAKE_CONF:-}" ]; then
MAKE_CONF=""
else
MAKE_CONF="__MAKE_CONF=$MAKE_CONF"
echo ">>> Setting MAKE_CONF to $MAKE_CONF"
fi
if [ -n "${KERNELCONF:-}" ]; then
export KERNCONFDIR=$(dirname ${KERNELCONF})
export KERNCONF=$(basename ${KERNELCONF})
elif [ -z "${KERNCONF:-}" ]; then
export KERNCONFDIR=${LOCALDIR}/conf/${ARCH}
export KERNCONF="FREESBIE"
fi
if [ -z "${WITH_DTRACE:-}" ]; then
DTRACE=""
else
DTRACE=" WITH_CTF=1"
fi
SRCCONFBASENAME=`basename ${SRC_CONF}`
echo ">>> KERNCONFDIR: ${KERNCONFDIR}"
echo ">>> ARCH: ${ARCH}"
echo ">>> SRC_CONF: ${SRCCONFBASENAME}"
if [ "$DTRACE" != "" ]; then
echo ">>> DTRACE: ${DTRACE}"
fi
unset EXTRA
makeargs="${MAKEOPT:-} SRCCONF=${SRC_CONF} ${MAKE_CONF} NO_KERNELCLEAN=yes TARGET=${ARCH} TARGET_ARCH=${ARCH} ${DTRACE}"
if [ "$ARCH" = "MIPS" ]; then
echo ">>> FreeSBIe2 is running the command: env $MAKE_ENV script -aq $LOGFILE make ${makeargs:-} kernel-toolchain" > ${BUILDER_LOGS}/freesbie2/freesbie_buildworld_cmd.txt
echo ">>> MIPS ARCH deteceted, running make kernel-toolchain ..."
(env "$MAKE_ENV" script -aq $LOGFILE make $makeargs kernel-toolchain $MAKEJ_KERNEL || print_error;) | egrep '^>>>'
fi
echo ">>> FreeSBIe2 is running the command: env $MAKE_ENV script -aq $LOGFILE make $makeargs buildkernel" \
> ${BUILDER_LOGS}/freesbie2/freesbie_buildkernel_cmd.txt
cd $SRCDIR
# If -j is defined sometimes a kernel build
# will fail. Attempt to try again up to 9
# more times and fail out completely if we
# cannot get this right in 10 attempts.
if [ "$MAKEJ_KERNEL" != "" ]; then
COUNTER=1
else
COUNTER=9
fi
while [ "$COUNTER" -lt 10 ]; do
(env "$MAKE_ENV" script -aq $LOGFILE make $makeargs buildkernel $MAKEJ_KERNEL || print_error;) | egrep '^>>>'
if [ "$?" -gt 0 ]; then
if [ "$COUNTER" -gt 9 ]; then
exit 1
fi
echo ">>> make -j error occured attempt #$COUNTER - retrying build up to 10 times"
else
COUNTER=11
fi
COUNTER=`expr $COUNTER + 1`
done
cd $LOCALDIR

62
freesbie2/scripts/buildworld.sh Executable file
View File

@ -0,0 +1,62 @@
#!/bin/sh
#
# pfSense specific buildworld.sh
#
# Copyright (c) 2009 Scott Ullrich
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms (HINT: BSD License)
#
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
sleep 999
exit 1
fi
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
if [ -n "${MINIMAL:-}" ]; then
SRC_CONF=${LOCALDIR}/conf/make.conf.minimal
else
SRC_CONF=${LOCALDIR}/conf/make.conf
fi
fi
echo ">>> Setting SRC_CONF to $SRC_CONF" | tee -a ${LOGFILE}
# Set __MAKE_CONF variable if it's not already set.
if [ -z "${MAKE_CONF:-}" ]; then
MAKE_CONF=""
else
MAKE_CONF="__MAKE_CONF=$MAKE_CONF"
echo ">>> Setting MAKE_CONF to $MAKE_CONF" | tee -a ${LOGFILE}
fi
cd $SRCDIR
unset EXTRA
makeargs="${MAKEOPT:-} ${MAKEJ_WORLD:-} ${MAKE_CONF} SRCCONF=${SRC_CONF} TARGET=${ARCH} TARGET_ARCH=${ARCH}"
if [ "$ARCH" = "mips" ]; then
echo ">>> Building includes for ${ARCH} architecture..." | tee -a ${LOGFILE}
make buildincludes 2>&1 >/dev/null
echo ">>> Installing includes for ${ARCH} architecture..." | tee -a ${LOGFILE}
make installincludes 2>&1 >/dev/null
fi
echo ">>> Building world for ${ARCH} architecture..." | tee -a ${LOGFILE}
echo ">>> FreeSBIe2 is running the command: env $MAKE_ENV script -aq $LOGFILE make ${makeargs:-} buildworld" | tee -a ${LOGFILE}
make buildincludes 2>&1 >/dev/null
make installincludes 2>&1 >/dev/null
(env "$MAKE_ENV" script -aq $LOGFILE make ${makeargs:-} buildworld || print_error;) | egrep '^>>>' | tee -a ${LOGFILE}
cd $LOCALDIR

36
freesbie2/scripts/cleandir.sh Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: cleandir.sh,v 1.3 2008/11/09 07:00:32 sullrich Exp $
set +e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
echo -n ">>> Removing build directories"
if [ -d "${BASEDIR}" ]; then
BASENAME=`basename ${BASEDIR}`
echo -n "$BASENAME "
chflags -R noschg ${BASEDIR}
rm -rf ${BASEDIR} 2>/dev/null
fi
if [ -d "${CLONEDIR}" ]; then
BASENAME=`basename ${CLONEDIR}`
echo -n "$BASENAME "
chflags -R noschg ${CLONEDIR}
rm -rf ${CLONEDIR} 2>/dev/null
fi
set -e -u
echo "Done!"

219
freesbie2/scripts/clonefs.sh Executable file
View File

@ -0,0 +1,219 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: clonefs.sh,v 1.7 2008/05/05 22:49:19 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
# Local functions
# create_vnode ${UFSFILE} ${PARTITION}
#
# Create a loop filesystem in file ${UFSFILE} containing files under
# ${PARTITION} directory (relative path from /)
create_vnode() {
UFSFILE=$1; shift
PARTITION=$1; shift
echo "->create_vnode() ${UFSFILE} ${PARTITION}" >> ${LOGFILE}
SOURCEDIR=${BASEDIR}/${PARTITION}
DESTMOUNTPOINT=${CLONEDIR}/${PARTITION}
cd $SOURCEDIR
# Find the total dir size and initialize the vnode
DIRSIZE=$(($(du -kd 0 | cut -f 1)))
FSSIZE=$(($DIRSIZE + ($DIRSIZE/5)))
rm -f ${UFSFILE}
dd if=/dev/zero of=${UFSFILE} bs=1k count=1 seek=$((${FSSIZE} - 1)) >> ${LOGFILE} 2>&1
DEVICE=/dev/$(mdconfig -a -t vnode -f ${UFSFILE})
newfs -o space ${DEVICE} >> ${LOGFILE} 2>&1
mkdir -p ${DESTMOUNTPOINT}
mount -o noatime ${DEVICE} ${DESTMOUNTPOINT}
echo ${DEVICE}
}
# umount_md_devices ${DEV} [ ${DEV} [ ... ] ]
#
# Umount and detach md devices passed as parameters
umount_md_devices() {
echo "->umount_md_devices() $@" >> ${LOGFILE}
for i in $@; do
umount ${i}
mdconfig -d -u ${i}
done
}
# uzip ${UFSFILE} ${UZIPFILE}
#
# makes an uzip fs on ${UZIPFILE} starting from ${UFSFILE} and removes
# ${UFSFILE}
uzip() {
UFSFILE=$1; shift
UZIPFILE=$1;
echo -n ">>> Compressing ${UFSFILE}..."
mkuzip -v -s 65536 -o ${UZIPFILE} ${UFSFILE} >> ${LOGFILE} 2>&1
[ $? -ne 0 ] && print_error
UFSSIZE=$(ls -l ${UFSFILE} | awk '{print $5}')
UZIPSIZE=$(ls -l ${UZIPFILE} | awk '{print $5}')
PERCENT=$(awk -v ufs=${UFSSIZE} -v uzip=${UZIPSIZE} 'BEGIN{print (100 - (100 * (uzip/ufs)));}')
rm -f ${UFSFILE}
echo " ${PERCENT}% saved"
}
# clone_system
#
# Clone BASEDIR content to CLONEDIR.
clone_system() {
echo -n ">>> Cloning ${BASEDIR} to ${CLONEDIR}..."
mkdir -p ${CLONEDIR}
if [ `mount | grep ${CLONEDIR} | wc -l` -gt 0 ]; then
MOUNTPOINT=`mount | grep ${CLONEDIR} | awk '{ print $3 }'`
echo ">>> Attempting umount of $MOUNTPOINT"
umount -f $MOUNTPOINT
if [ `mount | grep ${CLONEDIR} | wc -l` -gt 0 ]; then
echo ">>> ERROR! Could not umount $MOUNTPOINT"
print_error
fi
fi
if [ -d "${CLONEDIR}" ]; then
chflags -R noschg ${CLONEDIR}
rm -rf ${CLONEDIR}
fi
if [ -z "${NO_COMPRESSEDFS:-}" ]; then
# Preparing loop filesystem to be compressed
mkdir -p ${CLONEDIR}/uzip
USRDEVICE=$(create_vnode ${CLONEDIR}/uzip/usr.ufs usr)
DEVICES=${USRDEVICE}
# When NO_UNIONFS is set, we prefer using a mdmfs var (created
# automatically by rc.d scripts
if [ -z "${NO_UNIONFS:-}" ]; then
VARDEVICE=$(create_vnode ${CLONEDIR}/uzip/var.ufs var)
DEVICES="${DEVICES} ${VARDEVICE}"
fi
trap "umount_md_devices ${DEVICES}; exit 1" INT
fi
echo "Done!"
cd ${BASEDIR}
# If FILE_LIST isn't defined...
if [ -z "${FILE_LIST:-}" ]; then
# then copy the whole filesystem
FBSD_VERSION=`/usr/bin/uname -r | /usr/bin/cut -d"." -f1`
if [ "$FBSD_VERSION" -gt "7" ]; then
echo ">>> Using TAR to clone..."
mkdir -p ${CLONEDIR}
tar cf - * | ( cd /$CLONEDIR; tar xfp -)
else
echo ">>> Using CPIO to clone..."
find . -print -depth | cpio -dump -l -v ${CLONEDIR} >> ${LOGFILE} 2>&1
fi
else
# else pass it to cpio
if [ -f ${FILE_LIST} ]; then
echo "Using ${FILE_LIST} as source" | tee -a ${LOGFILE}
sed 's/^#.*//g' ${FILE_LIST} | cpio -dump -l -v ${CLONEDIR} >> ${LOGFILE} 2>&1
else
echo "${FILE_LIST} is not a valid path, exiting..." | tee -a ${LOGFILE}
if [ -z "${NO_COMPRESSEDFS:-}" ]; then
umount_md_devices ${DEVICES}
fi
exit 1
fi
fi
if [ ! -f $CLONEDIR/sbin/init ]; then
fi
# If PRUNE_LIST file exists, delete files and dir listed in it
if [ -n "${PRUNE_LIST:-}" ]; then
if [ -f ${PRUNE_LIST} ]; then
echo ">>> Deleting files listed in ${PRUNE_LIST}" | tee -a ${LOGFILE}
set +e
(cd ${CLONEDIR} && sed 's/^#.*//g' ${PRUNE_LIST} | xargs rm -rvf >> ${LOGFILE} 2>&1)
if [ -z "${NO_COMPRESSEDFS:-}" ]; then
echo ">>> Filling the uncompressed fs with zeros to compress better"
echo ">>> Don't worry if you see a 'filesystem full' message here"
zerofile=$(env TMPDIR=${CLONEDIR}/usr mktemp -t zero)
dd if=/dev/zero of=${zerofile} >> ${LOGFILE} 2>&1
rm ${zerofile}
fi
set -e
else
echo "${PRUNE_LIST} isn't a regular file, skipping file deletion" | tee -a ${LOGFILE}
fi
fi
if [ -z "${NO_UNIONFS:-}" ]; then
# Preparing unionfs environment
mkdir -p ${CLONEDIR}/dist ${CLONEDIR}/mnt/union
# Declaring dirs to be union'ed. UNION_DIRS contain all the
# directories to be union'ed. UNION_DIRS_MTREE specify which
# directories should recover permissions (perhaps lost by
# the iso filesystem e.g.: etc, root)
UNION_DIRS=${UNION_DIRS:-"etc usr root var"}
UNION_DIRS_MTREE=${UNION_DIRS_MTREE:-"etc root"}
rm -f ${CLONEDIR}/dist/uniondirs
for dir in ${UNION_DIRS}; do
echo ${dir} >> ${CLONEDIR}/dist/uniondirs
done
for dir in ${UNION_DIRS_MTREE}; do
# Saving directory structure
mtree -Pcp ${BASEDIR}/${dir} > ${CLONEDIR}/dist/${dir}.dirs
done
fi
if [ -z "${NO_COMPRESSEDFS:-}" ]; then
umount_md_devices ${DEVICES}
trap "" INT
uzip $CLONEDIR/uzip/usr.ufs $CLONEDIR/uzip/usr.uzip
if [ -z "${NO_UNIONFS:-}" ]; then
uzip $CLONEDIR/uzip/var.ufs $CLONEDIR/uzip/var.uzip
fi
# Copy the rc script for uzip files
cp ${LOCALDIR}/conf/rc.d/uzip ${CLONEDIR}/etc/rc.d/
chmod 555 ${CLONEDIR}/etc/rc.d/uzip
fi
if [ -z "${NO_UNIONFS:-}" ]; then
# Copy the rc script for unionfs
cp ${LOCALDIR}/conf/rc.d/unionfs ${CLONEDIR}/etc/rc.d/
chmod 555 ${CLONEDIR}/etc/rc.d/unionfs
fi
}
clone_system
cd ${LOCALDIR}

123
freesbie2/scripts/compressfs.sh Executable file
View File

@ -0,0 +1,123 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: compressfs.sh,v 1.5 2008/05/05 21:02:57 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
# Local functions
# create_vnode ${UFSFILE} ${PARTITION}
#
# Create a loop filesystem in file ${UFSFILE} containing files under
# ${PARTITION} directory (relative path from /)
create_vnode() {
UFSFILE=$1; shift
PARTITION=$1; shift
echo "->create_vnode() ${UFSFILE} ${PARTITION}" >> ${LOGFILE}
SOURCEDIR=${BASEDIR}/${PARTITION}
DESTMOUNTPOINT=${CLONEDIR}/${PARTITION}
cd $SOURCEDIR
# Find the total dir size and initialize the vnode
DIRSIZE=$(($(du -kd 0 | cut -f 1)))
FSSIZE=$(($DIRSIZE + ($DIRSIZE/5)))
rm -f ${UFSFILE}
dd if=/dev/zero of=${UFSFILE} bs=1k count=1 seek=$((${FSSIZE} - 1)) >> ${LOGFILE} 2>&1
DEVICE=/dev/$(mdconfig -a -t vnode -f ${UFSFILE})
newfs -o space ${DEVICE} >> ${LOGFILE} 2>&1
mkdir -p ${DESTMOUNTPOINT}
mount -o noatime ${DEVICE} ${DESTMOUNTPOINT}
echo ${DEVICE}
}
# umount_md_devices ${DEV} [ ${DEV} [ ... ] ]
#
# Umount and detach md devices passed as parameters
umount_md_devices() {
echo "->umount_md_devices() $@" >> ${LOGFILE}
for i in $@; do
umount ${i}
mdconfig -d -u ${i}
done
}
# uzip ${UFSFILE} ${UZIPFILE}
#
# makes an uzip fs on ${UZIPFILE} starting from ${UFSFILE} and removes
# ${UFSFILE}
uzip() {
UFSFILE=$1; shift
UZIPFILE=$1;
echo -n "Compressing ${UFSFILE}..."
mkuzip -v -s 65536 -o ${UZIPFILE} ${UFSFILE} >> ${LOGFILE} 2>&1
[ $? -ne 0 ] && print_error
UFSSIZE=$(ls -l ${UFSFILE} | awk '{print $5}')
UZIPSIZE=$(ls -l ${UZIPFILE} | awk '{print $5}')
PERCENT=$(awk -v ufs=${UFSSIZE} -v uzip=${UZIPSIZE} 'BEGIN{print (100 - (100 * (uzip/ufs)));}')
rm -f ${UFSFILE}
echo " ${PERCENT}% saved"
}
# compress_system
compress_system() {
echo ">>> Compressing ${CLONEDIR}..."
if [ -z "${NO_COMPRESSEDFS:-}" ]; then
# Preparing loop filesystem to be compressed
mkdir -p ${CLONEDIR}/uzip
USRDEVICE=$(create_vnode ${CLONEDIR}/uzip/usr.ufs usr)
DEVICES=${USRDEVICE}
# When NO_UNIONFS is set, we prefer using a mdmfs var (created
# automatically by rc.d scripts
if [ -z "${NO_UNIONFS:-}" ]; then
VARDEVICE=$(create_vnode ${CLONEDIR}/uzip/var.ufs var)
DEVICES="${DEVICES} ${VARDEVICE}"
fi
trap "umount_md_devices ${DEVICES}; exit 1" INT
fi
cd ${BASEDIR}
if [ -z "${NO_COMPRESSEDFS:-}" ]; then
umount_md_devices ${DEVICES}
trap "" INT
uzip $CLONEDIR/uzip/usr.ufs $CLONEDIR/uzip/usr.uzip
if [ -z "${NO_UNIONFS:-}" ]; then
uzip $CLONEDIR/uzip/var.ufs $CLONEDIR/uzip/var.uzip
fi
# Copy the rc script for uzip files
cp ${LOCALDIR}/conf/rc.d/uzip ${CLONEDIR}/etc/rc.d/
chmod 555 ${CLONEDIR}/etc/rc.d/uzip
rm -rf $CLONEDIR/usr/*
fi
echo "Done!"
}
compress_system
cd ${LOCALDIR}

View File

@ -0,0 +1,5 @@
You can put here your custom scripts that override the default ones.
For example, if you copy buildkernel.sh into this directory, or even
into a subdirectory called ${ARCH} (e.g custom/i386/buildkernel.sh),
during the `buildkernel' phase your script will be called instead of
default.

36
freesbie2/scripts/extra.sh Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: extra.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
if [ -z "${EXTRAPLUGINS:-}" ]; then
# No plugins selected, return with no errors
return
fi
echo -n ">>> Running plugins:"
for plugin in ${EXTRAPLUGINS}; do
echo -n " ${plugin}"
if [ -f "${LOCALDIR}/extra/${ARCH}/${plugin}.sh" ]; then
. ${LOCALDIR}/extra/${ARCH}/${plugin}.sh
elif [ -f "${LOCALDIR}/extra/${plugin}.sh" ]; then
. ${LOCALDIR}/extra/${plugin}.sh
else
#
fi
done
echo " Done!"

56
freesbie2/scripts/flash.sh Executable file
View File

@ -0,0 +1,56 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: flash.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
echo ">>> Flashing bootable UFS image for ${ARCH}..."
FREESBIE_LABEL=${FREESBIE_LABEL:-"FreeSBIE"}
DEF_DEV=/dev/da0
echo -n "Device where your CF card is attached [${DEF_DEV}]: "
read DEVICE
if [ -z "${DEVICE}" ]; then
DEVICE=$DEF_DEV
fi
if [ ! -c "${DEVICE}" ]; then
echo "Unable to find ${DEVICE}, please check the pathname"
exit 1;
fi
# Temporary mount point
TMPDIR=`mktemp -d -t freesbie`
echo "Initializing ${DEVICE}..."
fdisk -BI ${DEVICE} >> ${LOGFILE} 2>&1
bsdlabel -w -B ${DEVICE}s1 >> ${LOGFILE} 2>&1
newfs -b 4096 -f 512 -i 8192 -L ${FREESBIE_LABEL} -O1 -U ${DEVICE}s1a >> ${LOGFILE} 2>&1
mount ${DEVICE}s1a ${TMPDIR}
echo "Writing files..."
cd ${CLONEDIR}
find . -print -depth | cpio -dump -v ${TMPDIR} >> ${LOGFILE} 2>&1
echo "/dev/ufs/${FREESBIE_LABEL} / ufs ro 1 1" > ${TMPDIR}/etc/fstab
umount ${TMPDIR}
cd ${LOCALDIR}
rm -rf ${TMPDIR}

71
freesbie2/scripts/img.sh Executable file
View File

@ -0,0 +1,71 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: img.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
echo ">>> Building bootable UFS image for ${ARCH}..."
FREESBIE_LABEL=${FREESBIE_LABEL:-"FreeSBIE"} # UFS label
# Temp file and directory to be used later
TMPFILE=`mktemp -t freesbie`
TMPDIR=`mktemp -d -t freesbie`
# Size of cylinder in sectors
CYLSIZE=$((${SECTT} * ${HEADS}))
# Number of cylinders
CYLINDERS=$((${SECTS} / ${CYLSIZE}))
# Recalculate number of available sectors
SECTS=$((${CYLINDERS} * ${CYLSIZE}))
echo "Initializing image..."
rm -f ${IMGPATH}
dd if=/dev/zero of=${IMGPATH} count=1 seek=$((${SECTS} - 1)) >> ${LOGFILE} 2>&1
# Attach the md device
DEVICE=`mdconfig -a -t vnode -f ${IMGPATH} -x ${SECTT} -y ${HEADS}`
echo "g c${CYLINDERS} h${HEADS} s${SECTT}" > ${TMPFILE}
echo "p 1 165 ${SECTT} $((${SECTS} - ${SECTT}))" >> ${TMPFILE}
echo "a 1" >> ${TMPFILE}
fdisk -BI ${DEVICE} >> ${LOGFILE} 2>&1
fdisk -i -v -f ${TMPFILE} ${DEVICE} >> ${LOGFILE} 2>&1
bsdlabel -w -B ${DEVICE}s1 >> ${LOGFILE} 2>&1
newfs -b 4096 -f 512 -i 8192 -L ${FREESBIE_LABEL} -O1 -U ${DEVICE}s1a >> ${LOGFILE} 2>&1
mount /dev/${DEVICE}s1a ${TMPDIR}
echo "Done!"
echo -n ">>> Writing files..."
cd ${CLONEDIR}
find . -print -depth | cpio -dump -v ${TMPDIR} >> ${LOGFILE} 2>&1
echo "/dev/ufs/${FREESBIE_LABEL} / ufs ro 1 1" > ${TMPDIR}/etc/fstab
umount ${TMPDIR}
cd ${LOCALDIR}
mdconfig -d -u ${DEVICE}
rm -f ${TMPFILE}
rm -rf ${TMPDIR}
ls -lh ${IMGPATH}
echo "Done!"

View File

@ -0,0 +1,66 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: installkernel.sh,v 1.10 2008/11/03 04:17:14 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
sleep 999
exit 1
fi
# Set SRC_CONF variable if it's not already set.
if [ -z "${SRC_CONF:-}" ]; then
if [ -n "${MINIMAL:-}" ]; then
SRC_CONF=${LOCALDIR}/conf/make.conf.minimal
else
SRC_CONF=${LOCALDIR}/conf/make.conf.${FREEBSD_VERSION}
fi
fi
# Set __MAKE_CONF variable if it's not already set.
if [ -z "${MAKE_CONF:-}" ]; then
MAKE_CONF=""
else
MAKE_CONF="__MAKE_CONF=$MAKE_CONF"
echo ">>> Setting MAKE_CONF to $MAKE_CONF"
fi
if [ -n "${KERNELCONF:-}" ]; then
export KERNCONFDIR=$(dirname ${KERNELCONF})
export KERNCONF=$(basename ${KERNELCONF})
elif [ -z "${KERNCONF:-}" ]; then
export KERNCONFDIR=${LOCALDIR}/conf/${ARCH}
export KERNCONF="FREESBIE"
fi
mkdir -p ${BASEDIR}/boot
#cp ${SRCDIR}/sys/${ARCH}/conf/GENERIC.hints ${BASEDIR}/boot/device.hints
#echo hint.psm.0.flags=0x1000 >> ${BASEDIR}/boot/device.hints
cd ${SRCDIR}
if [ -z "${WITH_DTRACE:-}" ]; then
DTRACE=""
else
DTRACE=" WITH_CTF=1"
fi
makeargs="${MAKEOPT:-} ${MAKEJ_KERNEL:-} ${MAKE_CONF} SRCCONF=${SRC_CONF} TARGET_ARCH=${ARCH} DESTDIR=${KERNEL_DESTDIR}"
echo ">>> FreeSBIe2 is running the command: env $MAKE_ENV script -aq $LOGFILE make ${makeargs:-} installkernel ${DTRACE}" > ${BUILDER_LOGS}/freesbie2/freesbie_installkernel_cmd.txt
(env "$MAKE_ENV" script -aq $LOGFILE make ${makeargs:-} installkernel || print_error;) | egrep '^>>>'
gzip -f9 $KERNEL_DESTDIR/boot/kernel/kernel
cd $LOCALDIR

View File

@ -0,0 +1,66 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: installworld.sh,v 1.11 2008/11/08 21:15:15 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
sleep 999
exit 1
fi
if [ -n "${NO_INSTALLWORLD:-}" ]; then
echo "+++ NO_INSTALLWORLD set, skipping install" | tee -a ${LOGFILE}
return
fi
echo ">>> Installing world for ${ARCH} architecture..."
# Set SRC_CONF variable if it's not already set.
if [ -z "${SRC_CONF:-}" ]; then
if [ -n "${MINIMAL:-}" ]; then
SRC_CONF=${LOCALDIR}/conf/src.conf.minimal
else
SRC_CONF=${LOCALDIR}/conf/src.conf
fi
fi
echo ">>> Setting SRC_CONF to $SRC_CONF" | tee -a ${LOGFILE}
# Set __MAKE_CONF variable if it's not already set.
if [ -z "${MAKE_CONF:-}" ]; then
MAKE_CONF=""
else
MAKE_CONF="__MAKE_CONF=$MAKE_CONF"
echo ">>> Setting MAKE_CONF to $MAKE_CONF" | tee -a ${LOGFILE}
fi
mkdir -p ${BASEDIR}
cd ${SRCDIR}
makeargs="${MAKEOPT:-} ${MAKEJ_WORLD:-} ${MAKE_CONF} SRCCONF=${SRC_CONF} TARGET_ARCH=${ARCH} DESTDIR=${BASEDIR}"
echo ">>> FreeSBIe2 is running the command: env $MAKE_ENV script -aq $LOGFILE make ${makeargs:-} installworld" | tee -a ${LOGFILE}
# make installworld
(env "$MAKE_ENV" script -aq $LOGFILE make ${makeargs:-} installworld || print_error;) | egrep '^>>>' | tee -a ${LOGFILE}
makeargs="${MAKEOPT:-} SRCCONF=${SRC_CONF} TARGET_ARCH=${ARCH} DESTDIR=${BASEDIR}"
set +e
echo ">>> FreeSBIe2 is running the command: env $MAKE_ENV script -aq $LOGFILE make ${makeargs:-} distribution" | tee -a ${LOGFILE}
# make distribution
(env "$MAKE_ENV" script -aq $LOGFILE make ${makeargs:-} distribution || print_error;) | egrep '^>>>' | tee -a ${LOGFILE}
set -e
cd $LOCALDIR

73
freesbie2/scripts/iso.sh Executable file
View File

@ -0,0 +1,73 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: iso.sh,v 1.3 2008/11/08 21:23:31 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
FREESBIE_LABEL=${FREESBIE_LABEL:-"FreeSBIE"}
echo ">>> Building bootable ISO image for ${ARCH}" | tee -a ${LOGFILE}
# This part was taken from the mkisoimages.sh scripts under
# /usr/src/release/${ARCH}/
set +e
type mkisofs 2>&1 | grep " is " >/dev/null
if [ $? -ne 0 ]; then
echo The cdrtools port is not installed. Trying to get it now.
if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then
cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean
elif [ $FREEBSD_VERSION -ge 10 ]; then
if ! pkg install cdrtools; then
echo "Could not get it via pkg install - please go install this" | tee -a ${LOGFILE}
echo "from the ports collection and run this script again." | tee -a ${LOGFILE}
exit 2
fi
else
if ! pkg_add -r cdrtools; then
echo "Could not get it via pkg_add - please go install this" | tee -a ${LOGFILE}
echo "from the ports collection and run this script again." | tee -a ${LOGFILE}
exit 2
fi
fi
fi
set -e
echo ">>> Saving mtree structure..." | tee -a ${LOGFILE}
mtree -Pcp ${CLONEDIR} | bzip2 -9 > root.dist.bz2
mkdir -p ${CLONEDIR}/dist
mv root.dist.bz2 ${CLONEDIR}/dist/
echo "/dev/iso9660/${FREESBIE_LABEL} / cd9660 ro 0 0" > ${CLONEDIR}/etc/fstab
cd ${CLONEDIR}
# Detect if mkisofs support -L or -posix-L
if mkisofs --help 2>&1 | grep -q -- -posix-L; then
LOPT="-posix-L"
else
LOPT="-L"
fi
echo ">>> Running mkisofs..." | tee -a ${LOGFILE}
echo ">>> FreeSBIe2 is running the command: cd ${CLONEDIR} ; mkisofs -b boot/cdboot -no-emul-boot -J -r -ldots -l ${LOPT} -V ${FREESBIE_LABEL} -p FreeSBIE -o $ISOPATH ." | tee -a ${LOGFILE}
mkisofs -b boot/cdboot -no-emul-boot -J -r -ldots -l ${LOPT} -V ${FREESBIE_LABEL} -p pfSense -o $ISOPATH .
echo "ISO created:" | tee -a ${LOGFILE}
ls -lh ${ISOPATH}
cd ${LOCALDIR}

119
freesbie2/scripts/launch.sh Executable file
View File

@ -0,0 +1,119 @@
#!/bin/sh
#
# Wrapper to include configuration variables and invoke correct scripts
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for license terms.
#
# $FreeBSD$
# $Id: launch.sh,v 1.8 2008/12/30 23:24:09 smos Exp $
#
# Usage: launch.sh ${TARGET} [ ${LOGFILE} ]
set -e -u
if [ "`id -u`" != "0" ]; then
echo "Sorry, this must be done as root."
sleep 999
exit 1
fi
# If the FREESBIE_DEBUG environment variable is set, be verbose.
[ ! -z "${FREESBIE_DEBUG:-}" ] && set -x
# Set the absolute path for the toolkit dir
LOCALDIR=$(cd $(dirname $0)/.. && pwd)
CURDIR=$1;
shift;
TARGET=$1;
shift;
# Set LOGFILE. If it's a tmp file, schedule for deletion
if [ -z "${LOGFILE:-}" ]; then
if [ -n "${1:-}" ]; then
LOGFILE=$1
REMOVELOG=0
else
LOGFILE=$(mktemp -q /tmp/freesbie.XXXXXX)
REMOVELOG=1
fi
else
REMOVELOG=0
fi
echo ">>> LOGFILE set to $LOGFILE. REMOVELOG is $REMOVELOG." | tee -a ${LOGFILE}
cd $CURDIR
. ./conf/freesbie.defaults.conf
FREESBIE_CONF=${FREESBIE_CONF:-./conf/freesbie.conf}
[ -f ${FREESBIE_CONF} ] && . ${FREESBIE_CONF}
# XXX set $ARCH and mandatory variables here.
if [ ! -z "${ARCH:-}" ]; then
ARCH=${ARCH:-`uname -p`}
fi
# Some variables can be passed to make only as environment, not as parameters.
# usage: env $MAKE_ENV make $makeargs
MAKE_ENV=${MAKE_ENV:-}
if [ -n ${MAKEOBJDIRPREFIX:-} ]; then
MAKE_ENV="$MAKE_ENV MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}"
fi
if [ -n ${MAKEOBJDIR:-} ]; then
MAKE_ENV="$MAKE_ENV MAKEOBJDIR=${MAKEOBJDIR}"
fi
echo ">>> MAKE_ENV set on launch.sh to $MAKE_ENV" | tee -a ${LOGFILE}
report_error() {
if [ ! -z ${FREESBIE_ERROR_MAIL:-} ]; then
HOSTNAME=`hostname`
IPADDRESS=`ifconfig | grep inet | grep netmask | grep broadcast | awk '{ print $2 }'`
cat ${LOGFILE} | \
mail -s "FreeSBIE (pfSense) build error in ${TARGET} phase ${IPADDRESS} - ${HOSTNAME} " \
${FREESBIE_ERROR_MAIL}
fi
}
print_error() {
echo "Something went wrong, check errors!" >&2
[ -n "${LOGFILE:-}" ] && \
echo "Log saved on ${LOGFILE}" >&2
report_error
tail -n20 ${LOGFILE} >&2
sleep 999
kill $$ # XXX exit 1 won't work.
}
# If SCRIPTS_OVERRIDE is not defined, set it to ${LOCALDIR}/scripts/custom
SCRIPTS_OVERRIDE=${SCRIPTS_OVERRIDE:-"${LOCALDIR}/scripts/custom"}
# Check order:
# - ${SCRIPTS_OVERRIDE}/${ARCH}/${TARGET}.sh
# - ${SCRIPTS_OVERRIDE}/${TARGET}.sh
# - scripts/${ARCH}/${TARGET}.sh
# - scripts/${TARGET}.sh
if [ -f "${SCRIPTS_OVERRIDE}/${ARCH}/${TARGET}.sh" ]; then
. ${SCRIPTS_OVERRIDE}/${ARCH}/${TARGET}.sh
elif [ -f "${SCRIPTS_OVERRIDE}/${TARGET}.sh" ]; then
. ${SCRIPTS_OVERRIDE}/${TARGET}.sh
elif [ -f "${LOCALDIR}/scripts/${ARCH}/${TARGET}.sh" ]; then
. ${LOCALDIR}/scripts/${ARCH}/${TARGET}.sh
elif [ -f "${LOCALDIR}/scripts/${TARGET}.sh" ]; then
. ${LOCALDIR}/scripts/${TARGET}.sh
fi
[ $? -ne 0 ] && report_error
if [ ${REMOVELOG} -eq 1 ]; then
rm -f ${LOGFILE}
fi

202
freesbie2/scripts/pkginstall.sh Executable file
View File

@ -0,0 +1,202 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: pkginstall.sh,v 1.19 2007/01/16 10:14:46 rionda Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
#$BASE_DIR/tools/builder_scripts/packages
PFSPKGFILE=/tmp/pfspackages
if [ ! -f ${PFSPKGFILE} ]; then
return
fi
if [ "${ARCH}" != "$(uname -p)" ]; then
echo "----------------------------------------------------------"
echo "You can install packages only if your machine architecture"
echo "is the same of the target architecture."
echo "----------------------------------------------------------"
echo "Skipping package installation."
sleep 5
return
fi
WORKDIR=$(mktemp -d -t freesbie)
CHROOTWD=$(TMPDIR=${BASEDIR}/tmp mktemp -d -t freesbie)
escape_pkg() {
echo $1 | sed 's/\+/\\\+/'
}
find_origins() {
cd ${WORKDIR}
touch origins
echo -n ">>> Finding origins... "
while read row; do
if [ -z "${row}" ]; then continue; fi
set +e
if (echo ${row} | grep -q "^#"); then continue; fi
set -e
pkg=$(echo $row | cut -d\ -f 1)
# pkg_info might fail if the listed package isn't present
set +e
origins=$(pkg_info -EX "^$(escape_pkg ${pkg})($|-[^-]+$)")
retval=$?
set -e
if [ ${retval} -eq 0 ]; then
# Valid origin(s) found
for origin in ${origins}; do
echo ${origin} >> tmp_origins
done
else
echo
echo "Warning! Package \"${pkg}\" is listed"
echo "in ${PFSPKGFILE},"
echo "but is not present in your system. "
echo "Press CTRL-C in ten seconds if you want"
echo "to stop now or I'll continue anyway"
sleep 10
fi
done < ${PFSPKGFILE}
if [ -f tmp_origins ]; then
sort -u tmp_origins > origins
tot=$(wc -l origins | awk '{print $1}')
echo "${tot} found"
else
echo "none found"
fi
}
find_deps() {
cd ${WORKDIR}
touch deps
echo -n ">>> Finding dependencies... "
while read pkg; do
deps=$(pkg_info -qr ${pkg} | cut -d ' ' -f 2)
for dep in ${deps}; do
echo ${dep} >> tmp_deps
done
done < origins
if [ -f tmp_deps ]; then
sort -u tmp_deps > deps
tot=$(wc -l deps | awk '{print $1}')
echo "${tot} found"
else
echo "none found"
fi
}
sort_packages() {
cd ${WORKDIR}
pkgfile=${WORKDIR}/packages
presortfile=${WORKDIR}/presortpkg
sortfile=${WORKDIR}/sortpkg
sort -u deps origins > $pkgfile
[ -f $sortfile ] && rm $sortfile
touch $sortfile
count() {
file=$1;
echo $(wc -l ${file} | awk '{print $1}')
}
totpkg=$(wc -l $pkgfile | awk '{print $1}')
echo -n ">>> Sorting ${totpkg} packages by dependencies... "
touch $presortfile
for i in $(cat $pkgfile); do
if [ -e /var/db/pkg/$i/+REQUIRED_BY ]; then
for j in $(cat /var/db/pkg/$i/+REQUIRED_BY); do
if grep -q ^${j}\$ $pkgfile; then
echo $i $j >> $presortfile
else
echo $i NULL >> $presortfile
fi
done
else
echo $i NULL >> $presortfile
fi
done
tsort $presortfile | grep -v '^NULL$' > $sortfile
echo "done."
}
copy_packages() {
export PACKAGE_BUILDING=yo
chrootpkgpath=${CHROOTWD#$BASEDIR}
pkgfile=${WORKDIR}/sortpkg
pkgaddcmd="chroot ${BASEDIR} pkg_add -fv"
totpkg=$(wc -l $pkgfile | awk '{print $1}')
echo ">>> Copying ${totpkg} packages"
cd ${CHROOTWD}
set +e
echo -n "[0"
count=1
while read pkg; do
# Progress bar
if [ $((${count} % 10)) -eq 0 ]; then
echo -n ${count}
else
echo -n "."
fi
count=$((${count} + 1))
echo ">>> Running pkg_create -b ${pkg} ${CHROOTWD}/${pkg}.tar" >> ${LOGFILE}
pkg_create -b ${pkg} ${CHROOTWD}/${pkg}.tar >> ${LOGFILE} 2>&1
echo ">>> Running $pkgaddcmd ${chrootpkgpath}/${pkg}.tar" >> ${LOGFILE}
$pkgaddcmd ${chrootpkgpath}/${pkg}.tar >> ${LOGFILE} 2>&1
rm ${CHROOTWD}/${pkg}.tar
done < $pkgfile
echo "]"
set -e
}
delete_old_packages() {
echo ">>> Deleting previously installed packages"
chroot ${BASEDIR} pkg_delete -a >> ${LOGFILE} 2>&1
}
# Deletes workdirs
purge_wd() {
cd ${LOCALDIR}
rm -rf ${WORKDIR} ${BASEDIR}/tmp/freesbie*
}
trap "purge_wd && exit 1" INT
echo ">>> Installing packages listed in ${PFSPKGFILE}"
find_origins
if [ "$(wc -l ${WORKDIR}/origins | awk '{print $1}')" = "0" ]; then
# Empty packages file, skip.
purge_wd
return
fi
find_deps
sort_packages
#delete_old_packages
copy_packages
purge_wd

215
freesbie2/scripts/pkgnginstall.sh Executable file
View File

@ -0,0 +1,215 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: pkginstall.sh,v 1.19 2007/01/16 10:14:46 rionda Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
#$BASE_DIR/tools/builder_scripts/packages
PFSPKGFILE=${PFSPKGFILE:-/tmp/pfspackages}
if [ ! -f ${PFSPKGFILE} ]; then
return
fi
if [ "${ARCH}" != "$(uname -p)" ]; then
echo "----------------------------------------------------------"
echo "You can install packages only if your machine architecture"
echo "is the same of the target architecture."
echo "----------------------------------------------------------"
echo "Skipping package installation."
sleep 5
return
fi
WORKDIR=$(mktemp -d -t freesbie)
prepare_environment() {
rm -r ${PFSENSEBASEDIR}/var/db/pkg
cp -r /var/db/pkg ${PFSENSEBASEDIR}/var/db
}
cleanup_environment() {
rm -r ${PFSENSEBASEDIR}/var/db/pkg
mkdir -p ${PFSENSEBASEDIR}/var/db/pkg
}
escape_pkg() {
echo $1 | sed 's/\+/\\\+/'
}
find_origins() {
cd ${WORKDIR}
touch origins
echo -n ">>> Finding origins... " | tee -a ${LOGFILE}
while read row; do
if [ -z "${row}" ]; then continue; fi
set +e
if (echo ${row} | grep -q "^#"); then continue; fi
set -e
pkg=$(echo $row | cut -d\ -f 1)
# pkg query might fail if the listed package isn't present
set +e
origins=$(pkg query -x %n-%v "^$(escape_pkg ${pkg})($|-[^-]+$)")
retval=$?
set -e
if [ ${retval} -eq 0 ]; then
# Valid origin(s) found
for origin in ${origins}; do
echo ${origin} >> tmp_origins
done
else
echo
echo "Warning! Package \"${pkg}\" is listed" | tee -a ${LOGFILE}
echo "in ${PFSPKGFILE}," | tee -a ${LOGFILE}
echo "but is not present in your system. " | tee -a ${LOGFILE}
echo "Press CTRL-C in ten seconds if you want" | tee -a ${LOGFILE}
echo "to stop now or I'll continue anyway" | tee -a ${LOGFILE}
echo " " | tee -a ${LOGFILE}
sleep 10
fi
done < ${PFSPKGFILE}
if [ -f tmp_origins ]; then
sort -u tmp_origins > origins
tot=$(wc -l origins | awk '{print $1}')
echo "${tot} found" | tee -a ${LOGFILE}
else
echo "none found" | tee -a ${LOGFILE}
fi
}
find_deps() {
cd ${WORKDIR}
touch deps
echo ">>> Finding dependencies... " | tee -a ${LOGFILE}
while read pkg; do
deps=$(pkg info -qd ${pkg})
for dep in ${deps}; do
echo ">>>>> Dependency ${dep} found... " >> ${LOGFILE}
echo ${dep} >> tmp_deps
done
done < origins
if [ -f tmp_deps ]; then
sort -u tmp_deps > deps
tot=$(wc -l deps | awk '{print $1}')
echo ">>> Total: ${tot} dependencies found" | tee -a ${LOGFILE}
else
echo ">>> No dependencies found" | tee -a ${LOGFILE}
fi
}
sort_packages() {
cd ${WORKDIR}
pkgfile=${WORKDIR}/packages
presortfile=${WORKDIR}/presortpkg
sortfile=${WORKDIR}/sortpkg
sort -u deps origins > $pkgfile
[ -f $sortfile ] && rm $sortfile
touch $sortfile
totpkg=$(wc -l $pkgfile | awk '{print $1}')
echo -n ">>> Sorting ${totpkg} packages by dependencies... " | tee -a ${LOGFILE}
touch $presortfile
for i in $(cat $pkgfile); do
_REQUIREDPKG=`pkg info -rq $i`
echo "Found: ${_REQUIREDPKG}" >> ${LOGFILE}
_COUNG_DEP=`echo $_REQUIREDPKG | wc -l`
if [ $_COUNG_DEP -gt 0 ]; then
for j in $_REQUIREDPKG; do
if grep -q ^${j}\$ $pkgfile; then
echo $i $j >> $presortfile
else
echo $i NULL >> $presortfile
fi
done
else
echo $i NULL >> $presortfile
fi
done
tsort $presortfile | grep -v '^NULL$' > $sortfile
echo "done." | tee -a ${LOGFILE}
}
copy_packages() {
export PACKAGE_BUILDING=yo
chrootpkgpath="${BASEDIR}/${WORKDIR}"
pkgfile=${WORKDIR}/sortpkg
pkgaddcmd="pkg -c ${BASEDIR} add -f"
totpkg=$(wc -l $pkgfile | awk '{print $1}')
echo ">>> Copying ${totpkg} packages" | tee -a ${LOGFILE}
mkdir -p ${chrootpkgpath}
set +e
echo -n "[0"
count=1
while read pkg; do
# Progress bar
if [ $((${count} % 10)) -eq 0 ]; then
echo -n ${count}
else
echo -n "."
fi
count=$((count + 1))
echo ">>> Running pkg create -o ${chrootpkgpath} ${pkg}" >> ${LOGFILE}
pkg create -o ${chrootpkgpath} -f txz ${pkg} >> ${LOGFILE} 2>&1
echo ">>> Running $pkgaddcmd ${WORKDIR}/${pkg}.txz" >> ${LOGFILE}
$pkgaddcmd ${WORKDIR}/${pkg}.txz >> ${LOGFILE} 2>&1
rm ${chrootpkgpath}/${pkg}.txz
done < $pkgfile
echo "]" | tee -a ${LOGFILE}
set -e
}
delete_old_packages() {
echo ">>> Deleting previously installed packages" | tee -a ${LOGFILE}
pkg -c ${BASEDIR} delete -a >> ${LOGFILE} 2>&1
}
# Deletes workdirs
purge_wd() {
cd ${LOCALDIR}
rm -rf ${WORKDIR} ${BASEDIR}/${WORKDIR}
}
trap "purge_wd && exit 1" INT
echo ">>> Installing packages listed in ${PFSPKGFILE}" | tee -a ${LOGFILE}
find_origins
if [ "$(wc -l ${WORKDIR}/origins | awk '{print $1}')" = "0" ]; then
# Empty packages file, skip.
purge_wd
return
fi
prepare_environment
find_deps
sort_packages
#delete_old_packages
copy_packages
purge_wd
cleanup_environment

219
freesbie2/scripts/pkgselect.sh Executable file
View File

@ -0,0 +1,219 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: pkgselect.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
set -e -u
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
WORKDIR=$(mktemp -d -t freesbie)
PFSPFSPKGFILE=${PFSPFSPKGFILE:-${LOCALDIR}/packages};
# Check if there are packages installed on the system
check_pkgs() {
count=$(pkg_info -Qoa | wc -l)
if [ ${count} -eq 0 ]; then
/usr/bin/dialog --title "FreeSBIE Packages selection" --clear \
--msgbox "Sorry, you don't have any packages installed.\n\nPlease install at least the packages you want\nto include in your distribution." 10 50
exit
fi
}
escape_pkg() {
echo $1 | sed 's/\+/\\\+/'
}
create_lists() {
cd ${WORKDIR}
echo "Creating list of available packages on the build machine..."
# Create a different file for each category. Each row in each file
# will look like:
# PKGNAME PKGNAME-version
pkg_info -Qoa | awk \
' BEGIN { FS=":|/" }
{
a=$1;
gsub("-[^-]+$", "", a);
system("echo " $1 " >> " $2 ".src");
}
';
CATEGORIES=$(basename -s '.src' *.src)
# If PFSPKGFILE already exists, find the listed packages and write
# them down in the proper category selection files
if [ -f ${PFSPKGFILE} ]; then
echo "Using ${PFSPKGFILE} as source..."
while read row; do
if [ -z ${row} ]; then continue; fi
pkg=$(echo $row | cut -d\ -f 1)
# pkg_info might fail if the listed package isn't present
set +e
origins=$(pkg_info -QoX "^$(escape_pkg ${pkg})($|-[^-]+$)")
retval=$?
set -e
if [ ${retval} -eq 0 ]; then
# Valid origin(s) found
for origin in ${origins}; do
echo ${origin} | awk \
' BEGIN { FS=":|/" }
{
system("echo " $1 " >> " $2 ".sel");
}
';
done
else
echo
echo "Warning! Package \"${pkg}\" is listed"
echo "in ${PFSPKGFILE},"
echo "but is not present in your system. "
echo "Press CTRL-C in ten seconds if you want"
echo "to stop now or I'll continue anyway"
sleep 10
fi
done < ${PFSPKGFILE}
fi
}
category_dialog() {
CATEGORY=$1;
ARG=""
cd ${WORKDIR}
if [ -f ${CATEGORY}.src ]; then
while read i;
do
# If a file with previous selections exists check whether
# this package is selected or not
status="off"
if [ -f ${CATEGORY}.sel ]; then
# grep might exit with error
set +e
grep -qE "^${i}($|-[^-]+$)" ${CATEGORY}.sel;
retval=$?
set -e
if [ ${retval} -eq 0 ]; then
status="on";
fi
fi
ARG="${ARG} ${i} \"\" ${status}"
done < ${CATEGORY}.src
fi
# Construct the dialog command line
CMD='/usr/bin/dialog --title "FreeSBIE Packages selection" --clear \
--checklist \
"These are the available packages under the '${CATEGORY}' category" \
-1 -1 10 '${ARG}' 2> '${CATEGORY}.tmp
# Disabling -e flag because dialog can exit with values different
# than zero.
set +e
# Running dialog
eval "$CMD"
retval=$?
set -e
case ${retval} in
0)
# Put the list of selected packages in ${CATEGORY}.sel, one per row
rm -f ${CATEGORY}.sel
pkglist=$(cat ${CATEGORY}.tmp)
if [ -n "${pkglist}" ]; then
for pkg in ${pkglist}; do
eval "echo ${pkg} >> ${CATEGORY}.sel"
done
fi
;;
*)
# Abnormal exit, don't do anything
;;
esac
main_dialog
}
main_dialog() {
ARG=""
for i in $CATEGORIES;
do
ARG="${ARG} ${i} \"\""
done
# Construct the dialog command line
CMD='/usr/bin/dialog --title "FreeSBIE Packages selection" --clear \
--menu "These are the available packages on your system \n \
Choose packages to include in FreeSBIE" -1 -1 10 \
"save and exit" "" " " "" '${ARG}' 2> '${WORKDIR}/cat_choice
# Disabling -e flag because dialog can exit with values different
# than zero.
set +e
# Running dialog
eval "$CMD"
retval=$?
set -e
case ${retval} in
0)
choice=$(cat ${WORKDIR}/cat_choice)
case ${choice} in
save*and*exit)
collect_save
;;
*)
if [ -z ${choice} ]; then
# The empty row case
main_dialog
else
category_dialog ${choice}
fi
;;
esac
;;
*)
echo "Exiting without saving"
;;
esac
}
collect_save() {
cd ${WORKDIR}
# Ugly way to find if *.sel is expanded to a list of files
for i in *.sel; do
if [ -f ${i} ]; then
# There's at least one .sel file
sort *.sel > ${PFSPKGFILE}
echo "List of packages saved on ${PFSPKGFILE}"
else
echo "No packages selected, removing ${PFSPKGFILE}"
rm ${PFSPKGFILE}
fi
# No iterations required
break;
done
}
# Deletes workdir
purge_wd() {
cd ${LOCALDIR}
rm -rf ${WORKDIR}
}
trap "purge_wd && exit 1" INT
check_pkgs
create_lists
main_dialog
purge_wd

View File

@ -0,0 +1,62 @@
#!/bin/sh
#
# Copyright (c) 2005 Dario Freni
#
# See COPYING for licence terms.
#
# $FreeBSD$
# $Id: iso.sh,v 1.1.1.1 2008/03/25 19:58:16 sullrich Exp $
if [ -z "${LOGFILE:-}" ]; then
echo "This script can't run standalone."
echo "Please use launch.sh to execute it."
exit 1
fi
FREESBIE_LABEL=${FREESBIE_LABEL:-"FreeSBIE"}
echo "#### Building bootable ISO image for ${ARCH} ####"
# This part was taken from the mkisoimages.sh scripts under
# /usr/src/release/${ARCH}/
type mkisofs 2>&1 | grep " is " >/dev/null
if [ $? -ne 0 ]; then
echo The cdrtools port is not installed. Trying to get it now.
if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then
cd /usr/ports/sysutils/cdrtools && ARCH="$(uname -p)" make install BATCH=yes && make clean
else
if ! pkg_add -r cdrtools; then
echo "Could not get it via pkg_add - please go install this"
echo "from the ports collection and run this script again."
exit 2
fi
fi
fi
echo "Saving mtree structure..."
mtree -Pcp ${CLONEDIR} | bzip2 -9 > root.dist.bz2
mkdir -p ${CLONEDIR}/dist
mv root.dist.bz2 ${CLONEDIR}/dist/
echo "/dev/iso9660/${FREESBIE_LABEL} / cd9660 rw 0 0" > ${CLONEDIR}/etc/fstab
cd ${CLONEDIR}
cp ${SRCDIR}/release/powerpc/boot.tbxi boot
# Detect if mkisofs support -L or -posix-L
if mkisofs --help 2>&1 | grep -q -- -posix-L; then
LOPT="-posix-L"
else
LOPT="-L"
fi
echo "Running mkisofs..."
mkisofs -hfs-bless boot -map ${SRCDIR}/release/powerpc/hfs.map -r -hfs -part -no-desktop -hfs-volid ${FREESBIE_LABEL} -V ${FREESBIE_LABEL} -l -J ${LOPT} -o $ISOPATH . >> ${LOGFILE} 2>&1
echo "ISO created:"
ls -lh ${ISOPATH}
cd ${LOCALDIR}

13
installer/cleargpt.sh Normal file
View File

@ -0,0 +1,13 @@
#!/bin/sh
DISK=$1
if [ "$DISK" = "" ]; then
echo "You must specify the disk that should be formatted/cleared."
exit 1
fi
for PART in `gpart show $DISK | grep -v '=>' | awk '{ print $3 }'`; do
if [ "$PART" != "" ]; then
/sbin/gpart delete -i $PART $DISK >/dev/null
fi
done
/sbin/gpart destroy $DISK >/dev/null
exit 0

View File

@ -0,0 +1,152 @@
--
-- conf/FreeBSD.lua
--
-- This file contains FreeBSD-specific overrides to BSDInstaller.lua.
--
product = {
name = "FreeBSD",
version = "8.1"
}
install_items = {
"boot",
"COPYRIGHT",
"bin",
"dev",
"etc",
"libexec",
"lib",
"media",
"root",
"rescue",
"sbin",
"sys",
"usr",
"var"
}
cmd_names = cmd_names + {
DISKLABEL = "sbin/bsdlabel",
CPDUP = "usr/local/bin/cpdup -vvv -I",
DHCPD = "usr/local/sbin/dhcpd",
RPCBIND = "usr/sbin/rpcbind",
MOUNTD = "usr/sbin/mountd",
NFSD = "usr/sbin/nfsd",
MODULES_DIR = "boot/kernel",
DMESG_BOOT = "var/log/dmesg.boot"
}
sysids = {
{ "FreeBSD", 165 },
{ "OpenBSD", 166 },
{ "NetBSD", 169 },
{ "MS-DOS", 15 },
{ "Linux", 131 },
{ "Plan9", 57 }
}
mountpoints = function(part_megs, ram_megs)
--
-- First, calculate suggested swap size:
--
local swap_megs = 2 * ram_megs
if ram_megs > (part_megs / 2) or part_megs < 4096 then
swap_megs = ram_megs
end
swap = tostring(swap_megs) .. "M"
--
-- The megabytes available on disk for non-swap use.
--
local avail_megs = part_megs - swap_megs
--
-- Now, based on the capacity of the partition,
-- return an appropriate list of suggested mountpoints.
--
if avail_megs < 300 then
return {}
elseif avail_megs < 523 then
return {
{ mountpoint = "/", capstring = "70M" },
{ mountpoint = "swap", capstring = swap },
{ mountpoint = "/var", capstring = "32M" },
{ mountpoint = "/tmp", capstring = "32M" },
{ mountpoint = "/usr", capstring = "174M" },
{ mountpoint = "/home", capstring = "*" }
}
elseif avail_megs < 1024 then
return {
{ mountpoint = "/", capstring = "96M" },
{ mountpoint = "swap", capstring = swap },
{ mountpoint = "/var", capstring = "64M" },
{ mountpoint = "/tmp", capstring = "64M" },
{ mountpoint = "/usr", capstring = "256M" },
{ mountpoint = "/home", capstring = "*" }
}
elseif avail_megs < 4096 then
return {
{ mountpoint = "/", capstring = "128M" },
{ mountpoint = "swap", capstring = swap },
{ mountpoint = "/var", capstring = "128M" },
{ mountpoint = "/tmp", capstring = "128M" },
{ mountpoint = "/usr", capstring = "512M" },
{ mountpoint = "/home", capstring = "*" }
}
elseif avail_megs < 10240 then
return {
{ mountpoint = "/", capstring = "1024M" },
{ mountpoint = "swap", capstring = swap },
{ mountpoint = "/var", capstring = "512M" },
{ mountpoint = "/tmp", capstring = "256M" },
{ mountpoint = "/usr", capstring = "3G" },
{ mountpoint = "/home", capstring = "*" }
}
else
return {
{ mountpoint = "/", capstring = "1024M" },
{ mountpoint = "swap", capstring = swap },
{ mountpoint = "/var", capstring = "2048M" },
{ mountpoint = "/tmp", capstring = "1G" },
{ mountpoint = "/usr", capstring = "8G" },
{ mountpoint = "/home", capstring = "*" }
}
end
end
default_sysid = 165
package_suffix = "tbz"
num_subpartitions = 8
has_raw_devices = false
disklabel_on_disk = false
has_softupdates = true
window_subpartitions = { "c" }
use_cpdup = true
booted_from_install_media = true
dir = {
root = "/",
tmp = "/tmp/"
}
--
-- mtrees_post_copy: a table of directory trees to create, using 'mtree',
-- after everything has been copied.
--
mtrees_post_copy = {
}
-- /rescue for example takes a fair amount of space.
limits.part_min = "512M"
--
-- Offlimits mount points and devices. BSDInstaller will ignore these mount points
--
-- example: offlimits_mounts = { "unionfs" }
offlimits_mounts = { "union" }
offlimits_devices = { "fd%d+", "md%d+", "cd%d+" }

View File

@ -0,0 +1,95 @@
--
-- conf/pfSense.lua
-- $Id$
--
-- This file contains pfSense-specific overrides to BSDInstaller.lua.
--
product = {
name = "pfSense",
version = "2.2-BETA"
}
mountpoints = function(part_cap, ram_cap)
--
-- First, calculate suggested swap size:
--
local swap = 2 * ram_cap
if ram_cap > (part_cap / 2) or part_cap < 4096 then
swap = ram_cap
end
swap = tostring(swap) .. "M"
--
-- Now, based on the capacity of the partition,
-- return an appropriate list of suggested mountpoints.
--
--
-- pfSense: We want to only setup / and swap.
--
return {
{ mountpoint = "/", capstring = "*" },
{ mountpoint = "swap", capstring = swap },
}
end
cmd_names = cmd_names + {
DMESG_BOOT = "var/log/dmesg.boot"
}
mtrees_post_copy = {
["usr/local"] = "etc/mtree/BSD.local.dist",
}
install_items = {
"boot",
"COPYRIGHT",
"bin",
"conf",
"conf.default",
"dev",
"etc",
"home",
"kernels",
"libexec",
"lib",
"root",
"sbin",
"usr",
"var"
}
ui_nav_control = {
["*/welcome"] = "ignore", -- do not show any "welcome" items
["*/configure_installed_system"] = "ignore", -- don't put these on
["pre_install_tasks/select_language"] = "ignore", -- do not show language selection
["pre_install_tasks/configure_network"] = "ignore", -- no need for configuring network
["*/upgrade_installed_system"] = "ignore", -- the main menu...
["*/load_kernel_modules"] = "ignore", -- do not ask about loading kernel modules
["*/pit/configure_console"] = "ignore", -- do not ask about console
["*/pit/configure_network"] = "ignore", -- do not ask about network
["*/*netboot*"] = "ignore", -- ignore netboot installation services
["*/install/select_packages"] = "ignore", -- do not do the "Select Packages" step on install
["*/install/confirm_install_os"] = "ignore", -- no need to confirm os install
["*/install/warn_omitted_subpartitions"] = "ignore", -- warn that /tmp /var and friends are being ommited
["*/install/finished"] = "ignore", -- no need to extra spamming
["*/install/select_additional_filesystems"] = "ignore", -- do not include additional filesystems prompts
["*/install/270_install_bootblocks.lua"] = "ignore", -- ignore the old boot block installer program
["*/configure/*"] = "ignore", -- do not configure, we've already did it.
}
booted_from_install_media=true
dir = { root = "/", tmp = "/tmp/" }
limits.part_min = "100M"
offlimits_devices = { "fd%d+", "md%d+", "cd%d+" }
offlimits_mounts = { "union" }
use_cpdup = true

View File

@ -0,0 +1,98 @@
--
-- conf/pfSense.lua
-- $Id$
--
-- This file contains pfSense-specific overrides to BSDInstaller.lua.
--
product = {
name = "pfSense-rescue",
version = "rescue1"
}
mountpoints = function(part_cap, ram_cap)
--
-- First, calculate suggested swap size:
--
local swap = 2 * ram_cap
if ram_cap > (part_cap / 2) or part_cap < 4096 then
swap = ram_cap
end
swap = tostring(swap) .. "M"
--
-- Now, based on the capacity of the partition,
-- return an appropriate list of suggested mountpoints.
--
--
-- pfSense: We want to only setup / and swap.
--
return {
{ mountpoint = "/", capstring = "*" },
{ mountpoint = "swap", capstring = swap },
}
end
cmd_names = cmd_names + {
DMESG_BOOT = "var/log/dmesg.boot"
}
mtrees_post_copy = {
["usr/local"] = "etc/mtree/BSD.local.dist",
}
install_items = {
"boot",
"COPYRIGHT",
"bin",
"conf",
"conf.default",
"dev",
"etc",
"kernels",
"libexec",
"lib",
"root",
"sbin",
"sys",
"usr",
"var"
}
ui_nav_control = {
["*/configure/*"] = "ignore",
["*/pit/configure_console"] = "ignore", -- do not ask about console
["pre_install_tasks/select_language"] = "ignore", -- do not show language selection
["pre_install_tasks/configure_network"] = "ignore", -- no need for configuring network
["main/install_os"] = "ignore",
["/install/*"] = "ignore",
["*/welcome"] = "ignore",
["*/configure_installed_system"] = "ignore", -- don't put these on
["*/upgrade_installed_system"] = "ignore", -- the main menu...
["*/load_kernel_modules"] = "ignore", -- do not ask about loading kernel modules
["*/pit/configure_network"] = "ignore", -- do not ask about network
["*/*netboot*"] = "ignore", -- ignore netboot installation services
["*/install/select_packages"] = "ignore", -- do not do the "Select Packages" step on install
["*/install/confirm_install_os"] = "ignore", -- no need to confirm os install
["*/install/warn_omitted_subpartitions"] = "ignore", -- warn that /tmp /var and friends are being ommited
["*/install/finished"] = "ignore", -- no need to extra spamming
["*/install/select_additional_filesystems"] = "ignore", -- do not include additional filesystems prompts
["*/install/270_install_bootblocks.lua"] = "ignore", -- ignore the old boot block installer program
["*/configure/*"] = "ignore", -- do not configure, we've already did it.
}
booted_from_install_media=true
dir = { root = "/", tmp = "/tmp/" }
limits.part_min = "100M"
offlimits_devices = { "fd%d+", "md%d+", "cd%d+" }
offlimits_mounts = { "union" }
use_cpdup = true

View File

@ -0,0 +1,25 @@
-- $Id: 050_welcome.lua,v 1.10 2005/08/26 04:25:25 cpressey Exp $
--
-- Confirmation message
--
return {
id = "centipede_confirm_basic",
name = _("Confirmation Message"),
effect = function(step)
if App.ui:confirm(_(
"Easy Install will automatically install without asking any questions. \n\n" ..
"WARNING: This will erase all contents in your first hard disk! " ..
"This action is irreversible. Do you really want to continue?\n\n" ..
"If you wish to have more control on your setup, " ..
"choose Custom Installation from the Main Menu."
)) then
return step:next()
else
return step:prev()
end
end
}

View File

@ -0,0 +1,75 @@
-- $Id: 200_select_disk.lua,v 1.34 2005/08/26 04:25:24 cpressey Exp $
--
-- Select disk onto which to install.
--
return {
id = "select_disk",
name = _("Select Disk"),
req_state = { "storage" },
effect = function(step)
App.state.sel_disk = nil
App.state.sel_part = nil
-- XXX there might be a better place to handle this.
if App.state.storage:get_disk_count() == 0 then
App.ui:inform(_(
"The installer could not find any disks suitable " ..
"for installation (IDE or SCSI) attached to this " ..
"computer. If you wish to install %s" ..
" on an unorthodox storage device, you will have to " ..
"exit to a %s command prompt and install it " ..
"manually, using the file /README as a guide.",
App.conf.product.name, App.conf.media_name)
)
return nil
end
local dd = {}
for ddd in App.state.storage:get_disks() do
local desc = ddd:get_desc()
if desc == "mirror/pfSenseMirror" then
print("\nAuto-selecting first disk...")
print("\npfSense mirror found. Auto selecting.")
dd = ddd
break
end
end
if next(dd) == nil then
for ddd in App.state.storage:get_disks() do
dd = ddd
print("\nAuto-selecting first disk...")
print(dd:get_desc() .. "\n")
break
end
end
if dd then
App.state.sel_disk = dd
-- App.state.sel_part = App.state.sel_disk:get_part_by_number(1)
local disk_min_capacity = Storage.Capacity.new(
App.conf.limits.part_min
)
if disk_min_capacity:exceeds(dd:get_capacity()) then
App.ui:inform(_(
"WARNING: the disk\n\n%s\n\nappears to have a capacity " ..
"of %s, which is less than the absolute minimum " ..
"recommended capacity, %s. You may encounter " ..
"problems while trying to install %s.",
dd:get_name(),
dd:get_capacity():format(),
disk_min_capacity:format(),
App.conf.product.name)
)
end
return step:next()
else
return step:prev()
end
end
}

View File

@ -0,0 +1,100 @@
-- $Id: 220_format_disk.lua,v 1.15 2006/02/03 22:54:13 sullrich Exp $
--
-- Allow the user to format the selected disk, if they so desire.
--
--
-- Utility function which asks the user what geometry they'd like to use.
--
local select_geometry = function(step, dd)
if dd:is_geometry_bios_friendly() then
local c_cyl, c_head, c_sec = dd:get_geometry()
else
local c_cyl, c_head, c_sec = dd:get_normalized_geometry()
end
dd:set_geometry(c_cyl, c_head, c_sec)
return true
end
--
-- Utility function which confirms that the user would like to proceed,
-- and actually executes the formatting commands.
--
local format_disk = function(step, dd)
local cmds = CmdChain.new()
if not select_geometry(step, dd) then
return false
end
local cmdsGPT = CmdChain.new()
local disk = dd:get_name()
cmdsGPT:set_replacements{
disk = disk
}
cmdsGPT:add("/usr/sbin/cleargpt.sh ${disk}");
cmdsGPT:execute()
dd:cmds_format(cmds)
if not cmds:execute() then
App.ui:inform(_(
"The disk\n\n%s\n\nwas " ..
"not correctly formatted, and may " ..
"now be in an inconsistent state. " ..
"We recommend trying to format it again " ..
"before attempting to install " ..
"%s on it.",
dd:get_desc(), App.conf.product.name
))
return false
end
--
-- The extents of the Storage.System have probably
-- changed, so refresh our knowledge of it.
--
local result
result, App.state.sel_disk, App.state.sel_part, dd =
StorageUI.refresh_storage(
App.state.sel_disk, App.state.sel_part, dd
)
if not result then
return false
end
--
-- Mark the disk as having been 'touched'
-- (modified destructively, i.e. partitioned) by us.
-- This should prevent us from asking for further
-- confirmation for changes we might do to it in
-- the future.
--
dd:touch()
return true
end
return {
id = "format_disk",
name = _("Format Disk"),
req_state = { "storage", "sel_disk" },
effect = function(step)
print("\nFormatting disk...")
if format_disk(step, App.state.sel_disk) then
App.state.sel_part =
App.state.sel_disk:get_part_by_number(1)
return step:next()
else
--[[
-- weird hack.
os.execute("/usr/bin/touch /tmp/install_runagain")
os.exit()
--]]
end
end
}

View File

@ -0,0 +1,810 @@
-- $Id: 250_partition_disk.lua,v 1.79 2005/10/05 21:29:03 cpressey Exp $
--
-- Partition editor.
--
-- XXX This should probably be split up into more than one step.
-- XXX This should probably be compartmentalized into StorageUI.
--
local options_list = {}
local sysid_to_name_map = {}
local name_to_sysid_map = {}
local i, l
for i, l in ipairs(App.conf.sysids) do
local name, sysid = l[1], l[2]
table.insert(options_list, name)
sysid_to_name_map[sysid] = name
name_to_sysid_map[name] = sysid
end
--
-- Return a list of datasets apropos for formatting just one big partition.
--
local populate_one_big_partition = function(dd)
return {
{
sectors = "*",
sysid = sysid_to_name_map[App.conf.default_sysid],
active = "Y"
}
}
end
--
-- Get a list of datasets by examining what is currently in the disk
-- representation (i.e. in the Storage.Disk structure, which was
-- presumably gotten from Storage.System:survey() at some point.)
--
local populate_from_disk = function(dd)
local pd
local list = {}
local active_pd = nil
local toyn = function(bool)
if bool then
return "Y"
else
return "N"
end
end
local offset = dd:get_geometry_sec()
--
-- Look for the active partition.
--
for pd in dd:get_parts() do
if pd:is_active() then
active_pd = pd
break
end
end
--
-- If none was found, assume the first as the active partition.
--
if not active_pd then
for pd in dd:get_parts() do
active_pd = pd
break
end
end
for pd in dd:get_parts() do
local start = pd:get_start()
local sectors = pd:get_capacity():in_units("S")
local sysid = sysid_to_name_map[pd:get_sysid()] or
tostring(pd:get_sysid())
if start ~= offset then
App.ui:inform(_(
"WARNING: The partition layout currently " ..
"on this disk is non-standard. It may " ..
"have gaps in between partitions, or the " ..
"partitions may be listed in something " ..
"other than strictly increading order. " ..
"\n\nWhile %s can handle this situation, " ..
"this installer's partition editor cannot " ..
"at present. You will be given the option " ..
"to completely repartition this disk, but " ..
"if you wish to retain any existing " ..
"information on the disk, you should exit " ..
"the installer and use a tool such as " ..
"`fdisk' to manually create a %s partition " ..
"on it before continuing.",
App.conf.product.name, App.conf.product.name
))
return populate_one_big_partition(dd)
end
offset = offset + sectors
--
-- Create the dataset.
--
table.insert(list, {
sectors = tostring(sectors),
sysid = sysid,
active = toyn(pd == active_pd)
})
end
return list
end
--
-- Actually show the partition editor and let the user edit partitions.
-- This does not do any setup or validation.
--
local edit_partitions = function(step, datasets_list)
assert(datasets_list, "We need a list of datasets here, please")
local fields_list = {
{
id = "sectors",
name = _("Size (in Sectors)")
},
{
id = "sysid",
name = _("Partition Type"),
options = options_list,
editable = "false"
},
{
id = "active",
name = _("Active?"),
control = "checkbox"
}
}
local actions_list = {
{
id = "ok",
name = _("Accept and Create"),
},
{
id = "cancel",
accelerator = "ESC",
name = _("Return to %s", step:get_prev_name()),
},
{
id = "revert",
name = _("Revert to Partitions on Disk"),
}
}
local form = {
id = "edit_partitions",
name = _("Edit Partitions"),
short_desc = _("Select the partitions (also known " ..
"as `slices' in BSD tradition) you want to " ..
"have on this disk.\n\n" ..
"For Size, enter a raw size in sectors " ..
"(1 gigabyte = 2097152 sectors) " ..
"or a single '*' to indicate " ..
"'use the remaining space on the disk'."),
special = "bsdinstaller_edit_partitions",
minimum_width = "64",
actions = actions_list,
fields = fields_list,
datasets = datasets_list,
multiple = "true",
extensible = "true"
}
return true, datasets_list
end
--
-- Given a proposed size for a partition, check that it starts on a
-- head boundary and ends on a cylinder boundary. Allow the user to
-- easily adjust it to do so if it does not.
--
local align_to_boundary = function(dd, size, num, start)
local is_divisible_by = function(x, y)
return math.floor(x / y) == math.ceil(x / y)
end
--
-- Get "sectors per track" value - the start sector
-- should be divisible by this value in order
-- for the partition to be aligned to head boundaries.
--
local sectrk = dd:get_geometry_sec()
--
-- Get "blocks per cylinder" value - the end sector
-- should be divisible by this value in order
-- for the partition to be aligned to cylinder boundaries.
--
local cylsec = dd:get_geometry_head() * sectrk
--
-- The start sector MUST be on a head boundary,
-- or we're in the Twilight Zone.
--
assert(is_divisible_by(start, sectrk))
--
-- From the start, and the proposed size, calculate the end sector.
--
local end_sector = start + size
--
-- Check to see if it ends on a cylinder boundary.
-- If so, everything's peachy, and just return.
--
if is_divisible_by(end_sector, cylsec) then
return size
end
--
-- Calculate the next smallest and next largest
-- cylinder boundaries where the end sector could be.
--
local shrink_sec = math.floor(end_sector / cylsec) * cylsec
local expand_sec = math.ceil(end_sector / cylsec) * cylsec
--
-- Calculate the next smallest and largest sizes of the partition
-- such that its end sector falls on a cylinder boundary.
--
local shrink_to = shrink_sec - start
local expand_to = expand_sec - start
--
-- Ask the user what they want to do.
--
local response = App.ui:present{
id = "align_partition",
name = _("Align Partition"),
short_desc = _(
"Partition #%d does not begin and end " ..
"on a cylinder boundary (i.e. its size, %d, " ..
"is not a multiple of %d.)\n\nWould you " ..
"like to adjust it? NOTE that this may " ..
"result in subsequent partitions being moved!",
num, size, cylsec
),
actions = {
{
id = "shrink",
name = _("Shrink to %d Sectors", shrink_to),
},
{
id = "expand",
name = _("Expand to %d Sectors", expand_to),
},
{
id = "cancel",
accelerator = "ESC",
name = _("Return to Edit Partitions"),
}
}
}
if response.action_id == "shrink" then
return shrink_to
end
if response.action_id == "expand" then
return expand_to
end
return nil
end
--
-- Given a proposed size for a partition, check that it does not
-- exceed or fall short of the disk size. If it does, allow the
-- user to easily adjust it.
--
local align_to_disk_size = function(dd, size, num, used_size, disk_size, is_last)
if used_size + size == disk_size then
return size -- perfect fit
end
if used_size + size < disk_size and not is_last then
return size -- don't worry, still some partitions to go
end
local response
local new_size = disk_size - used_size
if used_size + size < disk_size then
local under = disk_size - (used_size + size)
response = App.ui:present{
id = "expand_partition",
name = _("Expand Partition"),
short_desc = _(
"Partition #%d falls short of the end of " ..
"the disk by %d sectors (%s). Would you " ..
"like to expand it so that it takes up the " ..
"entire rest of the disk?",
num, under,
Storage.Capacity.new(under, "S"):format()
),
actions = {
{
id = "ok",
name = _("Expand to %d Sectors", new_size)
},
{
id = "cancel",
accelerator = "ESC",
name = _("Return to Edit Partitions")
}
}
}
else
local over = (used_size + size) - disk_size
response = App.ui:present{
id = "truncate_partition",
name = _("Truncate Partition"),
short_desc = _(
"Partition #%d extends past the end of " ..
"the disk by %d sectors (%s). Would you " ..
"like to shrink it so that it fits?",
num, over,
Storage.Capacity.new(over, "S"):format()
),
actions = {
{
id = "ok",
name = _("Shrink to %d Sectors", new_size)
},
{
id = "cancel",
accelerator = "ESC",
name = _("Return to Edit Partitions")
}
}
}
end
if response.action_id == "ok" then
return new_size
end
return nil
end
--
-- Validate that the given datasets are properly formed.
--
local check_datasets = function(dd, datasets_list)
local i, dataset
local result, size
local disk_size = dd:get_capacity():in_units("S")
local used_size = dd:get_geometry_sec() -- initial offset
local wildcard_dataset = nil
local active_dataset = nil
--
-- Check to see that they configured at least one.
--
if table.getn(datasets_list) == 0 then
App.ui:inform(_(
"No partitions were configured! Please " ..
"create at least one partition."
))
return false
end
--
-- Check that each of them has a valid sysid and capacity.
--
for i, dataset in ipairs(datasets_list) do
if tonumber(dataset.sysid) == nil and
name_to_sysid_map[dataset.sysid] == nil then
App.ui:inform(_(
"'%s' is not a recognized partition type. " ..
"Please use a numeric identifier if you " ..
"wish to use an unlisted partition type.",
dataset.sysid
))
return false
end
if dataset.active == "Y" then
if active_dataset then
App.ui:inform(_(
"Only one partition may be marked 'active'."
))
return false
end
active_dataset = dataset
end
if dataset.sectors == "*" then
if wildcard_dataset ~= nil then
App.ui:inform(_(
"Only one partition may have a " ..
"capacity of '*'."
))
return false
end
wildcard_dataset = dataset
else
result, size = pcall(function()
local s = tonumber(dataset.sectors)
assert(dataset.sectors == tostring(s))
return s
end)
if not result then
App.ui:inform(_(
"'%s' is not a valid size in sectors.",
dataset.sectors
))
return false
end
size = align_to_disk_size(dd, size, i, used_size, disk_size,
i == table.getn(datasets_list) and wildcard_dataset == nil)
if not size then
return false
end
size = align_to_boundary(dd, size, i, used_size)
if not size then
return false
end
dataset.sectors = tostring(size)
used_size = used_size + size
end
end
if not active_dataset then
App.ui:inform(_(
"One partition must be marked 'active'."
))
return false
end
--
-- Fill in the wildcard dataset.
--
if wildcard_dataset ~= nil then
wildcard_dataset.sectors = tostring(disk_size - used_size)
used_size = used_size + tonumber(wildcard_dataset.sectors)
end
--
-- Assert that the sizes total up exactly.
--
-- XXX in the future, we may want to allow passing through "bad"
-- sizes, to not disturb existing whacky partitionings.
-- In which case, we'll need to drop this check.
--
assert(used_size == disk_size)
return true
end
--
-- Return a list of partitions that have been changed by the user's edits,
-- as well as a list of partitions that have been added by the user.
-- Assumes check_datasets has already been called successfully.
--
local find_changed_and_added_partitions = function(dd, datasets_list)
local i, dataset
local offset = dd:get_geometry_sec() -- initial offset
local changed = {}
local added = {}
for i, dataset in ipairs(datasets_list) do
local pd = dd:get_part_by_number(i)
local size = tonumber(dataset.sectors)
local descriptor = {
pd = pd,
size = size,
offset = offset
}
if not pd then
table.insert(added, descriptor)
elseif pd:get_capacity():in_units("S") ~= size or
pd:get_start() ~= offset then
table.insert(changed, descriptor)
end
offset = offset + size
end
return changed, added
end
--
-- Given the list of datasets, actually create the Storage.Partition objects.
-- This function assumes that check_datasets has already been called.
-- This function can never fail.
--
local create_partitions_from_datasets = function(dd, datasets_list)
local i, dataset
local part_no = 1
local disk_size = dd:get_capacity():in_units("S")
local offset = dd:get_geometry_sec() -- initial offset
local size
local sysid
dd:clear_parts()
for i, dataset in ipairs(datasets_list) do
size = tonumber(dataset.sectors)
dd:add_part(Storage.Partition.new{
parent = dd,
number = part_no,
start = offset,
size = size,
sysid = name_to_sysid_map[dataset.sysid] or tonumber(dataset.sysid),
active = (dataset.active == "Y")
})
offset = offset + size
part_no = part_no + 1
end
end
--
-- Actually confirm with the user and make changes to the disk.
--
local alter_disk = function(dd, datasets_list, changed)
--
-- Generate text from the list of changed partitions
--
local i, tab
local changed_list = ""
for i, tab in ipairs(changed) do
changed_list = changed_list .. _(
"Partition #%d (was %d long at %d; now %d long at %d)\n",
tab.pd:get_number(),
tab.pd:get_capacity():in_units("S"), tab.pd:get_start(),
tab.size, tab.offset
)
end
--
-- Confirm that this is what the user wants to do
--
local confirm = function()
local response = App.ui:present{
id = "confirm_alter_disk",
name = _("Alter these Partitions?"),
short_desc = _(
"WARNING! The parameters of the following " ..
"partitions have been MODIFIED for the disk" ..
"\n\n%s\n\n" ..
"ANY meaningful data that may currently be " ..
"on ANY of them will NOT remain meaningful " ..
"after this operation has completed. " ..
"In other words, they should be considered " ..
"IRREVOCABLY ERASED if you proceed!\n\n%s\n" ..
"Are you ABSOLUTELY SURE you wish to take " ..
"this action? This is your LAST CHANCE " ..
"to cancel!",
dd:get_desc(),
changed_list
),
actions = {
{
id = "ok",
name = _("Alter these Partitions")
},
{
id = "cancel",
accelerator = "ESC",
name = _("Return to Edit Partitions")
}
}
}
return response.action_id == "ok"
end
if dd:has_been_touched() or confirm() then
local cmds = CmdChain.new()
--
-- Create partition descriptors under the disk,
-- then create the commands to partition based on
-- them, then execute those commands.
-- XXX might be better to:
-- - create the partition descriptors under a
-- temporary disk descriptor, or
-- - refresh the partition descriptors if the
-- partitioning fails, or
-- - create the commands directly from the
-- datasets
-- ... so that it is possible/easy to restore the
-- list of partition descriptors back to what is
-- really on the disk.
--
create_partitions_from_datasets(dd, datasets_list)
dd:cmds_partition(cmds)
if not cmds:execute() then
App.ui:inform(_(
"The disk\n\n%s\n\nwas " ..
"not correctly partitioned, and may " ..
"now be in an inconsistent state. " ..
"We recommend partitioning it again" ..
"before attempting to install " ..
"%s on it.",
dd:get_desc(),
App.conf.product.name
))
return false
end
--
-- The extents of the Storage.System have probably
-- changed, so refresh our knowledge of it.
--
local result
result, App.state.sel_disk, App.state.sel_part, dd =
StorageUI.refresh_storage(
App.state.sel_disk, App.state.sel_part, dd
)
if not result then
return false
end
--
-- XXX mark all changed partitions as having been
-- changed, here.
--
--[[
App.ui:inform(_(
"The disk\n\n%s\n\nwas successfully partitioned.",
dd:get_desc()
))
--]]
print("\nThe disk was successfully partitioned...\n")
return true
else
App.ui:inform(_(
"Action cancelled. No partitions were changed."
))
return false
end
end
--
-- High-level function which drives all others:
-- populate_from_disk
-- edit_partitions
-- check_datasets
-- create_partitions_from_datasets
--
local let_user_edit_partitions = function(step, population_function)
local ok = false
local datasets_list = population_function(App.state.sel_disk)
while not ok do
ok, datasets_list = edit_partitions(step, datasets_list)
if not ok then -- user cancelled
return step:prev()
end
ok = check_datasets(App.state.sel_disk, datasets_list)
end
--
-- Determine what changed.
--
local changed, added =
find_changed_and_added_partitions(App.state.sel_disk, datasets_list)
--[[
if table.getn(changed) == 0 and table.getn(added) == 0 then
response = App.ui:present{
id = "partition_anyway",
name = _("Partition Anyway?"),
short_desc = _(
"No changes appear to have been made to the " ..
"partition table layout.\n\n" ..
"Do you want to execute the commands to " ..
"partition the disk anyway?"
),
actions = {
{
id = "ok",
name = _("Yes, partition %s",
App.state.sel_disk:get_name())
},
{
id = "skip",
name = _("No, Skip to Next Step")
},
{
id = "cancel",
accelerator = "ESC",
name = _("No, Return to Edit Partitions")
}
}
}
if response.action_id == "cancel" then
return step
elseif response.action_id == "skip" then
return step:next()
end
end
--]]
--
-- Actually write the partitions to the disk, with accompanying warnings
-- and such in the user interface.
--
if alter_disk(App.state.sel_disk, datasets_list, changed) then
return step:next()
else
return step
end
end
--
-- The Flow.Step descriptor itself follows.
--
return {
id = "partition_disk",
name = _("Partition Disk"),
req_state = { "storage", "sel_disk" },
effect = function(step)
--[[--
if App.state.sel_disk:has_been_touched() then
return let_user_edit_partitions(step, populate_from_disk)
end
--]]--
if App.state.sel_disk:is_mounted() then
local response = App.ui:present{
id = "partition_disk",
name = _("Partition Disk?"),
short_desc = _(
"One or more subpartitions of one or more " ..
"primary partitions of the selected disk " ..
"are already in use (they are currently " ..
"mounted on mountpoints in the filesystem.) " ..
"You cannot repartition the disk under " ..
"these circumstances. If you wish to do so, " ..
"you must unmount the subpartitions before " ..
"proceeding."
),
actions = {
{
id = "unmount",
name = _("Unmount Subpartitions"),
effect = function()
local cmds = CmdChain.new()
App.state.sel_disk:cmds_unmount_all_under(cmds)
cmds:execute()
return step
end
},
{
id = "skip",
name = _("Skip this Step"),
effect = function()
return step:next()
end
},
{
id = "cancel",
name = _("Return to %s", step:get_prev_name()),
accelerator = "ESC",
effect = function()
return step:prev()
end
}
}
}
return response.result
end
if App.state.sel_disk:get_part_count() == 0 then
App.ui:inform(_(
"No valid partitions were found on this disk. " ..
"You will have to create at least one in which " ..
"to install %s." ..
"\n\n" ..
"A single partition covering the entire disk " ..
"will be selected for you by default, but if you " ..
"wish, you may create multiple partitions instead.",
App.conf.product.name
))
return let_user_edit_partitions(step, populate_one_big_partition)
end
return let_user_edit_partitions(step, populate_from_disk)
end
}

View File

@ -0,0 +1,105 @@
-- $Id: 300_select_part.lua,v 1.37 2005/08/26 04:25:24 cpressey Exp $
--
-- Select partition onto which to install.
--
return {
id = "select_part",
name = _("Select Partition"),
req_state = { "storage", "sel_disk" },
effect = function(step)
pd = App.state.sel_part
if pd then
if pd:is_mounted() then
App.ui:inform(_(
"One or more subpartitions on the selected " ..
"primary partition already in use (they are " ..
"currently mounted in the filesystem.) " ..
"You should either unmount them before " ..
"proceeding, or select a different partition " ..
"or disk on which to install %s.",
App.conf.product.name
))
return step
end
if pd:get_activated_swap():in_units("K") > 0 then
local response = App.ui:present{
name = _("Cannot swapoff; reboot?"),
short_desc = _(
"Some subpartitions on the selected primary " ..
"partition are already activated as swap. " ..
"Since there is no way to deactivate swap in " ..
"%s once it is activated, in order " ..
"to edit the subpartition layout of this " ..
"primary partition, you must first reboot.",
App.conf.product.name
),
actions = {
{
id = "reboot",
name = _("Reboot"),
effect = function() return "reboot" end
},
{
id = "cancel",
name = _("Return to %s", step:get_prev_name()),
accelerator = "ESC",
effect = function() return step:prev() end
}
}
}
return response.result
end
App.state.sel_part = pd
local part_min_capacity = Storage.Capacity.new(
App.conf.limits.part_min
)
if part_min_capacity:exceeds(pd:get_capacity()) then
App.ui:inform(_(
"WARNING: primary partition #%d appears to have " ..
"a capacity of %s, which is less than the minimum " ..
"recommended capacity, %s. You may encounter " ..
"problems while trying to install %s onto it.",
pd:get_number(),
pd:get_capacity():format(),
part_min_capacity:format(),
App.conf.product.name)
)
end
local cmds = CmdChain.new()
pd:cmds_set_sysid(cmds, App.conf.default_sysid)
pd:cmds_initialize_disklabel(cmds)
if cmds:execute() then
--[[
App.ui:inform(_(
"Primary partition #%d was formatted.",
pd:get_number())
)
--]]
return step:next()
else
--[[
App.ui:inform(_(
"Primary partition #%d was " ..
"not correctly formatted, and may " ..
"now be in an inconsistent state. " ..
"We recommend re-formatting it " ..
"before proceeding.",
pd:get_number())
)
--]]
return step
end
else
return step:prev()
end
end
}

View File

@ -0,0 +1,357 @@
-- $Id: 400_select_subparts.lua,v 1.50 2005/08/27 08:35:58 cpressey Exp $
--
-- Subpartition editor.
--
-- XXX This should probably be available from StorageUI so that we
-- can do it during configuration, too. But that will get ugly if
-- we attempt to allow existing subpartitions to be retained, etc.
--
local expert_mode = false
local datasets_list = nil
return {
id = "select_subparts",
name = _("Select Subpartitions"),
req_state = { "sel_disk", "sel_part" },
effect = function(step)
local part_no, pd
local part_actions = {}
local i, letter
---------------------
-- Local functions --
---------------------
local fillout_missing_expert_values = function()
local i, dataset
for i, dataset in ipairs(datasets_list) do
if not dataset.softupdates and
not dataset.fsize and not dataset.bsize then
if dataset.mountpoint == "/" then
dataset.softupdates = "N"
else
dataset.softupdates = "Y"
end
if dataset.capstring == "*" or
(Storage.Capacity.is_valid_capstring(dataset.capstring) and
Storage.Capacity.new(dataset.capstring):in_units("G") >= 1.0) then
dataset.fsize = "2048"
dataset.bsize = "16384"
else
dataset.fsize = "1024"
dataset.bsize = "8192"
end
end
end
end
--
-- Make sure all the given subpart descriptors are OK.
--
local validate_subpart_descriptors = function(pd)
local spd, k, v
local part_size = pd:get_capacity():in_units("S")
local used_size = 0
local min_size = {}
--
-- Read the minimum required subpart capacities from the conf file.
--
for k, v in App.conf.limits.subpart_min do
min_size[k] = Storage.Capacity.new(v):in_units("S")
end
--
-- If the user didn't select a /usr partition, / is going to
-- have to hold all that stuff - so make sure it's big enough.
--
if not pd:get_subpart_by_mountpoint("/usr") then
min_size["/"] = min_size["/"] + min_size["/usr"]
end
for spd in pd:get_subparts() do
local spd_size = spd:get_capacity():in_units("S")
local mtpt = spd:get_mountpoint()
local min_mt_size = min_size[mtpt]
used_size = used_size + spd_size
if min_mt_size and spd_size < min_mt_size then
if not App.ui:confirm(_(
"WARNING: the %s subpartition should " ..
"be at least %s in size or you will " ..
"risk running out of space during " ..
"the installation.\n\n" ..
"Proceed anyway?",
mtpt,
Storage.Capacity.new(min_mt_size, "S"):format()
)) then
return false
end
end
end
if used_size > part_size then
if not App.ui:confirm(_(
"WARNING: The total number of sectors needed " ..
"for the requested subpartitions (%d) exceeds the " ..
"number of sectors available in the partition (%d) " ..
"by %d sectors (%s.)\n\n" ..
"This is an invalid configuration; we " ..
"recommend shrinking the size of one or " ..
"more subpartitions before proceeding.\n\n" ..
"Proceed anyway?",
used_size, part_size, used_size - part_size,
Storage.Capacity.new(used_size - part_size, "S"):format()
)) then
return false
end
end
if used_size < part_size - App.conf.limits.waste_max then
if not App.ui:confirm(_(
"Note: the total capacity required " ..
"for the requested subpartitions (%s) does not make " ..
"full use of the capacity available in the " ..
"partition (%s.) %d sectors (%s) of space will go " ..
"unused.\n\n" ..
"You may wish to expand one or more subpartitions " ..
"before proceeding.\n\n" ..
"Proceed anyway?",
Storage.Capacity.new(used_size, "S"):format(),
Storage.Capacity.new(part_size, "S"):format(),
part_size - used_size,
Storage.Capacity.new(part_size - used_size, "S"):format()
)) then
return false
end
end
if App.conf.enable_crashdumps then
local num_swap_subparts = 0
local num_dumponable = 0
for spd in pd:get_subparts() do
if spd:is_swap() then
num_swap_subparts = num_swap_subparts + 1
if spd:get_capacity():exceeds_or_equals(
App.state.storage:get_ram_capacity()
) then
num_dumponable = num_dumponable + 1
end
end
end
if num_swap_subparts > 0 and num_dumponable == 0 then
if not App.ui:confirm(_(
"Note: none of the swap subpartitions that " ..
"you have selected are large enough to hold " ..
"the contents of memory, and thus cannot be " ..
"used to hold a crash dump (an image of the " ..
"computers' memory at the time of failure.) " ..
"Because this complicates troubleshooting, " ..
"we recommend that you increase the size of " ..
"one of your swap subpartitions.\n\n" ..
"Proceed anyway?",
mtpt, min_cap)) then
return false
end
end
end
return true
end
--
-- Take a list of tables representing the user's choices and
-- create a matching set of subpartition descriptors under
-- the given partition description from them. In the process,
-- the desired subpartitions are checked for validity.
--
local create_subpart_descriptors = function(pd, list)
local i, letter, dataset
local result, size
local offset, fstype
local total_size = 0
local wildcard_size = false
pd:clear_subparts()
offset = 0
for i, dataset in list do
if dataset.capstring == "*" then
if wildcard_size then
App.ui:inform(_(
"Only one subpartition may have " ..
"a capacity of '*'."
))
return false
end
wildcard_size = true
else
if Storage.Capacity.is_valid_capstring(dataset.capstring) then
total_size = total_size +
Storage.Capacity.new(dataset.capstring):in_units("S")
else
App.ui:inform(_(
"'%s' is not a valid capacity specifier. " ..
"Capacity must either end in 'M' " ..
"for megabytes, 'G' for gigabytes, " ..
"or be '*' to indicate 'use all " ..
"remaining space.'",
dataset.capstring
))
return false
end
end
end
local next_letter = function(letter)
local done = false
while not done do
done = true
letter = string.char(string.byte(letter) + 1)
local i, test
for i, test in ipairs(App.conf.window_subpartitions) do
if test == letter then
done = false
end
end
end
return letter
end
offset = 0
letter = nil
for i, dataset in ipairs(list) do
if not letter then
letter = "a"
else
letter = next_letter(letter)
end
if dataset.capstring == "*" then
size = pd:get_capacity():in_units("S") - total_size
else
-- This has already been determined to be valid
size = Storage.Capacity.new(dataset.capstring):in_units("S")
end
if dataset.mountpoint == "swap" then
fstype = "swap"
else
fstype = "4.2BSD"
end
pd:add_subpart(Storage.Subpartition.new{
parent = pd,
letter = letter,
size = size,
offset = offset,
fstype = fstype,
fsize = tonumber(dataset.fsize),
bsize = tonumber(dataset.bsize),
mountpoint = dataset.mountpoint
})
offset = offset + size
end
return validate_subpart_descriptors(pd)
end
--
-- Begin main logic!
--
if not datasets_list then
datasets_list = App.conf.mountpoints(
App.state.sel_part:get_capacity():in_units("M"),
App.state.storage:get_ram_capacity():in_units("M")
)
end
local fields_list = {
{
id = "mountpoint",
name = _("Mountpoint")
},
{
id = "capstring",
name = _("Capacity")
}
}
local actions_list = {
{
id = "ok",
name = _("Accept and Create"),
effect = function()
return step:next()
end
},
{
id = "cancel",
name = _("Return to %s", step:get_prev_name()),
accelerator = "ESC",
effect = function()
return step:prev()
end
}
}
if expert_mode then
table.insert(fields_list,
{
id = "softupdates",
name = _("Softupdates?"),
control = "checkbox"
}
)
table.insert(fields_list,
{
id = "fsize",
name = _("Frag Size")
}
)
table.insert(fields_list,
{
id = "bsize",
name = _("Block Size")
}
)
table.insert(actions_list,
{
id = "switch",
name = _("Switch to Normal Mode"),
effect = function()
expert_mode = not expert_mode
return step
end
}
)
else
table.insert(actions_list,
{
id = "switch",
name = _("Switch to Expert Mode"),
effect = function()
expert_mode = not expert_mode
return step
end
}
)
end
fillout_missing_expert_values()
create_subpart_descriptors(App.state.sel_part, datasets_list)
return step:next()
end
}

View File

@ -0,0 +1,28 @@
-- $Id: 407_create_subparts.lua,v 1.3 2005/08/27 19:42:10 cpressey Exp $
return {
id = "create_subparts",
name = _("Create Subpartitions"),
req_state = { "sel_disk", "sel_part" },
interactive = false,
effect = function(step)
local cmds = CmdChain.new()
App.state.sel_part:cmds_disklabel(cmds)
App.state.sel_part:cmds_install_bootstrap(cmds)
App.state.sel_part:cmds_initialize_filesystems(cmds)
if not cmds:execute() then
App.ui:inform(_(
"The subpartitions you have chosen were " ..
"not correctly created, and the " ..
"primary partition may now be in an " ..
"inconsistent state. We recommend " ..
"re-formatting it before proceeding."
))
return step:prev()
end
return step:next()
end
}

View File

@ -0,0 +1,33 @@
-- $Id: 420_preselect_packages.lua,v 1.8 2005/08/26 04:25:24 cpressey Exp $
--
-- Select the initial or required packages to install.
--
return {
id = "preselect_packages",
name = _("Pre-select Packages"),
interactive = false,
req_state = { "source" },
effect = function(step)
--
-- If the user hasn't selected any packages yet, set them up with
-- the default packages.
--
if not App.state.sel_pkgs then
local def_pkgs = App.conf.default_packages or {}
local pkg, i, regexp
App.state.sel_pkgs = Package.Set.new()
for pkg in App.state.all_pkgs:each_pkg() do
for i, regexp in def_pkgs do
if string.find(pkg:get_name(), regexp) then
App.state.sel_pkgs:add(pkg)
end
end
end
end
return step:next()
end
}

View File

@ -0,0 +1,279 @@
-- $Id: 500_install_os.lua,v 1.82 2006/07/27 21:47:52 sullrich Exp $
--
-- Actually install the OS.
-- XXX this could probably be split up into further steps:
--
-- 2) activate swap
-- 3) create and mount the target system
-- 4) copy the files
-- 5) clean up
--
return {
id = "install_os",
name = _("Install OS"),
req_state = { "storage", "sel_disk", "sel_part", "sel_pkgs" },
effect = function(step)
local spd, cmds
--
-- If there is a target system mounted, unmount it before starting.
--
if App.state.target ~= nil and App.state.target:is_mounted() then
if not App.state.target:unmount() then
App.ui:inform(
_("Warning: already-mounted target system could " ..
"not be correctly unmounted first."))
return step:prev()
end
end
--
-- Create a command chain.
--
cmds = CmdChain.new()
--
-- Activate swap, if there is none activated so far.
--
if App.state.storage:get_activated_swap():in_units("K") == 0 then
for spd in App.state.sel_part:get_subparts() do
if spd:get_fstype() == "swap" then
cmds:add{
cmdline = "${root}${SWAPON} ${root}dev/${dev}",
replacements = {
dev = spd:get_device_name()
}
}
end
end
end
--
-- Initialize the target system, create the mountpoint directories
-- configured for the selected partition (presumably set up by the
-- user,) and mount the appropriate subpartitions on them.
--
App.state.target = TargetSystem.new{
partition = App.state.sel_part,
base = "mnt"
}
if not App.state.target:create() then
App.ui:inform(
_("Could not create the skeletal target system.")
)
return step:prev()
end
if not App.state.target:mount() then
App.ui:inform(
_("Could not mount the skeletal target system.")
)
return step:prev()
end
cmds:set_replacements{
base = App.state.target:get_base(),
logfile = App.conf.log_filename,
devicename = App.state.sel_part:get_escaped_device_name(),
part = App.state.sel_part:get_device_name()
}
--
-- Create the commands which will install the chosen directories
-- onto the target system.
--
App.state.target:cmds_install_srcs(cmds, App.conf.install_items)
--
-- Remove any databases that might have been copied over but
-- will no longer be accurate, e.g. the installed-package database.
--
cmds:add(
"${root}${RM} -rf ${root}${base}/var/db/pkg",
"${root}${MKDIR} -p ${root}${base}/var/db/pkg",
"${root}${CHMOD} 755 ${root}${base}/var/db/pkg"
)
--
-- Some directories may not have been copied to the HDD, but
-- may still be required/desired on a default install. For
-- example, we generally don't want to copy the entire
-- "local packages" hierarchy, because the user may not want
-- all those packages on their system. Instead, we can create
-- the heretofore uncopied directory trees using "mtree".
--
local mtree_dir, mtree_file
for mtree_dir, mtree_file in pairs(App.conf.mtrees_post_copy or {}) do
cmds:set_replacements{
mtree_dir = mtree_dir,
mtree_file = mtree_file
}
cmds:add(
"${root}${MKDIR} -p ${root}${base}${mtree_dir}",
{
cmdline = "${root}${MTREE} -deU -f ${root}${mtree_file} -p ${root}${base}${mtree_dir}",
log_mode = CmdChain.LOG_QUIET -- don't spam log
}
)
end
--
-- Create symlinks to temporary directory.
--
local real_tmp_dir = "tmp"
if App.state.sel_part:get_subpart_by_mountpoint("/tmp") then
--
-- If the user has a /tmp subparition, regardless of whether
-- they also have a /var subpartition, we assume they would
-- like /var/tmp to be symlinked to /tmp.
--
cmds:add(
"${root}${RM} -rf ${root}${base}var/tmp",
"${root}${LN} -s /tmp ${root}${base}var/tmp"
)
else
--
-- If the user has no /tmp, but does have /var or /usr,
-- symlink /tmp to /var/tmp or /usr/tmp.
--
if App.state.sel_part:get_subpart_by_mountpoint("/var") then
real_tmp_dir = "var/tmp"
cmds:add(
"${root}${LN} -s /var/tmp ${root}${base}tmp"
)
elseif App.state.sel_part:get_subpart_by_mountpoint("/usr") then
real_tmp_dir = "usr/tmp"
cmds:add(
"${root}${LN} -s /usr/tmp ${root}${base}tmp"
)
end
end
--
-- [Re]create the temporary directory in the desired place.
--
cmds:set_replacements{ real_tmp_dir = real_tmp_dir }
if not App.state.sel_part:get_subpart_by_mountpoint("/" .. real_tmp_dir) then
cmds:add(
"${root}${RM} -rf ${root}${base}${real_tmp_dir}",
"${root}${MKDIR} -p ${root}${base}${real_tmp_dir}"
)
end
cmds:add(
"${root}${CHMOD} 1777 ${root}${base}${real_tmp_dir}"
)
--
-- Create symlinks to home directory.
--
--
-- If the user has no /home, but does have /usr or /var,
-- symlink /home to /usr/home or /var/home.
--
if not App.state.sel_part:get_subpart_by_mountpoint("/home") then
if App.state.sel_part:get_subpart_by_mountpoint("/usr") then
cmds:add(
"${root}${RM} -rf ${root}${base}/home",
"${root}${MKDIR} -p ${root}${base}/usr/home",
"${root}${LN} -s /usr/home ${root}${base}/home"
)
elseif App.state.sel_part:get_subpart_by_mountpoint("/var") then
cmds:add(
"${root}${RM} -rf ${root}${base}/home",
"${root}${MKDIR} -p ${root}${base}/var/home",
"${root}${LN} -s /var/home ${root}${base}/home"
)
end
end
--
-- Clean up unwanted/unneeded files.
-- Use 'rm -f' in case the file never existed in the first place.
--
local i, filename
for i, filename in ipairs(App.conf.cleanup_items or {}) do
cmds:add{
cmdline = "${root}${RM} -f ${root}${base}${filename}",
replacements = {
filename = filename
}
}
end
--
-- Create missing directories.
--
cmds:add(
"${root}${MKDIR} -p ${root}${base}/mnt"
)
--
-- Write the fstab.
--
App.state.target:cmds_write_fstab(cmds, {
extra_fs = App.state.extra_fs
})
--
-- Install requested packages.
--
-- Note that we have to explicitly say what the temporary directory
-- will be, because the symlink (if any) won't be created yet.
--
local pkg_graph = App.state.sel_pkgs:to_graph(function(pkg)
return pkg:get_prerequisites(App.state.source)
end, true)
local pkg_list = pkg_graph:topological_sort()
pkg_list:cmds_install_all(cmds, App.state.target, {
tmp_dir = real_tmp_dir
})
--
-- Backup the disklabel.
--
cmds:add{
"${root}${DISKLABEL} ${part} >${root}${base}/etc/disklabel.${devicename}"
}
--
-- Finally, write the rc.conf modifications.
--
App.state.rc_conf:cmds_write(cmds,
cmds:expand("${root}${base}/etc/rc.conf"), "sh")
--
-- Do it!
--
if cmds:execute() then
--
-- Success!
--
-- Put a copy of the log on the installed system.
-- It looks like it might be necessary to close the log
-- while copying it on some system, so we do that here.
--
App.close_log()
cmds = CmdChain.new()
cmds:set_replacements{
base = App.state.target:get_base(),
logfile = App.conf.log_filename
}
cmds:add(
"${root}${CP} ${tmp}${logfile} ${root}${base}/var/log/${logfile}",
"${root}${CHMOD} 600 ${root}${base}/var/log/${logfile}"
)
cmds:execute()
App.reopen_log()
return step:next()
else
App.ui:inform(
_("%s was not fully installed.", App.conf.product.name)
)
return step:prev()
end
end
}

Some files were not shown because too many files have changed in this diff Show More