diff options
Diffstat (limited to 'net-misc')
-rw-r--r-- | net-misc/cfengine/ChangeLog | 9 | ||||
-rw-r--r-- | net-misc/cfengine/cfengine-3.5.3.ebuild | 144 | ||||
-rw-r--r-- | net-misc/cfengine/files/cfengine-3.5.3-ifconfig.patch | 42 |
3 files changed, 194 insertions, 1 deletions
diff --git a/net-misc/cfengine/ChangeLog b/net-misc/cfengine/ChangeLog index 64ec319831f2..0e4bc12c5481 100644 --- a/net-misc/cfengine/ChangeLog +++ b/net-misc/cfengine/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-misc/cfengine # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/cfengine/ChangeLog,v 1.166 2014/02/22 23:31:23 mschiff Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/cfengine/ChangeLog,v 1.167 2014/02/27 17:45:02 mschiff Exp $ + +*cfengine-3.5.3 (27 Feb 2014) + + 27 Feb 2014; Marc Schiffbauer <mschiff@gentoo.org> +cfengine-3.5.3.ebuild, + +files/cfengine-3.5.3-ifconfig.patch: + Add 3.5.3 ebuild. Fixed USE=mysql. Removed html and tests USE flags. Fixes + #491838. Should fix #464358 *cfengine-3.4.5 (22 Feb 2014) diff --git a/net-misc/cfengine/cfengine-3.5.3.ebuild b/net-misc/cfengine/cfengine-3.5.3.ebuild new file mode 100644 index 000000000000..77b8675283fa --- /dev/null +++ b/net-misc/cfengine/cfengine-3.5.3.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/cfengine/cfengine-3.5.3.ebuild,v 1.1 2014/02/27 17:45:02 mschiff Exp $ + +EAPI="5" + +inherit eutils autotools flag-o-matic + +MY_PV="${PV//_beta/b}" +MY_PV="${MY_PV/_p/p}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="An automated suite of programs for configuring and maintaining +Unix-like computers" +HOMEPAGE="http://www.cfengine.org/" +SRC_URI="http://cfengine.com/source-code/download?file=${MY_P}.tar.gz -> ${MY_P}.tar.gz" + +LICENSE="GPL-3" +SLOT="3" +KEYWORDS="~amd64 ~arm ~ppc ~s390 ~sparc ~x86" + +IUSE="acl examples libvirt mysql postgres +qdbm selinux tokyocabinet vim-syntax xml" + +DEPEND="acl? ( virtual/acl ) + mysql? ( virtual/mysql ) + postgres? ( dev-db/postgresql-base ) + selinux? ( sys-libs/libselinux ) + tokyocabinet? ( dev-db/tokyocabinet ) + qdbm? ( dev-db/qdbm ) + libvirt? ( app-emulation/libvirt ) + xml? ( dev-libs/libxml2:2 ) \ + dev-libs/openssl + dev-libs/libpcre" +RDEPEND="${DEPEND}" +PDEPEND="vim-syntax? ( app-vim/cfengine-syntax )" + +REQUIRED_USE="qdbm? ( !tokyocabinet ) + tokyocabinet? ( !qdbm ) + !tokyocabinet? ( qdbm ) + !qdbm? ( tokyocabinet )" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + default + + epatch "${FILESDIR}/${PN}-3.4.5-acl.patch" + epatch "${FILESDIR}/${P}-ifconfig.patch" + + eautoreconf +} + +src_configure() { + # Enforce /var/cfengine for historical compatibility + + econf \ + --enable-fhs \ + --docdir=/usr/share/doc/${PF} \ + --with-workdir=/var/cfengine \ + --with-pcre \ + $(use_with acl libacl) \ + $(use_with qdbm) \ + $(use_with tokyocabinet) \ + $(use_with postgres postgresql) \ + $(use_with mysql mysql=check) \ + $(use_with libvirt) \ + $(use_enable selinux) + + # Fix Makefile to skip inputs, see below "examples" + #sed -i -e 's/\(SUBDIRS.*\) inputs/\1/' Makefile || die + + # We install the documentation through portage + sed -i -e 's/\(install-data-am.*\) install-docDATA/\1/' Makefile || die +} + +src_install() { + newinitd "${FILESDIR}"/cf-serverd.rc6 cf-serverd || die + newinitd "${FILESDIR}"/cf-monitord.rc6 cf-monitord || die + newinitd "${FILESDIR}"/cf-execd.rc6 cf-execd || die + + emake DESTDIR="${D}" install || die + + # fix ifconfig path in provided promises + find "${D}"/usr/share -name "*.cf" | xargs sed -i "s,/sbin/ifconfig,$(which ifconfig),g" + + # Evil workaround for now.. + mv "${D}"/usr/share/doc/${PN}/ "${D}"/usr/share/doc/${PF} + + dodoc AUTHORS + + if ! use examples; then + rm -rf "${D}"/usr/share/doc/${PF}/example* + fi + + # Create cfengine working directory + dodir /var/cfengine/bin + fperms 700 /var/cfengine + + # Copy cfagent into the cfengine tree otherwise cfexecd won't + # find it. Most hosts cache their copy of the cfengine + # binaries here. This is the default search location for the + # binaries. + for bin in promises agent monitord serverd execd runagent key; do + dosym /usr/sbin/cf-$bin /var/cfengine/bin/cf-$bin || die + done +} + +pkg_postinst() { + echo + elog "NOTE: BDB (BerkelyDB) support has been removed as of ${PN}-3.3.0" + echo + einfo "Init scripts for cf-serverd, cf-monitord, and cf-execd are provided." + einfo + einfo "To run cfengine out of cron every half hour modify your crontab:" + einfo "0,30 * * * * /usr/sbin/cf-execd -F" + echo + + elog "If you run cfengine the very first time, you MUST generate the keys for cfengine by running:" + elog "emerge --config ${CATEGORY}/${PN}" + + # Fix old cf-servd, remove it after some releases. + local found=0 + for fname in $(find /etc/runlevels/ -type f -or -type l -name 'cf-servd'); do + found=1 + rm $fname + ln -s /etc/init.d/cf-serverd $(echo $fname | sed 's:cf-servd:cf-serverd:') + done + + if [ "${found}" -eq 1 ]; then + echo + elog "/etc/init.d/cf-servd has been renamed to /etc/init.d/cf-serverd" + fi +} + +pkg_config() { + if [ "${ROOT}" == "/" ]; then + if [ ! -f "/var/cfengine/ppkeys/localhost.priv" ]; then + einfo "Generating keys for localhost." + /usr/sbin/cf-key + fi + else + die "cfengine cfkey does not support any value of ROOT other than /." + fi +} diff --git a/net-misc/cfengine/files/cfengine-3.5.3-ifconfig.patch b/net-misc/cfengine/files/cfengine-3.5.3-ifconfig.patch new file mode 100644 index 000000000000..dc982c6801f7 --- /dev/null +++ b/net-misc/cfengine/files/cfengine-3.5.3-ifconfig.patch @@ -0,0 +1,42 @@ +diff -ur cfengine-3.5.3.orig/configure.ac cfengine-3.5.3/configure.ac +--- cfengine-3.5.3.orig/configure.ac 2013-12-09 13:13:14.000000000 +0100 ++++ cfengine-3.5.3/configure.ac 2014-02-27 12:36:55.179893570 +0100 +@@ -1047,6 +1047,16 @@ + AM_SUBST_NOTMAKE(post_macros) + + dnl ###################################################################### ++dnl Find the path to ifconfig ++dnl ###################################################################### ++ ++AC_PATH_PROG(IFCONFIG_PATH,ifconfig) ++if test x"$IFCONFIG_PATH" = x"" ; then ++ AC_MSG_ERROR([Cannot found the ifconfig binary.]) ++fi ++AC_DEFINE_UNQUOTED(IFCONFIG_RUN, "$IFCONFIG_PATH -a", [the path to run ifconfig -a]) ++ ++dnl ###################################################################### + dnl Summarize + dnl ###################################################################### + +diff -ur cfengine-3.5.3.orig/libpromises/unix.c cfengine-3.5.3/libpromises/unix.c +--- cfengine-3.5.3.orig/libpromises/unix.c 2013-12-09 13:13:14.000000000 +0100 ++++ cfengine-3.5.3/libpromises/unix.c 2014-02-27 12:38:35.036608105 +0100 +@@ -767,7 +767,7 @@ + return; + } + #else +- if ((pp = cf_popen("/sbin/ifconfig -a", "r", true)) == NULL) ++ if ((pp = cf_popen(IFCONFIG_RUN, "r", true)) == NULL) + { + Log(LOG_LEVEL_VERBOSE, "Could not find interface info"); + return; +diff -ur cfengine-3.5.3.orig/libutils/config.h.in cfengine-3.5.3/libutils/config.h.in +--- cfengine-3.5.3.orig/libutils/config.h.in 2013-12-09 13:55:25.000000000 +0100 ++++ cfengine-3.5.3/libutils/config.h.in 2014-02-27 12:39:41.537416111 +0100 +@@ -914,3 +914,6 @@ + + /* Define to rpl_vsnprintf if the replacement function should be used. */ + #undef vsnprintf ++ ++/* Define to the path for running ifconfig -a */ ++#undef IFCONFIG_RUN |