summaryrefslogtreecommitdiff
path: root/community/fcron/PKGBUILD
blob: c13927264c723e4bc56af6ac063be05769b0905a (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
# $Id: PKGBUILD 111045 2014-05-12 10:09:29Z seblu $
# Contributor: Giorgio Lando <lando at imap dot cc>
# Contributor: Sergej Pupykin
# Contributor: Thomas Bächler
# Contributor: Sébastien Luttringer
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>

pkgname=fcron
pkgver=3.1.3
pkgrel=1
pkgdesc='Feature-rich cron implementation'
arch=(i686 x86_64)
url='http://fcron.free.fr'
license=('GPL')
depends=('pam' 'run-parts')
makedepends=('smtp-forwarder' 'vi' 'fcron')
# use fcron as recursive deps to have user fcron installed during installation
# else add the following in build chroot
# groupadd -g 23 fcron
# useradd -r -d /var/spool/fcron -u 23 -g 23 fcron
optdepends=('smtp-forwarder: to send mails from cron jobs'
            'vi: default editor for fcrontab')
provides=('cron')
conflicts=('dcron')
backup=('etc/fcron/fcron.conf'
        'etc/fcron/fcron.allow'
        'etc/fcron/fcron.deny')
options=('emptydirs' '!makeflags')
install=$pkgname.install
source=("http://fcron.free.fr/archives/$pkgname-$pkgver.src.tar.gz"
        'systab.orig')
md5sums=('b58ce88344eb4c80a353066547d20a24'
         'afecbfd98caa49e8e4aa239fa1b19255')

build() {
  cd $pkgname-$pkgver
  # Don't use --username=root and --groupname=root, this completly break
  # fcron security and allow local root escalation.
  # Thanks to Anh K. Huynh <kyanh@theslinux.org> for reporting it.
  ./configure --prefix=/usr \
              --sbindir=/usr/bin \
              --sysconfdir=/etc/fcron \
              --with-answer-all=no \
              --with-boot-install=no \
              --datarootdir=/usr/share \
              --datadir=/usr/share \
              --with-docdir=/usr/share/doc \
              --localstatedir=/var \
              --with-systemdsystemunitdir=/usr/lib/systemd/system \
              --with-piddir=/run \
              --with-editor=/usr/bin/vi \
              --with-sendmail=/usr/bin/sendmail
  make
}

package() {
  cd $pkgname-$pkgver
  make DESTDIR="$pkgdir/" install
  install -Dm644 files/fcron.pam "$pkgdir/etc/pam.d/fcron"
  install -Dm644 files/fcrontab.pam "$pkgdir/etc/pam.d/fcrontab"

  # Install a default fcrontab so that fcron can completely replace dcron
  # We doesn't use binary format which is incompatible between arch and may cause crash
  # We regenerate the binary format at each update
  install -Dm640 "$srcdir/systab.orig" "$pkgdir/var/spool/fcron/systab.orig"

  # Add cron.* directories
  install -d -m755 "$pkgdir/etc/cron.daily"
  install -d -m755 "$pkgdir/etc/cron.hourly"
  install -d -m755 "$pkgdir/etc/cron.monthly"
  install -d -m755 "$pkgdir/etc/cron.weekly"

  # remove docs
  rm -r "$pkgdir/usr/share/doc"

  # avoid conflict with filesystem>=2012.06
  rmdir "$pkgdir"/{var/,}run

  # avoid conflict with libbsd - #31259
  rm "$pkgdir/usr/share/man/man3/bitstring.3" \
    "$pkgdir/usr/share/man/fr/man3/bitstring.3"
  rmdir --ignore-fail-on-non-empty "$pkgdir/usr/share/man/man3" \
    "$pkgdir/usr/share/man/fr/man3"
}

# vim:set ts=2 sw=2 et: