tlsdate should build and work on the following Operating Systems: Debian GNU/Linux squeeze, wheezy, jessie, sid Ubuntu lucid, natty, oneiric, precise, quantal CentOS 6.2, 6.3, 6.4 Fedora 17, 18 RedHat Enterprise Server 6.4 OpenSUSE 11.2, 12.3 FreeBSD 9.2, 10, 11 Mac OS X 10.8.2, 10.8.3 ChromeOS Release 25, 26, 27 and above Android with the Android NDK (use Makefile.android) Arch Linux (Don't forget to symlink to /dev/rtc to /dev/rtc0) NetBSD 6.0.1 OpenBSD 5.2 Gentoo 20130413 DragonFly BSD 3.3-DEVELOPMENT Debian GNU/kFreeBSD 7.0 (8.2-1-amd64) Debian GNU/Hurd tlsdate should build and might even work on the following Operating Systems: Win32 with Cygwin CYGWIN_NT-6.1 1.7.18(0.263/5/3 Win32 with MinGW Haiku r1alpha4 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: Windows native OpenWRT pfsense OpenVMS Irix Minix Any of the other classic unix systems Currently porting is in progress or partially documented for: Plan9 (with APE) Debian GNU/Hurd 7.0 (GNU-Mach 1.3.99-486-dbg/Hurd-0.3) Currently we report "server time 0 (difference is about 1367009757 s)" Building and install of tlsdate on GNU/Linux and FreeBSD: ./autogen.sh ./configure make make install Cleaning is the usual: make clean On Debian Gnu/Linux sid/unstable: apt-get install tlsdate On other versions of Debian GNU/Linux and with Debian backports, tlsdate may be available: apt-get install tlsdate On recent Debian GNU/Linux and related systems, we provide a systemd service. It will notice network changes and regularly invoke tlsdate to keep the clock in sync. Start it like so: service tlsdated start On older Debian GNU/Linux and related systems, we provide an init.d script that controls the tlsdated daemon. It will notice network changes and regularly invoke tlsdate to keep the clock in sync. Start it like so: /etc/init.d/tlsdated start Debian GNU/Hurd does not yet support autotools bootstrapping and users must bootstrap with `make dist` on another platform from the tlsdate git repository. With such a release tar.gz it is the expected process: ./configure make make install Please note that setting time on GNU/Hurd has not yet been tested. On ChromeOS: tlsdated and tlsdate are included in the ChromeOS TCB; no install needed. They run automatically and are the core ntp service for ChromeOS. On Gentoo: emerge net-misc/tlsdate On FreeBSD one may also use the ports system: cd /usr/ports/sysutils/tlsdate make make install 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 On Fedora: yum install tlsdate To run tlsdated as a service on Fedora: systemctl enable tlsdate.service systemctl start tlsdate.service On Arch Linux there is a PKGBUILD in the Arch User Repository: https://aur.archlinux.org/packages/tlsdate https://aur.archlinux.org/packages/tl/tlsdate/PKGBUILD Cygwin requires that the user installs openssl-dev, gcc, pkg-config, libtool, automake, autoconf: ./configure make On Plan9 the start of building might look something like this: ip/ipconfig ndb/dns -r 9fs sources /n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/openssl mk install On Haiku we must use gcc4: export CC=/boot/develop/abi/x86/gcc4/tools/gcc4.6.3-haiku-121101/bin/gcc export LDFLAGS="$LDFLAGS -lbsd" ./configure # This includes the above exports currently make OpenBSD builds from source and is not yet in the port system: export AUTOCONF_VERSION=<your installed version> export AUTOMAKE_VERSION=<your installed version> ./autogen.sh ./configure make make install If you wish to make a Debian package there are several other options. It is expected that you are building for Sid and that you are familiar with how to build Debian packages that are for upload into Debian directly. It is expected that you should build in a chroot if you wish to have reliable and or reproducible builds. # Prep your schroot mysid=sid$RANDOM; schroot -b -c sid -n $mysid; dd-schroot-cmd -c $mysid apt-get update; dd-schroot-cmd -c $mysid apt-get build-dep tlsdate; # If build-dep is building an older tlsdate, you may need these tools too: dd-schroot-cmd -c $mysid apt-get install git ca-certificates \ lintian libevent-dev libseccomp-dev; echo "Your chroot is called: $mysid"; schroot -r -c $mysid # Build tlsdate git clone https://www.github.com/ioerror/tlsdate/ cd tlsdate/ git checkout debian-master dpkg-buildpackage -B "-mMyName <MyEmail>" -uc Building without schroot should work with dpkg-buildpackage but the build environment will have to be manually configured. To make a Debian package with git-buildpackage is the expected build process: # install dependencies apt-get install git ca-certificates \ lintian libevent-dev libseccomp-dev build-essential \ autoconf dh-autoreconf dh-systemd automake autotools-dev \ dh-apparmor libssl-dev libevent-dev libtool pkg-config \ debhelper fakeroot hardening-wrapper git-buildpackage; git clone https://www.github.com/ioerror/tlsdate/ cd tlsdate/ git checkout debian-master git-buildpackage --git-upstream-branch=master \ --git-debian-branch=debian-master \ --git-upstream-tree=master \ --git-ignore-new 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