Jacob Appelbaum | f8fd2f8 | 2013-04-11 00:09:29 -0700 | [diff] [blame] | 1 | tlsdate should build and work on the following Operating Systems: |
| 2 | |
Jacob Appelbaum | 4bc568b | 2013-04-16 19:19:37 -0700 | [diff] [blame] | 3 | Debian Gnu/Linux squeeze, wheezy, sid |
| 4 | Ubuntu lucid, natty, oneiric, precise, quantal |
Jacob Appelbaum | b66696e | 2013-04-12 11:19:24 -0700 | [diff] [blame] | 5 | CentOS 6.2, 6.3, 6.4 |
Jacob Appelbaum | f8fd2f8 | 2013-04-11 00:09:29 -0700 | [diff] [blame] | 6 | 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 |
Jacob Appelbaum | 90dba9e | 2013-04-17 10:30:24 -0700 | [diff] [blame] | 11 | ChromeOS Release 25, 26, 27 and above |
Jacob Appelbaum | 1df358f | 2013-04-12 11:16:29 -0700 | [diff] [blame] | 12 | Android with the Android NDK (use Makefile.android) |
Jacob Appelbaum | c4080b5 | 2013-04-12 12:19:36 -0700 | [diff] [blame] | 13 | Arch Linux (Don't forget to symlink to /dev/rtc to /dev/rtc0) |
Jacob Appelbaum | 4b25b76 | 2013-04-12 17:51:03 -0700 | [diff] [blame] | 14 | NetBSD 6.0.1 |
Jacob Appelbaum | 9ad9b98 | 2013-04-14 01:43:56 -0700 | [diff] [blame] | 15 | OpenBSD 5.2 |
Jacob Appelbaum | c6ca4c9 | 2013-04-17 02:44:10 -0700 | [diff] [blame] | 16 | Gentoo 20130413 |
Jacob Appelbaum | 72940d7 | 2013-04-18 20:46:34 -0700 | [diff] [blame] | 17 | DragonFly BSD 3.3-DEVELOPMENT |
Jacob Appelbaum | e274c9b | 2013-04-26 13:38:02 -0700 | [diff] [blame] | 18 | Debian GNU/kFreeBSD 7.0 (8.2-1-amd64) |
Jacob Appelbaum | 4c596eb | 2013-04-24 11:06:45 -0700 | [diff] [blame] | 19 | |
Jacob Appelbaum | b2028d7 | 2013-04-24 23:19:16 -0700 | [diff] [blame] | 20 | tlsdate should build and might even work on the following Operating Systems: |
Jacob Appelbaum | 4c596eb | 2013-04-24 11:06:45 -0700 | [diff] [blame] | 21 | |
Jacob Appelbaum | 2f7224a | 2013-04-24 19:57:17 -0700 | [diff] [blame] | 22 | Win32 with Cygwin CYGWIN_NT-6.1 1.7.18(0.263/5/3 |
| 23 | Win32 with MinGW |
Jacob Appelbaum | 4c596eb | 2013-04-24 11:06:45 -0700 | [diff] [blame] | 24 | Haiku r1alpha4 |
Jacob Appelbaum | f8fd2f8 | 2013-04-11 00:09:29 -0700 | [diff] [blame] | 25 | |
| 26 | Please file a bug or email the tlsdate team if you have successfully built or |
| 27 | use tlsdate on a platform that is not listed. We are specifically looking for |
| 28 | ports of tlsdate or for tlsdate integration on the following Operating Systems: |
| 29 | |
Jacob Appelbaum | 2f7224a | 2013-04-24 19:57:17 -0700 | [diff] [blame] | 30 | Windows native |
Jacob Appelbaum | f8fd2f8 | 2013-04-11 00:09:29 -0700 | [diff] [blame] | 31 | OpenWRT |
| 32 | pfsense |
Jacob Appelbaum | b6e6f1a | 2013-04-13 22:05:47 -0700 | [diff] [blame] | 33 | OpenVMS |
Jacob Appelbaum | 6512bff | 2013-04-18 23:06:04 -0700 | [diff] [blame] | 34 | Irix |
Jacob Appelbaum | 9478d57 | 2013-04-23 22:14:00 -0700 | [diff] [blame] | 35 | Minix |
Jacob Appelbaum | 2f7224a | 2013-04-24 19:57:17 -0700 | [diff] [blame] | 36 | Any of the other classic unix systems |
Jacob Appelbaum | b6e6f1a | 2013-04-13 22:05:47 -0700 | [diff] [blame] | 37 | |
| 38 | Currently porting is in progress or partially documented for: |
| 39 | |
Jacob Appelbaum | b6e6f1a | 2013-04-13 22:05:47 -0700 | [diff] [blame] | 40 | Plan9 (with APE) |
Jacob Appelbaum | d0f69d7 | 2013-04-26 13:58:45 -0700 | [diff] [blame] | 41 | Debian GNU/Hurd 7.0 (GNU-Mach 1.3.99-486-dbg/Hurd-0.3) |
| 42 | Currently we report "server time 0 (difference is about 1367009757 s)" |
Jacob Appelbaum | 4bc568b | 2013-04-16 19:19:37 -0700 | [diff] [blame] | 43 | Building and install of tlsdate on GNU/Linux and FreeBSD: |
Jacob Appelbaum | 5de8b0a | 2012-02-02 01:43:22 +0100 | [diff] [blame] | 44 | |
| 45 | ./autogen.sh |
| 46 | ./configure |
| 47 | make |
| 48 | make install |
| 49 | |
Jacob Appelbaum | f8fd2f8 | 2013-04-11 00:09:29 -0700 | [diff] [blame] | 50 | Cleaning is the usual: |
| 51 | |
| 52 | make clean |
| 53 | |
Jacob Appelbaum | c6ca4c9 | 2013-04-17 02:44:10 -0700 | [diff] [blame] | 54 | On Debian Gnu/Linux sid/unstable: |
Jacob Appelbaum | 4bc568b | 2013-04-16 19:19:37 -0700 | [diff] [blame] | 55 | |
| 56 | apt-get install tlsdate |
| 57 | |
Jacob Appelbaum | 6d57ace | 2013-04-19 17:55:00 -0700 | [diff] [blame] | 58 | On Debian GNU/Linux and related systems, we provide an init.d script that |
| 59 | controls the tlsdated daemon. It will notice network changes and regularly |
| 60 | invoke tlsdate to keep the clock in sync. Start it like so: |
| 61 | |
| 62 | /etc/init.d/tlsdate start |
| 63 | |
Jacob Appelbaum | e274c9b | 2013-04-26 13:38:02 -0700 | [diff] [blame] | 64 | Debian GNU/Hurd does not yet support autotools bootstrapping and users must |
| 65 | bootstrap with `make dist` on another platform from the tlsdate git |
| 66 | repository. With such a release tar.gz it is the expected process: |
| 67 | |
| 68 | ./configure |
| 69 | make |
| 70 | make install |
| 71 | |
| 72 | Please note that setting time on GNU/Hurd has not yet been tested. |
| 73 | |
Jacob Appelbaum | 90dba9e | 2013-04-17 10:30:24 -0700 | [diff] [blame] | 74 | On ChromeOS: |
| 75 | |
| 76 | tlsdate is part of the ChromeOS TCB; no install needed |
| 77 | |
Jacob Appelbaum | c6ca4c9 | 2013-04-17 02:44:10 -0700 | [diff] [blame] | 78 | On Gentoo: |
| 79 | |
| 80 | emerge net-misc/tlsdate |
| 81 | |
Jacob Appelbaum | f667c4c | 2013-04-12 14:18:12 -0700 | [diff] [blame] | 82 | On FreeBSD one may also use the ports system: |
| 83 | |
| 84 | cd /usr/ports/sysutils/tlsdate |
| 85 | make |
| 86 | make install |
| 87 | |
Fabian Keil | f543f76 | 2013-03-15 15:50:43 +0100 | [diff] [blame] | 88 | On Mac OS X, we require that you have XCode installed. You may also need brew |
Jacob Appelbaum | 8f5dbfd | 2013-02-13 23:13:44 -0800 | [diff] [blame] | 89 | for autoconf and automake packages: |
| 90 | |
| 91 | brew install autoconf automake libtool pkg-config |
| 92 | |
Jacob Appelbaum | f8fd2f8 | 2013-04-11 00:09:29 -0700 | [diff] [blame] | 93 | It should also be possible to install tlsdate on OS X 10.8.x with brew directly: |
Jacob Appelbaum | 5de8b0a | 2012-02-02 01:43:22 +0100 | [diff] [blame] | 94 | |
Jacob Appelbaum | f8fd2f8 | 2013-04-11 00:09:29 -0700 | [diff] [blame] | 95 | brew install tlsdate |
Jacob Appelbaum | 807b4d0 | 2012-07-09 22:24:16 +0200 | [diff] [blame] | 96 | |
Jacob Appelbaum | 6a00b29 | 2012-07-11 18:45:13 +0200 | [diff] [blame] | 97 | To make an unsigned Debian package: |
Jacob Appelbaum | 807b4d0 | 2012-07-09 22:24:16 +0200 | [diff] [blame] | 98 | |
| 99 | git checkout debian-master |
| 100 | make deb |
Jacob Appelbaum | 6a00b29 | 2012-07-11 18:45:13 +0200 | [diff] [blame] | 101 | |
Jacob Appelbaum | 37afccc | 2013-04-12 21:02:20 -0700 | [diff] [blame] | 102 | On Fedora: |
| 103 | |
| 104 | yum install tlsdate |
| 105 | |
| 106 | To run tlsdated as a service on Fedora: |
| 107 | |
| 108 | systemctl enable tlsdate.service |
| 109 | systemctl start tlsdate.service |
| 110 | |
Jacob Appelbaum | 9d50cef | 2013-04-12 19:00:25 -0700 | [diff] [blame] | 111 | On Arch Linux there is a PKGBUILD in the Arch User Repository: |
| 112 | |
| 113 | https://aur.archlinux.org/packages/tlsdate |
| 114 | https://aur.archlinux.org/packages/tl/tlsdate/PKGBUILD |
| 115 | |
Jacob Appelbaum | 455a90c | 2013-04-23 20:35:15 -0700 | [diff] [blame] | 116 | Cygwin requires that the user installs openssl-dev, gcc, pkg-config, libtool, automake, autoconf: |
| 117 | |
| 118 | ./configure |
| 119 | make |
| 120 | |
Jacob Appelbaum | b6e6f1a | 2013-04-13 22:05:47 -0700 | [diff] [blame] | 121 | On Plan9 the start of building might look something like this: |
| 122 | |
| 123 | ip/ipconfig |
| 124 | ndb/dns -r |
| 125 | 9fs sources |
| 126 | /n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/openssl |
Noah Evans | 22ede40 | 2013-04-15 23:10:00 +0200 | [diff] [blame] | 127 | mk install |
Jacob Appelbaum | b6e6f1a | 2013-04-13 22:05:47 -0700 | [diff] [blame] | 128 | |
Jacob Appelbaum | f0f17b9 | 2013-04-24 04:08:57 -0700 | [diff] [blame] | 129 | On Haiku we must use gcc4: |
| 130 | |
| 131 | export CC=/boot/develop/abi/x86/gcc4/tools/gcc4.6.3-haiku-121101/bin/gcc |
| 132 | export LDFLAGS="$LDFLAGS -lbsd" |
Jacob Appelbaum | 4c596eb | 2013-04-24 11:06:45 -0700 | [diff] [blame] | 133 | ./configure # This includes the above exports currently |
Jacob Appelbaum | f0f17b9 | 2013-04-24 04:08:57 -0700 | [diff] [blame] | 134 | make |
| 135 | |
Jacob Appelbaum | 9ad9b98 | 2013-04-14 01:43:56 -0700 | [diff] [blame] | 136 | OpenBSD builds from source and is not yet in the port system: |
Jacob Appelbaum | b6e6f1a | 2013-04-13 22:05:47 -0700 | [diff] [blame] | 137 | |
Bryan | 5dba988 | 2013-04-14 01:55:50 -0700 | [diff] [blame] | 138 | export AUTOCONF_VERSION=<your installed version> |
| 139 | export AUTOMAKE_VERSION=<your installed version> |
| 140 | ./autogen.sh |
Jacob Appelbaum | b6e6f1a | 2013-04-13 22:05:47 -0700 | [diff] [blame] | 141 | ./configure |
| 142 | make |
| 143 | make install |
| 144 | |
Jacob Appelbaum | 6a00b29 | 2012-07-11 18:45:13 +0200 | [diff] [blame] | 145 | To make a Debian source package: |
| 146 | |
| 147 | git checkout master |
| 148 | ./autogen.sh |
| 149 | ./configure && make debian_orig |
| 150 | git checkout debian-master |
| 151 | fakeroot debian/rules clean |
Jacob Appelbaum | 23ee98a | 2012-07-12 15:13:35 +0200 | [diff] [blame] | 152 | cd ../ |
Jacob Appelbaum | 3e92a2e | 2012-10-30 15:57:32 +0100 | [diff] [blame] | 153 | dpkg-source -i'.*' -b tlsdate |
Jacob Appelbaum | 6a00b29 | 2012-07-11 18:45:13 +0200 | [diff] [blame] | 154 | |
Jacob Appelbaum | bed9e24 | 2012-07-12 15:47:57 +0200 | [diff] [blame] | 155 | Example of how to build a package for Debian: |
| 156 | |
| 157 | # First build the source package above |
| 158 | scp tlsdate_* dixie.torproject.org:~/src/debian-builds/ |
| 159 | ~/bin/sbuild-stuff tlsdate_0.0.1-1.dsc |
| 160 | # Download or build the package locally |
| 161 | # and sign the .changes or .dsc file |
Jacob Appelbaum | 9bd8027 | 2012-07-12 15:57:48 +0200 | [diff] [blame] | 162 | debsign -k0xD81D840E tlsdate_0.0.1-1.dsc |
Jacob Appelbaum | 33da9ff | 2012-07-12 16:21:29 +0200 | [diff] [blame] | 163 | |
| 164 | Example of how to upload it (after a Debian sponsor signs off on it): |
Jacob Appelbaum | f8fd2f8 | 2013-04-11 00:09:29 -0700 | [diff] [blame] | 165 | |
Jacob Appelbaum | 33da9ff | 2012-07-12 16:21:29 +0200 | [diff] [blame] | 166 | dget http://www.example.com/tlsdate_0.0.1-1_amd64.changes |
| 167 | dput tlsdate_0.0.1-1_amd64.changes |
| 168 | |
Abel Luck | d942768 | 2013-04-12 12:12:52 +0200 | [diff] [blame] | 169 | For Android: |
| 170 | |
| 171 | To cross compile tlsdate for Android (tested on Linux) you must have the |
| 172 | Android NDK (>=r8) installed somewhere on your system, and define the |
| 173 | environment variable NDK_BASE to be the path to the NDK's root dir. |
| 174 | |
| 175 | export NDK_BASE=/home/user/src/android-ndk-r8d |
| 176 | |
| 177 | The Android build also requires a cross-compiled OpenSSL. The Android Makefile |
| 178 | will attempt to build openssl, if you provide the path via the OPENSSL_ANDROID |
| 179 | env var. |
| 180 | |
| 181 | git clone https://github.com/guardianproject/openssl-android.git /path/to/android-openssl |
| 182 | export OPENSSL_ANDROID=/path/to/android-openssl |
| 183 | |
| 184 | Once NDK_BASE and OPENSSL_ANDROID are set properly, you can cross compile tlsdate with: |
| 185 | |
| 186 | make distclean # clean any previous builds |
| 187 | rm configure # distclean doesn't remove this file |
| 188 | make -f Makefile.android |
| 189 | |
| 190 | Android NDK: https://developer.android.com/tools/sdk/ndk/index.html |
| 191 | OpenSSL for Android: https://github.com/guardianproject/openssl-android |
| 192 | |