2 # - examples/seamless_reload.txt
5 %bcond_without lua # LUA support
6 %bcond_without zlib # zlib support
7 %bcond_without pcre # pcre support
8 %bcond_without ssl # SSL support
10 Summary: haproxy - high-performance TCP/HTTP load balancer
11 Summary(pl.UTF-8): haproxy - wysoko wydajny load balancer TCP/HTTP
16 Group: Networking/Daemons
17 Source0: http://www.haproxy.org/download/2.4/src/%{name}-%{version}.tar.gz
18 # Source0-md5: 67d28ee9a39973bf17a38563d39ea81e
19 Source1: https://github.com/makinacorpus/haproxy-1.5/raw/master/debian/halog.1
20 # Source1-md5: df4631f3cbc59893a2cd5e4364c9e755
21 Source2: https://github.com/janeczku/haproxy-acme-validation-plugin/raw/master/acme-http01-webroot.lua
22 # Source2-md5: b68e49e7f7a862d504a4ab335a7cee2a
24 Source4: %{name}-ft.vim
27 URL: http://www.haproxy.org/
28 %{?with_lua:BuildRequires: lua53-devel}
29 %{?with_ssl:BuildRequires: openssl-devel}
30 %{?with_pcre:BuildRequires: pcre-devel}
31 BuildRequires: rpmbuild(macros) >= 1.268
32 %{?with_zlib:BuildRequires: zlib-devel}
33 Requires(post,preun): /sbin/chkconfig
34 Requires(postun): /usr/sbin/groupdel
35 Requires(postun): /usr/sbin/userdel
36 Requires(pre): /bin/id
37 Requires(pre): /usr/bin/getgid
38 Requires(pre): /usr/sbin/groupadd
39 Requires(pre): /usr/sbin/useradd
41 Requires: uname(release) >= 2.6
42 Suggests: vim-syntax-haproxy
43 Provides: group(haproxy)
44 Provides: user(haproxy)
45 Conflicts: rpm < 4.4.2-45
46 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48 %define _vimdatadir %{_datadir}/vim/vimfiles
51 HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for
52 high availability environments. Indeed, it can:
53 - route HTTP requests depending on statically assigned cookies;
54 - spread the load among several servers while assuring server
55 persistence through the use of HTTP cookies;
56 - switch to backup servers in the event a main one fails;
57 - accept connections to special ports dedicated to service monitoring;
58 - stop accepting connections without breaking existing ones;
59 - add/modify/delete HTTP headers both ways;
60 - block requests matching a particular pattern.
62 It needs very little resource. Its event-driven architecture allows it
63 to easily handle thousands of simultaneous connections on hundreds of
64 instances without risking the system's stability.
66 %description -l pl.UTF-8
67 HA-Proxy to odwrotne proxy TCP/HTTP przeznaczone w szczególności dla
68 środowisk o wysokiej dostępności. W rzeczywistości może:
69 - przekazywać żądania HTTP w zależności od statycznie przypisanych
71 - rozdzielać obciążenie między różne serwery zapewniając ciągłość
72 łączności z serwerem poprzez użycie ciasteczek HTTP;
73 - przełączać na serwery zapasowe w przypadku, gdy główny zawiedzie;
74 - przyjmować połączenia na specjalne porty przeznaczone do
76 - zaprzestać przyjmowania połączeń bez zrywania istniejących;
77 - dodawać/modyfikować/usuwać nagłówki HTTP w obie strony;
78 - blokować żądania pasujące do określonego wzorca.
80 Wymaga bardzo niewiele zasobów. Jego sterowana zdarzeniami
81 architektura pozwala łatwo obsługiwać tysiące jednoczesnych połączeń
82 do setek instancji bez ryzykowania stabilności systemu.
84 %package -n vim-syntax-haproxy
85 Summary: Vim syntax: haproxy configuration files syntax
86 Summary(pl.UTF-8): Opis składni dla Vima: podświetlanie składni dla plików konfiguracyjnych haproxy
87 Group: Applications/Editors/Vim
88 Requires: vim-rt >= 4:6.3.058-3
91 %description -n vim-syntax-haproxy
92 This plugin provides syntax highlighting for haproxy configuration
95 %description -n vim-syntax-haproxy -l pl.UTF-8
96 Ta wtyczka dostarcza podświetlanie składni dla plików konfiguracyjnych
104 mv examples/errorfiles .
109 %ifarch %{ix86} %{x8664}
110 regparm_opts="USE_REGPARM=1"
113 %{__make} $regparm_opts \
114 TARGET="linux-glibc" \
116 %{?with_lua:USE_LUA=1 LUA_LIB_NAME=lua5.3 LUA_INC=%{_includedir}/lua5.3} \
117 %{?with_ssl:USE_OPENSSL=1} \
118 %{?with_pcre:USE_PCRE=1} \
119 %{?with_zlib:USE_ZLIB=1} \
121 ADDINC="%{rpmcflags}" \
122 ADDLIB="%{rpmldflags}"
124 %{__make} admin/halog/halog \
126 OPTIMIZE="%{optflags}"
128 %{__make} admin/iprange/iprange \
130 OPTIMIZE="%{optflags}"
132 %{__make} admin/iprange/ip6range \
134 OPTIMIZE="%{optflags}"
137 rm -rf $RPM_BUILD_ROOT
138 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_datadir}/%{name}/lua,/etc/rc.d/init.d} \
139 $RPM_BUILD_ROOT%{_vimdatadir}/{syntax,ftdetect}
141 %{__make} install-bin install-man \
144 DESTDIR=$RPM_BUILD_ROOT \
146 install -p admin/halog/halog $RPM_BUILD_ROOT%{_sbindir}/halog
147 install -p admin/iprange/iprange $RPM_BUILD_ROOT%{_sbindir}/iprange
148 install -p admin/iprange/iprange $RPM_BUILD_ROOT%{_sbindir}/ip6range
150 install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
151 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/man1
152 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/haproxy.cfg
153 cp -p admin/syntax-highlight/haproxy.vim $RPM_BUILD_ROOT%{_vimdatadir}/syntax
154 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_vimdatadir}/ftdetect/haproxy.vim
155 cp -a errorfiles $RPM_BUILD_ROOT%{_datadir}/%{name}
156 cp -p acme-http01-webroot.lua $RPM_BUILD_ROOT%{_datadir}/%{name}/lua
159 rm -rf $RPM_BUILD_ROOT
162 %groupadd -g 185 %{name}
163 %useradd -u 185 -d /usr/share/empty -g %{name} -c "haproxy user" %{name}
166 /sbin/chkconfig --add %{name}
167 %service %{name} restart
170 if [ "$1" = "0" ]; then
171 %service %{name} stop
172 /sbin/chkconfig --del %{name}
176 if [ "$1" = "0" ]; then
182 %defattr(644,root,root,755)
183 %doc CHANGELOG README README ROADMAP examples/* doc/* tests
184 %dir %{_sysconfdir}/%{name}
185 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/haproxy.cfg
186 %attr(754,root,root) /etc/rc.d/init.d/%{name}
187 %attr(755,root,root) %{_sbindir}/halog
188 %attr(755,root,root) %{_sbindir}/haproxy
189 %attr(755,root,root) %{_sbindir}/iprange
190 %attr(755,root,root) %{_sbindir}/ip6range
191 %{_mandir}/man1/halog.1*
192 %{_mandir}/man1/haproxy.1*
195 %files -n vim-syntax-haproxy
196 %defattr(644,root,root,755)
197 %{_vimdatadir}/syntax/haproxy.vim
198 %{_vimdatadir}/ftdetect/haproxy.vim