source: trunk/dports/sysutils/cfengine/Portfile @ 92837

Last change on this file since 92837 was 92837, checked in by ryandesign@…, 7 years ago

Increase revision of ports depending on pcre since the libpcre library version has increased from 0 to 1

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.5 KB
Line 
1# $Id: Portfile 92837 2012-05-09 00:51:48Z ryandesign@macports.org $
2PortSystem              1.0
3
4name                    cfengine
5version                 2.2.1
6revision                3
7categories              sysutils
8maintainers             nomaintainer
9description             a tool for setting up and maintaining computer systems
10long_description        Cfengine, or the configuration engine is an \
11                                        autonomous agent and a middle to high level \
12                                        policy language for building expert systems \
13                                        which administrate and configure large computer \
14                                        networks.
15homepage                http://www.cfengine.org/
16master_sites    ftp://ftp.iu.hio.no/pub/cfengine/ \
17                                ftp://sunsite.uio.no/pub/cfengine/ \
18                                http://ftp.us.xemacs.org/ftp/pub/cfengine/cfengine-ftp/
19checksums               sha1 ce4954174110c43541d25775747ae65ada30063d
20platforms               darwin
21
22depends_lib             port:db44 \
23                                port:openssl \
24                                port:pcre
25
26patchfiles              patch-pub__getopt.c
27post-patch {
28        foreach manfile [glob ${worksrcpath}/doc/*.8] {
29                reinplace "s|/usr/local|${prefix}|g" $manfile
30                reinplace "s|/var/cfengine|${prefix}&|g" $manfile
31        }
32}
33
34set cfworkdir   ${prefix}/var/cfengine
35
36configure.cflags        -I${prefix}/include/db44 -I${prefix}/include
37configure.ldflags       -L${prefix}/lib/db44 -L${prefix}/lib
38configure.args  --mandir='\${prefix}/share/man' \
39                                --infodir='\${prefix}/share/info' \
40                                --with-workdir="${cfworkdir}" \
41                                --with-berkeleydb=default \
42                                --with-openssl=default \
43                                --with-pcre=default \
44                                --with-docs
45
46build.args              ps_DATA=
47destroot.args   ps_DATA=
48
49pre-destroot {
50        if {[geteuid] != 0} {
51                ui_msg "-----------------------------------------------------------"
52                ui_msg "Note that you are not running as root, so files installed"
53                ui_msg "by this port will not end up with proper ownership and"
54                ui_msg "likely not work correctly with ${name}."
55                ui_msg "-----------------------------------------------------------"
56        }
57}
58
59destroot.keepdirs       ${destroot}${cfworkdir}/bin \
60                                        ${destroot}${cfworkdir}/inputs \
61                                        ${destroot}${cfworkdir}/modules \
62                                        ${destroot}${cfworkdir}/outputs \
63                                        ${destroot}${cfworkdir}/ppkeys \
64                                        ${destroot}${cfworkdir}/rpc_in \
65                                        ${destroot}${cfworkdir}/rpc_out \
66                                        ${destroot}${cfworkdir}/state
67post-destroot {
68        # Create cfengine directories
69        xinstall -d -m 0755 ${destroot}${cfworkdir}
70        # Create cfengine sub-directories
71        foreach subdir {bin modules state} {
72                xinstall -d -m 0755 ${destroot}${cfworkdir}/${subdir}
73        }
74        foreach subdir {inputs masterfiles/inputs outputs ppkeys rpc_in rpc_out} {
75                xinstall -d -m 0700 ${destroot}${cfworkdir}/${subdir}
76        }
77        # Create distribution sample conf files
78        set hostname [exec hostname]
79        set host [lindex [split ${hostname} {.}] 0]
80        set domain [join [lrange [split ${hostname} {.}] 1 end] {.}]
81        set timezone [exec date +%Z]
82        foreach conf {cfagent.conf cfservd.conf update.conf cfrun.hosts} {
83                xinstall -m 0644  ${filespath}/${conf}.in \
84                        ${destroot}${cfworkdir}/masterfiles/inputs/${conf}-dist
85                reinplace "s|__PREFIX|${prefix}|g" \
86                        ${destroot}${cfworkdir}/masterfiles/inputs/${conf}-dist
87                reinplace "s|__CFWORKDIR|${cfworkdir}|g" \
88                        ${destroot}${cfworkdir}/masterfiles/inputs/${conf}-dist
89                reinplace "s|__HOST|${host}|g" \
90                        ${destroot}${cfworkdir}/masterfiles/inputs/${conf}-dist
91                reinplace "s|__DOMAIN|${domain}|g" \
92                        ${destroot}${cfworkdir}/masterfiles/inputs/${conf}-dist
93                reinplace "s|__TIMEZONE|${timezone}|g" \
94                        ${destroot}${cfworkdir}/masterfiles/inputs/${conf}-dist
95        }
96        # Create startup rc script (if non-Darwin)
97        if {${os.platform} != "darwin"} {
98                xinstall -d -m 0755 ${destroot}${prefix}/etc/rc.d
99                xinstall -m 0755 ${filespath}/${name}.sh.in \
100                        ${destroot}${prefix}/etc/rc.d/${name}.sh
101                reinplace "s|__PREFIX|${prefix}|" \
102                        ${destroot}${prefix}/etc/rc.d/${name}.sh
103                reinplace "s|__CFWORKDIR|${cfworkdir}|" \
104                        ${destroot}${prefix}/etc/rc.d/${name}.sh
105        }
106}
107
108post-activate {
109        # Make sure initial conf files are present and setup correctly
110        if {![file exists ${cfworkdir}/inputs/update.conf]} {
111                xinstall -m 0644 ${cfworkdir}/masterfiles/inputs/update.conf-dist \
112                        ${cfworkdir}/inputs/update.conf
113        }
114        foreach conf {cfagent.conf cfservd.conf update.conf cfrun.hosts} {
115                if {![file exists ${cfworkdir}/masterfiles/inputs/${conf}]} {
116                        xinstall -m 0644 ${cfworkdir}/masterfiles/inputs/${conf}-dist \
117                                ${cfworkdir}/masterfiles/inputs/${conf}
118                }
119        }
120        # Check for root public-private keys, create if missing
121        if {![file exists ${cfworkdir}/ppkeys/localhost.priv] \
122                || ![file exists ${cfworkdir}/ppkeys/localhost.pub]} {
123                if {[file exists ${cfworkdir}/ppkeys/localhost.priv]} {
124                        delete ${cfworkdir}/ppkeys/localhost.priv
125                }
126                if {[file exists ${cfworkdir}/ppkeys/localhost.pub]} {
127                        delete ${cfworkdir}/ppkeys/localhost.pub
128                }
129                system "${prefix}/sbin/cfkey"
130        }
131}
132
133variant psdocs {
134        depends_build                   bin:tex:texlive \
135                                                        bin:texinfo:texinfo
136        build.args-delete               ps_DATA=
137        destroot.args-delete    ps_DATA=
138}
139
140platform darwin {
141        startupitem.create                      yes
142        startupitem.name                        Cfengine
143        startupitem.start                       "\[ -x ${cfworkdir}/bin/cfservd \] && ${cfworkdir}/bin/cfservd"
144        startupitem.start-append        "\[ -x ${cfworkdir}/bin/cfenvd \] && ${cfworkdir}/bin/cfenvd -H"
145        startupitem.start-append        "\[ -x ${cfworkdir}/bin/cfexecd \] && ${cfworkdir}/bin/cfexecd"
146        startupitem.start-append        "(\[ -x ${cfworkdir}/bin/cfservd \] && \[ -x ${cfworkdir}/bin/cfenvd \] && \\"
147        startupitem.start-append        " \[ -x ${cfworkdir}/bin/cfexecd \] && \[ -x ${cfworkdir}/bin/cfagent \]) \\"
148        startupitem.start-append        "\t|| ${prefix}/sbin/cfagent --no-splay -f update.conf"
149        startupitem.stop                        "/usr/bin/killall -SIGUSR1 cfagent 2>/dev/null"
150        startupitem.stop-append         "/usr/bin/killall -SIGUSR1 cfexecd 2>/dev/null"
151        startupitem.stop-append         "/usr/bin/killall -SIGUSR1 cfenvd 2>/dev/null"
152        startupitem.stop-append         "/usr/bin/killall -SIGUSR1 cfservd 2>/dev/null"
153}
154
Note: See TracBrowser for help on using the repository browser.