source: trunk/dports/sysutils/cfengine/Portfile

Last change on this file was 146517, checked in by raimue@…, 17 months ago

Mass rev-bump dependents of port openssl due to ABI change

Disabling SSLv2 in r146162 changed the ABI of the library, leading to loading
errors for binaries with references to SSLv2 symbols.

https://lists.macosforge.org/pipermail/macports-dev/2016-March/032531.html

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