blob: 285e14731d6032095bbb3f23f3148d6a2e5b59dd [file] [log] [blame]
tlsdate should build and work on the following Operating Systems:
Debian Gnu/Linux squeeze, wheezy, 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 10-CURRENT
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)
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 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/tlsdate 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:
tlsdate is part of the ChromeOS TCB; no install needed
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
To make an unsigned Debian package:
git checkout debian-master
make deb
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
To make a Debian source package:
git checkout master
./autogen.sh
./configure && make debian_orig
git checkout debian-master
fakeroot debian/rules clean
cd ../
dpkg-source -i'.*' -b tlsdate
Example of how to build a package for Debian:
# First build the source package above
scp tlsdate_* dixie.torproject.org:~/src/debian-builds/
~/bin/sbuild-stuff tlsdate_0.0.1-1.dsc
# Download or build the package locally
# and sign the .changes or .dsc file
debsign -k0xD81D840E tlsdate_0.0.1-1.dsc
Example of how to upload it (after a Debian sponsor signs off on it):
dget http://www.example.com/tlsdate_0.0.1-1_amd64.changes
dput tlsdate_0.0.1-1_amd64.changes
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