blob: 6f4b5bba02b5bf618d7b5108d0d6d2be4be47e4c [file] [log] [blame]
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -07001tlsdate should build and work on the following Operating Systems:
2
Jacob Appelbaum4bc568b2013-04-16 19:19:37 -07003 Debian Gnu/Linux squeeze, wheezy, sid
4 Ubuntu lucid, natty, oneiric, precise, quantal
Jacob Appelbaumb66696e2013-04-12 11:19:24 -07005 CentOS 6.2, 6.3, 6.4
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -07006 Fedora 17, 18
7 RedHat Enterprise Server 6.4
8 OpenSUSE 11.2, 12.3
9 FreeBSD 10-CURRENT
10 Mac OS X 10.8.2, 10.8.3
11 ChromeOS 26.0.x.x, 27.0.x.x (tlsdate is part of the ChromeOS TCB!)
Jacob Appelbaum1df358f2013-04-12 11:16:29 -070012 Android with the Android NDK (use Makefile.android)
Jacob Appelbaumc4080b52013-04-12 12:19:36 -070013 Arch Linux (Don't forget to symlink to /dev/rtc to /dev/rtc0)
Jacob Appelbaum4b25b762013-04-12 17:51:03 -070014 NetBSD 6.0.1
Jacob Appelbaum9ad9b982013-04-14 01:43:56 -070015 OpenBSD 5.2
Jacob Appelbaumc6ca4c92013-04-17 02:44:10 -070016 Gentoo 20130413
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -070017
18Please file a bug or email the tlsdate team if you have successfully built or
19use tlsdate on a platform that is not listed. We are specifically looking for
20ports of tlsdate or for tlsdate integration on the following Operating Systems:
21
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -070022 Win32 (MinGW or otherwise)
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -070023 OpenWRT
24 pfsense
Jacob Appelbaumb6e6f1a2013-04-13 22:05:47 -070025 DragonFly BSD
26 OpenVMS
27
28Currently porting is in progress or partially documented for:
29
Jacob Appelbaumb6e6f1a2013-04-13 22:05:47 -070030 Plan9 (with APE)
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -070031
Jacob Appelbaum4bc568b2013-04-16 19:19:37 -070032Building and install of tlsdate on GNU/Linux and FreeBSD:
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010033
34 ./autogen.sh
35 ./configure
36 make
37 make install
38
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -070039Cleaning is the usual:
40
41 make clean
42
Jacob Appelbaumc6ca4c92013-04-17 02:44:10 -070043On Debian Gnu/Linux sid/unstable:
Jacob Appelbaum4bc568b2013-04-16 19:19:37 -070044
45 apt-get install tlsdate
46
Jacob Appelbaumc6ca4c92013-04-17 02:44:10 -070047On Gentoo:
48
49 emerge net-misc/tlsdate
50
Jacob Appelbaumf667c4c2013-04-12 14:18:12 -070051On FreeBSD one may also use the ports system:
52
53 cd /usr/ports/sysutils/tlsdate
54 make
55 make install
56
Fabian Keilf543f762013-03-15 15:50:43 +010057On Mac OS X, we require that you have XCode installed. You may also need brew
Jacob Appelbaum8f5dbfd2013-02-13 23:13:44 -080058for autoconf and automake packages:
59
60 brew install autoconf automake libtool pkg-config
61
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -070062It should also be possible to install tlsdate on OS X 10.8.x with brew directly:
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010063
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -070064 brew install tlsdate
Jacob Appelbaum807b4d02012-07-09 22:24:16 +020065
Jacob Appelbaum6a00b292012-07-11 18:45:13 +020066To make an unsigned Debian package:
Jacob Appelbaum807b4d02012-07-09 22:24:16 +020067
68 git checkout debian-master
69 make deb
Jacob Appelbaum6a00b292012-07-11 18:45:13 +020070
Jacob Appelbaum37afccc2013-04-12 21:02:20 -070071On Fedora:
72
73 yum install tlsdate
74
75To run tlsdated as a service on Fedora:
76
77 systemctl enable tlsdate.service
78 systemctl start tlsdate.service
79
Jacob Appelbaum9d50cef2013-04-12 19:00:25 -070080On Arch Linux there is a PKGBUILD in the Arch User Repository:
81
82 https://aur.archlinux.org/packages/tlsdate
83 https://aur.archlinux.org/packages/tl/tlsdate/PKGBUILD
84
Jacob Appelbaumb6e6f1a2013-04-13 22:05:47 -070085On Plan9 the start of building might look something like this:
86
87 ip/ipconfig
88 ndb/dns -r
89 9fs sources
90 /n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/openssl
Noah Evans22ede402013-04-15 23:10:00 +020091 mk install
Jacob Appelbaumb6e6f1a2013-04-13 22:05:47 -070092
Jacob Appelbaum9ad9b982013-04-14 01:43:56 -070093OpenBSD builds from source and is not yet in the port system:
Jacob Appelbaumb6e6f1a2013-04-13 22:05:47 -070094
Bryan5dba9882013-04-14 01:55:50 -070095 export AUTOCONF_VERSION=<your installed version>
96 export AUTOMAKE_VERSION=<your installed version>
97 ./autogen.sh
Jacob Appelbaumb6e6f1a2013-04-13 22:05:47 -070098 ./configure
99 make
100 make install
101
Jacob Appelbaum6a00b292012-07-11 18:45:13 +0200102To make a Debian source package:
103
104 git checkout master
105 ./autogen.sh
106 ./configure && make debian_orig
107 git checkout debian-master
108 fakeroot debian/rules clean
Jacob Appelbaum23ee98a2012-07-12 15:13:35 +0200109 cd ../
Jacob Appelbaum3e92a2e2012-10-30 15:57:32 +0100110 dpkg-source -i'.*' -b tlsdate
Jacob Appelbaum6a00b292012-07-11 18:45:13 +0200111
Jacob Appelbaumbed9e242012-07-12 15:47:57 +0200112Example of how to build a package for Debian:
113
114 # First build the source package above
115 scp tlsdate_* dixie.torproject.org:~/src/debian-builds/
116 ~/bin/sbuild-stuff tlsdate_0.0.1-1.dsc
117 # Download or build the package locally
118 # and sign the .changes or .dsc file
Jacob Appelbaum9bd80272012-07-12 15:57:48 +0200119 debsign -k0xD81D840E tlsdate_0.0.1-1.dsc
Jacob Appelbaum33da9ff2012-07-12 16:21:29 +0200120
121Example of how to upload it (after a Debian sponsor signs off on it):
Jacob Appelbaumf8fd2f82013-04-11 00:09:29 -0700122
Jacob Appelbaum33da9ff2012-07-12 16:21:29 +0200123 dget http://www.example.com/tlsdate_0.0.1-1_amd64.changes
124 dput tlsdate_0.0.1-1_amd64.changes
125
Abel Luckd9427682013-04-12 12:12:52 +0200126For Android:
127
128To cross compile tlsdate for Android (tested on Linux) you must have the
129Android NDK (>=r8) installed somewhere on your system, and define the
130environment variable NDK_BASE to be the path to the NDK's root dir.
131
132 export NDK_BASE=/home/user/src/android-ndk-r8d
133
134The Android build also requires a cross-compiled OpenSSL. The Android Makefile
135will attempt to build openssl, if you provide the path via the OPENSSL_ANDROID
136env var.
137
138 git clone https://github.com/guardianproject/openssl-android.git /path/to/android-openssl
139 export OPENSSL_ANDROID=/path/to/android-openssl
140
141Once NDK_BASE and OPENSSL_ANDROID are set properly, you can cross compile tlsdate with:
142
143 make distclean # clean any previous builds
144 rm configure # distclean doesn't remove this file
145 make -f Makefile.android
146
147Android NDK: https://developer.android.com/tools/sdk/ndk/index.html
148OpenSSL for Android: https://github.com/guardianproject/openssl-android
149