summaryrefslogtreecommitdiff
path: root/PKGBUILD
blob: 6eac673f60bcbfc8d03df32ba87d94e4598b6893 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Maintainer: jc_gargma <jc_gargma@iserlohn-fortress.net>
# Maintainer (Arch): Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor (Arch): Daniel Micay <danielmicay@gmail.com>
# Contributor (Arch): Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor (Arch): Patrick Leslie Polzer <leslie.polzer@gmx.net>
# Contributor (Arch): cdhotfire <cdhotfire@gmail.com>
# Contributor (Arch): Shinlun Hsieh <yngwiexx@yahoo.com.tw>
# Contributor (Arch): Elisamuel Resto <ryuji@simplysam.us>

# # I maintain this because:
# Arch version is not configured for openrc
# Arch version uses /etc/chrony.conf instead of /etc/chrony/chrony.conf

_cross=0
pkgname=chrony
pkgver=4.5
pkgrel=1
pkgdesc='Lightweight NTP client and server'
url='https://chrony.tuxfamily.org/'
arch=('x86_64')
license=('GPL2')
depends=('glibc' 'nss' 'readline' 'libcap' 'libcap.so' 'libedit' 'libseccomp' 'libseccomp.so'
         'nettle' 'libnettle.so' 'gnutls')
makedepends=('asciidoctor')
options=('!emptydirs')
# # For some reason this breaks compiling. "error: C compiler not found"
# # But old-fashioned raw injection of -flto=auto via export doesn't.
#options=('lto')
backup=('etc/chrony/chrony.conf')
source=(https://download.tuxfamily.org/chrony/${pkgname}-${pkgver}.tar.gz
        ${pkgname}-${pkgver}.tar.gz.asc::https://download.tuxfamily.org/chrony/${pkgname}-${pkgver}-tar-gz-asc.txt
        chrony.sysusers
        chrony.tmpfiles)
sha256sums=('19fe1d9f4664d445a69a96c71e8fdb60bcd8df24c73d1386e02287f7366ad422'
            'SKIP'
            '56aa817638c8f959169d514f1e7fc727ef31e7d3beda4fca5165292c7602ee42'
            'c0b52787f68f3ef365eef64f53f22b4fb0046a91f0e38923f9d16f1ca19c3f3a')
b2sums=('e89665e6ff700805b41f89e9349d280579aebab31a30817512a165da939c8f39dc55ef9a17a50e3d7e298015620667638ab119901a71868a9188093606a95d32'
        'SKIP'
        'e310a05f95d84741f7ddbbc496c52a9f603bb79afc47e57d291a92ae02efb630a357fda378ab5a11875c3997d073e05019d88dce7bbf4377a0228f328ba78fec'
        'e709df2f97b523ef1c7a9dae3232ccbd235ac8f025eba866165272f8ba0372a0aba965d3aae1402395e43331bd629b9d8f3fbffd75fc254f4a7e5ecd47f73130')
# https://chrony.tuxfamily.org/gpgkey-8F375C7E8D0EE125A3D3BD51537E2B76F7680DAC.asc
validpgpkeys=(
  '8F375C7E8D0EE125A3D3BD51537E2B76F7680DAC' # Miroslav Lichvar <mlichvar@redhat.com>
)

prepare() {
  cd ${pkgname}-${pkgver}
  sed -i \
    -e 's|pool pool.ntp.org|pool 2.arch.pool.ntp.org|g' \
    -e 's|server foo.example.net|server 0.arch.pool.ntp.org|g' \
    -e 's|server bar.example.net|server 1.arch.pool.ntp.org|g' \
    -e 's|server baz.example.net|server 3.arch.pool.ntp.org|g' \
    examples/chrony.conf.example*
}

build() {
  cd ${pkgname}-${pkgver}
  export CFLAGS="$CFLAGS -O3 -fstack-protector-all -flto=auto -fPIE"
  export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -flto=auto -fPIE"
  export LDFLAGS="$LDFLAGS,-pie"
  ./configure \
    --prefix=/usr \
    --enable-scfilter \
    --enable-ntp-signd \
    --with-user=chrony \
    --with-sendmail=/usr/bin/sendmail \
    --with-hwclockfile=/etc/adjtime \
    --sbindir=/usr/bin \
    --with-pidfile=/run/chrony/chronyd.pid
  make
}

# tests are target architecture specific
# Disable for cross compiling
if [ "${_cross}" == "0" ]; then
  check() {
    cd ${pkgname}-${pkgver}
    make check
  }
fi

package() {
  cd ${pkgname}-${pkgver}
  make DESTDIR="${pkgdir}" install install-docs

  install -Dm 644 "${srcdir}/chrony.sysusers" "${pkgdir}/usr/lib/sysusers.d/chrony.conf"
  install -Dm 644 "${srcdir}/chrony.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/chrony.conf"
  install -Dm 644 examples/chrony.logrotate "${pkgdir}/etc/logrotate.d/chrony"
  install -Dm 644 README NEWS FAQ -t "${pkgdir}/usr/share/doc/${pkgname}"
  install -Dm 644 examples/* -t "${pkgdir}/usr/share/doc/${pkgname}/examples"

  install -Dm 644 examples/chrony.conf.example3 "${pkgdir}/etc/chrony/chrony.conf"
  sed -i \
    -e '/^! pool /s/^! //' \
    -e '/^! leapsectz right\/UTC/s/^! //' \
    -e '/^! makestep 1.0 3/s/^! //' \
    -e '/^! rtcsync/s/^! //' \
    "${pkgdir}/etc/chrony/chrony.conf"

  rmdir "${pkgdir}"{/var/lib/chrony,/var/lib}
}