| 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 |
| |