# # spec file for package haproxy # # Copyright (c) 2014 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/ # Name: haproxy Version: 1.4.25 Release: 0 # # %if 0%{?suse_version} >= 1230 BuildRequires: pkgconfig(systemd) %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libgcrypt-devel BuildRequires: pcre-devel BuildRequires: udev %define pkg_name haproxy %define pkg_home /var/lib/%{pkg_name} # Url: http://haproxy.1wt.eu/ Source: http://haproxy.1wt.eu/download/1.4/src/haproxy-%{version}.tar.gz Source1: %{pkg_name}.init Source2: http://haproxy.1wt.eu/download/contrib/haproxy.vim # PATCH-FEATURE-UPSTREAM Patch1: 0001-MEDIUM-add-systemd-service.patch # PATCH-FEATURE-UPSTREAM Patch2: 0002-MEDIUM-add-haproxy-systemd-wrapper.patch # PATCH-FIX-UPSTREAM Patch3: 0003-MEDIUM-New-cli-option-Ds-for-systemd-compatibility.patch # PATCH-FIX-UPSTREAM Patch4: 0004-BUG-MEDIUM-systemd-wrapper-don-t-leak-zombie-process.patch # PATCH-FIX-UPSTREAM Patch5: 0005-BUILD-stdbool-is-not-portable-again.patch # PATCH-FIX-UPSTREAM Patch6: 0006-MEDIUM-haproxy-systemd-wrapper-Use-haproxy-in-same-d.patch # PATCH-FIX-UPSTREAM Patch7: 0007-MEDIUM-systemd-wrapper-Kill-child-processes-when-int.patch # PATCH-FIX-UPSTREAM Patch8: 0008-LOW-systemd-wrapper-Write-debug-information-to-stdou.patch # PATCH-FIX-OPENSUSE Patch9: 0009-openSUSE-Configure-haproxy-user.patch # PATCH-FIX-OPENSUSE Patch10: 0010-openSUSE-Fix-path-to-PCRE-library.patch # PATCH-FIX-UPSTREAM Patch11: 0011-BUILD-MINOR-systemd-fix-compiler-warning-about-unuse.patch # PATCH-FIX-UPSTREAM Patch12: 0012-BUG-MEDIUM-systemd-wrapper-fix-locating-of-haproxy-b.patch # PATCH-FIX-UPSTREAM Patch13: 0013-MINOR-systemd-wrapper-re-execute-on-SIGUSR2.patch # PATCH-FIX-UPSTREAM Patch14: 0014-MINOR-systemd-wrapper-improve-logging.patch # PATCH-FIX-UPSTREAM Patch15: 0015-MINOR-systemd-wrapper-propagate-exit-status.patch Source99: haproxy-rpmlintrc # Summary: The Reliable, High Performance TCP/HTTP Load Balancer License: GPL-2.0+ and LGPL-2.1+ Group: Productivity/Networking/Web/Proxy Provides: %{name}-doc = %{version} Obsoletes: %{name}-doc < %{version} %if 0%{?suse_version} >= 1230 %{?systemd_requires} %endif %description HAProxy implements an event-driven, mono-process model which enables support for very high number of simultaneous connections at very high speeds. Multi-process or multi-threaded models can rarely cope with thousands of connections because of memory limits, system scheduler limits, and lock contention everywhere. Event-driven models do not have these problems because implementing all the tasks in user-space allows a finer resource and time management. The down side is that those programs generally don't scale well on multi-processor systems. That's the reason why they must be optimized to get the most work done from every CPU cycle. %prep %setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %build %{__make} \ TARGET=linux26 \ CPU="%{_target_cpu}" \ USE_PCRE=1 \ USE_LIBCRYPT=1 \ LIB="%{_lib}" \ DEBUG="%{optflags} -fno-strict-aliasing" %{__make} PREFIX="%{_prefix}" -C contrib/systemd %install %{__install} -D -m 0755 %{pkg_name} %{buildroot}%{_sbindir}/%{pkg_name} %{__install} -D -m 0644 examples/%{pkg_name}.cfg %{buildroot}%{_sysconfdir}/%{pkg_name}/%{pkg_name}.cfg %if 0%{?suse_version} >= 1230 %{__install} -D -m 0755 haproxy-systemd-wrapper %{buildroot}%{_sbindir}/haproxy-systemd-wrapper %{__install} -D -m 0755 contrib/systemd/%{pkg_name}.service %{buildroot}%{_unitdir}/%{pkg_name}.service ln -sf /sbin/service %{buildroot}%{_sbindir}/rc%{pkg_name} %else %{__install} -D -m 0755 %{S:1} %{buildroot}%{_sysconfdir}/init.d/%{pkg_name} %{__ln_s} -f %{_sysconfdir}/init.d/%{pkg_name} %{buildroot}%{_sbindir}/rc%{pkg_name} %endif %{__install} -d -m 0755 %{buildroot}%{pkg_home} %{__install} -D -m 0644 %{S:2} %{buildroot}%{_datadir}/%{pkg_name}/%{pkg_name}.vim %{__install} -D -m 0644 doc/%{pkg_name}.1 %{buildroot}%{_mandir}/man1/%{pkg_name}.1 gzip %{buildroot}%{_mandir}/man1/%{pkg_name}.1 %if 0%{?suse_version} < 1230 %clean %{?buildroot:%{__rm} -rf %{buildroot}} %endif %pre /usr/sbin/groupadd -r %{pkg_name} &>/dev/null ||: /usr/sbin/useradd -g %{pkg_name} -s /bin/false -r -c "user for %{pkg_name}" -d %{pkg_home} %{pkg_name} &>/dev/null ||: %if 0%{?suse_version} >= 1230 %service_add_pre %{pkg_name}.service %endif %if 0%{?suse_version} >= 1230 %post %service_add_post %{pkg_name}.service %preun %service_del_preun %{pkg_name}.service %postun %service_del_postun %{pkg_name}.service %else %post %fillup_and_insserv %{pkg_name} %preun %stop_on_removal %{pkg_name} %postun %restart_on_update %{pkg_name} %{insserv_cleanup} %endif %files %defattr(-,root,root,-) %doc CHANGELOG README LICENSE %doc ROADMAP TODO doc/* examples %dir %{_sysconfdir}/%{pkg_name} %config(noreplace) %{_sysconfdir}/%{pkg_name}/%{pkg_name}.cfg %if 0%{?suse_version} >= 1230 %{_unitdir}/%{pkg_name}.service %{_sbindir}/haproxy-systemd-wrapper %else %config(noreplace) %{_sysconfdir}/init.d/%{pkg_name} %endif %{_sbindir}/haproxy %{_sbindir}/rchaproxy %{pkg_home} %doc %{_mandir}/man1/%{pkg_name}.1.gz %{_datadir}/%{pkg_name} %changelog