aboutsummaryrefslogtreecommitdiff
path: root/INSTALL
blob: 6d0e5fa81a304bda5f7301adf179857d6d570b1f (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
tlsdate should build and work on the following Operating Systems:

  Debian Gnu/Linux 6.0.7 (apt-get install tlsdate for Debian unstable)
  Ubuntu 11.04, 12.04, 12.10
  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 26.0.x.x, 27.0.x.x (tlsdate is part of the ChromeOS TCB!)
  Android with the Android NDK (use Makefile.android)
  Arch Linux (Don't forget to symlink to /dev/rtc to /dev/rtc0)

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:

  NetBSD 6.0.2
  Win32 (MinGW or otherwise)
  Plan9
  OpenWRT
  pfsense

Building and install of tlsdate on GNU/Linux and FreeBSD should be as easy as:

  ./autogen.sh
  ./configure
  make
  make install

Cleaning is the usual:

  make clean

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

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