Name: func
Summary: Remote management framework
Version: 0.27
Release: 2
License: GPL
Group: Applications/System
Description: Func allows for running commands on remote systems in a secure way, like SSH, but offers several improvements.

CentOS 7 x86_64

The build was not successful.

Build Status

CentOS 6 x86_64

The build was succesful. The following RPMs were generated:

Build Status


The spec file used by the build system currently has the following contents:

# $Id$
# Authority: shuff
# Upstream: Adrian Likins <alikins$redhat,com>

%define python_sitelib %(%{__python} -c 'from distutils import sysconfig; print sysconfig.get_python_lib()')
%define python_sitearch %(%{__python} -c 'from distutils import sysconfig; print sysconfig.get_python_lib(1)')

Summary: Remote management framework
Name: func
Version: 0.27
Release: 2%{?dist}
License: GPL
Group: Applications/System

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: noarch

BuildRequires: gettext-devel
BuildRequires: pyOpenSSL
BuildRequires: python-setuptools
Requires: certmaster
Requires: chkconfig
Requires: logrotate
Requires: pyOpenSSL
Requires: python-sqlalchemy
#Requires: smolt
Requires: sqlite

Func allows for running commands on remote systems in a secure way, like SSH,
but offers several improvements.

* Func allows you to manage an arbitrary group of machines all at once.
* Func automatically distributes certificates to all "slave" machines. There's
  almost nothing to configure.
* Func comes with a command line for sending remote commands and gathering
* There are lots of modules already provided for common tasks.
* Anyone can write their own modules using the simple Python module API.
* Everything that can be done with the command line can be done with the Python
  client API. The hack potential is unlimited.
* You'll never have to use "expect" or other ugly hacks to automate your
* It's really simple under the covers. Func works over XMLRPC and SSL.
* Since func uses certmaster, any program can use func certificates, latch on
  to them, and take advantage of secure master-to-slave communication.
* There are no databases or crazy stuff to install and configure. Again,
  certificate distribution is automatic too. 


%{__python} build

%{__rm} -rf %{buildroot}
%{__python} install --skip-build --root="%{buildroot}" --prefix="%{_prefix}"
touch %{buildroot}%{_localstatedir}/log/func/func.log
touch %{buildroot}%{_localstatedir}/log/func/audit.log

# fix init script location
%{__install} -m0755 -d %{buildroot}%{_initrddir}
%{__mv} %{buildroot}%{_sysconfdir}/init.d/funcd %{buildroot}%{_initrddir}/
%{__rm} -rf %{buildroot}%{_sysconfdir}/init.d/

%{__rm} -rf %{buildroot}

%post -p "/sbin/chkconfig --add funcd"

if [ "$1" = 0 ]; then
    /sbin/service funcd stop >/dev/null 2>&1
    /sbin/chkconfig --del func >/dev/null 2>&1

%defattr(-, root, root, 0755)
%doc %{_mandir}/man?/*
%dir %{_sysconfdir}/func/
%dir %{_sysconfdir}/func/minion-acl.d/
%dir %{_sysconfdir}/func/modules/
%exclude %dir %{_sysconfdir}/func/version
%config(noreplace) %{_sysconfdir}/func/*.conf
%config(noreplace) %{_sysconfdir}/func/modules/*.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/*
%dir %{_localstatedir}/log/func
%attr(0600,root,root) %config(noreplace) %{_localstatedir}/log/func/*
%dir %{_localstatedir}/lib/func/

* Tue Jan 25 2011 Steve Huff <> - 0.27-2
- Captured missing python-sqlalchemy and smolt dependencies.

* Mon Jan 24 2011 Steve Huff <> - 0.27-1
- Updated to release 0.27.

* Thu Aug 05 2010 Steve Huff <> - 0.25-1
- Initial package, ported from Fedora.