aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils/runit-faster/Makefile
blob: fef8db03f8bc96004028cd0820815163a653f016 (plain) (blame)
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
# Created by: Sergei Kolobov <sergei@kolobov.com>
# $FreeBSD$

PORTNAME=   runit
DISTVERSION=    ${RUNITVERSION}-${CONFVERSION}
RUNITVERSION=   2.1.2
CONFVERSION=    0.1.17
CATEGORIES= sysutils
MASTER_SITES=   http://smarden.org/runit/ \
        http://www.bayofrum.net/dist/runit/ \
        LOCAL/tobik:config \
        https://pkg.tobik.me/distfiles/:config
PKGNAMESUFFIX=  -faster
DISTFILES=  runit-${RUNITVERSION}${EXTRACT_SUFX} \
        freebsd-runit-${CONFVERSION}${EXTRACT_SUFX}:config

MAINTAINER= tobik@FreeBSD.org
COMMENT=    Runit based init replacement for ${OPSYS}

LICENSE=    BSD3CLAUSE
LICENSE_FILE=   ${WRKSRC}/package/COPYING

RUN_DEPENDS=    snooze:sysutils/snooze

CONFLICTS_INSTALL=  runit

PLIST_SUB=  RUNITDIR=${RUNITDIR}
USE_RC_SUBR=    runsvdir
WRKSRC=     ${WRKDIR}/admin/runit-${RUNITVERSION}

OPTIONS_DEFINE= DOCS ROOT

ROOT_DESC=  Install bootstrap files into /etc/runit and /sbin

PORTDOCS=   *

ROOT_VARS=  RUNITDIR=/etc/runit SBINDIR=/sbin
ROOT_VARS_OFF=  RUNITDIR=${PREFIX}/etc/runit SBINDIR=${PREFIX}/sbin

post-patch:
    @${REINPLACE_CMD} -e 's,/service/,/var/service,' \
        -e 's,/etc/runit,${RUNITDIR},' \
        -e 's,/sbin/runit,${SBINDIR}/runit,' \
        ${WRKSRC}/man/* ${WRKSRC}/doc/*.html \
        ${WRKSRC}/src/sv.c \
        ${WRKSRC}/src/runsvchdir.c \
        ${WRKSRC}/src/runit.c \
        ${WRKSRC}/src/runit.h

do-configure:
    @${ECHO_CMD} "${CC} ${CFLAGS}" > ${WRKSRC}/src/conf-cc
    @${ECHO_CMD} "${CC}" > ${WRKSRC}/src/conf-ld

do-build:
    @cd ${WRKSRC} && package/compile

do-install:
    @${MKDIR} ${STAGEDIR}${RUNITDIR} ${STAGEDIR}${SBINDIR}
    ${INSTALL_PROGRAM} ${WRKSRC}/command/* ${STAGEDIR}${SBINDIR}
    ${INSTALL_MAN} ${WRKSRC}/man/*.8 ${STAGEDIR}${PREFIX}/man/man8
    @${DO_MAKE_BUILD} -C ${WRKDIR}/freebsd-runit-${CONFVERSION} \
        DESTDIR=${STAGEDIR} \
        LOCALBASE=${LOCALBASE} \
        PREFIX=${PREFIX} \
        RUNITDIR=${RUNITDIR} \
        SVDIR=${PREFIX}/etc/sv \
        install
# Point runit to the run directory (a necessity to let runit work on
# read-only root filesystems) and make sure rebooting and powering off
# can work correctly.
    @${LN} -s /var/run/runit/reboot ${STAGEDIR}${RUNITDIR}/reboot
    @${LN} -s /var/run/runit/stopit ${STAGEDIR}${RUNITDIR}/stopit

do-install-DOCS-on:
    @${MKDIR} ${STAGEDIR}${DOCSDIR}
    cd ${WRKSRC} && ${INSTALL_DATA} \
        package/CHANGES package/README package/THANKS doc/*.html \
        ${STAGEDIR}${DOCSDIR}

post-install:
# Micromanaging pkg-plist is no fun here...  Generate it on the fly
# instead.
    @${FIND} -s ${STAGEDIR}${RUNITDIR} ${STAGEDIR}${PREFIX}/etc/sv ${STAGEDIR}${SBINDIR} \
        -not -type d | ${SORT} | ${SED} \
        -e 's,^${STAGEDIR},,' \
        -e 's,^${PREFIX}/,,' \
        >> ${TMPPLIST}
    @${FIND} -s ${STAGEDIR}${RUNITDIR} ${STAGEDIR}${PREFIX}/etc/sv ${STAGEDIR}${SBINDIR} \
        -type d | ${SORT} | ${SED} \
        -e 's,^${STAGEDIR},,' \
        -e 's,^${PREFIX}/,,' \
        -e 's,^,@dir ,' >> ${TMPPLIST}

do-test:
    @cd ${WRKSRC} && package/check

.include <bsd.port.mk>