aboutsummaryrefslogtreecommitdiff
path: root/INSTALL
blob: 97ca73b473f9db5289948cbe3431c110e00a84b9 (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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
tlsdate should build and work on the following Operating Systems:

  Debian Gnu/Linux squeeze, wheezy, sid
  Ubuntu lucid, natty, oneiric, precise, quantal
  CentOS 6.2, 6.3, 6.4
  Fedora 17, 18
  RedHat Enterprise Server 6.4
  OpenSUSE 11.2, 12.3
  FreeBSD 10-CURRENT
  Mac OS X 10.8.2, 10.8.3
  ChromeOS Release 25, 26, 27 and above
  Android with the Android NDK (use Makefile.android)
  Arch Linux (Don't forget to symlink to /dev/rtc to /dev/rtc0)
  NetBSD 6.0.1
  OpenBSD 5.2
  Gentoo 20130413
  DragonFly BSD 3.3-DEVELOPMENT

tlsdate should build and may work on the following Operating Systems:

  Cygwin CYGWIN_NT-6.1 1.7.18(0.263/5/3)
  Haiku r1alpha4

Please file a bug or email the tlsdate team if you have successfully built or
use tlsdate on a platform that is not listed. We are specifically looking for
ports of tlsdate or for tlsdate integration on the following Operating Systems:

  Win32 (MinGW or otherwise)
  OpenWRT
  pfsense
  OpenVMS
  Irix
  GNU/Hurd
  Minix
  Any of the classic unix systems

Currently porting is in progress or partially documented for:

  Plan9 (with APE)
  MingGW

Building and install of tlsdate on GNU/Linux and FreeBSD:

  ./autogen.sh
  ./configure
  make
  make install

Cleaning is the usual:

  make clean

On Debian Gnu/Linux sid/unstable:

  apt-get install tlsdate

On Debian GNU/Linux and related systems, we provide an init.d script that
controls the tlsdated daemon. It will notice network changes and regularly
invoke tlsdate to keep the clock in sync. Start it like so:

  /etc/init.d/tlsdate start

On ChromeOS:

 tlsdate is part of the ChromeOS TCB; no install needed

On Gentoo:

  emerge net-misc/tlsdate

On FreeBSD one may also use the ports system:

  cd /usr/ports/sysutils/tlsdate
  make
  make install

On Mac OS X, we require that you have XCode installed. You may also need brew
for autoconf and automake packages:

  brew install autoconf automake libtool pkg-config

It should also be possible to install tlsdate on OS X 10.8.x with brew directly:

  brew install tlsdate

To make an unsigned Debian package:

  git checkout debian-master
  make deb

On Fedora:

  yum install tlsdate

To run tlsdated as a service on Fedora:

  systemctl enable tlsdate.service
  systemctl start tlsdate.service

On Arch Linux there is a PKGBUILD in the Arch User Repository:

  https://aur.archlinux.org/packages/tlsdate
  https://aur.archlinux.org/packages/tl/tlsdate/PKGBUILD

Cygwin requires that the user installs openssl-dev, gcc, pkg-config, libtool, automake, autoconf:

  ./configure
  make

On Plan9 the start of building might look something like this:

  ip/ipconfig
  ndb/dns -r
  9fs sources
  /n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/openssl
  mk install

On Haiku we must use gcc4:

  export CC=/boot/develop/abi/x86/gcc4/tools/gcc4.6.3-haiku-121101/bin/gcc
  export LDFLAGS="$LDFLAGS -lbsd"
  ./configure # This includes the above exports currently
  make

OpenBSD builds from source and is not yet in the port system:

  export AUTOCONF_VERSION=<your installed version>
  export AUTOMAKE_VERSION=<your installed version>
  ./autogen.sh
  ./configure
  make
  make install

To make a Debian source package:

  git checkout master
  ./autogen.sh
  ./configure && make debian_orig
  git checkout debian-master
  fakeroot debian/rules clean
  cd ../
  dpkg-source -i'.*' -b tlsdate

Example of how to build a package for Debian:

  # First build the source package above
  scp tlsdate_* dixie.torproject.org:~/src/debian-builds/
  ~/bin/sbuild-stuff tlsdate_0.0.1-1.dsc
  # Download or build the package locally
  # and sign the .changes or .dsc file
  debsign -k0xD81D840E tlsdate_0.0.1-1.dsc 

Example of how to upload it (after a Debian sponsor signs off on it):

  dget http://www.example.com/tlsdate_0.0.1-1_amd64.changes
  dput tlsdate_0.0.1-1_amd64.changes

For Android:

To cross compile tlsdate for Android (tested on Linux) you must have the
Android NDK (>=r8) installed somewhere on your system, and define the
environment variable NDK_BASE to be the path to the NDK's root dir.

    export NDK_BASE=/home/user/src/android-ndk-r8d

The Android build also requires a cross-compiled OpenSSL. The Android Makefile
will attempt to build openssl, if you provide the path via the OPENSSL_ANDROID
env var.

    git clone https://github.com/guardianproject/openssl-android.git /path/to/android-openssl
    export OPENSSL_ANDROID=/path/to/android-openssl

Once NDK_BASE and OPENSSL_ANDROID are set properly, you can cross compile tlsdate with:

    make distclean # clean any previous builds
    rm configure   # distclean doesn't remove this file
    make -f Makefile.android

Android NDK: https://developer.android.com/tools/sdk/ndk/index.html
OpenSSL for Android: https://github.com/guardianproject/openssl-android