summaryrefslogtreecommitdiff
path: root/opt/dcron/MAKEPKG
blob: 60109c84d8236ce12cacd8e0a91fb22a796fc994 (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
#!/bin/mkpkg
# description: Dillon's lightweight cron daemon
# url: https://github.com/ptchinster/dcron

name=dcron
version=4.6
release=1
groups=(cron:user:cron:/var/spool/cron:755)
services=(crond)
permissions=(
    /usr/sbin/crond:root:root:700
    /usr/bin/crontab:root:cron:4750
    /var/spool/cron/crontabs:root:root:755
    /var/spool/cron/cronstamps:root:root:755
)
source=(https://github.com/ptchinster/dcron/archive/refs/tags/v$version.tar.gz)

sha256sums=(
    "d1dced1554213225f5ca333ebc5eab96ab80fa30800d9420782d5dfa6e2a15e7"
)

build() {
    cd $name-$version
    
    make CC=clang \
         PREFIX=/usr \
         MANDIR=/usr/share/man \
         CRONTAB_GROUP=cron \
         LOG_IDENT=crond
    
    make install \
         DESTDIR=$PKG \
         PREFIX=/usr \
         MANDIR=/usr/share/man \
         CRONTAB_GROUP=cron
    
    # Per-user crontabs and timestamps
    install -d -m 755 $PKG/var/spool/cron/crontabs
    install -d -m 755 $PKG/var/spool/cron/cronstamps
    
    # System crontabs directory (drop files here for system-wide jobs)
    install -d -m 755 $PKG/etc/cron.d
    
    # Periodic-run directories (run-cron compatible)
    install -d -m 755 $PKG/etc/cron.hourly
    install -d -m 755 $PKG/etc/cron.daily
    install -d -m 755 $PKG/etc/cron.weekly
    install -d -m 755 $PKG/etc/cron.monthly
}

post_build() {
    # runit service - crond runs as root because it exec()s user
    # crontabs as those users (drops privs per-job, not at startup).
    install -d $PKG/etc/sv/crond/log
    
    printf '%s\n' \
        '#!/bin/sh' \
        'exec 2>&1' \
        '' \
        '# -f keeps crond in foreground for runit' \
        '# -L /dev/stderr sends log lines to stderr, captured by svlogd' \
        '# -l NOTICE keeps log volume sensible (default)' \
        'exec /usr/sbin/crond -f -L /dev/stderr -l NOTICE' \
        > $PKG/etc/sv/crond/run
    
    printf '%s\n' \
        '#!/bin/sh' \
        'mkdir -p /var/log/crond' \
        'exec svlogd -tt /var/log/crond' \
        > $PKG/etc/sv/crond/log/run
    
    chmod 755 $PKG/etc/sv/crond/run
    chmod 755 $PKG/etc/sv/crond/log/run
}

signify() {
    untrusted comment: public key
    RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3
}

# vim: filetype=sh