]>
Commit | Line | Data |
---|---|---|
1 | # TODO: | |
2 | # - add trigger to enable this: | |
3 | # * sshd(8): This release turns on pre-auth sandboxing sshd by default for | |
4 | # new installs, by setting UsePrivilegeSeparation=sandbox in sshd_config. | |
5 | # | |
6 | # Conditional build: | |
7 | %bcond_without audit # sshd audit support | |
8 | %bcond_with gnome # gnome-askpass (GNOME 1.x) utility | |
9 | %bcond_without gtk # gnome-askpass (GTK+ 2.x) utility | |
10 | %bcond_without ldap # LDAP support | |
11 | %bcond_with ldns # DNSSEC support via libldns | |
12 | %bcond_without libedit # libedit (editline/history support in sftp client) | |
13 | %bcond_without kerberos5 # Kerberos5 support | |
14 | %bcond_without selinux # SELinux support | |
15 | %bcond_without libseccomp # use libseccomp for seccomp privsep (requires 3.5 kernel) | |
16 | %bcond_with hpn # High Performance SSH/SCP - HPN-SSH including Cipher NONE (broken too often) | |
17 | %bcond_without tests # test suite | |
18 | ||
19 | # gtk2-based gnome-askpass means no gnome1-based | |
20 | %{?with_gtk:%undefine with_gnome} | |
21 | ||
22 | %if "%{pld_release}" == "ac" | |
23 | %define pam_ver 0.79.0 | |
24 | %else | |
25 | %define pam_ver 1:1.1.8-5 | |
26 | %endif | |
27 | Summary: OpenSSH free Secure Shell (SSH) implementation | |
28 | Summary(de.UTF-8): OpenSSH - freie Implementation der Secure Shell (SSH) | |
29 | Summary(es.UTF-8): Implementación libre de SSH | |
30 | Summary(fr.UTF-8): Implémentation libre du shell sécurisé OpenSSH (SSH) | |
31 | Summary(it.UTF-8): Implementazione gratuita OpenSSH della Secure Shell | |
32 | Summary(pl.UTF-8): Publicznie dostępna implementacja bezpiecznego shella (SSH) | |
33 | Summary(pt.UTF-8): Implementação livre OpenSSH do protocolo 'Secure Shell' (SSH) | |
34 | Summary(pt_BR.UTF-8): Implementação livre do SSH | |
35 | Summary(ru.UTF-8): OpenSSH - свободная реализация протокола Secure Shell (SSH) | |
36 | Summary(uk.UTF-8): OpenSSH - вільна реалізація протоколу Secure Shell (SSH) | |
37 | Name: openssh | |
38 | Version: 7.9p1 | |
39 | Release: 1 | |
40 | Epoch: 2 | |
41 | License: BSD | |
42 | Group: Applications/Networking | |
43 | Source0: http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/%{name}-%{version}.tar.gz | |
44 | # Source0-md5: c6af50b7a474d04726a5aa747a5dce8f | |
45 | Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2 | |
46 | # Source1-md5: 66943d481cc422512b537bcc2c7400d1 | |
47 | Source2: %{name}d.init | |
48 | Source3: %{name}d.pamd | |
49 | Source4: %{name}.sysconfig | |
50 | Source5: ssh-agent.sh | |
51 | Source6: ssh-agent.conf | |
52 | Source7: %{name}-lpk.schema | |
53 | Source9: sshd.service | |
54 | Source10: sshd-keygen | |
55 | Source11: sshd.socket | |
56 | Source12: sshd@.service | |
57 | Patch1: %{name}-tests-reuseport.patch | |
58 | Patch2: %{name}-pam_misc.patch | |
59 | Patch3: %{name}-sigpipe.patch | |
60 | # http://pkgs.fedoraproject.org/gitweb/?p=openssh.git;a=tree | |
61 | Patch4: %{name}-ldap.patch | |
62 | Patch5: %{name}-ldap-fixes.patch | |
63 | Patch6: ldap.conf.patch | |
64 | Patch7: %{name}-config.patch | |
65 | Patch8: ldap-helper-sigpipe.patch | |
66 | # High Performance SSH/SCP - HPN-SSH - http://www.psc.edu/networking/projects/hpn-ssh/ | |
67 | # http://www.psc.edu/networking/projects/hpn-ssh/openssh-5.2p1-hpn13v6.diff.gz | |
68 | Patch9: %{name}-5.2p1-hpn13v6.diff | |
69 | Patch10: %{name}-include.patch | |
70 | Patch11: %{name}-chroot.patch | |
71 | Patch12: openssh-bug-2905.patch | |
72 | ||
73 | Patch14: %{name}-bind.patch | |
74 | Patch15: %{name}-disable_ldap.patch | |
75 | URL: http://www.openssh.com/portable.html | |
76 | BuildRequires: %{__perl} | |
77 | %{?with_audit:BuildRequires: audit-libs-devel} | |
78 | BuildRequires: autoconf >= 2.50 | |
79 | BuildRequires: automake | |
80 | %{?with_gnome:BuildRequires: gnome-libs-devel} | |
81 | %{?with_gtk:BuildRequires: gtk+2-devel} | |
82 | %{?with_kerberos5:BuildRequires: heimdal-devel >= 0.7} | |
83 | %{?with_ldns:BuildRequires: ldns-devel} | |
84 | %{?with_libedit:BuildRequires: libedit-devel} | |
85 | BuildRequires: libseccomp-devel | |
86 | %{?with_selinux:BuildRequires: libselinux-devel} | |
87 | %{?with_ldap:BuildRequires: openldap-devel} | |
88 | BuildRequires: openssl-devel >= 1.0.1 | |
89 | BuildRequires: pam-devel | |
90 | %{?with_gtk:BuildRequires: pkgconfig} | |
91 | BuildRequires: rpm >= 4.4.9-56 | |
92 | BuildRequires: rpmbuild(macros) >= 1.627 | |
93 | BuildRequires: sed >= 4.0 | |
94 | BuildRequires: zlib-devel >= 1.2.3 | |
95 | %if %{with tests} && 0%(id -u sshd >/dev/null 2>&1; echo $?) | |
96 | BuildRequires: %{name}-server | |
97 | %endif | |
98 | %if %{with tests} && %{with libseccomp} | |
99 | # libseccomp based sandbox requires NO_NEW_PRIVS prctl flag | |
100 | BuildRequires: uname(release) >= 3.5 | |
101 | %endif | |
102 | Requires: zlib >= 1.2.3 | |
103 | %if "%{pld_release}" == "ac" | |
104 | Requires: filesystem >= 2.0-1 | |
105 | Requires: pam >= 0.79.0 | |
106 | %else | |
107 | Requires: filesystem >= 3.0-11 | |
108 | Requires: pam >= %{pam_ver} | |
109 | Suggests: xorg-app-xauth | |
110 | %endif | |
111 | Obsoletes: ssh | |
112 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
113 | ||
114 | %define _sysconfdir /etc/ssh | |
115 | %define _libexecdir %{_libdir}/%{name} | |
116 | %define _privsepdir /usr/share/empty | |
117 | %define schemadir /usr/share/openldap/schema | |
118 | ||
119 | %description | |
120 | Ssh (Secure Shell) a program for logging into a remote machine and for | |
121 | executing commands in a remote machine. It is intended to replace | |
122 | rlogin and rsh, and provide secure encrypted communications between | |
123 | two untrusted hosts over an insecure network. X11 connections and | |
124 | arbitrary TCP/IP ports can also be forwarded over the secure channel. | |
125 | ||
126 | OpenSSH is OpenBSD's rework of the last free version of SSH, bringing | |
127 | it up to date in terms of security and features, as well as removing | |
128 | all patented algorithms to seperate libraries (OpenSSL). | |
129 | ||
130 | This package includes the core files necessary for both the OpenSSH | |
131 | client and server. To make this package useful, you should also | |
132 | install openssh-clients, openssh-server, or both. | |
133 | ||
134 | %if %{with hpn} | |
135 | This release includes High Performance SSH/SCP patches from | |
136 | http://www.psc.edu/networking/projects/hpn-ssh/ which are supposed to | |
137 | increase throughput on fast connections with high RTT (20-150 msec). | |
138 | See the website for '-w' values for your connection and /proc/sys TCP | |
139 | values. BTW. in a LAN you have got generally RTT < 1 msec. | |
140 | %endif | |
141 | ||
142 | %description -l de.UTF-8 | |
143 | OpenSSH (Secure Shell) stellt den Zugang zu anderen Rechnern her. Es | |
144 | ersetzt telnet, rlogin, rexec und rsh und stellt eine sichere, | |
145 | verschlüsselte Verbindung zwischen zwei nicht vertrauenswürdigen Hosts | |
146 | über eine unsicheres Netzwerk her. X11 Verbindungen und beliebige | |
147 | andere TCP/IP Ports können ebenso über den sicheren Channel | |
148 | weitergeleitet werden. | |
149 | ||
150 | %description -l es.UTF-8 | |
151 | SSH es un programa para accesar y ejecutar órdenes en computadores | |
152 | remotos. Sustituye rlogin y rsh, y suministra un canal de comunicación | |
153 | seguro entre dos servidores en una red insegura. Conexiones X11 y | |
154 | puertas TCP/IP arbitrárias también pueden ser usadas por el canal | |
155 | seguro. | |
156 | ||
157 | OpenSSH es el resultado del trabajo del equipo de OpenBSD para | |
158 | continuar la última versión gratuita de SSH, actualizándolo en | |
159 | términos de seguridad y recursos,así también eliminando todos los | |
160 | algoritmos patentados y colocándolos en bibliotecas separadas | |
161 | (OpenSSL). | |
162 | ||
163 | Este paquete contiene "port" para Linux de OpenSSH. Se debe instalar | |
164 | también el paquete openssh-clients u openssh-server o ambos. | |
165 | ||
166 | %description -l fr.UTF-8 | |
167 | OpenSSH (Secure Shell) fournit un accès à un système distant. Il | |
168 | remplace telnet, rlogin, rexec et rsh, tout en assurant des | |
169 | communications cryptées securisées entre deux hôtes non fiabilisés sur | |
170 | un réseau non sécurisé. Des connexions X11 et des ports TCP/IP | |
171 | arbitraires peuvent également être transmis sur le canal sécurisé. | |
172 | ||
173 | %description -l it.UTF-8 | |
174 | OpenSSH (Secure Shell) fornisce l'accesso ad un sistema remoto. | |
175 | Sostituisce telnet, rlogin, rexec, e rsh, e fornisce comunicazioni | |
176 | sicure e crittate tra due host non fidati su una rete non sicura. Le | |
177 | connessioni X11 ad una porta TCP/IP arbitraria possono essere | |
178 | inoltrate attraverso un canale sicuro. | |
179 | ||
180 | %description -l pl.UTF-8 | |
181 | Ssh (Secure Shell) to program służący do logowania się na zdalną | |
182 | maszynę i uruchamiania na niej aplikacji. W zamierzeniu openssh ma | |
183 | zastąpić rlogin, rsh i dostarczyć bezpieczne, szyfrowane połączenie | |
184 | pomiędzy dwoma hostami. | |
185 | ||
186 | Ten pakiet zawiera podstawowe pliki potrzebne zarówno po stronie | |
187 | klienta jak i serwera OpenSSH. Aby był użyteczny, trzeba zainstalować | |
188 | co najmniej jeden z pakietów: openssh-clients lub openssh-server. | |
189 | ||
190 | %if %{with hpn} | |
191 | Ta wersja zawiera łaty z projektu High Performance SSH/SCP | |
192 | http://www.psc.edu/networking/projects/hpn-ssh/, które mają na celu | |
193 | zwiększenie przepustowości transmisji dla szybkich połączeń z dużym | |
194 | RTT (20-150 msec). Na stronie projektu znaleźć można odpowednie dla | |
195 | danego połączenia wartości parametru '-w' oraz opcje /proc/sys dla | |
196 | TCP. Nawiasem mówiąc w sieciach LAN RTT < 1 msec. | |
197 | %endif | |
198 | ||
199 | %description -l pt.UTF-8 | |
200 | OpenSSH (Secure Shell) fornece acesso a um sistema remoto. Substitui o | |
201 | telnet, rlogin, rexec, e o rsh e fornece comunicações seguras e | |
202 | cifradas entre duas máquinas sem confiança mútua sobre uma rede | |
203 | insegura. Ligações X11 e portos TCP/IP arbitrários também poder ser | |
204 | reenviados pelo canal seguro. | |
205 | ||
206 | %description -l pt_BR.UTF-8 | |
207 | SSH é um programa para acessar e executar comandos em máquinas | |
208 | remotas. Ele substitui rlogin e rsh, e provem um canal de comunicação | |
209 | seguro entre dois hosts em uma rede insegura. Conexões X11 e portas | |
210 | TCP/IP arbitrárias também podem ser usadas pelo canal seguro. | |
211 | ||
212 | OpenSSH é o resultado do trabalho da equipe do OpenBSD em continuar a | |
213 | última versão gratuita do SSH, atualizando-o em termos de segurança e | |
214 | recursos, assim como removendo todos os algoritmos patenteados e | |
215 | colocando-os em bibliotecas separadas (OpenSSL). | |
216 | ||
217 | Esse pacote contém o "port" pra Linux do OpenSSH. Você deve instalar | |
218 | também ou o pacote openssh-clients, ou o openssh-server, ou ambos. | |
219 | ||
220 | %description -l ru.UTF-8 | |
221 | Ssh (Secure Shell) - это программа для "захода" (login) на удаленную | |
222 | машину и для выполнения команд на удаленной машине. Она предназначена | |
223 | для замены rlogin и rsh и обеспечивает безопасную шифрованную | |
224 | коммуникацию между двумя хостами в сети, являющейся небезопасной. | |
225 | Соединения X11 и любые порты TCP/IP могут также быть проведены через | |
226 | безопасный канал. | |
227 | ||
228 | OpenSSH - это переделка командой разработчиков OpenBSD последней | |
229 | свободной версии SSH, доведенная до современного состояния в терминах | |
230 | уровня безопасности и поддерживаемых возможностей. Все патентованные | |
231 | алгоритмы вынесены в отдельные библиотеки (OpenSSL). | |
232 | ||
233 | Этот пакет содержит файлы, необходимые как для клиента, так и для | |
234 | сервера OpenSSH. Вам нужно будет установить еще openssh-clients, | |
235 | openssh-server, или оба пакета. | |
236 | ||
237 | %description -l uk.UTF-8 | |
238 | Ssh (Secure Shell) - це програма для "заходу" (login) до віддаленої | |
239 | машини та для виконання команд на віддаленій машині. Вона призначена | |
240 | для заміни rlogin та rsh і забезпечує безпечну шифровану комунікацію | |
241 | між двома хостами в мережі, яка не є безпечною. З'єднання X11 та | |
242 | довільні порти TCP/IP можуть також бути проведені через безпечний | |
243 | канал. | |
244 | ||
245 | OpenSSH - це переробка командою розробників OpenBSD останньої вільної | |
246 | версії SSH, доведена до сучасного стану в термінах рівня безпеки та | |
247 | підтримуваних можливостей. Всі патентовані алгоритми винесені до | |
248 | окремих бібліотек (OpenSSL). | |
249 | ||
250 | Цей пакет містить файли, необхідні як для клієнта, так і для сервера | |
251 | OpenSSH. Вам потрібно буде ще встановити openssh-clients, | |
252 | openssh-server, чи обидва пакети. | |
253 | ||
254 | %package clients | |
255 | Summary: OpenSSH Secure Shell protocol clients | |
256 | Summary(es.UTF-8): Clientes de OpenSSH | |
257 | Summary(pl.UTF-8): Klienci protokołu Secure Shell | |
258 | Summary(pt_BR.UTF-8): Clientes do OpenSSH | |
259 | Summary(ru.UTF-8): OpenSSH - клиенты протокола Secure Shell | |
260 | Summary(uk.UTF-8): OpenSSH - клієнти протоколу Secure Shell | |
261 | Group: Applications/Networking | |
262 | Requires: %{name} | |
263 | Provides: ssh-clients | |
264 | Obsoletes: ssh-clients | |
265 | %requires_eq_to openssl openssl-devel | |
266 | ||
267 | %description clients | |
268 | Ssh (Secure Shell) a program for logging into a remote machine and for | |
269 | executing commands in a remote machine. It is intended to replace | |
270 | rlogin and rsh, and provide secure encrypted communications between | |
271 | two untrusted hosts over an insecure network. X11 connections and | |
272 | arbitrary TCP/IP ports can also be forwarded over the secure channel. | |
273 | ||
274 | OpenSSH is OpenBSD's rework of the last free version of SSH, bringing | |
275 | it up to date in terms of security and features, as well as removing | |
276 | all patented algorithms to seperate libraries (OpenSSL). | |
277 | ||
278 | This package includes the clients necessary to make encrypted | |
279 | connections to SSH servers. | |
280 | ||
281 | %description clients -l es.UTF-8 | |
282 | Este paquete incluye los clientes que se necesitan para hacer | |
283 | conexiones codificadas con servidores SSH. | |
284 | ||
285 | %description clients -l pl.UTF-8 | |
286 | Ssh (Secure Shell) to program służący do logowania się na zdalną | |
287 | maszynę i uruchamiania na niej aplikacji. W zamierzeniu openssh ma | |
288 | zastąpić rlogin, rsh i dostarczyć bezpieczne, szyfrowane połączenie | |
289 | pomiędzy dwoma hostami. | |
290 | ||
291 | Ten pakiet zawiera klientów służących do łączenia się z serwerami SSH. | |
292 | ||
293 | %description clients -l pt_BR.UTF-8 | |
294 | Esse pacote inclui os clientes necessários para fazer conexões | |
295 | encriptadas com servidores SSH. | |
296 | ||
297 | %description clients -l ru.UTF-8 | |
298 | Ssh (Secure Shell) - это программа для "захода" (login) на удаленную | |
299 | машину и для выполнения команд на удаленной машине. | |
300 | ||
301 | Этот пакет содержит программы-клиенты, необходимые для установления | |
302 | зашифрованных соединений с серверами SSH. | |
303 | ||
304 | %description clients -l uk.UTF-8 | |
305 | Ssh (Secure Shell) - це програма для "заходу" (login) до віддаленої | |
306 | машини та для виконання команд на віддаленій машині. | |
307 | ||
308 | Цей пакет містить програми-клієнти, необхідні для встановлення | |
309 | зашифрованих з'єднань з серверами SSH. | |
310 | ||
311 | %package clients-agent-profile_d | |
312 | Summary: OpenSSH Secure Shell agent init script | |
313 | Summary(pl.UTF-8): Skrypt startowy agenta OpenSSH | |
314 | Group: Applications/Networking | |
315 | Requires: %{name}-clients = %{epoch}:%{version}-%{release} | |
316 | ||
317 | %description clients-agent-profile_d | |
318 | profile.d scripts for starting SSH agent. | |
319 | ||
320 | %description clients-agent-profile_d -l pl.UTF-8 | |
321 | Skrypty profile.d do uruchamiania agenta SSH. | |
322 | ||
323 | %package clients-agent-xinitrc | |
324 | Summary: OpenSSH Secure Shell agent init script | |
325 | Summary(pl.UTF-8): Skrypt inicjujący agenta ssh przez xinitrc | |
326 | Group: Applications/Networking | |
327 | Requires: %{name}-clients-agent-profile_d = %{epoch}:%{version}-%{release} | |
328 | Requires: xinitrc | |
329 | ||
330 | %description clients-agent-xinitrc | |
331 | xinitrc scripts for starting SSH agent. | |
332 | ||
333 | %description clients-agent-xinitrc -l pl.UTF-8 | |
334 | Skrypty xinitrc do uruchamiania agenta SSH. | |
335 | ||
336 | %package server | |
337 | Summary: OpenSSH Secure Shell protocol server (sshd) | |
338 | Summary(de.UTF-8): OpenSSH Secure Shell Protocol-Server (sshd) | |
339 | Summary(es.UTF-8): Servidor OpenSSH para comunicaciones codificadas | |
340 | Summary(fr.UTF-8): Serveur de protocole du shell sécurisé OpenSSH (sshd) | |
341 | Summary(it.UTF-8): Server OpenSSH per il protocollo Secure Shell (sshd) | |
342 | Summary(pl.UTF-8): Serwer protokołu Secure Shell (sshd) | |
343 | Summary(pt.UTF-8): Servidor do protocolo 'Secure Shell' OpenSSH (sshd) | |
344 | Summary(pt_BR.UTF-8): Servidor OpenSSH para comunicações encriptadas | |
345 | Summary(ru.UTF-8): OpenSSH - сервер протокола Secure Shell (sshd) | |
346 | Summary(uk.UTF-8): OpenSSH - сервер протоколу Secure Shell (sshd) | |
347 | Group: Networking/Daemons | |
348 | Requires(post): /sbin/chkconfig | |
349 | Requires(post): grep | |
350 | Requires(post,preun): /sbin/chkconfig | |
351 | Requires(postun): /usr/sbin/userdel | |
352 | Requires(pre): /bin/id | |
353 | Requires(pre): /usr/sbin/useradd | |
354 | Requires(post,preun,postun): systemd-units >= 38 | |
355 | Requires: %{name} = %{epoch}:%{version}-%{release} | |
356 | Requires: pam >= %{pam_ver} | |
357 | Requires: rc-scripts >= 0.4.3.0 | |
358 | Requires: systemd-units >= 38 | |
359 | %{?with_libseccomp:Requires: uname(release) >= 3.5} | |
360 | Requires: util-linux | |
361 | %{?with_ldap:Suggests: %{name}-server-ldap} | |
362 | Suggests: /bin/login | |
363 | Suggests: xorg-app-xauth | |
364 | Provides: ssh-server | |
365 | Provides: user(sshd) | |
366 | %requires_eq_to openssl openssl-devel | |
367 | ||
368 | %description server | |
369 | Ssh (Secure Shell) a program for logging into a remote machine and for | |
370 | executing commands in a remote machine. It is intended to replace | |
371 | rlogin and rsh, and provide secure encrypted communications between | |
372 | two untrusted hosts over an insecure network. X11 connections and | |
373 | arbitrary TCP/IP ports can also be forwarded over the secure channel. | |
374 | ||
375 | OpenSSH is OpenBSD's rework of the last free version of SSH, bringing | |
376 | it up to date in terms of security and features, as well as removing | |
377 | all patented algorithms to seperate libraries (OpenSSL). | |
378 | ||
379 | This package contains the secure shell daemon. The sshd is the server | |
380 | part of the secure shell protocol and allows ssh clients to connect to | |
381 | your host. | |
382 | ||
383 | %description server -l de.UTF-8 | |
384 | Dieses Paket installiert den sshd, den Server-Teil der OpenSSH. | |
385 | ||
386 | %description server -l es.UTF-8 | |
387 | Este paquete contiene el servidor SSH. sshd es la parte servidor del | |
388 | protocolo secure shell y permite que clientes ssh se conecten a su | |
389 | servidor. | |
390 | ||
391 | %description server -l fr.UTF-8 | |
392 | Ce paquetage installe le 'sshd', partie serveur de OpenSSH. | |
393 | ||
394 | %description server -l it.UTF-8 | |
395 | Questo pacchetto installa sshd, il server di OpenSSH. | |
396 | ||
397 | %description server -l pl.UTF-8 | |
398 | Ssh (Secure Shell) to program służący do logowania się na zdalną | |
399 | maszynę i uruchamiania na niej aplikacji. W zamierzeniu openssh ma | |
400 | zastąpić rlogin, rsh i dostarczyć bezpieczne, szyfrowane połączenie | |
401 | pomiędzy dwoma hostami. | |
402 | ||
403 | Ten pakiet zawiera serwer sshd (do którego mogą łączyć się klienci | |
404 | ssh). | |
405 | ||
406 | %description server -l pt.UTF-8 | |
407 | Este pacote intala o sshd, o servidor do OpenSSH. | |
408 | ||
409 | %description server -l pt_BR.UTF-8 | |
410 | Esse pacote contém o servidor SSH. O sshd é a parte servidor do | |
411 | protocolo secure shell e permite que clientes ssh se conectem ao seu | |
412 | host. | |
413 | ||
414 | %description server -l ru.UTF-8 | |
415 | Ssh (Secure Shell) - это программа для "захода" (login) на удаленную | |
416 | машину и для выполнения команд на удаленной машине. | |
417 | ||
418 | Этот пакет содержит sshd - "демон" Secure Shell. sshd - это серверная | |
419 | часть протокола Secure Shell, позволяющая клиентам ssh соединяться с | |
420 | вашим хостом. | |
421 | ||
422 | %description server -l uk.UTF-8 | |
423 | Ssh (Secure Shell) - це програма для "заходу" (login) до віддаленої | |
424 | машини та для виконання команд на віддаленій машині. | |
425 | ||
426 | Цей пакет містить sshd - "демон" Secure Shell. sshd - це серверна | |
427 | частина протоколу Secure Shell, яка дозволяє клієнтам ssh зв'язуватись | |
428 | з вашим хостом. | |
429 | ||
430 | %package server-ldap | |
431 | Summary: A LDAP support for open source SSH server daemon | |
432 | Summary(pl.UTF-8): Wsparcie LDAP dla serwera OpenSSH | |
433 | Group: Daemons | |
434 | Requires: %{name} = %{epoch}:%{version}-%{release} | |
435 | Requires: openldap-nss-config | |
436 | ||
437 | %description server-ldap | |
438 | OpenSSH LDAP backend is a way how to distribute the authorized tokens | |
439 | among the servers in the network. | |
440 | ||
441 | %description server-ldap -l pl.UTF-8 | |
442 | Backend LDAP dla OpenSSH to metoda rozprowadzania autoryzowanych | |
443 | tokenów między serwerami w sieci. | |
444 | ||
445 | %package gnome-askpass | |
446 | Summary: OpenSSH GNOME passphrase dialog | |
447 | Summary(de.UTF-8): OpenSSH GNOME Passwort-Dialog | |
448 | Summary(es.UTF-8): Diálogo para introducción de passphrase para GNOME | |
449 | Summary(fr.UTF-8): Dialogue pass-phrase GNOME d'OpenSSH | |
450 | Summary(it.UTF-8): Finestra di dialogo GNOME per la frase segreta di OpenSSH | |
451 | Summary(pl.UTF-8): Odpytywacz hasła OpenSSH dla GNOME | |
452 | Summary(pt.UTF-8): Diálogo de pedido de senha para GNOME do OpenSSH | |
453 | Summary(pt_BR.UTF-8): Diálogo para entrada de passphrase para GNOME | |
454 | Summary(ru.UTF-8): OpenSSH - диалог ввода ключевой фразы (passphrase) для GNOME | |
455 | Summary(uk.UTF-8): OpenSSH - діалог вводу ключової фрази (passphrase) для GNOME | |
456 | Group: Applications/Networking | |
457 | Requires: %{name} = %{epoch}:%{version}-%{release} | |
458 | Obsoletes: openssh-askpass | |
459 | Obsoletes: ssh-askpass | |
460 | Obsoletes: ssh-extras | |
461 | ||
462 | %description gnome-askpass | |
463 | Ssh (Secure Shell) a program for logging into a remote machine and for | |
464 | executing commands in a remote machine. It is intended to replace | |
465 | rlogin and rsh, and provide secure encrypted communications between | |
466 | two untrusted hosts over an insecure network. X11 connections and | |
467 | arbitrary TCP/IP ports can also be forwarded over the secure channel. | |
468 | ||
469 | OpenSSH is OpenBSD's rework of the last free version of SSH, bringing | |
470 | it up to date in terms of security and features, as well as removing | |
471 | all patented algorithms to seperate libraries (OpenSSL). | |
472 | ||
473 | This package contains the GNOME passphrase dialog. | |
474 | ||
475 | %description gnome-askpass -l es.UTF-8 | |
476 | Este paquete contiene un programa que abre una caja de diálogo para | |
477 | entrada de passphrase en GNOME. | |
478 | ||
479 | %description gnome-askpass -l pl.UTF-8 | |
480 | Ssh (Secure Shell) to program służący do logowania się na zdalną | |
481 | maszynę i uruchamiania na niej aplikacji. W zamierzeniu openssh ma | |
482 | zastąpić rlogin, rsh i dostarczyć bezpieczne, szyfrowane połączenie | |
483 | pomiędzy dwoma hostami. | |
484 | ||
485 | Ten pakiet zawiera ,,odpytywacz hasła'' dla GNOME. | |
486 | ||
487 | %description gnome-askpass -l pt_BR.UTF-8 | |
488 | Esse pacote contém um programa que abre uma caixa de diálogo para | |
489 | entrada de passphrase no GNOME. | |
490 | ||
491 | %description gnome-askpass -l ru.UTF-8 | |
492 | Ssh (Secure Shell) - это программа для "захода" (login) на удаленную | |
493 | машину и для выполнения команд на удаленной машине. | |
494 | ||
495 | Этот пакет содержит диалог ввода ключевой фразы для использования под | |
496 | GNOME. | |
497 | ||
498 | %description gnome-askpass -l uk.UTF-8 | |
499 | Ssh (Secure Shell) - це програма для "заходу" (login) до віддаленої | |
500 | машини та для виконання команд на віддаленій машині. | |
501 | ||
502 | Цей пакет містить діалог вводу ключової фрази для використання під | |
503 | GNOME. | |
504 | ||
505 | %package -n openldap-schema-openssh-lpk | |
506 | Summary: OpenSSH LDAP Public Key schema | |
507 | Summary(pl.UTF-8): Schemat klucza publicznego LDAP dla OpenSSH | |
508 | Group: Networking/Daemons | |
509 | Requires(post,postun): sed >= 4.0 | |
510 | Requires: openldap-servers | |
511 | %if "%{_rpmversion}" >= "5" | |
512 | BuildArch: noarch | |
513 | %endif | |
514 | ||
515 | %description -n openldap-schema-openssh-lpk | |
516 | This package contains OpenSSH LDAP Public Key schema for openldap. | |
517 | ||
518 | %description -n openldap-schema-openssh-lpk -l pl.UTF-8 | |
519 | Ten pakiet zawiera schemat klucza publicznego LDAP dla OpenSSH dla | |
520 | openldap-a. | |
521 | ||
522 | %prep | |
523 | %setup -q | |
524 | %patch1 -p1 | |
525 | %patch2 -p1 | |
526 | %patch3 -p1 | |
527 | %patch4 -p1 | |
528 | %patch5 -p1 | |
529 | %patch6 -p1 | |
530 | %patch7 -p1 | |
531 | %patch8 -p1 | |
532 | ||
533 | %{?with_hpn:%patch9 -p1} | |
534 | %patch10 -p1 | |
535 | %patch11 -p1 | |
536 | %patch12 -p1 | |
537 | ||
538 | %patch14 -p1 | |
539 | %{!?with_ldap:%patch15 -p1} | |
540 | ||
541 | %if "%{pld_release}" == "ac" | |
542 | # fix for missing x11.pc | |
543 | %{__sed} -i -e 's/\(`$(PKG_CONFIG) --libs gtk+-2.0\) x11`/\1` -lX11/' contrib/Makefile | |
544 | %endif | |
545 | ||
546 | # hack since arc4random from openbsd-compat needs symbols from libssh and vice versa | |
547 | sed -i -e 's#-lssh -lopenbsd-compat#-lssh -lopenbsd-compat -lssh -lopenbsd-compat#g' Makefile* | |
548 | ||
549 | grep -rl /usr/libexec/openssh/ssh-ldap-helper . | xargs \ | |
550 | %{__sed} -i -e 's,/usr/libexec/openssh/ssh-ldap-helper,%{_libexecdir}/ssh-ldap-helper,' | |
551 | ||
552 | # prevent being ovewritten by aclocal calls | |
553 | %{__mv} aclocal.m4 acinclude.m4 | |
554 | ||
555 | %build | |
556 | cp /usr/share/automake/config.sub . | |
557 | %{__aclocal} | |
558 | %{__autoconf} | |
559 | %{__autoheader} | |
560 | CPPFLAGS="%{rpmcppflags} -DCHROOT -std=gnu99" | |
561 | %configure \ | |
562 | PERL=%{__perl} \ | |
563 | --disable-strip \ | |
564 | --enable-utmpx \ | |
565 | --enable-wtmpx \ | |
566 | --with-4in6 \ | |
567 | %{?with_audit:--with-audit=linux} \ | |
568 | --with-ipaddr-display \ | |
569 | %{?with_kerberos5:--with-kerberos5=/usr} \ | |
570 | --with-ldap%{!?with_ldap:=no} \ | |
571 | %{?with_ldns:--with-ldns} \ | |
572 | %{?with_libedit:--with-libedit} \ | |
573 | --with-mantype=man \ | |
574 | --with-md5-passwords \ | |
575 | --with-pam \ | |
576 | --with-pid-dir=%{_localstatedir}/run \ | |
577 | --with-privsep-path=%{_privsepdir} \ | |
578 | --with-privsep-user=sshd \ | |
579 | %{?with_selinux:--with-selinux} \ | |
580 | %if "%{pld_release}" == "ac" | |
581 | --with-xauth=/usr/X11R6/bin/xauth | |
582 | %else | |
583 | --with-sandbox=seccomp_filter \ | |
584 | --with-xauth=%{_bindir}/xauth | |
585 | %endif | |
586 | ||
587 | echo '#define LOGIN_PROGRAM "/bin/login"' >>config.h | |
588 | ||
589 | %{__make} | |
590 | ||
591 | %if %{with tests} | |
592 | %{__make} -j1 tests \ | |
593 | TEST_SSH_PORT=$((4242 + ${RANDOM:-$$} % 1000)) | |
594 | %endif | |
595 | ||
596 | cd contrib | |
597 | %if %{with gnome} | |
598 | %{__make} gnome-ssh-askpass1 \ | |
599 | CC="%{__cc} %{rpmldflags} %{rpmcflags}" | |
600 | %endif | |
601 | %if %{with gtk} | |
602 | %{__make} gnome-ssh-askpass2 \ | |
603 | CC="%{__cc} %{rpmldflags} %{rpmcflags}" | |
604 | %endif | |
605 | ||
606 | %install | |
607 | rm -rf $RPM_BUILD_ROOT | |
608 | install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{pam.d,rc.d/init.d,sysconfig,security,env.d}} \ | |
609 | $RPM_BUILD_ROOT{%{_libexecdir}/ssh,%{schemadir},%{systemdunitdir}} | |
610 | install -d $RPM_BUILD_ROOT/etc/{profile.d,X11/xinit/xinitrc.d} | |
611 | ||
612 | %{__make} install \ | |
613 | DESTDIR=$RPM_BUILD_ROOT | |
614 | ||
615 | bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir} | |
616 | ||
617 | install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/sshd | |
618 | cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/sshd | |
619 | cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/sshd | |
620 | cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/profile.d | |
621 | ln -sf /etc/profile.d/ssh-agent.sh $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/ssh-agent.sh | |
622 | cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir} | |
623 | cp -p %{SOURCE7} $RPM_BUILD_ROOT%{schemadir} | |
624 | ||
625 | cp -p %{SOURCE9} %{SOURCE11} %{SOURCE12} $RPM_BUILD_ROOT%{systemdunitdir} | |
626 | install -p %{SOURCE10} $RPM_BUILD_ROOT%{_libexecdir}/sshd-keygen | |
627 | ||
628 | %{__sed} -i -e 's|@@LIBEXECDIR@@|%{_libexecdir}|g' \ | |
629 | $RPM_BUILD_ROOT/etc/rc.d/init.d/sshd \ | |
630 | $RPM_BUILD_ROOT%{systemdunitdir}/sshd.service \ | |
631 | $RPM_BUILD_ROOT%{_libexecdir}/sshd-keygen | |
632 | ||
633 | %if %{with gnome} | |
634 | install -p contrib/gnome-ssh-askpass1 $RPM_BUILD_ROOT%{_libexecdir}/ssh/ssh-askpass | |
635 | %endif | |
636 | %if %{with gtk} | |
637 | install -p contrib/gnome-ssh-askpass2 $RPM_BUILD_ROOT%{_libexecdir}/ssh/ssh-askpass | |
638 | %endif | |
639 | %if %{with gnome} || %{with gtk} | |
640 | cat << 'EOF' >$RPM_BUILD_ROOT/etc/env.d/GNOME_SSH_ASKPASS_GRAB_SERVER | |
641 | #GNOME_SSH_ASKPASS_GRAB_SERVER="true" | |
642 | EOF | |
643 | cat << 'EOF' >$RPM_BUILD_ROOT/etc/env.d/GNOME_SSH_ASKPASS_GRAB_POINTER | |
644 | #GNOME_SSH_ASKPASS_GRAB_POINTER="true" | |
645 | EOF | |
646 | ln -s %{_libexecdir}/ssh/ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/ssh-askpass | |
647 | %endif | |
648 | ||
649 | install -p contrib/ssh-copy-id $RPM_BUILD_ROOT%{_bindir} | |
650 | cp -p contrib/ssh-copy-id.1 $RPM_BUILD_ROOT%{_mandir}/man1 | |
651 | ||
652 | touch $RPM_BUILD_ROOT/etc/security/blacklist.sshd | |
653 | ||
654 | cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/SSH_ASKPASS | |
655 | #SSH_ASKPASS="%{_libexecdir}/ssh-askpass" | |
656 | EOF | |
657 | ||
658 | %if "%{pld_release}" == "ac" | |
659 | # not present in ac, no point searching it | |
660 | %{__sed} -i -e '/pam_keyinit.so/d' $RPM_BUILD_ROOT/etc/pam.d/sshd | |
661 | # openssl on ac does not have OPENSSL_HAS_ECC | |
662 | %{__sed} -i -e '/ecdsa/d' $RPM_BUILD_ROOT%{_libexecdir}/sshd-keygen | |
663 | %endif | |
664 | ||
665 | %if %{without audit} | |
666 | # remove recording user's login uid to the process attribute | |
667 | %{__sed} -i -e '/pam_loginuid.so/d' $RPM_BUILD_ROOT/etc/pam.d/sshd | |
668 | %endif | |
669 | ||
670 | %{__rm} $RPM_BUILD_ROOT%{_mandir}/README.openssh-non-english-man-pages | |
671 | %{?with_ldap:%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/ldap.conf} | |
672 | ||
673 | %clean | |
674 | rm -rf $RPM_BUILD_ROOT | |
675 | ||
676 | %post clients | |
677 | %env_update | |
678 | ||
679 | %postun clients | |
680 | %env_update | |
681 | ||
682 | %post gnome-askpass | |
683 | %env_update | |
684 | ||
685 | %postun gnome-askpass | |
686 | %env_update | |
687 | ||
688 | %pre server | |
689 | %useradd -P %{name}-server -u 40 -d %{_privsepdir} -s /bin/false -c "OpenSSH PrivSep User" -g nobody sshd | |
690 | ||
691 | %post server | |
692 | /sbin/chkconfig --add sshd | |
693 | %service sshd reload "OpenSSH Daemon" | |
694 | NORESTART=1 | |
695 | %systemd_post sshd.service | |
696 | ||
697 | %preun server | |
698 | if [ "$1" = "0" ]; then | |
699 | %service sshd stop | |
700 | /sbin/chkconfig --del sshd | |
701 | fi | |
702 | %systemd_preun sshd.service | |
703 | ||
704 | %postun server | |
705 | if [ "$1" = "0" ]; then | |
706 | %userremove sshd | |
707 | fi | |
708 | %systemd_reload | |
709 | ||
710 | %triggerpostun server -- %{name}-server < 2:7.0p1-2 | |
711 | %banner %{name}-server -e << EOF | |
712 | !!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!! | |
713 | ! Starting from openssh 7.0 DSA keys are disabled ! | |
714 | ! on server and client side. You will NOT be able ! | |
715 | ! to use DSA keys for authentication. Please read ! | |
716 | ! about PubkeyAcceptedKeyTypes in man ssh_config. ! | |
717 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
718 | EOF | |
719 | ||
720 | %triggerpostun server -- %{name}-server < 6.2p1-1 | |
721 | cp -f %{_sysconfdir}/sshd_config{,.rpmorig} | |
722 | sed -i -e 's#AuthorizedKeysCommandRunAs#AuthorizedKeysCommandUser##g' %{_sysconfdir}/sshd_config | |
723 | ||
724 | %triggerpostun server -- %{name}-server < 2:5.9p1-8 | |
725 | # lpk.patch to ldap.patch | |
726 | if grep -qE '^(UseLPK|Lpk)' %{_sysconfdir}/sshd_config; then | |
727 | echo >&2 "Migrating LPK patch to LDAP patch" | |
728 | cp -f %{_sysconfdir}/sshd_config{,.rpmorig} | |
729 | %{__sed} -i -e ' | |
730 | # disable old configs | |
731 | # just UseLPK/LkpLdapConf supported for now | |
732 | s/^\s*UseLPK/## Obsolete &/ | |
733 | s/^\s*Lpk/## Obsolete &/ | |
734 | # Enable new ones, assumes /etc/ldap.conf defaults, see HOWTO.ldap-keys | |
735 | /UseLPK/iAuthorizedKeysCommand %{_libexecdir}/ssh-ldap-wrapper | |
736 | ' %{_sysconfdir}/sshd_config | |
737 | if [ ! -x /bin/systemd_booted ] || ! /bin/systemd_booted; then | |
738 | /bin/systemctl try-restart sshd.service || : | |
739 | else | |
740 | %service -q sshd reload | |
741 | fi | |
742 | fi | |
743 | %systemd_trigger sshd.service | |
744 | if [ -x /bin/systemd_booted ] && /bin/systemd_booted; then | |
745 | %banner %{name}-server -e << EOF | |
746 | !!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!! | |
747 | ! Native systemd support for sshd has been installed. ! | |
748 | ! Restarting sshd.service with systemctl WILL kill all ! | |
749 | ! active ssh sessions (daemon as such will be started). ! | |
750 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
751 | EOF | |
752 | fi | |
753 | ||
754 | %post -n openldap-schema-openssh-lpk | |
755 | %openldap_schema_register %{schemadir}/openssh-lpk.schema | |
756 | %service -q ldap restart | |
757 | ||
758 | %postun -n openldap-schema-openssh-lpk | |
759 | if [ "$1" = "0" ]; then | |
760 | %openldap_schema_unregister %{schemadir}/openssh-lpk.schema | |
761 | %service -q ldap restart | |
762 | fi | |
763 | ||
764 | %files | |
765 | %defattr(644,root,root,755) | |
766 | %doc TODO README OVERVIEW CREDITS Change* | |
767 | %attr(755,root,root) %{_bindir}/ssh-key* | |
768 | #%attr(755,root,root) %{_bindir}/ssh-vulnkey* | |
769 | %{_mandir}/man1/ssh-key*.1* | |
770 | #%{_mandir}/man1/ssh-vulnkey*.1* | |
771 | %dir %{_sysconfdir} | |
772 | %dir %{_libexecdir} | |
773 | ||
774 | %files clients | |
775 | %defattr(644,root,root,755) | |
776 | %attr(755,root,root) %{_bindir}/ssh | |
777 | %attr(755,root,root) %{_bindir}/sftp | |
778 | %attr(755,root,root) %{_bindir}/ssh-agent | |
779 | %attr(755,root,root) %{_bindir}/ssh-add | |
780 | %attr(755,root,root) %{_bindir}/ssh-copy-id | |
781 | %attr(755,root,root) %{_bindir}/scp | |
782 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ssh_config | |
783 | %config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/SSH_ASKPASS | |
784 | %{_mandir}/man1/scp.1* | |
785 | %{_mandir}/man1/ssh.1* | |
786 | %{_mandir}/man1/sftp.1* | |
787 | %{_mandir}/man1/ssh-agent.1* | |
788 | %{_mandir}/man1/ssh-add.1* | |
789 | %{_mandir}/man1/ssh-copy-id.1* | |
790 | %{_mandir}/man5/ssh_config.5* | |
791 | %lang(it) %{_mandir}/it/man1/ssh.1* | |
792 | %lang(it) %{_mandir}/it/man5/ssh_config.5* | |
793 | %lang(pl) %{_mandir}/pl/man1/scp.1* | |
794 | %lang(zh_CN) %{_mandir}/zh_CN/man1/scp.1* | |
795 | ||
796 | # for host-based auth (suid required for accessing private host key) | |
797 | #%attr(4755,root,root) %{_libexecdir}/ssh-keysign | |
798 | #%{_mandir}/man8/ssh-keysign.8* | |
799 | ||
800 | %files clients-agent-profile_d | |
801 | %defattr(644,root,root,755) | |
802 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ssh-agent.conf | |
803 | %attr(755,root,root) /etc/profile.d/ssh-agent.sh | |
804 | ||
805 | %files clients-agent-xinitrc | |
806 | %defattr(644,root,root,755) | |
807 | %attr(755,root,root) /etc/X11/xinit/xinitrc.d/ssh-agent.sh | |
808 | ||
809 | %files server | |
810 | %defattr(644,root,root,755) | |
811 | %attr(755,root,root) %{_sbindir}/sshd | |
812 | %attr(755,root,root) %{_libexecdir}/sftp-server | |
813 | %attr(755,root,root) %{_libexecdir}/ssh-keysign | |
814 | %attr(755,root,root) %{_libexecdir}/ssh-pkcs11-helper | |
815 | %attr(755,root,root) %{_libexecdir}/sshd-keygen | |
816 | %{_mandir}/man8/sshd.8* | |
817 | %{_mandir}/man8/sftp-server.8* | |
818 | %{_mandir}/man8/ssh-keysign.8* | |
819 | %{_mandir}/man8/ssh-pkcs11-helper.8* | |
820 | %{_mandir}/man5/sshd_config.5* | |
821 | %{_mandir}/man5/moduli.5* | |
822 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sshd_config | |
823 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/sshd | |
824 | %attr(640,root,root) %{_sysconfdir}/moduli | |
825 | %attr(754,root,root) /etc/rc.d/init.d/sshd | |
826 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/sshd | |
827 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.sshd | |
828 | %{systemdunitdir}/sshd.service | |
829 | %{systemdunitdir}/sshd.socket | |
830 | %{systemdunitdir}/sshd@.service | |
831 | ||
832 | %if %{with ldap} | |
833 | %files server-ldap | |
834 | %defattr(644,root,root,755) | |
835 | %doc HOWTO.ldap-keys ldap.conf | |
836 | %attr(755,root,root) %{_libexecdir}/ssh-ldap-helper | |
837 | %attr(755,root,root) %{_libexecdir}/ssh-ldap-wrapper | |
838 | %{_mandir}/man5/ssh-ldap.conf.5* | |
839 | %{_mandir}/man8/ssh-ldap-helper.8* | |
840 | %endif | |
841 | ||
842 | %if %{with gnome} || %{with gtk} | |
843 | %files gnome-askpass | |
844 | %defattr(644,root,root,755) | |
845 | %config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/GNOME_SSH_ASKPASS* | |
846 | %dir %{_libexecdir}/ssh | |
847 | %attr(755,root,root) %{_libexecdir}/ssh/ssh-askpass | |
848 | %attr(755,root,root) %{_libexecdir}/ssh-askpass | |
849 | %endif | |
850 | ||
851 | %if %{with ldap} | |
852 | %files -n openldap-schema-openssh-lpk | |
853 | %defattr(644,root,root,755) | |
854 | %{schemadir}/openssh-lpk.schema | |
855 | %endif |