Allow OS X to be an Administrative System

Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
Tom Eastep 2010-05-06 08:17:17 -07:00
parent 65a5d34276
commit a3b998d934
4 changed files with 39 additions and 4 deletions

View File

@ -43,6 +43,8 @@ Changes in Shorewall 4.4.9
20) In the routestopped file, assume 'routeback' if the interface has 20) In the routestopped file, assume 'routeback' if the interface has
'routeback'. 'routeback'.
21) Make Shorewall and Shorewall6 installable on OS X.
Changes in Shorewall 4.4.8 Changes in Shorewall 4.4.8
1) Correct handling of RATE LIMIT on NAT rules. 1) Correct handling of RATE LIMIT on NAT rules.

View File

@ -109,6 +109,7 @@ fi
DEBIAN= DEBIAN=
CYGWIN= CYGWIN=
MAC=
SPARSE= SPARSE=
MANDIR=${MANDIR:-"/usr/share/man"} MANDIR=${MANDIR:-"/usr/share/man"}
@ -124,6 +125,17 @@ case $(uname) in
CYGWIN=Yes CYGWIN=Yes
SPARSE=Yes SPARSE=Yes
;; ;;
Darwin)
if [ -z "$PREFIX" ]; then
DEST=
INIT=
fi
[ -z "$OWNER" ] && OWNER=root
[ -z "$GROUP" ] && GROUP=wheel
MAC=Yes
SPARSE=Yes
;;
*) *)
[ -z "$OWNER" ] && OWNER=root [ -z "$OWNER" ] && OWNER=root
[ -z "$GROUP" ] && GROUP=root [ -z "$GROUP" ] && GROUP=root
@ -170,6 +182,7 @@ if [ -n "$PREFIX" ]; then
install -d $OWNERSHIP -m 755 ${PREFIX}${DEST} install -d $OWNERSHIP -m 755 ${PREFIX}${DEST}
CYGWIN= CYGWIN=
MAC=
else else
# #
# Verify that Perl is installed # Verify that Perl is installed
@ -182,6 +195,8 @@ else
if [ -n "$CYGWIN" ]; then if [ -n "$CYGWIN" ]; then
echo "Installing Cygwin-specific configuration..." echo "Installing Cygwin-specific configuration..."
elif [ -n "$MAC" ]; then
echo "Installing Mac-specific configuration..."
else else
if [ -f /etc/debian_version ]; then if [ -f /etc/debian_version ]; then
echo "Installing Debian-specific configuration..." echo "Installing Debian-specific configuration..."
@ -239,7 +254,7 @@ elif [ -n "$INIT" ]; then
install_file init.sh ${PREFIX}${DEST}/$INIT 0544 install_file init.sh ${PREFIX}${DEST}/$INIT 0544
fi fi
[ -n "$CYGWIN" ] || echo "Shorewall script installed in ${PREFIX}${DEST}/$INIT" [ -n "$INIT" ] && echo "Shorewall script installed in ${PREFIX}${DEST}/$INIT"
# #
# Create /etc/shorewall, /usr/share/shorewall and /var/shorewall if needed # Create /etc/shorewall, /usr/share/shorewall and /var/shorewall if needed
@ -845,7 +860,7 @@ if [ -z "$PREFIX" ]; then
rm -rf /usr/share/shorewall-shell rm -rf /usr/share/shorewall-shell
fi fi
if [ -z "$PREFIX" -a -n "$first_install" -a -z "$CYGWIN" ]; then if [ -z "$PREFIX" -a -n "$first_install" -a -z "${CYGWIN}${MAC}" ]; then
if [ -n "$DEBIAN" ]; then if [ -n "$DEBIAN" ]; then
run_install $OWNERSHIP -m 0644 default.debian /etc/default/shorewall run_install $OWNERSHIP -m 0644 default.debian /etc/default/shorewall
ln -s ../init.d/shorewall /etc/rcS.d/S40shorewall ln -s ../init.d/shorewall /etc/rcS.d/S40shorewall

View File

@ -397,6 +397,9 @@ None.
if the interface has 'routeback' specified (either explicitly or if the interface has 'routeback' specified (either explicitly or
detected). detected).
9) Apple Macs running OS X may now be used as a Shorewall
administrative system. Simply install using the tarball installer.
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
V I. P R O B L E M S C O R R E C T E D A N D N E W F E A T U R E S V I. P R O B L E M S C O R R E C T E D A N D N E W F E A T U R E S
I N P R I O R R E L E A S E S I N P R I O R R E L E A S E S

View File

@ -109,6 +109,7 @@ fi
DEBIAN= DEBIAN=
CYGWIN= CYGWIN=
MAC=
MANDIR=${MANDIR:-"/usr/share/man"} MANDIR=${MANDIR:-"/usr/share/man"}
SPARSE= SPARSE=
@ -124,6 +125,17 @@ case $(uname) in
CYGWIN=Yes CYGWIN=Yes
SPARSE=Yes SPARSE=Yes
;; ;;
Darwin)
if [ -z "$PREFIX" ]; then
DEST=
INIT=
fi
[ -z "$OWNER" ] && OWNER=root
[ -z "$GROUP" ] && GROUP=wheel
MAC=Yes
SPARSE=Yes
;;
*) *)
[ -z "$OWNER" ] && OWNER=root [ -z "$OWNER" ] && OWNER=root
[ -z "$GROUP" ] && GROUP=root [ -z "$GROUP" ] && GROUP=root
@ -170,11 +182,14 @@ if [ -n "$PREFIX" ]; then
install -d $OWNERSHIP -m 755 ${PREFIX}${DEST} install -d $OWNERSHIP -m 755 ${PREFIX}${DEST}
CYGWIN= CYGWIN=
MAC=
else else
[ -x /usr/share/shorewall/compiler.pl ] || \ [ -x /usr/share/shorewall/compiler.pl ] || \
{ echo " ERROR: Shorewall >= 4.3.5 is not installed" >&2; exit 1; } { echo " ERROR: Shorewall >= 4.3.5 is not installed" >&2; exit 1; }
if [ -n "$CYGWIN" ]; then if [ -n "$CYGWIN" ]; then
echo "Installing Cygwin-specific configuration..." echo "Installing Cygwin-specific configuration..."
elif [ -n "$MAC" ]; then
echo "Installing Mac-specific configuration..."
else else
if [ -d /etc/apt -a -e /usr/bin/dpkg ]; then if [ -d /etc/apt -a -e /usr/bin/dpkg ]; then
echo "Installing Debian-specific configuration..." echo "Installing Debian-specific configuration..."
@ -232,7 +247,7 @@ elif [ -n "$INIT" ]; then
install_file init.sh ${PREFIX}${DEST}/$INIT 0544 ${PREFIX}/usr/share/shorewall6-${VERSION}.bkout install_file init.sh ${PREFIX}${DEST}/$INIT 0544 ${PREFIX}/usr/share/shorewall6-${VERSION}.bkout
fi fi
[ -n "$CYGWIN" ] || echo "Shorewall6 script installed in ${PREFIX}${DEST}/$INIT" [ -n "$INIT" ] && echo "Shorewall6 script installed in ${PREFIX}${DEST}/$INIT"
# #
# Create /etc/shorewall, /usr/share/shorewall and /var/shorewall if needed # Create /etc/shorewall, /usr/share/shorewall and /var/shorewall if needed
@ -699,7 +714,7 @@ if [ -d ${PREFIX}/etc/logrotate.d ]; then
echo "Logrotate file installed as ${PREFIX}/etc/logrotate.d/shorewall6" echo "Logrotate file installed as ${PREFIX}/etc/logrotate.d/shorewall6"
fi fi
if [ -z "$PREFIX" -a -n "$first_install" -a -z "$CYGWIN" ]; then if [ -z "$PREFIX" -a -n "$first_install" -a -z "${CYGWIN}${MAC}" ]; then
if [ -n "$DEBIAN" ]; then if [ -n "$DEBIAN" ]; then
run_install $OWNERSHIP -m 0644 default.debian /etc/default/shorewall6 run_install $OWNERSHIP -m 0644 default.debian /etc/default/shorewall6
ln -s ../init.d/shorewall6 /etc/rcS.d/S40shorewall6 ln -s ../init.d/shorewall6 /etc/rcS.d/S40shorewall6