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

Last change on this file since 139229 was 139229, checked in by jeremyhu@…, 4 years ago

misc: Change port:openssl dependency to path:lib/libssl.dylib:openssl

This should allow usage of libressl as a replacement for openssl in relevant
ports. Not all ports have been tested, but libressl aims for API
compatibility with OpenSSL, so it is expected to work.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.6 KB
Line 
1# $Id: Portfile 139229 2015-08-08 03:10:35Z jeremyhu@macports.org $
2
3PortSystem              1.0
4
5name                    cfengine
6version                 2.2.1
7revision                3
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.