]> git.pld-linux.org Git - packages/haproxy.git/blob - haproxy.spec
a7e47ff97d3ee7e10a7a141cee2fb64995b3eec9
[packages/haproxy.git] / haproxy.spec
1 # TODO
2 # - examples/seamless_reload.txt
3 #
4 # Conditional build:
5 %bcond_without  lua             # LUA support
6 %bcond_without  zlib            # zlib support
7 %bcond_without  pcre            # pcre support
8 %bcond_without  ssl             # SSL support
9
10 Summary:        haproxy - high-performance TCP/HTTP load balancer
11 Summary(pl.UTF-8):      haproxy - wysoko wydajny load balancer TCP/HTTP
12 Name:           haproxy
13 Version:        2.4.7
14 Release:        1
15 License:        GPL v2
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
23 Source3:        %{name}.cfg
24 Source4:        %{name}-ft.vim
25 Source5:        %{name}.init
26 Patch0:         openssl.patch
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
40 Requires:       rc-scripts
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)
47
48 %define         _vimdatadir     %{_datadir}/vim/vimfiles
49
50 %description
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.
61
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.
65
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
70   ciasteczek;
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
75   monitorowania usług;
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.
79
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.
83
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
89 BuildArch:      noarch
90
91 %description -n vim-syntax-haproxy
92 This plugin provides syntax highlighting for haproxy configuration
93 files.
94
95 %description -n vim-syntax-haproxy -l pl.UTF-8
96 Ta wtyczka dostarcza podświetlanie składni dla plików konfiguracyjnych
97 haproxy.
98
99 %prep
100 %setup -q
101 %patch0 -p1
102
103 cp -p %{SOURCE2} .
104 mv examples/errorfiles .
105 mv doc/gpl.txt .
106
107 %build
108 regparm_opts=
109 %ifarch %{ix86} %{x8664}
110 regparm_opts="USE_REGPARM=1"
111 %endif
112
113 %{__make} $regparm_opts \
114         TARGET="linux-glibc" \
115         CPU="generic" \
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} \
120         CC="%{__cc}" \
121         ADDINC="%{rpmcflags}" \
122         ADDLIB="%{rpmldflags}"
123
124 %{__make} admin/halog/halog \
125         CC="%{__cc}" \
126         OPTIMIZE="%{optflags}"
127
128 %{__make} admin/iprange/iprange \
129         CC="%{__cc}" \
130         OPTIMIZE="%{optflags}"
131
132 %{__make} admin/iprange/ip6range \
133         CC="%{__cc}" \
134         OPTIMIZE="%{optflags}"
135
136 %install
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}
140
141 %{__make} install-bin install-man \
142         TARGET="linux2628" \
143         PREFIX=%{_prefix} \
144         DESTDIR=$RPM_BUILD_ROOT \
145
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
149
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
157
158 %clean
159 rm -rf $RPM_BUILD_ROOT
160
161 %pre
162 %groupadd -g 185 %{name}
163 %useradd -u 185 -d /usr/share/empty -g %{name} -c "haproxy user" %{name}
164
165 %post
166 /sbin/chkconfig --add %{name}
167 %service %{name} restart
168
169 %preun
170 if [ "$1" = "0" ]; then
171         %service %{name} stop
172         /sbin/chkconfig --del %{name}
173 fi
174
175 %postun
176 if [ "$1" = "0" ]; then
177         %userremove %{name}
178         %groupremove %{name}
179 fi
180
181 %files
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*
193 %{_datadir}/%{name}
194
195 %files -n vim-syntax-haproxy
196 %defattr(644,root,root,755)
197 %{_vimdatadir}/syntax/haproxy.vim
198 %{_vimdatadir}/ftdetect/haproxy.vim
This page took 0.081614 seconds and 2 git commands to generate.