1tlsdate should build and work on the following Operating Systems: 2 3 Debian GNU/Linux squeeze, wheezy, jessie, sid 4 Ubuntu lucid, natty, oneiric, precise, quantal 5 CentOS 6.2, 6.3, 6.4 6 Fedora 17, 18 7 RedHat Enterprise Server 6.4 8 OpenSUSE 11.2, 12.3 9 FreeBSD 9.2, 10, 11 10 Mac OS X 10.8.2, 10.8.3 11 ChromeOS Release 25, 26, 27 and above 12 Android with the Android NDK (use Makefile.android) 13 Arch Linux (Don't forget to symlink to /dev/rtc to /dev/rtc0) 14 NetBSD 6.0.1 15 OpenBSD 5.2 16 Gentoo 20130413 17 DragonFly BSD 3.3-DEVELOPMENT 18 Debian GNU/kFreeBSD 7.0 (8.2-1-amd64) 19 Debian GNU/Hurd 20 21tlsdate should build and might even work on the following Operating Systems: 22 23 Win32 with Cygwin CYGWIN_NT-6.1 1.7.18(0.263/5/3 24 Win32 with MinGW 25 Haiku r1alpha4 26 27Please file a bug or email the tlsdate team if you have successfully built or 28use tlsdate on a platform that is not listed. We are specifically looking for 29ports of tlsdate or for tlsdate integration on the following Operating Systems: 30 31 Windows native 32 OpenWRT 33 pfsense 34 OpenVMS 35 Irix 36 Minix 37 Any of the other classic unix systems 38 39Currently porting is in progress or partially documented for: 40 41 Plan9 (with APE) 42 Debian GNU/Hurd 7.0 (GNU-Mach 1.3.99-486-dbg/Hurd-0.3) 43 Currently we report "server time 0 (difference is about 1367009757 s)" 44Building and install of tlsdate on GNU/Linux and FreeBSD: 45 46 ./autogen.sh 47 ./configure 48 make 49 make install 50 51Cleaning is the usual: 52 53 make clean 54 55On Debian Gnu/Linux sid/unstable: 56 57 apt-get install tlsdate 58 59On other versions of Debian GNU/Linux and with Debian backports, tlsdate may be 60available: 61 62 apt-get install tlsdate 63 64On recent Debian GNU/Linux and related systems, we provide a systemd service. 65It will notice network changes and regularly invoke tlsdate to keep the clock 66in sync. Start it like so: 67 68 service tlsdated start 69 70On older Debian GNU/Linux and related systems, we provide an init.d script that 71controls the tlsdated daemon. It will notice network changes and regularly 72invoke tlsdate to keep the clock in sync. Start it like so: 73 74 /etc/init.d/tlsdated start 75 76Debian GNU/Hurd does not yet support autotools bootstrapping and users must 77bootstrap with `make dist` on another platform from the tlsdate git 78repository. With such a release tar.gz it is the expected process: 79 80 ./configure 81 make 82 make install 83 84Please note that setting time on GNU/Hurd has not yet been tested. 85 86On ChromeOS: 87 88 tlsdated and tlsdate are included in the ChromeOS TCB; no install needed. They 89 run automatically and are the core ntp service for ChromeOS. 90 91On Gentoo: 92 93 emerge net-misc/tlsdate 94 95On FreeBSD one may also use the ports system: 96 97 cd /usr/ports/sysutils/tlsdate 98 make 99 make install 100 101On Mac OS X, we require that you have XCode installed. You may also need brew 102for autoconf and automake packages: 103 104 brew install autoconf automake libtool pkg-config 105 106It should also be possible to install tlsdate on OS X 10.8.x with brew directly: 107 108 brew install tlsdate 109 110On Fedora: 111 112 yum install tlsdate 113 114To run tlsdated as a service on Fedora: 115 116 systemctl enable tlsdate.service 117 systemctl start tlsdate.service 118 119On Arch Linux there is a PKGBUILD in the Arch User Repository: 120 121 https://aur.archlinux.org/packages/tlsdate 122 https://aur.archlinux.org/packages/tl/tlsdate/PKGBUILD 123 124Cygwin requires that the user installs openssl-dev, gcc, pkg-config, libtool, automake, autoconf: 125 126 ./configure 127 make 128 129On Plan9 the start of building might look something like this: 130 131 ip/ipconfig 132 ndb/dns -r 133 9fs sources 134 /n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/openssl 135 mk install 136 137On Haiku we must use gcc4: 138 139 export CC=/boot/develop/abi/x86/gcc4/tools/gcc4.6.3-haiku-121101/bin/gcc 140 export LDFLAGS="$LDFLAGS -lbsd" 141 ./configure # This includes the above exports currently 142 make 143 144OpenBSD builds from source and is not yet in the port system: 145 146 export AUTOCONF_VERSION=<your installed version> 147 export AUTOMAKE_VERSION=<your installed version> 148 ./autogen.sh 149 ./configure 150 make 151 make install 152 153If you wish to make a Debian package there are several other options. It is 154expected that you are building for Sid and that you are familiar with how to 155build Debian packages that are for upload into Debian directly. It is expected 156that you should build in a chroot if you wish to have reliable and or 157reproducible builds. 158 159 # Prep your schroot 160 mysid=sid$RANDOM; 161 schroot -b -c sid -n $mysid; 162 dd-schroot-cmd -c $mysid apt-get update; 163 dd-schroot-cmd -c $mysid apt-get build-dep tlsdate; 164 # If build-dep is building an older tlsdate, you may need these tools too: 165 dd-schroot-cmd -c $mysid apt-get install git ca-certificates \ 166 lintian libevent-dev libseccomp-dev; 167 echo "Your chroot is called: $mysid"; 168 schroot -r -c $mysid 169 # Build tlsdate 170 git clone https://www.github.com/ioerror/tlsdate/ 171 cd tlsdate/ 172 git checkout debian-master 173 dpkg-buildpackage -B "-mMyName <MyEmail>" -uc 174 175Building without schroot should work with dpkg-buildpackage but the build 176environment will have to be manually configured. 177 178To make a Debian package with git-buildpackage is the expected build process: 179 180 # install dependencies 181 apt-get install git ca-certificates \ 182 lintian libevent-dev libseccomp-dev build-essential \ 183 autoconf dh-autoreconf dh-systemd automake autotools-dev \ 184 dh-apparmor libssl-dev libevent-dev libtool pkg-config \ 185 debhelper fakeroot hardening-wrapper git-buildpackage; 186 git clone https://www.github.com/ioerror/tlsdate/ 187 cd tlsdate/ 188 git checkout debian-master 189 git-buildpackage --git-upstream-branch=master \ 190 --git-debian-branch=debian-master \ 191 --git-upstream-tree=master \ 192 --git-ignore-new 193 194For Android: 195 196To cross compile tlsdate for Android (tested on Linux) you must have the 197Android NDK (>=r8) installed somewhere on your system, and define the 198environment variable NDK_BASE to be the path to the NDK's root dir. 199 200 export NDK_BASE=/home/user/src/android-ndk-r8d 201 202The Android build also requires a cross-compiled OpenSSL. The Android Makefile 203will attempt to build openssl, if you provide the path via the OPENSSL_ANDROID 204env var. 205 206 git clone https://github.com/guardianproject/openssl-android.git /path/to/android-openssl 207 export OPENSSL_ANDROID=/path/to/android-openssl 208 209Once NDK_BASE and OPENSSL_ANDROID are set properly, you can cross compile tlsdate with: 210 211 make distclean # clean any previous builds 212 rm configure # distclean doesn't remove this file 213 make -f Makefile.android 214 215Android NDK: https://developer.android.com/tools/sdk/ndk/index.html 216OpenSSL for Android: https://github.com/guardianproject/openssl-android 217 218