# # spec file for package pen (Version 0.18.0) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: pen License: GPL v2 or later Group: Productivity/Clustering/HA Summary: A simple load balancer for tcp based protocols Url: http://siag.nu/pen/ Version: 0.18.0 Release: 1 Source0: %{name}-%{version}.tar.bz2 Source1: %{name}.cfg Source2: init.%{name} Source3: runpen.sh PreReq: %insserv_prereq %fillup_prereq BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Pen is a load balancer for "simple" tcp based protocols such as http or smtp. It allows several servers to appear as one to the outside and automatically detects servers that are down and distributes clients among the available servers. This gives high availability and scalable performance. The load balancing algorithm keeps track of clients and will try to send them back to the server they visited the last time. This is useful for applications that maintain state between connections in the server, including most modern web applications. When pen detects that a server is unavailable, it scans for another starting with the server after the most recently used one. That way we get load balancing and "fair" failover for free. Correctly configured, pen can ensure that a server farm is always available, even when individual servers are brought down for maintenance or reconfiguration. The final single point of failure, pen itself, can be eliminated by running pen on several servers, using vrrp to decide which is active. Authors: -------- Ulric Eriksson %prep %setup -q #%patch %build %configure \ --with-daemon make %{?jobs:-j%jobs} %install mkdir -p $RPM_BUILD_ROOT/%_sbindir #make DESTDIR="$RPM_BUILD_ROOT" install %makeinstall # Install pen init script mkdir -p $RPM_BUILD_ROOT/etc/init.d install -m 0744 %SOURCE2 $RPM_BUILD_ROOT/etc/init.d/%{name} install -m 0744 %SOURCE3 $RPM_BUILD_ROOT/usr/bin/runpen.sh install -m 0644 %SOURCE1 $RPM_BUILD_ROOT/etc/%{name}.cfg ln -sf ../../etc/init.d/%{name} $RPM_BUILD_ROOT/usr/sbin/rc%{name} mkdir -p ${RPM_BUILD_ROOT}%{_docdir} mv $RPM_BUILD_ROOT/usr/doc/pen ${RPM_BUILD_ROOT}%{_docdir} %clean rm -rf ${RPM_BUILD_ROOT} %post %{fillup_and_insserv -n pen pen} %postun %restart_on_update %{name} %insserv_cleanup %preun %stop_on_removal %{name} %files %defattr(-,root,root) %{_docdir}/* %{_mandir}/man1/*.1.gz /etc/init.d/%{name} /usr/bin/%{name} /usr/bin/runpen.sh /usr/bin/mergelogs /usr/bin/penctl /usr/bin/penlog /usr/bin/penlogd /usr/sbin/rc%{name} %config(noreplace) /etc/%{name}.cfg %changelog * Tue Aug 19 2008 joe@suse.de - update to version 0.18.0 - fixed issues with penctl.cgi - new priority based server selection algorithm * Fri Nov 09 2007 joe@suse.de - update to version 0.17.2 * Fri Nov 09 2007 lrupp@suse.de - fix rpmlint warnings * Thu Jun 21 2007 adrian@suse.de - fix changelog entry order * Fri Aug 25 2006 joe@suse.de - update to version 0.17.1 - bugfix: server_by_weight would never consider blacklisted servers, which kept them blacklisted indefinitely * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Fri Dec 16 2005 joe@suse.de - fixed the init script give feedback on restart action - upgraded to version 0.16.0 - the configure option for ssl is now: --with-experimental-only-ssl - new "abuse server", similar to the emergency server: use "-B host:port" to enable * Wed Jun 09 2004 joe@suse.de - Initial version of SUSE pen package * Sat Jan 24 2004 joe@suse.de - upgraded to version 0.15.0