Remove everything related to os x expert package

We decided to no longer ship expert packages for OS X because they're a
lot of trouble to keep maintained and confuse users. For those who want
a tor on OS X without Vidalia, macports is a fine option. Alternatively,
building from source is easy, too.

The polipo stuff that is still required for the Vidalia bundle build can
now be found in the torbrowser repository,
git://git.torproject.org/torbrowser.git.
This commit is contained in:
Sebastian Hahn 2010-10-11 18:47:14 +02:00
parent 6b4db953c9
commit fcdf1470c0
39 changed files with 13 additions and 1738 deletions

10
.gitignore vendored
View File

@ -63,16 +63,6 @@
/contrib/tor.logrotate
/contrib/tor.wxs
# /contrib/osx/
/contrib/osx/Makefile
/contrib/osx/Makefile.in
/contrib/osx/TorBundleDesc.plist
/contrib/osx/TorBundleInfo.plist
/contrib/osx/TorDesc.plist
/contrib/osx/TorInfo.plist
/contrib/osx/TorStartupDesc.plist
/contrib/osx/net.freehaven.tor.plist
# /contrib/suse/
/contrib/suse/tor.sh
/contrib/suse/Makefile.in

View File

@ -34,25 +34,6 @@ dist-rpm:
mv $$RPM_BUILD_DIR/RPMS/* .; \
rm -rf $$RPM_BUILD_DIR
dist-osx:
@if [ "x$(prefix)" != 'x/Library/Tor' ]; then \
echo "Configure with --prefix=/Library/Tor, please"; \
exit 1; \
fi; \
if [ "x$(bindir)" != 'x/Library/Tor' ]; then \
echo "Configure with --bindir=/Library/Tor, please"; \
exit 1; \
fi; \
if [ "x$(sysconfdir)" != 'x/Library' ]; then \
echo "Configure with --sysconfdir=/Library, please"; \
exit 1; \
fi; \
if [ "x$(CONFDIR)" != 'x/Library/Tor' ]; then \
echo "Configure with CONFDIR=/Library/Tor, please"; \
fi
$(MAKE) all
VERSION=$(VERSION) sh ./contrib/osx/package.sh
dist: check
doxygen:

View File

@ -0,0 +1,5 @@
o Removed features:
- Remove everything related to building the expert bundle for OS X. It
has confused many users, doesn't work right on OS X 10.6, and is hard
to get rid of once installed. Resolves bug 1274.

View File

@ -915,7 +915,7 @@ fi
CPPFLAGS="$CPPFLAGS $TOR_CPPFLAGS_libevent $TOR_CPPFLAGS_openssl $TOR_CPPFLAGS_zlib"
AC_CONFIG_FILES([Makefile tor.spec Doxyfile contrib/tor.sh contrib/torctl contrib/torify contrib/tor.logrotate contrib/Makefile contrib/osx/Makefile contrib/osx/TorBundleDesc.plist contrib/osx/TorBundleInfo.plist contrib/osx/TorDesc.plist contrib/osx/TorInfo.plist contrib/osx/TorStartupDesc.plist src/config/torrc.sample src/Makefile doc/Makefile doc/spec/Makefile src/config/Makefile src/common/Makefile src/or/Makefile src/test/Makefile src/win32/Makefile src/tools/Makefile contrib/suse/Makefile contrib/suse/tor.sh])
AC_CONFIG_FILES([Makefile tor.spec Doxyfile contrib/tor.sh contrib/torctl contrib/torify contrib/tor.logrotate contrib/Makefile src/config/torrc.sample src/Makefile doc/Makefile doc/spec/Makefile src/config/Makefile src/common/Makefile src/or/Makefile src/test/Makefile src/win32/Makefile src/tools/Makefile contrib/suse/Makefile contrib/suse/tor.sh])
AC_OUTPUT
if test -x /usr/bin/perl && test -x ./contrib/updateVersions.pl ; then

View File

@ -1,5 +1,5 @@
SUBDIRS = osx suse
DIST_SUBDIRS = osx suse
SUBDIRS = suse
DIST_SUBDIRS = suse
confdir = $(sysconfdir)/tor

View File

@ -1,9 +0,0 @@
# XXX Is this define necessary, or is it redundant with the
# one from the top-level configure? -RD
confdir = $(sysconfdir)/Tor
EXTRA_DIST = ReadMe.rtf StartupParameters.plist Tor TorBundleDesc.plist.in \
TorBundleInfo.plist.in TorBundleWelcome.rtf TorDesc.plist.in \
TorInfo.plist.in TorStartupDesc.plist.in TorStartupInfo.plist \
package.sh TorPostflight addsysuser Tor_Uninstaller.applescript \
uninstall_tor_bundle.sh package_list.txt tor_logo.gif TorPreFlight

View File

@ -1,7 +0,0 @@
{\rtf1\mac\ansicpg10000\cocoartf102
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww9000\viewh9000\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0\fs24 \cf0 Tor is a toolset for a wide range of organizations and people who want to improve their safety and security on the Internet. Using Tor can help you anonymize web browsing and publishing, instant messaging, IRC, SSH, and more. Tor also provides a platform on which software developers can build new applications with built-in anonymity, safety, and privacy features.}

View File

@ -1,13 +0,0 @@
{
Description = "Tor";
Provides = ("tor");
Requires = ("Network");
Uses = ("Network");
OrderPreference = "Last";
Messages =
{
start = "Starting Tor";
stop = "Stopping Tor";
};
}

View File

@ -1,87 +0,0 @@
#!/bin/sh
TORLOC=/Library/StartupItems/Tor/Tor.loc
if [ -f $TORLOC ]; then
TORDIR=`cat /Library/StartupItems/Tor/Tor.loc`
if [ "x$TORDIR" = "x" -o ! -d $TORDIR -o ! -x $TORDIR/tor ]; then
TORDIR=/Library/Tor
fi
else
TORDIR=/Library/Tor
fi
TORCONF=$TORDIR/torrc
TORDATA=$TORDIR/var/lib/tor
TORPID=/var/run/Tor.pid
TORUSER=_tor
TORGROUP=daemon
TORCMD=$TORDIR/tor
TORLOG=/var/log/tor.log
## Determine OSX Version
# map version to name
if [ -x /usr/bin/sw_vers ]; then
# This is poor, yet functional. We don't care about the 3rd number in
# the OS version
OSVER=`/usr/bin/sw_vers | grep ProductVersion | cut -f2 | cut -d"." -f1,2`
case "$OSVER" in
"10.6") ARCH="i386";;
"10.5") ARCH="i386";;
"10.4") ARCH="i386";;
"10.3") ARCH="ppc";;
"10.2") ARCH="ppc";;
"10.1") ARCH="ppc";;
"10.0") ARCH="ppc";;
esac
else
ARCH="unknown"
fi
if [ $ARCH != "i386" ]; then
export EVENT_NOKQUEUE=1
fi
##
# Tor Service
##
. /etc/rc.common
StartService ()
{
if [ -f $TORCMD ]; then
if pid=$(GetPID Tor); then
return 0
else
ConsoleMessage "Starting Tor Service"
# Tentative
# Making sure it is not running (I know it is not a best approarch)
killall tor 2>/dev/null
$TORCMD -f "$TORCONF" --runasdaemon 1 --pidfile "$TORPID" --datadirectory "$TORDATA" --user "$TORUSER" --group "$TORGROUP" --log "notice file $TORLOG" &
fi
fi
}
StopService ()
{
if pid=$(GetPID Tor); then
ConsoleMessage "Stopping Tor Service"
kill -TERM "${pid}"
# Just for sanity (sometimes necessary.)
killall tor 2>/dev/null
else
ConsoleMessage "Tor Service not responding."
# Just for sanity (sometimes necessary.)
killall tor 2>/dev/null
fi
}
RestartService () { StopService; StartService; }
if [ "$#" = 0 ]; then
echo "Syntax: tor {start|stop}"
exit 1
fi
RunService "$1"

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IFPkgDescriptionDeleteWarning</key>
<string></string>
<key>IFPkgDescriptionDescription</key>
<string>Bundled package of Tor @VERSION@.</string>
<key>IFPkgDescriptionTitle</key>
<string>Tor Expert Bundle</string>
<key>IFPkgDescriptionVersion</key>
<string>@VERSION@</string>
</dict>
</plist>

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>Tor Bundle</string>
<key>CFBundleGetInfoString</key>
<string>Tor Bundle @VERSION@</string>
<key>CFBundleIdentifier</key>
<string>org.torproject.torbundle</string>
<key>CFBundleShortVersionString</key>
<string>@VERSION@</string>
<key>IFPkgFlagComponentDirectory</key>
<string>../.contained_packages</string>
<key>IFPkgFlagPackageList</key>
<array>
<dict>
<key>IFPkgFlagPackageLocation</key>
<string>Tor.pkg</string>
<key>IFPkgFlagPackageSelection</key>
<string>required</string>
</dict>
<dict>
<key>IFPkgFlagPackageLocation</key>
<string>torstartup.pkg</string>
<key>IFPkgFlagPackageSelection</key>
<string>selected</string>
</dict>
</array>
<key>IFPkgFormatVersion</key>
<real>0.10000000149011612</real>
</dict>
</plist>

View File

@ -1,20 +0,0 @@
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 Helvetica-Oblique;\f2\fswiss\fcharset77 Helvetica-Bold;
}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh9000\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\f0\fs24 \cf0 Welcome to the Tor Expert installer.\
This will install Tor in your computer.\
\
\f0\b0 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f2\b \cf0 Tor
\f0\b0 is a system for using the Internet anonymously, and allowing\
others to do so.\
\
For more information, please visit https://www.torproject.org/\
\

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IFPkgDescriptionTitle</key>
<string>Tor</string>
<key>IFPkgDescriptionVersion</key>
<string>@VERSION@</string>
</dict>
</plist>

View File

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>Tor @VERSION@</string>
<key>CFBundleGetInfoString</key>
<string>Tor @VERSION@</string>
<key>CFBundleName</key>
<string>Tor</string>
<key>CFBundleShortVersionString</key>
<string>@VERSION@</string>
<key>IFPkgFlagAllowBackRev</key>
<true/>
<key>IFPkgFlagAuthorizationAction</key>
<string>RootAuthorization</string>
<key>IFPkgFlagFollowLinks</key>
<true/>
<key>IFPkgFlagIsRequired</key>
<true/>
<key>IFPkgFlagRootVolumeOnly</key>
<true/>
<key>IfPkgFlagBackgroundScaling</key>
<string>proportional</string>
<key>IFPkgFlagBackgroundAlignment</key>
<string>bottomleft</string>
</dict>
</plist>

View File

@ -1,123 +0,0 @@
#!/bin/sh
# ====================================================================
# TorPostFlight is distributed under this license
#
# Copyright (c) 2006 Andrew Lewman
# Copyright (c) 2008 The Tor Project
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * 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.
#
# * Neither the names of the copyright owners nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
# OWNER 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.
# ======================================================================
# TorPostflight gets invoked after any install or upgrade.
ADDSYSUSER=$RECEIPT_PATH/addsysuser
if [ ! -x "$ADDSYSUSER" ]; then
echo "Could not find addsysuser script."
exit 1
fi
TORUSER=_tor
TORGROUP=daemon
TARGET=$2/Library/Tor
TORDIR=$TARGET/var/lib/tor
LOGFILE=/var/log/tor.log
# Check defaults for TARGET
if [ "$TARGET" == "//Library/Tor" ]; then
TARGET=/Library/Tor
fi
# Create user $TORUSER in group daemon. If it's already there, great.
$ADDSYSUSER $TORUSER "Tor System user" $TORDIR
# Create the tor directory, if it doesn't exist.
if [ ! -d $TORDIR ]; then
mkdir -p $TORDIR
fi
# Check its permissions.
chown $TORUSER $TORDIR
chgrp daemon $TORDIR
chmod 700 $TORDIR
if [ ! -f $LOGFILE ]; then
touch $LOGFILE
chown $TORUSER $LOGFILE
chgrp daemon $LOGFILE
chmod 660 $LOGFILE
fi
# Create the configuration file only if there wasn't one already.
if [ ! -f $TARGET/torrc ]; then
cp $TARGET/torrc.sample $TARGET/torrc
fi
# Put the geoip database into the datadir
if [ ! -f $TORDIR/geoip ]; then
cp $PACKAGE_PATH/Contents/Resources/geoip $TORDIR/geoip
fi
# Ensure symbolic links
cd /usr/bin
if [ -e /usr/bin/tor -a ! -L /usr/bin/tor ]; then
mv tor tor_old
fi
if [ -e /usr/bin/tor-resolve -a ! -L /usr/bin/tor-resolve ]; then
mv tor-resolve tor-resolve_old
fi
ln -sf $TARGET/tor .
ln -sf $TARGET/tor-resolve .
cd /usr/share/man/man1
MAN1=$TARGET/share/man/man1
#ln -sf $MAN1/*.1 .
# Copy Documentation
if [ -d $PACKAGE_PATH/Contents/Resources/documents ];then
cp -r $PACKAGE_PATH/Contents/Resources/documents $TARGET/documents
fi
# Copy Uninstaller
if [ -f $PACKAGE_PATH/Contents/Resources/Tor_Uninstaller.applescript ]; then
cp $PACKAGE_PATH/Contents/Resources/Tor_Uninstaller.applescript $TARGET/Tor_Uninstaller.applescript
chmod 550 $TARGET/Tor_Uninstaller.applescript
fi
if [ -f $PACKAGE_PATH/Contents/Resources/uninstall_tor_bundle.sh ]; then
cp $PACKAGE_PATH/Contents/Resources/uninstall_tor_bundle.sh $TARGET/uninstall_tor_bundle.sh
chmod 550 $TARGET/uninstall_tor_bundle.sh
fi
if [ -f $PACKAGE_PATH/Contents/Resources/package_list.txt ]; then
cp $PACKAGE_PATH/Contents/Resources/package_list.txt $TARGET/package_list.txt
fi
if [ -d /Library/StartupItems/Tor ]; then
rm -f /Library/StartupItems/Tor/Tor.loc
echo "$TARGET" > /Library/StartupItems/Tor/Tor.loc
fi

View File

@ -1,51 +0,0 @@
#!/bin/sh
#
# ===================================================================
#
# TorPreFlight is distributed under this license:
#
# Copyright (c) 2006 Andrew Lewman
# Copyright (c) 2008 The Tor Project, Inc.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * 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.
#
# * Neither the names of the copyright owners nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
# OWNER 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.
#===============================================================================
# TorPreFlight is invoked before the install begins
# Figure out where Tor is installed
if [ -f /Library/StartupItems/Tor/Tor.loc ]; then
TORPATH=`cat /Library/StartupItems/Tor/Tor.loc`
else
TORPATH="/Library/Tor/"
fi
# Backup all of Tor, just in case
if [ -d $TORPATH ]; then
cp $TORPATH/torrc $TORPATH/torrc.installer-saved
fi

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IFPkgDescriptionTitle</key>
<string>Tor Startup Script</string>
<key>IFPkgDescriptionVersion</key>
<string>@VERSION@</string>
</dict>
</plist>

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>Tor Startup Script</string>
<key>CFBundleGetInfoString</key>
<string>Tor Startup Script</string>
<key>CFBundleName</key>
<string>Tor Startup Script</string>
<key>CFBundleShortVersionString</key>
<string>0.1</string>
<key>IFPkgFlagAllowBackRev</key>
<true/>
<key>IFPkgFlagAuthorizationAction</key>
<string>RootAuthorization</string>
<key>IFPkgFlagRestartAction</key>
<string>NoRestart</string>
<key>IFPkgFlagFollowLinks</key>
<true/>
<key>IFPkgFlagIsRequired</key>
<false/>
<key>IFPkgFlagRootVolumeOnly</key>
<true/>
</dict>
</plist>

View File

@ -1,68 +0,0 @@
-- Tor Uninstaller.applescript
-- Tor Uninstaller
-- ===============================================================================
-- Tor Uninstaller is distributed under this license:
--
-- Copyright (c) 2005 Andrew Lewman ( pgp key: 31B0974B )
--
-- Redistribution and use in source and binary forms, with or without
-- modification, are permitted provided that the following conditions are
-- met:
--
-- * Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
--
-- * 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.
--
-- * Neither the names of the copyright owners nor the names of its
-- contributors may be used to endorse or promote products derived from
-- this software without specific prior written permission.
--
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
-- OWNER 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.
-- ===============================================================================
on run
-- Validate & find disk paths
set boot_disk to (path to startup disk) as string
set default_tor_path to boot_disk & "Library:Tor"
set default_privoxy_path to boot_disk & "Library:Privoxy"
set default_tor_startup_path to boot_disk & "Library:StartupItems:Tor"
set default_privoxy_startup_path to boot_disk & "Library:StartupItems:Privoxy"
set shell_script to default_tor_path & ":uninstall_tor_bundle.sh"
set doomed_path_list to {default_tor_path, default_privoxy_path, default_tor_startup_path, default_privoxy_startup_path}
-- Display what we're removing and ask for validation
-- this is the simplest way to do this
set remove_me to display dialog "Welcome to the Tor + Privoxy Uninstaller. This program will remove:" & return & return & POSIX path of default_tor_path & return & POSIX path of default_privoxy_path & return & POSIX path of default_tor_startup_path & return & POSIX path of default_privoxy_startup_path & return & return & "If this looks correct, choose Yes. Otherwise, choose No." buttons {"Yes", "No"} default button "No"
-- Run a shell script to do all the unix work since applescript can't see it at all
if button returned of result is "Yes" then
try
do shell script (POSIX path of shell_script) with administrator privileges
on error
display dialog "Too many errors, quitting." buttons {"Quit"} default button "Quit" with icon stop giving up after 3
quit
end try
-- So Long and Thanks for all the Fish!
display dialog "Thank you for using tor!" buttons {"Ok"} giving up after 3
else
display dialog "Thank you for your continued use of Tor & Privoxy" buttons {"You're welcome."} giving up after 3
end if
end run
-- We're done

View File

@ -1,83 +0,0 @@
#!/bin/sh
#
# Original adduser 05 Feb 2002 by Jon L. Gardner
#
# Modified for Tor installer by Nick Mathewson
# 2007-06-12 Modified for leopard by Andrew Lewman
# Copyright (c) 2007 Andrew Lewman
#
ROOTPROP=/
if [ "`whoami`" != "root" ]; then
echo "You must be root to execute this script."
exit
fi
if [ "x$3" = "x" ]; then
echo 'Usage: addsysuser <username> "<full name>" <homedir>'
exit 0
fi
username=$1
realname=$2
homedir=$3
if [ -x /usr/bin/dscl ]; then
# Determine the gid of the daemon group
gid=`dscl . -read /groups/daemon gid`
if [ "x`dscl . -list /users|cut -f2 -d' '|grep $username`" != "x" ]; then
echo The account $username already exists.
exit 0
fi
if [ -x /usr/bin/nidump ]; then
uiddef=`nidump passwd / | cut -d: -f3 | sort -n | grep -v '^[56789]..' |grep -v '^....$' | tail -n 1`
else
_tmp=/tmp/_dsexport_tmp.txt.$$
rm -f $_tmp
dsexport $_tmp '/Local/Default' 'dsRecTypeStandard:Users' > /dev/null 2>&1
uiddef=`cat $_tmp | sed 's/\\\://g' | cut -d: -f6 | grep '^[0-9]' | sort -n | grep -v '^[56789]..' | grep -v '^....$' | tail -n 1`
rm -f $_tmp
fi
uiddef=`echo $uiddef + 1 | bc`
dscl . -create /users/$username uid $uiddef
# home is the local path to the home directory
home=/Users/$username
echo Creating account for $username...
dscl . -create /users/$username
dscl . -create /users/$username _writers_tim_passwd $username
dscl . -create /users/$username realname $realname
dscl . -create /users/$username _writers_passwd $username
dscl . -create /users/$username gid $gid
dscl . -create /users/$username home $homedir
dscl . -create /users/$username name $username
dscl . -create /users/$username passwd '*'
dscl . -create /users/$username shell /dev/null
else
# Determine the gid of the daemon group
gid=`niutil -readprop $ROOTPROP /groups/daemon gid`
if [ "x`niutil -list $ROOTPROP /users|cut -f2 -d' '|grep $username`" != "x" ]; then
echo The account $username already exists.
exit 0
fi
# home is the local path to the home directory
home=/Users/$username
# defhome is what goes into NetInfo
defhome="/Network/Servers/MyServer/Users"
#echo "Determining next available system uid (please be patient)..."
# Uids over 500 are for system users.
uiddef=`nidump passwd / | cut -d: -f3 | sort -n | grep -v '^[56789]..' |grep -v '^....$' | tail -n 1`
uiddef=`echo $uiddef + 1 |bc`
echo Creating account for $username...
niutil -create $ROOTPROP /users/$username
niutil -createprop $ROOTPROP /users/$username _writers_tim_passwd $username
niutil -createprop $ROOTPROP /users/$username realname $realname
niutil -createprop $ROOTPROP /users/$username _writers_passwd $username
niutil -createprop $ROOTPROP /users/$username uid $uiddef
#niutil -createprop $ROOTPROP /users/$username home_loc "<home_dir><url>afp://afp.server.com/Users/</url><path>$username</path></home_dir>"
niutil -createprop $ROOTPROP /users/$username gid $gid
niutil -createprop $ROOTPROP /users/$username home $homedir
niutil -createprop $ROOTPROP /users/$username name $username
niutil -createprop $ROOTPROP /users/$username passwd '*'
niutil -createprop $ROOTPROP /users/$username shell /dev/null
fi

View File

@ -1,26 +0,0 @@
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\"
\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
<key>Label</key>
<string>org.torproject.tor</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/tor</string>
<string>-f</string>
<string>/Library/Tor/torrc</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>OnDemand</key>
<false/>
<key>UserName</key>
<string>_tor</string>
<key>GroupName</key>
<string>daemon</string>
</dict>
</plist>

View File

@ -1,153 +0,0 @@
#!/bin/sh
# Copyright 2004-2005 Nick Mathewson.
# Copyright 2005-2007 Andrew Lewman
# Copyright 2008 The Tor Project, Inc.
# See LICENSE in Tor distribution for licensing information.
# This script builds a Macintosh OS X metapackage containing 2 packages:
# - One for Tor.
# - One for Startup script for Tor.
#
# This script expects to be run from the toplevel makefile, with VERSION
# set to the latest Tor version, and Tor already built.
#
# Read the documentation located in tor/doc/tor-osx-dmg-creation.txt on
# how to build Tor for OSX
###
# Helpful info on OS X packaging:
# http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareDistribution/index.html
# man packagemaker
# Make sure VERSION is set, so we don't name the package
# "Tor--$ARCH-Bundle.dmg"
if [ "XX$VERSION" = 'XX' ]; then
echo "VERSION not set."
exit 1
fi
## Determine OSX Version
# map version to name
if [ -x /usr/bin/sw_vers ]; then
# This is poor, yet functional. We don't care about the 3rd number in
# the OS version
OSVER=`/usr/bin/sw_vers | grep ProductVersion | cut -f2 | cut -d"." -f1,2`
case "$OSVER" in
"10.6") ARCH="i386";;
"10.5") ARCH="i386";;
"10.4") ARCH="i386";;
"10.3") ARCH="ppc";;
"10.2") ARCH="ppc";;
"10.1") ARCH="ppc";;
"10.0") ARCH="ppc";;
*) ARCH="unknown";;
esac
else
ARCH="unknown"
fi
# Where will we put our temporary files?
BUILD_DIR=/tmp/tor-osx-$$
# Path to PackageMaker app.
PACKAGEMAKER=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
umask 022
echo I might ask you for your password now, so you can sudo.
sudo rm -rf $BUILD_DIR
mkdir $BUILD_DIR || exit 1
for subdir in tor_packageroot tor_resources \
torstartup_packageroot \
torbundle_resources \
output; do
mkdir $BUILD_DIR/$subdir
done
### Make Tor package.
make install DESTDIR=$BUILD_DIR/tor_packageroot
cp contrib/osx/ReadMe.rtf $BUILD_DIR/tor_resources
chmod 755 contrib/osx/TorPostflight
cp contrib/osx/TorPostflight $BUILD_DIR/tor_resources/postflight
cp contrib/osx/addsysuser $BUILD_DIR/tor_resources/addsysuser
cp contrib/osx/Tor_Uninstaller.applescript $BUILD_DIR/tor_resources/Tor_Uninstaller.applescript
cp contrib/osx/uninstall_tor_bundle.sh $BUILD_DIR/tor_resources/uninstall_tor_bundle.sh
cp contrib/osx/package_list.txt $BUILD_DIR/tor_resources/package_list.txt
cp contrib/osx/tor_logo.gif $BUILD_DIR/tor_resources/background.gif
cp src/config/geoip $BUILD_DIR/tor_resources/geoip
cat <<EOF > $BUILD_DIR/tor_resources/Welcome.txt
Tor: an anonymous Internet communication system
Tor is a system for using the internet anonymously, and allowing
others to do so.
EOF
### Assemble documentation
DOC=$BUILD_DIR/tor_resources/documents
mkdir $DOC
mkdir $DOC/howto
groff doc/tor.1.in -T ps -m man | pstopdf -i -o $DOC/tor-reference.pdf
groff doc/tor-resolve.1 -T ps -m man | pstopdf -i -o $DOC/tor-resolve.pdf
mkdir $DOC/Advanced
cp doc/spec/*.txt $DOC/Advanced
cp doc/HACKING $DOC/Advanced/HACKING.txt
cp ChangeLog $DOC/Advanced/ChangeLog.txt
find $BUILD_DIR/tor_packageroot -print0 |sudo xargs -0 chown root:wheel
$PACKAGEMAKER -build \
-p $BUILD_DIR/output/Tor.pkg \
-f $BUILD_DIR/tor_packageroot \
-r $BUILD_DIR/tor_resources \
-i contrib/osx/TorInfo.plist \
-d contrib/osx/TorDesc.plist
### Make Startup Script package
mkdir -p $BUILD_DIR/torstartup_packageroot/Library/StartupItems/Tor
cp contrib/osx/Tor contrib/osx/StartupParameters.plist \
$BUILD_DIR/torstartup_packageroot/Library/StartupItems/Tor
find $BUILD_DIR/torstartup_packageroot -print0 | sudo xargs -0 chown root:wheel
$PACKAGEMAKER -build \
-p $BUILD_DIR/output/torstartup.pkg \
-f $BUILD_DIR/torstartup_packageroot \
-i contrib/osx/TorStartupInfo.plist \
-d contrib/osx/TorStartupDesc.plist
### Assemble the metapackage. Packagemaker won't buld metapackages from
# the command line, so we need to do it by hand.
MPKG=$BUILD_DIR/output/Tor-$VERSION-$ARCH-Bundle.mpkg
mkdir -p "$MPKG/Contents/Resources"
echo -n "pmkrpkg1" > "$MPKG/Contents/PkgInfo"
cp contrib/osx/ReadMe.rtf "$MPKG/Contents/Resources"
cp contrib/osx/TorBundleInfo.plist "$MPKG/Contents/Info.plist"
cp contrib/osx/TorBundleWelcome.rtf "$MPKG/Contents/Resources/Welcome.rtf"
cp contrib/osx/TorBundleDesc.plist "$MPKG/Contents/Resources/Description.plist"
cp contrib/osx/tor_logo.gif "$MPKG/Contents/Resources/background.gif"
# Move all the subpackages into place.
mkdir $BUILD_DIR/output/.contained_packages
mv $BUILD_DIR/output/*.pkg $BUILD_DIR/OUTPUT/.contained_packages
( cd $BUILD_DIR/output/.contained_packages )
### Copy readmes and licenses into toplevel.
cp contrib/osx/ReadMe.rtf $BUILD_DIR/output/Tor\ ReadMe.rtf
cp LICENSE $BUILD_DIR/output/Tor\ License.txt
### Package it all into a DMG
find $BUILD_DIR/output -print0 | sudo xargs -0 chown root:wheel
sudo mv $BUILD_DIR/output "$BUILD_DIR/Tor-$VERSION-$ARCH-Bundle"
rm -f "Tor-$VERSION-$ARCH-Bundle.dmg"
USER="`whoami`"
sudo hdiutil create -format UDZO -imagekey zlib-level=9 -srcfolder "$BUILD_DIR/Tor-$VERSION-$ARCH-Bundle" "Tor-$VERSION-$ARCH-Bundle.dmg"
sudo chown "$USER" "Tor-$VERSION-$ARCH-Bundle.dmg"
sudo rm -rf $BUILD_DIR

View File

@ -1,2 +0,0 @@
Tor
torstartup

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,140 +0,0 @@
#!/bin/sh
#
# not a psueber-pretty uninstall script for the Tor bundle package
# . this currently leaves ~/.tor, /var/log/tor and empty
# directories /Library/Tor, /Library/Privoxy (see comment below)
# . this relies on the fact that the startup items directories (if any)
# will be named the same as the package name (ie. Tor)
#
#
# version history
# initial version - 21 may, 2005 - loki der quaeler
#
#
# comments
# loki: because of the way the Tor package installs itself (the root directory
# is the filesystem root, as opposed to the much nicer way that privoxy
# installs itself with the privoxy home (/Library/Privoxy) as its
# install root directory), i thought it more prudent to leave empty
# directories laying around rather than try to incorrectly intuit from
# the bom contents what directories should exist and which ones could be
# deleted (ie, the Tor package has /Library listed in its bom --
# obviously this is a Bad Thing(tm) to delete).
# + when the Tor installer is changed, this uninstaller could be modified.
# loki: /bin/ps, when run from a terminal window in osX, restricts information
# based on the width of the window. an 80 col window will stupidly cause
# the grep search for the privoxy pid to not find the pid, whereas the grep
# in a wider window succeeds. consider using killall. in the meantime,
# advise uninstall runners to drag wide their terminal window.. ugh
#
### this is the location of a file which contains all the actual package names
## (ie "Tor", "torstartup", ...) the list should be new-line-delimited.
PACKAGE_LIST_SRC=/Library/Tor/package_list.txt
### this is the name of the user created in the install process of Tor
TOR_USER=_tor
### these should be constant across all osX installs (so leave them be)
STARTUP_ITEMS_DIR=/Library/StartupItems
PKG_RCPT_BASE_DIR=/Library/Receipts
BOM_INTERMEDIATE_DIR=Contents/Resources
INFO_INTERMEDIATE_DIR=$BOM_INTERMEDIATE_DIR/English.lproj
TEMP_BOM_CONTENTS=/tmp/tor_uninst_scratch
### make sure the script is being run as root, barf if not
if [ "`whoami`" != "root" ]; then
echo "Must be root to run the uninstall script."
exit -1
fi
### check to see if tor is currently running, kill it if it is
## we grep on 'Tor/tor ' because 'tor' is too common (like in 'directory')
## -- this relies on the fact that tor has been started with command
## line arguments.. :-/
TOR_PID=`ps -uax | grep 'Tor/tor ' | grep -v grep | awk '{print $2;}'`
if [ ${#TOR_PID} -gt 0 ]; then
echo ". Killing currently running tor process, pid is $TOR_PID"
kill -9 $TOR_PID
else
echo ". tor process appears to already be stopped"
fi
### check to see if privoxy is currently running, kill it if it is
PRIVOXY_PID=`ps -uax | grep privoxy | grep -v grep | awk '{print $2;}'`
if [ ${#PRIVOXY_PID} -gt 0 ]; then
echo ". Killing currently running privoxy process, pid is $PRIVOXY_PID"
kill -9 $PRIVOXY_PID
else
echo ". privoxy process appears to already be stopped"
fi
## grab each package name from the package list file
while read LINE; do
if [ ${#LINE} -gt 0 ]; then
PACKAGE_NAME=$LINE.pkg
PACKAGE_PATH=$PKG_RCPT_BASE_DIR/$PACKAGE_NAME
echo ". Uninstalling $PACKAGE_NAME"
if [ ! -d $PACKAGE_PATH ]; then
echo " . No receipt exists for this package -- skipping."
continue
fi
## get rid of the startup item if it exists
STARTUP_DIR=$STARTUP_ITEMS_DIR/$LINE
if [ -d $STARTUP_DIR ]; then
echo " . Deleting startup item $STARTUP_DIR"
rm -rf $STARTUP_DIR
fi
## determine the root directory of the the relative paths specified in the bom
DEFAULT_LOC=`grep DefaultLocation $PACKAGE_PATH/$INFO_INTERMEDIATE_DIR/$LINE.info | awk '{print $2;}'`
if [ ${#DEFAULT_LOC} -eq 0 ]; then
echo "!! Could not find default location for $LINE package -- skipping package."
continue
fi
## examine the list of installed items desribed in the bom
BOM_FILE=$PACKAGE_PATH/$BOM_INTERMEDIATE_DIR/$LINE.bom
lsbom $BOM_FILE > $TEMP_BOM_CONTENTS
while read BOM_ITEM; do
## 3 column items describe just directories, 5 column items describe actual files
COL_COUNT=$(echo $BOM_ITEM | awk '{print NF;}')
if [ "$COL_COUNT" -eq 5 ]; then
FILE_NAME=$DEFAULT_LOC/$(echo $BOM_ITEM | awk '{print $1;}')
echo " . Removing $FILE_NAME"
rm -rf $FILE_NAME
fi
done < $TEMP_BOM_CONTENTS
## remove package receipt
echo " . Removing package receipt $PACKAGE_PATH"
rm -rf $PACKAGE_PATH
fi
done < $PACKAGE_LIST_SRC
## nuke the user created by the install process.
echo ". Removing created user $TOR_USER"
if [ -x /usr/bin/dscl ]; then
dscl . -delete /users/$TOR_USER
else
niutil -destroy . /users/$TOR_USER
fi
## clean up
echo ". Cleaning up"
rm -rf $TEMP_BOM_CONTENTS
rm -rf /Library/Privoxy/ /Library/StartupItems/Privoxy/ /Library/Tor/ /Library/StartupItems/Tor/ /Library/Torbutton/ /Library/Receipts/Privoxy.pkg /Library/Receipts/torbutton.pkg /Library/Receipts/Tor.pkg /Library/Receipts/Vidalia.pkg /Library/Receipts/TorStartup.pkg
echo ". Finished"

View File

@ -1,103 +0,0 @@
PREFIX = /Library/Polipo
BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/man
INFODIR = $(PREFIX)/info
LOCAL_ROOT = $(PREFIX)/www
DISK_CACHE_ROOT = $(PREFIX)/cache
CC = gcc
# CDEBUGFLAGS = -Os -g -Wall -std=gnu99
CDEBUGFLAGS = -Os -g -Wall
FILE_DEFINES = -DLOCAL_ROOT=\"$(LOCAL_ROOT)/\" \
-DDISK_CACHE_ROOT=\"$(DISK_CACHE_ROOT)/\"
# You may optionally also add any of the following to DEFINES:
#
# -DNO_DISK_CACHE to compile out the on-disk cache and local web server;
# -DNO_IPv6 to avoid using the RFC 3493 API and stick to stock
# Berkeley sockets;
# -DHAVE_IPv6 to force the use of the RFC 3493 API on systems other
# than GNU/Linux and BSD (let me know if it works);
# -DNO_FANCY_RESOLVER to compile out the asynchronous name resolution
# code;
# -DNO_STANDARD_RESOLVER to compile out the code that falls back to
# gethostbyname/getaddrinfo when DNS requests fail;
# -DNO_TUNNEL to compile out the code that handles CONNECT requests;
# -DNO_SOCKS to compile out the SOCKS gateway code.
# -DNO_FORBIDDEN to compile out the all of the forbidden URL code
# -DNO_REDIRECTOR to compile out the Squid-style redirector code
DEFINES = $(FILE_DEFINES) $(PLATFORM_DEFINES)
# Uncomment the UNIVERSAL, LDFLAGS, CFLAGS lines if you want universal binaries, otherwise
# you'll produce a binary only for your architecture and version of OSX
# UNIVERSAL = -O -g -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
# LDFLAGS = -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk
# CFLAGS = $(MD5INCLUDES) $(CDEBUGFLAGS) $(DEFINES) $(EXTRA_DEFINES) $(UNIVERSAL)
# If you uncommented the above CFLAGS, remove this next one.
CFLAGS = $(MD5INCLUDES) $(CDEBUGFLAGS) $(DEFINES) $(EXTRA_DEFINES)
SRCS = util.c event.c io.c chunk.c atom.c object.c log.c diskcache.c main.c \
config.c local.c http.c client.c server.c auth.c tunnel.c \
http_parse.c parse_time.c dns.c forbidden.c \
md5import.c md5.c ftsimport.c fts_compat.c socks.c
OBJS = util.o event.o io.o chunk.o atom.o object.o log.o diskcache.o main.o \
config.o local.o http.o client.o server.o auth.o tunnel.o \
http_parse.o parse_time.o dns.o forbidden.o \
md5import.o ftsimport.o socks.o
polipo: $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o polipo $(OBJS) $(MD5LIBS) $(LDLIBS)
ftsimport.o: ftsimport.c fts_compat.c
md5import.o: md5import.c md5.c
.PHONY: all install install.binary install.man
all: polipo
install: install.binary install.man
install.binary: all
mkdir -p $(TARGET)$(BINDIR)
mkdir -p $(TARGET)$(LOCAL_ROOT)
mkdir -p $(TARGET)$(LOCAL_ROOT)/doc
mkdir -p $(TARGET)$(DISK_CACHE_ROOT)
cp -f polipo $(TARGET)$(BINDIR)/
cp -f localindex.html $(TARGET)$(LOCAL_ROOT)/index.html
cp -f config.osx $(TARGET)$(LOCAL_ROOT)/config
texi2html polipo.texi && cp -f polipo.html $(TARGET)$(LOCAL_ROOT)/doc/index.html
groff polipo.man -T ps -m man | pstopdf -i -o $(TARGET)/polipo.pdf
mkdir -p /Library/StartupItems/Polipo
cp -f contrib/Polipo /Library/StartupItems/Polipo/
cp -f contrib/StartupParameters.plist /Library/StartupItems/Polipo/
echo "POLIPO=-YES-" >> /etc/hostconfig
install.man: all
mkdir -p $(TARGET)$(MANDIR)/man1
cp -f polipo.man $(TARGET)$(MANDIR)/man1/polipo.1
TAGS: $(SRCS)
etags $(SRCS)
.PHONY: clean
clean:
-rm -f polipo *.o *~ core TAGS gmon.out
-rm -f polipo.cp polipo.fn polipo.log polipo.vr
-rm -f polipo.cps polipo.info* polipo.pg polipo.toc polipo.vrs
-rm -f polipo.aux polipo.dvi polipo.ky polipo.ps polipo.tp
-rm -f polipo.dvi polipo.ps polipo.ps.gz polipo.pdf polipo.html
-rm -rf ./html/
-rm -f polipo.man.html
.PHONY: uninstall
uninstall:
rm -rf /Library/Polipo
rm -rf /Library/StartupItems/Polipo
cp -f /etc/hostconfig /etc/hostconfig.polipo.saved
cat /etc/hostconfig.polipo.saved | grep -v POLIPO > /etc/hostconfig

View File

@ -1,97 +0,0 @@
PREFIX = /Library/Polipo
BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/man
INFODIR = $(PREFIX)/info
LOCAL_ROOT = $(PREFIX)/www
DISK_CACHE_ROOT = $(PREFIX)/cache
CC = gcc
# CDEBUGFLAGS = -Os -g -Wall -std=gnu99
CDEBUGFLAGS = -Os -g -Wall
FILE_DEFINES = -DLOCAL_ROOT=\"$(LOCAL_ROOT)/\" \
-DDISK_CACHE_ROOT=\"$(DISK_CACHE_ROOT)/\"
# You may optionally also add any of the following to DEFINES:
#
# -DNO_DISK_CACHE to compile out the on-disk cache and local web server;
# -DNO_IPv6 to avoid using the RFC 3493 API and stick to stock
# Berkeley sockets;
# -DHAVE_IPv6 to force the use of the RFC 3493 API on systems other
# than GNU/Linux and BSD (let me know if it works);
# -DNO_FANCY_RESOLVER to compile out the asynchronous name resolution
# code;
# -DNO_STANDARD_RESOLVER to compile out the code that falls back to
# gethostbyname/getaddrinfo when DNS requests fail;
# -DNO_TUNNEL to compile out the code that handles CONNECT requests;
# -DNO_SOCKS to compile out the SOCKS gateway code.
# -DNO_FORBIDDEN to compile out the all of the forbidden URL code
# -DNO_REDIRECTOR to compile out the Squid-style redirector code
DEFINES = $(FILE_DEFINES) $(PLATFORM_DEFINES)
CFLAGS = $(MD5INCLUDES) $(CDEBUGFLAGS) $(DEFINES) $(EXTRA_DEFINES)
SRCS = util.c event.c io.c chunk.c atom.c object.c log.c diskcache.c main.c \
config.c local.c http.c client.c server.c auth.c tunnel.c \
http_parse.c parse_time.c dns.c forbidden.c \
md5import.c md5.c ftsimport.c fts_compat.c socks.c
OBJS = util.o event.o io.o chunk.o atom.o object.o log.o diskcache.o main.o \
config.o local.o http.o client.o server.o auth.o tunnel.o \
http_parse.o parse_time.o dns.o forbidden.o \
md5import.o ftsimport.o socks.o
polipo: $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o polipo $(OBJS) $(MD5LIBS) $(LDLIBS)
ftsimport.o: ftsimport.c fts_compat.c
md5import.o: md5import.c md5.c
.PHONY: all install install.binary install.man
all: polipo
install: install.binary install.man
install.binary: all
mkdir -p $(TARGET)$(BINDIR)
mkdir -p $(TARGET)$(LOCAL_ROOT)
mkdir -p $(TARGET)$(LOCAL_ROOT)/doc
mkdir -p $(TARGET)$(DISK_CACHE_ROOT)
cp -f polipo $(TARGET)$(BINDIR)/
cp -f localindex.html $(TARGET)$(LOCAL_ROOT)/index.html
cp -f config.osx $(TARGET)$(LOCAL_ROOT)/config
texi2html polipo.texi && cp -f polipo.html $(TARGET)$(LOCAL_ROOT)/doc/index.html
groff polipo.man -T ps -m man | pstopdf -i -o $(TARGET)/polipo.pdf
mkdir -p /Library/StartupItems/Polipo
cp -f contrib/Polipo /Library/StartupItems/Polipo/
cp -f contrib/StartupParameters.plist /Library/StartupItems/Polipo/
echo "POLIPO=-YES-" >> /etc/hostconfig
install.man: all
mkdir -p $(TARGET)$(MANDIR)/man1
cp -f polipo.man $(TARGET)$(MANDIR)/man1/polipo.1
TAGS: $(SRCS)
etags $(SRCS)
.PHONY: clean
clean:
-rm -f polipo *.o *~ core TAGS gmon.out
-rm -f polipo.cp polipo.fn polipo.log polipo.vr
-rm -f polipo.cps polipo.info* polipo.pg polipo.toc polipo.vrs
-rm -f polipo.aux polipo.dvi polipo.ky polipo.ps polipo.tp
-rm -f polipo.dvi polipo.ps polipo.ps.gz polipo.pdf polipo.html
-rm -rf ./html/
-rm -f polipo.man.html
.PHONY: uninstall
uninstall:
rm -rf /Library/Polipo
rm -rf /Library/StartupItems/Polipo
cp -f /etc/hostconfig /etc/hostconfig.polipo.saved
cat /etc/hostconfig.polipo.saved | grep -v POLIPO > /etc/hostconfig

View File

@ -1,40 +0,0 @@
#!/bin/sh
##
# Polipo
##
. /etc/rc.common
StartService ()
{
if [ -f /Library/Polipo/bin/polipo ]; then
if pid=$(GetPID polipo); then
return 0
else if [ "${POLIPO:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting Polipo"
/Library/Polipo/bin/polipo -c /Library/Polipo/www/config
fi
fi
fi
}
StopService ()
{
if pid=$(GetPID polipo); then
ConsoleMessage "Stopping Polipo"
kill -TERM "${pid}"
else
ConsoleMessage "Polipo not responding."
# Just for sanity (sometimes necessary.)
killall tor 2>/dev/null
fi
}
RestartService ()
{
StopService
StartService
}
RunService "$1"

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IFPkgDescriptionTitle</key>
<string>Polipo</string>
<key>IFPkgDescriptionVersion</key>
<string>1.0.4</string>
</dict>
</plist>

View File

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>Polipo 1.0.4</string>
<key>CFBundleGetInfoString</key>
<string>Polipo 1.0.4</string>
<key>CFBundleName</key>
<string>Polipo</string>
<key>CFBundleSortVersionString</key>
<string>1.0.4</string>
<key>IFPkgFlagAllowBackRev</key>
<true/>
<key>IFPkgFlagAuthorizationAction</key>
<string>RootAuthorization</string>
<key>IFPkgFlagFollowLinks</key>
<true/>
<key>IFPkgFlagIsRequired</key>
<true/>
<key>IFPkgFlagRootVolumeOnly</key>
<true/>
<key>IfPkgFlagBackgroundScaling</key>
<string>proportional</string>
<key>IFPkgFlagBackgroundAlignment</key>
<string>bottomleft</string>
</dict>
</plist>

View File

@ -1,50 +0,0 @@
#!/bin/sh
# PolipoPostflight gets invoked after any install or upgrade.
ADDSYSUSER=$RECEIPT_PATH/addsysuser
if [ ! -x "$ADDSYSUSER" ]; then
echo "Could not find addsysuser script."
exit 1
fi
POLIPOUSER=_polipo
POLIPOGROUP=daemon
TARGET=/Library/Polipo
LOGDIR=$TARGET/log
# Create user $POLIPOUSER in group daemon. If it's already there, great.
$ADDSYSUSER $POLIPOUSER "Polipo System user" $POLIPODIR
# Create the polipo direcpolipoy, if it doesn't exist.
if [ ! -d $POLIPODIR ]; then
mkdir -p $POLIPODIR
fi
if [ ! -d $LOGDIR ]; then
mkdir -p $LOGDIR
fi
# Check its permissions.
chown $POLIPOUSER $POLIPODIR
chgrp daemon $POLIPODIR
chmod 700 $POLIPODIR
chown $POLIPOUSER $LOGDIR
chgrp daemon $LOGDIR
chmod 700 $LOGDIR
# Create the configuration file only if there wasn't one already.
if [ ! -f $TARGET/config]; then
cp $TARGET/config.osx $TARGET/config
fi
cd /usr/share/man/man1
MAN1=$TARGET/share/man/man1
if [ -d /Library/StartupItems/Polipo ]; then
find /Library/StartupItems/Polipo -print0 | xargs -0 chown root:wheel
fi
# Copy Uninstaller
if [ -f $PACKAGE_PATH/Contents/Resources/uninstall_polipo_bundle.sh ]; then
cp $PACKAGE_PATH/Contents/Resources/uninstall_polipo_bundle.sh $TARGET/uninstall_polipo_bundle.sh
chmod 755 $TARGET/uninstall_polipo_bundle.sh
fi

View File

@ -6,14 +6,14 @@ General Comments
----------------
These are some hacks for making polipo work and install a package native
to OSX or Windows.
to Windows.
They need some work before they can be committed upstream:
- Merge the three makefiles into one with specific builds such as "make
dist-osx" or "make dist-win32"
- Change the Makefile so it has a specific build such as "make
dist-win32"
- Configure the options for tor in polipo config, just leave them
commented out for easy activation.
- Work out better polipo config options for Tor.
- Work out better polipo config options for Tor.
As always, I'm happy to accept patches.
@ -45,14 +45,3 @@ choose Compile NSIS Script. You'll then create a polipo installer.
The Polipo NSI installer assumes libgnurx-0.dll is in the same directory as polipo.exe.
You'll need to copy libgnurx-0.dll into "./" in order to make the
installation package.
---------------------------------------------
OSX Universal Binary and Installation package
---------------------------------------------
You'll need the contrib/polipo directory from Tor's source distribution.
1) Copy Makefile.osx over Makefile.
2) Run 'make'.
3) Copy the contents of contrib/polipo into a directory named "contrib".
4) Run 'chmod +x ./contrib/package.sh'
5) Run './contrib/package.sh'
6) You should have a Polipo-version.dmg ready for installation.

View File

@ -1,11 +0,0 @@
{
Description = "Polipo";
Provides = ("Polipo");
Requires = ("NetworkExtensions","Resolver");
OrderPreference = "Late";
Messages =
{
start = "Starting Polipo";
stop = "Stopping Polipo";
};
}

View File

@ -1,68 +0,0 @@
#!/bin/sh
#
# Original adduser 05 Feb 2002 by Jon L. Gardner
#
# Modified for Tor installer by Nick Mathewson
# 2007-06-12 Modified for leopard by Andrew Lewman
ROOTPROP=/
if [ "`whoami`" != "root" ]; then
echo "You must be root to execute this script."
exit
fi
if [ "x$3" = "x" ]; then
echo 'Usage: addsysuser <username> "<full name>" <homedir>'
exit 0
fi
username=$1
realname=$2
homedir=$3
if [ -x /usr/bin/dscl ]; then
# Determine the gid of the daemon group
gid=`dscl . -read /groups/daemon gid`
if [ "x`dscl . -list /users|cut -f2 -d' '|grep $username`" != "x" ]; then
echo The account $username already exists.
exit 0
fi
# home is the local path to the home directory
home=/Users/$username
echo Creating account for $username...
dscl . -create /users/$username
dscl . -create /users/$username _writers_tim_passwd $username
dscl . -create /users/$username realname $realname
dscl . -create /users/$username _writers_passwd $username
dscl . -create /users/$username gid $gid
dscl . -create /users/$username home $homedir
dscl . -create /users/$username name $username
dscl . -create /users/$username passwd '*'
dscl . -create /users/$username shell /dev/null
else
# Determine the gid of the daemon group
gid=`niutil -readprop $ROOTPROP /groups/daemon gid`
if [ "x`niutil -list $ROOTPROP /users|cut -f2 -d' '|grep $username`" != "x" ]; then
echo The account $username already exists.
exit 0
fi
# home is the local path to the home directory
home=/Users/$username
# defhome is what goes into NetInfo
defhome="/Network/Servers/MyServer/Users"
#echo "Determining next available system uid (please be patient)..."
# Uids over 500 are for system users.
uiddef=`nidump passwd / | cut -d: -f3 | sort -n | grep -v '^[56789]..' |grep -v '^....$' | tail -n 1`
uiddef=`echo $uiddef + 1 |bc`
echo Creating account for $username...
niutil -create $ROOTPROP /users/$username
niutil -createprop $ROOTPROP /users/$username _writers_tim_passwd $username
niutil -createprop $ROOTPROP /users/$username realname $realname
niutil -createprop $ROOTPROP /users/$username _writers_passwd $username
niutil -createprop $ROOTPROP /users/$username uid $uiddef
#niutil -createprop $ROOTPROP /users/$username home_loc "<home_dir><url>afp://afp.server.com/Users/</url><path>$username</path></home_dir>"
niutil -createprop $ROOTPROP /users/$username gid $gid
niutil -createprop $ROOTPROP /users/$username home $homedir
niutil -createprop $ROOTPROP /users/$username name $username
niutil -createprop $ROOTPROP /users/$username passwd '*'
niutil -createprop $ROOTPROP /users/$username shell /dev/null
fi

View File

@ -1,87 +0,0 @@
#!/bin/sh
# Copyright 2004-2005 Nick Mathewson & Andrew Lewman.
# Copyright 2005-2008 Andrew Lewman
# This is licensed under the Modified BSD License.
###
# Helpful info on OS X packaging:
# http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareDistribution/index.html
# man packagemaker
VERSION="1.0.4"
## Determine OSX Version
# map version to name
if [ -x /usr/bin/sw_vers ]; then
# This is poor, yet functional. We don't care about the 3rd number in
# the OS version
OSVER=`/usr/bin/sw_vers | grep ProductVersion | cut -f2 | cut -d"." -f1,2`
case "$OSVER" in
"10.6") ARCH="i386";;
"10.5") ARCH="i386";;
"10.4") ARCH="i386";;
"10.3") ARCH="ppc";;
"10.2") ARCH="ppc";;
"10.1") ARCH="ppc";;
"10.0") ARCH="ppc";;
*) ARCH="unknown";;
esac
else
ARCH="unknown"
fi
# Where will we put our temporary files?
BUILD_DIR=/tmp/polipo-osx-$$
# Path to PackageMaker app.
PACKAGEMAKER=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
umask 022
echo I might ask you for your password now, so you can sudo.
sudo rm -rf $BUILD_DIR
mkdir $BUILD_DIR || exit 1
for subdir in polipo_packageroot output; do
mkdir $BUILD_DIR/$subdir
done
### Make Polipo package.
chmod 755 contrib/PolipoPostflight
mkdir -p $BUILD_DIR/polipo_packageroot/Library/Polipo/
cp polipo $BUILD_DIR/polipo_packageroot/polipo
cp config.sample $BUILD_DIR/polipo_packageroot/config
cp contrib/PolipoPostflight $BUILD_DIR/polipo_packageroot/postflight
cp contrib/addsysuser $BUILD_DIR/polipo_packageroot/addsysuser
cp contrib/uninstall_polipo_bundle.sh $BUILD_DIR/polipo_packageroot/uninstall_polipo_bundle.sh
cp localindex.html $BUILD_DIR/polipo_packageroot/index.html
cat <<EOF > $BUILD_DIR/polipo_packageroot/Welcome.txt
Polipo: a caching web proxy
Polipo is a small and fast caching web proxy (a web cache, an HTTP
proxy, a proxy server).
EOF
### Assemble documentation
groff polipo.man -T ps -m man | /usr/bin/pstopdf -i -o $BUILD_DIR/polipo_packageroot/polipo.pdf
texi2html polipo.texi && cp polipo.html $BUILD_DIR/polipo_packageroot/polipo.html
find $BUILD_DIR/polipo_packageroot -print0 |sudo xargs -0 chown root:wheel
$PACKAGEMAKER -build \
-p $BUILD_DIR/output/Polipo.pkg \
-f $BUILD_DIR/polipo_packageroot \
-i contrib/PolipoInfo.plist \
-d contrib/PolipoDesc.plist
### Package it all into a DMG
find $BUILD_DIR/output -print0 | sudo xargs -0 chown root:wheel
sudo mv $BUILD_DIR/output "$BUILD_DIR/Polipo-$VERSION-$ARCH"
sudo rm -f "Polipo-$VERSION-$ARCH-Bundle.dmg"
USER="`whoami`"
sudo hdiutil create -format UDZO -srcfolder "$BUILD_DIR/Polipo-$VERSION-$ARCH" "Polipo-$VERSION-$ARCH.dmg"
sudo chown "$USER" "Polipo-$VERSION-$ARCH.dmg"
#sudo rm -rf $BUILD_DIR

View File

@ -1,100 +0,0 @@
#!/bin/sh
#
# Original version 2005 by loki der quaeler
# Copyright 2007-2008 Andrew Lewman
# This is licensed under a Modified BSD license.
### this is the location of a file which contains all the actual package names
## (ie "Polipo", "polipostartup", ...) the list should be new-line-delimited.
PACKAGE_LIST_SRC="Polipo polipostartup"
### this is the name of the user created in the install process of Polipo
POLIPO_USER=_polipo
### these should be constant across all osX installs (so leave them be)
STARTUP_ITEMS_DIR=/Library/StartupItems
PKG_RCPT_BASE_DIR=/Library/Receipts
BOM_INTERMEDIATE_DIR=Contents/Resources
INFO_INTERMEDIATE_DIR=$BOM_INTERMEDIATE_DIR/English.lproj
TEMP_BOM_CONTENTS=/tmp/polipo_uninst_scratch
### make sure the script is being run as root, barf if not
if [ "`whoami`" != "root" ]; then
echo "Must be root to run the uninstall script."
exit -1
fi
### check to see if polipo is currently running, kill it if it is
## we grep on 'Polipo/polipo ' because 'polipo' is too common (like in 'direcpolipoy')
## -- this relies on the fact that polipo has been started with command
## line arguments.. :-/
POLIPO_PID=`ps -uax | grep 'Polipo/polipo ' | grep -v grep | awk '{print $2;}'`
if [ ${#POLIPO_PID} -gt 0 ]; then
echo ". Killing currently running polipo process, pid is $POLIPO_PID"
kill -9 $POLIPO_PID
else
echo ". polipo process appears to already be stopped"
fi
## grab each package name from the package list file
while read LINE; do
if [ ${#LINE} -gt 0 ]; then
PACKAGE_NAME=$LINE.pkg
PACKAGE_PATH=$PKG_RCPT_BASE_DIR/$PACKAGE_NAME
echo ". Uninstalling $PACKAGE_NAME"
if [ ! -d $PACKAGE_PATH ]; then
echo " . No receipt exists for this package -- skipping."
continue
fi
## get rid of the startup item if it exists
STARTUP_DIR=$STARTUP_ITEMS_DIR/$LINE
if [ -d $STARTUP_DIR ]; then
echo " . Deleting startup item $STARTUP_DIR"
rm -rf $STARTUP_DIR
fi
## determine the root direcpolipoy of the the relative paths specified in the bom
DEFAULT_LOC=`grep DefaultLocation $PACKAGE_PATH/$INFO_INTERMEDIATE_DIR/$LINE.info | awk '{print $2;}'`
if [ ${#DEFAULT_LOC} -eq 0 ]; then
echo "!! Could not find default location for $LINE package -- skipping package."
continue
fi
## examine the list of installed items desribed in the bom
BOM_FILE=$PACKAGE_PATH/$BOM_INTERMEDIATE_DIR/$LINE.bom
lsbom $BOM_FILE > $TEMP_BOM_CONTENTS
while read BOM_ITEM; do
## 3 column items describe just direcpolipoies, 5 column items describe actual files
COL_COUNT=$(echo $BOM_ITEM | awk '{print NF;}')
if [ "$COL_COUNT" -eq 5 ]; then
FILE_NAME=$DEFAULT_LOC/$(echo $BOM_ITEM | awk '{print $1;}')
echo " . Removing $FILE_NAME"
rm -rf $FILE_NAME
fi
done < $TEMP_BOM_CONTENTS
## remove package receipt
echo " . Removing package receipt $PACKAGE_PATH"
rm -rf $PACKAGE_PATH
fi
done < $PACKAGE_LIST_SRC
## nuke the user created by the install process.
echo ". Removing created user $POLIPO_USER"
niutil -destroy . /users/$POLIPO_USER
## clean up
echo ". Cleaning up"
rm -rf $TEMP_BOM_CONTENTS
rm -rf /Library/Polipo/ /Library/StartupItems/Polipo/
echo ". Finished"

View File

@ -31,7 +31,7 @@ endif
EXTRA_DIST = HACKING asciidoc-helper.sh \
$(html_in) $(man_in) $(txt_in) \
tor-osx-dmg-creation.txt tor-rpm-creation.txt \
tor-rpm-creation.txt \
tor-win32-mingw-creation.txt
docdir = @docdir@

View File

@ -1,18 +0,0 @@
#!/bin/sh
# working patch and options from pnx in #tor
patch -N << "EOF"
--- GNUmakefile.in.orig 2007-11-15 02:39:01.000000000 +0100
+++ GNUmakefile.in 2007-11-15 02:39:12.000000000 +0100
@@ -246,7 +246,7 @@
CFLAGS = @CFLAGS@ @CPPFLAGS@ $(OTHER_CFLAGS) $(SPECIAL_CFLAGS) -Wall \
@STATIC_PCRE_ONLY@ -Ipcre
-LDFLAGS = $(DEBUG_CFLAGS) $(SPECIAL_CFLAGS)
+LDFLAGS = @LDFLAGS@ $(DEBUG_CFLAGS) $(SPECIAL_CFLAGS)
#############################################################################
EOF
autoheader && autoconf && CFLAGS="-O2 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" LDFLAGS="-mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" ./configure --prefix=/Library/Privoxy/ --disable-dynamic-pcrs --sysconfdir=/Library/Privoxy/ --mandir=/Library/Privoxy/ --disable-dependency-tracking && make

View File

@ -1,175 +0,0 @@
## Instructions for building the official dmgs for OSX.
##
## The loose table of contents:
## Single Architecture Binaries for PowerPc or i386 architecture, not both.
## Backwards compatible single-architecture binaries for OSX i386 10.4 from
## newer versions of OS X.
## Universal Binaries for OSX PPC and i386
## Each section is delineated by ###.
#######################################
#
# Section 1
#
# Single Architecture Binaries for PPC or i386, not both.
# This method works in all versions of OSX 10.3 through 10.6
#######################################
## Compiling libevent ##
1) Download the latest stable libevent from
http://www.monkey.org/~provos/libevent/
2) The first step of compiling libevent is to configure it as
follows:
./configure --enable-static --disable-shared
3) Complete the "make" and "make install". You will need to be root,
or sudo -s, to complete the "make install".
## Compiling Tor ##
4) Get your preferred version of the tor source from
https://www.torproject.org/dist/ or
http://archive.torproject.org/tor-package-archive/. Extract the tarball.
5) In the top level, this means /path/to/tor/, not tor/contrib/osx,
do a configure with these parameters:
CONFDIR=/Library/Tor ./configure --prefix=/Library/Tor \
--bindir=/Library/Tor --sysconfdir=/Library
6) In same top level dir, do a "make dist-osx". There now exists a
.dmg file in the same directory. Install from this dmg.
#######################################
#
# Section 2
# Backwards compatible single-architecture binaries for OSX x86 10.4 from
# newer versions of OS X.
#
#######################################
1) Install the latest XCode updates available from http://developer.apple.com.
## Compiling libevent ##
2) Download latest stable libevent from
http://www.monkey.org/~provos/libevent/
3) The first step of compiling libevent is to configure it as
follows:
CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot \
/Developer/SDKs/MacOSX10.4u.sdk -arch i386" \
LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" \
./configure --enable-static --disable-shared --disable-dependency-tracking \
CC="gcc-4.0"
4) Complete the "make" and "make install". You will need to be root,
or sudo -s, to complete the "make install".
5) Check for a successful universal binary of libevent.a in, by default,
/usr/local/lib by using the following command:
"file /usr/local/lib/libevent.a"
Your output should be:
"/usr/local/lib/libevent.a (for architecture i386):
current ar archive random library"
6) Get your preferred version of the tor source from
https://www.torproject.org/dist/ or
http://archive.torproject.org/tor-package-archive/.
Extract the tarball.
7) In the top level, this means /path/to/tor/, not tor/contrib/osx,
do a configure with these parameters:
CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot \
/Developer/SDKs/MacOSX10.4u.sdk -arch i386" \
LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" \
CONFDIR=/Library/Tor \
./configure --prefix=/Library/Tor --bindir=/Library/Tor \
--sysconfdir=/Library --disable-dependency-tracking CC="gcc-4.0"
8) "make dist-osx"
9) Confirm you have created a universal binary by issuing the follow command:
"file src/or/tor". Its output should be as follows:
src/or/tor (for architecture i386): Mach-O executable i386
10) There should exist in the top-level directory a
Tor-$VERSION-i386-Bundle.dmg
11) Congrats. You have a backwards-compatible binary.
You are now ready to install Tor.
####################################################################
#
# Section 3
#
# Universal Binaries for OSX PPC and X86
# This method works in OSX 10.4 (Tiger) and newer OSX versions.
#
####################################################################
1) Install the latest XCode updates available from http://developer.apple.com.
## Compiling libevent ##
2) Download latest stable libevent from
http://www.monkey.org/~provos/libevent/
3) The first step of compiling libevent is to configure it as
follows:
CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot \
/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" \
LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" \
./configure --enable-static --disable-shared --disable-dependency-tracking \
CC="gcc-4.0"
4) Complete the "make" and "make install". You will need to be root,
or sudo -s, to complete the "make install".
5) Check for a successful universal binary of libevent.a in, by default,
/usr/local/lib by using the following command:
"file /usr/local/lib/libevent.a"
Your output should be:
/usr/local/lib/libevent.a: Mach-O fat file with 2 architectures
/usr/local/lib/libevent.a (for architecture i386):
current ar archive random library
/usr/local/lib/libevent.a (for architecture ppc):
current ar archive
6) Get your preferred version of the tor source from
https://www.torproject.org/dist/ or
http://archive.torproject.org/tor-package-archive/.
Extract the tarball.
7) In the top level, this means /path/to/tor/, not tor/contrib/osx,
do a configure with these parameters:
CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot \
/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" \
LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" \
CONFDIR=/Library/Tor \
./configure --prefix=/Library/Tor --bindir=/Library/Tor \
--sysconfdir=/Library --disable-dependency-tracking CC="gcc-4.0"
8) "make dist-osx"
9) Confirm you have created a universal binary by issuing the follow command:
"file src/or/tor". Its output should be as follows:
src/or/tor: Mach-O fat file with 2 architectures
src/or/tor (for architecture i386): Mach-O executable i386
src/or/tor (for architecture ppc): Mach-O executable ppc
10) There should exist in the top-level directory a
Tor-$VERSION-universal-Bundle.dmg
11) Congrats. You have a universal binary. You are now ready to install Tor.