1 tlsdate 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 21 tlsdate 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 27 Please file a bug or email the tlsdate team if you have successfully built or 28 use tlsdate on a platform that is not listed. We are specifically looking for 29 ports 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 39 Currently 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)" 44 Building and install of tlsdate on GNU/Linux and FreeBSD: 45 46 ./autogen.sh 47 ./configure 48 make 49 make install 50 51 Cleaning is the usual: 52 53 make clean 54 55 On Debian Gnu/Linux sid/unstable: 56 57 apt-get install tlsdate 58 59 On other versions of Debian GNU/Linux and with Debian backports, tlsdate may be 60 available: 61 62 apt-get install tlsdate 63 64 On recent Debian GNU/Linux and related systems, we provide a systemd service. 65 It will notice network changes and regularly invoke tlsdate to keep the clock 66 in sync. Start it like so: 67 68 service tlsdated start 69 70 On older Debian GNU/Linux and related systems, we provide an init.d script that 71 controls the tlsdated daemon. It will notice network changes and regularly 72 invoke tlsdate to keep the clock in sync. Start it like so: 73 74 /etc/init.d/tlsdated start 75 76 Debian GNU/Hurd does not yet support autotools bootstrapping and users must 77 bootstrap with `make dist` on another platform from the tlsdate git 78 repository. With such a release tar.gz it is the expected process: 79 80 ./configure 81 make 82 make install 83 84 Please note that setting time on GNU/Hurd has not yet been tested. 85 86 On 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 91 On Gentoo: 92 93 emerge net-misc/tlsdate 94 95 On FreeBSD one may also use the ports system: 96 97 cd /usr/ports/sysutils/tlsdate 98 make 99 make install 100 101 On Mac OS X, we require that you have XCode installed. You may also need brew 102 for autoconf and automake packages: 103 104 brew install autoconf automake libtool pkg-config 105 106 It should also be possible to install tlsdate on OS X 10.8.x with brew directly: 107 108 brew install tlsdate 109 110 On Fedora: 111 112 yum install tlsdate 113 114 To run tlsdated as a service on Fedora: 115 116 systemctl enable tlsdate.service 117 systemctl start tlsdate.service 118 119 On 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 124 Cygwin requires that the user installs openssl-dev, gcc, pkg-config, libtool, automake, autoconf: 125 126 ./configure 127 make 128 129 On 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 137 On 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 144 OpenBSD 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 153 If you wish to make a Debian package there are several other options. It is 154 expected that you are building for Sid and that you are familiar with how to 155 build Debian packages that are for upload into Debian directly. It is expected 156 that you should build in a chroot if you wish to have reliable and or 157 reproducible 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 175 Building without schroot should work with dpkg-buildpackage but the build 176 environment will have to be manually configured. 177 178 To 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 194 For Android: 195 196 To cross compile tlsdate for Android (tested on Linux) you must have the 197 Android NDK (>=r8) installed somewhere on your system, and define the 198 environment 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 202 The Android build also requires a cross-compiled OpenSSL. The Android Makefile 203 will attempt to build openssl, if you provide the path via the OPENSSL_ANDROID 204 env 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 209 Once 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 215 Android NDK: https://developer.android.com/tools/sdk/ndk/index.html 216 OpenSSL for Android: https://github.com/guardianproject/openssl-android 217 218