Home | History | Annotate | Download | only in tlsdate
      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