aboutsummaryrefslogtreecommitdiff
path: root/doc/tor-osx-dmg-creation.txt
blob: 86f8f6989632d3b64748f986404700b3d409f940 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
## Instructions for building the official dmgs for OSX.
##

The following steps are the exact steps used to produce the "official"
OSX builds of tor.

Summary:
1) Compile and install a static version of the latest release of
libevent.
2) Acquire privoxyosx_setup_3.0.6.zip.  
http://downloads.sourceforge.net/ijbswa/privoxyosx_setup_3.0.6.zip?modtime=1164104652&big_mirror=0
  Remember where you put this file.
3) Acquire torbutton xpi and license file.
4) Acquire and install your preferred version of tor. Extract.
5) Update some variables in contrib/osx/package.sh
6) "make dist-osx"
7) You now have a dmg from which you can install Tor, Privoxy, and the
Torbutton extension for Firefox.

## Universal Binaries for OSX PPC and X86
## This method works in OSX 10.4 (Tiger) and 10.5 (Leopard) only.
## See far below if you don't care about cross compiling for PPC and X86.
## The single architecture process starts with "###"

1) Install XCode 2.4.1 updates available from http://developer.apple.com.

## Compiling libevent

2)  Download latest libevent from
http://www.monkey.org/~provos/libevent/

3) The first step of compiling libevent is to configure it as
follows:
CFLAGS="-O -g -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

3) Complete the "make" and "make install".  You will need to be root,
or sudo -s, to complete the "make install".

4) If you have previouslly installed libevent, rm the old libevent.*, located
by default, in /usr/local/lib/.  

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

## Acquiring privoxy

6) Download osx privoxy source from
http://downloads.sourceforge.net/ijbswa/privoxyosx_setup_3.0.6.zip?modtime=1164104652&big_mirror=0

7) Place the privoxyosx_setup_3.0.6.zip in a location of your choice.
Remember this location.

8) Get your preferred version of Torbutton from https://torbutton.torproject.org.
Place into a location of your choosing, remember this location.

9) Get the torbutton LICENSE file from https://torbutton.torproject.org.
Place into a location of your choosing, remember this location.

10) Get your preferred version of the tor source from https://www.torproject.org/download.  
Extract the tarball.

11) Update three variables in contrib/osx/package.sh:
PRIVOXY_PKG_ZIP=~/tmp/privoxyosx_setup_3.0.6.zip
TORBUTTON_PATH=~/tmp/torbutton-1.1.14-alpha.xpi
TORBUTTON_LIC_PATH=~/tmp/LICENSE

Make sure the paths are correct.  The build will fail if they are not.

12) In the top level, this means /path/to/tor/, not tor/contrib/osx,
do a configure with these parameters:
CFLAGS="-O -g -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

13) "make dist-osx"

14) 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

15) There should exist in the top-level directory a
Tor-$VERSION-universal-$OS-Bundle.dmg

16) Congrats.  You have a universal binary. You are now ready to install Tor,
Privoxy, and the Torbutton extension for Firefox.


### Single Architecture Binaries for PPC or X86, not both.
### This method works in all versions of OSX 10.1 through 10.5

### Compiling libevent

1)  Download the latest 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".

4) If you have previouslly installed libevent, go rm the old libevent.so*
files so the linker doesn't get suckered into using them.

### Acquiring privoxy

1) Download osx privoxy source from
http://downloads.sourceforge.net/ijbswa/privoxyosx_setup_3.0.6.zip?modtime=1164104652&big_mirror=0

2) Place the privoxyosx_setup_3.0.6.zip in a location of your choice.
Remember this location.

### Compiling Tor

1) Get your preferred version of Torbutton from
https://torbutton.torproject.org.  
Place into a location of your choosing, remember this location.

2) Get the torbutton LICENSE file from https://torbutton.torproject.org.  
Place into a location of your choosing, remember this location.

3) Get your preferred version of the tor source from https://www.torproject.org.  Extract the
tarball.

4) Update three variables in contrib/osx/package.sh:
PRIVOXY_PKG_ZIP=~/tmp/privoxyosx_setup_3.0.6.zip
TORBUTTON_PATH=~/tmp/torbutton-1.1.14-alpha.xpi
TORBUTTON_LIC_PATH=~/tmp/LICENSE

Make sure the paths are correct.  The build will fail if they are not.

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.